* Add change and init event on longTime.

This commit is contained in:
daitingting
2024-01-31 06:51:10 +00:00
parent 5799a97c8f
commit 30a7701783
3 changed files with 10 additions and 13 deletions
+8 -1
View File
@@ -23,6 +23,13 @@ $fields = useFields('program.create');
$autoLoad = array();
$autoLoad['parent'] = 'parent,future,budget,budgetUnit,acl,whitelist';
$handleLongTimeChange = jsCallback()->do(<<<'JS'
const endPicker = $element.find('[name=end]').zui('datePicker');
const longTime = $element.find('[name=longTime]').prop('checked');
endPicker.render({disabled: longTime});
if(longTime) endPicker.$.setValue('');
JS);
formGridPanel
(
set::modeSwitcher(false),
@@ -33,7 +40,7 @@ formGridPanel
on::change('[name=budget]', 'budgetOverrunTips'),
on::change('[name=future]', 'onFutureChange'),
on::change('[name=acl]', 'onAclChange'),
on::change('[name=longTime]')->do('$("[name=end]").zui("datePicker").render({disabled: $(target).prop("checked")});'),
on::change('[name=longTime]', $handleLongTimeChange),
on::change('[name=begin], [name=end]', 'onDateChange')
);
+1 -11
View File
@@ -7,19 +7,9 @@ $fields = defineFieldList('program.edit', 'program');
$isLongTime = data('program.end') && data('program.end') == LONG_TIME;
$fields->field('dateRange')
->checkbox(array('text' => $lang->project->longTime, 'name' => 'longTime', 'checked' => $isLongTime))
->controlBegin('dateRangePicker')
->beginName('begin')
->beginPlaceholder($lang->project->begin)
->beginValue(data('program.begin'))
->endName('end')
->endPlaceholder($lang->project->end)
->endValue(data('program.end'))
->endDisabled($isLongTime)
->endList($lang->execution->endList)
->controlEnd()
->tip(' ')
->tipProps(array('id' => 'dateTip'))
->tipClass('text-warning hidden');
->endDisabled($isLongTime);
$fields->field('acl')
->items(data('program.parent') ? $lang->program->subAclList : $lang->program->aclList)
+1 -1
View File
@@ -43,7 +43,7 @@ formGridPanel
on::change('[name=acl]', 'onAclChange'),
on::change('[name=longTime]', $handleLongTimeChange),
on::change('[name=begin], [name=end]', 'onDateChange'),
on::inited()->triggerEvent('$element.find("[name=longTime]")', 'change')
on::init()->do('setTimeout(() => $element.find("[name=longTime]").trigger("change"), 500)')
);
render();