Commit 22575eb7 authored by 刘殿昕's avatar 刘殿昕

服务测试重构

parent 45763fa1
...@@ -475,8 +475,8 @@ border-radius:8px; ...@@ -475,8 +475,8 @@ border-radius:8px;
} }
/* 单选激活样式 */ /* 单选激活样式 */
.el-radio__input.is-checked .el-radio__inner { .el-radio__input.is-checked .el-radio__inner {
border-color: #838383; border-color: #e3e5ef;
background-color: #fff; background-color: #f7f8f9;
} }
.el-radio__input.is-checked + .el-radio__label { .el-radio__input.is-checked + .el-radio__label {
color: #1a2236; color: #1a2236;
......
...@@ -14,28 +14,34 @@ ...@@ -14,28 +14,34 @@
class="eeupload" class="eeupload"
action="/apaas/static/image/upload" action="/apaas/static/image/upload"
:file-list="fileArray" :file-list="fileArray"
:list-type="type=='picture'?'picture-card':''" :list-type="type == 'picture' ? 'picture-card' : ''"
:limit="max" :limit="max"
:multiple="multiple" :multiple="multiple"
:on-remove="handleRemove" :on-remove="handleRemove"
:on-success="handleAvatarSuccess" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :before-upload="beforeAvatarUpload"
:class="{hide:hideUpload || readOnly}" :class="{ hide: hideUpload || readOnly }"
:readOnly="readOnly" :readOnly="readOnly"
:data="anotherData" :data="anotherData"
:drag="drag" :drag="drag"
:disabled="disabled" :disabled="disabled"
:accept="accepts"
> >
<div v-if="drag"> <div v-if="drag">
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text"> <div class="el-upload__text">
将文件拖到此处,或 <span class="up_fz">将文件拖到此处,或</span>
<em>点击上传</em> <em>点击上传</em><br />
<span class="up_fz">{{ up_fz }}</span>
</div> </div>
</div> </div>
<el-button size="small" type="primary" v-if="!drag && type=='default'">上传文件</el-button> <el-button size="small" type="primary" v-if="!drag && type == 'default'"
<div slot="tip" class="el-upload__tip" v-if="!drag && type=='mp3'">支持文件格式:.mp3,单个文件不能超过20M。</div> >上传文件</el-button
<i class="el-icon-plus" v-if="!drag && type=='picture'"></i> >
<div slot="tip" class="el-upload__tip" v-if="!drag && type == 'mp3'">
支持文件格式:.mp3,单个文件不能超过20M。
</div>
<i class="el-icon-plus" v-if="!drag && type == 'picture'"></i>
</el-upload> </el-upload>
</div> </div>
</div> </div>
...@@ -97,6 +103,14 @@ export default { ...@@ -97,6 +103,14 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
up_fz: {
type: String,
default: "",
},
accepts: {
type: String,
default: "",
},
}, },
watch: { watch: {
list(value) { list(value) {
...@@ -217,4 +231,7 @@ export default { ...@@ -217,4 +231,7 @@ export default {
.hide .el-upload--picture-card { .hide .el-upload--picture-card {
display: none; display: none;
} }
.up_fz {
color: #a9aec0;
}
</style> </style>
\ No newline at end of file
...@@ -254,7 +254,7 @@ export default { ...@@ -254,7 +254,7 @@ export default {
if (v.visit_url) { if (v.visit_url) {
if (v.visit_url == "/fwgl/" || v.visit_url == "/yygl/") { if (v.visit_url == "/fwgl/" || v.visit_url == "/yygl/") {
this.$router.push(v.visit_url + this.$store.getters.level); this.$router.push(v.visit_url + this.$store.getters.level);
} else if (parent == "/shop") { } else if (parent == "/services_shop") {
this.$store.commit("serviceShopMenuAct", v.visit_url); this.$store.commit("serviceShopMenuAct", v.visit_url);
this.$router.push(v.visit_url); this.$router.push(v.visit_url);
} else { } else {
......
...@@ -222,7 +222,7 @@ ...@@ -222,7 +222,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="22"> <el-col :span="24">
<el-form-item class="form_item"> <el-form-item class="form_item">
<div class="form_item_title">申请文件:</div> <div class="form_item_title">申请文件:</div>
<info-list :list_arr="docTemplate" class="doc_template"></info-list> <info-list :list_arr="docTemplate" class="doc_template"></info-list>
...@@ -234,6 +234,7 @@ ...@@ -234,6 +234,7 @@
:readOnly="false" :readOnly="false"
:drag="true" :drag="true"
@getNewList="getNewList" @getNewList="getNewList"
class="up_f"
></upload-file> ></upload-file>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -1549,6 +1550,9 @@ export default { ...@@ -1549,6 +1550,9 @@ export default {
.doc_template { .doc_template {
margin: 0 0 10px 20px; margin: 0 0 10px 20px;
} }
.up_f {
width: calc(50% - 10px);
}
</style> </style>
<style> <style>
.form_block .el-input .el-input__inner { .form_block .el-input .el-input__inner {
...@@ -1668,4 +1672,10 @@ export default { ...@@ -1668,4 +1672,10 @@ export default {
padding-left: 15px; padding-left: 15px;
padding-right: 40px; padding-right: 40px;
} }
.up_f .el-upload {
width: 100%;
}
.up_f .el-upload-dragger {
width: 100%;
}
</style> </style>
...@@ -6,31 +6,11 @@ ...@@ -6,31 +6,11 @@
</el-aside> </el-aside>
<el-main> <el-main>
<service-list <service-list
v-show="urlFilter != '7' && urlFilter != '10'"
:filterNames="filterNames" :filterNames="filterNames"
:name="name" :name="name"
:url="url" :url="url"
:urlFilter="urlFilter" :urlFilter="urlFilter"
></service-list> ></service-list>
<div v-show="urlFilter == '7' || urlFilter == '10'">
<el-breadcrumb separator="/" class="bread_crumb1 bread_left">
<el-breadcrumb-item :to="{ path: '/shop' }">
{{
$t("lang.service_shop")
}}
</el-breadcrumb-item>
<el-breadcrumb-item>{{ name }}</el-breadcrumb-item>
</el-breadcrumb>
<BlockRadius class="default">
<div class="default_img">
<h1 class="default_title">开发中,敬请期待!</h1>
<h3 class="default_msg">
如需技术支持
<br />请联系管理员
</h3>
</div>
</BlockRadius>
</div>
</el-main> </el-main>
</el-container> </el-container>
</div> </div>
......
<template> <template>
<div class="fwcs"> <div class="fwcs">
<el-breadcrumb v-if="is_map != 0" separator="/" class="bread_crumb"> <el-breadcrumb v-if="is_map != 0" separator="/" class="bread_crumb">
<el-breadcrumb-item :to="{ path: '/workplace' }">在线组件工具</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/workplace' }"
<el-breadcrumb-item :to="{ path: '/intelligent_drawing' }">智能制图</el-breadcrumb-item> >在线组件工具</el-breadcrumb-item
>
<el-breadcrumb-item :to="{ path: '/intelligent_drawing' }"
>智能制图</el-breadcrumb-item
>
<el-breadcrumb-item>发布信息填写</el-breadcrumb-item> <el-breadcrumb-item>发布信息填写</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
<el-breadcrumb v-else-if="process_id != ''" separator="/" class="bread_crumb"> <el-breadcrumb
<el-breadcrumb-item :to="{ path: '/workplace' }">在线组件工具</el-breadcrumb-item> v-else-if="process_id != ''"
<el-breadcrumb-item :to="{ path: '/progress/designer' }">流程设计</el-breadcrumb-item> separator="/"
class="bread_crumb"
>
<el-breadcrumb-item :to="{ path: '/workplace' }"
>在线组件工具</el-breadcrumb-item
>
<el-breadcrumb-item :to="{ path: '/progress/designer' }"
>流程设计</el-breadcrumb-item
>
<el-breadcrumb-item>发布信息填写</el-breadcrumb-item> <el-breadcrumb-item>发布信息填写</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
<el-breadcrumb v-else separator="/" class="bread_crumb"> <el-breadcrumb v-else separator="/" class="bread_crumb">
<el-breadcrumb-item :to="{ path: '/fwzc' }">服务注册</el-breadcrumb-item> <el-breadcrumb-item :to="{ path: '/fwzc' }">服务注册</el-breadcrumb-item>
<el-breadcrumb-item v-if="!jcxxtx">服务测试</el-breadcrumb-item> <el-breadcrumb-item v-if="!jcxxtx">服务测试</el-breadcrumb-item>
<el-breadcrumb-item v-else :to="{ path: '/fwzc' }">服务测试</el-breadcrumb-item> <el-breadcrumb-item v-else :to="{ path: '/fwzc' }"
>服务测试</el-breadcrumb-item
>
<el-breadcrumb-item v-if="jcxxtx">基础信息填写</el-breadcrumb-item> <el-breadcrumb-item v-if="jcxxtx">基础信息填写</el-breadcrumb-item>
</el-breadcrumb> </el-breadcrumb>
<div v-if="!jcxxtx"> <div v-if="!jcxxtx">
...@@ -23,7 +37,7 @@ ...@@ -23,7 +37,7 @@
v-for="(item, index) in btnList" v-for="(item, index) in btnList"
:key="item.id" :key="item.id"
@click="clickBtn(index)" @click="clickBtn(index)"
:class="activeBtn == index ? 'fwcs_btn_act':'fwcs_btn_dis'" :class="activeBtn == index ? 'fwcs_btn_act' : 'fwcs_btn_dis'"
> >
<img <img
v-if="activeBtn == index" v-if="activeBtn == index"
...@@ -41,7 +55,12 @@ ...@@ -41,7 +55,12 @@
<div class="gray_line"></div> <div class="gray_line"></div>
<div v-if="activeBtn == 4"> <div v-if="activeBtn == 4">
<div class="sqxx_title">服务类型:</div> <div class="sqxx_title">服务类型:</div>
<el-select @change="changeZhType" v-model="zhyyVal" placeholder="请选择" class="zhyy_select"> <el-select
@change="changeZhType"
v-model="zhyyVal"
placeholder="请选择"
class="zhyy_select"
>
<el-option <el-option
v-for="item in optionsZhyy" v-for="item in optionsZhyy"
:key="item.id" :key="item.id"
...@@ -50,15 +69,58 @@ ...@@ -50,15 +69,58 @@
></el-option> ></el-option>
</el-select> </el-select>
</div> </div>
<div class="fwcs_fwdz">服务地址:</div> <div v-if="activeBtn == 4 && zhyyVal == 24" class="lc_alert">
<div class="fwcs_fwdz_inner"> <i class="el-icon-warning-outline"></i>
<p>
说明:支持多个流程服务接口的注册,若流程服务包含多个接口,每个接口需分别注册为独立的服务地址才可使用。<br />
示例:http(s)://www.apaas.com(自有域名)/xxx,其中xxx为该流程服务的不同接口后缀,需分别进行单个接口的注册。<br />
比如:服务地址1:http(s)://www.apaas.com(自有域名)/create(用于新建流程实例)
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;服务地址2:http(s)://www.apaas.com(自有域名)/query
(用于查询流程状态)
</p>
</div>
<div v-if="(activeBtn == 4 && zhyyVal == 24) || activeBtn == 3">
<div class="fwcs_fwdz">
上传接口文档
<span class="title_bc">(请上传所有服务地址完整接口文档)</span>
</div>
<upload-file
:multiple="false"
:unique="false"
:max="1"
type="zip"
:readOnly="false"
:drag="true"
@getNewList="getNewListOne"
class="lc_upf"
up_fz="支持.pdf,.docx,.doc,.zip,.rar 格式文件"
accepts=".pdf, .docx, .doc, .zip, .rar"
></upload-file>
</div>
<div v-if="activeBtn == 3">
<div class="fwcs_fwdz">返回数据格式</div>
<el-radio-group v-model="gz_fhsjgs" class="gz_fhsjgs_rad">
<el-radio label="JSON">JSON</el-radio>
<el-radio label="XML">XML</el-radio>
</el-radio-group>
</div>
<div v-if="!(activeBtn == 4 && zhyyVal == 24)" class="fwcs_fwdz">
服务地址:
</div>
<div v-if="!(activeBtn == 4 && zhyyVal == 24)" class="fwcs_fwdz_inner">
<el-input <el-input
placeholder="请输入内容" placeholder="请输入内容"
@input="getUrl" @input="getUrl"
v-model="serviceUrl" v-model="serviceUrl"
class="input-with-select" class="input-with-select"
> >
<el-select v-if="activeBtn == 1" v-model="select" slot="prepend" placeholder="请选择"> <el-select
v-if="activeBtn == 1"
v-model="select"
slot="prepend"
placeholder="请选择"
>
<el-option <el-option
v-for="item in optionType1" v-for="item in optionType1"
:key="item.value" :key="item.value"
...@@ -66,7 +128,12 @@ ...@@ -66,7 +128,12 @@
:value="item.value" :value="item.value"
></el-option> ></el-option>
</el-select> </el-select>
<el-select v-else v-model="select" slot="prepend" placeholder="请选择"> <el-select
v-else
v-model="select"
slot="prepend"
placeholder="请选择"
>
<el-option <el-option
v-for="item in optionType" v-for="item in optionType"
:key="item.value" :key="item.value"
...@@ -75,13 +142,11 @@ ...@@ -75,13 +142,11 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-input> </el-input>
<el-button <el-button @click="clickFwcs()" class="fwcs_btn_fwcs"
v-if="activeBtn == 0 || activeBtn == 1 || activeBtn == 4" >服务测试</el-button
@click="clickFwcs()" >
class="fwcs_btn_fwcs"
>服务测试</el-button>
</div> </div>
<div v-if="activeBtn == 0"> <div v-if="activeBtn == 0 || activeBtn == 3">
<el-tabs v-model="activeName" class="fwcs_tabs" @tab-click="clickTab"> <el-tabs v-model="activeName" class="fwcs_tabs" @tab-click="clickTab">
<el-tab-pane label="请求参数" name="0"> <el-tab-pane label="请求参数" name="0">
<ces-table <ces-table
...@@ -118,7 +183,11 @@ ...@@ -118,7 +183,11 @@
<el-row class="sqxx_row"> <el-row class="sqxx_row">
<el-col :span="6"> <el-col :span="6">
<div class="sqxx_title">授权方式:</div> <div class="sqxx_title">授权方式:</div>
<el-select v-model="sqfsVal" placeholder="请选择" class="sqxx_select"> <el-select
v-model="sqfsVal"
placeholder="请选择"
class="sqxx_select"
>
<el-option <el-option
v-for="item in optionsSq" v-for="item in optionsSq"
:key="item.value" :key="item.value"
...@@ -132,7 +201,10 @@ ...@@ -132,7 +201,10 @@
</el-col> </el-col>
<el-col :span="16"> <el-col :span="16">
<div class="sqxx_title">Token:</div> <div class="sqxx_title">Token:</div>
<el-input v-model="tokenVal" placeholder="请输入内容"></el-input> <el-input
v-model="tokenVal"
placeholder="请输入内容"
></el-input>
</el-col> </el-col>
</el-row> </el-row>
</el-tab-pane> </el-tab-pane>
...@@ -146,10 +218,11 @@ ...@@ -146,10 +218,11 @@
:key="item.name" :key="item.name"
v-model="skfwQqt" v-model="skfwQqt"
:label="item.id" :label="item.id"
>{{ item.name }}</el-radio> >{{ item.name }}</el-radio
>
</div> </div>
</div> </div>
<div v-if="activeBtn == 4 && zhyyVal != 34"> <div v-if="activeBtn == 4 && zhyyVal != 34 && zhyyVal != 24">
<el-tabs v-model="activeZh" class="fwcs_tabs" @tab-click="clickTab"> <el-tabs v-model="activeZh" class="fwcs_tabs" @tab-click="clickTab">
<el-tab-pane label="请求参数" name="0"> <el-tab-pane label="请求参数" name="0">
<ces-table <ces-table
...@@ -179,7 +252,9 @@ ...@@ -179,7 +252,9 @@
<el-radio-group v-model="zhfwQqt" @change="changeZhfwQqt"> <el-radio-group v-model="zhfwQqt" @change="changeZhfwQqt">
<el-radio label="JSON">JSON</el-radio> <el-radio label="JSON">JSON</el-radio>
<el-radio label="form-data">form-data</el-radio> <el-radio label="form-data">form-data</el-radio>
<el-radio label="x-www-form-urlencoded">x-www-form-urlencoded</el-radio> <el-radio label="x-www-form-urlencoded"
>x-www-form-urlencoded</el-radio
>
</el-radio-group> </el-radio-group>
</div> </div>
<div v-show="zhfwQqt == 'JSON'"> <div v-show="zhfwQqt == 'JSON'">
...@@ -236,7 +311,12 @@ ...@@ -236,7 +311,12 @@
</block-radius> </block-radius>
<block-radius v-show="resultShow"> <block-radius v-show="resultShow">
<div <div
v-show="(activeBtn == 0 || activeBtn == 4 && (zhyyVal == 22 || zhyyVal == 23)) && resSuccess" v-show="
(activeBtn == 0 ||
activeBtn == 3 ||
(activeBtn == 4 && (zhyyVal == 22 || zhyyVal == 23))) &&
resSuccess
"
> >
<div class="sjfw_qqcstx">请求参数信息填写:</div> <div class="sjfw_qqcstx">请求参数信息填写:</div>
<ces-table <ces-table
...@@ -281,43 +361,300 @@ ...@@ -281,43 +361,300 @@
headerCellClassName="th_pink" headerCellClassName="th_pink"
></ces-table> ></ces-table>
</div> </div>
<div v-show="(activeBtn == 1 || (activeBtn == 4 && zhyyVal == 34)) && resSuccess"> <div
v-show="
(activeBtn == 1 || (activeBtn == 4 && zhyyVal == 34)) && resSuccess
"
>
<div class="skfw_csfwxx">测试服务信息:</div> <div class="skfw_csfwxx">测试服务信息:</div>
<div class="test_succ"> <div class="test_succ">
<div class="skcs_jg"> <div class="skcs_jg">
<img src="@/assets/imgs/test_icon_success.png" class="skcs_jg_img" />&nbsp;测试成功 <img
src="@/assets/imgs/test_icon_success.png"
class="skcs_jg_img"
/>&nbsp;测试成功
</div> </div>
</div> </div>
</div> </div>
<div v-show="(activeBtn == 0 || activeBtn == 1 || activeBtn == 4) && !resSuccess"> <div
v-show="
(activeBtn == 0 ||
activeBtn == 1 ||
activeBtn == 3 ||
activeBtn == 4) &&
!resSuccess
"
>
<div class="skfw_csfwxx">测试服务信息:</div> <div class="skfw_csfwxx">测试服务信息:</div>
<div class="test_succ"> <div class="test_succ">
<div class="skcs_jg"> <div class="skcs_jg">
<img src="@/assets/imgs/test_icon_error.png" class="skcs_jg_img" />&nbsp;测试失败 <img
src="@/assets/imgs/test_icon_error.png"
class="skcs_jg_img"
/>&nbsp;测试失败
</div> </div>
</div> </div>
</div> </div>
<div class="btn_footer"> <div class="btn_footer">
<el-button class="reset" v-if="activeBtn == 0 && resSuccess" @click="resetSjfw">重置</el-button> <el-button
<el-button :disabled="!resSuccess" :class="resSuccess ? 'next':''" @click="nextJcxx">下一步</el-button> class="reset"
v-if="activeBtn == 0 && resSuccess"
@click="resetSjfw"
>重置</el-button
>
<el-button
:disabled="!resSuccess"
:class="resSuccess ? 'next' : ''"
@click="nextJcxx"
>下一步</el-button
>
</div> </div>
</block-radius> </block-radius>
<div v-if="activeBtn == 4 && zhyyVal == 24">
<!-- 24 -->
<block-radius
v-for="(itemOne, indexOne) in liucheng_list"
:key="`liucheng_${indexOne}`"
>
<div class="one_service">
<div class="one_name">服务接口名称:</div>
<div class="one_name_in">
<el-form
:model="itemOne"
:rules="rulesOne"
:ref="`ruleFormOne_${indexOne}`"
>
<el-form-item prop="one_input">
<el-input
v-model="itemOne.one_input"
placeholder="请输入内容"
>
</el-input>
</el-form-item>
</el-form>
</div>
<div class="one_url">服务地址{{ indexOne + 1 }}</div>
<div class="fwcs_fwdz_inner">
<el-input
placeholder="请输入内容"
@input="
(val) => {
getUrlOne(val, indexOne);
}
"
v-model="itemOne.serviceUrl"
class="input-with-select"
>
<el-select
v-model="itemOne.select"
slot="prepend"
placeholder="请选择"
>
<el-option
v-for="item in optionType"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-input>
<el-button @click="clickFwcsOne(indexOne)" class="fwcs_btn_fwcs"
>服务测试</el-button
>
</div>
<el-tabs
v-model="itemOne.activeName"
class="fwcs_tabs"
@tab-click="clickTabOne"
>
<el-tab-pane label="请求参数" name="0">
<ces-table
:ref="`one_qqcs_${indexOne}`"
size="mini"
:border="true"
:headers="sjfwQqcs"
url
:datas="itemOne.datasSj"
:searchShow="false"
:addRowBtn="false"
:autoAdd="true"
:isDialog="false"
:isSelection="false"
:isIndex="true"
:radius="true"
:emptyText="emptyText"
:stripe="false"
:paginationShow="false"
:pageSizeShow="false"
headerCellClassName="th_pink"
@changeTable="
(val) => {
changeTableOne(val, indexOne);
}
"
></ces-table>
</el-tab-pane>
<el-tab-pane label="请求体" name="1">
<div class="sjfw_qqt">
<el-radio-group v-model="itemOne.sjfwQqt">
<el-radio label="JSON">JSON</el-radio>
</el-radio-group>
</div>
<v-apaas-code :ref="`one_json_${indexOne}`"></v-apaas-code>
</el-tab-pane>
<el-tab-pane label="授权信息" name="2">
<el-row class="sqxx_row">
<el-col :span="6">
<div class="sqxx_title">授权方式:</div>
<el-select
v-model="itemOne.sqfsVal"
placeholder="请选择"
class="sqxx_select"
>
<el-option
v-for="item in optionsSq"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-col>
<el-col :span="2" class="center_line_c">
<div class="center_line_one"></div>
</el-col>
<el-col :span="16">
<div class="sqxx_title">Token:</div>
<el-input
v-model="itemOne.tokenVal"
placeholder="请输入内容"
></el-input>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
<div v-show="itemOne.resultShow">
<div v-show="itemOne.resSuccess">
<div class="sjfw_qqcstx">请求参数信息填写:</div>
<ces-table
:ref="`one_qqxx_${indexOne}`"
size="mini"
:border="true"
:headers="sjfwQqcstx"
url
:datas="itemOne.datasQqcs"
:searchShow="false"
:addRowBtn="false"
:autoAdd="false"
:isDialog="false"
:isSelection="false"
:isIndex="true"
:radius="true"
:emptyText="emptyText"
:stripe="false"
:paginationShow="false"
:pageSizeShow="false"
headerCellClassName="th_pink"
></ces-table>
<div class="sjfw_fhcstx">返回参数信息填写:</div>
<ces-table
:ref="`one_fhxx_${indexOne}`"
size="mini"
:border="true"
:headers="sjfwFhcstx"
url
:datas="itemOne.datasFhcs"
:searchShow="false"
:addRowBtn="false"
:autoAdd="false"
:isDialog="false"
:isSelection="false"
:isIndex="true"
:radius="true"
:emptyText="emptyText"
:stripe="false"
:paginationShow="false"
:pageSizeShow="false"
headerCellClassName="th_pink"
></ces-table>
</div>
<div v-show="!itemOne.resSuccess">
<div class="skfw_csfwxx">测试服务信息:</div>
<div class="test_succ">
<div class="skcs_jg">
<img
src="@/assets/imgs/test_icon_error.png"
class="skcs_jg_img"
/>&nbsp;测试失败
</div>
</div>
</div>
</div>
<div class="btn_footer_one">
<el-button
v-if="
indexOne + 1 == liucheng_list.length && itemOne.resSuccess
"
class="new_one"
@click="newOne(indexOne)"
>新增服务地址</el-button
>
<el-button
v-if="!(indexOne + 1 == liucheng_list.length)"
class="del_one"
@click="delOne(indexOne)"
>移除</el-button
>
<el-button
v-if="itemOne.resultShow"
class="reset_one"
@click="resetOne(indexOne)"
>重置</el-button
>
<el-button
v-if="
indexOne + 1 == liucheng_list.length && itemOne.resSuccess
"
class="next_one"
@click="nextOne"
>下一步</el-button
>
</div>
</div>
</block-radius>
</div>
</div> </div>
<div v-else> <div v-else>
<block-radius> <block-radius>
<div class="fwcs_add"> <div class="fwcs_add">
<el-form ref="form" :model="form" :rules="process_id == '' ? rules : rules_process"> <el-form
ref="form"
:model="form"
:rules="process_id == '' ? rules : rules_process"
>
<el-form-item prop="name"> <el-form-item prop="name">
<p class="formname">服务名称:</p> <p class="formname">服务名称:</p>
<el-input v-model="form.name" placeholder="请输入服务名称" class="form_in"></el-input> <el-input
v-model="form.name"
placeholder="请输入服务名称"
class="form_in"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="desc"> <el-form-item prop="desc">
<p class="formname">服务描述:</p> <p class="formname">服务描述:</p>
<el-input type="textarea" v-model="form.desc" placeholder="请输入服务描述" class="form_in"></el-input> <el-input
type="textarea"
v-model="form.desc"
placeholder="请输入服务描述"
class="form_in"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="area"> <el-form-item prop="area">
<p class="formname">服务领域:</p> <p class="formname">服务领域:</p>
<el-select v-model="form.area" placeholder="请选择" class="form_in"> <el-select
v-model="form.area"
placeholder="请选择"
class="form_in"
>
<el-option <el-option
v-for="item in optionsArea" v-for="item in optionsArea"
:key="item.id" :key="item.id"
...@@ -328,7 +665,11 @@ ...@@ -328,7 +665,11 @@
</el-form-item> </el-form-item>
<el-form-item prop="origin"> <el-form-item prop="origin">
<p class="formname">所属组织:</p> <p class="formname">所属组织:</p>
<el-input v-model="form.origin" class="form_in" :disabled="true"></el-input> <el-input
v-model="form.origin"
class="form_in"
:disabled="true"
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<p class="formname">服务封面:</p> <p class="formname">服务封面:</p>
...@@ -343,7 +684,11 @@ ...@@ -343,7 +684,11 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<p class="formname">接口编码:</p> <p class="formname">接口编码:</p>
<el-input v-model="form.code" class="form_in" :disabled="true"></el-input> <el-input
v-model="form.code"
class="form_in"
:disabled="true"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="resource"> <el-form-item prop="resource">
<p class="formname">开放程度:</p> <p class="formname">开放程度:</p>
...@@ -354,15 +699,20 @@ ...@@ -354,15 +699,20 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item v-if="is_map != 0" class="btn_footer"> <el-form-item v-if="is_map != 0" class="btn_footer">
<el-button <el-button class="previous" @click="goBack('map')">{{
class="previous" is_map == 1 ? "返回智能制图" : "返回Web应用程序"
@click="goBack('map')" }}</el-button>
>{{ is_map == 1 ? "返回智能制图" : "返回Web应用程序" }}</el-button> <el-button class="registe" @click="registeMap"
<el-button class="registe" @click="registeMap">服务发布</el-button> >服务发布</el-button
>
</el-form-item> </el-form-item>
<el-form-item v-else-if="process_id != ''" class="btn_footer"> <el-form-item v-else-if="process_id != ''" class="btn_footer">
<el-button class="previous" @click="goBack('process')">返回流程管理</el-button> <el-button class="previous" @click="goBack('process')"
<el-button class="registe" @click="registeProcess">服务发布</el-button> >返回流程管理</el-button
>
<el-button class="registe" @click="registeProcess"
>服务发布</el-button
>
</el-form-item> </el-form-item>
<el-form-item v-else class="btn_footer"> <el-form-item v-else class="btn_footer">
<el-button class="previous" @click="previous">上一步</el-button> <el-button class="previous" @click="previous">上一步</el-button>
...@@ -403,6 +753,34 @@ export default { ...@@ -403,6 +753,34 @@ export default {
}, },
data() { data() {
return { return {
liucheng_list: [
{
one_input: "",
select: "GET",
serviceUrl: "",
datasSj: [],
sjfwQqt: "JSON",
sqfsVal: "",
tokenVal: "",
noSearchUrl: "",
resultShow: false,
resSuccess: false,
requestRules: 0,
responseRules: 0,
request_fields: [],
response_fields: [],
checkPass: false,
dataType: "",
body_fields: [],
param_fields: [],
},
],
rulesOne: {
one_input: [
{ required: true, message: "请输入服务名称", trigger: "blur" },
{ min: 0, max: 15, message: "服务名称不超过15个字", trigger: "blur" },
],
},
addPortalItemUrl: addPortalItemUrl:
gisServiceUrl + "/portal/apaasplat/viewer/addPortalItem.html", gisServiceUrl + "/portal/apaasplat/viewer/addPortalItem.html",
btnList: [], btnList: [],
...@@ -539,7 +917,9 @@ export default { ...@@ -539,7 +917,9 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
area: [{ required: true, message: "请选择服务领域", trigger: "change" }], area: [
{ required: true, message: "请选择服务领域", trigger: "change" },
],
origin: [ origin: [
{ required: true, message: "请选择所属组织", trigger: "blur" }, { required: true, message: "请选择所属组织", trigger: "blur" },
], ],
...@@ -597,6 +977,8 @@ export default { ...@@ -597,6 +977,8 @@ export default {
is_portal: false, is_portal: false,
portal_id: "", portal_id: "",
dataType: "", dataType: "",
jkwds: [],
gz_fhsjgs: "JSON",
}; };
}, },
computed: {}, computed: {},
...@@ -646,7 +1028,7 @@ export default { ...@@ -646,7 +1028,7 @@ export default {
clickFwcs() { clickFwcs() {
let headers = {}; let headers = {};
let requestData = {}; let requestData = {};
if (this.activeBtn == 0) { if (this.activeBtn == 0 || this.activeBtn == 3) {
if (this.sqfsVal != "") { if (this.sqfsVal != "") {
headers.Authorization = []; headers.Authorization = [];
headers.Authorization[0] = this.sqfsVal + " " + this.tokenVal; headers.Authorization[0] = this.sqfsVal + " " + this.tokenVal;
...@@ -700,7 +1082,7 @@ export default { ...@@ -700,7 +1082,7 @@ export default {
} }
let bodys = ""; let bodys = "";
let contentType = ""; let contentType = "";
if (this.activeBtn == 0) { if (this.activeBtn == 0 || this.activeBtn == 3) {
bodys = this.$refs.jsonCodes ? this.$refs.jsonCodes.getCodesVal() : ""; bodys = this.$refs.jsonCodes ? this.$refs.jsonCodes.getCodesVal() : "";
contentType = this.sjfwQqt; contentType = this.sjfwQqt;
} else if (this.activeBtn == 4) { } else if (this.activeBtn == 4) {
...@@ -737,6 +1119,7 @@ export default { ...@@ -737,6 +1119,7 @@ export default {
: this.activeBtn == 4 : this.activeBtn == 4
? this.zhyyVal ? this.zhyyVal
: 0, : 0,
response_type: this.activeBtn == 3 ? this.gz_fhsjgs : "JSON",
}; };
this.$api.workbench.fwzcFwcs(query).then((response) => { this.$api.workbench.fwzcFwcs(query).then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
...@@ -767,6 +1150,7 @@ export default { ...@@ -767,6 +1150,7 @@ export default {
nextJcxx() { nextJcxx() {
if ( if (
this.activeBtn == 0 || this.activeBtn == 0 ||
this.activeBtn == 3 ||
(this.activeBtn == 4 && (this.zhyyVal == 22 || this.zhyyVal == 23)) (this.activeBtn == 4 && (this.zhyyVal == 22 || this.zhyyVal == 23))
) { ) {
let requestData = this.$refs.fwcs_sjfw_qqcs.getTableData(); let requestData = this.$refs.fwcs_sjfw_qqcs.getTableData();
...@@ -834,6 +1218,9 @@ export default { ...@@ -834,6 +1218,9 @@ export default {
this.datasFhcs = this.response_fields; this.datasFhcs = this.response_fields;
this.jcxxtx = false; this.jcxxtx = false;
}, },
getNewListOne(val) {
this.jkwds[0] = val[0].url;
},
getOrganization() { getOrganization() {
let query = { let query = {
id: this.$store.state.userInfo.user_id, id: this.$store.state.userInfo.user_id,
...@@ -940,6 +1327,13 @@ export default { ...@@ -940,6 +1327,13 @@ export default {
}); });
}, },
registe() { registe() {
if (this.activeBtn == 4 && this.zhyyVal == 24) {
this.registeOne();
} else {
this.registePt();
}
},
registePt() {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
if (this.cover.length != 0) { if (this.cover.length != 0) {
...@@ -947,7 +1341,7 @@ export default { ...@@ -947,7 +1341,7 @@ export default {
if (this.activeBtn == 1 && !this.is_portal) { if (this.activeBtn == 1 && !this.is_portal) {
this.addPortalItem(); this.addPortalItem();
} else { } else {
if (this.activeBtn == 0) { if (this.activeBtn == 0 || this.activeBtn == 3) {
contentType = this.sjfwQqt; contentType = this.sjfwQqt;
} else if (this.activeBtn == 4) { } else if (this.activeBtn == 4) {
if (this.activeZh == 1) { if (this.activeZh == 1) {
...@@ -970,20 +1364,29 @@ export default { ...@@ -970,20 +1364,29 @@ export default {
: this.activeBtn == 4 : this.activeBtn == 4
? this.zhyyVal ? this.zhyyVal
: 0, : 0,
encode_method: this.form.code,
method: this.select,
url: this.serviceUrl,
request_fields:
this.dataType == "body"
? this.request_fields
: this.body_fields,
request_query_fields:
this.dataType == "param"
? this.request_fields
: this.param_fields,
response_fields: this.response_fields,
content_type: contentType,
portal_id: this.portal_id, portal_id: this.portal_id,
encode_method: this.form.code,
urls: [
{
name: "",
response_type:
this.activeBtn == 3 ? this.gz_fhsjgs : "JSON",
req_auth_mthod: 0,
req_auth_token: this.tokenVal,
method: this.select,
url: this.serviceUrl,
request_fields:
this.dataType == "body"
? this.request_fields
: this.body_fields,
request_query_fields:
this.dataType == "param"
? this.request_fields
: this.param_fields,
response_fields: this.response_fields,
content_type: contentType,
},
],
}; };
this.$api.workbench.serviceAdd(query).then((response) => { this.$api.workbench.serviceAdd(query).then((response) => {
if (response.data.success == 1) { if (response.data.success == 1) {
...@@ -1003,6 +1406,61 @@ export default { ...@@ -1003,6 +1406,61 @@ export default {
} }
}); });
}, },
registeOne() {
this.$refs.form.validate((valid) => {
if (valid) {
if (this.cover.length != 0) {
let urls = [];
this.liucheng_list.forEach((item) => {
urls.push({
name: item.one_input,
response_type: "JSON",
req_auth_mthod: 0,
req_auth_token: item.tokenVal,
method: item.select,
url: item.serviceUrl,
request_fields:
item.dataType == "body"
? item.request_fields
: item.body_fields,
request_query_fields:
item.dataType == "param"
? item.request_fields
: item.param_fields,
response_fields: item.response_fields,
content_type: "JSON",
});
});
let query = {
name: this.form.name,
sectors: this.form.area,
organization: this.form.origin,
cover: this.cover[0],
openness: this.form.resource,
descript: this.form.desc,
data_service_type1: this.btnList[this.activeBtn].id,
data_service_type2: 24,
portal_id: this.portal_id,
encode_method: this.form.code,
urls: urls,
};
this.$api.workbench.serviceAdd(query).then((response) => {
if (response.data.success == 1) {
this.$message.success("服务注册成功");
this.$router.push("/fwgl/" + this.$store.getters.level);
} else {
console.log(response.data.errMsg);
this.$message.error(response.data.errMsg);
}
});
} else {
this.$message.error("请上传服务封面");
}
} else {
this.$message.error("请完善服务基本信息");
}
});
},
changeTable(val) { changeTable(val) {
let search = "?"; let search = "?";
for (let i = 0; i < val.length; i++) { for (let i = 0; i < val.length; i++) {
...@@ -1224,6 +1682,222 @@ export default { ...@@ -1224,6 +1682,222 @@ export default {
} }
}); });
}, },
newOne(indexOne) {
this.$refs["ruleFormOne_" + indexOne][0].validate((valid) => {
if (valid) {
if (this.liucheng_list[indexOne].resSuccess) {
this.checkOne(indexOne, true);
console.log(this.liucheng_list[indexOne]);
if (this.liucheng_list[indexOne].checkPass) {
this.liucheng_list.push({
one_input: "",
select: "GET",
serviceUrl: "",
datasSj: [],
sjfwQqt: "JSON",
sqfsVal: "",
tokenVal: "",
noSearchUrl: "",
resultShow: false,
resSuccess: false,
requestRules: 0,
responseRules: 0,
request_fields: [],
response_fields: [],
checkPass: false,
dataType: "",
body_fields: [],
param_fields: [],
});
}
} else {
this.$message.error("请完善该服务测试");
}
} else {
this.$message.error("请填写该服务名称");
}
});
},
getUrlOne(enUrl, indexOne) {
let url = decodeURI(enUrl);
let arr = [];
if (url.indexOf("?") != -1) {
this.liucheng_list[indexOne].noSearchUrl = url.substring(
0,
url.indexOf("?")
);
let search = url.substring(url.indexOf("?") + 1);
let vars = search.split("&");
for (let i = 0; i < vars.length; i++) {
if (vars[i] != "") {
let pair = vars[i].split("=");
arr[i] = {};
arr[i].requestEncoding = pair[0] ? pair[0] : "";
arr[i].requestValue = pair[1] ? pair[1] : "";
}
}
} else {
this.liucheng_list[indexOne].noSearchUrl = enUrl;
}
this.liucheng_list[indexOne].serviceUrl = url;
this.liucheng_list[indexOne].datasSj = arr;
},
clickTabOne() {},
changeTableOne(val, indexOne) {
let search = "?";
for (let i = 0; i < val.length; i++) {
if (val[i].requestEncoding != "") {
search =
search +
val[i].requestEncoding +
"=" +
(val[i].requestValue ? val[i].requestValue : "") +
"&";
}
}
let searchDel = search.substring(0, search.length - 1);
this.liucheng_list[indexOne].serviceUrl =
this.liucheng_list[indexOne].noSearchUrl + searchDel;
},
resetOne(indexOne) {
this.clickFwcsOne(indexOne);
},
nextOne() {
let hasError = false;
this.liucheng_list.forEach((item, index) => {
this.checkOne(index, false);
if (!item.checkPass) {
hasError = true;
this.$message.error(`请完善服务${index + 1}中的参数信息`);
return false;
}
});
if (!hasError) {
this.jcxxtx = true;
this.getOrganization();
}
},
delOne(indexOne) {
this.liucheng_list.splice(indexOne, 1);
},
clickFwcsOne(indexOne) {
// console.log(this.$refs["one_qqcs_" + indexOne][0]);
let headers = {};
let requestData = {};
let dataOne = this.liucheng_list[indexOne];
console.log(dataOne);
if (dataOne.sqfsVal != "") {
headers.Authorization = [];
headers.Authorization[0] = dataOne.sqfsVal + " " + dataOne.tokenVal;
}
let request = this.$refs["one_qqcs_" + indexOne][0].getTableData();
for (let i = 0; i < request.length; i++) {
if (
request[i] &&
request[i].requestEncoding &&
request[i].requestValue &&
request[i].requestEncoding != "" &&
request[i].requestValue != ""
) {
if (
Object.keys(requestData).indexOf(request[i].requestEncoding) == -1
) {
requestData[request[i].requestEncoding] = [];
requestData[request[i].requestEncoding][0] =
request[i].requestValue;
} else {
requestData[request[i].requestEncoding].push(
request[i].requestValue
);
}
}
}
let bodys = "";
let contentType = "";
if (this.activeBtn == 0) {
bodys = this.$refs["one_json_" + indexOne][0]
? this.$refs["one_json_" + indexOne][0].getCodesVal()
: "";
contentType = dataOne.sjfwQqt;
}
let query = {
method: dataOne.select,
url: dataOne.serviceUrl,
headers: headers,
params: requestData,
body: bodys,
content_type: contentType,
data_service_type1: this.btnList[this.activeBtn].id,
data_service_type2: 24,
response_type: "JSON",
};
this.$api.workbench.fwzcFwcs(query).then((response) => {
if (response.data.success == 1) {
let data = response.data.data;
this.liucheng_list[indexOne].body_fields = data.body_fields;
this.liucheng_list[indexOne].param_fields = data.param_fields;
if (data.body_fields && data.body_fields.length != 0) {
this.liucheng_list[indexOne].datasQqcs = data.body_fields;
this.liucheng_list[indexOne].dataType = "body";
} else {
this.liucheng_list[indexOne].datasQqcs = data.param_fields;
this.liucheng_list[indexOne].dataType = "param";
}
this.liucheng_list[indexOne].datasFhcs = data.response_fields;
this.liucheng_list[indexOne].resSuccess = true;
this.liucheng_list[indexOne].resultShow = true;
} else {
this.liucheng_list[indexOne].resSuccess = false;
this.liucheng_list[indexOne].resultShow = true;
console.log(response.data.errMsg);
}
});
},
checkOne(indexOne, showEveryOne) {
let requestData = this.$refs["one_qqxx_" + indexOne][0].getTableData();
let responseData = this.$refs["one_fhxx_" + indexOne][0].getTableData();
this.requestRules = 0;
this.responseRules = 0;
this.checkTableOne(requestData, 0, indexOne);
this.checkTableOne(responseData, 1, indexOne);
if (this.requestRules == 0 && this.responseRules == 0) {
this.liucheng_list[indexOne].request_fields = requestData;
this.liucheng_list[indexOne].response_fields = responseData;
this.liucheng_list[indexOne].checkPass = true;
} else if (this.liucheng_list[indexOne].requestRules != 0) {
if (showEveryOne) {
this.$message.error(
`请完善服务${indexOne + 1}中请求参数信息中的字段名称`
);
}
this.liucheng_list[indexOne].checkPass = false;
} else if (this.liucheng_list[indexOne].responseRules != 0) {
if (showEveryOne) {
this.$message.error(
`请完善服务${indexOne + 1}中返回参数信息中的字段名称`
);
}
this.liucheng_list[indexOne].checkPass = false;
}
},
checkTableOne(arr, rule, indexOne) {
let self = this;
for (let i = 0; i < arr.length; i++) {
if (arr[i].name && arr[i].name != "") {
if (!arr[i].label || arr[i].label == "") {
if (rule == 0) {
this.requestRules = 1;
} else if (rule == 1) {
this.responseRules = 1;
}
return false;
}
}
if (arr[i].children && arr[i].children.length != 0) {
self.checkTable(arr[i].children, rule, indexOne);
}
}
},
}, },
mounted() { mounted() {
let self = this; let self = this;
...@@ -1231,15 +1905,17 @@ export default { ...@@ -1231,15 +1905,17 @@ export default {
self.judgeMap(); self.judgeMap();
self.getArea(); self.getArea();
}, },
created(){ created() {
let _self = this; let _self = this;
_self.getCurrentUser(); _self.getCurrentUser();
let webmap_data = JSON.parse(sessionStorage.getItem('shareWebMapParam')); let webmap_data = JSON.parse(sessionStorage.getItem("shareWebMapParam"));
if(webmap_data){ if (webmap_data) {
_self.$store.commit("setZnztParams", webmap_data); _self.$store.commit("setZnztParams", webmap_data);
} }
let appmap_data = JSON.parse(sessionStorage.getItem('shareAppBuilderParam')); let appmap_data = JSON.parse(
if(appmap_data){ sessionStorage.getItem("shareAppBuilderParam")
);
if (appmap_data) {
_self.$store.commit("setAppBuilderParams", appmap_data); _self.$store.commit("setAppBuilderParams", appmap_data);
} }
}, },
...@@ -1303,7 +1979,7 @@ export default { ...@@ -1303,7 +1979,7 @@ export default {
.btn_footer { .btn_footer {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
margin: 40px 20px 10px; margin: 40px 10px 10px;
} }
.btn_footer .reset { .btn_footer .reset {
width: 100px; width: 100px;
...@@ -1383,6 +2059,78 @@ export default { ...@@ -1383,6 +2059,78 @@ export default {
.form_in { .form_in {
width: 1000px; width: 1000px;
} }
.one_service {
width: 100%;
}
.one_name {
color: #58617a;
font-size: 14px;
margin: 0 15px 10px 15px;
}
.one_name_in {
width: 70%;
}
.one_url {
color: #58617a;
font-size: 14px;
margin: 20px 15px 10px;
}
.btn_footer_one {
margin: 40px 10px 10px;
}
.new_one {
background-color: #515fe7;
color: #e6ebfe;
}
.del_one {
width: 100px;
background-color: #e15260;
color: #fcfafa;
}
.reset_one {
width: 100px;
background-color: #c3caf8;
color: #0f2683;
}
.next_one {
width: 100px;
background-color: #0f2683;
color: #e6ebfe;
float: right;
}
.center_line_one {
background-color: #f4f7fc;
width: 2px;
height: 100px;
position: relative;
left: 50%;
}
.lc_alert {
margin-top: 20px;
background-color: #f8f9fd;
border-radius: 8px;
width: 70%;
padding: 20px;
display: flex;
justify-content: space-between;
color: #8890a7;
}
.lc_alert i {
position: relative;
top: 4px;
}
.lc_alert p {
width: calc(100% - 24px);
}
.title_bc {
color: #a9aec0;
}
.lc_upf {
width: 70%;
}
.gz_fhsjgs_rad {
margin-left: 10px;
}
</style> </style>
<style> <style>
.fwcs_fwdz_inner .el-select .el-input { .fwcs_fwdz_inner .el-select .el-input {
...@@ -1404,4 +2152,10 @@ export default { ...@@ -1404,4 +2152,10 @@ export default {
color: #c0c4cc; color: #c0c4cc;
text-align: right; text-align: right;
} }
.lc_upf .el-upload {
width: 100%;
}
.lc_upf .el-upload-dragger {
width: 100%;
}
</style> </style>
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