mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-03-14 01:34:47 +08:00
pref: 优化应用安装表单选择器组件支持多选 (#3918)
This commit is contained in:
parent
3035bb2bf6
commit
1781362342
@ -639,10 +639,11 @@ func (a *AppInstallService) GetParams(id uint) (*response.AppConfig, error) {
|
|||||||
for _, form := range appForm.FormFields {
|
for _, form := range appForm.FormFields {
|
||||||
if v, ok := envs[form.EnvKey]; ok {
|
if v, ok := envs[form.EnvKey]; ok {
|
||||||
appParam := response.AppParam{
|
appParam := response.AppParam{
|
||||||
Edit: false,
|
Edit: false,
|
||||||
Key: form.EnvKey,
|
Key: form.EnvKey,
|
||||||
Rule: form.Rule,
|
Rule: form.Rule,
|
||||||
Type: form.Type,
|
Type: form.Type,
|
||||||
|
Multiple: form.Multiple,
|
||||||
}
|
}
|
||||||
if form.Edit {
|
if form.Edit {
|
||||||
appParam.Edit = true
|
appParam.Edit = true
|
||||||
@ -654,10 +655,20 @@ func (a *AppInstallService) GetParams(id uint) (*response.AppConfig, error) {
|
|||||||
appInstall, _ := appInstallRepo.GetFirst(appInstallRepo.WithServiceName(v.(string)))
|
appInstall, _ := appInstallRepo.GetFirst(appInstallRepo.WithServiceName(v.(string)))
|
||||||
appParam.ShowValue = appInstall.Name
|
appParam.ShowValue = appInstall.Name
|
||||||
} else if form.Type == "select" {
|
} else if form.Type == "select" {
|
||||||
for _, fv := range form.Values {
|
if form.Multiple {
|
||||||
if fv.Value == v {
|
if v == "" {
|
||||||
appParam.ShowValue = fv.Label
|
appParam.Value = []string{}
|
||||||
break
|
} else {
|
||||||
|
if str, ok := v.(string); ok {
|
||||||
|
appParam.Value = strings.Split(str, ",")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for _, fv := range form.Values {
|
||||||
|
if fv.Value == v {
|
||||||
|
appParam.ShowValue = fv.Label
|
||||||
|
break
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
appParam.Values = form.Values
|
appParam.Values = form.Values
|
||||||
@ -665,14 +676,15 @@ func (a *AppInstallService) GetParams(id uint) (*response.AppConfig, error) {
|
|||||||
params = append(params, appParam)
|
params = append(params, appParam)
|
||||||
} else {
|
} else {
|
||||||
params = append(params, response.AppParam{
|
params = append(params, response.AppParam{
|
||||||
Edit: form.Edit,
|
Edit: form.Edit,
|
||||||
Key: form.EnvKey,
|
Key: form.EnvKey,
|
||||||
Rule: form.Rule,
|
Rule: form.Rule,
|
||||||
Type: form.Type,
|
Type: form.Type,
|
||||||
LabelZh: form.LabelZh,
|
LabelZh: form.LabelZh,
|
||||||
LabelEn: form.LabelEn,
|
LabelEn: form.LabelEn,
|
||||||
Value: form.Default,
|
Value: form.Default,
|
||||||
Values: form.Values,
|
Values: form.Values,
|
||||||
|
Multiple: form.Multiple,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -687,6 +687,12 @@ func handleMap(params map[string]interface{}, envParams map[string]string) {
|
|||||||
envParams[k] = strconv.Itoa(int(t))
|
envParams[k] = strconv.Itoa(int(t))
|
||||||
case int:
|
case int:
|
||||||
envParams[k] = strconv.Itoa(t)
|
envParams[k] = strconv.Itoa(t)
|
||||||
|
case []interface{}:
|
||||||
|
strArray := make([]string, len(t))
|
||||||
|
for i := range t {
|
||||||
|
strArray[i] = strings.ToLower(fmt.Sprintf("%v", t[i]))
|
||||||
|
}
|
||||||
|
envParams[k] = strings.Join(strArray, ",")
|
||||||
default:
|
default:
|
||||||
envParams[k] = t.(string)
|
envParams[k] = t.(string)
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
{{ $t('app.toInstall') }}
|
{{ $t('app.toInstall') }}
|
||||||
</el-link>
|
</el-link>
|
||||||
</span>
|
</span>
|
||||||
<el-select v-model="form[p.envKey]" v-if="p.type == 'select'">
|
<el-select v-model="form[p.envKey]" v-if="p.type == 'select'" :multiple="p.multiple">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="service in p.values"
|
v-for="service in p.values"
|
||||||
:key="service.label"
|
:key="service.label"
|
||||||
|
@ -30,7 +30,11 @@
|
|||||||
v-model.number="paramModel.params[p.key]"
|
v-model.number="paramModel.params[p.key]"
|
||||||
:disabled="!p.edit"
|
:disabled="!p.edit"
|
||||||
></el-input>
|
></el-input>
|
||||||
<el-select v-model="paramModel.params[p.key]" v-else-if="p.type == 'select'">
|
<el-select
|
||||||
|
v-model="paramModel.params[p.key]"
|
||||||
|
v-else-if="p.type == 'select'"
|
||||||
|
:multiple="p.multiple"
|
||||||
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="value in p.values"
|
v-for="value in p.values"
|
||||||
:key="value.label"
|
:key="value.label"
|
||||||
@ -201,6 +205,7 @@ const get = async () => {
|
|||||||
type: d.type,
|
type: d.type,
|
||||||
values: d.values,
|
values: d.values,
|
||||||
showValue: d.showValue,
|
showValue: d.showValue,
|
||||||
|
multiple: d.multiple,
|
||||||
});
|
});
|
||||||
rules.params[d.key] = [Rules.requiredInput];
|
rules.params[d.key] = [Rules.requiredInput];
|
||||||
if (d.rule) {
|
if (d.rule) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user