Commit fcaf141f by 无尘

fix: 增加排序和包路径判断

parent ef7944d1
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>API网关管理平台</title><link href=./static/css/app.ae0375b5aeb001d12d527c4d6408f474.css rel=stylesheet></head><body style="min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script>// Raven.config('https://3715a345910d4c768e7a1ec14619c2d5@sentry.io/1413672').install();</script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.15.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.01.js></script><script type=text/javascript src=./static/js/manifest.2782f1bf2e182747b34d.js></script><script type=text/javascript src=./static/js/vendor.71dc162eb690bf6a36a0.js></script><script type=text/javascript src=./static/js/app.9c166ead6e4a1e024065.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>API网关管理平台</title><link href=./static/css/app.d36536f3e6a6b03d810c4eceeceb9b81.css rel=stylesheet></head><body style="min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script>// Raven.config('https://3715a345910d4c768e7a1ec14619c2d5@sentry.io/1413672').install();</script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.15.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.01.js></script><script type=text/javascript src=./static/js/manifest.ad48e6493109b55e42e0.js></script><script type=text/javascript src=./static/js/vendor.71dc162eb690bf6a36a0.js></script><script type=text/javascript src=./static/js/app.9c166ead6e4a1e024065.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,a,c){for(var f,d,i,u=0,b=[];u<r.length;u++)d=r[u],t[d]&&b.push(t[d][0]),t[d]=0;for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&(e[f]=a[f]);for(n&&n(r,a,c);b.length;)b.shift()();if(c)for(u=0;u<c.length;u++)i=o(o.s=c[u]);return i};var r={},t={24:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+e+"."+{0:"52863aa1d72d31066413",1:"0ebe3ead93207dc78a78",2:"f2de06eb950a048c5add",3:"ee2db5932cf0c94dec20",4:"42639b6df28493f31a16",5:"842d518baa251c8fedc4",6:"52e14b1f79af7d86f42f",7:"b2a85a42ddd430235a63",8:"81460c8c66d06cfea732",9:"c98145195e68a6e13faf",10:"638039a7b39908980436",11:"f27d1de28264fbbe30ff",12:"ccbc18453e41490e2dba",13:"b109164d2be44afb7733",14:"9825bb69e60b8030c230",15:"6700988b665e14f99d41",16:"6e70f43452cbef826036",17:"8354f7b686256ddf47fb",18:"e7685f45ec4dd5b70ae4",19:"40fd9824f7542ed7f56d",20:"c163ea91d150e0ca1cb1",21:"55879284ad4d1f03fbe0"}[e]+".js";var f=setTimeout(d,12e4);function d(){c.onerror=c.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=d,a.appendChild(c),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,a,f){for(var c,d,i,u=0,b=[];u<r.length;u++)d=r[u],t[d]&&b.push(t[d][0]),t[d]=0;for(c in a)Object.prototype.hasOwnProperty.call(a,c)&&(e[c]=a[c]);for(n&&n(r,a,f);b.length;)b.shift()();if(f)for(u=0;u<f.length;u++)i=o(o.s=f[u]);return i};var r={},t={24:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var a=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,o.nc&&f.setAttribute("nonce",o.nc),f.src=o.p+"static/js/"+e+"."+{0:"52863aa1d72d31066413",1:"0ebe3ead93207dc78a78",2:"919ea292f4ef6e6d60f6",3:"ee2db5932cf0c94dec20",4:"42639b6df28493f31a16",5:"842d518baa251c8fedc4",6:"52e14b1f79af7d86f42f",7:"b2a85a42ddd430235a63",8:"81460c8c66d06cfea732",9:"c98145195e68a6e13faf",10:"638039a7b39908980436",11:"f27d1de28264fbbe30ff",12:"ccbc18453e41490e2dba",13:"b109164d2be44afb7733",14:"9825bb69e60b8030c230",15:"6700988b665e14f99d41",16:"6e70f43452cbef826036",17:"8354f7b686256ddf47fb",18:"e7685f45ec4dd5b70ae4",19:"40fd9824f7542ed7f56d",20:"c163ea91d150e0ca1cb1",21:"55879284ad4d1f03fbe0"}[e]+".js";var c=setTimeout(d,12e4);function d(){f.onerror=f.onload=null,clearTimeout(c);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return f.onerror=f.onload=d,a.appendChild(f),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -3,8 +3,8 @@
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-08-14 16:51:07
* @LastEditors: 无尘
* @LastEditTime: 2019-10-14 18:03:25
* @LastEditors : 无尘
* @LastEditTime : 2020-01-10 10:36:24
-->
<!--
<back-table-right :itemData="itemData" :interfaceType="interfaceType"></back-table-right>
......@@ -54,7 +54,7 @@ import backTableRight from '@/components/createApi/back-table-right.vue';
</td>
<td v-if="interfaceType == '1'" rowspan="1" colspan="1" class="el-table_1_column_4">
<div class="cell">
<el-input class="w-110" v-model="itemValue.sort" placeholder="请输入排序"></el-input>
<el-input class="w-110" :disabled="!itemValue.isRootKey" v-model="itemValue.sort" placeholder="请输入排序"></el-input>
</div>
</td>
</tr>
......@@ -105,7 +105,7 @@ import backTableRight from '@/components/createApi/back-table-right.vue';
</td>
<td v-if="interfaceType == '1'" rowspan="1" colspan="1" class="el-table_1_column_4">
<div class="cell">
<el-input class="w-110" v-model="itemValue.sort" placeholder="请输入排序"></el-input>
<el-input class="w-110" :disabled="!itemValue.isRootKey" v-model="itemValue.sort" placeholder="请输入排序"></el-input>
</div>
</td>
</tr>
......
......@@ -3,8 +3,8 @@
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-08-12 15:11:33
* @LastEditors: 无尘
* @LastEditTime: 2019-10-14 10:22:37
* @LastEditors : 无尘
* @LastEditTime : 2020-01-10 16:36:26
-->
<!--
<header-param :itemData="itemData"></header-param>
......@@ -61,7 +61,7 @@ import headerParam from '@/components/createApi/header-param.vue';
</tr>
</tbody>
</table>
<body-row class="el-table__row" style="padding-left: 10px;" v-if="itemValue.type == 'array' && Object.keys(itemValue.items.properties).length" :frontOriginType="frontOriginType" :itemData="itemValue.items" :key="index + '122' + itemName"> </body-row>
<body-row class="el-table__row" style="padding-left: 10px;" v-if="itemValue.type == 'array' && Object.keys(itemValue.items.properties).length" :frontOriginType="frontOriginType" :itemData="itemValue.items" :key="index + '1122' + itemName"> </body-row>
<body-row class="el-table__row" style="padding-left: 10px;" v-if="itemValue.type == 'object' && Object.keys(itemValue.properties).length" :frontOriginType="frontOriginType" :itemData="itemValue" :key="index + '122' + itemName"> </body-row>
</template>
</div>
......@@ -127,6 +127,7 @@ export default {
that.$delete(itemData.properties, itemKey);
}
}
that.$forceUpdate();
},
/**
* 修改 type
......@@ -193,7 +194,6 @@ export default {
that.$forceUpdate();
return false;
}
// 这里是对对象的添加操作
that.$set(obj.properties, 'field' + length, {
parentKey: itemKey, // 新增父级的 key
......
......@@ -3,8 +3,8 @@
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-08-07 18:01:05
* @LastEditors: 无尘
* @LastEditTime: 2019-10-24 16:20:03
* @LastEditors : 无尘
* @LastEditTime : 2020-01-10 16:04:24
-->
<!--
<create-backend></create-backend>
......@@ -318,6 +318,55 @@ export default {
}
});
},
async handleChildEmpty(obj) {
const that = this;
let tag = true;
for (let k in obj) {
if (!obj[k].objectClass) {
tag = false;
break;
}
if (obj[k].type == 'object' && Object.keys(obj[k].properties).length) {
tag = await that.handleChildEmpty(obj[k].properties);
// break;
}
if (obj[k].type == 'array' && Object.keys(obj[k].items.properties).length) {
tag = await that.handleChildEmpty(obj[k].items.properties);
}
}
return tag;
},
async handleEmpty(obj) {
const that = this;
let tag = true;
for (let k in obj) {
if (obj[k].isRootKey && (!obj[k].objectClass || !(await that.isNumber(obj[k].sort)))) {
tag = false;
break;
}
// 判断对象一级是否勾选
if (obj[k].isRootKey && obj[k].type == 'object' && Object.keys(obj[k].properties).length) {
tag = await that.handleChildEmpty(obj[k].properties);
// break;
}
if (!obj[k].isRootKey && obj[k].type == 'object' && Object.keys(obj[k].properties).length) {
tag = await that.handleEmpty(obj[k].properties);
// break;
}
// 判断数组一级是否勾选
if (obj[k].isRootKey && obj[k].type == 'array' && Object.keys(obj[k].items.properties).length) {
tag = await that.handleChildEmpty(obj[k].items.properties);
}
if (!obj[k].isRootKey && obj[k].type == 'array' && Object.keys(obj[k].items.properties).length) {
tag = await that.handleEmpty(obj[k].items.properties);
}
}
return tag;
},
isNumber(val) {
const reg = /^\d*$/; // ( '' == 0 )
return val == '' && val !== 0 ? false : reg.test(val);
},
/**
* 处理保存数据
*/
......@@ -333,46 +382,78 @@ export default {
let flag = true;
if (that.apiInfoData.interfaceType == 1 && Object.keys(that.backHeaderData).length && Object.keys(that.backHeaderData.properties).length) {
for (let key in that.backHeaderData.properties) {
if (that.backHeaderData.properties[key].isRootKey && !that.backHeaderData.properties[key].objectClass) {
if (that.backHeaderData.properties[key].isRootKey && (!that.backHeaderData.properties[key].objectClass || !(await that.isNumber(that.backHeaderData.properties[key].sort)))) {
flag = false;
break;
}
}
}
if (!flag) {
showMsg.showmsg('请完善header中的包路径或排序', 'warning');
return false;
}
if (that.apiInfoData.interfaceType == 1 && Object.keys(that.backQueryData).length && Object.keys(that.backQueryData.properties).length) {
for (let key in that.backQueryData.properties) {
if (that.backQueryData.properties[key].isRootKey && !that.backQueryData.properties[key].objectClass) {
if (that.backQueryData.properties[key].isRootKey && (!that.backQueryData.properties[key].objectClass || !(await that.isNumber(that.backQueryData.properties[key].sort)))) {
flag = false;
break;
}
if (that.backQueryData.properties[key].isRootKey && !(/^\d*$/.test(that.backQueryData.properties[key].sort))) {
flag = false;
break;
}
}
}
if (!flag) {
showMsg.showmsg('请完善query中的包路径或排序', 'warning');
return false;
}
if (that.apiInfoData.interfaceType == 1 && Object.keys(that.backBodyFormData).length && Object.keys(that.backBodyFormData.properties).length) {
for (let key in that.backBodyFormData.properties) {
if (that.backBodyFormData.properties[key].isRootKey && !that.backBodyFormData.properties[key].objectClass) {
if (that.backBodyFormData.properties[key].isRootKey && (!that.backBodyFormData.properties[key].objectClass || !(await that.isNumber(that.backBodyFormData.properties[key].sort)))) {
flag = false;
break;
}
}
}
if (!flag) {
showMsg.showmsg('请完善bodyForm中的包路径或排序', 'warning');
return false;
}
if (that.apiInfoData.interfaceType == 1 && Object.keys(that.backBodyJsonData).length && Object.keys(that.backBodyJsonData.properties).length) {
for (let key in that.backBodyJsonData.properties) {
if (that.backBodyJsonData.properties[key].isRootKey && !that.backBodyJsonData.properties[key].objectClass) {
// 顶级勾选
if (that.backBodyJsonData.properties[key].isRootKey && (!that.backBodyJsonData.properties[key].objectClass || !(await that.isNumber(that.backBodyJsonData.properties[key].sort)))) {
flag = false;
break;
}
if (Object.keys(that.backBodyJsonData.properties[key].properties).length) {
for (let childkey in that.backBodyJsonData.properties[key].properties) {
if (that.backBodyJsonData.properties[key].properties[childkey].isRootKey && !that.backBodyJsonData.properties[key].properties[childkey].objectClass) {
flag = false;
break;
}
}
if (that.backBodyJsonData.properties[key].isRootKey && Object.keys(that.backBodyJsonData.properties[key].properties).length) {
// bodyRoot 只有对象出现
flag = await that.handleChildEmpty(that.backBodyJsonData.properties[key].properties);
}
// 判断子级
if (!that.backBodyJsonData.properties[key].isRootKey && Object.keys(that.backBodyJsonData.properties[key].properties).length) {
// bodyRoot 只有对象出现
flag = await that.handleEmpty(that.backBodyJsonData.properties[key].properties);
}
}
}
if (!flag) {
showMsg.showmsg('请完善参数', 'warning');
showMsg.showmsg('请完善bodyRoot中的包路径或排序', 'warning');
return false;
}
let constTag = true;
if (that.apiInfoData.interfaceType == 1 && Object.keys(that.constData.properties).length) {
for (let key in that.constData.properties) {
const reg = /^\d*$/;
if (!that.constData.properties[key].objectClass|| !reg.test(that.constData.properties[key].sort) ) {
constTag = false;
}
}
}
if (!constTag) {
showMsg.showmsg('请完善常量参数中的包路径或排序', 'warning');
return false;
}
that.apiInfoData.backHeaderData = that.backHeaderData;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment