diff --git a/lib/zin/wg/productsbox/v1.php b/lib/zin/wg/productsbox/v1.php index b1ae784463..6fe47340e0 100644 --- a/lib/zin/wg/productsbox/v1.php +++ b/lib/zin/wg/productsbox/v1.php @@ -24,6 +24,7 @@ class productsBox extends wg 'isStage?: bool', // 是否是阶段类型。 'hasNewProduct?: bool=false', // 是否有新产品。 'errorSameProducts?: string', // 选择同一个产品的提示。 + 'required?: bool=false' // 是否是必填。 ); public static function getPageCSS(): string|false @@ -95,7 +96,7 @@ class productsBox extends wg on::change('[name=addProduct]', 'toggleNewProduct'), set::width('1/2'), setClass('linkProduct'), - set::required($project && in_array($project->model, array('waterfall', 'waterfallplus'))), + set::required($this->prop('required') || ($project && in_array($project->model, array('waterfall', 'waterfallplus')))), set::label($lang->project->manageProducts), set::labelFor('productBox'), $hasNewProduct ? set::checkbox(array('text' => $lang->project->addProduct, 'name' => 'addProduct', 'checked' => false)) : false, @@ -243,7 +244,7 @@ class productsBox extends wg ( set::width($hasBranch ? '1/4' : '1/2'), setClass('linkProduct'), - set::required($project && in_array($project->model, array('waterfall', 'waterfallplus'))), + set::required($this->prop('required') || ($project && in_array($project->model, array('waterfall', 'waterfallplus')))), $i == 0 ? set::label($lang->project->manageProducts) : null, inputGroup ( diff --git a/module/project/ui/common.field.php b/module/project/ui/common.field.php index f1d6303326..418d89b61a 100644 --- a/module/project/ui/common.field.php +++ b/module/project/ui/common.field.php @@ -63,6 +63,7 @@ $fields->field('days')->label($lang->project->days . $lang->project->daysUnit)-> $fields->field('productsBox') ->width('full') + ->required(data('copyProject.parent') || data('parentProgram.id') || data('project.parent')) ->control(array ( 'control' => 'productsBox', diff --git a/module/project/ui/create.html.php b/module/project/ui/create.html.php index ffb60dc21b..da645475c4 100644 --- a/module/project/ui/create.html.php +++ b/module/project/ui/create.html.php @@ -64,6 +64,7 @@ formGridPanel ), on::click('[name=name], [name=code], [name=end], [name=days], [data-name="parent"] .pick *', 'removeTips'), on::click('[type=submit]', 'removeAllTips'), + on::change('[name=parent]')->toggleClass('.productsBox .linkProduct .form-label', 'required', "\$(target).val() > 0"), on::change('[name=hasProduct]', 'changeType'), on::change('[name=longTime]')->do('const $endPicker = $("[name=end]").zui("datePicker"); $endPicker.render({disabled: $(target).prop("checked")}); if($(target).prop("checked")){ $endPicker.$.setValue(""); $("[name=days]").attr("disabled", "disabled");} else{ $("[name=days]").removeAttr("disabled");}'), on::change('[name=future]', 'toggleBudget'),