diff --git a/CHANGELOG.md b/CHANGELOG.md
index 35f362e5..bd2202fa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,12 @@
+### v1.3.17
+
+#### Bug Fixed
+* 修复服务器端测试,邮件通知开启token undefined bug
+* 将状态由未完成修改成已完成之后,原来的json格式的数据会变成json-schema
+* 有分类为空时导出json后再导入报错
+* 只修改参数 必需/非必需, 文本/文件 时, 查看改动详情, 提示没有改动
+
+
### v1.3.16
* 支持自定义域名邮箱登录
diff --git a/a.markdown b/a.markdown
index aff80335..d35954f7 100644
--- a/a.markdown
+++ b/a.markdown
@@ -1,5 +1,5 @@
-
test_22(copy_copy)
+ 导入导出测试
@@ -7,43 +7,20 @@
[TOC]
-## cluster%0A%3Ca%20id%3Dcluster%3E%20%3C/a%3E
+# www
+[TOC]
+
+
+## test%0A%3Ca%20id%3Dtest%3E%20%3C/a%3E
[TOC]
### 基本信息
-**Path:** /cluster
+**Path:** /api/col/list
-**Method:** POST
+**Method:** GET
**接口描述:**
-
+undefined
### 请求参数
-**Headers**
-
-| 参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
-| ------------ | ------------ | ------------ | ------------ | ------------ |
-| X-Auth-User | | 是 | | |
-| X-Auth-Project | | 是 | | |
-| X-Auth-token | | 是 | | |
-| Content-Type | multipart/form-data | 是 | | |
-**Query**
-
-| 参数名称 | 是否必须 | 示例 | 备注 |
-| ------------ | ------------ | ------------ | ------------ |
-| qw | 是 | | |
-**Body**
-
-| 参数名称 | 参数类型 | 是否必须 | 示例 | 备注 |
-| ------------ | ------------ | ------------ | ------------ | ------------ |
-| 1 | text | 是 | | |
-| 2 | file | 是 | | |
-
-
-
-### 返回数据
-
-```javascript
-{"type":"object","title":"empty object","properties":{"id":{"type":"object","properties":{"field_1":{"type":"object","properties":{"field_2":{"type":"object","properties":{"field_3":{"type":"object","properties":{"field_4":{"type":"object","properties":{"field_5":{"type":"object","properties":{"field_6":{"type":"object","properties":{"field_7额 u 俄 u 俄 u 茹茹茹茹茹茹茹rrururuueueue ":{"type":"string"}},"required":[]}}}}}}}}}}}}},"msg":{"type":"string"}},"required":[]}
-```
\ No newline at end of file
diff --git a/client/components/TimeLine/TimeLine.js b/client/components/TimeLine/TimeLine.js
index 797b72e2..53081f89 100644
--- a/client/components/TimeLine/TimeLine.js
+++ b/client/components/TimeLine/TimeLine.js
@@ -227,8 +227,8 @@ class TimeTree extends Component {
if (this.state.loading) {
pending =
}
-
let diffView = showDiffMsg(jsondiffpatch, formattersHtml, curDiffData);
+
return (
diff --git a/common/diff-view.js b/common/diff-view.js
index 368796e4..e6ca138f 100644
--- a/common/diff-view.js
+++ b/common/diff-view.js
@@ -41,15 +41,16 @@ module.exports = function (jsondiffpatch, formattersHtml, curDiffData) {
}
const handleParams = (item) => {
- item._id = undefined;
+ let newItem = Object.assign({}, item);
+ newItem._id = undefined;
- Object.keys(item).forEach(key => {
+ Object.keys(newItem).forEach(key => {
switch (key) {
- case 'required': item[key] = valueMaps[item[key]]; break;
- case 'type': item[key] = valueMaps[item[key]]; break;
+ case 'required': newItem[key] = valueMaps[newItem[key]]; break;
+ case 'type': newItem[key] = valueMaps[newItem[key]]; break;
}
})
- return item;
+ return newItem;
}
const diffArray = (arr1, arr2) => {
diff --git a/docs/documents/project.md b/docs/documents/project.md
index 6ba40b7a..a7f926d3 100755
--- a/docs/documents/project.md
+++ b/docs/documents/project.md
@@ -170,6 +170,18 @@ context.promise = new Promise(function(resolve){
})
```
+promise 还可以来设置接口延迟
+
+```javascript
+context.promise = new Promise(function(resolve){
+ setTimeout(function(){
+ console.log('delay 1000ms')
+ resolve('ok')
+ }, 1000)
+})
+```
+
+
使用方法就是在 `context` 里面添加 `promise` 参数,并且返回一个 Promise,不熟悉 Promise 的童鞋可以查下相关用法,ajax 请求可以使用 `context.utils.axios` 库。
diff --git a/exts/yapi-plugin-export-data/controller.js b/exts/yapi-plugin-export-data/controller.js
index 9a4bb058..f62c9f7b 100644
--- a/exts/yapi-plugin-export-data/controller.js
+++ b/exts/yapi-plugin-export-data/controller.js
@@ -28,16 +28,15 @@ class exportController extends baseController {
list = list.sort((a, b) => {
return a.index - b.index;
});
- if (list.length > 0) {
- item.list = list;
- newResult[i] = item;
- }
+ item.list = list;
+ newResult[i] = item;
}
return newResult;
}
handleExistId(data) {
+
function delArrId(arr, fn) {
if (!Array.isArray(arr)) return;
arr.forEach(item => {
@@ -88,6 +87,7 @@ class exportController extends baseController {
return (ctx.body = tp);
}
case 'json': {
+
let data = this.handleExistId(list);
tp = JSON.stringify(data, null, 2);
ctx.set('Content-Disposition', `attachment; filename=api.json`);
diff --git a/server/controllers/interface.js b/server/controllers/interface.js
index 28384562..7fa7e295 100755
--- a/server/controllers/interface.js
+++ b/server/controllers/interface.js
@@ -493,8 +493,8 @@ class interfaceController extends baseController {
let id = params.id;
params.message = params.message || '';
params.message = params.message.replace(/\n/g, "
")
- params.res_body_is_json_schema = _.isUndefined (params.res_body_is_json_schema) ? true : params.res_body_is_json_schema;
- params.req_body_is_json_schema = _.isUndefined(params.req_body_is_json_schema) ? true : params.req_body_is_json_schema;
+ // params.res_body_is_json_schema = _.isUndefined (params.res_body_is_json_schema) ? true : params.res_body_is_json_schema;
+ // params.req_body_is_json_schema = _.isUndefined(params.req_body_is_json_schema) ? true : params.req_body_is_json_schema;
let interfaceData = await this.Model.get(id);
if (!interfaceData) {
@@ -550,6 +550,7 @@ class interfaceController extends baseController {
let result = await this.Model.up(id, data);
let username = this.getUsername();
let CurrentInterfaceData = await this.Model.get(id);
+ console.log('interface', interfaceData);
let logData = {
interface_id: id,
cat_id: data.catid,
@@ -557,6 +558,7 @@ class interfaceController extends baseController {
old: interfaceData.toObject()
}
+
this.catModel.get(interfaceData.catid).then((cate) => {
yapi.commons.saveLog({
content: `${username}
@@ -573,7 +575,16 @@ class interfaceController extends baseController {
this.projectModel.up(interfaceData.project_id, { up_time: new Date().getTime() }).then();
if (params.switch_notice === true) {
+ // console.log('logData', logData);
+ // let logDiffData = {
+ // interface_id: id,
+ // cat_id: data.catid,
+ // current: CurrentInterfaceData.toObject(),
+ // old: interfaceData.toObject()
+ // }
+
let diffView = showDiffMsg(jsondiffpatch, formattersHtml, logData);
+
let annotatedCss = fs.readFileSync(path.resolve(yapi.WEBROOT, 'node_modules/jsondiffpatch/public/formatters-styles/annotated.css'), 'utf8');
let htmlCss = fs.readFileSync(path.resolve(yapi.WEBROOT, 'node_modules/jsondiffpatch/public/formatters-styles/html.css'), 'utf8');
diff --git a/server/utils/commons.js b/server/utils/commons.js
index 882709b9..060c1655 100755
--- a/server/utils/commons.js
+++ b/server/utils/commons.js
@@ -381,6 +381,7 @@ exports.saveLog = logData => {
typeid: logData.typeid,
data: logData.data
};
+
logInst.save(data).then();
} catch (e) {
yapi.commons.log(e, 'error'); // eslint-disable-line