layui时间,table,大图查看,弹出框,获取音频长度,文件上传
1.引入:
<link href="../../Scripts/layui-v2.3.0/css/layui.css" rel="stylesheet" media="all" />
<script src="layui.js" type="text/javascript" charset="utf-8"></script>
layui.use(['table', 'laydate', 'layer', 'formSelects'], function () {
var laydate = layui.laydate; //http://www.layui.com/demo/laydate.html
//1.时间弹框
laydate.render({
elem: '#test1'
}); //http://www.layui.com/demo/table.html
//2.table
//渲染table
var table = layui.table;
var modelObj = {};
var modelFieldsArray = $('#SearchCondition').serializeArray();
$.each(modelFieldsArray, function () {
modelObj[this.name] = this.value;
});
var modelStr = JSON.stringify(modelObj); var requestModel = {};
requestModel.method = "GetBlogList";
requestModel.modelstr = modelStr; table.render({
elem: '#test'
, url: '../../ServiceCenter/Handler/BlogHandler.ashx'
, method: 'post'
, where: requestModel
, id: 'idTest'
, page: {
layout: ['limit', 'count', 'prev', 'page', 'next', 'skip']
, limits: [10, 30, 50]
, theme: '#FF5722'
, first: '首页'
, last: '尾页'
, prev: '上一页'
, next: '下一页'
}
, cols: [[
//{ type: 'checkbox' },
{ field: 'Id', title: 'ID', sort: true }
, { field: 'UserId', title: '智驾号' }
, { field: 'LikeCount', title: '点赞数量', sort: true }
, { field: 'CommentCount', title: '评论数量', sort: true }
, { field: 'TopNo', title: '置顶号' }
, { field: 'BlogType', width: 135, title: '日志类型', sort: true }
, { field: 'CategoryName', width: 135, title: '日志类别', sort: true }
//, { field: 'text', title: '日志内容' }
, { field: 'AddTime', width: 190, title: '发布时间', sort: true }
, { toolbar: '#barDemo', width: 200, title: '操作' }
]]
, done: function (res, curr, count) {
//$("[data-field='Id']").css('display', 'none');
} }) <table class="layui-hide" id="test" lay-filter="demo"></table>
<script type="text/html" id="barDemo">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script> //3.监听工具条
table.on('tool(demo)', function (obj) {//obj为记录对象
if (obj.event === 'detail') {
$.ajax({
type: "Get",
url: "../../ServiceCenter/Handler/BlogHandler.ashx",
dataType: "json",
data: { BlogId: obj.data.Id, method: "GetBlogById" },
success: function (rep) {
if (rep.code == 0) { //4.弹框http://layer.layui.com/
layer.open({
type: 1 //此处以iframe举例
, title: '日志详细'
, area: ['1000px', '600px']
//, area: ['1000px']
, shade: 0.3
//, shadeClose: true
, maxmin: true
, content: $('#blogdetail')
, cancel: function () {
//右上角关闭回调
}
, success: function (layero, index) {
$("#blogId").val(rep.data[0].Id);
$("#blogUserId").html(rep.data[0].UserId);
$("#blogblogStatus").html(rep.data[0].blogStatus);
$("#blogLikeCount").html(rep.data[0].LikeCount);
$("#blogCommentCount").html(rep.data[0].CommentCount);
$("#blogTopNo").html(rep.data[0].TopNo);
$("#blogBlogType").html(rep.data[0].BlogType);
$("#blogCategoryName").html(rep.data[0].CategoryName);
$("#blogAddTime").html(rep.data[0].AddTime);
var contentObj = JSON.parse(rep.data[0].Content);
$("#blogText").html(contentObj.text);
if (contentObj.medias == undefined) {
return;
}
if (contentObj.medias[0].type == 1) {
var blogimgs = {
list: contentObj.medias
};
$("#blogimgs").html(juicer($("#blogimgsTemplate").html(), blogimgs));
$("#tr_imgs").css("display", "table-row"); //http://layer.layui.com/
//5.照片展示
layer.photos({
photos: '#blogimgs'
, anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数)
});
}
else {
if (!(contentObj.medias[0].thumbnail == undefined)) {
aliplayMng.aliPlayer._options.cover = contentObj.medias[0].thumbnail;
}
aliplayMng.aliPlayer._options.source = contentObj.medias[0].original;
//aliplayMng.createAliPlayer(contentObj.medias[0].original);
$("#tr_video").css("display", "table-row");
}
}
, btn: ['关闭'] //
, yes: function (index) {
var tmpindex = layer.index;
layer.close(index); $("#tr_imgs").css("display", "none");
$("#tr_video").css("display", "none");
}
});
}
else {
console.log(rep.code + ":" + rep.msg);
} }
}); }
}); <div class="" id="blogimgs">
<!--<img layer-src="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1670661812,826118626&fm=27&gp=0.jpg" src="https://gw.alicdn.com/bao/uploaded/i2/701696736/TB2PNl5ahQa61Bjy0FhXXaalFXa_!!701696736.jpg_400x400q90.jpg?t=1530671829407">-->
</div> //6.文件上传: layui.use(['jquery', 'layer', 'upload', 'formSelects'], function () {
//http://www.layui.com/demo/upload.html
var $ = layui.$;
var upload = layui.upload; var uploadInst = upload.render({
elem: '#' + uploadBtnId
, url: '../../ServiceCenter/Handler/UploadHandler.ashx'
, data: requestModel
, accept: acceptFileType || 'file'
, before: function (obj) {
//预读本地文件示例,不支持ie8
obj.preview(function (index, file, result) {
$('#' + showImgId).attr('src', result); //图片链接(base64)
if (isMusic) {
musicApp.commonKit.upLoadMng.upLoadMusicCompleted = false;
var myVid = $('#' + showImgId)[0]; //获取音频时间
if (myVid != null) {
var duration;
myVid.load();
myVid.oncanplay = function () {
console.log("myVid.duration", myVid.duration);
beforecallback(myVid.duration);
}
}
}
else {
musicApp.commonKit.upLoadMng.upLoadCompleted = false;
}
}); }
, done: function (res) {
//console.log(res.data.fileUrl);
if (isMusic)
{
musicApp.commonKit.upLoadMng.upLoadMusicCompleted = true;
}
else {
musicApp.commonKit.upLoadMng.upLoadCompleted = true;
}
aftercallback(res.data.fileUrl);
}
, error: function () {
musicApp.commonKit.upLoadMng.upLoadCompleted = false;
console.log("上传失败!");
}
}); <button type="button" class="layui-btn" id="uploadMudicCategoryImgBtn">上传图片</button>
<div class="layui-upload-list">
<img id="musicCategoryImg" class="layui-upload-img musicItemImg">
<input id="musicCategoryImgUrl" type="text" name="ImgUrl" lay-verify="title" value="https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=1670661812,826118626&fm=27&gp=0.jpg" autocomplete="off" placeholder="" class="layui-input displayNone">
</div> public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
string method = context.Request.Params["method"];
switch (method)
{
case "UploadFile":
this.UploadFile(context);
break;
default:
break;
} context.Response.End();
} private void UploadFile(HttpContext context)
{
var httpRequest = context.Request;
var identity = GetSTSInfo();
if (identity != null)
{
var identitySTS = new
{
AccessKeyId = identity.AccessKeyId,
AccessKeySecret = identity.AccessKeySecret,
AccessSecurityToken = identity.AccessSecurityToken,
Expire = identity.Expire,
Endpoint = identity.Endpoint,
Bucket = identity.Bucket,
FileUrl = identity.FilePath
};
var client = new OssClient(identity.Endpoint, identity.AccessKeyId, identity.AccessKeySecret, identity.AccessSecurityToken);
if (httpRequest.Files.Count > 0)
{
try
{
string url = string.Empty;
var postedFile = httpRequest.Files[httpRequest.Files.AllKeys[0]]; Stream imageStream = postedFile.InputStream;//建立流对象
var type = Path.GetExtension(postedFile.FileName);//取得文件扩展名
var key = identity.FilePath + "/" + Guid.NewGuid() + type;
client.PutObject(identity.Bucket, key, imageStream);
var fileUrl = new
{
fileUrl = "http://" + identity.Bucket + "." + identity.Endpoint + "/" + key
};
var result = new { code = 0, msg = "上传文件到OSS成功:", data = fileUrl };
HttpContext.Current.Response.Write(JsonConvert.SerializeObject(result));
}
catch (Exception ex)
{
LogWriter.ToError("上传文件到OSS失败");
var result = new { code = -1, msg = "上传文件到OSS失败:" + ex.Message, data = "" };
HttpContext.Current.Response.Write(JsonConvert.SerializeObject(result));
}
}
}
else
{
LogWriter.ToError("获取STS服务失败");
var result = new { code = -1, msg = "获取STS失败", data = "" };
HttpContext.Current.Response.Write(JsonConvert.SerializeObject(result));
}
}
})
layui时间,table,大图查看,弹出框,获取音频长度,文件上传的更多相关文章
- Visual Studio 打开解决方案后 弹出框显示 "正在打开文件..." 迟迟没反应 的解决方法
Visual Studio 打开解决方案后 弹出框显示 "正在打开文件...",任务管理器的devenv进程又很正常,不会显示"未响应". 而IDE的左下角有个 ...
- layui layer.open弹出框获取不了 input框的值
layer.open({ title:'添加管理员', type: 1, content: $('.add_html').html(), btn:['添加', '取消'], btnAlign:'c', ...
- 利用layui前端框架实现对不同文件夹的多文件上传
利用layui前端框架实现对不同文件夹的多文件上传 问题场景: 普通的input标签实现多文件上传时,只能对同一个文件夹下的多个文件进行上传,如果要同时上传两个或多个文件夹下的文件,是无法实现的.这篇 ...
- 利用BootStrap Table插件实现自己的弹出框分页。
参考链接1: 官网:http://bootstrap-table.wenzhixin.net.cn/zh-cn/home/ 开始使用:http://bootstrap-table. ...
- 自设table表格,获取内容,并经弹出框的url传参,获取结果显示在弹出框,并加载合计
table表格,选择框 form id="editForm1"> <table class="table_form"> <td > ...
- echart 时间轴、以及y轴值过大但是变化不大显示感觉不出变化的问题+弹出框拖动div事件
1.时间轴 echart 提供了一种图表,如果x轴是一个时间范围,并且是连续的,如果用传统的数据驱动会很慢,所以用时间轴的方式 function initCurve(_data){ var resul ...
- Layui 好用的弹出框
layui的下载地址: http://www.layui.com/ 需要引用layui里面的css跟js layui自带jquery var $ = layui.$ 一个直接弹出另一个窗体的弹出框 w ...
- layui弹出框打开第二次select内容无法显示问题
今天, 在使用layui弹出框的时候, 第一次进入select内容加载是正常的, 将弹出框关闭再次进入后select下拉框内容为空, 经排查是因为每次弹出窗口z-index都会改变, 弹出框的z-in ...
- 关于Layer弹出框初探
layer至今仍作为layui的代表作,她的受众广泛并非偶然,而是这五年多的坚持,不断完善和维护.不断建设和提升社区服务,使得猿们纷纷自发传播,乃至于成为今天的Layui最强劲的源动力.目前,laye ...
随机推荐
- C/C++预定义宏
编译器识别预定义的 ANSI/ISO C99 C 预处理宏,Microsoft C++ 实现将提供更多宏.这些预处理器宏不带参数,并且不能重新定义. ANSI 兼容的预定义宏 __FILE__,__L ...
- php preg正则表达式
Note: 反斜线在单引号字符串和双引号字符串 中都有特殊含义,因此要匹配一个反斜线, 模式中必须写为 ”\\\\”. 译注: “/\\/”, 首先它作为字符串,反斜线会进行转义, 那么转义后的结果是 ...
- 异常处理:1215 - Cannot add foreign key constraint
最近在做新生入学系统,学生表中包括新生的班级,专业等信息,班级,专业就需要和班级表,专业表进行关联,但是在添加外键的过程中却出现了“Cannot add foreign key constraint” ...
- How do I add elements to a Scala List?
Scala List FAQ: How do I add elements to a Scala List? This is actually a trick question, because yo ...
- 請問 localtime() 為什麼不會造成 memory leak?
http://www.programmer-club.com.tw/ShowSameTitleN/vc/22380.html ************************************* ...
- 第一个struts程序的配置过程
然后输入project-name,比如说“test",点finish,配置web.xml,这里的org.apache.struts.action.ActionServlet就在struts- ...
- LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解
题目: Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from lef ...
- 【转】Visual Studio常用快捷键
Shift+Alt+Enter: 切换全屏编辑 Ctrl+B,T / Ctrl+K,K: 切换书签开关 Ctrl+B,N / Ctrl+K,N: 移动到下一书签 Ctrl+B,P: 移动到上一书签 ...
- 轻松学习之Linux教程二 一览纵山小:Linux操作系统具体解释
本系列文章由@uid=hpw" style="padding:0px; margin:0px; color:rgb(255,0,0); text-decoration:none&q ...
- rails中render 和 redirect_to的区别, each只能用在数组中,如果只有一个或者零个项,用each方法会报错undefined method `each' for #...
在render中,即使有:action,那么也仅仅是取对应的view中的模板(html.erb)而已,所以这里即使浏览器中的url是/orders/xcreate,但是显示的界面是/app/views ...