添加系统绑的功能

This commit is contained in:
guanj
2026-01-05 16:34:42 +08:00
parent 75987c0c6f
commit d25f16bcc7
13 changed files with 502 additions and 401 deletions

View File

@@ -31,13 +31,6 @@
<el-input v-model="form.path" placeholder="请输入组件路径"></el-input>
</el-form-item>
<el-form-item class="top" label="组件查询时间" prop="timeKeys">
<!-- <el-radio-group v-model="form.timeKeys" style="width: 100%">
<el-radio-button label="年" value="1" />
<el-radio-button label="季" value="2" />
<el-radio-button label="月" value="3" />
<el-radio-button label="周" value="4" />
<el-radio-button label="日" value="5" />
</el-radio-group> -->
<el-checkbox-group v-model="form.timeKeys">
<el-checkbox-button value="1"></el-checkbox-button>
<el-checkbox-button value="2"></el-checkbox-button>
@@ -46,6 +39,17 @@
<el-checkbox-button value="5"></el-checkbox-button>
</el-checkbox-group>
</el-form-item>
<el-form-item class="top" label="组件绑定系统" prop="systemIds">
<el-select
v-model="form.systemIds"
multiple
collapse-tags
collapse-tags-tooltip
placeholder="请选择组件绑定系统"
>
<el-option v-for="item in systemList" :key="item.id" :label="item.name" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item class="top" label="组件排序" prop="sort">
<el-input v-model.number="form.sort" placeholder="请输入组件排序"></el-input>
</el-form-item>
@@ -70,7 +74,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="submit">保存</el-button>
<el-button type="primary" @click="submit" :loading="loading">保存</el-button>
</span>
</template>
</el-dialog>
@@ -88,6 +92,7 @@ const dictData = useDictData()
const dialogVisible = ref(false)
const title = ref('')
const formRef = ref()
const loading = ref(false)
// 注意不要和表单ref的命名冲突
const form = ref<anyObj>({
name: '',
@@ -95,6 +100,7 @@ const form = ref<anyObj>({
system: [],
timeKeys: ['1', '2', '3', '4', '5'],
code: '',
systemIds: [],
path: ''
})
const props = { label: 'name', value: 'id' }
@@ -105,11 +111,14 @@ const rules = {
icon: [{ required: true, message: '请先择组件图标', trigger: 'change' }],
path: [{ required: true, message: '请输入组件路径', trigger: 'blur' }],
sort: [{ required: true, message: '请输入排序', trigger: 'blur' }],
timeKeys: [{ required: true, message: '请选择组件查询时间', trigger: 'change' }]
timeKeys: [{ required: true, message: '请选择组件查询时间', trigger: 'change' }],
systemIds: [{ required: true, message: '请选择组件绑定系统', trigger: 'change' }]
}
const customDeptOption: any = ref([])
const systemList = dictData.getBasicData('System_Type')
onMounted(() => {
customDeptOption.value = dictData.getBasicData('System_Type')
customDeptOption.value = dictData.getBasicData('Component_Type')
customDeptOption.value.forEach((item: any) => {
getFatherComponent({ systemType: item.id }).then(res => {
item.children = res.data.filter(item => item.name != '无')
@@ -134,6 +143,7 @@ const submit = () => {
if (valid) {
let url = ''
ElMessage.info('正在保存请稍等!')
loading.value = true
setTimeout(async () => {
await html2canvas(document.querySelector('.GridLayout'), {
// scale: 2
@@ -173,6 +183,7 @@ const submit = () => {
cancel()
})
}
loading.value = false
}, 500)
}
})

View File

@@ -13,11 +13,11 @@
/> -->
<el-tabs v-model="tableName" type="border-card" @tab-change="changeTab">
<el-tab-pane v-for="item in tableStore.table.data" :key="item.name" :label="item.name" :name="item.name">
<el-tabs v-model="tableName1" tab-position="left">
<el-tabs v-model="tableName1" tab-position="left" class="componentList">
<el-tab-pane v-for="k in item?.children" :key="k.name" :label="k.name" :name="k.name">
<template #label>
<span class="custom-tabs-label">
<span>{{ k.name }}</span>
<p>{{ k.name }}</p>
<!-- <el-icon><Edit /></el-icon> -->
<el-button
@@ -25,21 +25,21 @@
icon="el-icon-Edit"
link
class="ml10"
@click="editTree(k, 0)"
@click.stop="editTree(k, 0)"
></el-button>
<el-button
type="danger"
icon="el-icon-Delete"
link
class="ml0"
@click="del(k)"
@click.stop="del(k)"
></el-button>
</span>
</template>
<div :style="height" style="overflow-y: auto; overflow-x: hidden">
<el-row :gutter="10" class="pl5 pr5 pt5">
<el-col :span="6" v-for="component in k.children" :key="component.id" class="mb10">
<el-card class="box-card" shadow="hover">
<el-card class="box-card" shadow="hover">
<div slot="header" class="clearfix">
<span style="display: flex; align-items: center">
{{ component.name }}
@@ -50,7 +50,7 @@
icon="el-icon-Edit"
style="padding: 3px 0; color: blue"
type="text"
@click="editTree(component, 1)"
@click.stop="editTree(component, 1)"
>
编辑
</el-button>
@@ -58,7 +58,7 @@
icon="el-icon-Delete"
style="padding: 3px 0; color: red"
type="text"
@click="del(component)"
@click.stop="del(component)"
>
删除
</el-button>
@@ -356,4 +356,9 @@ span {
min-width: 128px;
}
}
:deep(.componentList){
.el-tabs__header{
height: calc(100vh - 250px)!important;
}
}
</style>