mirror of
https://github.com/crmeb/CRMEB.git
synced 2025-12-28 14:40:24 +00:00
1 line
22 KiB
PHP
1 line
22 KiB
PHP
{extend name="public/container"}
|
||
{block name="head_top"}
|
||
<link href="{__ADMIN_PATH}plug/umeditor/themes/default/css/umeditor.css" type="text/css" rel="stylesheet">
|
||
<link href="{__ADMIN_PATH}module/wechat/news/css/style.css" type="text/css" rel="stylesheet">
|
||
<link href="{__FRAME_PATH}css/plugins/chosen/chosen.css" rel="stylesheet">
|
||
<script type="text/javascript" src="{__ADMIN_PATH}plug/umeditor/third-party/jquery.min.js"></script>
|
||
<script type="text/javascript" src="{__ADMIN_PATH}plug/umeditor/third-party/template.min.js"></script>
|
||
<script type="text/javascript" charset="utf-8" src="{__ADMIN_PATH}plug/umeditor/umeditor.config.js"></script>
|
||
<script type="text/javascript" charset="utf-8" src="{__ADMIN_PATH}plug/umeditor/umeditor.min.js"></script>
|
||
<script src="{__ADMIN_PATH}frame/js/ajaxfileupload.js"></script>
|
||
<script src="{__ADMIN_PATH}plug/validate/jquery.validate.js"></script>
|
||
<script src="{__FRAME_PATH}js/plugins/chosen/chosen.jquery.js"></script>
|
||
{/block}
|
||
{block name="content"}
|
||
<div class="row" style="width: 100%">
|
||
<div class="col-sm-12">
|
||
<div class="col-sm-2 panel panel-default news-left">
|
||
<div class="panel-heading">文章列表</div>
|
||
<div class="panel-body news-box type-all" >
|
||
{if condition="$news['image_input']"}
|
||
<div class="news-item transition active news-image" style="margin-bottom: 20px;background-image:url({$news['image_input']})">
|
||
{else/}
|
||
<div class="news-item transition active news-image" style="margin-bottom: 20px;background-image:url('/public/system/module/wechat/news/images/image.png')">
|
||
{/if}
|
||
<input type="hidden" name="new_id" value="{$news.id}" class="new-id">
|
||
</div>
|
||
</div>
|
||
</div><!-- col-sm-10 panel panel-default news-right -->
|
||
<div class="col-sm-12 panel panel-default" >
|
||
<div class="panel-heading">文章内容编辑</div>
|
||
<div class="panel-body">
|
||
<form class="form-horizontal" id="signupForm">
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<div class="input-group">
|
||
<span class="input-group-addon">标题</span>
|
||
<input maxlength="64" placeholder="请在这里输入标题" name="title" class="layui-input" id="title" value="{$news.title}">
|
||
<input type="hidden" name="id" value="{$news.id}">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<div class="input-group">
|
||
<span class="input-group-addon">作者</span>
|
||
<input maxlength="8" placeholder="请输入作者" name="author" class="layui-input" id="author" value="{$news.author}">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<div class="input-group">
|
||
<span class="input-group-addon">文章分类</span>
|
||
<?php if(empty($all)){?>
|
||
<select data-placeholder="请先添加文章分类" class="chosen-select" multiple style="width:100%;" tabindex="4" name="type_id">
|
||
<?php }else{ ?>
|
||
<select data-placeholder="选择文章分类" class="chosen-select" multiple style="width:100%;" tabindex="4" name="type_id" {eq name="$select" value="1"}disabled="disabled"{/eq}>
|
||
<?php }?>
|
||
{volist name="all" id="vo" key="k"}
|
||
{if condition="$key eq $cid"}
|
||
<option value="{$key}" selected hassubinfo="true" >{$vo}</option>
|
||
{elseif condition="in_array($key,$news['cid'])"}
|
||
<option value="{$key}" selected hassubinfo="true" >{$vo}</option>
|
||
{else/}
|
||
<option value="{$key}" hassubinfo="true" >{$vo}</option>
|
||
{/if}
|
||
{/volist}
|
||
</select></div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<div class="form-control" style="height:auto">
|
||
<label style="color:#ccc">图文封面大图片设置</label>
|
||
<div class="row nowrap">
|
||
<div class="col-xs-3" style="width:160px">
|
||
{if condition="$news['image_input']"}
|
||
<div class="upload-image-box transition image_img" style="height: 80px;background-repeat:no-repeat;background-size:contain;background-image:url({$news['image_input']})">
|
||
<input value="" type="hidden" name="local_url">
|
||
</div>
|
||
{else/}
|
||
<div class="upload-image-box transition image_img" style="height: 80px;background-repeat:no-repeat;background-size:contain;background-image:url('/public/system/module/wechat/news/images/image.png')">
|
||
<input value="" type="hidden" name="local_url">
|
||
</div>
|
||
{/if}
|
||
</div>
|
||
<div class="col-xs-6">
|
||
<input type="file" class="upload" name="image" style="display: none;" id="image" />
|
||
<br>
|
||
<a class="btn btn-sm add_image upload_span">上传图片</a>
|
||
<br>
|
||
<br>
|
||
</div>
|
||
</div>
|
||
<input type="hidden" name="image" id="image_input" value="{$news['image_input']}"/>
|
||
<p class="help-block" style="margin-top:10px;color:#ccc">封面大图片建议尺寸:900像素 * 500像素</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<label style="color:#aaa">文章内容</label>
|
||
<textarea type="text/plain" id="myEditor" style="width:100%;">{$news['content']}</textarea>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<div class="col-md-6">
|
||
<label style="color:#aaa">是否显示banner</label>
|
||
<br/>
|
||
<input type="radio" name="is_banner" class="layui-radio" value="0" {eq name="news['is_banner']" value="0"}checked{/eq}>否
|
||
<input type="radio" name="is_banner" class="layui-radio" value="1" {eq name="news['is_banner']" value="1"}checked{/eq}>是
|
||
</div>
|
||
<div class="col-md-6">
|
||
<label style="color:#aaa">是否显示热门</label>
|
||
<br/>
|
||
<input type="radio" name="is_hot" class="layui-radio" value="0" {eq name="news['is_hot']" value="0"}checked{/eq}>否
|
||
<input type="radio" name="is_hot" class="layui-radio" value="1" {eq name="news['is_hot']" value="1"}checked{/eq}>是
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<label style="color:#aaa">文章简介</label>
|
||
<textarea id="synopsis" name="synopsis" class="layui-input" style="height:80px;resize:none;line-height:20px">{$news.synopsis}</textarea>
|
||
</div>
|
||
</div>
|
||
<div class="form-group">
|
||
<div class="col-md-12">
|
||
<label style="display:block"><span style="color:#aaa;">原文链接<b>选填</b>,填写之后在图文左下方会出现此链接</span>
|
||
<input maxlength="200" name="url" class="layui-input" id="url" value="{$news.url}">
|
||
</label>
|
||
</div>
|
||
</div>
|
||
<div class="form-actions">
|
||
<div class="row">
|
||
<div class="col-md-offset-4 col-md-9">
|
||
<button type="button" class="btn btn-w-m btn-info save_news">保存</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{/block}
|
||
{block name="script"}
|
||
<script>
|
||
var editor = document.getElementById('myEditor');
|
||
editor.style.height = '300px';
|
||
//实例化编辑器
|
||
var um = UM.getEditor('myEditor',{
|
||
// fullscreen:true
|
||
});
|
||
/**
|
||
* 获取编辑器内的内容
|
||
* */
|
||
function getContent() {
|
||
return (UM.getEditor('myEditor').getContent());
|
||
}
|
||
function hasContent() {
|
||
return (UM.getEditor('myEditor').hasContents());
|
||
}
|
||
function createFrame(title,src,opt){
|
||
opt === undefined && (opt = {});
|
||
return layer.open({
|
||
type: 2,
|
||
title:title,
|
||
area: [(opt.w || 700)+'px', (opt.h || 650)+'px'],
|
||
fixed: false, //不固定
|
||
maxmin: true,
|
||
moveOut:false,//true 可以拖出窗外 false 只能在窗内拖
|
||
anim:5,//出场动画 isOutAnim bool 关闭动画
|
||
offset:'auto',//['100px','100px'],//'auto',//初始位置 ['100px','100px'] t[ 上 左]
|
||
shade:0,//遮罩
|
||
resize:true,//是否允许拉伸
|
||
content: src,//内容
|
||
move:'.layui-layer-title'
|
||
});
|
||
}
|
||
function changeIMG(index,pic){
|
||
$(".image_img").css('background-image',"url("+pic+")");
|
||
$(".active").css('background-image',"url("+pic+")");
|
||
$('#image_input').val(pic);
|
||
};
|
||
/**
|
||
* 上传图片
|
||
* */
|
||
$('.upload_span').on('click',function (e) {
|
||
// $('.upload').trigger('click');
|
||
createFrame('选择图片','{:Url('widget.images/index')}?fodder=image');
|
||
})
|
||
/**
|
||
* 触发图片上传按钮
|
||
* */
|
||
$('.upload').on('change',function (e) {
|
||
var image = $('#image_input').val();
|
||
if(image != ''){
|
||
url = "{:Url('Common/rmPublicResource')}";
|
||
$.ajax({
|
||
url:url,
|
||
data:'url='+image,
|
||
type:'get',
|
||
success:function (re) {
|
||
if(re.code == 200){
|
||
$eb.message('success',re.msg);
|
||
}else{
|
||
$eb.message('error',re.msg);
|
||
}
|
||
}
|
||
})
|
||
}
|
||
ajaxFileUpload(this);
|
||
})
|
||
/**
|
||
* 图片上传
|
||
* */
|
||
function ajaxFileUpload(is) {
|
||
$.ajaxFileUpload({
|
||
url: "{:url('upload_image')}",
|
||
data:{file: 'image'},
|
||
type: 'post',
|
||
secureuri: false, //一般设置为false
|
||
fileElementId: 'image', // 上传文件的id、name属性名
|
||
dataType: 'json', //返回值类型,一般设置为json、application/json
|
||
success: function(data, status, e){
|
||
if(typeof (data.responseText) == 'string'){
|
||
data.responseText = JSON.parse(data.responseText);
|
||
if(data.responseText.code == 200){
|
||
$(".image_img").css('background-image',"url("+data.responseText.data.url+")");
|
||
$(".active").css('background-image',"url("+data.responseText.data.url+")");
|
||
$('#image_input').val(data.responseText.data.url);
|
||
$eb.message('success',data.responseText.msg);
|
||
}else{
|
||
$eb.message('error',data.responseText.msg);
|
||
}
|
||
}else{
|
||
if(data.code == 200){
|
||
$(".image_img").css('background-image',"url("+data.data.url+")");
|
||
$(".active").css('background-image',"url("+data.data.url+")");
|
||
$('#image_input').val(data.data.url);
|
||
$eb.message('success',data.msg);
|
||
}else{
|
||
$eb.message('error',data.msg);
|
||
}
|
||
}
|
||
$('.upload').on('change',function(){
|
||
var image = $('#image_input').val();
|
||
if(image != ''){
|
||
url = "{:Url('Common/rmPublicResource')}";
|
||
$.ajax({
|
||
url:url,
|
||
data:'url='+image,
|
||
type:'get',
|
||
success:function (re) {
|
||
if(re.code == 200){
|
||
$eb.message('success',re.msg);
|
||
}else{
|
||
$eb.message('error',re.msg);
|
||
}
|
||
}
|
||
})
|
||
}
|
||
ajaxFileUpload(this);
|
||
})
|
||
},
|
||
error: function(data, status, e){
|
||
if(typeof (data.responseText) == 'string'){
|
||
data.responseText = JSON.parse(data.responseText);
|
||
if(data.responseText.code == 200){
|
||
$(".image_img").css('background-image',"url("+data.responseText.data.url+")");
|
||
$(".active").css('background-image',"url("+data.responseText.data.url+")");
|
||
$('#image_input').val(data.responseText.data.url);
|
||
$eb.message('success',data.responseText.msg);
|
||
}else{
|
||
$eb.message('error',data.responseText.msg);
|
||
}
|
||
}else{
|
||
if(data.code == 200){
|
||
$(".image_img").css('background-image',"url("+data.data.url+")");
|
||
$(".active").css('background-image',"url("+data.data.url+")");
|
||
$('#image_input').val(data.data.url);
|
||
$eb.message('success',data.msg);
|
||
}else{
|
||
$eb.message('error',data.msg);
|
||
}
|
||
}
|
||
$('.upload').on('change',function(){
|
||
var image = $('#image_input').val();
|
||
if(image != ''){
|
||
url = "{:Url('Common/rmPublicResource')}";
|
||
$.ajax({
|
||
url:url,
|
||
data:'url='+image,
|
||
type:'get',
|
||
success:function (re) {
|
||
if(re.code == 200){
|
||
$eb.message('success',re.msg);
|
||
}else{
|
||
$eb.message('error',re.msg);
|
||
}
|
||
}
|
||
})
|
||
}
|
||
ajaxFileUpload(this);
|
||
})
|
||
}
|
||
});
|
||
}
|
||
/**
|
||
* 提交图文
|
||
* */
|
||
$('.save_news').on('click',function(){
|
||
var list = {};
|
||
list.title = $('#title').val();/* 标题 */
|
||
list.author = $('#author').val();/* 作者 */
|
||
list.image_input = $('#image_input').val();/* 图片 */
|
||
list.content = getContent();/* 内容 */
|
||
list.synopsis = $('#synopsis').val();/* 简介 */
|
||
list.url = $('#url').val();/* 原文链接 */
|
||
list.cid = $('.chosen-select').val();
|
||
list.is_hot = $("input[name='is_hot']:checked").val();
|
||
list.is_banner = $("input[name='is_banner']:checked").val();
|
||
var Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;
|
||
var objExp=new RegExp(Expression);
|
||
if(list.title == ''){
|
||
$eb.message('error','请输入标题');
|
||
return false;
|
||
}
|
||
if(list.author == ''){
|
||
$eb.message('error','请输入作者');
|
||
return false;
|
||
}
|
||
if(list.image_input == ''){
|
||
$eb.message('error','请添加图片');
|
||
return false;
|
||
}
|
||
if(list.content == ''){
|
||
$eb.message('error','请输入内容');
|
||
return false;
|
||
}
|
||
if(list.synopsis == ''){
|
||
$eb.message('error','请输入简介');
|
||
return false;
|
||
}if(list.url != ''){
|
||
if(objExp.test(list.url) != true){
|
||
$eb.message('error','网址格式不正确!请重新输入');
|
||
return false;
|
||
}
|
||
}
|
||
var id = $('.type-all>.active>.new-id').val();
|
||
if(id != ''){
|
||
list.id = id;
|
||
}
|
||
var data = {};
|
||
$.ajax({
|
||
url:"{:Url('add_new')}",
|
||
data:list,
|
||
type:'post',
|
||
dataType:'json',
|
||
success:function(re){
|
||
if(re.code == 200){
|
||
data[re.data] = list;
|
||
$('.type-all>.active>.new-id').val(re.data);
|
||
$eb.message('success',re.msg);
|
||
setTimeout(function (e) {
|
||
window.history.go(-1);
|
||
},600)
|
||
}else{
|
||
$eb.message('error',re.msg);
|
||
}
|
||
}
|
||
})
|
||
});
|
||
$('.article-add ').on('click',function (e) {
|
||
var num_div = $('.type-all').children('div').length;
|
||
if(num_div > 7){
|
||
$eb.message('error','一组图文消息最多可以添加8个');
|
||
return false;
|
||
}
|
||
var url = "/public/system/module/wechat/news/images/image.png";
|
||
html = '';
|
||
html += '<div class="news-item transition active news-image" style=" margin-bottom: 20px;background-image:url('+url+')">'
|
||
html += '<input type="hidden" name="new_id" value="" class="new-id">';
|
||
html += '<span class="news-title del-news">x</span>';
|
||
html += '</div>';
|
||
$(this).siblings().removeClass("active");
|
||
$(this).before(html);
|
||
})
|
||
$(document).on("click",".del-news",function(){
|
||
$(this).parent().remove();
|
||
})
|
||
$(document).ready(function() {
|
||
var config = {
|
||
".chosen-select": {},
|
||
".chosen-select-deselect": {allow_single_deselect: true},
|
||
".chosen-select-no-single": {disable_search_threshold: 10},
|
||
".chosen-select-no-results": {no_results_text: "沒有找到你要搜索的分类"},
|
||
".chosen-select-width": {width: "95%"}
|
||
};
|
||
for (var selector in config) {
|
||
$(selector).chosen(config[selector])
|
||
}
|
||
})
|
||
</script>
|
||
{/block}
|