8e7d59a0 by 蔡俊立

接口服务

1 parent b7442b3d
......@@ -37,4 +37,14 @@ export function editDictNode (data) {
method: 'post',
data
})
}
/*
刷新字典缓存
*/
export function refreshDictCache () {
return request({
url: SERVER.SERVERAPI + '/rest/sys/dict/refreshDictCache',
method: 'get'
})
}
\ No newline at end of file
......
import request from '@/utils/request'
import SERVER from './config'
// 新增平台接口
export function addSysInterface(data) {
return request({
url: SERVER.SERVERAPI+"/rest/system/ptjk/addSysInterface",
method: 'post',
data
})
}
// 编辑平台接口
export function editSysInterface(data) {
return request({
url: SERVER.SERVERAPI+"/rest/system/ptjk/editSysInterface",
method: 'post',
data
})
}
// 接口调取
export function interfaceRetrieve(data) {
return request({
url: SERVER.SERVERAPI+"/rest/system/ptjk/interfaceRetrieve",
method: 'post',
data
})
}
// 获取平台接口列表
export function getSysInterfaceList(data) {
return request({
url: SERVER.SERVERAPI+"/rest/system/ptjk/getSysInterfaceList",
method: 'post',
data
})
}
......@@ -314,6 +314,26 @@ export const asyncRoutes = [
meta: { title: '主机监控' }
},
]
},
{
path: '/jkfw',
id: '7',
parentId: null,
component: Layout,
meta: { title: '接口服务', icon: 'system' },
redirect: '/jkfw/ptjk',
alwaysShow: true,
name: 'jkfw',
children: [
{
path: 'ptjk',
id: '71',
parentId: '7',
component: () => import('@/views/jkfw/ptjk/ptjk.vue'),
name: 'ptjk',
meta: { title: '平台接口' }
},
]
}
]
......
<template>
<dialogBox :title="editFlag ? '编辑接口信息' : '新增接口信息'" @submitForm="submitForm" saveButton="保存" width="50%" :isFullscreen="false"
@closeDialog="closeDialog" v-model="value">
<div>
<el-form ref="ruleForm" :model="ruleForm" label-width="100px" :rules="rules">
<el-row>
<el-col :span="12">
<el-form-item label="接口代码:" prop="interfaceCode">
<el-input v-model="ruleForm.interfaceCode" :disabled="editFlag"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="接口名称:" prop="interfaceService">
<el-input v-model="ruleForm.interfaceService"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="接口地址:" prop="interfaceApi">
<el-input v-model="ruleForm.interfaceApi"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="接口方式:" prop="interfaceMethod">
<el-select v-model="ruleForm.interfaceMethod" class="width100" placeholder="请选择">
<el-option v-for="item in interfaceMethods" :key="item" :label="item" :value="item" ></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="接口类型:" prop="interfaceType">
<el-select v-model="ruleForm.interfaceType" class="width100" placeholder="请选择">
<el-option v-for="item in interfaceTypes" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="接口密钥:" prop="interfaceKey">
<el-input v-model="ruleForm.interfaceKey"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="接口描述:" prop="interfaceDescription">
<el-input v-model="ruleForm.interfaceDescription" type="textarea" :rows="4"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</dialogBox>
</template>
<script>
import { addSysInterface, editSysInterface} from "@/api/jkfw.js"
export default {
components: {
},
computed: {
},
props: {
value: { type: Boolean, default: false },
editFlag: {type: Boolean,default:false}
},
data () {
return {
//表单提交数据
interfaceMethods: ['webapi','webservice'],
interfaceTypes: [
{'label': '工作流服务平台','value':'1'},
{'label': '管理平台','value':'2'},
{'label': '定时器服务','value':'3'},
{'label': '其他第三方平台','value':'4'},
],
ruleForm: {
interfaceCode: '',
interfaceService: '',
interfaceDescription: '',
interfaceApi: '',
interfaceMethod: '',
interfaceType: '',
interfaceKey: '',
},
rules: {
interfaceCode: [
{ required: true, message: '接口代码不能为空', trigger: 'blur' }
],
interfaceService: [
{ required: true, message: '接口服务名称不能为空', trigger: 'blur' }
],
interfaceApi: [
{ required: true, message: '接口api地址不能为空', trigger: 'blur' }
],
interfaceMethod: [
{ required: true, message: '接口方式不能为空', trigger: 'change' }
],
interfaceType: [
{ required: true, message: '入库编号不能为空', trigger: 'change' }
],
},
}
},
methods: {
//表单提交
submitForm () {
let that = this;
that.$refs.ruleForm.validate(valid => {
if (valid) {
if(this.editFlag){
this.editInterface();
}else{
this.addInterface();
}
} else {
// console.log('error submit!!');
return false;
}
});
},
//新增接口
addInterface(){
addSysInterface(this.ruleForm).then(res => {
if(res.code == 200){
this.$message.success("保存成功");
this.closeDialog();
this.$parent.queryClick();
}else{
this.$message.error(res.message)
}
})
},
//编辑接口
editInterface(){
editSysInterface(this.ruleForm).then(res => {
if(res.code == 200){
this.$message.success("编辑成功");
this.closeDialog();
this.$parent.queryClick();
}else{
this.$message.error(res.message)
}
})
},
//获取详情
getDetailInfo(item){
this.ruleForm = item
},
//关闭弹窗
closeDialog () {
this.$emit("input", false);
this.ruleForm = {
interfaceCode: '',
interfaceService: '',
interfaceDescription: '',
interfaceApi: '',
interfaceMethod: '',
interfaceType: '',
interfaceKey: '',
}
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
</style>
<template>
<dialogBox title="调用接口" @submitForm="submitForm" saveButton="调用" width="50%" :isFullscreen="false"
@closeDialog="closeDialog" v-model="value">
<el-descriptions class="margin-top" :column="1" :size="16" border>
<el-descriptions-item>
<template slot="label" style="width:200px">接口代码</template>{{ruleForm.interfaceCode}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">接口名称</template>{{ruleForm.interfaceService}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">接口地址</template>{{ruleForm.interfaceApi}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">接口方式</template>{{ruleForm.interfaceMethod}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">接口类型</template>{{ruleForm.interfaceType}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">接口参数</template><el-input v-model="interfaceParams" type="textarea" :rows="4"></el-input>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">调用状态</template>{{returnMessage.statusCode}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">返回结果</template>{{returnMessage.body}}
</el-descriptions-item>
</el-descriptions>
</dialogBox>
</template>
<script>
import {interfaceRetrieve } from "@/api/jkfw.js"
export default {
components: {
},
computed: {
},
props: {
value: { type: Boolean, default: false },
},
data () {
return {
//表单提交数据
interfaceMethods: ['webapi','webservice'],
interfaceTypes: [
{'label': '工作流服务平台','value':'1'},
{'label': '管理平台','value':'2'},
{'label': '定时器服务','value':'3'},
{'label': '其他第三方平台','value':'4'},
],
ruleForm: {},
interfaceParams: '{\n\n}' ,
returnMessage: {},
}
},
methods: {
//表单提交
submitForm () {
var formdata = new FormData();
formdata.append("interfaceCode", this.ruleForm.interfaceCode);
formdata.append("params", this.interfaceParams);
interfaceRetrieve(formdata).then(res => {
if(res.code == 200){
this.returnMessage = res.result
}
})
},
//获取详情
getDetailInfo(item){
this.ruleForm = item
},
//关闭弹窗
closeDialog () {
this.$emit("input", false);
this.interfaceParams = '{\n\n}'
this.returnMessage = {}
}
}
}
</script>
<style scoped lang="scss">
@import "~@/styles/mixin.scss";
</style>
<template>
<div class="from-clues">
<!-- 表单部分 -->
<div class="from-clues-header">
<el-form :model="queryForm" ref="queryForm" @submit.native.prevent label-width="80px">
<el-row>
<el-col :span="5">
<el-form-item label="业务号">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" @clear="queryClick" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="业务号">
<el-input placeholder="请输入业务号" v-model="queryForm.ywh" @clear="queryClick" clearable class="width100">
</el-input>
</el-form-item>
</el-col>
<el-col :span="14" class="btnColRight">
<el-form-item>
<el-button type="primary" native-type="submit" @click="queryClick">查询</el-button>
<el-button type="primary" @click="openDialog()">新增</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 表格 -->
<div class="from-clues-content">
<lb-table :page-size="pageData.size" border :current-page.sync="pageData.current" :total="tableData.total"
@size-change="handleSizeChange" @p-current-change="handleCurrentChange" :column="tableData.columns"
:data="tableData.data">
</lb-table>
</div>
<addDialog ref="addDialog" v-model="addDialog" :editFlag="editFlag"/>
<retrieveDialog ref="retrieveDialog" v-model="retrieveDialog"/>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import table from "@/utils/mixin/table"
import { datas, sendThis } from "./ptjkdata"
import { getSysInterfaceList} from '@/api/jkfw'
import addDialog from "./components/addDialog.vue"
import retrieveDialog from "./components/retrieveDialog.vue"
export default {
name: "ptjk",
components: { addDialog,retrieveDialog },
mixins: [table],
mounted () {
sendThis(this);
this.queryClick()
},
computed: {
...mapGetters(['dictData'])
},
data () {
return {
addDialog: false,
retrieveDialog: false,
editFlag: false,
queryForm: {
ywly: "",
qllx: "",
djlx: "",
ywh: "",
},
tableData: {
total: 0,
columns: datas.columns(),
data: [],
},
};
},
methods: {
queryClick(){
this.$startLoading()
getSysInterfaceList({ ...this.ruleForm, ...this.pageData }, { 'target': '#ptjkLoading' }).then(res => {
this.$endLoading()
if(res.code == 200){
let { total, records } = res.result
this.tableData.total = total;
this.tableData.data = records ? records : []
}
})
},
//打开新增
openDialog(){
this.editFlag = false;
this.addDialog = true;
},
//打开编辑
editInterface(item){
this.editFlag = true;
this.addDialog = true;
this.$refs.addDialog.getDetailInfo(item);
},
//打开调试窗口
tuneInterface(item){
this.retrieveDialog = true;
this.$refs.retrieveDialog.getDetailInfo(item);
}
}
};
</script>
<style scoped lang="scss">
@import "~@/styles/public.scss";
</style>
import filter from '@/utils/filter.js'
let vm = null
const sendThis = (_this) => {
vm = _this
}
class data extends filter {
constructor() {
super()
}
columns () {
return [
{
label: '序号',
type: 'index',
width: '50',
render: (h, scope) => {
return (
<div>
{(vm.pageData.currentPage - 1) * vm.pageData.pageSize + scope.$index + 1}
</div>
)
}
},
{
prop: "interfaceCode",
label: "接口代码",
},
{
prop: "interfaceService",
label: "接口服务名称",
},
{
prop: "interfaceDescription",
label: "接口描述",
},
{
prop: "interfaceApi",
label: "接口访问地址",
},
{
prop: "interfaceMethod",
label: "接口方式",
},
{
label: "接口类型",
render: (h, scope) => {
switch (scope.row.interfaceType) {
case '1':
return <div>工作流服务平台</div>
case '2':
return <div>管理平台</div>
case '3':
return <div>定时器服务</div>
case '4':
return <div>其他第三方平台</div>
}
}
},
{
label: '操作',
align: 'center',
fixed: 'right',
render: (h, scope) => {
return <div>
<el-button type="text" icon="el-icon-view" onClick={() => { vm.tuneInterface(scope.row) }}>调用</el-button>
<el-button type="text" icon="el-icon-edit" onClick={() => { vm.editInterface(scope.row) }}>编辑</el-button>
</div>
}
}
]
}
}
let datas = new data()
export {
datas,
sendThis
}
......@@ -35,7 +35,7 @@
</template>
<script>
import table from "@/utils/mixin/table"
import { getQlxxDictList, getChildDictList } from "@/api/dict.js"
import { getQlxxDictList, getChildDictList,refreshDictCache } from "@/api/dict.js"
import { datas, sendThis } from "./dictionaries"
import editDialog from "./components/editDialog.vue"
export default {
......@@ -78,11 +78,30 @@ export default {
this.tableData.total = total ? total : 0
})
},
async handleRefresh () {
let refech = await this.$store.dispatch('dict/generateDic')
refech && this.$message({
message: '刷新成功',
type: 'success'
handleRefresh () {
this.$confirm('是否确认刷新', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$startLoading()
refreshDictCache().then(res => {
if (res.code == 200) {
let refech = this.$store.dispatch('dict/generateDic')
this.$endLoading()
refech && this.$message({
message: '刷新成功',
type: 'success'
});
} else {
this.$message.error(res.message)
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '取消刷新'
});
});
},
editClick (row, val) {
......
......@@ -29,7 +29,7 @@ class data extends filter {
// }
},
{
prop: "qllxmc",
prop: "qllx",
label: "权利类型"
},
{
......@@ -42,7 +42,7 @@ class data extends filter {
label: "不动产权证号"
},
{
prop: "qlrmc",
prop: "qlr",
label: "权利人"
},
{
......
......@@ -350,7 +350,11 @@ export default {
bestepid: this.bestepid,
}).then((res) => {
if (res.code === 200) {
this.send(res.result);
if(res.result){
this.sendToNext(res.result);
}else{
this.sendToEnd();
}
}
});
break;
......@@ -494,7 +498,7 @@ export default {
this.componentTag = getForm(tabname, this.$route.query.sqywbm);
},
//发送下一个环节
send (obj) {
sendToNext (obj) {
const h = this.$createElement;
this.$msgbox({
title: "您确定转出吗?",
......@@ -541,6 +545,47 @@ export default {
});
});
},
sendToEnd() {
const h = this.$createElement;
this.$msgbox({
title: "您确定转出吗?",
message: "此环节为流程结束环节,转出后流程将结束",
showCancelButton: true,
beforeClose: (action, instance, done) => {
if (action === "confirm") {
instance.confirmButtonLoading = true;
instance.confirmButtonText = "执行中...";
completeTask({
bsmSlsq: this.bsmSlsq,
shyj: "this.bestepid",
stepform: JSON.stringify(this.tabList),
}).then((res) => {
if (res.code === 200) {
instance.confirmButtonLoading = false;
this.$message.success("转件成功");
setTimeout(() => {
window.opener = null;
window.open("about:blank", "_self");
window.close();
this.$emit("input", false);
}, 1000);
} else {
instance.confirmButtonLoading = false;
instance.confirmButtonText = "确定";
this.$message.error(res.message);
}
});
} else {
done();
}
},
}).then((action) => {
this.$message({
type: "info",
message: "action: " + action,
});
});
}
},
};
</script>
\ No newline at end of file
......