- 新增 CuteProductLineSelect 组件API接口 - 重命名 SystemComponentController 为 CuteProductLineSelectProApi - 迁移部门选择数据源接口到新API路径 - 更新前端组件导入路径和API调用方式 - 修改 CuteDeptTree 组件分页大小限制 - 为文件上传组件添加上传方式配置选项 - 调整字典详情和定时任务模块的API导入路径
85 lines
1.9 KiB
Vue
85 lines
1.9 KiB
Vue
<!--
|
|
* 产品线级联选择组件
|
|
* @author odboy
|
|
* @email tianjun@odboy.cn
|
|
* @created 2025-08-01
|
|
-->
|
|
<template>
|
|
<el-cascader
|
|
v-model="productLine"
|
|
:disabled="disabled"
|
|
:options="deptOptions"
|
|
style="width: 100%"
|
|
placeholder="请选择产品线"
|
|
@change="handleChange"
|
|
/>
|
|
</template>
|
|
|
|
<script>
|
|
|
|
import { listMetadata } from '@/api/application/cute-product-line-select-pro'
|
|
import CsMessage from '@/utils/elementui/CsMessage'
|
|
|
|
export default {
|
|
name: 'CuteProductLineSelectPro',
|
|
props: {
|
|
value: {
|
|
type: Array,
|
|
default: null
|
|
},
|
|
disabled: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
deptOptions: [],
|
|
productLine: this.value
|
|
}
|
|
},
|
|
watch: {
|
|
value(newVal) {
|
|
this.productLine = newVal
|
|
}
|
|
},
|
|
created() {
|
|
this.fetchDeptData()
|
|
},
|
|
methods: {
|
|
// 递归清理空的children属性
|
|
cleanEmptyChildren(data) {
|
|
return data.map(item => {
|
|
const newItem = { ...item }
|
|
if (newItem.children && newItem.children.length > 0) {
|
|
// 递归处理子节点
|
|
newItem.children = this.cleanEmptyChildren(newItem.children)
|
|
} else {
|
|
// 删除空的children属性
|
|
delete newItem.children
|
|
}
|
|
return newItem
|
|
})
|
|
},
|
|
fetchDeptData() {
|
|
listMetadata().then(data => {
|
|
this.deptOptions = this.cleanEmptyChildren(data)
|
|
// console.error('deptOptions', this.deptOptions)
|
|
}).catch(error => {
|
|
console.error('获取部门数据失败:', error)
|
|
CsMessage.Error('获取部门数据失败')
|
|
})
|
|
},
|
|
handleChange(value) {
|
|
this.productLine = value
|
|
// console.error('value', value)
|
|
// 绑定change事件
|
|
this.$emit('change', value)
|
|
// 绑定form value
|
|
this.$emit('input', value)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|