mirror of
https://github.com/YMFE/yapi.git
synced 2025-03-31 14:50:26 +08:00
fix: merge
This commit is contained in:
parent
8d89a869a1
commit
e60c033ea6
@ -36,7 +36,7 @@ class FootItem extends Component {
|
||||
render () {
|
||||
return (
|
||||
<Col span={6}>
|
||||
<h4 className="title"><Icon type={ this.props.iconType } className="icon" />{this.props.title}</h4>
|
||||
<h4 className="title">{this.props.iconType ? <Icon type={ this.props.iconType } className="icon" /> : ''}{this.props.title}</h4>
|
||||
{ this.props.linkList.map(function(item,i){
|
||||
return (<p key={i}><a href={ item.itemLink } className="link">{ item.itemTitle }</a></p>);
|
||||
}) }
|
||||
@ -78,7 +78,7 @@ Footer.defaultProps = {
|
||||
},
|
||||
{
|
||||
title: '其他项目',
|
||||
iconType: 'layout',
|
||||
iconType: 'appstore-o',
|
||||
linkList: [
|
||||
{
|
||||
itemTitle: 'Yo',
|
||||
@ -98,7 +98,6 @@ Footer.defaultProps = {
|
||||
},
|
||||
{
|
||||
title: 'Copyright © 2017 YApi',
|
||||
iconType: 'layout',
|
||||
linkList: [
|
||||
{
|
||||
itemTitle: '版本: '+packageJson.version,
|
||||
|
@ -58,17 +58,17 @@ const HomeGuest = () => (
|
||||
<span className="desc">YApi让接口开发更简单高效,让接口的管理更具可读性、可维护性,让团队协作更合理。</span>
|
||||
<Row key="feat-motion-row">
|
||||
<Col span={8} className="section-item" key="feat-wrapper-1">
|
||||
<Icon type="api" className="img" />
|
||||
<Icon type="appstore-o" className="img" />
|
||||
<h4 className="title">项目管理</h4>
|
||||
<span className="desc">提供基本的项目分组,项目管理,接口管理功能</span>
|
||||
</Col>
|
||||
<Col span={8} className="section-item" key="feat-wrapper-2">
|
||||
<Icon type="code-o" className="img" />
|
||||
<Icon type="api" className="img" />
|
||||
<h4 className="title">接口管理</h4>
|
||||
<span className="desc">友好的接口文档,基于websocket的多人协作接口编辑功能和类postman测试工具,让多人协作成倍提升开发效率</span>
|
||||
</Col>
|
||||
<Col span={8} className="section-item" key="feat-wrapper-3">
|
||||
<Icon type="team" className="img" />
|
||||
<Icon type="database" className="img" />
|
||||
<h4 className="title">MockServer</h4>
|
||||
<span className="desc">基于Mockjs,使用简单功能强大</span>
|
||||
</Col>
|
||||
|
@ -1,7 +1,30 @@
|
||||
## 介绍
|
||||
|
||||
## 组长职责
|
||||
接口管理的逻辑较为复杂,操作频率高,层层审批将严重拖慢生产效率,因此传统的金字塔管理模式并不适用。
|
||||
|
||||
YAPI 将扁平化管理模式的思想引入到产品的权限管理中,`超级管理员` 拥有最高的权限,并将权限分配给若干 `组长`,`超级管理员` 只需管理`组长` 即可,实际上管理YAPI各大分组与项目的是“`组长`”。`组长`对分组或项目负责,一般由BU负责人/项目负责人担任。
|
||||
|
||||
## 什么是组长?
|
||||
|
||||
组长分为分组组长与项目组长
|
||||
|
||||
|
||||
## 安装 crossRequest chrome 插件
|
||||
|
||||
## 权限列表
|
||||
|
||||
### 项目权限
|
||||
|
||||
| 操作 | 游客 | 开发者 | 项目组长 | 分组组长 | 超级管理员 |
|
||||
| :-------------- | :------------ | :------------ |
|
||||
| 新建接口 | | ✓ | ✓ |
|
||||
|
||||
### 分组权限
|
||||
|
||||
| 操作 | 开发者 | 项目组长 | 分组组长 | 超级管理员 |
|
||||
| :-------------- | :------------ | :------------ | :------------ | :------------ |
|
||||
| 浏览分组 |
|
||||
| 编辑分组信息 |
|
||||
| 在分组中新建项目 |
|
||||
| 管理分组成员 |
|
||||
| 删除分组 |
|
||||
|
18926
prd/index.css
Normal file
18926
prd/index.css
Normal file
File diff suppressed because it is too large
Load Diff
5336
prd/index.js
Normal file
5336
prd/index.js
Normal file
File diff suppressed because one or more lines are too long
3019
prd/lib.js
Normal file
3019
prd/lib.js
Normal file
File diff suppressed because one or more lines are too long
48
prd/lib2.js
Normal file
48
prd/lib2.js
Normal file
File diff suppressed because one or more lines are too long
94
prd/manifest.js
Normal file
94
prd/manifest.js
Normal file
@ -0,0 +1,94 @@
|
||||
/******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // install a JSONP callback for chunk loading
|
||||
/******/ var parentJsonpFunction = window["webpackJsonp"];
|
||||
/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules) {
|
||||
/******/ // add "moreModules" to the modules object,
|
||||
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||
/******/ var moduleId, chunkId, i = 0, callbacks = [];
|
||||
/******/ for(;i < chunkIds.length; i++) {
|
||||
/******/ chunkId = chunkIds[i];
|
||||
/******/ if(installedChunks[chunkId])
|
||||
/******/ callbacks.push.apply(callbacks, installedChunks[chunkId]);
|
||||
/******/ installedChunks[chunkId] = 0;
|
||||
/******/ }
|
||||
/******/ for(moduleId in moreModules) {
|
||||
/******/ modules[moduleId] = moreModules[moduleId];
|
||||
/******/ }
|
||||
/******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);
|
||||
/******/ while(callbacks.length)
|
||||
/******/ callbacks.shift().call(null, __webpack_require__);
|
||||
/******/ if(moreModules[0]) {
|
||||
/******/ installedModules[0] = 0;
|
||||
/******/ return __webpack_require__(0);
|
||||
/******/ }
|
||||
/******/ };
|
||||
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
|
||||
/******/ // object to store loaded and loading chunks
|
||||
/******/ // "0" means "already loaded"
|
||||
/******/ // Array means "loading", array contains callbacks
|
||||
/******/ var installedChunks = {
|
||||
/******/ 3:0
|
||||
/******/ };
|
||||
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId])
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ exports: {},
|
||||
/******/ id: moduleId,
|
||||
/******/ loaded: false
|
||||
/******/ };
|
||||
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.loaded = true;
|
||||
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
|
||||
/******/ // This file contains only the entry chunk.
|
||||
/******/ // The chunk loading function for additional chunks
|
||||
/******/ __webpack_require__.e = function requireEnsure(chunkId, callback) {
|
||||
/******/ // "0" is the signal for "already loaded"
|
||||
/******/ if(installedChunks[chunkId] === 0)
|
||||
/******/ return callback.call(null, __webpack_require__);
|
||||
|
||||
/******/ // an array means "currently loading".
|
||||
/******/ if(installedChunks[chunkId] !== undefined) {
|
||||
/******/ installedChunks[chunkId].push(callback);
|
||||
/******/ } else {
|
||||
/******/ // start chunk loading
|
||||
/******/ installedChunks[chunkId] = [callback];
|
||||
/******/ var head = document.getElementsByTagName('head')[0];
|
||||
/******/ var script = document.createElement('script');
|
||||
/******/ script.type = 'text/javascript';
|
||||
/******/ script.charset = 'utf-8';
|
||||
/******/ script.async = true;
|
||||
|
||||
/******/ script.src = __webpack_require__.p + "" + chunkId + ".chunk.js";
|
||||
/******/ head.appendChild(script);
|
||||
/******/ }
|
||||
/******/ };
|
||||
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([]);
|
@ -138,7 +138,54 @@
|
||||
|
||||
<div class="content-right markdown-body use-sidebar" role="main">
|
||||
|
||||
<h2 class="subject" id="介绍">介绍 <a class="hashlink" href="#介绍">#</a></h2><h2 class="subject" id="组长职责">组长职责 <a class="hashlink" href="#组长职责">#</a></h2><h2 class="subject" id="安装_crossRequest_chrome_插件">安装 crossRequest chrome 插件 <a class="hashlink" href="#安装_crossRequest_chrome_插件">#</a></h2><h2 class="subject" id="权限列表">权限列表 <a class="hashlink" href="#权限列表">#</a></h2>
|
||||
<h2 class="subject" id="介绍">介绍 <a class="hashlink" href="#介绍">#</a></h2><h2 class="subject" id="组长职责">组长职责 <a class="hashlink" href="#组长职责">#</a></h2><h2 class="subject" id="安装_crossRequest_chrome_插件">安装 crossRequest chrome 插件 <a class="hashlink" href="#安装_crossRequest_chrome_插件">#</a></h2><h2 class="subject" id="权限列表">权限列表 <a class="hashlink" href="#权限列表">#</a></h2><h3 class="subject" id="项目权限">项目权限 <a class="hashlink" href="#项目权限">#</a></h3><table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align:left">操作</th>
|
||||
<th style="text-align:left">开发者</th>
|
||||
<th style="text-align:left">项目组长</th>
|
||||
<th>分组组长</th>
|
||||
<th>超级管理员</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:left">新建项目</td>
|
||||
<td style="text-align:left"></td>
|
||||
<td style="text-align:left">✓</td>
|
||||
<td>✓</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 class="subject" id="分组权限">分组权限 <a class="hashlink" href="#分组权限">#</a></h3><table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="text-align:left">操作</th>
|
||||
<th style="text-align:left">开发者</th>
|
||||
<th style="text-align:left">项目组长</th>
|
||||
<th style="text-align:left">分组组长</th>
|
||||
<th>超级管理员</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>
|
||||
<tr>
|
||||
<td style="text-align:left">管理分组成员</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:left">删除分组</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user