* add collection button.
This commit is contained in:
@@ -146,6 +146,7 @@ class ai extends control
|
||||
{
|
||||
$this->view->miniProgram = $this->ai->getMiniProgramByID($id);
|
||||
$this->view->fields = $this->ai->getMiniProgramFields($id);
|
||||
$this->view->collectedIDs = $this->ai->getCollectedMiniProgramIDs($this->app->user->id);
|
||||
$this->display();
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
}
|
||||
|
||||
.mini-program .detail {
|
||||
flex-basis: 390px;
|
||||
width: 390px;
|
||||
flex: none;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -22,6 +23,11 @@
|
||||
border-bottom: 1px solid var(--color-gray-200);
|
||||
}
|
||||
|
||||
.mini-program .detail .header .btn-star {
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.mini-program .detail .header .program-avatar {
|
||||
width: 46px;
|
||||
height: 46px;
|
||||
@@ -30,11 +36,16 @@
|
||||
|
||||
.mini-program .detail .header .content {
|
||||
flex: auto;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.mini-program .detail .header .content .title {
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
padding-right: 64px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.mini-program .detail .header .content .desc {
|
||||
|
||||
@@ -37,3 +37,23 @@ window.aiMiniProgramChat.startAIChat = function()
|
||||
const promptStr = generatePrompt();
|
||||
console.log(promptStr);
|
||||
};
|
||||
|
||||
window.aiMiniProgramChat.handleStarBtnClick = function()
|
||||
{
|
||||
const $btn = $(this);
|
||||
const url = $btn.attr('data-url');
|
||||
$.get(url, function(response)
|
||||
{
|
||||
if(response.status == '1')
|
||||
{
|
||||
$btn.children('img').attr('src', 'static/svg/star.svg');
|
||||
$btn.attr('data-url', $btn.attr('data-url').replace('false', 'true'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$btn.children('img').attr('src', 'static/svg/star-empty.svg');
|
||||
$btn.attr('data-url', $btn.attr('data-url').replace('true', 'false'));
|
||||
}
|
||||
}, 'json');
|
||||
};
|
||||
|
||||
|
||||
@@ -58,13 +58,15 @@ foreach($fields as $field)
|
||||
jsVar('fieldNames', $fieldNames);
|
||||
|
||||
list($iconName, $iconTheme) = explode('-', $miniProgram->icon);
|
||||
$star = in_array($miniProgram->id, $collectedIDs) ? 'star' : 'star-empty';
|
||||
$delete = $star === 'star' ? 'true' : 'false';
|
||||
|
||||
div(
|
||||
setClass('mini-program fixed flex'),
|
||||
div(
|
||||
setClass('detail col shadow-md'),
|
||||
div(
|
||||
setClass('header'),
|
||||
setClass('header', 'relative'),
|
||||
div(
|
||||
setClass('program-avatar center'),
|
||||
setStyle(array('border' => "1px solid {$config->ai->miniPrograms->themeList[$iconTheme][1]}", 'background-color' => $config->ai->miniPrograms->themeList[$iconTheme][0])),
|
||||
@@ -81,6 +83,14 @@ div(
|
||||
set::title($miniProgram->desc),
|
||||
$miniProgram->desc
|
||||
)
|
||||
),
|
||||
btn(
|
||||
setClass('ghost btn-star absolute'),
|
||||
set::size('md'),
|
||||
setData('url', createLink('ai', 'collectMiniProgram', "appID={$miniProgram->id}&delete={$delete}")),
|
||||
on::click('window.aiMiniProgramChat.handleStarBtnClick'),
|
||||
html(html::image("static/svg/{$star}.svg", "class='$star'")),
|
||||
$lang->ai->miniPrograms->collect
|
||||
)
|
||||
),
|
||||
div(
|
||||
|
||||
Reference in New Issue
Block a user