| | |
| | | /> |
| | | </el-select> |
| | | |
| | | <!-- 级联选择组件 --> |
| | | <el-cascader |
| | | v-else-if="item.type === 'cascader'" |
| | | v-model="state.formData[item.prop]" |
| | | :options="getCascaderOptions(item)" |
| | | :props="item.props || {}" |
| | | :placeholder="item.placeholder || '请选择'" |
| | | :disabled="state.title === '查看' || item.disabled" |
| | | :clearable="item.clearable !== false" |
| | | :filterable="item.filterable" |
| | | :show-all-levels="item.showAllLevels !== false" |
| | | :style="item.style || 'width: 100%'" |
| | | @change="item.changeEvent ? handleEvent(item.changeEvent, state.formData[item.prop]) : null" |
| | | /> |
| | | |
| | | |
| | | <!-- 日期选择器组件 --> |
| | | <el-date-picker |
| | | v-else-if="item.type === 'date'" |
| | |
| | | return [] |
| | | } |
| | | |
| | | const getCascaderOptions = (item) => { |
| | | if (!item.options) return [] |
| | | |
| | | // 如果是函数,执行函数获取选项 |
| | | if (typeof item.options === 'function') { |
| | | return item.options() |
| | | } |
| | | |
| | | // 如果是数组,直接返回 |
| | | if (Array.isArray(item.options)) { |
| | | return item.options |
| | | } |
| | | |
| | | // 如果是响应式引用 |
| | | if (item.options && typeof item.options === 'object' && 'value' in item.options) { |
| | | return item.options.value |
| | | } |
| | | |
| | | return [] |
| | | } |
| | | |
| | | // 文件上传前的校验 |
| | | const beforeUpload = (rawFile, item) => { |
| | | const maxSize = item.maxSize || 5 |
| | |
| | | if (userItem) { |
| | | userItem.options = () => userList.map(user => ({ |
| | | value: user.userId, |
| | | label: user.userName |
| | | label: user.nickName |
| | | })) |
| | | state.formData.reformUserId = null |
| | | await nextTick() |