* add collection button.

This commit is contained in:
dingyongliang
2024-02-19 14:35:38 +08:00
parent 6650521499
commit 6e9feafc63
4 changed files with 44 additions and 2 deletions
+1
View File
@@ -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();
}
+12 -1
View File
@@ -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 {
+20
View File
@@ -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');
};
+11 -1
View File
@@ -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(