|
@@ -1,6 +1,6 @@
|
|
|
<!--
|
|
|
* @Date: 2022-03-24 09:55:13
|
|
|
- * @LastEditTime: 2022-04-29 15:49:40
|
|
|
+ * @LastEditTime: 2022-04-29 17:15:20
|
|
|
* @LastEditors: your name
|
|
|
* @Description: 服务管理-编辑服务
|
|
|
* have a nice day!
|
|
@@ -71,35 +71,40 @@
|
|
|
</header>
|
|
|
<main class="content">
|
|
|
<div class="scrollbar">
|
|
|
- <el-row :gutter="16">
|
|
|
- <el-col :span="8">
|
|
|
- <div class="service-edit-card">
|
|
|
- <div
|
|
|
- class="card-btn-add"
|
|
|
- @click="showOperateDialog('node')"
|
|
|
- >
|
|
|
- <i class="el-icon-plus" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col
|
|
|
- v-for="node in checkedNodeList"
|
|
|
- :key="node.deployNodeID"
|
|
|
- :span="8"
|
|
|
- >
|
|
|
- <div class="service-edit-card">
|
|
|
- <div
|
|
|
- class="card-btn-close"
|
|
|
- @click="showDeleteDialog(node, 'node')"
|
|
|
- >
|
|
|
- <i class="el-icon-close" />
|
|
|
+ <template v-if="nodeList.length">
|
|
|
+ <el-row :gutter="16">
|
|
|
+ <el-col :span="8">
|
|
|
+ <div class="service-edit-card">
|
|
|
+ <div
|
|
|
+ class="card-btn-add"
|
|
|
+ @click="showOperateDialog('node')"
|
|
|
+ >
|
|
|
+ <i class="el-icon-plus" />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="card-header">
|
|
|
- <span>{{ node.deployNodeName }}</span>
|
|
|
+ </el-col>
|
|
|
+ <el-col
|
|
|
+ v-for="node in checkedNodeList"
|
|
|
+ :key="node.deployNodeID"
|
|
|
+ :span="8"
|
|
|
+ >
|
|
|
+ <div class="service-edit-card">
|
|
|
+ <div
|
|
|
+ class="card-btn-close"
|
|
|
+ @click="showDeleteDialog(node, 'node')"
|
|
|
+ >
|
|
|
+ <i class="el-icon-close" />
|
|
|
+ </div>
|
|
|
+ <div class="card-header">
|
|
|
+ <span>{{ node.deployNodeName }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <NoData />
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</main>
|
|
|
</div>
|
|
@@ -163,35 +168,40 @@
|
|
|
</header>
|
|
|
<main class="content second-content">
|
|
|
<div class="scrollbar">
|
|
|
- <el-row :gutter="16">
|
|
|
- <el-col :span="8">
|
|
|
- <div class="service-edit-card">
|
|
|
- <div
|
|
|
- class="card-btn-add"
|
|
|
- @click="showOperateDialog('source')"
|
|
|
- >
|
|
|
- <i class="el-icon-plus" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- <el-col
|
|
|
- v-for="source in checkedSourceList"
|
|
|
- :key="source.sourceDataID"
|
|
|
- :span="8"
|
|
|
- >
|
|
|
- <div class="service-edit-card">
|
|
|
- <div
|
|
|
- class="card-btn-close"
|
|
|
- @click="showDeleteDialog(source, 'source')"
|
|
|
- >
|
|
|
- <i class="el-icon-close" />
|
|
|
+ <template v-if="sourceList.length">
|
|
|
+ <el-row :gutter="16">
|
|
|
+ <el-col :span="8">
|
|
|
+ <div class="service-edit-card">
|
|
|
+ <div
|
|
|
+ class="card-btn-add"
|
|
|
+ @click="showOperateDialog('source')"
|
|
|
+ >
|
|
|
+ <i class="el-icon-plus" />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="card-header">
|
|
|
- <span>{{ source.dataName }}</span>
|
|
|
+ </el-col>
|
|
|
+ <el-col
|
|
|
+ v-for="source in checkedSourceList"
|
|
|
+ :key="source.sourceDataID"
|
|
|
+ :span="8"
|
|
|
+ >
|
|
|
+ <div class="service-edit-card">
|
|
|
+ <div
|
|
|
+ class="card-btn-close"
|
|
|
+ @click="showDeleteDialog(source, 'source')"
|
|
|
+ >
|
|
|
+ <i class="el-icon-close" />
|
|
|
+ </div>
|
|
|
+ <div class="card-header">
|
|
|
+ <span>{{ source.dataName }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <NoData />
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</main>
|
|
|
</div>
|
|
@@ -510,6 +520,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
+ // 获取各关联项的标题、键名、操作方法等
|
|
|
dataInMap() {
|
|
|
return function (type, keyType) {
|
|
|
if (type === null) {
|
|
@@ -537,11 +548,13 @@ export default {
|
|
|
checkedProcessList() {
|
|
|
return this.processList.filter(item => this.checkedProcessKeys.includes(item.processName))
|
|
|
},
|
|
|
+ // 从协议列表中根据协议ID获取协议名称
|
|
|
outputTargetProtocolName() {
|
|
|
return function (protocolID) {
|
|
|
return this.protocolList.find(protocol => protocol.protocolID === protocolID).protocolName
|
|
|
}
|
|
|
},
|
|
|
+ // 从目标数据列表中根据目标数据ID获取目标数据名称
|
|
|
outputTargetDataName() {
|
|
|
return function (targetdataID) {
|
|
|
return this.targetList.find(target => target.targetdataID === targetdataID).tdataName
|
|
@@ -549,6 +562,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 服务信息保存
|
|
|
async btnSaveClickHandler() {
|
|
|
this.$refs['serviceForm'].validate(valid => {
|
|
|
if (!valid) return
|
|
@@ -559,6 +573,7 @@ export default {
|
|
|
await this.updateService()
|
|
|
this.queryAll()
|
|
|
},
|
|
|
+ // 关联编辑-显示弹框
|
|
|
showOperateDialog(type) {
|
|
|
if (['node', 'source', 'process'].includes(type)) {
|
|
|
this.tempCheckedKeys = [...this.dataInMap(type, 'checked')]
|
|
@@ -572,6 +587,7 @@ export default {
|
|
|
})
|
|
|
this.showOperateDialog(type)
|
|
|
},
|
|
|
+ // 关联编辑-提交
|
|
|
async checkedSubmitHandler() {
|
|
|
const addKeys = this.tempCheckedKeys.filter(
|
|
|
key => !this.dataInMap(this.operateDialogType, 'checked').includes(key)
|
|
@@ -590,11 +606,12 @@ export default {
|
|
|
this.$message.error(error)
|
|
|
}
|
|
|
},
|
|
|
+ // 服务输出项新增/编辑
|
|
|
async outputSubmitHandler() {
|
|
|
const outputTarget = {
|
|
|
...this.outputForm
|
|
|
}
|
|
|
- if (outputTarget.serviceOutputID) {
|
|
|
+ if (typeof outputTarget.serviceOutputID !== 'undefined') {
|
|
|
await this.updateServiceOutput('update', outputTarget)
|
|
|
} else {
|
|
|
await this.updateServiceOutput('create', outputTarget)
|
|
@@ -602,24 +619,32 @@ export default {
|
|
|
await this.queryAll()
|
|
|
this.hideOperateDialog()
|
|
|
},
|
|
|
+ // 关联编辑-隐藏弹框
|
|
|
hideOperateDialog() {
|
|
|
if (this.operateDialogType === 'output') {
|
|
|
this.$refs['outputForm'].resetFields()
|
|
|
}
|
|
|
this.operateDialogType = null
|
|
|
},
|
|
|
+ // 关联删除-显示弹框
|
|
|
showDeleteDialog(obj, type) {
|
|
|
this.delObj = obj
|
|
|
this.deleteDialogType = type
|
|
|
},
|
|
|
+ // 关联删除-提交
|
|
|
async deleteSubmitHandler() {
|
|
|
- const message = await this.dataInMap(this.deleteDialogType, 'operate')('delete', this.delObj[this.dataInMap(this.deleteDialogType, 'key')])
|
|
|
+ const message = await this.dataInMap(this.deleteDialogType, 'operate')(
|
|
|
+ 'delete',
|
|
|
+ this.delObj[this.dataInMap(this.deleteDialogType, 'key')]
|
|
|
+ )
|
|
|
this.$message.success(message ?? '成功')
|
|
|
await this.queryAll()
|
|
|
- this.deleteDialogType = null
|
|
|
+ this.hideDeleteDialog()
|
|
|
},
|
|
|
+ // 关联删除-隐藏弹框
|
|
|
hideDeleteDialog() {
|
|
|
this.deleteDialogType = null
|
|
|
+ this.delObj = {}
|
|
|
}
|
|
|
}
|
|
|
}
|