official_website/app/admin/view/video/edit.html

543 lines
18 KiB
HTML
Raw Normal View History

2024-12-02 13:57:08 +08:00
{extend name="foxcms_content" /}
{block name="css"}
{/block}
{block name="body"}
<input name="bcid" value="{$bcid}" type="hidden" />
<input name="id" value="{$id}" type="hidden" />
<div class="foxcms-content-inner">
<!-- page content -->
<div class="company-news-add-content">
<div class="foxui-tabs foxui-type-line" id="contentTabs">
<div class="foxui-tabs-header">
<div class="foxui-tabs-item is-active">基本</div>
<div class="foxui-tabs-item">详情</div>
</div>
<div class="foxui-tabs-content">
<div class="foxui-tabs-pane">
<div class="section">
<div class="section-title">基本信息</div>
<div class="section-main">
<div class="display-flex">
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label class="foxui-required">标题:</label>
</div>
<div class="input-box">
<div class="foxui-textarea">
<textarea autocomplete="off" rows="2" maxlength="120" placeholder="" name="title">{$video.title}</textarea>
<span class="foxui-textarea-count">0/120</span>
</div>
</div>
</div>
</div>
<div class="section-main-item second-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label>简略标题:</label>
</div>
<div class="input-box">
<div class="foxui-textarea">
<textarea autocomplete="off" rows="2" maxlength="60" placeholder="" name="brief_title">{$video.brief_title}</textarea>
<span class="foxui-textarea-count">0/60</span>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label>文章属性:</label>
</div>
<div class="article-field">
{foreach $articleFieldList as $key=>$vo }
<div class="foxui-checkbox {if $vo.state == 1} is-checked {/if}">
<span class="foxui-checkbox-input">
<i class="foxui-checkbox-icon"></i>
<input type="checkbox" value="{$vo.tag}" />
</span>
<span class="foxui-checkbox-label">{$vo.text}({$vo.tag})</span>
</div>
{/foreach}
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label class="foxui-required">所属栏目:</label>
</div>
<div class="input-box">
<div class="foxui-select">
<div class="foxui-select-handle foxui-select-icon">
<input class="foxui-select-input foxui-size-small" readonly="readonly" placeholder="请选择所属栏目" data-id="{$video.column_id}" value="{$video.column}" name="column" />
<i class="foxui-icon-close-circle" style="display: none"></i>
</div>
<div class="foxui-select-menu">
<ul class="foxui-select-slide">
{foreach $columns as $key=>$vo }
<li class="foxui-select-item" data-id="{$vo.id}">{$vo.title}</li>
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label>文档标签:</label>
</div>
<div class="input-box">
<div class="foxui-select foxui-select-settable">
<div class="foxui-select-handle">
<input class="foxui-select-input foxui-size-small" placeholder="多个标签之间以逗号隔开" value="{$video.tags}" name="tags"/>
</div>
<div class="foxui-select-menu">
<ul class="foxui-select-slide member-list">
{foreach tagList as $key=>$vo }
<li class="foxui-select-item multiple" data-id="{$vo.name}">{$vo.name}</li>
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label>文章缩略图:</label>
</div>
<div class="input-box">
<div class="foxui-images foxui-images-fluid">
<div class="foxui-images-card breviary_pic">
<ul class="foxui-images-list">
{if $video->breviary_pic_id != "" && $video.img_url != ""}
<li class="foxui-images-item foxui-animate-fadeInDown">
<div class="content">
<img data-id="{$video->breviary_pic_id}" src="{$video.img_url}"/>
<span class="replace">替换</span>
<i class="foxui-icon-cuowu-f delete"></i>
</div>
</li>
{/if}
<div class="foxui-images-handle">
<div class="foxui-images-handle-inner">
<i class="foxui-icon-jiahao-o"></i>
<span class="text">添加图片</span>
</div>
</div>
</ul>
</div>
</div>
</div>
</div>
<p class="input-box-info">图片尺寸建议根据前端网站模板的尺寸制作</p>
</div>
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label>视频文件:</label>
</div>
<div class="input-box">
<div class="foxui-videos foxui-drag" data-count="-1">
<div class="foxui-videos-card videos">
<ul class="foxui-videos-list foxui-drag-container">
{foreach $videos as $key=>$vo}
<li class="foxui-videos-item foxui-animate-fadeInDown">
<div class="content">
<img data-id="{$vo->id}" src="{$vo->pic}" data-url="{$vo->url}">
<span class="duration"></span>
<div class="play">
<i class="foxui-icon-kaishi-f"></i>
</div>
<span class="replace">替换</span>
<i class="foxui-icon-cuowu-f delete"></i>
</div>
<input type="text" class="foxui-videos-title" placeholder="请输入标题" value="{$vo->title}">
</li>
{/foreach}
<div class="foxui-videos-handle">
<div class="foxui-videos-handle-inner">
<i class="foxui-icon-jiahao-o"></i>
<span class="text">添加视频</span>
</div>
</div>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label>SEO关键词</label>
</div>
<div class="input-box">
<input class="foxui-size-small" placeholder="" value="{$video.keywords}" name="keywords"/>
</div>
</div>
<p class="input-box-info">一般不超过100个字符多个关键词请用英文逗号隔开建议3到5个关键词</p>
</div>
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label>SEO描述</label>
</div>
<div class="input-box">
<div class="foxui-textarea">
<textarea autocomplete="off" rows="2" maxlength="200" placeholder="" name="description">{$video.description}</textarea>
<span class="foxui-textarea-count">0/200</span>
</div>
</div>
</div>
<p class="input-box-info">描述一般不超过200个字符不填写时系统自动提取正文的前200个字符</p>
</div>
<div class="display-flex">
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label>文章来源:</label>
</div>
<div class="input-box">
<div class="foxui-select foxui-select-settable" data-title="文章来源" id="article_source">
<div class="foxui-select-handle">
<input class="foxui-select-input foxui-size-small" placeholder="" value="{$video.article_source}" />
<button class="foxui-select-set foxui-size-small foxui-plain">设置</button>
</div>
<div class="foxui-select-menu">
<ul class="foxui-select-slide">
{foreach $articleSources as $key=>$vo }
<li class="foxui-select-item" data-id="{$articleSourceDictCode}">{$vo}</li>
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item second-item">
<div class="foxui-input-group">
<div class="input-label">
<label>作者:</label>
</div>
<div class="input-box">
<div class="foxui-select foxui-select-settable" data-title="作者" id="author">
<div class="foxui-select-handle">
<input class="foxui-select-input foxui-size-small" placeholder="" value="{$video.author}" />
<button class="foxui-select-set foxui-size-small foxui-plain">设置</button>
</div>
<div class="foxui-select-menu">
<ul class="foxui-select-slide">
{foreach $authors as $key=>$vo }
<li class="foxui-select-item" data-id="{$authorDictCode}">{$vo}</li>
{/foreach}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label>发布时间:</label>
</div>
<div class="input-box">
<div class="foxui-picker foxui-datetime-picker">
<div class="foxui-picker-handle foxui-input-prefix">
<i class="foxui-icon-gongzuo-o foxui-prefix-icon"></i>
<input class="foxui-size-small" readonly="readonly" placeholder="请选择时间" value="{$video.release_time|date='Y-m-d H:i'}" name="release_time"/>
</div>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group">
<div class="input-label">
<label>浏览量:</label>
</div>
<div class="input-box">
<input class="foxui-size-small" placeholder="" required="" value="{$video.click}" name="click"/>
</div>
</div>
</div>
<!--动态标签start-->
<div class="field">
<?php echo modelFieldTag('video', $video['id']); ?>
</div>
<!--动态标签end-->
</div>
</div>
</div>
<div class="foxui-tabs-pane">
<div class="section">
<div class="section-title">内容详情</div>
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label>状态:</label>
</div>
<div>
<div class="foxui-checkbox {if $video->statusDown}is-checked{/if}">
<span class="foxui-checkbox-input">
<i class="foxui-checkbox-icon"></i>
<input type="checkbox" value="" checked="checked" name="statusDown"/>
</span>
<span class="foxui-checkbox-label">下载远程图片</span>
</div>
<div class="foxui-checkbox {if $video->statusDel}is-checked{/if}">
<span class="foxui-checkbox-input">
<i class="foxui-checkbox-icon"></i>
<input type="checkbox" value="" name="statusDel"/>
</span>
<span class="foxui-checkbox-label">删除非站内链接</span>
</div>
</div>
</div>
</div>
<div class="section-main-item">
<div class="foxui-input-group foxui-align-items-start">
<div class="input-label">
<label>内容详情:</label>
</div>
<div class="block-box rich-text">
<!-- 富文本 -->
<textarea class="richText" id="initRT">{$video.content}</textarea>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="foxcms-content-footer">
<button class="is-long foxui-size-small foxui-solid-primary next-btn">下一步</button>
<button class="is-long foxui-size-small foxui-plain-primary save-btn">保存</button>
</div>
{include file="footed-copy"/}
{/block}
{block name="js"}
<script>
let $nextBtn = $('.foxcms-content-footer .next-btn'),
$tabsItem = $('#contentTabs .foxui-tabs-item'),
tabsLen = $tabsItem.length;
foxui.tabs.$on(getIndex);
function getIndex(data) {
const { index, id } = data;
if(id === 'contentTabs'){
if (index === tabsLen - 1) {
$nextBtn.hide();
} else {
$nextBtn.show();
}
}
}
$nextBtn.click(function () {
let index = $('#contentTabs .foxui-tabs-item.is-active').index();
$tabsItem.eq(index + 1).click();
});
//设置回调
foxui.select.$off();
foxui.select.$on(getSetData);
function getSetData(data) {
foxui.loading();
$.ajax({
type: "POST",
url: "{:url('saveDict')}",
dataType: "json",
async:false,
data:data,
success: (res)=> {
if (res.code == 1 && res.data) {
let id = data.id;
let liHtml = [];
let dataList = res.data.dataList;
if(dataList.length > 0){
dataList.forEach(item => {
liHtml.push(`<li class="foxui-select-item" data-id="${res.data.id}">${item}</li>`);
});
}
$('#' + id).find(".foxui-select-slide").empty().append(liHtml.join(""));
}else{
foxui.message({
type:"danger",
text:res.msg
})
}
foxui.closeLoading();
},
error: function(res) {
foxui.message({
type:"danger",
text:res.msg
})
foxui.closeLoading();
}
});
}
</script>
<script>
//保存
$('.save-btn').click(function() {
let bcid = $("input[name='bcid']").val();
let id = $("input[name='id']").val();
//文章标题
let title = $('textarea[name="title"]').val();
//简略标题
let brief_title = $('textarea[name="brief_title"]').val();
//文章属性
let articleField = "";
$('.article-field .foxui-checkbox').each(function (){
let isCheck = $(this).is('.is-checked');
if(isCheck){
let af = $(this).find('input[type="checkbox"]').val();
articleField += af + ",";
}
});
if(articleField.length> 0){
articleField = articleField.substr(0, articleField.length -1);
}
//所属栏目
let columnId = $('input[name="column"]').attr('data-id');
//栏目名称
let column = $('input[name="column"]').val();
//文章缩率图
let breviary_pic_id = $('.breviary_pic img').attr('data-id');
//SEO关键词
let keywords = $('input[name="keywords"]').val();
//SEO描述
let description = $('textarea[name="description"]').val();
//文章来源
let article_source = $('#article_source input').val();
//作者
let author = $('#author input').val();
//发布时间
let release_time = $('input[name="release_time"]').val();
//预览量
let click = $('input[name="click"]').val();
//下载远程图片
let statusDown = $('input[name="statusDown"]').closest('.foxui-checkbox').is('.is-checked') ? 'down' : '';
//删除非站内链接
let statusDel = $('input[name="statusDel"]').closest('.foxui-checkbox').is('.is-checked') ? 'del' : '';
//内容
let content = getRTtContent("initRT");
//文档标签
let tags = $('input[name="tags"]').val();
//视频
let itemC = $('.foxui-videos-card.videos').find("ul.foxui-videos-list");
let lis = $(itemC).find('li');
let videos = [];
$.each(lis, function (key, li) {
let videoId = $(li).find("img").attr('data-id');
let url = $(li).find("img").attr('data-url');
let pic = $(li).find("img").attr('src');
let videoTitle = $(li).find("input").val();
videos.push({"id":videoId, "title": videoTitle, "url":url, pic});
});
let videosStr = JSON.stringify(videos);
let datas = {
'id':id,
'title': title,
"brief_title": brief_title,
"article_field": articleField,
"column_id": columnId,
"column": column,
"breviary_pic_id": breviary_pic_id||"",
"keywords": keywords,
"description": description,
"article_source": article_source,
"author": author,
"team_status": statusDown + "," + statusDel,
"content": content,
"release_time":release_time,
"click":click,
tags,
'videos':videosStr
};
//拉取模型属性
let feildUrl = "{:url('Video/getField')}?model=video";
let saveData = getField($(".field"), feildUrl);
let curData = Object.assign(datas, saveData);
foxui.dialog({
title: '保存',
content: '您确定要保存吗',
cancelText: '取消',
confirmText: '保存',
confirm: function(callback) {
foxui.loading({text:"发布中"});
ajaxR("{:url('edit')}","post",curData,{},function(res) {
if (res.code == 1) {
foxui.message({
type: 'success',
text: res.msg
})
if(res.data != ""){
let params = res.data;
if(params.oneId && params.oneId == "key3"){
addDataBuildDetail(params);
singleAllSite(params);
}
foxui.closeLoading();
}
window.location.href=document.referrer;//返回并且刷新
} else {
foxui.message({
type: 'warning',
text: res.msg
})
}
foxui.closeLoading();
},
function(res) {
foxui.message({
type: 'warning',
text: res.responseJSON.msg
})
foxui.closeLoading();
})
callback();
},
cancel: function() {
foxui.message({
type: 'warning',
text: res.msg
})
},
});
})
</script>
{/block}