npm package: @feidao-works/webtest-web
Description: 示例项目
Author: taoqf
Latest version: 1.0.201901260943

# 开发步骤

## 准备

### 环境

[Node.js安装](https://feidao-edu.gitee.io/docs/taoqf/2018022301.html)

### 项目

#### 下载依赖包

```sh
yarn
```

## 页面开发

运行命令

```sh
npm t
```

## 服务依赖

如xxx是生成验证码原子操作依赖的，需要添加到项目中，方法为：

1. 安装依赖

	```sh
	cnpm i xxx -D
	```

2. 项目依赖package-service.json添加

```json
"dependencies": {
	"xxx": "*"
}
```

## 项目发布

一键发布

```sh
./publish.sh
```

## 第三方依赖

### 导出pdf

- 参数
  - `orientation` pdf版式('landscape': 横版,'portrait': 竖版;默认是竖版)
  - `attachment` pdf文件名称(完整文件名称，例如:ceshi.pdf)

```js
import render from '@feidao-factory/atom/nodejs/render/render';
// 在页面上显示pdf文件内容，则不能传入参数attachment

// 要展示的pdf为横版
const url = 'http://192.168.40.196/flippedclass/print.pdf?orientation=landscape';

// 竖版
const url = 'http://192.168.40.196/flippedclass/print.pdf?orientation=portrait';
const url = 'http://192.168.40.196/flippedclass/print.pdf';

// 直接对pdf文件进行下载，需传入参数attachment
const url = 'http://192.168.40.196/flippedclass/print.pdf?attachment=ceshi.pdf';

// 渲染
render(fd.data.node, url, '<a href={{=it}}>docx</a>', 'p01');
```

- 名称
  - `jsreport-phantom-pdf`
  - `jsreport-core`
  - `inline-source`

- 安装

```sh
yarn add jsreport-phantom-pdf inline-source jsreport-core
```

### 导出xlsx

- 参数
  - `attachment` excel文件名称(完整文件名称，例如:ceshi.xlsx)

```js
import render from '@feidao-factory/atom/nodejs/render/render';
// 指定下载文件名称
const url = 'http://192.168.40.196/flippedclass/print.xlsx?attachment=ceshi.xlsx';

// 文件名称无需制定，下载为本页面的名陈'print.xlsx'
const url = 'http://192.168.40.196/flippedclass/print.xlsx';

// 渲染
render(fd.data.node, url, '<a href={{=it}}>docx</a>', 'p01');
```

- 名称
  - `jsreport-html-to-xlsx`
  - `jsreport-xlsx`
  - `inline-source`
  - `jsreport-core`

- 安装

```sh
yarn add jsreport-html-to-xlsx jsreport-xlsx inline-source jsreport-core
```

### 导出docx

- 参数
  - `attachment` docx文件名称(完整文件名称，例如:ceshi.docx)

```js
import render from '@feidao-factory/atom/nodejs/render/render';
// 指定下载文件名称
const url = 'http://192.168.40.196/flippedclass/print.docx?attachment=ceshi.docx';

// 文件名称无需制定，下载为本页面的名陈'print.docx'
const url = 'http://192.168.40.196/flippedclass/print.docx';

// 渲染
render(fd.data.node, url, '<a href={{=it}}>docx</a>', 'p01');
```

- 名称
  - `inline-source`
  - `jsreport-core`
  - `jsreport-html-embedded-in-docx`

- 安装

```sh
yarn add jsreport-html-embedded-in-docx inline-source jsreport-core
```

### 服务导出excel

- 暂时使用的第三方库为`exceljs`

- 服务完成后本地测试需配置
  - 配置的文件为：feidao-server.json

```json
{
	"URL": "@访问地址@",
	"METHOD": "get",
	"SERVICE": "dataservice.nodejs",
	"DATA": {
		"modelid": "custom::js_@文件路径+文件名@"
	}
}
```

- 注意，配置`访问地址`不能和文件`feidao-server.json`中已有的地址重复
- 配置之后，重新启动服务，本地测试路径为:http://127.0.0.1:8889/@访问地址@
- 打包之后请求的地址为：'./@访问地址@'

```sh
yarn add exceljs
```

### 服务导出doc

- 暂时使用的第三方库为`docx`

- 服务完成后本地测试需配置
  - 配置的文件为：feidao-server.json

```json
{
	"URL": "@访问地址@",
	"METHOD": "get",
	"SERVICE": "dataservice.nodejs",
	"DATA": {
		"modelid": "custom::js_@文件路径+文件名@"
	}
}
```

- 注意，配置`访问地址`不能和文件`feidao-server.json`中已有的地址重复
- 配置之后，重新启动服务，本地测试路径为:http://127.0.0.1:8889/@访问地址@
- 打包之后请求的地址为：'./@访问地址@'

```sh
yarn add docx
```