[add] ASMS接口管理

This commit is contained in:
danshihao
2023-10-18 11:02:19 +08:00
parent a56832d622
commit dce481068a
3 changed files with 300 additions and 7 deletions
+14 -7
View File
@@ -132,6 +132,11 @@ const getWorkGroupTreeList = (params) => getAction('/sys/lawsWorkingGroup/list',
// 企业级别映射管理,获取列表
const getEnterpriseLevelMapList = (params) => getAction('/sys/lawsGrade/list', params)
// ASMS接口管理-新增
const addAsmsInterface = (params) => postAction('/docking/asms/api/lawsAsmsOpenApi/add', params)
// ASMS接口管理-编辑
const editAsmsInterface = (params) => postAction('/docking/asms/api/lawsAsmsOpenApi/edit', params)
export {
addRole,
editRole,
@@ -190,22 +195,24 @@ export {
queryMyDepartTreeList,
getUserNoticeInfo,
getDictItemsFromCache,
getShowAreaData,
addAreaData,
editAreaData,
getFileInfo,
addTag,
editTag,
addCategoryItem,
editCategoryItem,
getStandardList,
getWorkGroupTreeList,
getEnterpriseLevelMapList,
getSSOUserInfo
getSSOUserInfo,
addAsmsInterface,
editAsmsInterface
}
+138
View File
@@ -0,0 +1,138 @@
<template>
<a-card :bordered="false">
<!-- 搜索区域 -->
<!-- <div class="table-page-search-wrapper">-->
<!-- <a-form layout="inline" @keyup.enter.native="searchQuery">-->
<!-- <a-row :gutter="24">-->
<!-- <a-col :span="6">-->
<!-- <a-form-item :label="$t('personalCenter.receivedShare.pushSearch')" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <a-input :placeholder="$t('personalCenter.receivedShare.enterPushInfo')" v-model="queryParam.title"></a-input>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <a-col :span="6">-->
<!-- <a-form-item :label="$t('personalCenter.receivedShare.owningPlate')" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
<!-- <j-dict-select-tag-->
<!-- :placeholder="$t('pleaseEnter')+$t('personalCenter.receivedShare.owningPlate')"-->
<!-- dict-code="sector"-->
<!-- v-model="queryParam.source">-->
<!-- </j-dict-select-tag>-->
<!-- </a-form-item>-->
<!-- </a-col>-->
<!-- <div style="float: right;overflow: hidden;" class="table-page-search-submitButtons">-->
<!-- <a-button type="primary" @click="searchQuery" icon="search" style="margin-left: 8px" v-has="'personalCenter:receivedShare:search'">{{ $t('query') }}</a-button>-->
<!-- <a-button @click="searchReset" icon="reload" style="margin-left: 8px">{{ $t('reset') }}</a-button>-->
<!-- </div>-->
<!-- </a-row>-->
<!-- </a-form>-->
<!-- </div>-->
<!-- 操作区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">{{ $t('newlyAdded') }}</a-button>
<!-- 批量删除 -->
<a-button icon="delete" type="primary" ghost @click="batchDel">
{{ $t('batchDelete') }}
</a-button>
</div>
<div>
<j-table
:can-drag="true"
:scroll="{x: '100%'}"
ref="table"
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
@change="handleTableChange">
<!-- 操作栏 -->
<div slot="action" class="table-action" slot-scope="{text, record}">
<a class="action-edit" @click="handleEdit(record)" v-has="'sys:dict:operation'">{{ $t('edit') }}</a>
<a class="action-delete" @click="handleDelete(record.id)" v-has="'sys:dict:operation'">{{ $t('delete') }}</a>
</div>
</j-table>
</div>
<asms-interface-modal ref="modalForm" @ok="modalFormOk"/>
</a-card>
</template>
<script>
import { JeroListMixin } from '@/mixins/JeroListMixin'
import JTable from '@comp/jero/JTable'
import AsmsInterfaceModal from '@views/system/modules/AsmsInterfaceModal'
export default {
name: 'AsmsInterfaceList',
components: { AsmsInterfaceModal, JTable },
mixins: [JeroListMixin],
data () {
return {
isorter: null,
labelCol: {
span: 4
},
wrapperCol: {
span: 14
},
columns: [
{
title: 'api名称',
align: 'center',
width: 180,
dataIndex: 'apiName',
scopedSlots: { customRender: 'text' }
},
{
title: '接口类型',
align: 'center',
width: 180,
dataIndex: 'apiType_dictText',
scopedSlots: { customRender: 'text' }
},
{
title: 'api路径',
align: 'center',
width: 180,
dataIndex: 'apiUrl',
scopedSlots: { customRender: 'text' }
},
{
title: '数据字典',
align: 'center',
width: 180,
dataIndex: 'dictId_dictText',
scopedSlots: { customRender: 'text' }
},
{
title: '参数map',
align: 'center',
width: 180,
dataIndex: 'queryParamJson',
scopedSlots: { customRender: 'text' }
},
{
title: this.$t('operation'),
// dataIndex: 'action',
align: 'center',
width: 170,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: '/docking/asms/api/lawsAsmsOpenApi/page',
delete: '/docking/asms/api/lawsAsmsOpenApi/delete',
deleteBatch: '/docking/asms/api/lawsAsmsOpenApi/deleteBatch'
}
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>
@@ -0,0 +1,148 @@
<template>
<j-modal
:title="title"
:width="drawerWidth"
:visible="visible"
:confirmLoading="confirmLoading"
switchFullscreen
@ok="handleOk"
@cancel="handleCancel"
:cancelText="$t('close')">
<a-spin :spinning="confirmLoading">
<a-form-model ref="form" :model="model" :rules="validatorRules">
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
prop="apiName"
label="api名称">
<a-input placeholder="请输入api名称" v-model="model.apiName"/>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
prop="apiType"
label="接口类型">
<j-dict-select-tag v-model="model.apiType" placeholder="请选择接口类型" dict-code="asms_open_api_type">
</j-dict-select-tag>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
prop="apiUrl"
label="api路径">
<a-input placeholder="请输入api路径" v-model="model.apiUrl"/>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
prop="apiType"
label="数据字典id">
<a-select v-model="model.dictId" placeholder="请选择数据字典id">
<a-select-option v-for="item in dictList" :value="item.id" :key="item.id">{{ item.dictName }}</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
prop="queryParamJson"
label="参数">
<a-textarea :rows="10" placeholder="请输入参数" v-model="model.queryParamJson"/>
</a-form-model-item>
</a-form-model>
</a-spin>
</j-modal>
</template>
<script>
import { addAsmsInterface, editAsmsInterface } from '@api/api'
import { getAction } from '@api/manage'
export default {
name: 'AsmsInterfaceModal',
data () {
return {
title: this.$t('add'),
drawerWidth: 600,
visible: false,
model: {},
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
confirmLoading: false,
validatorRules: {},
dictList: []
}
},
methods: {
add () {
this.edit({})
},
edit (record) {
this.visiblekey = !!record.id
this.model = Object.assign({}, record)
this.visible = true
},
// 确定
handleOk () {
const that = this
// 触发表单验证
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true
let obj
const formData = Object.assign({}, this.model)
if (!this.model.id) {
obj = addAsmsInterface
} else {
obj = editAsmsInterface
}
obj(formData).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
} else {
that.$message.warning(res.message)
}
}).finally(() => {
that.confirmLoading = false
that.close()
})
} else {
return false
}
})
},
// 关闭
handleCancel () {
this.close()
},
close () {
this.$emit('close')
this.visible = false
this.$refs.form.resetFields()
},
getDictList () {
getAction('/sys/dict/page', {
pageNo: -1,
pageSize: -1
}).then(res => {
if (res.success) {
this.dictList = (res.result && res.result.records) || []
}
})
}
},
created () {
this.getDictList()
}
}
</script>
<style scoped>
</style>