* Fixed the problem of the tutorial index.

This commit is contained in:
wangxuepeng
2023-11-14 10:21:29 +08:00
parent 2c79c59a6e
commit e9b18756bd
3 changed files with 106 additions and 89 deletions
+1 -1
View File
@@ -80,7 +80,7 @@ class tutorial extends control
$this->session->set('tutorialMode', false);
$this->loadModel('setting')->setItem($this->app->user->account . '.common.global.novice', 0);
if(empty($referer)) $referer = helper::safe64Encode(helper::createLink('my', 'index', '', 'html'));
echo js::locate(helper::safe64Decode($referer), 'parent');
return $this->send(array('result' => 'success', 'open' => $this->createLink('index', 'index')));
}
/**
+15 -14
View File
@@ -37,6 +37,7 @@ $(function()
var checkTaskId = null, modalShowTaskId;
var checkFormReadyId = null;
var showToolTipTask = null;
var submitBindCount = 0;
var getApp = function(code)
{
@@ -240,8 +241,6 @@ $(function()
var checkFormReady = function()
{
clearTips();
var iWindow = getAppWindow();
if(!iWindow || !iWindow.$) return tryCheckTask();
var task = tasks[current];
@@ -288,7 +287,6 @@ $(function()
{
targetStatus.form = false;
if(!targetStatus.waitField) targetStatus.waitField = $required;
showFormPopver = false;
}
}
});
@@ -330,7 +328,7 @@ $(function()
$navTarget.toggleClass('finish', !!targetStatus.nav);
$formTarget.toggleClass('finish', !!targetStatus.form);
$submitTarget.toggleClass('finish', !!targetStatus.submit);
$submitTarget.toggleClass('finish', !!targetStatus.submitOK);
$navTarget.toggleClass('wait', !$navTarget.is('.finish,.active'));
$formTarget.toggleClass('wait', !$formTarget.is('.finish,.active'));
$submitTarget.toggleClass('wait', !$submitTarget.is('.finish,.active'));
@@ -382,6 +380,7 @@ $(function()
var $form = $$(task.nav.form);
var $formWrapper = $form.closest('#mainContent');
if(!$formWrapper.length) $formWrapper = $form;
$formTarget.addClass('active');
highlight($formWrapper);
showToolTip($formWrapper, $formTarget.text());
var fieldSelector = '';
@@ -406,6 +405,8 @@ $(function()
if(!$form.data('bindCheckTaskEvent'))
{
$form.off('.tutorial').off('submit');
$form.on('change.tutorial', fieldSelector, tryCheckFormReady)
$form.on('blur.tutorial', fieldSelector, tryCheckFormReady)
var onSubmit = function(e)
{
@@ -449,15 +450,6 @@ $(function()
});
}
}
setTimeout(
function()
{
$form.on('change.tutorial', fieldSelector, tryCheckFormReady)
$form.on('blur.tutorial', fieldSelector, tryCheckFormReady)
},
2000
)
}
else
{
@@ -551,6 +543,15 @@ $(function()
}
}
$navTarget.toggleClass('finish', !!targetStatus.nav);
$formTarget.toggleClass('finish', !!targetStatus.form);
$submitTarget.toggleClass('finish', !!targetStatus.submitOK);
$navTarget.toggleClass('wait', !$navTarget.is('.finish,.active'));
$formTarget.toggleClass('wait', !$formTarget.is('.finish,.active'));
$submitTarget.toggleClass('wait', !$submitTarget.is('.finish,.active'));
$openTaskPage.toggleClass('open', targetStatus.nav);
targetStatus.submitOK = targetStatus.nav && targetStatus.form;
return targetStatus;
};
@@ -670,7 +671,7 @@ $(function()
if(status.submitOK) window.location.reload();
}).on('click', '.btn-open-target-page', function()
{
appsWindow.$.apps.open(tasks[current].url);
appsWindow.$.apps.openApp(tasks[current].url);
}).on('click', '.btn-reset-tasks', function()
{
hideModal();
+90 -74
View File
@@ -18,16 +18,16 @@ $taskGroup = array_map(function($key, $task) use(&$i)
$i++;
return li
(
set::style(array('width' => '100%')),
set('data-name', $key),
setClass('w-full'),
setData(array('name' => $key)),
a
(
set('data-name', $key),
setData(array('name' => $key)),
set::href('javascript:;'),
set::className('btn-task pull-left'),
setClass('btn-task pull-left'),
span($i .'. '),
span(
set::className('task-name'),
setClass('task-name'),
$task['title']
)
),
@@ -57,75 +57,75 @@ jsVar('langRequiredTip', $lang->tutorial->requiredTip);
div
(
set::id('pageContainer'),
setID('pageContainer'),
div
(
set::id('iframeWrapper'),
setID('iframeWrapper'),
h::iframe
(
set::id('iframePage'),
setID('iframePage'),
set::name('iframePage'),
set::src(helper::createLink('index', 'index', 't=tutorial')),
set::src(createLink('index', 'index', 't=tutorial')),
)
),
div(set::id('taskModalBack')),
div(setID('taskModalBack')),
div
(
set::id('taskModal'),
setID('taskModal'),
div
(
set::className('close'),
set::class('close'),
set::icon('close'),
),
div
(
set::className('finish-all'),
setClass('finish-all'),
div
(
set::className('start-icon'),
setClass('start-icon'),
icon(
set::class('icon-front'),
setClass('icon-front'),
'check-circle'
),
),
h::h3($lang->tutorial->congratulation),
h3($lang->tutorial->congratulation),
btn
(
set::icon('restart'),
set::className('btn btn-outline btn-reset-tasks'),
setClass('btn btn-outline btn-reset-tasks'),
$lang->tutorial->restart
),
' ',
btn
(
set::className('btn btn-outline'),
set::url(helper::createLink('tutorial', 'quit')),
setClass('btn btn-outline'),
set::url(createLink('tutorial', 'quit')),
$lang->tutorial->exit
)
),
div
(
set::className('finish'),
setClass('finish'),
div
(
set::className('start-icon'),
setClass('start-icon'),
icon(
set::class('icon-front'),
'check-circle'
),
),
h::h3(
h3(
$lang->tutorial->congratulateTask,
"【",
span
(
set::className('task-name-current'),
setClass('task-name-current'),
),
"】!"
),
btn
(
set::className('btn btn-outline btn-next-task btn-task'),
setClass('btn btn-outline btn-next-task btn-task'),
$lang->tutorial->nextTask,
set::trailingIcon('angle-right')
)
@@ -133,151 +133,167 @@ div
),
div
(
set::id('sidebar'),
setID('sidebar'),
h::header
(
set::className('bg-primary'),
setClass('bg-primary'),
div
(
set::className('start-icon'),
setClass('start-icon'),
icon(
setClass('icon-back'),
'certificate'
),
icon(
setClass('icon-front text-secondary'),
'flag'
)
),
h::h2('新手教程'),
h2($lang->tutorial->common),
div
(
set::className('actions'),
setClass('actions'),
btn
(
set::className('size-sm'),
setClass('size-sm'),
set::type('danger'),
set::url(helper::createLink('tutorial', 'quit')),
'退出教程',
set::url(inlink('quit')),
$lang->tutorial->exit,
)
)
),
h::section
(
set::id('current'),
h::h4('当前任务'),
setID('current'),
h4('当前任务'),
div
(
set::id('task'),
set::className('panel'),
setID('task'),
setClass('panel'),
div
(
set::className('panel-heading bg-secondary'),
setClass('panel-heading bg-secondary'),
h::strong
(
span
(
set::className('task-id-current'),
setClass('task-id-current'),
),
'. ',
span
(
set::className('task-name task-name-current'),
setClass('task-name task-name-current'),
)
)
),
div
(
set::className('panel-body'),
setClass('panel-body'),
div
(
set::className('task-desc'),
setClass('task-desc'),
p(),
h::ul
ul
(
li
(
set::data_target('nav'),
set::className('wait'),
setData(array('target' => 'nav')),
setClass('wait'),
),
li
(
set::data_target('form'),
set::className('wait'),
setData(array('target' => 'form')),
setClass('wait'),
),
li
(
set::data_target('submit'),
set::className('wait'),
setData(array('target' => 'submit')),
setClass('wait'),
)
)
),
h::a(
a(
setID('openTaskPage'),
setClass('btn-open-target-page hl-primary open'),
set::href('javascript:;'),
div
(
set::className('normal'),
setClass('normal'),
icon('magic'),
html($lang->tutorial->openTargetPage)
),
div
(
set::className('opened'),
setClass('opened'),
icon('flag'),
html($lang->tutorial->atTargetPage)
),
div
(
set::className('reload'),
),
setClass('reload'),
icon('restart'),
html($lang->tutorial->reloadTargetPage)
)
),
div
(
set::className('alert warning-pale flex items-center'),
set::style(array('padding' => '5px', 'margin-bottom' => '0px')),
"教程任务中,数据不会保存。"
setClass('alert warning-pale flex items-center p-4 my-0'),
$lang->tutorial->dataNotSave
)
)
),
div
(
set::className('clearfix actions'),
setClass('clearfix actions'),
btn
(
set::icon('arrow-left'),
set::size('sm'),
set::className('btn-prev-task btn-task circle'),
'上一个',
setClass('btn-prev-task btn-task circle'),
$lang->tutorial->previous,
),
btn
(
set::trailingIcon('arrow-right'),
set::size('sm'),
set::type('primary'),
set::className('btn-next-task btn-task circle pull-right'),
'下一个任务',
setClass('btn-next-task btn-task circle pull-right'),
$lang->tutorial->nextTask,
)
)
),
h::section
(
set::id('all'),
h::h4(
'所有任务(',
setID('all'),
h4(
$lang->tutorial->allTasks,
'(',
span
(
set::className('task-num-finish'),
5,
setClass('task-num-finish'),
0,
),
'/',
span
(
set::className('task-count'),
setClass('task-count'),
10
),
')'
),
div
(
set::id('tasksProgress'),
set::className('progress'),
setID('tasksProgress'),
setClass('progress'),
div
(
set::className('progress-bar primary'),
set::style(array('width' => '30%')),
setClass('progress-bar primary'),
)
),
h::ul
ul
(
set::id('tasks'),
set::className('nav nav-primary nav-stacked'),
setID('tasks'),
setClass('nav nav-primary nav-stacked mt-5'),
$taskGroup
)
)