From 30a770178387f59566eb12e4cc185f9903e7f53e Mon Sep 17 00:00:00 2001 From: daitingting Date: Wed, 31 Jan 2024 06:51:10 +0000 Subject: [PATCH] * Add change and init event on longTime. --- module/program/ui/create.html.php | 9 ++++++++- module/program/ui/edit.field.php | 12 +----------- module/program/ui/edit.html.php | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/module/program/ui/create.html.php b/module/program/ui/create.html.php index adb865d7cc..c5ee9c245f 100644 --- a/module/program/ui/create.html.php +++ b/module/program/ui/create.html.php @@ -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') ); diff --git a/module/program/ui/edit.field.php b/module/program/ui/edit.field.php index 3b00d54814..1b2b07009b 100644 --- a/module/program/ui/edit.field.php +++ b/module/program/ui/edit.field.php @@ -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) diff --git a/module/program/ui/edit.html.php b/module/program/ui/edit.html.php index b91a402791..4420ff449a 100644 --- a/module/program/ui/edit.html.php +++ b/module/program/ui/edit.html.php @@ -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();