| | |
| | | |
| | | <el-upload v-if="param.paramControlType === 'image'" :action="uploadUrl" |
| | | list-type="picture-card" :file-list="formModels[item.id][param.paramKey]" |
| | | :limit="param.paramLimit" |
| | | :limit="param.paramLimit" |
| | | :on-preview="handlePictureCardPreview" |
| | | :on-remove="(file) => handleRemove(file, param)" |
| | | :on-success="(response, file, fileList) => handleUploadSuccess(response, file, fileList, param)"> |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | <el-switch v-if="param.paramControlType === 'switch'" v-model="formModels[item.id][param.paramKey]" |
| | | active-text="启用" inactive-text="禁用"></el-switch> |
| | | <el-radio-group v-if="param.paramControlType === 'radio'" |
| | | v-model="formModels[item.id][param.paramValue]"> |
| | | <el-radio v-for="option in dictOptions[param.paramDict]" :key="option.value" |
| | | :label="option.value"> |
| | | {{ option.label }} |
| | | </el-radio> |
| | | </el-radio-group> |
| | | <el-checkbox-group v-if="param.paramControlType === 'checkbox'" v-model="formModels[item.id][param.paramKey]"> |
| | | <el-checkbox v-for="option in dictOptions[param.paramDict]" :key="option.value" :label="option.value">{{ option.label }}</el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="item.paramList && item.paramList.length > 0"> |
| | |
| | | formModels: {}, // 存储每个 tab 的 formModel |
| | | srcFormModels: {}, // 原始表单数据 |
| | | formRules: {}, // 存储每个 tab 的 formRules |
| | | dictOptions: [], // 存储字典选项 |
| | | }; |
| | | }, |
| | | |
| | |
| | | }, |
| | | async mounted() { |
| | | await this.getConfigParamGroup(); |
| | | await this.getDictOptions(); // 获取字典选项 |
| | | }, |
| | | |
| | | methods: { |
| | |
| | | this.activeName = this.tabList[index]?.paramGroup |
| | | |
| | | }, |
| | | getDictOptions() { |
| | | // 模拟 API 调用获取字典选项 |
| | | this.dictOptions = { radioDict: [{ value: '1', label: 'Option 1' }, { value: '2', label: 'Option 2' }] }; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |