作者 曾海沥

autoadd

... ... @@ -8,13 +8,13 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/4.9dcb0336.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/2.db0c6dc7.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/4.9dcb0336.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/2.db0c6dc7.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>How did we get here?</blockquote> <a href="/" class="router-link-active">
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>Looks like we've got some broken links.</blockquote> <a href="/" class="router-link-active">
Take me home.
</a></div></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/4.9dcb0336.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/4.9dcb0336.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/6.a32238cc.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/6.2b2cdcff.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <!----> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="行政管理"><a href="#行政管理" class="header-anchor">#</a> 行政管理</h1></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/6.a32238cc.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/6.2b2cdcff.js" defer></script>
</body>
</html>
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[14],{281:function(t,_,s){"use strict";s.r(_);var v=s(14),a=Object(v.a)({},(function(){var t=this,_=t.$createElement,s=t._self._c||_;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"业务组件"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#业务组件"}},[t._v("#")]),t._v(" 业务组件")]),t._v(" "),s("p",[t._v("整合了部分业务功能或特殊定制化需求的组件")]),t._v(" "),s("h2",{attrs:{id:"数据导入导出"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#数据导入导出"}},[t._v("#")]),t._v(" 数据导入导出")]),t._v(" "),s("p",[t._v("公用数据导入导出组件,功能包含有数据介质模板下载(空或部分业务数据)、数据介质模板导出以及数据介质文件导入(上传)")]),t._v(" "),s("img",{staticClass:"border-shadow",attrs:{src:"/frontend/plugins/import-and-export.png"}}),t._v(" "),s("p",[t._v("使用流程")]),t._v(" "),s("ol",[s("li",[t._v("手机短信验证身份")]),t._v(" "),s("li",[t._v("下载、导出数据介质模板文件(非必须)")]),t._v(" "),s("li",[t._v("选择并上传已填写/修改的数据介质文件")]),t._v(" "),s("li",[t._v("预览文件内容")]),t._v(" "),s("li",[t._v("执行数据介质文件上传")]),t._v(" "),s("li",[t._v("上传成功/失败详细报告")])]),t._v(" "),s("p",[t._v("目前已配置并使用在素+管理平台的以下业务场景中")]),t._v(" "),s("h3",{attrs:{id:"素-平台"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#素-平台"}},[t._v("#")]),t._v(" 素+平台")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("业务模块")]),t._v(" "),s("th",[t._v("编码")]),t._v(" "),s("th",[t._v("导入")]),t._v(" "),s("th",[t._v("导出")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("通讯录")]),t._v(" "),s("td",[t._v("ADDRESS_BOOK")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("客户档案")]),t._v(" "),s("td",[t._v("WORKBENCH_CUSTOMER_FILE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("组织架构")]),t._v(" "),s("td",[t._v("ENTERPRISE_ORGANIZATION")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("常购产品")]),t._v(" "),s("td",[t._v("WORKBENCH_SALE_PRICE_CUSTOMER_PRICE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("存货档案")]),t._v(" "),s("td",[t._v("WORKBENCH_STOCK_FILE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("客户活动政策")]),t._v(" "),s("td",[t._v("WORKBENCH_SALE_ACTIVITY_POLICY")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("销售订单")]),t._v(" "),s("td",[t._v("WORKBENCH_SALE_ORDER_LIST")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("期初数据")]),t._v(" "),s("td",[t._v("WORKBENCH_WAREHOUSE_BASE_INITIAL_DATA")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("销售发货数据")]),t._v(" "),s("td",[t._v("WORKBENCH_SALE_SHIP")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("薪资档案")]),t._v(" "),s("td",[t._v("WORKBENCH_SALARY_MANAGE_FILE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("产品价格")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_CONFIG_PRODUCT-PRICE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("年度业绩目标")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_MANAGE_YEAR-PERFORMANCE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("同期业绩目标")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_MANAGE_SAME-PERIOD-PERFORMANCE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("利润率")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_MANAGE_PROFIT-MARGIN")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("费用率")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_MANAGE_EXPENSE-RATIO")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("月度计划")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_PLAN_MONTH")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("业绩源数据")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_PERFORMANCE_SOURCE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("个人业绩档案")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_PERFORMANCE_PROFILE")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("个人利润档案")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_PERFORMANCE_PROFIT")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("销售费用登记")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_COST_SALES")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("费用统计")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_COST_COUNT")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("退货单")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_PERFORMANCE_RETURN-ORDER")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("公司调价利润")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_BASE_ADJUST-PROFIT")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("个人毛利档案")]),t._v(" "),s("td",[t._v("WORKBENCH_TARGET-PLAN_PERFORMANCE_GROSS-MARGIN")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])])])]),t._v(" "),s("h3",{attrs:{id:"小牛制造"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#小牛制造"}},[t._v("#")]),t._v(" 小牛制造")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("业务模块")]),t._v(" "),s("th",[t._v("编码")]),t._v(" "),s("th",[t._v("导入")]),t._v(" "),s("th",[t._v("导出")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[t._v("采购 - 采购单")]),t._v(" "),s("td",[t._v("PURCHASE_ORDER")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("配料 - 产品配方")]),t._v(" "),s("td",[t._v("INGREDIENTS_PRODUCT-FORMULA")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("配料 - 制料记录")]),t._v(" "),s("td",[t._v("INGREDIENTS_MAKING-MATERIALS")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("配料 - 用料明细")]),t._v(" "),s("td",[t._v("INGREDIENTS_USE-MATERIALS")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("配料 - 混合料配方")]),t._v(" "),s("td",[t._v("INGREDIENTS_MIXED-MATERIAL-FORMULA")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("配料 - 混合料记录")]),t._v(" "),s("td",[t._v("INGREDIENTS_MIXED-MATERIAL-RECORD")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("配料 - 混合料用料明细")]),t._v(" "),s("td",[t._v("INGREDIENTS_MIXED-MATERIAL-USAGE-RECORD")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("库存 - 原料库存")]),t._v(" "),s("td",[t._v("STOCK_RAW-MATERIAL")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("库存 - 在制品库存")]),t._v(" "),s("td",[t._v("STOCK_IN-PRODUCTION")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("库存 - 成品库存")]),t._v(" "),s("td",[t._v("STOCK_FINISHED-GOODS")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("库存 - 采购入库")]),t._v(" "),s("td",[t._v("STOCK_PURCHASE-INBOUND")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("库存 - 入库流水")]),t._v(" "),s("td",[t._v("STOCK_INBOUND-RECORD")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("库存 - 出库流水")]),t._v(" "),s("td",[t._v("STOCK_OUTBOUND-RECORD")]),t._v(" "),s("td",[t._v("❌")]),t._v(" "),s("td",[t._v("✔️")])]),t._v(" "),s("tr",[s("td",[t._v("物料 - 物料档案")]),t._v(" "),s("td",[t._v("MATERIAL_FILE")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])]),t._v(" "),s("tr",[s("td",[t._v("物料 - 物料对照表")]),t._v(" "),s("td",[t._v("MATERIAL_CHART")]),t._v(" "),s("td",[t._v("✔️")]),t._v(" "),s("td",[t._v("❌")])])])]),t._v(" "),s("h2",{attrs:{id:"操作权限应用"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#操作权限应用"}},[t._v("#")]),t._v(" 操作权限应用")]),t._v(" "),s("p",[t._v("适配根据对用户或角色指定的权限设置(例:增加、删除、导出等),对界面元素的权限控制应用(例:按钮、链接等),自动根据配置内容决定该元素是否出现于当前界面")]),t._v(" "),s("blockquote",[s("p",[t._v("如果用户角色为主管理员,则所有功能始终可用,不受该操作权限控制")])]),t._v(" "),s("p",[t._v("完整权限字段如下:")]),t._v(" "),s("div",{staticClass:"language-json line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-json"}},[s("code",[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n add"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n delete"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n addCustom"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n export"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n import"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n addGroup"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n deleteGroup"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n editGroup"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n column"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n addCustom"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n basic"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n others"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n picture"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n price"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n contactWay"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n credit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n check"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n edit"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("1")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br"),s("span",{staticClass:"line-number"},[t._v("21")]),s("br"),s("span",{staticClass:"line-number"},[t._v("22")]),s("br"),s("span",{staticClass:"line-number"},[t._v("23")]),s("br"),s("span",{staticClass:"line-number"},[t._v("24")]),s("br"),s("span",{staticClass:"line-number"},[t._v("25")]),s("br"),s("span",{staticClass:"line-number"},[t._v("26")]),s("br"),s("span",{staticClass:"line-number"},[t._v("27")]),s("br"),s("span",{staticClass:"line-number"},[t._v("28")]),s("br"),s("span",{staticClass:"line-number"},[t._v("29")]),s("br"),s("span",{staticClass:"line-number"},[t._v("30")]),s("br"),s("span",{staticClass:"line-number"},[t._v("31")]),s("br"),s("span",{staticClass:"line-number"},[t._v("32")]),s("br"),s("span",{staticClass:"line-number"},[t._v("33")]),s("br"),s("span",{staticClass:"line-number"},[t._v("34")]),s("br"),s("span",{staticClass:"line-number"},[t._v("35")]),s("br"),s("span",{staticClass:"line-number"},[t._v("36")]),s("br"),s("span",{staticClass:"line-number"},[t._v("37")]),s("br"),s("span",{staticClass:"line-number"},[t._v("38")]),s("br"),s("span",{staticClass:"line-number"},[t._v("39")]),s("br"),s("span",{staticClass:"line-number"},[t._v("40")]),s("br"),s("span",{staticClass:"line-number"},[t._v("41")]),s("br"),s("span",{staticClass:"line-number"},[t._v("42")]),s("br")])]),s("h2",{attrs:{id:"选择器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#选择器"}},[t._v("#")]),t._v(" 选择器")]),t._v(" "),s("p",[t._v("用于挑选数据的选择器")]),t._v(" "),s("h3",{attrs:{id:"存货选择器"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#存货选择器"}},[t._v("#")]),t._v(" 存货选择器")]),t._v(" "),s("img",{staticClass:"border-shadow",attrs:{src:"/frontend/plugins/product.png"}})])}),[],!1,null,null,null);_.default=a.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[16],{287:function(s,t,a){"use strict";a.r(t);var n=a(14),r=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"数据交互格式标准"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#数据交互格式标准"}},[s._v("#")]),s._v(" 数据交互格式标准")]),s._v(" "),a("p",[s._v("前后端数据交互标准格式详细说明")]),s._v(" "),a("h2",{attrs:{id:"数据格式样例"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#数据格式样例"}},[s._v("#")]),s._v(" 数据格式样例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 请求结果\n * -1: 业务检查不通过\n * 0: 请求成功,数据正常返回\n * 2: token 失效,主要用于用户登录超时、特定情况下主动清除用户登录状态\n * 例如用户权限发生变化等场景\n */")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v('/**\n * 请求异常的提示信息\n * 当数据请求结果为 0 时,本节点令需固定输出 "ok" 即可\n * 当数据请求结果为 -1 时,必须输出错误相关的描述内容\n * \n * 业务检查不通过示例:\n * {\n * "code": -1,\n * "msg": "姓名不能超过 20 个字符"\n * }\n * \n * 请求成功的示例:\n * {\n * "code": 0,\n * "msg": "ok",\n * "data": {\n * 业务数据\n * }\n * }\n */')]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"msg"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 请求后返回的数据内容都应在 data 节点下输出\n */")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 常规单一数据节点\n */")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"attr"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" value"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 对象数据节点\n */")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"user"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"name"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"zhangsan"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"age"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("18")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" \n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/** \n * 列表型数据节点\n */")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"users"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" object "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 数据表格结果输出的数据节点\n */")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"gridResult"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 当前页码")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"pageNumber"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 总记录数")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"totalRow"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 数据列表内容")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"lists"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n object "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 数据模型")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("/**\n * 用户登录、更新/刷新 token 等登录授权操作后输出的数据节点\n */")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"access"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"accessToken"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"expiresIn"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br"),a("span",{staticClass:"line-number"},[s._v("33")]),a("br"),a("span",{staticClass:"line-number"},[s._v("34")]),a("br"),a("span",{staticClass:"line-number"},[s._v("35")]),a("br"),a("span",{staticClass:"line-number"},[s._v("36")]),a("br"),a("span",{staticClass:"line-number"},[s._v("37")]),a("br"),a("span",{staticClass:"line-number"},[s._v("38")]),a("br"),a("span",{staticClass:"line-number"},[s._v("39")]),a("br"),a("span",{staticClass:"line-number"},[s._v("40")]),a("br"),a("span",{staticClass:"line-number"},[s._v("41")]),a("br"),a("span",{staticClass:"line-number"},[s._v("42")]),a("br"),a("span",{staticClass:"line-number"},[s._v("43")]),a("br"),a("span",{staticClass:"line-number"},[s._v("44")]),a("br"),a("span",{staticClass:"line-number"},[s._v("45")]),a("br"),a("span",{staticClass:"line-number"},[s._v("46")]),a("br"),a("span",{staticClass:"line-number"},[s._v("47")]),a("br"),a("span",{staticClass:"line-number"},[s._v("48")]),a("br"),a("span",{staticClass:"line-number"},[s._v("49")]),a("br"),a("span",{staticClass:"line-number"},[s._v("50")]),a("br"),a("span",{staticClass:"line-number"},[s._v("51")]),a("br"),a("span",{staticClass:"line-number"},[s._v("52")]),a("br"),a("span",{staticClass:"line-number"},[s._v("53")]),a("br"),a("span",{staticClass:"line-number"},[s._v("54")]),a("br"),a("span",{staticClass:"line-number"},[s._v("55")]),a("br"),a("span",{staticClass:"line-number"},[s._v("56")]),a("br"),a("span",{staticClass:"line-number"},[s._v("57")]),a("br"),a("span",{staticClass:"line-number"},[s._v("58")]),a("br"),a("span",{staticClass:"line-number"},[s._v("59")]),a("br"),a("span",{staticClass:"line-number"},[s._v("60")]),a("br"),a("span",{staticClass:"line-number"},[s._v("61")]),a("br"),a("span",{staticClass:"line-number"},[s._v("62")]),a("br"),a("span",{staticClass:"line-number"},[s._v("63")]),a("br"),a("span",{staticClass:"line-number"},[s._v("64")]),a("br"),a("span",{staticClass:"line-number"},[s._v("65")]),a("br"),a("span",{staticClass:"line-number"},[s._v("66")]),a("br"),a("span",{staticClass:"line-number"},[s._v("67")]),a("br"),a("span",{staticClass:"line-number"},[s._v("68")]),a("br"),a("span",{staticClass:"line-number"},[s._v("69")]),a("br"),a("span",{staticClass:"line-number"},[s._v("70")]),a("br"),a("span",{staticClass:"line-number"},[s._v("71")]),a("br"),a("span",{staticClass:"line-number"},[s._v("72")]),a("br"),a("span",{staticClass:"line-number"},[s._v("73")]),a("br"),a("span",{staticClass:"line-number"},[s._v("74")]),a("br")])]),a("h2",{attrs:{id:"api-交互规则"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#api-交互规则"}},[s._v("#")]),s._v(" API 交互规则")]),s._v(" "),a("p",[s._v("RESTful API 是 API 设计风格而非标准,在团队应用中仅按需使用相应内容即可,目前团队执行以下规范")]),s._v(" "),a("ol",[a("li",[s._v("开发与测试环境使用 "),a("code",[s._v("http")]),s._v(" 协议,生产环境下使用 "),a("code",[s._v("https")]),s._v(" 协议")]),s._v(" "),a("li",[s._v("描述性 api 地址(Endpoint),例如:"),a("code",[s._v("https://aa.com/v1/system/user/profile/{id}")])]),s._v(" "),a("li",[a("strong",[s._v("HTTP 动词统一使用 "),a("code",[s._v("POST")])])])]),s._v(" "),a("p",[s._v("更多 RESTful API 内容:")]),s._v(" "),a("ul",[a("li",[a("a",{attrs:{href:"http://www.ruanyifeng.com/blog/2014/05/restful_api.html",target:"_blank",rel:"noopener noreferrer"}},[s._v("RESTful API 设计指南"),a("OutboundLink")],1)]),s._v(" "),a("li",[a("a",{attrs:{href:"https://www.ruanyifeng.com/blog/2018/10/restful-api-best-practices.html",target:"_blank",rel:"noopener noreferrer"}},[s._v("RESTful API 最佳实践"),a("OutboundLink")],1)])]),s._v(" "),a("h2",{attrs:{id:"跨域与重复请求"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#跨域与重复请求"}},[s._v("#")]),s._v(" 跨域与重复请求")]),s._v(" "),a("p",[s._v("除少数历史遗留项目外,公司现有项目均使用前后端分离模式,即前端、服务端各自独立开发、运行和部署。")]),s._v(" "),a("h3",{attrs:{id:"跨域(cors)"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#跨域(cors)"}},[s._v("#")]),s._v(" 跨域(CORS)")]),s._v(" "),a("p",[s._v("示例网址: "),a("code",[s._v("https://abc.com:8080/")])]),s._v(" "),a("p",[s._v("构成网址的三个基本元素")]),s._v(" "),a("ul",[a("li",[s._v("协议("),a("code",[s._v("https://")]),s._v(")")]),s._v(" "),a("li",[s._v("网址("),a("code",[s._v("abc.com")]),s._v(")")]),s._v(" "),a("li",[s._v("端口("),a("code",[s._v("8080")]),s._v(")")])]),s._v(" "),a("p",[s._v("两个网址之间,只要有上述三个元素中其中一项不一致,即为跨域访问。前后端项目在各自独立运行部署后,则天然处于跨域模式下")]),s._v(" "),a("p",[s._v("更多跨域资料:"),a("a",{attrs:{href:"http://www.ruanyifeng.com/blog/2016/04/cors.html",target:"_blank",rel:"noopener noreferrer"}},[s._v("跨域资源共享 CORS 详解"),a("OutboundLink")],1)]),s._v(" "),a("h3",{attrs:{id:"跨域请求模式"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#跨域请求模式"}},[s._v("#")]),s._v(" 跨域请求模式")]),s._v(" "),a("p",[s._v("浏览器将 CORS 请求分成两类:")]),s._v(" "),a("ul",[a("li",[s._v("简单请求(simple request)")]),s._v(" "),a("li",[s._v("非简单请求(not-so-simple request)")])]),s._v(" "),a("h4",{attrs:{id:"简单请求"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#简单请求"}},[s._v("#")]),s._v(" 简单请求")]),s._v(" "),a("p",[s._v("只要同时满足以下两大条件,就属于简单请求")]),s._v(" "),a("ol",[a("li",[s._v("请求方法是以下三种方法之一:"),a("code",[s._v("HEAD")]),s._v("、"),a("code",[s._v("GET")]),s._v("、"),a("code",[s._v("POST")])]),s._v(" "),a("li",[s._v("HTTP的头信息不超出以下几种字段\n"),a("ul",[a("li",[s._v("Accept")]),s._v(" "),a("li",[s._v("Accept-Language")]),s._v(" "),a("li",[s._v("Content-Language")]),s._v(" "),a("li",[s._v("Last-Event-ID")]),s._v(" "),a("li",[s._v("Content-Type:只限于三个值 "),a("code",[s._v("application/x-www-form-urlencoded")]),s._v("、"),a("code",[s._v("multipart/form-data")]),s._v("、"),a("code",[s._v("text/plain")])])])])]),s._v(" "),a("h4",{attrs:{id:"非简单请求"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#非简单请求"}},[s._v("#")]),s._v(" 非简单请求")]),s._v(" "),a("p",[s._v("非简单请求是那种对服务器有特殊要求的请求,比如请求方法是 "),a("code",[s._v("PUT")]),s._v(" 或 "),a("code",[s._v("DELETE")]),s._v(",或者 "),a("code",[s._v("Content-Type")]),s._v(" 字段的类型是 "),a("code",[s._v("application/json")])]),s._v(" "),a("h3",{attrs:{id:"跨域应用"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#跨域应用"}},[s._v("#")]),s._v(" 跨域应用")]),s._v(" "),a("p",[s._v("根据以上描述的内容,结合公司使用的规则")]),s._v(" "),a("ul",[a("li",[s._v("跨域")]),s._v(" "),a("li",[s._v("HTTP 动词为 "),a("code",[s._v("POST")])]),s._v(" "),a("li",[s._v("Content-Type 为 "),a("code",[s._v("application/json")])])]),s._v(" "),a("p",[s._v("那么在发起 HTTP 数据请求时,HTTP Client 插件将会增加一次 HTTP 查询请求,称为 “预检” 请求(preflight),特点就是该请求的 "),a("code",[s._v("General")]),s._v(" 段中的 "),a("code",[s._v("Request Method")]),s._v(" 值为 "),a("code",[s._v("OPTIONS")]),s._v(",没有请求参数,该请求的功能仅在向服务器询问当前的 "),a("strong",[s._v("非简单请求")]),s._v(" 是否允许访问")]),s._v(" "),a("div",{staticClass:"custom-block danger"},[a("p",{staticClass:"custom-block-title"},[s._v("应用服务器 / 静态网页服务器处理")]),s._v(" "),a("p",[s._v("项目开发之初,服务端应优先开发调试跨域支持,以免影响后续工作")]),s._v(" "),a("p",[s._v("另外,无论是具体的应用服务,如 "),a("code",[s._v("nodejs")]),s._v("、"),a("code",[s._v("PHP")]),s._v(" 、"),a("code",[s._v("GO")]),s._v(" 或 "),a("code",[s._v("Java")]),s._v(" 等,还是静态网页服务器 "),a("code",[s._v("nginx")]),s._v(",在检测到请求方法是 "),a("code",[s._v("OPTIONS")]),s._v(" 时,请直接返回 "),a("code",[s._v("204")]),s._v(" 状态,该状态意为请求成功,但无返回内容(NO CONTENT),该处理可避免预检请求执行业务内容,浪费资源")])]),s._v(" "),a("h2",{attrs:{id:"数据表格"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#数据表格"}},[s._v("#")]),s._v(" 数据表格")]),s._v(" "),a("p",[s._v("数据表格的标准数据交换格式")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 入参")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 表格自动根据当前分页情况发送")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"pageNumber"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"pageSize"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 自定义业务/查询参数")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 返回数据")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"gridResult"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 当前页")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"pageNumber"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 总记录数")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"totalRow"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("3")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 数据列表内容")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"lists"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n object "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 数据模型")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br")])]),a("h2",{attrs:{id:"登录授权"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#登录授权"}},[s._v("#")]),s._v(" 登录授权")]),s._v(" "),a("p",[s._v("访问类似用户登录、切换用户/公司/企业、交换/刷新 "),a("code",[s._v("token")]),s._v(" 等接口时,在请求成功后,应输出 "),a("code",[s._v("access")]),s._v(" 标准节点,用于输出登录授权相关的访问令牌及有效期限等内容")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"access"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"accessToken"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"expiresIn"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br")])]),a("h3",{attrs:{id:"处理逻辑"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#处理逻辑"}},[s._v("#")]),s._v(" 处理逻辑")]),s._v(" "),a("p",[s._v("用于数据请求的 "),a("strong",[s._v("http client")]),s._v(" 会在每一次数据请求成功后("),a("code",[s._v('"code": 0')]),s._v("),检查数据内容中是否包含 "),a("code",[s._v("access")]),s._v(" 节点,若有,则当前用户访问令牌等内容会被新数据所更新,并在下一次数据请求时,于 "),a("code",[s._v("Request Headers")]),s._v(" 数据段中增加")]),s._v(" "),a("p",[a("code",[s._v('"Authorization": "Bearer ${token}"')])]),s._v(" "),a("p",[s._v("属性,上述 "),a("code",[s._v("${token}")]),s._v(" 内容为登录授权接口返回的 "),a("code",[s._v("access.accessToken")]),s._v(" 数据,用于服务端进行用户身份验证")])])}),[],!1,null,null,null);t.default=r.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[17],{291:function(t,s,a){"use strict";a.r(s);var r=a(14),v=Object(r.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"功能插件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#功能插件"}},[t._v("#")]),t._v(" 功能插件")]),t._v(" "),a("p",[t._v("完全不与业务耦合的功能插件/组件,此类型的成果代表着不以项目类型或业务为限,可随意组合使用")]),t._v(" "),a("h2",{attrs:{id:"拼图验证码插件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#拼图验证码插件"}},[t._v("#")]),t._v(" 拼图验证码插件")]),t._v(" "),a("p",[t._v("用户操作行为验证,能有效区分人机,阻绝恶意程序带来的业务损失。")]),t._v(" "),a("p",[t._v("可应用于系统登录、用户端留言或发贴等场景")]),t._v(" "),a("p",[a("strong",[t._v("拼图拖拽模式")])]),t._v(" "),a("p",[a("img",{attrs:{src:"/frontend/plugins/captcha.png",alt:"captcha"}})]),t._v(" "),a("p",[a("strong",[t._v("随机文字点选模式")])]),t._v(" "),a("p",[a("img",{attrs:{src:"/frontend/plugins/captcha1.png",alt:"captcha1"}})]),t._v(" "),a("p",[t._v("图形验证码插件(极验),当前使用 "),a("strong",[t._v("免费")]),t._v(" 版本,限制为 200 次 / 小时的使用频率,且免费版仅能使用拼图拖拽或文字选择等形式的其中一种,收费版本可随出现验证类型或根据验证级别的提升智能选择不同验证方式和难度,且可定制背景图片")]),t._v(" "),a("p",[a("strong",[t._v("全部验证形式")])]),t._v(" "),a("p",[a("img",{attrs:{src:"/frontend/plugins/captcha-all.png",alt:"captcha-all"}})]),t._v(" "),a("blockquote",[a("p",[t._v("该功能需要服务端配套相关功能")])]),t._v(" "),a("h2",{attrs:{id:"短信验证"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#短信验证"}},[t._v("#")]),t._v(" 短信验证")]),t._v(" "),a("p",[t._v("使用手机及验证码进行身份验证")]),t._v(" "),a("img",{staticClass:"border-shadow",attrs:{src:"/frontend/plugins/sms.png"}}),t._v(" "),a("p",[t._v("提供了默认形态界面的完整功能,也允许只引用底层实现 API 适配自定义短信验证界面场景")]),t._v(" "),a("h2",{attrs:{id:"侧边栏抽屉"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#侧边栏抽屉"}},[t._v("#")]),t._v(" 侧边栏抽屉")]),t._v(" "),a("p",[t._v("一个可从屏幕边缘抽屉式滑出的内容展示层")]),t._v(" "),a("p",[a("img",{attrs:{src:"/frontend/plugins/slide.png",alt:"slide"}})]),t._v(" "),a("h2",{attrs:{id:"数据表格"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#数据表格"}},[t._v("#")]),t._v(" 数据表格")]),t._v(" "),a("p",[t._v("带有分页栏的数据表格,集成了单选、多选、跨页选择等功能")]),t._v(" "),a("p",[a("img",{attrs:{src:"/frontend/plugins/grid.png",alt:"grid"}})]),t._v(" "),a("blockquote",[a("p",[t._v("该插件依赖于 element-ui,以及服务端数据接口")])]),t._v(" "),a("h2",{attrs:{id:"数据下载-导出"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#数据下载-导出"}},[t._v("#")]),t._v(" 数据下载/导出")]),t._v(" "),a("p",[t._v("标准文件下载/导出功能,根据提供位置的内容构建文件流并自动开始下载,下载过程中默认开启全屏遮罩,并在下载完成后自动关闭")]),t._v(" "),a("p",[a("img",{attrs:{src:"/frontend/plugins/download.png",alt:"download"}})]),t._v(" "),a("blockquote",[a("p",[t._v("该插件遮罩功能依赖于 element-ui")])]),t._v(" "),a("h2",{attrs:{id:"选择器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#选择器"}},[t._v("#")]),t._v(" 选择器")]),t._v(" "),a("p",[t._v("用于挑选数据的选择器")]),t._v(" "),a("p",[a("strong",[t._v("选择器基本规则说明")])]),t._v(" "),a("p",[t._v("所有选择器应包含以下三个基本行为")]),t._v(" "),a("ul",[a("li",[t._v("右上角 "),a("code",[t._v("X")]),t._v(" 关闭按钮,点击后仅关闭选择器,不触发事件响应")]),t._v(" "),a("li",[a("code",[t._v("清空")]),t._v(" 按钮,清空选择器已选择项目,但不关闭窗口")]),t._v(" "),a("li",[a("code",[t._v("确定")]),t._v(" 按钮,触发回调事件,响应数据变更并关闭选择器窗口")])]),t._v(" "),a("p",[a("strong",[t._v("选择器基本构成元素图例")])]),t._v(" "),a("img",{staticClass:"border-shadow",attrs:{src:"/frontend/plugins/selector-base.png"}}),t._v(" "),a("h3",{attrs:{id:"单列数据穿梭框"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#单列数据穿梭框"}},[t._v("#")]),t._v(" 单列数据穿梭框")]),t._v(" "),a("p",[t._v("以数据列表形式展现,提供数据可以左右穿梭直观效果")]),t._v(" "),a("img",{staticClass:"border-shadow",attrs:{src:"/frontend/plugins/selector-transfer.png"}}),t._v(" "),a("h3",{attrs:{id:"树形数据选择器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#树形数据选择器"}},[t._v("#")]),t._v(" 树形数据选择器")]),t._v(" "),a("p",[t._v("以树形结构展示待选项目")]),t._v(" "),a("img",{staticClass:"border-shadow",attrs:{src:"/frontend/plugins/selector-tree.png"}}),t._v(" "),a("h3",{attrs:{id:"分组树形数据选择器"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#分组树形数据选择器"}},[t._v("#")]),t._v(" 分组树形数据选择器")]),t._v(" "),a("p",[t._v("多分组且每个分组可使用树形结构展示的选择器")]),t._v(" "),a("img",{staticClass:"border-shadow",attrs:{src:"/frontend/plugins/selector-tree-group.png"}})])}),[],!1,null,null,null);s.default=v.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[18],{285:function(t,a,s){"use strict";s.r(a);var e=s(14),r=Object(e.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"质量保证体系"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#质量保证体系"}},[t._v("#")]),t._v(" 质量保证体系")]),t._v(" "),s("p",[t._v("通过各类型自动化工具及测试用例对代码质量进行检测")]),t._v(" "),s("h2",{attrs:{id:"团队应用现状"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#团队应用现状"}},[t._v("#")]),t._v(" 团队应用现状")]),t._v(" "),s("ul",{staticClass:"contains-task-list"},[s("li",{staticClass:"task-list-item"},[s("input",{staticClass:"task-list-item-checkbox",attrs:{checked:"",disabled:"",type:"checkbox"}}),t._v(" 语法检查工具")]),t._v(" "),s("li",{staticClass:"task-list-item"},[s("input",{staticClass:"task-list-item-checkbox",attrs:{disabled:"",type:"checkbox"}}),t._v(" 单元测试")]),t._v(" "),s("li",{staticClass:"task-list-item"},[s("input",{staticClass:"task-list-item-checkbox",attrs:{disabled:"",type:"checkbox"}}),t._v(" 端对端测试")])]),t._v(" "),s("p",[t._v("目前所有自动化检查的方式仅为手动运行检测,后续将视情况切换为强制执行方式,检测不通过则不允许编译与发行")]),t._v(" "),s("h2",{attrs:{id:"语法检查"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#语法检查"}},[t._v("#")]),t._v(" 语法检查")]),t._v(" "),s("p",[t._v("语法检查工具用于检查代码的语法是否正确、风格是否符合要求")]),t._v(" "),s("p",[t._v("JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调试。像 ESLint 这样的可以让程序员在编码的过程中发现问题而不是在执行的过程中。")]),t._v(" "),s("h3",{attrs:{id:"使用工具"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#使用工具"}},[t._v("#")]),t._v(" 使用工具")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://eslint.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("ESLint"),s("OutboundLink")],1)])]),t._v(" "),s("p",[t._v("目前使用规则为宽松模式,后续将逐步增加规则要求级别")]),t._v(" "),s("h3",{attrs:{id:"运行方式"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#运行方式"}},[t._v("#")]),t._v(" 运行方式")]),t._v(" "),s("div",{staticClass:"language-bash line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run lint\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br")])]),s("h3",{attrs:{id:"检查结果要求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#检查结果要求"}},[t._v("#")]),t._v(" 检查结果要求")]),t._v(" "),s("p",[t._v("ESlint 命令行输出")]),t._v(" "),s("blockquote",[s("Badge",{attrs:{text:"DONE",vertical:"middle"}}),t._v(" No lint errors found!\n")],1),t._v(" "),s("p",[t._v("代表了语法检查通过")]),t._v(" "),s("h2",{attrs:{id:"单元测试"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#单元测试"}},[t._v("#")]),t._v(" 单元测试")]),t._v(" "),s("p",[t._v("单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作,可以理解为 "),s("strong",[t._v("白盒测试")]),t._v(" 的行为。")]),t._v(" "),s("h3",{attrs:{id:"为什么要写单元测试?"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#为什么要写单元测试?"}},[t._v("#")]),t._v(" 为什么要写单元测试?")]),t._v(" "),s("p",[t._v("Web应用程序越来越复杂,这意味着有更多的可能出错。测试是帮助我们提高代码质量、降低错误的最好方法和工具之一")]),t._v(" "),s("ul",[s("li",[t._v("测试可以确保得到预期结果")]),t._v(" "),s("li",[t._v("加快开发速度")]),t._v(" "),s("li",[t._v("方便维护")]),t._v(" "),s("li",[t._v("提供用法的文档")])]),t._v(" "),s("p",[t._v("通过测试提供软件的质量,在开始的时候,可能会降低开发速度。但是从长期看,尤其是那种代码需要长期维护、不断开发的情况,测试会大大加快开发速度,减轻维护难度")]),t._v(" "),s("h3",{attrs:{id:"使用功能库"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#使用功能库"}},[t._v("#")]),t._v(" 使用功能库")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[t._v("功能库")]),t._v(" "),s("th",[t._v("作用")])])]),t._v(" "),s("tbody",[s("tr",[s("td",[s("a",{attrs:{href:"https://mochajs.org/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Mocha"),s("OutboundLink")],1)]),t._v(" "),s("td",[t._v("单元测试引擎")])]),t._v(" "),s("tr",[s("td",[s("a",{attrs:{href:"https://www.chaijs.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Chai"),s("OutboundLink")],1)]),t._v(" "),s("td",[t._v("断言库")])]),t._v(" "),s("tr",[s("td",[s("a",{attrs:{href:"https://github.com/jsdom/jsdom",target:"_blank",rel:"noopener noreferrer"}},[t._v("JsDom"),s("OutboundLink")],1)]),t._v(" "),s("td",[t._v("虚拟浏览器容器")])]),t._v(" "),s("tr",[s("td",[s("a",{attrs:{href:"https://vue-test-utils.vuejs.org/zh/",target:"_blank",rel:"noopener noreferrer"}},[t._v("@vue/test-utils"),s("OutboundLink")],1)]),t._v(" "),s("td",[t._v("vue 官方提供单元测试工具集")])])])]),t._v(" "),s("h3",{attrs:{id:"运行方式-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#运行方式-2"}},[t._v("#")]),t._v(" 运行方式")]),t._v(" "),s("div",{staticClass:"language-bash line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run test:unit\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br")])]),s("h3",{attrs:{id:"适用范围"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#适用范围"}},[t._v("#")]),t._v(" 适用范围")]),t._v(" "),s("p",[t._v("很多时候,一些简单的功能场景,例如表单增、删、改、查等并没有编写单元测试的必要,况且编写单元测试需要不少时间成本,建议编写单元测试的场景如下")]),t._v(" "),s("ul",[s("li",[t._v("系统底层 API")]),t._v(" "),s("li",[t._v("功能封装类")]),t._v(" "),s("li",[t._v("功能组件")]),t._v(" "),s("li",[t._v("关联计算")]),t._v(" "),s("li",[t._v("业务集成联动")])]),t._v(" "),s("p",[t._v("对于功能封装函数,更是应该增加多种测试用例进行功能覆盖,对于边界测试更是其中重中之重")]),t._v(" "),s("h2",{attrs:{id:"端对端测试(end-to-end)"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#端对端测试(end-to-end)"}},[t._v("#")]),t._v(" 端对端测试(End-to-end)")]),t._v(" "),s("p",[t._v("端对端测试,简单地可以理解为站在用户角度的测试。站在用户的角度,他不需要知道软件的内部实现是怎么样的,只是使用即可;那么端对端测试模拟的就是用户的行为,只负责打开软件/浏览器,按序执行测试用例,并检查测试结果是否符合预期,它是 "),s("strong",[t._v("黑盒测试")]),t._v(" 的行为。")]),t._v(" "),s("h3",{attrs:{id:"使用功能库-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#使用功能库-2"}},[t._v("#")]),t._v(" 使用功能库")]),t._v(" "),s("ul",[s("li",[s("a",{attrs:{href:"https://www.cypress.io/",target:"_blank",rel:"noopener noreferrer"}},[t._v("cypress"),s("OutboundLink")],1)])]),t._v(" "),s("h3",{attrs:{id:"运行方式-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#运行方式-3"}},[t._v("#")]),t._v(" 运行方式")]),t._v(" "),s("div",{staticClass:"language-bash line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-bash"}},[s("code",[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("npm")]),t._v(" run test:e2e\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br")])])])}),[],!1,null,null,null);a.default=r.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[20],{288:function(s,t,a){"use strict";a.r(t);var n=a(14),e=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"开发规范"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#开发规范"}},[s._v("#")]),s._v(" 开发规范")]),s._v(" "),a("p",[s._v("编码规范好比协议,有了 "),a("code",[s._v("Http")]),s._v("、"),a("code",[s._v("TCP")]),s._v(" 等各种协议,计算机之间才能有效地通信,同样的,有了一致的编码规范,开发人员之间才能有效地合作")]),s._v(" "),a("p",[s._v("为提高软件开发质量,降低开发周期,增强代码的可重用性和易读性,使软件便于维护及移交,开发人员间便于交流和协作,本规范适用于前端团队,以作参考。")]),s._v(" "),a("div",{staticClass:"custom-block danger"},[a("p",{staticClass:"custom-block-title"},[s._v("注意")]),s._v(" "),a("p",[s._v("开发规范执行情况将会不定期进行 "),a("strong",[s._v("Code Review")]),s._v(",不符合规范的内容必须进行整改。")])]),s._v(" "),a("h2",{attrs:{id:"vscode-插件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#vscode-插件"}},[s._v("#")]),s._v(" VSCode 插件")]),s._v(" "),a("p",[s._v("为了使开发过程控制,错误提醒以及语法规范在代码编写过程中得到有效提醒及控制,要求使用 "),a("strong",[s._v("VSCode")]),s._v(" 必须安装以下插件")]),s._v(" "),a("ul",[a("li",[s._v("ESLint")]),s._v(" "),a("li",[s._v("HTML Snippets")]),s._v(" "),a("li",[s._v("IntelliSense for CSS class names in HTML")]),s._v(" "),a("li",[s._v("JavaScript (ES6) code snippets")]),s._v(" "),a("li",[s._v("JavaScript standardjs styled snippets")]),s._v(" "),a("li",[s._v("language-stylus")]),s._v(" "),a("li",[s._v("npm")]),s._v(" "),a("li",[s._v("npm Intellisense")]),s._v(" "),a("li",[s._v("Prettier - Code formatter")]),s._v(" "),a("li",[s._v("Sass")]),s._v(" "),a("li",[s._v("StandardJS - JavaScript Standard Style")]),s._v(" "),a("li",[s._v("Todo Tree")]),s._v(" "),a("li",[s._v("Vetur")]),s._v(" "),a("li",[s._v("Vue 2 Snippets")])]),s._v(" "),a("h2",{attrs:{id:"文件与目录命名规范"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#文件与目录命名规范"}},[s._v("#")]),s._v(" 文件与目录命名规范")]),s._v(" "),a("p",[s._v("前端开发规范应用于 Web 网站、管理平台、移动端内嵌、微信小程序等范围,即使是本文档项目("),a("code",[s._v("doc-press")]),s._v(")中的文件命名,依然建议应用本规范")]),s._v(" "),a("p",[s._v("命名规范优秀的行业范例可参考 "),a("a",{attrs:{href:"https://github.com/vuejs/vue",target:"_blank",rel:"noopener noreferrer"}},[s._v("Vuejs"),a("OutboundLink")],1),s._v(" 和 "),a("a",{attrs:{href:"https://github.com/facebook/react",target:"_blank",rel:"noopener noreferrer"}},[s._v("Reactjs"),a("OutboundLink")],1),s._v(" 的源码")]),s._v(" "),a("h3",{attrs:{id:"目录命名"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#目录命名"}},[s._v("#")]),s._v(" 目录命名")]),s._v(" "),a("p",[s._v("业务功能结构示例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("├─用户管理\n └─授权管理\n ├─角色管理\n └─用户角色绑定\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])]),a("p",[s._v("目录命名示例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("✖\n├─userManage\n └─userAuthManage\n ├─RoleManage\n └─userRoleBind\n\n✔\n├─user\n └─auth\n ├─role\n └─user"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v("role\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br")])]),a("p",[s._v("目录的命名,应尽可能结合上下、父子结构进行上下文信息描述,目录名自身应尽可能简洁直观。文本上使用全小写字母,有词组的情况使用 “-” 符号隔开")]),s._v(" "),a("h4",{attrs:{id:"为什么要使用小写?"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#为什么要使用小写?"}},[s._v("#")]),s._v(" 为什么要使用小写?")]),s._v(" "),a("ul",[a("li",[a("p",[s._v("易用性/可读性"),a("br"),s._v("\n小写文件名通常比大写文件名更易读,比如 "),a("code",[s._v("accessibility.txt")]),s._v(" 就比 "),a("code",[s._v("ACCESSIBILITY.TXT")]),s._v(" 易读。即使使用驼峰命名法,如 "),a("code",[s._v("UserRoleBind")]),s._v(" 或 "),a("code",[s._v("userRoleBind")]),s._v(" 不如 "),a("code",[s._v("user-role-bind")]),s._v(" 的可读性高")])]),s._v(" "),a("li",[a("p",[s._v("兼容性"),a("br"),s._v("\n不同操作系统对于大小兼容程度不一样,为了保证编译、部署后的内容在所有平台上顺利部署,目录名也应当使用小写")])]),s._v(" "),a("li",[a("p",[s._v("行业惯例"),a("br"),s._v("\n诸如 "),a("code",[s._v("Java")]),s._v("、"),a("code",[s._v(".net")]),s._v("、"),a("code",[s._v("C")]),s._v(" 等著名语言的包路径均为小写,行业巨头的良好规范也逐渐成为行业里约定俗成的规范")])])]),s._v(" "),a("h3",{attrs:{id:"文件命名"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#文件命名"}},[s._v("#")]),s._v(" 文件命名")]),s._v(" "),a("p",[s._v("文件名的规则在遵循目录命名的规则作为基础规则,但文件名的命名规则相比目录,略有不同")]),s._v(" "),a("h4",{attrs:{id:"插件-组件-页面"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#插件-组件-页面"}},[s._v("#")]),s._v(" 插件/组件/页面")]),s._v(" "),a("p",[s._v("单文件组件、插件/组件主体、页面的文件名应该始终是单词大写开头 (PascalCase)")]),s._v(" "),a("p",[s._v("单词大写开头对于代码编辑器的自动补全最为友好,因为这使得我们在 JS(X) 和模板中引用组件的方式尽可能的一致。然而,混用文件命名方式有的时候会导致大小写不敏感的文件系统的问题。")]),s._v(" "),a("p",[a("strong",[s._v("Vuejs")]),s._v(" 官方文档中,对于文件命名也有相应的 "),a("a",{attrs:{href:"https://cn.vuejs.org/v2/style-guide/#%E5%8D%95%E6%96%87%E4%BB%B6%E7%BB%84%E4%BB%B6%E6%96%87%E4%BB%B6%E7%9A%84%E5%A4%A7%E5%B0%8F%E5%86%99-%E5%BC%BA%E7%83%88%E6%8E%A8%E8%8D%90",target:"_blank",rel:"noopener noreferrer"}},[s._v("指导规范"),a("OutboundLink")],1)]),s._v(" "),a("p",[s._v("文件命名示例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("✖\ncomponents\n └─grid\n ├─grid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sass\n ├─headRow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("vue\n ├─bodyrow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("vue\n ├─grid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("vue\n └─index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("js\n\n✔\ncomponents\n └─grid\n ├─grid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("sass\n ├─HeadRow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("vue\n ├─BodyRow"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("vue\n ├─Grid"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("vue\n └─index"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(".")]),s._v("js\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br")])]),a("h2",{attrs:{id:"css-样式预处理"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#css-样式预处理"}},[s._v("#")]),s._v(" CSS 样式预处理")]),s._v(" "),a("p",[s._v("对于 CSS 样式预处理方案,比较流行的有 "),a("code",[s._v("SASS/SCSS")]),s._v("、"),a("code",[s._v("LESS")]),s._v(" 和 "),a("code",[s._v("Stylus")]),s._v(",大体上的使用方式类似,区别在于功能的多少与扩展的能力。")]),s._v(" "),a("p",[s._v("综合各方面考虑,开发规范如下(微信小程序不在讨论范围)")]),s._v(" "),a("ul",[a("li",[s._v("前端项目统一使用 "),a("code",[s._v("SASS/SCSS")]),s._v(" 开发样式预处理内容")]),s._v(" "),a("li",[a("code",[s._v("web-open-platform")]),s._v(" 项目使用 "),a("code",[s._v("Stylus")])])]),s._v(" "),a("p",[s._v("关于文件及目录的命名遵循 "),a("a",{attrs:{href:"#%E6%96%87%E4%BB%B6%E4%B8%8E%E7%9B%AE%E5%BD%95%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83"}},[s._v("文件与目录命名")]),s._v(" 规则")]),s._v(" "),a("h3",{attrs:{id:"class-命名"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#class-命名"}},[s._v("#")]),s._v(" class 命名")]),s._v(" "),a("p",[s._v('对于 class name 的命名同样遵循全小写与单词间使用 "-" 隔开原则')]),s._v(" "),a("p",[s._v("命名示例")]),s._v(" "),a("div",{staticClass:"language-scss line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-scss"}},[a("code",[a("span",{pre:!0,attrs:{class:"token selector"}},[s._v(".user-container ")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token selector"}},[s._v("width: 100vw\n .user-header ")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token property"}},[s._v("background-color")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),s._v(" #eee\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("h3",{attrs:{id:"样式抽象"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#样式抽象"}},[s._v("#")]),s._v(" 样式抽象")]),s._v(" "),a("p",[s._v("一个工程通常会有大量的页面、组件和插件,功能虽不同,但风格必须统一。对于主题风格部分的内容,必须提取到专用样式文件中进行维护。类似的功能或结构的样式内容在多处独立维护,是冗余且低效的,多人协同开发时须杜绝该现象发生,在进行样式定义之前应互相询问是否存在重复定义的情况。")]),s._v(" "),a("p",[a("strong",[s._v("BTW")]),a("br"),s._v("\nCSS 样式预处理,只使用最基本的结构嵌套功能是不够的,了解和使用高级特性才是提高效率和效果的最佳实践")]),s._v(" "),a("h2",{attrs:{id:"路由命名规则"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#路由命名规则"}},[s._v("#")]),s._v(" 路由命名规则")]),s._v(" "),a("p",[s._v("在路由(Vue Router)的命名中,依然遵循 "),a("a",{attrs:{href:"#%E6%96%87%E4%BB%B6%E4%B8%8E%E7%9B%AE%E5%BD%95%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83"}},[s._v("文件与目录命名")]),s._v(" 规则;因为路由命名的结果最终会体现在浏览器的地址栏中,所以在路由的命名过程中依然是推荐结合业务结构的上下文级进行组合命名,内容必须做到精简、简洁,不要让最终呈现出来的地址链接过于冗长。")]),s._v(" "),a("p",[s._v("一个网站的路由结构通常两层就可以完全满足需求,所以除去页面布局结构外,大量的业务页面的路由均为同级,既然是同级,就需要通过路由的路径(path)来声明功能的业务结构")]),s._v(" "),a("p",[s._v("业务功能结构示例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("├─系统管理\n └─用户管理\n └─角色授权管理\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br")])]),a("p",[s._v("路由命名示例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("✖\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/systemManage/userManage/roleAuth'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n✔\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/system/user/role-auth'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("p",[a("strong",[s._v("现有项目命名情况改造实例")])]),s._v(" "),a("p",[s._v("以现有素+管理平台的路由设置情况进行举例")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("✖ 不推荐\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stockManager/stockType'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货类别")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stockManager/goodsClassify'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货分类")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stockManager/goodsSeries'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货系列")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stockManager/goodsUnit'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 计量组单位")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stockManager/stockBrands'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货品牌")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stockManager/stockForm'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货形态")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stockManager/stockArchives'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货档案")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n\n✔ 推荐设置\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stock/type'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货类别")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stock/category'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货分类")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stock/series'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货系列")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stock/goods-unit'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 计量组单位")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stock/brand'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货品牌")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stock/form'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货形态")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v(" path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/workbench/stock/file'")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 存货档案")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br")])]),a("p",[s._v("通常情况下,对于路由的定义,不设置 "),a("code",[s._v("name")]),s._v(" 属性,推荐仅对于使用频率较高的功能模块设置,例如登录、首页等最经常被使用的模块,另外就是业务中也经常会被多个场景中使用的情况")]),s._v(" "),a("h3",{attrs:{id:"异步加载页面-组件"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#异步加载页面-组件"}},[s._v("#")]),s._v(" 异步加载页面/组件")]),s._v(" "),a("p",[s._v("对于路由的定义推荐使用以下模式")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n path"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'/aaa/bbb'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token function-variable function"}},[s._v("component")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=>")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("import")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token string"}},[s._v("'@/views/abc'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])])])}),[],!1,null,null,null);t.default=e.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[21],{286:function(s,t,a){"use strict";a.r(t);var n=a(14),r=Object(n.a)({},(function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"系统交互模型"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#系统交互模型"}},[s._v("#")]),s._v(" 系统交互模型")]),s._v(" "),a("p",[a("strong",[s._v("系统交互模型")]),s._v(",描述了软件产品的网站类型项目中系统基础功能模块的流程、数据模型以及相应 API 输入输出标准格式,包含以下内容:")]),s._v(" "),a("ul",[a("li",[s._v("用户登录,包含登录形式及流程")]),s._v(" "),a("li",[s._v("认证授权方式")]),s._v(" "),a("li",[s._v("数据模型输出")])]),s._v(" "),a("p",[s._v("目标在于各端作为 "),a("strong",[s._v("数据服务供应商")]),s._v(" 或 "),a("strong",[s._v("数据应用消费者")]),s._v(" 在交互上统一行为,面向标准接口开发,使得项目新建之初可依照 "),a("strong",[s._v("系统交互模型")]),s._v(" 快速完成系统基础功能建设,从而更从容而有序应对企业后续不断增加的项目和业务")]),s._v(" "),a("h2",{attrs:{id:"基础原则"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#基础原则"}},[s._v("#")]),s._v(" 基础原则")]),s._v(" "),a("h3",{attrs:{id:"api-路径命名规则"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#api-路径命名规则"}},[s._v("#")]),s._v(" API 路径命名规则")]),s._v(" "),a("p",[s._v("基于 "),a("RouterLink",{attrs:{to:"/team/frontend/http.html#api-交互规则"}},[s._v("数据交互格式标准 - API 交互规则")]),s._v(" 规则, 在路径命名中应用 "),a("RouterLink",{attrs:{to:"/team/frontend/standard.html#路由命名规则"}},[s._v("开发规范 - 路由命名规则")]),s._v(" 规则,简言之特性如下")],1),s._v(" "),a("ul",[a("li",[s._v("路径使用功能/业务描述性命名,例:"),a("code",[s._v("/user/profile/del/{id}")])]),s._v(" "),a("li",[s._v("单词均使用小写方式书写")]),s._v(" "),a("li",[s._v("词组使用 "),a("code",[s._v("-")]),s._v(" 符号分隔,例:"),a("code",[s._v("/config/user-role/list")])])]),s._v(" "),a("h3",{attrs:{id:"对象、属性命名规则"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#对象、属性命名规则"}},[s._v("#")]),s._v(" 对象、属性命名规则")]),s._v(" "),a("p",[s._v("对于数据接口中输出的对象名,以及对象中的属性等内容,应使用驼峰命名法(Camel Case)")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[s._v("✖\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"user_info"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"Name"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"zhangsan"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"age"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("18")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"phone_number"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"13655555555"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"admin_type"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n✔\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"userInfo"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"name"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"zhangsan"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"age"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("18")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"phoneNumber"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"13655555555"')]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"adminType"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br")])]),a("p",[a("code",[s._v("xxx_yyy_zzz")]),s._v(" 命名格式仅推荐应用于数据库(表名及表字段名)环境")]),s._v(" "),a("p",[s._v("在编程环境中,即使是变量的声明都应尽可能不使用该格式,在自动化语法检查工具中,也有相应的检查/推荐规则:"),a("a",{attrs:{href:"https://cn.eslint.org/docs/rules/camelcase",target:"_blank",rel:"noopener noreferrer"}},[s._v('ESLint - "camelcase" 规则'),a("OutboundLink")],1),s._v(",但常量的命名是个例外")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// javascript")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("MASTER_ADMIN")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("STATUS_ENABLED")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("const")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("STATUS_DISABLED")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// java")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("public")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("static")]),s._v(" final String "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("STATUS_ENABLED")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("1")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("public")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("static")]),s._v(" final String "),a("span",{pre:!0,attrs:{class:"token constant"}},[s._v("STATUS_DISABLED")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("2")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br")])]),a("h2",{attrs:{id:"流程示意"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#流程示意"}},[s._v("#")]),s._v(" 流程示意")]),s._v(" "),a("p",[a("img",{attrs:{src:"/frontend/login-process.png",alt:"login-process"}})]),s._v(" "),a("h2",{attrs:{id:"数据模型"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#数据模型"}},[s._v("#")]),s._v(" 数据模型")]),s._v(" "),a("p",[s._v("罗列了系统功能相关的基础数据模型,此处仅列举满足系统功能的模型及元素,后续可根据实际情况进行增补修订")]),s._v(" "),a("h3",{attrs:{id:"用户"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#用户"}},[s._v("#")]),s._v(" 用户")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"id"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 用户 id")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"name"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 用户名称")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"avatar"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 用户头像")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"companyId"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 用户当前所属公司 id")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"companyName"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 公司名称")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"companyLogo"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 公司 logo")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"adminType"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 管理员类型(0:普通用户 1:主管理员 2:子管理员)")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br")])]),a("h3",{attrs:{id:"公司"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#公司"}},[s._v("#")]),s._v(" 公司")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"id"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 公司 id")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"name"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 公司名称")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"logo"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 公司 logo")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br")])]),a("h3",{attrs:{id:"菜单"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#菜单"}},[s._v("#")]),s._v(" 菜单")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("br"),a("br"),a("br"),a("br"),a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"id"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 菜单 id")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"name"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 菜单名称")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"icon"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 菜单图标")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"parentId"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 菜单父节点 id")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"sort"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 排列顺序")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 菜单编码")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"status"')]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 菜单状态(1:启用,0:禁用)")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br")])]),a("p",[s._v("系统菜单应全量输出,但需要在 "),a("code",[s._v("status")]),s._v(" 属性中体现该菜单节点的状态")]),s._v(" "),a("div",{staticClass:"custom-block danger"},[a("p",{staticClass:"custom-block-title"},[s._v("注意")]),s._v(" "),a("p",[a("code",[s._v("code")]),s._v(" 字段为菜单项目的编码,是前端系统中作为功能模块的唯一标识编码而定义,该编码由前端统一进行定义")])]),s._v(" "),a("h3",{attrs:{id:"权限"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#权限"}},[s._v("#")]),s._v(" 权限")]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("div",{staticClass:"highlight-lines"},[a("br"),a("div",{staticClass:"highlighted"},[s._v(" ")]),a("br"),a("br"),a("br"),a("br"),a("br")]),a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("code"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 权限数据节点输出,内容根据具体系统情况而定")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("p",[s._v("此处的 "),a("code",[s._v("code")]),s._v(" 与上述 "),a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#菜单"}},[s._v("菜单模型")]),s._v(" 中的 "),a("code",[s._v("code")]),s._v(" 属性对应,代表了某个功能模块")],1),s._v(" "),a("h2",{attrs:{id:"api-接口"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#api-接口"}},[s._v("#")]),s._v(" API 接口")]),s._v(" "),a("p",[s._v("系统功能模块 API 接口,内容仅为请求成功后返回的数据格式,完整数据交换格式请参考:"),a("RouterLink",{attrs:{to:"/team/frontend/http.html"}},[s._v("数据交互格式标准")])],1),s._v(" "),a("h3",{attrs:{id:"图形验证码初始化"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#图形验证码初始化"}},[s._v("#")]),s._v(" 图形验证码初始化")]),s._v(" "),a("p",[s._v("图形验证码使用的是极验图形验证码,根据返回的数据初始化图形验证码插件")]),s._v(" "),a("p",[s._v("接口路径: "),a("code",[s._v("/auth/captcha-init")])]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 入参")]),s._v("\n无\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 返回数据")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 该格式为极验插件的标准数据格式")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"success"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"gt"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"challenge"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"newCaptcha"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" boolean\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br")])]),a("h3",{attrs:{id:"密码登录"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#密码登录"}},[s._v("#")]),s._v(" 密码登录")]),s._v(" "),a("p",[s._v("使用 "),a("strong",[s._v("用户名")]),s._v(" 和 "),a("strong",[s._v("密码")]),s._v(" 进行登录")]),s._v(" "),a("p",[s._v("接口路径:"),a("code",[s._v("/auth/pwd-login")])]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 入参")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"username"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 用户名")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"password"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 密码")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 返回数据")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"access"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"accessToken"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"expiresIn"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br")])]),a("h3",{attrs:{id:"获取手机短信验证码"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取手机短信验证码"}},[s._v("#")]),s._v(" 获取手机短信验证码")]),s._v(" "),a("p",[s._v("使用 "),a("strong",[s._v("手机号")]),s._v(" 获得验证码用于系统登录,成功访问接口后,相应手机号的手机将收到包含验证码的短信")]),s._v(" "),a("p",[s._v("接口路径:"),a("code",[s._v("/auth/sms-code")])]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 入参")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"phone"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 手机号")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 返回数据")]),s._v("\n无\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br")])]),a("h3",{attrs:{id:"手机短信验证码登录"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#手机短信验证码登录"}},[s._v("#")]),s._v(" 手机短信验证码登录")]),s._v(" "),a("p",[s._v("使用 "),a("strong",[s._v("手机号")]),s._v(" 和 "),a("strong",[s._v("验证码")]),s._v(" 进行登录")]),s._v(" "),a("p",[s._v("接口路径:"),a("code",[s._v("/auth/sms-login")])]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 入参")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"phone"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 手机号")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 短信验证码")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 返回数据")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"access"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"accessToken"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"expiresIn"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br")])]),a("h3",{attrs:{id:"获取当前用户数据"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#获取当前用户数据"}},[s._v("#")]),s._v(" 获取当前用户数据")]),s._v(" "),a("p",[s._v("在使用 "),a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#密码登录"}},[s._v("密码登录")]),s._v(" 或 "),a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#手机短信验证码登录"}},[s._v("手机短信验证码登录")]),s._v(" 登录成功后,获取当前用户的系统功能模型集合,系统根据该模型集合自行进行数据转换、过滤以及缓存,完成网站基础框架功能初始化")],1),s._v(" "),a("p",[s._v("接口路径:"),a("code",[s._v("/auth/profile")])]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 入参")]),s._v("\n无\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 返回数据")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"user"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 用户模型")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"companys"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 公司模型")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"menus"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 菜单模型")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"permission"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),s._v("菜单节点编码"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 权限数据节点")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("...")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br"),a("span",{staticClass:"line-number"},[s._v("16")]),a("br"),a("span",{staticClass:"line-number"},[s._v("17")]),a("br"),a("span",{staticClass:"line-number"},[s._v("18")]),a("br"),a("span",{staticClass:"line-number"},[s._v("19")]),a("br"),a("span",{staticClass:"line-number"},[s._v("20")]),a("br"),a("span",{staticClass:"line-number"},[s._v("21")]),a("br"),a("span",{staticClass:"line-number"},[s._v("22")]),a("br"),a("span",{staticClass:"line-number"},[s._v("23")]),a("br"),a("span",{staticClass:"line-number"},[s._v("24")]),a("br"),a("span",{staticClass:"line-number"},[s._v("25")]),a("br"),a("span",{staticClass:"line-number"},[s._v("26")]),a("br"),a("span",{staticClass:"line-number"},[s._v("27")]),a("br"),a("span",{staticClass:"line-number"},[s._v("28")]),a("br"),a("span",{staticClass:"line-number"},[s._v("29")]),a("br"),a("span",{staticClass:"line-number"},[s._v("30")]),a("br"),a("span",{staticClass:"line-number"},[s._v("31")]),a("br"),a("span",{staticClass:"line-number"},[s._v("32")]),a("br")])]),a("p",[s._v("数据节点与数据模型的对应关系")]),s._v(" "),a("table",[a("thead",[a("tr",[a("th",[s._v("数据节点")]),s._v(" "),a("th",[s._v("数据模型")])])]),s._v(" "),a("tbody",[a("tr",[a("td",[s._v("user")]),s._v(" "),a("td",[a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#用户"}},[s._v("用户模型")])],1)]),s._v(" "),a("tr",[a("td",[s._v("companys")]),s._v(" "),a("td",[a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#公司"}},[s._v("公司模型")])],1)]),s._v(" "),a("tr",[a("td",[s._v("menus")]),s._v(" "),a("td",[a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#菜单"}},[s._v("菜单模型")])],1)]),s._v(" "),a("tr",[a("td",[s._v("permission")]),s._v(" "),a("td",[a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#权限"}},[s._v("权限模型")])],1)])])]),s._v(" "),a("h3",{attrs:{id:"切换公司"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#切换公司"}},[s._v("#")]),s._v(" 切换公司")]),s._v(" "),a("p",[s._v("切换用户当前所属公司,该操作相当于用户重新登录,所以需要重新分发用户的访问令牌。在完成公司切换的操作后,前端系统会自行再次访问 "),a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#获取当前用户数据"}},[s._v("获取当前用户数据")]),s._v(" 接口,更新用户信息中当前所属公司等相关信息")],1),s._v(" "),a("p",[s._v("接口路径:"),a("code",[s._v("/auth/switch-company")])]),s._v(" "),a("div",{staticClass:"language-js line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-js"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 入参")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"companyId"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 待切换的公司 id")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// 返回数据")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"code"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token number"}},[s._v("0")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"data"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"access"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"accessToken"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" string"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token string"}},[s._v('"expiresIn"')]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(":")]),s._v(" number\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br"),a("span",{staticClass:"line-number"},[s._v("11")]),a("br"),a("span",{staticClass:"line-number"},[s._v("12")]),a("br"),a("span",{staticClass:"line-number"},[s._v("13")]),a("br"),a("span",{staticClass:"line-number"},[s._v("14")]),a("br"),a("span",{staticClass:"line-number"},[s._v("15")]),a("br")])]),a("p",[s._v("事实上有多个接口均为获取用户访问令牌的功能:")]),s._v(" "),a("ul",[a("li",[a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#密码登录"}},[s._v("密码登录")])],1),s._v(" "),a("li",[a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#获取当前用户数据"}},[s._v("获取当前用户数据")])],1),s._v(" "),a("li",[a("RouterLink",{attrs:{to:"/team/frontend/system-model.html#切换公司"}},[s._v("切换公司")])],1)]),s._v(" "),a("p",[s._v("数据格式及处理规则请参考 "),a("RouterLink",{attrs:{to:"/team/frontend/http.html#登录授权"}},[s._v("数据交互格式标准 - 登录授权")])],1)])}),[],!1,null,null,null);t.default=r.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{290:function(t,a,r){"use strict";r.r(a);var e=r(14),s=Object(e.a)({},(function(){var t=this,a=t.$createElement,r=t._self._c||a;return r("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[r("h1",{attrs:{id:"网页能力开放平台"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#网页能力开放平台"}},[t._v("#")]),t._v(" 网页能力开放平台")]),t._v(" "),r("h2",{attrs:{id:"平台介绍及使用规范"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#平台介绍及使用规范"}},[t._v("#")]),t._v(" 平台介绍及使用规范")]),t._v(" "),r("h4",{attrs:{id:"背景情况说明"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#背景情况说明"}},[t._v("#")]),t._v(" 背景情况说明")]),t._v(" "),r("p",[r("em",[t._v("网页能力开放平台")]),t._v(" 作为专为 "),r("code",[t._v("App")]),t._v(" 中内嵌或在 "),r("code",[t._v("Desktop / Mobile")]),t._v(" 独立功能网页输出的功能平台,将移动、多场景共享使用的内容聚合于一个独立工程中,以达到专项优化,专项处理的功能需求")]),t._v(" "),r("p",[t._v("平台使用 "),r("a",{attrs:{href:"https://getbootstrap.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Bootstrap"),r("OutboundLink")],1),t._v(" UI 框架的 4.x 版本的样式作为基础框架样式库使用, 原则上如果没有极其特殊需求,不允许再引用其他样式进行使用")]),t._v(" "),r("h4",{attrs:{id:"项目名称"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#项目名称"}},[t._v("#")]),t._v(" 项目名称")]),t._v(" "),r("p",[r("code",[t._v("web-open-platform")])]),t._v(" "),r("h4",{attrs:{id:"内容管理规范"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#内容管理规范"}},[t._v("#")]),t._v(" 内容管理规范")]),t._v(" "),r("ul",[r("li",[t._v("内容以项目作为基本单位建立目录")]),t._v(" "),r("li",[t._v("使用 "),r("a",{attrs:{href:"https://getbootstrap.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Bootstrap"),r("OutboundLink")],1),t._v(" 作为基础 UI 框架(仅使用样式),为界面中排版布局,样式组件所用")]),t._v(" "),r("li",[t._v("样式表预处理语言必须使用 "),r("a",{attrs:{href:"https://www.zhangxinxu.com/jq/stylus/",target:"_blank",rel:"noopener noreferrer"}},[t._v("Stylus"),r("OutboundLink")],1)])]),t._v(" "),r("h4",{attrs:{id:"路由命令规则"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#路由命令规则"}},[t._v("#")]),t._v(" 路由命令规则")]),t._v(" "),r("div",{staticClass:"language- line-numbers-mode"},[r("pre",{pre:!0,attrs:{class:"language-text"}},[r("code",[t._v("project/function[/children-function]\n")])]),t._v(" "),r("div",{staticClass:"line-numbers-wrapper"},[r("span",{staticClass:"line-number"},[t._v("1")]),r("br")])]),r("p",[r("strong",[t._v("示例")])]),t._v(" "),r("p",[t._v("能力展示平台的公告详情功能: "),r("code",[t._v("http://web-open-platform.com/ability/announcement")])]),t._v(" "),r("h2",{attrs:{id:"现有项目-模块"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#现有项目-模块"}},[t._v("#")]),t._v(" 现有项目/模块")]),t._v(" "),r("p",[t._v("陈列出在 "),r("strong",[t._v("网页能力开放平台")]),t._v(" 中已完成或正在进行中的项目")]),t._v(" "),r("h3",{attrs:{id:"app-内嵌网页"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#app-内嵌网页"}},[t._v("#")]),t._v(" App 内嵌网页")]),t._v(" "),r("p",[t._v("应用于 "),r("strong",[t._v("App(Android、IOS)")]),t._v(" 内嵌使用")]),t._v(" "),r("h4",{attrs:{id:"能力展示"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#能力展示"}},[t._v("#")]),t._v(" 能力展示")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("活动 / 公告内容展示")]),t._v(" "),r("Badge",{attrs:{text:"完成",type:"success",vertical:"middle"}}),r("br"),t._v("\n提供展示活动 / 公告的标题、内容以及投票交互能力,若有交互功能场景则在提交数据后,通知客户端处理后续功能")],1)]),t._v(" "),r("h4",{attrs:{id:"素-管理平台"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#素-管理平台"}},[t._v("#")]),t._v(" 素+管理平台")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("用户协议")]),t._v(" "),r("Badge",{attrs:{text:"完成",vertical:"middle"}}),r("br"),t._v("\n提供素+管理平台用户协议详情,内容来自管理后台")],1),t._v(" "),r("li",[r("strong",[t._v("隐私政策")]),t._v(" "),r("Badge",{attrs:{text:"完成",vertical:"middle"}}),r("br"),t._v("\n提供素+管理平台隐私政策详情,内容来自管理后台")],1),t._v(" "),r("li",[r("strong",[t._v("App 版本更新详情")]),t._v(" "),r("Badge",{attrs:{text:"完成",vertical:"middle"}}),r("br"),t._v("\n提供 App 版本更新详情内容展示,内容来自管理后台")],1),t._v(" "),r("li",[r("strong",[t._v("仓储管理预警消息详情")]),t._v(" "),r("Badge",{attrs:{text:"完成",vertical:"middle"}}),r("br"),t._v("\n提供预警消息详情内容查看,其中又分为 “产品” 与 “仓库” 两种类型")],1)]),t._v(" "),r("h3",{attrs:{id:"独立功能页"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#独立功能页"}},[t._v("#")]),t._v(" 独立功能页")]),t._v(" "),r("p",[t._v("应用于 "),r("strong",[t._v("Desktop、Mobile")]),t._v(" 的独立功能网页")]),t._v(" "),r("h4",{attrs:{id:"素-管理平台-2"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#素-管理平台-2"}},[t._v("#")]),t._v(" 素+管理平台")]),t._v(" "),r("ul",[r("li",[r("strong",[t._v("App 版本更新详情")]),t._v(" "),r("Badge",{attrs:{text:"完成",vertical:"middle"}}),r("br"),t._v("\n提供 App 版本更新详情内容展示,内容来自管理后台")],1),t._v(" "),r("li",[r("strong",[t._v("仓储管理预警消息详情")]),t._v(" "),r("Badge",{attrs:{text:"完成",vertical:"middle"}}),r("br"),t._v("\n提供预警消息详情内容查看,其中又分为 “产品” 与 “仓库” 两种类型")],1)])])}),[],!1,null,null,null);a.default=s.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{283:function(t,s,e){"use strict";e.r(s);var n=e(14),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"ios-苹果端"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#ios-苹果端"}},[this._v("#")]),this._v(" IOS 苹果端")])])}),[],!1,null,null,null);s.default=r.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{289:function(t,s,e){"use strict";e.r(s);var n=e(14),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"测试组"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#测试组"}},[this._v("#")]),this._v(" 测试组")])])}),[],!1,null,null,null);s.default=r.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{273:function(t,s,e){"use strict";e.r(s);var n=e(14),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"行政管理"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#行政管理"}},[this._v("#")]),this._v(" 行政管理")])])}),[],!1,null,null,null);s.default=r.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{272:function(t,a,s){"use strict";s.r(a);var r=s(14),_=Object(r.a)({},(function(){var t=this,a=t.$createElement,s=t._self._c||a;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"项目清单"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#项目清单"}},[t._v("#")]),t._v(" 项目清单")]),t._v(" "),s("p",[t._v("汇总买买买公司目前正在开发项目清单,将实时同步各个项目开发状态。")]),t._v(" "),s("h2",{attrs:{id:"能力展示app-企业员工能力展示应用"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#能力展示app-企业员工能力展示应用"}},[t._v("#")]),t._v(" 能力展示APP - 企业员工能力展示应用")]),t._v(" "),s("p",[t._v("能力展示,用于展示企业员工能力的应用。促进员工积极去发现问题、分析问题、解决问题,并在轻松娱乐的氛围下,展示能力同时并共同营建一个和谐可持续发展的大家庭。主要功能有,企业的提问管理、部门统计、公司表彰、星数排行。")]),t._v(" "),s("h3",{attrs:{id:"下载体验"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#下载体验"}},[t._v("#")]),t._v(" 下载体验")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("IOS版本")])])]),t._v(" "),s("p",[s("img",{attrs:{src:"/ios/ability/IOS.png",alt:"IOS下载二维码"}})]),t._v(" "),s("ul",[s("li",[s("p",[s("strong",[t._v("安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。")])])]),t._v(" "),s("li",[s("p",[s("strong",[t._v("最新功能:版本0.3.0")])]),t._v(" "),s("ol",[s("li",[s("p",[t._v("增加@功能,由提问人在提出问题时候选择@部门决定该问题的职能归属,由归属部门进行后续的评分管理,提问者不明确的戒被@部门不接受的可以@回服务小组;")])]),t._v(" "),s("li",[s("p",[t._v("消息模块改版")])]),t._v(" "),s("li",[s("p",[t._v("个人中心--待我评分入口")])]),t._v(" "),s("li",[s("p",[t._v("特殊用户同感信息的展示")])]),t._v(" "),s("li",[s("p",[t._v("用户行为数据统计组件接入")])])])])]),t._v(" "),s("h3",{attrs:{id:"敬请期待:正在开发版本0-4-0"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#敬请期待:正在开发版本0-4-0"}},[t._v("#")]),t._v(" 敬请期待:正在开发版本0.4.0")]),t._v(" "),s("ul",[s("li",[s("p",[t._v("开发需求清单:")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",{staticStyle:{"text-align":"left"}},[t._v("内容")])])]),t._v(" "),s("tbody",[s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("增加帐号切换功能。")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("增加后台数据导出功能")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理后台增加加分功能;")])])])])]),t._v(" "),s("li",[s("p",[t._v("项目里程碑:开发时间: ,提测时间: ,上线时间:")])])]),t._v(" "),s("h2",{attrs:{id:"素-信息化:在线订单app"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#素-信息化:在线订单app"}},[t._v("#")]),t._v(" 素+信息化:在线订单APP")]),t._v(" "),s("p",[t._v("素+在线下单是一款自主研发的移动销售管理应用助力企业构建组织内部的高效协作网络,让中小型制造企业在销售前端与企业内部组织和人,以驱动业务为目标,实现以客户为中心的全员高效营销协作。\u2029主要功能有,企业的产品档案管理、订单管理、客户管理")]),t._v(" "),s("h3",{attrs:{id:"下载体验-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#下载体验-2"}},[t._v("#")]),t._v(" 下载体验")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("IOS版本")])])]),t._v(" "),s("p",[s("img",{attrs:{src:"C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E5%9C%A8%E7%BA%BF%E8%AE%A2%E5%8D%95IOS.png",alt:"IOS下载二维码"}})]),t._v(" "),s("ul",[s("li",[s("p",[s("strong",[t._v("安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。")])])]),t._v(" "),s("li",[s("p",[s("strong",[t._v("最新功能:版本1.0.5")])])])]),t._v(" "),s("ol",[s("li",[s("p",[t._v("全新设计网络框架,轻装前行。")])]),t._v(" "),s("li",[s("p",[t._v("修复已知问题,减少问题体验更好\u2029为了获得更好的用户体验,会经常在App Store上更新哦!")])]),t._v(" "),s("li",[s("p",[t._v("推荐 「设置>iTunes &App Store>自动下载>开启素+订单」")])])]),t._v(" "),s("h3",{attrs:{id:"敬请期待:正在开发版本1-1-0"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#敬请期待:正在开发版本1-1-0"}},[t._v("#")]),t._v(" 敬请期待:正在开发版本1.1.0")]),t._v(" "),s("ul",[s("li",[s("p",[s("strong",[t._v("开发需求清单:")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",{staticStyle:{"text-align":"left"}},[t._v("内容")])])]),t._v(" "),s("tbody",[s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("App:产成品入库以及产成品检验扫描页新增查看历史功能(安卓)")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:出入库类型设置时,无需标识默认为入,即无需给默认标识,让用户自己选择** 出/入")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:业务地区设置,入口需要移动到销售模块中")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:分页功能最多一页展示 100 条,新增 500 条每页的选项;")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("App;出库时选择或者扫描同商品同批号时数量累加;")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:权限改动,子管理员无法修改自身以及其他子管理员的权限")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:报表行间距调整,报表中数据只展示一行超出部分缺损显示")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:销售订单列表业务区域分开展示")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台&APP:业务订单新增客户要求交期字段")])])])])]),t._v(" "),s("li",[s("p",[s("strong",[t._v("项目里程碑:8月19日开始,8月30日提交上线。")])])])]),t._v(" "),s("h2",{attrs:{id:"素-信息化:仓储管理app"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#素-信息化:仓储管理app"}},[t._v("#")]),t._v(" 素+信息化:仓储管理APP")]),t._v(" "),s("p",[t._v("素+仓储 是一款自主研发的仓储管理应用可便捷的通过扫一扫实现出入库自动登记。对仓库里的存货进行检查和登记存货质量状态。随时随地任意手机,电脑可查询仓库存货实时库存数据·主要功能有,企业的产品档案管理、产出登记、生产入库、其他入库、质检登记、销售出库、其他出库、库存查询")]),t._v(" "),s("h3",{attrs:{id:"下载体验-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#下载体验-3"}},[t._v("#")]),t._v(" 下载体验")]),t._v(" "),s("p",[s("img",{attrs:{src:"C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E4%BB%93%E5%82%A8IOS.png",alt:"IOS下载二维码"}})]),t._v(" "),s("ul",[s("li",[s("p",[s("strong",[t._v("安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。")])])]),t._v(" "),s("li",[s("p",[s("strong",[t._v("最新功能:版本1.0.9")])])])]),t._v(" "),s("ol",[s("li",[s("p",[t._v("全新设计网络框架,轻装前行。")])]),t._v(" "),s("li",[s("p",[t._v("修复已知问题,减少问题体验更好\u2029为了获得更好的用户体验,会经常在App Store上更新哦")])]),t._v(" "),s("li",[s("p",[t._v("推荐 「设置>iTunes &App Store>自动下载>开启素+仓储」")])])]),t._v(" "),s("h3",{attrs:{id:"敬请期待:正在开发版本1-1-0-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#敬请期待:正在开发版本1-1-0-2"}},[t._v("#")]),t._v(" 敬请期待:正在开发版本1.1.0")]),t._v(" "),s("ul",[s("li",[s("p",[s("strong",[t._v("开发需求清单:")])]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",{staticStyle:{"text-align":"left"}},[t._v("内容")])])]),t._v(" "),s("tbody",[s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("App:产成品入库以及产成品检验扫描页新增查看历史功能(安卓)")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:出入库类型设置时,无需标识默认为入,即无需给默认标识,让用户自己选择** 出/入")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:业务地区设置,入口需要移动到销售模块中")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:分页功能最多一页展示 100 条,新增 500 条每页的选项;")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("App;出库时选择或者扫描同商品同批号时数量累加;")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:权限改动,子管理员无法修改自身以及其他子管理员的权限")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:报表行间距调整,报表中数据只展示一行超出部分缺损显示")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台:销售订单列表业务区域分开展示")])]),t._v(" "),s("tr",[s("td",{staticStyle:{"text-align":"left"}},[t._v("管理平台&APP:业务订单新增客户要求交期字段")])])])])]),t._v(" "),s("li",[s("p",[s("strong",[t._v("项目里程碑:8月19日开始,8月30日提交上线。")])])])]),t._v(" "),s("h2",{attrs:{id:"关注事项app"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#关注事项app"}},[t._v("#")]),t._v(" 关注事项APP")]),t._v(" "),s("p",[t._v("关注事项,用于重要事项汇报的应用;通过创建群组,组员在群组内进行相关事务的汇报,并将重要关注事项进行实时提醒用户。")]),t._v(" "),s("h3",{attrs:{id:"下载体验-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#下载体验-4"}},[t._v("#")]),t._v(" 下载体验")]),t._v(" "),s("ul",[s("li",[s("strong",[t._v("IOS版本")])])]),t._v(" "),s("p",[s("img",{attrs:{src:"C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E5%85%B3%E6%B3%A8%E4%BA%8B%E9%A1%B9IOS.png",alt:"IOS下载二维码"}})]),t._v(" "),s("ul",[s("li",[s("p",[s("strong",[t._v("安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。")])])]),t._v(" "),s("li",[s("p",[s("strong",[t._v("最新功能:版本0.1.2")])]),t._v(" "),s("p",[t._v("修复已知BUG。")])])]),t._v(" "),s("h2",{attrs:{id:"便捷答题小程序"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#便捷答题小程序"}},[t._v("#")]),t._v(" 便捷答题小程序")]),t._v(" "),s("p",[t._v("让公司可以便捷地给员工培训考试")]),t._v(" "),s("h3",{attrs:{id:"扫码体验"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#扫码体验"}},[t._v("#")]),t._v(" 扫码体验")]),t._v(" "),s("p",[s("img",{attrs:{src:"C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E4%BE%BF%E6%8D%B7%E7%AD%94%E9%A2%98.jpg",alt:"小程序二维码"}})]),t._v(" "),s("h2",{attrs:{id:"票选小助手小程序"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#票选小助手小程序"}},[t._v("#")]),t._v(" 票选小助手小程序")]),t._v(" "),s("p",[t._v("快速简单创建投票,支持图文选项。可支持群投票或指定用户进行投票。")]),t._v(" "),s("h3",{attrs:{id:"扫码体验-2"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#扫码体验-2"}},[t._v("#")]),t._v(" 扫码体验")]),t._v(" "),s("p",[s("img",{attrs:{src:"C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E7%A5%A8%E9%80%89%E5%B0%8F%E5%8A%A9%E6%89%8B.jpg",alt:"小程序二维码"}})]),t._v(" "),s("h2",{attrs:{id:"海鲜干货人家小程序"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#海鲜干货人家小程序"}},[t._v("#")]),t._v(" 海鲜干货人家小程序")]),t._v(" "),s("p",[t._v("专业包点、小食订购平台;自提需标提货时间(至少次日),配送为当天下单,次日配送;周末节假日暂不支持发货")]),t._v(" "),s("h3",{attrs:{id:"扫码体验-3"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#扫码体验-3"}},[t._v("#")]),t._v(" 扫码体验")]),t._v(" "),s("p",[s("img",{attrs:{src:"C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E6%B5%B7%E9%B2%9C%E5%B9%B2%E8%B4%A7%E4%BA%BA%E5%AE%B6.jpg",alt:"小程序二维码"}})]),t._v(" "),s("h2",{attrs:{id:"我的旺铺小程序"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#我的旺铺小程序"}},[t._v("#")]),t._v(" 我的旺铺小程序")]),t._v(" "),s("p",[t._v("店铺管理工具,能快速的管理店铺的分类、商品和海报图册。")]),t._v(" "),s("h3",{attrs:{id:"扫码体验-4"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#扫码体验-4"}},[t._v("#")]),t._v(" 扫码体验")]),t._v(" "),s("p",[s("img",{attrs:{src:"C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E6%88%91%E7%9A%84%E6%97%BA%E9%93%BA.jpg",alt:"小程序二维码"}})]),t._v(" "),s("h2",{attrs:{id:"买买买公司官网"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#买买买公司官网"}},[t._v("#")]),t._v(" 买买买公司官网")]),t._v(" "),s("p",[s("a",{attrs:{href:"http://www.fjmaimaimai.com/",target:"_blank",rel:"noopener noreferrer"}},[t._v("深圳买买信息科技有限公司"),s("OutboundLink")],1)])])}),[],!1,null,null,null);a.default=_.exports}}]);
\ No newline at end of file
... ...
(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{276:function(t,s,e){"use strict";e.r(s);var n=e(14),r=Object(n.a)({},(function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"项目管控"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#项目管控"}},[this._v("#")]),this._v(" 项目管控")])])}),[],!1,null,null,null);s.default=r.exports}}]);
\ No newline at end of file
... ...
此 diff 太大无法显示。
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/7.9a01ef99.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/7.72deeb81.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -64,6 +64,6 @@
<span class="token operator">&gt;</span> VuePress dev server listening at http://localhost:8080/
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><p>只进行文档写作,不希望本地运行网站服务的情况,仅需执行 <code>3、4、5、11</code> 步骤</p> <h2 id="文档写作"><a href="#文档写作" class="header-anchor">#</a> 文档写作</h2> <p>Markdown 标记语言语法</p> <ul><li><a href="https://www.w3cschool.cn/markdownyfsm/markdownyfsm-odm6256r.html" target="_blank" rel="noopener noreferrer">https://www.w3cschool.cn<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="https://www.markdown.cn/" target="_blank" rel="noopener noreferrer">https://www.markdown.cn/<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="https://markdown-zh.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer">https://markdown-zh.readthedocs.io/en/latest/<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="http://wow.kuapp.com/markdown/" target="_blank" rel="noopener noreferrer">http://wow.kuapp.com/markdown/<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul> <p>推荐编辑器</p> <ul><li><a href="https://typora.io/" target="_blank" rel="noopener noreferrer">Typora<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li> <li><a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">VSCode<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></li></ul> <blockquote><p>文档写作平台项目基于 VuePress 构建,具体配置内容请查看 <a href="https://vuepress.vuejs.org/zh/" target="_blank" rel="noopener noreferrer">这里<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></blockquote> <h3 id="写作方式"><a href="#写作方式" class="header-anchor">#</a> 写作方式</h3> <p>文档写作平台所有编写的文档均是基于 <strong>Markdown</strong> 标记语言来编写,它的特点是使用简单的符号即可清晰地描述整个文档结构和排版,仅需要普通文本编辑器即可完成,不像 Word、Excel 等格式必须安装 Microsft Office 才可以正常使用;目前 Markdown 标记语言已经被广泛使用于国内、国际各种记事本或笔记平台、知识平台、写作平台,成为一种流行的文档编写格式,且范围不仅仅是软件行业</p> <p>在网站的内容组织上,一个目录或站点的默认访问位置是 <code>index.html</code>,这是整个互联网环境、网页服务平台、网页服务软件等组织共同形成的约定俗成的结果</p> <p>在以 Markdown 标记语言为主要格式和形式的文档平台中,大家约定俗成的默认文档为 <code>README.md</code>(注意大小写),其功能与 <code>index.html</code> 一致,可以将其理解为是一个目录或是一个文档站点的里的 <strong>首页</strong></p> <p><strong>HTML</strong></p> <p>实际上,在文档写作平台中,所有的 Markdown 文档最终会被编译为 HTML 格式的网页作为最终展现,所以在内容的编写上可以放心使用部分 HTML 标签的排版,建议是排版方面的标签,<strong>表单类型的标签请尽可能不要使用</strong>,以免出现不可预期的问题</p> <h3 id="资源内容添加"><a href="#资源内容添加" class="header-anchor">#</a> 资源内容添加</h3> <p>在文档写作过程中,除了文档描述自身,往往需要引用图片、跳转链接和文件下载等需求来丰富文档内容</p> <h4 id="资源内容说明"><a href="#资源内容说明" class="header-anchor">#</a> 资源内容说明</h4> <p>资源可分为以下两类</p> <ul><li>图片</li> <li>文档(Word、Excel、PowerPoint或其它类型文档)</li></ul> <p>其中,图片可在文档中直接显示,而其它类型文件可作为下载附件的方式挂载在文档中</p> <p>所有资源存放位置:</p> <p><code>/.vuepress/public/</code></p> <div class="custom-block danger"><p class="custom-block-title">WARNING</p> <p>注意:所有资源要求必须有序存放,例如根据业务类型、团队类型等形式分目录存放</p></div> <h4 id="资源使用方式"><a href="#资源使用方式" class="header-anchor">#</a> 资源使用方式</h4> <ul><li>图片内容</li></ul> <p>假设有一张图片存放于以下位置</p> <p><code>/.vuepress/public/logo.png</code></p> <p>那么在文档中引用该图片的方式为</p> <p><code>![logo](/logo.png)</code></p> <p>渲染结果</p> <p><img src="/logo.png" alt="logo"></p> <p>可以看到 <code>/</code> 资源引用的根位置指向了 <code>/.vuepress/public/</code></p> <div class="custom-block danger"><p class="custom-block-title">WARNING</p> <p>如果设置的图片是项目 Logo、二维码(App 或 小程序等),必须按照以下格式使用</p> <div class="language-html line-numbers-mode"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>img</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">&quot;</span>/xxx.jpg<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">&quot;</span>img<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>图片将以 <code>150 X 150</code> 的统一规格(像素)显示</p></div> <ul><li>文档或其它</li></ul> <p>引用其它资源,区别仅为引用方式上,假设有一个文档存放于以下位置</p> <p><code>/.vuepress/public/design/file.docx</code></p> <p>该文档的引用方式为</p> <p><code>[file](/design/file.docx)</code></p> <p>根据观察可以发现,文件的引用方式与图片的引用方式上的区别仅是一个 <code>!</code>,而在描述一个链接时增加感叹号则是专用于图片显示</p> <blockquote><p>附件类型的在点击后,会直接弹出浏览器下载窗口下载该文件,所以该方式适用于与文档内容相关的附件设置</p></blockquote></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/7.9a01ef99.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/7.72deeb81.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/5.9eb2a68c.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/5.9eb2a68c.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>查询导览</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/#一、买买买文档平台简介" class="sidebar-link">一、买买买文档平台简介</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/#二、快速浏览入口" class="sidebar-link">二、快速浏览入口</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/#三、文档使用权限说明" class="sidebar-link">三、文档使用权限说明</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="查询导览"><a href="#查询导览" class="header-anchor">#</a> 查询导览</h1> <h2 id="一、买买买文档平台简介"><a href="#一、买买买文档平台简介" class="header-anchor">#</a> 一、买买买文档平台简介</h2> <p>买买买文档平台是基于买买买公司内部使用知识存储开放平台,提供买买买员工参与项目管理、研发、运维相关的各类查询文档,例如项目管控、开发规范、行政管理等。汇聚了买买买所有研发项目、产品重要知识信息,推进员工知识共享与交流,以便随取随用。</p> <h2 id="二、快速浏览入口"><a href="#二、快速浏览入口" class="header-anchor">#</a> 二、快速浏览入口</h2> <ul><li><h4 id="项目清单"><a href="#项目清单" class="header-anchor">#</a> 项目清单</h4></li></ul> <ol><li><p><a href="">能力展示APP</a></p> <p>简介、下载体验、版本规划</p></li> <li><p>素+信息化:在线订单APP</p></li> <li><p>素+信息化:仓储管理APP</p></li> <li><p>关注事项APP</p></li> <li><p>便捷答题小程序</p></li> <li><p>票选小助手小程序</p></li> <li><p>海鲜干货人家小程序</p></li> <li><p>我的旺铺小程序</p></li> <li><p>买买买公司官网</p></li></ol> <ul><li><h4 id="团队文档"><a href="#团队文档" class="header-anchor">#</a> 团队文档</h4></li></ul> <ol><li><a href="/team/frontend/">前端开发文档</a></li> <li>IOS端开发文档</li> <li>安卓端开发文档</li> <li>服务端开发文档</li> <li>测试端文档</li> <li>产品设计文档</li></ol> <ul><li><h4 id="项目管控"><a href="#项目管控" class="header-anchor">#</a> 项目管控</h4></li></ul> <ol><li>阶段输出结果</li> <li>变更控制</li> <li>问题日志</li> <li>常用文档下载</li></ol> <ul><li><h4 id="行政管理"><a href="#行政管理" class="header-anchor">#</a> 行政管理</h4></li> <li><h4 id="协同工具"><a href="#协同工具" class="header-anchor">#</a> 协同工具</h4></li></ul> <ol><li><p>项目研发管理</p></li> <li><p>API管理平台</p></li> <li><p>资源管理</p></li></ol> <h2 id="三、文档使用权限说明"><a href="#三、文档使用权限说明" class="header-anchor">#</a> 三、文档使用权限说明</h2> <p>对文档使用定制保密说明</p></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/5.9eb2a68c.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/5.9eb2a68c.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/8.f8404f83.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/8.c11bf53a.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>项目清单</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/product/#能力展示app-企业员工能力展示应用" class="sidebar-link">能力展示APP - 企业员工能力展示应用</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#下载体验" class="sidebar-link">下载体验</a></li><li class="sidebar-sub-header"><a href="/product/#敬请期待:正在开发版本0-4-0" class="sidebar-link">敬请期待:正在开发版本0.4.0</a></li></ul></li><li><a href="/product/#素-信息化:在线订单app" class="sidebar-link">素+信息化:在线订单APP</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#下载体验-2" class="sidebar-link">下载体验</a></li><li class="sidebar-sub-header"><a href="/product/#敬请期待:正在开发版本1-1-0" class="sidebar-link">敬请期待:正在开发版本1.1.0</a></li></ul></li><li><a href="/product/#素-信息化:仓储管理app" class="sidebar-link">素+信息化:仓储管理APP</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#下载体验-3" class="sidebar-link">下载体验</a></li><li class="sidebar-sub-header"><a href="/product/#敬请期待:正在开发版本1-1-0-2" class="sidebar-link">敬请期待:正在开发版本1.1.0</a></li></ul></li><li><a href="/product/#关注事项app" class="sidebar-link">关注事项APP</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#下载体验-4" class="sidebar-link">下载体验</a></li></ul></li><li><a href="/product/#便捷答题小程序" class="sidebar-link">便捷答题小程序</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#扫码体验" class="sidebar-link">扫码体验</a></li></ul></li><li><a href="/product/#票选小助手小程序" class="sidebar-link">票选小助手小程序</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#扫码体验-2" class="sidebar-link">扫码体验</a></li></ul></li><li><a href="/product/#海鲜干货人家小程序" class="sidebar-link">海鲜干货人家小程序</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#扫码体验-3" class="sidebar-link">扫码体验</a></li></ul></li><li><a href="/product/#我的旺铺小程序" class="sidebar-link">我的旺铺小程序</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/product/#扫码体验-4" class="sidebar-link">扫码体验</a></li></ul></li><li><a href="/product/#买买买公司官网" class="sidebar-link">买买买公司官网</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="项目清单"><a href="#项目清单" class="header-anchor">#</a> 项目清单</h1> <p>汇总买买买公司目前正在开发项目清单,将实时同步各个项目开发状态。</p> <h2 id="能力展示app-企业员工能力展示应用"><a href="#能力展示app-企业员工能力展示应用" class="header-anchor">#</a> 能力展示APP - 企业员工能力展示应用</h2> <p>能力展示,用于展示企业员工能力的应用。促进员工积极去发现问题、分析问题、解决问题,并在轻松娱乐的氛围下,展示能力同时并共同营建一个和谐可持续发展的大家庭。主要功能有,企业的提问管理、部门统计、公司表彰、星数排行。</p> <h3 id="下载体验"><a href="#下载体验" class="header-anchor">#</a> 下载体验</h3> <ul><li><strong>IOS版本</strong></li></ul> <p><img src="/ios/ability/IOS.png" alt="IOS下载二维码"></p> <ul><li><p><strong>安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。</strong></p></li> <li><p><strong>最新功能:版本0.3.0</strong></p> <ol><li><p>增加@功能,由提问人在提出问题时候选择@部门决定该问题的职能归属,由归属部门进行后续的评分管理,提问者不明确的戒被@部门不接受的可以@回服务小组;</p></li> <li><p>消息模块改版</p></li> <li><p>个人中心--待我评分入口</p></li> <li><p>特殊用户同感信息的展示</p></li> <li><p>用户行为数据统计组件接入</p></li></ol></li></ul> <h3 id="敬请期待:正在开发版本0-4-0"><a href="#敬请期待:正在开发版本0-4-0" class="header-anchor">#</a> 敬请期待:正在开发版本0.4.0</h3> <ul><li><p>开发需求清单:</p> <table><thead><tr><th style="text-align:left;">内容</th></tr></thead> <tbody><tr><td style="text-align:left;">增加帐号切换功能。</td></tr> <tr><td style="text-align:left;">增加后台数据导出功能</td></tr> <tr><td style="text-align:left;">管理后台增加加分功能;</td></tr></tbody></table></li> <li><p>项目里程碑:开发时间: ,提测时间: ,上线时间:</p></li></ul> <h2 id="素-信息化:在线订单app"><a href="#素-信息化:在线订单app" class="header-anchor">#</a> 素+信息化:在线订单APP</h2> <p>素+在线下单是一款自主研发的移动销售管理应用助力企业构建组织内部的高效协作网络,让中小型制造企业在销售前端与企业内部组织和人,以驱动业务为目标,实现以客户为中心的全员高效营销协作。
主要功能有,企业的产品档案管理、订单管理、客户管理</p> <h3 id="下载体验-2"><a href="#下载体验-2" class="header-anchor">#</a> 下载体验</h3> <ul><li><strong>IOS版本</strong></li></ul> <p><img src="C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E5%9C%A8%E7%BA%BF%E8%AE%A2%E5%8D%95IOS.png" alt="IOS下载二维码"></p> <ul><li><p><strong>安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。</strong></p></li> <li><p><strong>最新功能:版本1.0.5</strong></p></li></ul> <ol><li><p>全新设计网络框架,轻装前行。</p></li> <li><p>修复已知问题,减少问题体验更好
为了获得更好的用户体验,会经常在App Store上更新哦!</p></li> <li><p>推荐 「设置&gt;iTunes &amp;App Store&gt;自动下载&gt;开启素+订单」</p></li></ol> <h3 id="敬请期待:正在开发版本1-1-0"><a href="#敬请期待:正在开发版本1-1-0" class="header-anchor">#</a> 敬请期待:正在开发版本1.1.0</h3> <ul><li><p><strong>开发需求清单:</strong></p> <table><thead><tr><th style="text-align:left;">内容</th></tr></thead> <tbody><tr><td style="text-align:left;">App:产成品入库以及产成品检验扫描页新增查看历史功能(安卓)</td></tr> <tr><td style="text-align:left;">管理平台:出入库类型设置时,无需标识默认为入,即无需给默认标识,让用户自己选择** 出/入</td></tr> <tr><td style="text-align:left;">管理平台:业务地区设置,入口需要移动到销售模块中</td></tr> <tr><td style="text-align:left;">管理平台:分页功能最多一页展示 100 条,新增 500 条每页的选项;</td></tr> <tr><td style="text-align:left;">App;出库时选择或者扫描同商品同批号时数量累加;</td></tr> <tr><td style="text-align:left;">管理平台:权限改动,子管理员无法修改自身以及其他子管理员的权限</td></tr> <tr><td style="text-align:left;">管理平台:报表行间距调整,报表中数据只展示一行超出部分缺损显示</td></tr> <tr><td style="text-align:left;">管理平台:销售订单列表业务区域分开展示</td></tr> <tr><td style="text-align:left;">管理平台&amp;APP:业务订单新增客户要求交期字段</td></tr></tbody></table></li> <li><p><strong>项目里程碑:8月19日开始,8月30日提交上线。</strong></p></li></ul> <h2 id="素-信息化:仓储管理app"><a href="#素-信息化:仓储管理app" class="header-anchor">#</a> 素+信息化:仓储管理APP</h2> <p>素+仓储 是一款自主研发的仓储管理应用可便捷的通过扫一扫实现出入库自动登记。对仓库里的存货进行检查和登记存货质量状态。随时随地任意手机,电脑可查询仓库存货实时库存数据·主要功能有,企业的产品档案管理、产出登记、生产入库、其他入库、质检登记、销售出库、其他出库、库存查询</p> <h3 id="下载体验-3"><a href="#下载体验-3" class="header-anchor">#</a> 下载体验</h3> <p><img src="C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E4%BB%93%E5%82%A8IOS.png" alt="IOS下载二维码"></p> <ul><li><p><strong>安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。</strong></p></li> <li><p><strong>最新功能:版本1.0.9</strong></p></li></ul> <ol><li><p>全新设计网络框架,轻装前行。</p></li> <li><p>修复已知问题,减少问题体验更好
为了获得更好的用户体验,会经常在App Store上更新哦</p></li> <li><p>推荐 「设置&gt;iTunes &amp;App Store&gt;自动下载&gt;开启素+仓储」</p></li></ol> <h3 id="敬请期待:正在开发版本1-1-0-2"><a href="#敬请期待:正在开发版本1-1-0-2" class="header-anchor">#</a> 敬请期待:正在开发版本1.1.0</h3> <ul><li><p><strong>开发需求清单:</strong></p> <table><thead><tr><th style="text-align:left;">内容</th></tr></thead> <tbody><tr><td style="text-align:left;">App:产成品入库以及产成品检验扫描页新增查看历史功能(安卓)</td></tr> <tr><td style="text-align:left;">管理平台:出入库类型设置时,无需标识默认为入,即无需给默认标识,让用户自己选择** 出/入</td></tr> <tr><td style="text-align:left;">管理平台:业务地区设置,入口需要移动到销售模块中</td></tr> <tr><td style="text-align:left;">管理平台:分页功能最多一页展示 100 条,新增 500 条每页的选项;</td></tr> <tr><td style="text-align:left;">App;出库时选择或者扫描同商品同批号时数量累加;</td></tr> <tr><td style="text-align:left;">管理平台:权限改动,子管理员无法修改自身以及其他子管理员的权限</td></tr> <tr><td style="text-align:left;">管理平台:报表行间距调整,报表中数据只展示一行超出部分缺损显示</td></tr> <tr><td style="text-align:left;">管理平台:销售订单列表业务区域分开展示</td></tr> <tr><td style="text-align:left;">管理平台&amp;APP:业务订单新增客户要求交期字段</td></tr></tbody></table></li> <li><p><strong>项目里程碑:8月19日开始,8月30日提交上线。</strong></p></li></ul> <h2 id="关注事项app"><a href="#关注事项app" class="header-anchor">#</a> 关注事项APP</h2> <p>关注事项,用于重要事项汇报的应用;通过创建群组,组员在群组内进行相关事务的汇报,并将重要关注事项进行实时提醒用户。</p> <h3 id="下载体验-4"><a href="#下载体验-4" class="header-anchor">#</a> 下载体验</h3> <ul><li><strong>IOS版本</strong></li></ul> <p><img src="C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E5%85%B3%E6%B3%A8%E4%BA%8B%E9%A1%B9IOS.png" alt="IOS下载二维码"></p> <ul><li><p><strong>安卓版本可支持:腾讯应用宝、360、华为、小米、百度、VIVO、OPPO,请直接到相关应用商店下载。</strong></p></li> <li><p><strong>最新功能:版本0.1.2</strong></p> <p>修复已知BUG。</p></li></ul> <h2 id="便捷答题小程序"><a href="#便捷答题小程序" class="header-anchor">#</a> 便捷答题小程序</h2> <p>让公司可以便捷地给员工培训考试</p> <h3 id="扫码体验"><a href="#扫码体验" class="header-anchor">#</a> 扫码体验</h3> <p><img src="C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E4%BE%BF%E6%8D%B7%E7%AD%94%E9%A2%98.jpg" alt="小程序二维码"></p> <h2 id="票选小助手小程序"><a href="#票选小助手小程序" class="header-anchor">#</a> 票选小助手小程序</h2> <p>快速简单创建投票,支持图文选项。可支持群投票或指定用户进行投票。</p> <h3 id="扫码体验-2"><a href="#扫码体验-2" class="header-anchor">#</a> 扫码体验</h3> <p><img src="C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E7%A5%A8%E9%80%89%E5%B0%8F%E5%8A%A9%E6%89%8B.jpg" alt="小程序二维码"></p> <h2 id="海鲜干货人家小程序"><a href="#海鲜干货人家小程序" class="header-anchor">#</a> 海鲜干货人家小程序</h2> <p>专业包点、小食订购平台;自提需标提货时间(至少次日),配送为当天下单,次日配送;周末节假日暂不支持发货</p> <h3 id="扫码体验-3"><a href="#扫码体验-3" class="header-anchor">#</a> 扫码体验</h3> <p><img src="C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E6%B5%B7%E9%B2%9C%E5%B9%B2%E8%B4%A7%E4%BA%BA%E5%AE%B6.jpg" alt="小程序二维码"></p> <h2 id="我的旺铺小程序"><a href="#我的旺铺小程序" class="header-anchor">#</a> 我的旺铺小程序</h2> <p>店铺管理工具,能快速的管理店铺的分类、商品和海报图册。</p> <h3 id="扫码体验-4"><a href="#扫码体验-4" class="header-anchor">#</a> 扫码体验</h3> <p><img src="C:%5CUsers%5Cuser%5CDesktop%5C%E5%9C%A8%E7%BA%BF%E6%96%87%E6%A1%A3%5C%E6%88%91%E7%9A%84%E6%97%BA%E9%93%BA.jpg" alt="小程序二维码"></p> <h2 id="买买买公司官网"><a href="#买买买公司官网" class="header-anchor">#</a> 买买买公司官网</h2> <p><a href="http://www.fjmaimaimai.com/" target="_blank" rel="noopener noreferrer">深圳买买信息科技有限公司<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></p></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/8.f8404f83.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/8.c11bf53a.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/9.bec74b06.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/9.c986c8b3.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <!----> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="项目管控"><a href="#项目管控" class="header-anchor">#</a> 项目管控</h1></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/9.bec74b06.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/9.c986c8b3.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/10.e7825d68.js" as="script"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/10.e7825d68.js" as="script"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <!----> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="android-安卓端"><a href="#android-安卓端" class="header-anchor">#</a> Android 安卓端</h1></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/10.e7825d68.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/10.e7825d68.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/11.dc1d1ed5.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/11.dc1d1ed5.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <!----> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="服务端"><a href="#服务端" class="header-anchor">#</a> 服务端</h1></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/11.dc1d1ed5.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/11.dc1d1ed5.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/12.5e70fe99.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/12.03201fd4.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <!----> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="产品设计"><a href="#产品设计" class="header-anchor">#</a> 产品设计</h1></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/12.5e70fe99.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/12.03201fd4.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/14.6adca5e8.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/14.2e28ff8c.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -60,7 +60,7 @@
协作工具
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/team/frontend/" class="sidebar-link">前端 Frontend</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/#能力输出" class="sidebar-link">能力输出</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#项目构建说明" class="sidebar-link">项目构建说明</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#项目环境要求" class="sidebar-link">项目环境要求</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#项目技术组成" class="sidebar-link">项目技术组成</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#代码版本控制位置" class="sidebar-link">代码版本控制位置</a></li></ul></li><li><a href="/team/frontend/showcase.html" class="sidebar-link">陈列柜</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/showcase.html#网站" class="sidebar-link">网站</a></li><li class="sidebar-sub-header"><a href="/team/frontend/showcase.html#微信小程序" class="sidebar-link">微信小程序</a></li><li class="sidebar-sub-header"><a href="/team/frontend/showcase.html#桌面客户端" class="sidebar-link">桌面客户端</a></li></ul></li><li><a href="/team/frontend/standard.html" class="sidebar-link">开发规范</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#vscode-插件" class="sidebar-link">VSCode 插件</a></li><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#文件与目录命名规范" class="sidebar-link">文件与目录命名规范</a></li><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#css-样式预处理" class="sidebar-link">CSS 样式预处理</a></li><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#路由命名规则" class="sidebar-link">路由命名规则</a></li></ul></li><li><a href="/team/frontend/http.html" class="sidebar-link">数据交互格式标准</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/http.html#数据格式样例" class="sidebar-link">数据格式样例</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#api-交互规则" class="sidebar-link">API 交互规则</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#跨域与重复请求" class="sidebar-link">跨域与重复请求</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#数据表格" class="sidebar-link">数据表格</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#登录授权" class="sidebar-link">登录授权</a></li></ul></li><li><a href="/team/frontend/system-model.html" class="sidebar-link">系统交互模型</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#基础原则" class="sidebar-link">基础原则</a></li><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#流程示意" class="sidebar-link">流程示意</a></li><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#数据模型" class="sidebar-link">数据模型</a></li><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#api-接口" class="sidebar-link">API 接口</a></li></ul></li><li><a href="/team/frontend/plugins.html" class="sidebar-link">功能插件</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#拼图验证码插件" class="sidebar-link">拼图验证码插件</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#短信验证" class="sidebar-link">短信验证</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#侧边栏抽屉" class="sidebar-link">侧边栏抽屉</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#数据表格" class="sidebar-link">数据表格</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#数据下载-导出" class="sidebar-link">数据下载/导出</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#选择器" class="sidebar-link">选择器</a></li></ul></li><li><a href="/team/frontend/components.html" class="active sidebar-link">业务组件</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/components.html#数据导入导出" class="sidebar-link">数据导入导出</a></li><li class="sidebar-sub-header"><a href="/team/frontend/components.html#操作权限应用" class="sidebar-link">操作权限应用</a></li><li class="sidebar-sub-header"><a href="/team/frontend/components.html#选择器" class="sidebar-link">选择器</a></li></ul></li><li><a href="/team/frontend/framework.html" class="sidebar-link">系统框架</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#目录结构描述" class="sidebar-link">目录结构描述</a></li><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#api" class="sidebar-link">API</a></li><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#自定义指令集-directive" class="sidebar-link">自定义指令集 directive</a></li><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#表单校验规则" class="sidebar-link">表单校验规则</a></li></ul></li><li><a href="/team/frontend/web-open-platform.html" class="sidebar-link">网页能力开放平台</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/web-open-platform.html#平台介绍及使用规范" class="sidebar-link">平台介绍及使用规范</a></li><li class="sidebar-sub-header"><a href="/team/frontend/web-open-platform.html#现有项目-模块" class="sidebar-link">现有项目/模块</a></li></ul></li><li><a href="/team/frontend/quality.html" class="sidebar-link">质量保证体系</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#团队应用现状" class="sidebar-link">团队应用现状</a></li><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#语法检查" class="sidebar-link">语法检查</a></li><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#单元测试" class="sidebar-link">单元测试</a></li><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#端对端测试(end-to-end)" class="sidebar-link">端对端测试(End-to-end)</a></li></ul></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="业务组件"><a href="#业务组件" class="header-anchor">#</a> 业务组件</h1> <p>整合了部分业务功能或特殊定制化需求的组件</p> <h2 id="数据导入导出"><a href="#数据导入导出" class="header-anchor">#</a> 数据导入导出</h2> <p>公用数据导入导出组件,功能包含有数据介质模板下载(空或部分业务数据)、数据介质模板导出以及数据介质文件导入(上传)</p> <img src="/frontend/plugins/import-and-export.png" class="border-shadow"> <p>使用流程</p> <ol><li>手机短信验证身份</li> <li>下载、导出数据介质模板文件(非必须)</li> <li>选择并上传已填写/修改的数据介质文件</li> <li>预览文件内容</li> <li>执行数据介质文件上传</li> <li>上传成功/失败详细报告</li></ol> <p>目前已配置并使用在素+管理平台的以下业务场景中</p> <table><thead><tr><th>业务模块</th> <th>编码</th> <th>导入</th> <th>导出</th></tr></thead> <tbody><tr><td>通讯录</td> <td>ADDRESS_BOOK</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>客户档案</td> <td>WORKBENCH_CUSTOMER_FILE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>组织架构</td> <td>ENTERPRISE_ORGANIZATION</td> <td>✔️</td> <td></td></tr> <tr><td>常购产品</td> <td>WORKBENCH_SALE_PRICE_CUSTOMER_PRICE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>存货档案</td> <td>WORKBENCH_STOCK_FILE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>客户活动政策</td> <td>WORKBENCH_SALE_ACTIVITY_POLICY</td> <td></td> <td>✔️</td></tr> <tr><td>销售订单</td> <td>WORKBENCH_SALE_ORDER_LIST</td> <td></td> <td>✔️</td></tr> <tr><td>期初数据</td> <td>WORKBENCH_WAREHOUSE_BASE_INITIAL_DATA</td> <td>✔️</td> <td></td></tr> <tr><td>销售发货数据</td> <td>WORKBENCH_SALE_SHIP</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>薪资档案</td> <td>WORKBENCH_SALARY_MANAGE_FILE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>产品价格</td> <td>WORKBENCH_TARGET-PLAN_CONFIG_PRODUCT-PRICE</td> <td>✔️</td> <td></td></tr> <tr><td>年度业绩目标</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_YEAR-PERFORMANCE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>同期业绩目标</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_SAME-PERIOD-PERFORMANCE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>利润率</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_PROFIT-MARGIN</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>费用率</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_EXPENSE-RATIO</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>月度计划</td> <td>WORKBENCH_TARGET-PLAN_PLAN_MONTH</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>业绩源数据</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_SOURCE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>个人业绩档案</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_PROFILE</td> <td></td> <td>✔️</td></tr> <tr><td>个人利润档案</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_PROFIT</td> <td></td> <td>✔️</td></tr> <tr><td>销售费用登记</td> <td>WORKBENCH_TARGET-PLAN_COST_SALES</td> <td>✔️</td> <td></td></tr> <tr><td>费用统计</td> <td>WORKBENCH_TARGET-PLAN_COST_COUNT</td> <td></td> <td>✔️</td></tr> <tr><td>退货单</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_RETURN-ORDER</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>公司调价利润</td> <td>WORKBENCH_TARGET-PLAN_BASE_ADJUST-PROFIT</td> <td>✔️</td> <td></td></tr> <tr><td>个人毛利档案</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_GROSS-MARGIN</td> <td></td> <td>✔️</td></tr></tbody></table> <h2 id="操作权限应用"><a href="#操作权限应用" class="header-anchor">#</a> 操作权限应用</h2> <p>适配根据对用户或角色指定的权限设置(例:增加、删除、导出等),对界面元素的权限控制应用(例:按钮、链接等),自动根据配置内容决定该元素是否出现于当前界面</p> <blockquote><p>如果用户角色为主管理员,则所有功能始终可用,不受该操作权限控制</p></blockquote> <p>完整权限字段如下:</p> <div class="language-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/team/frontend/" class="sidebar-link">前端 Frontend</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/#能力输出" class="sidebar-link">能力输出</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#项目构建说明" class="sidebar-link">项目构建说明</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#项目环境要求" class="sidebar-link">项目环境要求</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#项目技术组成" class="sidebar-link">项目技术组成</a></li><li class="sidebar-sub-header"><a href="/team/frontend/#代码版本控制位置" class="sidebar-link">代码版本控制位置</a></li></ul></li><li><a href="/team/frontend/showcase.html" class="sidebar-link">陈列柜</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/showcase.html#网站" class="sidebar-link">网站</a></li><li class="sidebar-sub-header"><a href="/team/frontend/showcase.html#微信小程序" class="sidebar-link">微信小程序</a></li><li class="sidebar-sub-header"><a href="/team/frontend/showcase.html#桌面客户端" class="sidebar-link">桌面客户端</a></li></ul></li><li><a href="/team/frontend/standard.html" class="sidebar-link">开发规范</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#vscode-插件" class="sidebar-link">VSCode 插件</a></li><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#文件与目录命名规范" class="sidebar-link">文件与目录命名规范</a></li><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#css-样式预处理" class="sidebar-link">CSS 样式预处理</a></li><li class="sidebar-sub-header"><a href="/team/frontend/standard.html#路由命名规则" class="sidebar-link">路由命名规则</a></li></ul></li><li><a href="/team/frontend/http.html" class="sidebar-link">数据交互格式标准</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/http.html#数据格式样例" class="sidebar-link">数据格式样例</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#api-交互规则" class="sidebar-link">API 交互规则</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#跨域与重复请求" class="sidebar-link">跨域与重复请求</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#数据表格" class="sidebar-link">数据表格</a></li><li class="sidebar-sub-header"><a href="/team/frontend/http.html#登录授权" class="sidebar-link">登录授权</a></li></ul></li><li><a href="/team/frontend/system-model.html" class="sidebar-link">系统交互模型</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#基础原则" class="sidebar-link">基础原则</a></li><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#流程示意" class="sidebar-link">流程示意</a></li><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#数据模型" class="sidebar-link">数据模型</a></li><li class="sidebar-sub-header"><a href="/team/frontend/system-model.html#api-接口" class="sidebar-link">API 接口</a></li></ul></li><li><a href="/team/frontend/plugins.html" class="sidebar-link">功能插件</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#拼图验证码插件" class="sidebar-link">拼图验证码插件</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#短信验证" class="sidebar-link">短信验证</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#侧边栏抽屉" class="sidebar-link">侧边栏抽屉</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#数据表格" class="sidebar-link">数据表格</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#数据下载-导出" class="sidebar-link">数据下载/导出</a></li><li class="sidebar-sub-header"><a href="/team/frontend/plugins.html#选择器" class="sidebar-link">选择器</a></li></ul></li><li><a href="/team/frontend/components.html" class="active sidebar-link">业务组件</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/components.html#数据导入导出" class="sidebar-link">数据导入导出</a></li><li class="sidebar-sub-header"><a href="/team/frontend/components.html#操作权限应用" class="sidebar-link">操作权限应用</a></li><li class="sidebar-sub-header"><a href="/team/frontend/components.html#选择器" class="sidebar-link">选择器</a></li></ul></li><li><a href="/team/frontend/framework.html" class="sidebar-link">系统框架</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#目录结构描述" class="sidebar-link">目录结构描述</a></li><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#api" class="sidebar-link">API</a></li><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#自定义指令集-directive" class="sidebar-link">自定义指令集 directive</a></li><li class="sidebar-sub-header"><a href="/team/frontend/framework.html#表单校验规则" class="sidebar-link">表单校验规则</a></li></ul></li><li><a href="/team/frontend/web-open-platform.html" class="sidebar-link">网页能力开放平台</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/web-open-platform.html#平台介绍及使用规范" class="sidebar-link">平台介绍及使用规范</a></li><li class="sidebar-sub-header"><a href="/team/frontend/web-open-platform.html#现有项目-模块" class="sidebar-link">现有项目/模块</a></li></ul></li><li><a href="/team/frontend/quality.html" class="sidebar-link">质量保证体系</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#团队应用现状" class="sidebar-link">团队应用现状</a></li><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#语法检查" class="sidebar-link">语法检查</a></li><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#单元测试" class="sidebar-link">单元测试</a></li><li class="sidebar-sub-header"><a href="/team/frontend/quality.html#端对端测试(end-to-end)" class="sidebar-link">端对端测试(End-to-end)</a></li></ul></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="业务组件"><a href="#业务组件" class="header-anchor">#</a> 业务组件</h1> <p>整合了部分业务功能或特殊定制化需求的组件</p> <h2 id="数据导入导出"><a href="#数据导入导出" class="header-anchor">#</a> 数据导入导出</h2> <p>公用数据导入导出组件,功能包含有数据介质模板下载(空或部分业务数据)、数据介质模板导出以及数据介质文件导入(上传)</p> <img src="/frontend/plugins/import-and-export.png" class="border-shadow"> <p>使用流程</p> <ol><li>手机短信验证身份</li> <li>下载、导出数据介质模板文件(非必须)</li> <li>选择并上传已填写/修改的数据介质文件</li> <li>预览文件内容</li> <li>执行数据介质文件上传</li> <li>上传成功/失败详细报告</li></ol> <p>目前已配置并使用在素+管理平台的以下业务场景中</p> <h3 id="素-平台"><a href="#素-平台" class="header-anchor">#</a> 素+平台</h3> <table><thead><tr><th>业务模块</th> <th>编码</th> <th>导入</th> <th>导出</th></tr></thead> <tbody><tr><td>通讯录</td> <td>ADDRESS_BOOK</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>客户档案</td> <td>WORKBENCH_CUSTOMER_FILE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>组织架构</td> <td>ENTERPRISE_ORGANIZATION</td> <td>✔️</td> <td></td></tr> <tr><td>常购产品</td> <td>WORKBENCH_SALE_PRICE_CUSTOMER_PRICE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>存货档案</td> <td>WORKBENCH_STOCK_FILE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>客户活动政策</td> <td>WORKBENCH_SALE_ACTIVITY_POLICY</td> <td></td> <td>✔️</td></tr> <tr><td>销售订单</td> <td>WORKBENCH_SALE_ORDER_LIST</td> <td></td> <td>✔️</td></tr> <tr><td>期初数据</td> <td>WORKBENCH_WAREHOUSE_BASE_INITIAL_DATA</td> <td>✔️</td> <td></td></tr> <tr><td>销售发货数据</td> <td>WORKBENCH_SALE_SHIP</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>薪资档案</td> <td>WORKBENCH_SALARY_MANAGE_FILE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>产品价格</td> <td>WORKBENCH_TARGET-PLAN_CONFIG_PRODUCT-PRICE</td> <td>✔️</td> <td></td></tr> <tr><td>年度业绩目标</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_YEAR-PERFORMANCE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>同期业绩目标</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_SAME-PERIOD-PERFORMANCE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>利润率</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_PROFIT-MARGIN</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>费用率</td> <td>WORKBENCH_TARGET-PLAN_MANAGE_EXPENSE-RATIO</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>月度计划</td> <td>WORKBENCH_TARGET-PLAN_PLAN_MONTH</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>业绩源数据</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_SOURCE</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>个人业绩档案</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_PROFILE</td> <td></td> <td>✔️</td></tr> <tr><td>个人利润档案</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_PROFIT</td> <td></td> <td>✔️</td></tr> <tr><td>销售费用登记</td> <td>WORKBENCH_TARGET-PLAN_COST_SALES</td> <td>✔️</td> <td></td></tr> <tr><td>费用统计</td> <td>WORKBENCH_TARGET-PLAN_COST_COUNT</td> <td></td> <td>✔️</td></tr> <tr><td>退货单</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_RETURN-ORDER</td> <td>✔️</td> <td>✔️</td></tr> <tr><td>公司调价利润</td> <td>WORKBENCH_TARGET-PLAN_BASE_ADJUST-PROFIT</td> <td>✔️</td> <td></td></tr> <tr><td>个人毛利档案</td> <td>WORKBENCH_TARGET-PLAN_PERFORMANCE_GROSS-MARGIN</td> <td></td> <td>✔️</td></tr></tbody></table> <h3 id="小牛制造"><a href="#小牛制造" class="header-anchor">#</a> 小牛制造</h3> <table><thead><tr><th>业务模块</th> <th>编码</th> <th>导入</th> <th>导出</th></tr></thead> <tbody><tr><td>采购 - 采购单</td> <td>PURCHASE_ORDER</td> <td>✔️</td> <td></td></tr> <tr><td>配料 - 产品配方</td> <td>INGREDIENTS_PRODUCT-FORMULA</td> <td>✔️</td> <td></td></tr> <tr><td>配料 - 制料记录</td> <td>INGREDIENTS_MAKING-MATERIALS</td> <td></td> <td>✔️</td></tr> <tr><td>配料 - 用料明细</td> <td>INGREDIENTS_USE-MATERIALS</td> <td></td> <td>✔️</td></tr> <tr><td>配料 - 混合料配方</td> <td>INGREDIENTS_MIXED-MATERIAL-FORMULA</td> <td>✔️</td> <td></td></tr> <tr><td>配料 - 混合料记录</td> <td>INGREDIENTS_MIXED-MATERIAL-RECORD</td> <td></td> <td>✔️</td></tr> <tr><td>配料 - 混合料用料明细</td> <td>INGREDIENTS_MIXED-MATERIAL-USAGE-RECORD</td> <td></td> <td>✔️</td></tr> <tr><td>库存 - 原料库存</td> <td>STOCK_RAW-MATERIAL</td> <td></td> <td>✔️</td></tr> <tr><td>库存 - 在制品库存</td> <td>STOCK_IN-PRODUCTION</td> <td></td> <td>✔️</td></tr> <tr><td>库存 - 成品库存</td> <td>STOCK_FINISHED-GOODS</td> <td></td> <td>✔️</td></tr> <tr><td>库存 - 采购入库</td> <td>STOCK_PURCHASE-INBOUND</td> <td></td> <td>✔️</td></tr> <tr><td>库存 - 入库流水</td> <td>STOCK_INBOUND-RECORD</td> <td></td> <td>✔️</td></tr> <tr><td>库存 - 出库流水</td> <td>STOCK_OUTBOUND-RECORD</td> <td></td> <td>✔️</td></tr> <tr><td>物料 - 物料档案</td> <td>MATERIAL_FILE</td> <td>✔️</td> <td></td></tr> <tr><td>物料 - 物料对照表</td> <td>MATERIAL_CHART</td> <td>✔️</td> <td></td></tr></tbody></table> <h2 id="操作权限应用"><a href="#操作权限应用" class="header-anchor">#</a> 操作权限应用</h2> <p>适配根据对用户或角色指定的权限设置(例:增加、删除、导出等),对界面元素的权限控制应用(例:按钮、链接等),自动根据配置内容决定该元素是否出现于当前界面</p> <blockquote><p>如果用户角色为主管理员,则所有功能始终可用,不受该操作权限控制</p></blockquote> <p>完整权限字段如下:</p> <div class="language-json line-numbers-mode"><pre class="language-json"><code><span class="token punctuation">{</span>
add<span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
delete<span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
addCustom<span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
... ... @@ -111,6 +111,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/14.6adca5e8.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/14.2e28ff8c.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/15.8f86edff.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/15.bf7a26dd.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -184,6 +184,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/15.8f86edff.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/15.bf7a26dd.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/16.a777e61d.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/16.60a06f04.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -179,6 +179,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/16.a777e61d.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/16.60a06f04.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/13.c8bbc7b5.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/13.e26beb91.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -66,6 +66,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/13.c8bbc7b5.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/13.e26beb91.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/17.3b0c5f18.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/17.1cfe3c03.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -69,6 +69,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/17.3b0c5f18.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/17.1cfe3c03.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/18.d5abf3da.js" as="script"><link rel="preload" href="/assets/js/3.7f4a682c.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/18.61be2f15.js" as="script"><link rel="preload" href="/assets/js/3.7f4a682c.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -69,6 +69,6 @@
<a href="/team/frontend/web-open-platform.html" class="prev">
网页能力开放平台
</a></span> <!----></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/18.d5abf3da.js" defer></script><script src="/assets/js/3.7f4a682c.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/18.61be2f15.js" defer></script><script src="/assets/js/3.7f4a682c.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/19.41befede.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/19.41befede.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -69,6 +69,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/19.41befede.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/19.41befede.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/20.e1070a8b.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/20.43049dc9.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -144,6 +144,6 @@ CSS 样式预处理,只使用最基本的结构嵌套功能是不够的,了
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/20.e1070a8b.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/20.43049dc9.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/21.ba46fa39.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/21.b5c975a8.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -116,7 +116,7 @@
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token operator">...</span>
<span class="token punctuation">}</span>
</code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><p>此处的 <code>code</code> 与上述 <a href="/team/frontend/system-model.html#菜单">菜单模型</a> 中的 <code>code</code> 属性对应,代表了某个功能模块</p> <h2 id="api-接口"><a href="#api-接口" class="header-anchor">#</a> API 接口</h2> <p>系统功能模块 API 接口,内容仅为请求成功后返回的数据格式,完整数据交换格式请参考:<a href="/team/frontend/http.html">数据交互格式标准</a></p> <h3 id="图形验证码初始化"><a href="#图形验证码初始化" class="header-anchor">#</a> 图形验证码初始化</h3> <p>图形验证码使用的是极验图形验证码,根据返回的数据初始化图形验证码插件</p> <p>接口路径: <code>/auth/init-captcha</code></p> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token comment">// 入参</span>
</code></pre><div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><p>此处的 <code>code</code> 与上述 <a href="/team/frontend/system-model.html#菜单">菜单模型</a> 中的 <code>code</code> 属性对应,代表了某个功能模块</p> <h2 id="api-接口"><a href="#api-接口" class="header-anchor">#</a> API 接口</h2> <p>系统功能模块 API 接口,内容仅为请求成功后返回的数据格式,完整数据交换格式请参考:<a href="/team/frontend/http.html">数据交互格式标准</a></p> <h3 id="图形验证码初始化"><a href="#图形验证码初始化" class="header-anchor">#</a> 图形验证码初始化</h3> <p>图形验证码使用的是极验图形验证码,根据返回的数据初始化图形验证码插件</p> <p>接口路径: <code>/auth/captcha-init</code></p> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token comment">// 入参</span>
<span class="token comment">// 返回数据</span>
... ... @@ -127,7 +127,7 @@
<span class="token string">&quot;success&quot;</span><span class="token operator">:</span> number<span class="token punctuation">,</span>
<span class="token string">&quot;gt&quot;</span><span class="token operator">:</span> string<span class="token punctuation">,</span>
<span class="token string">&quot;challenge&quot;</span><span class="token operator">:</span> string<span class="token punctuation">,</span>
<span class="token string">&quot;newCaptcha&quot;</span><span class="token operator">:</span> number
<span class="token string">&quot;newCaptcha&quot;</span><span class="token operator">:</span> boolean
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br></div></div><h3 id="密码登录"><a href="#密码登录" class="header-anchor">#</a> 密码登录</h3> <p>使用 <strong>用户名</strong><strong>密码</strong> 进行登录</p> <p>接口路径:<code>/auth/pwd-login</code></p> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token comment">// 入参</span>
... ... @@ -225,6 +225,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/21.ba46fa39.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/21.b5c975a8.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/22.cac934f7.js" as="script"><link rel="preload" href="/assets/js/3.7f4a682c.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/22.d989abc9.js" as="script"><link rel="preload" href="/assets/js/3.7f4a682c.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -77,6 +77,6 @@
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/22.cac934f7.js" defer></script><script src="/assets/js/3.7f4a682c.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/22.d989abc9.js" defer></script><script src="/assets/js/3.7f4a682c.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/23.22aa0470.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/23.6d66c327.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <!----> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="ios-苹果端"><a href="#ios-苹果端" class="header-anchor">#</a> IOS 苹果端</h1></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/23.22aa0470.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/23.6d66c327.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/24.e2d5dd9a.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/25.6ad8c6e9.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/24.7df45626.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/25.9eb0e0fc.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <!----> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="测试组"><a href="#测试组" class="header-anchor">#</a> 测试组</h1></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/24.e2d5dd9a.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/24.7df45626.js" defer></script>
</body>
</html>
... ...
... ... @@ -8,7 +8,7 @@
<meta name="generator" content="VuePress 1.3.1">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.d6c5f64b.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/25.6ad8c6e9.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.5e70fe99.js"><link rel="prefetch" href="/assets/js/13.c8bbc7b5.js"><link rel="prefetch" href="/assets/js/14.6adca5e8.js"><link rel="prefetch" href="/assets/js/15.8f86edff.js"><link rel="prefetch" href="/assets/js/16.a777e61d.js"><link rel="prefetch" href="/assets/js/17.3b0c5f18.js"><link rel="prefetch" href="/assets/js/18.d5abf3da.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.e1070a8b.js"><link rel="prefetch" href="/assets/js/21.ba46fa39.js"><link rel="prefetch" href="/assets/js/22.cac934f7.js"><link rel="prefetch" href="/assets/js/23.22aa0470.js"><link rel="prefetch" href="/assets/js/24.e2d5dd9a.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.a32238cc.js"><link rel="prefetch" href="/assets/js/7.9a01ef99.js"><link rel="prefetch" href="/assets/js/8.f8404f83.js"><link rel="prefetch" href="/assets/js/9.bec74b06.js">
<link rel="preload" href="/assets/css/0.styles.fadb700b.css" as="style"><link rel="preload" href="/assets/js/app.2901e5a6.js" as="script"><link rel="preload" href="/assets/js/2.db0c6dc7.js" as="script"><link rel="preload" href="/assets/js/25.9eb0e0fc.js" as="script"><link rel="prefetch" href="/assets/js/10.e7825d68.js"><link rel="prefetch" href="/assets/js/11.dc1d1ed5.js"><link rel="prefetch" href="/assets/js/12.03201fd4.js"><link rel="prefetch" href="/assets/js/13.e26beb91.js"><link rel="prefetch" href="/assets/js/14.2e28ff8c.js"><link rel="prefetch" href="/assets/js/15.bf7a26dd.js"><link rel="prefetch" href="/assets/js/16.60a06f04.js"><link rel="prefetch" href="/assets/js/17.1cfe3c03.js"><link rel="prefetch" href="/assets/js/18.61be2f15.js"><link rel="prefetch" href="/assets/js/19.41befede.js"><link rel="prefetch" href="/assets/js/20.43049dc9.js"><link rel="prefetch" href="/assets/js/21.b5c975a8.js"><link rel="prefetch" href="/assets/js/22.d989abc9.js"><link rel="prefetch" href="/assets/js/23.6d66c327.js"><link rel="prefetch" href="/assets/js/24.7df45626.js"><link rel="prefetch" href="/assets/js/26.c898ca98.js"><link rel="prefetch" href="/assets/js/3.7f4a682c.js"><link rel="prefetch" href="/assets/js/4.9dcb0336.js"><link rel="prefetch" href="/assets/js/5.9eb2a68c.js"><link rel="prefetch" href="/assets/js/6.2b2cdcff.js"><link rel="prefetch" href="/assets/js/7.72deeb81.js"><link rel="prefetch" href="/assets/js/8.c11bf53a.js"><link rel="prefetch" href="/assets/js/9.c986c8b3.js">
<link rel="stylesheet" href="/assets/css/0.styles.fadb700b.css">
</head>
<body>
... ... @@ -61,6 +61,6 @@
</a></div><div class="nav-item"><a href="/guide/" class="nav-link">
文档写作平台入门介绍
</a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>协作工具</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/util/#项目研发管理" class="sidebar-link">项目研发管理</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/util/#api-管理平台" class="sidebar-link">API 管理平台</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/util/#资源管理" class="sidebar-link">资源管理</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/util/#产品设计" class="sidebar-link">产品设计</a><ul class="sidebar-sub-headers"></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="协作工具"><a href="#协作工具" class="header-anchor">#</a> 协作工具</h1> <p>公司团队协作工具站点</p> <h2 id="项目研发管理"><a href="#项目研发管理" class="header-anchor">#</a> 项目研发管理</h2> <ul><li><a href="http://192.168.100.254:8088/zentao/" target="_blank" rel="noopener noreferrer">禅道<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> Bug 管理平台</li> <li><a href="https://mp.weixin.qq.com/" target="_blank" rel="noopener noreferrer">微信公众平台<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 微信小程序、微信公众号开发管理,开发文档中心</li></ul> <h2 id="api-管理平台"><a href="#api-管理平台" class="header-anchor">#</a> API 管理平台</h2> <ul><li><a href="http://115.29.205.99:3000/" target="_blank" rel="noopener noreferrer">YAPI<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 服务端提供 API 的描述与快速测试平台</li></ul> <h2 id="资源管理"><a href="#资源管理" class="header-anchor">#</a> 资源管理</h2> <ul><li><a href="http://192.168.100.254:3000/" target="_blank" rel="noopener noreferrer">git<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 使用 gogs 搭建的基于 git 的代码版本控制管理平台,现有公司项目代码均维护在此</li> <li><a href="svn://192.168.100.254/repo/%E9%A1%B9%E7%9B%AE%E6%96%87%E4%BB%B6">svn</a> 设计原型、UI、文档等内容</li></ul> <h2 id="产品设计"><a href="#产品设计" class="header-anchor">#</a> 产品设计</h2> <ul><li><a href="https://lanhuapp.com" target="_blank" rel="noopener noreferrer">蓝湖<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> UI 预览查看</li></ul></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"><!----></div></div>
<script src="/assets/js/app.d6c5f64b.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/25.6ad8c6e9.js" defer></script>
<script src="/assets/js/app.2901e5a6.js" defer></script><script src="/assets/js/2.db0c6dc7.js" defer></script><script src="/assets/js/25.9eb0e0fc.js" defer></script>
</body>
</html>
... ...