feat(system): 新增产品线选择组件
- 重构 CsSelectOptionItemVo 类,改名为 CsSelectOptionVo - 新增 SystemComponentController 控制器,提供部门下拉选择数据源查询接口 - 新增 SystemProductLineVo 类,用于表示产品线选择框的选项 - 实现查询部门选择数据源的方法,构建产品线选择框的选项列表 - 新增前端 API 接口和组件以支持产品线选择功能 - 更新业务演示页面,添加产品线选择框
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
<template>
|
||||
<el-select
|
||||
v-model="selectedValue"
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择产品线"
|
||||
:disabled="disabled"
|
||||
@change="handleChange"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in deptOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import { queryDeptSelectDataSource } from '@/api/system/component'
|
||||
import CsMessage from '@/utils/elementui/CsMessage'
|
||||
|
||||
export default {
|
||||
name: 'CuteProductLineSelect',
|
||||
props: {
|
||||
value: {
|
||||
type: [Number, String],
|
||||
default: null
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
deptOptions: [],
|
||||
selectedValue: this.value
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
value(newVal) {
|
||||
this.selectedValue = newVal
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.fetchDeptData()
|
||||
},
|
||||
methods: {
|
||||
fetchDeptData() {
|
||||
queryDeptSelectDataSource().then(data => {
|
||||
this.deptOptions = data
|
||||
}).catch(error => {
|
||||
console.error('获取部门数据失败:', error)
|
||||
CsMessage.Error('获取部门数据失败')
|
||||
})
|
||||
},
|
||||
handleChange(value) {
|
||||
this.selectedValue = value
|
||||
for (const item of this.deptOptions) {
|
||||
if (item.value === value) {
|
||||
this.$emit('detail', item)
|
||||
break
|
||||
}
|
||||
}
|
||||
// 绑定change事件
|
||||
this.$emit('change', value)
|
||||
// 绑定form value
|
||||
this.$emit('input', value)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user