|
|
@@ -5,14 +5,14 @@ meta:
|
|
|
|
|
|
<script lang="ts" setup name="BizObjectOAM">
|
|
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
|
|
-import ObjectOAMRuleComponent from '../rule/components/objectOAMRule.vue'
|
|
|
+import BizObjectOAMParamsListComponent from '../oam_params/index.vue'
|
|
|
+import BizObjectOAMRuleListComponent from '../oam_rule/index.vue'
|
|
|
+import BizObjectOAMMappingListComponent from '../oam_mapping/index.vue'
|
|
|
import ObjectOAMComponent from './components/objectOAM.vue'
|
|
|
import useSettingsStore from '@/store/modules/settings'
|
|
|
import { getObjectById } from '@/api/biz/bizObjectApi'
|
|
|
import { deleteObjectOAMById, getObjectOAMById, getObjectOAMListByObjectId } from '@/api/biz/bizObjectOAMApi'
|
|
|
-import { getObjectOAMRuleListByOamId } from '@/api/biz/bizObjectOAMRuleApi'
|
|
|
-import { dataType, oamType, sqlType } from '@/utils/tool'
|
|
|
-import { createObjectOAMParams, deleteObjectOAMParamsById, getObjectOAMParamsListByOamId, updateObjectOAMParams } from '@/api/biz/bizObjectOAMParamsApi'
|
|
|
+import { oamType, sqlType } from '@/utils/tool'
|
|
|
|
|
|
const settingsStore = useSettingsStore()
|
|
|
const route = useRoute()
|
|
|
@@ -47,21 +47,6 @@ interface ObjectOAM {
|
|
|
sqlCount: string
|
|
|
}
|
|
|
|
|
|
-interface ObjectOAMParams {
|
|
|
- bizId: number
|
|
|
- objectId: number
|
|
|
- oamId: number
|
|
|
- paramsId: number
|
|
|
- logicalOperator: string
|
|
|
- compareOperator: string
|
|
|
- paramsTarget: string
|
|
|
- paramsValue: string
|
|
|
- paramsType: number
|
|
|
- paramsRemark: string
|
|
|
- sortNo: number
|
|
|
- isEdit: boolean
|
|
|
-}
|
|
|
-
|
|
|
const state = reactive({
|
|
|
loading: false,
|
|
|
objectTitle: '',
|
|
|
@@ -70,10 +55,8 @@ const state = reactive({
|
|
|
keywords: '',
|
|
|
curOamId: 0,
|
|
|
oamList: [],
|
|
|
- objectOamRuleList: [],
|
|
|
treeData: [] as TreeNode[],
|
|
|
oam: {} as ObjectOAM,
|
|
|
- params: [] as ObjectOAMParams[],
|
|
|
dialogState: 1,
|
|
|
search: {
|
|
|
bizId,
|
|
|
@@ -105,26 +88,6 @@ const getObjectOAMData = async () => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-const getObjectOAMParams = async () => {
|
|
|
- const curOamId = state.curOamId
|
|
|
- if (curOamId > 0) {
|
|
|
- state.loading = true
|
|
|
- const { data } = await getObjectOAMParamsListByOamId(bizId, objectId, curOamId)
|
|
|
- state.params = data
|
|
|
- state.loading = false
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-const getObjectOAMRuleList = async () => {
|
|
|
- const curOamId = state.curOamId
|
|
|
- if (curOamId > 0) {
|
|
|
- state.loading = true
|
|
|
- const { data } = await getObjectOAMRuleListByOamId(bizId, objectId, curOamId)
|
|
|
- state.objectOamRuleList = data
|
|
|
- state.loading = false
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
const getOAMTree = async () => {
|
|
|
const { data } = await getObjectOAMListByObjectId(bizId, objectId)
|
|
|
state.treeData = []
|
|
|
@@ -143,8 +106,6 @@ const getOAMTree = async () => {
|
|
|
leftTreeRef.value.setCurrentKey(data[0].oamId)
|
|
|
})
|
|
|
await getObjectOAMData()
|
|
|
- await getObjectOAMParams()
|
|
|
- await getObjectOAMRuleList()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -158,8 +119,6 @@ const onTreeNodeClick = async (node: TreeNode) => {
|
|
|
if (node.isLeaf) {
|
|
|
state.curOamId = node.oamId
|
|
|
await getObjectOAMData()
|
|
|
- await getObjectOAMParams()
|
|
|
- await getObjectOAMRuleList()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -190,94 +149,6 @@ const onSuccess = () => {
|
|
|
}
|
|
|
|
|
|
const activeName = ref('first')
|
|
|
-
|
|
|
-// 查询参数
|
|
|
-const paramsTableRef = ref()
|
|
|
-const paramsTableKey = ref(0)
|
|
|
-
|
|
|
-const logicalOperators = [
|
|
|
- {
|
|
|
- label: 'AND',
|
|
|
- value: 'AND',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'OR',
|
|
|
- value: 'OR',
|
|
|
- },
|
|
|
- {
|
|
|
- label: 'NOT',
|
|
|
- value: 'NOT',
|
|
|
- },
|
|
|
-]
|
|
|
-
|
|
|
-function onParamsAdd() {
|
|
|
- state.params.push({
|
|
|
- bizId,
|
|
|
- objectId,
|
|
|
- oamId: state.curOamId,
|
|
|
- paramsId: 0,
|
|
|
- logicalOperator: 'AND',
|
|
|
- paramsTarget: '', // 名称
|
|
|
- compareOperator: '=', // 代码
|
|
|
- paramsValue: '',
|
|
|
- paramsType: 0,
|
|
|
- paramsRemark: '',
|
|
|
- sortNo: 0,
|
|
|
- isEdit: true,
|
|
|
- })
|
|
|
- state.actionType = 1
|
|
|
-}
|
|
|
-
|
|
|
-function onParamsEdit(row: any) {
|
|
|
- row.isEdit = true
|
|
|
- state.actionType = 2
|
|
|
-}
|
|
|
-
|
|
|
-async function onParamsDelete(row: any) {
|
|
|
- const oamId = state.curOamId
|
|
|
- const paramsId = row.paramsId
|
|
|
- await deleteObjectOAMParamsById(bizId, objectId, oamId, paramsId)
|
|
|
- ElMessage.success('删除成功')
|
|
|
-}
|
|
|
-
|
|
|
-function onParamsCancel(row: any, index: number) {
|
|
|
- row.isEdit = false
|
|
|
- if (state.actionType === 1) {
|
|
|
- state.params.splice(index, 1)
|
|
|
- }
|
|
|
- state.actionType = 0
|
|
|
-}
|
|
|
-
|
|
|
-async function onParamsSave(row: any) {
|
|
|
- row.isEdit = false
|
|
|
- if (state.actionType === 1) {
|
|
|
- await createObjectOAMParams(row)
|
|
|
- ElMessage.success('新增成功')
|
|
|
- }
|
|
|
- else {
|
|
|
- await updateObjectOAMParams(row)
|
|
|
- ElMessage.success('修改成功')
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// 业务规则
|
|
|
-const objectOAMRuleRef = ref()
|
|
|
-const onObjectOAMRuleSearch = async () => {
|
|
|
- await getObjectOAMRuleList()
|
|
|
-}
|
|
|
-
|
|
|
-const onObjectOAMRuleAdd = () => {
|
|
|
- objectOAMRuleRef.value.showAddModel(bizId, objectId, state.curOamId)
|
|
|
-}
|
|
|
-
|
|
|
-const onObjectOAMRuleEdit = (row: { orId: number }) => {
|
|
|
- objectOAMRuleRef.value.showEditModel(bizId, objectId, state.curOamId, row.orId)
|
|
|
-}
|
|
|
-
|
|
|
-const onObjectOAMRuleDelete = (row: { }) => {
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
// 返回列表页
|
|
|
function goBack() {
|
|
|
if (settingsStore.settings.tabbar.enable && settingsStore.settings.tabbar.mergeTabsBy !== 'activeMenu') {
|
|
|
@@ -412,191 +283,22 @@ function goBack() {
|
|
|
</el-descriptions>
|
|
|
|
|
|
<div v-if="state.oam && state.oam.sqlType === 1" class="container">
|
|
|
- <tool-bar>
|
|
|
- <template #left>
|
|
|
- <h5>查询条件参数</h5>
|
|
|
- </template>
|
|
|
- <template #right>
|
|
|
- <el-button type="default" @click="onParamsAdd">
|
|
|
- <template #icon>
|
|
|
- <el-icon>
|
|
|
- <svg-icon name="i-ep:plus" />
|
|
|
- </el-icon>
|
|
|
- </template>
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </tool-bar>
|
|
|
-
|
|
|
- <el-table ref="paramsTableRef" :key="paramsTableKey" :data="state.params" class="list-table" size="small" border stripe highlight-current-row>
|
|
|
- <el-table-column type="index" label="序号" header-align="center" align="center" width="60" />
|
|
|
-
|
|
|
- <el-table-column label="条件关系" header-align="center" align="center" width="150">
|
|
|
- <template #default="scope">
|
|
|
- <el-select v-if="scope.row.isEdit" v-model="scope.row.logicalOperator" placeholder="请选择">
|
|
|
- <el-option
|
|
|
- v-for="item in logicalOperators"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- <span v-else>{{ scope.row.logicalOperator }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="参数名称" header-align="center" align="center" width="150">
|
|
|
- <template #default="scope">
|
|
|
- <el-input v-if="scope.row.isEdit" v-model="scope.row.paramsTarget" size="small" />
|
|
|
- <span v-else>{{ scope.row.paramsTarget }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="运算符" header-align="center" align="center" width="120">
|
|
|
- <template #default="scope">
|
|
|
- <el-input v-if="scope.row.isEdit" v-model="scope.row.compareOperator" size="small" />
|
|
|
- <span v-else>{{ scope.row.compareOperator }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="值" header-align="center" align="center" width="120">
|
|
|
- <template #default="scope">
|
|
|
- <el-input v-if="scope.row.isEdit" v-model="scope.row.paramsValue" size="small" />
|
|
|
- <span v-else>{{ scope.row.paramsValue }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="类型" header-align="center" align="center" width="120">
|
|
|
- <template #default="scope">
|
|
|
- <data-type-selector v-if="scope.row.isEdit" v-model="scope.row.paramsType" />
|
|
|
- <span v-else>{{ dataType(scope.row.paramsType) }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="备注">
|
|
|
- <template #default="scope">
|
|
|
- <el-input v-if="scope.row.isEdit" v-model="scope.row.paramsRemark" size="small" />
|
|
|
- <span v-else>{{ scope.row.paramsRemark }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column header-align="center" align="center" width="70">
|
|
|
- <template #header>
|
|
|
- 排序
|
|
|
- </template>
|
|
|
- <template #default>
|
|
|
- <el-tag type="info" class="sortable">
|
|
|
- <el-icon>
|
|
|
- <svg-icon name="i-ep:d-caret" />
|
|
|
- </el-icon>
|
|
|
- </el-tag>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="操作" width="140" align="center">
|
|
|
- <template #default="scope">
|
|
|
- <template v-if="scope.row.isEdit">
|
|
|
- <el-button type="primary" plain size="small" @click="onParamsSave(scope.row)">
|
|
|
- 保存
|
|
|
- </el-button>
|
|
|
- <el-button type="primary" plain size="small" @click="onParamsCancel(scope.row, scope.$index)">
|
|
|
- 取消
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <el-button type="primary" plain size="small" @click="onParamsEdit(scope.row)">
|
|
|
- 编辑
|
|
|
- </el-button>
|
|
|
- <el-popconfirm title="是否要删除此行?" style="margin-left: 10px;" @confirm="onParamsDelete(scope.row)">
|
|
|
- <template #reference>
|
|
|
- <el-button type="danger" plain size="small">
|
|
|
- 删除
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </el-popconfirm>
|
|
|
- </template>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
+ <BizObjectOAMParamsListComponent :bizId="state.bizId" :objectId="state.objectId" :oamId="state.curOamId" />
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
|
|
|
<el-tab-pane label="业务规则" name="two">
|
|
|
- <div class="container">
|
|
|
- <tool-bar>
|
|
|
- <template #left>
|
|
|
- <h5>业务规则</h5>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template #right>
|
|
|
- <el-input v-model="state.search.keywords" placeholder="请输入名称,支持模糊查询" style="padding-right: 10px;" clearable />
|
|
|
- <el-button type="primary" @click="onObjectOAMRuleSearch">
|
|
|
- <template #icon>
|
|
|
- <el-icon>
|
|
|
- <svg-icon name="i-ep:search" />
|
|
|
- </el-icon>
|
|
|
- </template>
|
|
|
- </el-button>
|
|
|
-
|
|
|
- <el-button type="primary" size="default" @click.stop="onObjectOAMRuleAdd">
|
|
|
- <template #icon>
|
|
|
- <el-icon>
|
|
|
- <svg-icon name="i-ep:plus" />
|
|
|
- </el-icon>
|
|
|
- </template>
|
|
|
- 业务规则
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </tool-bar>
|
|
|
-
|
|
|
- <el-table
|
|
|
- ref="objectRuleTableRef"
|
|
|
- v-loading="state.loading"
|
|
|
- size="small"
|
|
|
- class="list-table"
|
|
|
- :data="state.objectOamRuleList" border stripe highlight-current-row height="100%"
|
|
|
- >
|
|
|
- <el-table-column type="index" label="序号" header-align="center" align="center" width="70" />
|
|
|
+ <BizObjectOAMRuleListComponent :bizId="state.bizId" :objectId="state.objectId" :oamId="state.curOamId" />
|
|
|
+ </el-tab-pane>
|
|
|
|
|
|
- <el-table-column prop="objectTitle" label="对象名称" header-align="center" align="center">
|
|
|
- <template #default="scope">
|
|
|
- <el-icon>
|
|
|
- <svg-icon name="uim:box" />
|
|
|
- </el-icon>
|
|
|
- <span> {{ scope.row.objectTitle }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column prop="targetAttrTitle" label="目标属性" header-align="center" align="center">
|
|
|
- <template #default="scope">
|
|
|
- <span> {{ scope.row.targetAttrTitle }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column prop="ruleTitle" label="应用规则" header-align="center" align="center">
|
|
|
- <template #default="scope">
|
|
|
- <span> {{ scope.row.ruleTitle }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
-
|
|
|
- <el-table-column label="操作" header-align="center" align="center" width="230">
|
|
|
- <template #default="scope">
|
|
|
- <el-button type="warning" size="small" plain @click="onObjectOAMRuleEdit(scope.row)">
|
|
|
- 编辑
|
|
|
- </el-button>
|
|
|
- <el-button type="danger" size="small" plain @click="onObjectOAMRuleDelete(scope.row)">
|
|
|
- 删除
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
+ <el-tab-pane label="对象映射" name="three">
|
|
|
+ <BizObjectOAMMappingListComponent :bizId="state.bizId" :objectId="state.objectId" :oamId="state.curOamId" />
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
</div>
|
|
|
</LayoutContainer>
|
|
|
</div>
|
|
|
<ObjectOAMComponent ref="objectOAMRef" @success="getOAMTree" />
|
|
|
- <ObjectOAMRuleComponent ref="objectOAMRuleRef" @success="getObjectOAMRuleList" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|