Skip to content
tengattack edited this page Apr 4, 2017 · 15 revisions

开发

Command Description
npm install Install dependencies
npm run dev Run webpack and server with hot-reload enabled
npm run dev:win Run dev server on Win32 platform
npm run build Build assets for production use, dumped in ./build

开发文档

Modal 框

通过发起 open-modal 事件来调出 Modal 框。

rin-modal全局监听open-modal事件。在各组件内可以使用形如 this.$dispatch("open-modal", opts) 的方式调用 Modal 框。

opts 参数如下:

{
  modalId:"modal-id" //要调起的模态框id(复杂逻辑必填,全局唯一)
  title: "标题",  //复杂逻辑可留空
  content: "内容",  //复杂逻辑可留空
  noCancel: false, //是否隐藏取消按钮
  danger: false //是否为紧急通知(红黑条)
}

要在模态框内实现复杂逻辑,请将 rin-modal 作为逻辑组件的子组件。在组件模板内采用 <rin-modal modal-id="some-id"></rin-modal> 包裹模板内容。 复杂逻辑调用示例请参考:/src/components/modal-demo.vue

开发阶段可点击 copyright 和 logo 调出 Modal 框示例。

事件

VueJS 用事件进行各个模块间通讯是非常方便,所以很多对象都可以通过模块进行通讯

事件列表

  • UserSignInOK 用户登录成功事件[接收],参数为用户对象(转发服务器端返回参数),页面启动的时候,如果Cookie保留了数据,也会发送一次
  • UserSignInFailed 用户登录失败事件[接收],参数为失败消息(文本)
  • UserSignOutOK 用户注销成功事件[接收],无参数
  • UserSignIn 用户登录事件[发送],参数为 { username: XXX, email: XXX, password: XXX }
  • UserSignOut 用户注销事件[发送],无参数
  • displaySigninForm 显示登录界面[发送],无参数

日期格式化

  • 使用说明:
<p>{{data | date 'yyyy-MM-dd HH:mm'}}</p>     //2015-10-21 16:38
<p>{{data | date 'MM-dd'}}</p>   			 //10-21
<p>{{data | date 'w'}}</p>   				 //三    //星期三
<p>{{data | date 'eM d,yyyy'}}</p>   		 //Oct 10,2015

在 script 中引入:

export default {
	filters: {
		'date':require('../filters/dateFormat.js')
	}
}

i18n

  • 显示文本,使用 {{ 'Text Message'|locale }},会自动根据已经选定的语言进行切换。
  • 显示对象,使用 {{ object1|locale }}, 会自动查找对象内 object1.locale[ 语言 ] 进行显示,详细例子请看 app.vue 的 locale filter

API

此处 API 是针对新 UI 使用的 API,与旧版 API 相比它减少了前端的 HTTP 请求次数。

Torrent APIv2

Torrent APIv2 主要变化是将用户、团队和 tag 信息在一次请求中返回结果。

/api/v2/torrent/page/:pageNum?limit=LIMIT

/api/v2/torrent/user/:user_id?p=PAGE&limit=LIMIT

/api/v2/torrent/team/:team_id?p=PAGE&limit=LIMIT

/api/v2/torrent/:torrent_id

/api/v2/torrent/search?limit=LIMIT&p=PAGE&query=QUERY

/api/v2/torrent/suggest?query=QUERY

hybridSearch 支持同时搜索 tag 和关键字,支持 and / or / not 方式查询,QUERY 举例:

  • "WORST ONE"|Asterisk 同时查询两部类似的番,使用 | 操作符;

  • "\"庶民\"" '"庶民' 搜索字符串中第一个文字带引号,请将 \" 转义或者使用单引号;

  • `55c057b124180bc3647feb1d` `54992d1cc8b118cf40b274b3` 同时搜索含有这两个 tag 的资源;

  • WORST ONE -KNA 同时搜索标题中有 WORST 和 ONE 且不包含 KNA 的资源;

  • tag 和关键字无法放在同一个 | 操作下,但是可以在同一个 QUERY 中。

  • 执行优先顺序:or > not > and

API 会保存两个月内用户查询操作的每次 query 。

suggest 可以根据 QUERY 参数对保存的用户 query 进行关键词匹配,返回不多于五条的搜索建议。

在返回的数据中,tags 为 query 中 tag 的详细信息,count 为两个月内 query 被搜索的频度。

Bangumi APIv2

Bangumi APIv2 将 tag 信息在一次请求中返回结果。

/api/v2/bangumi/current

/api/v2/bangumi/recent

以下两个 API 是获取近期(3 个月内)用户新发布的种子所关联的番组,返回一个 JSON 数组。

/api/v2/bangumi/user/:user_id

/api/v2/bangumi/team/:team_id

User APIv2

User APIv2 的请求将用户的团队,等待加入的团队在一次请求中返回结果。

/api/v2/user/session

/api/v2/user/:user_id

Team APIv2

Team APIv2 的请求将团队 tag、团队成员,包含等待确认的团队成员在一次请求中返回结果。

/api/v2/team/:team_id

其他可能需要用到的部分之后更新。

RSS v2

RSS v2 新增了对 hybridSearch 的支持

/rss/search/:QUERY

Clone this wiki locally