123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- /**
- @Name: 案例
- */
-
- layui.define(['laypage', 'fly'], function(exports){
- var $ = layui.jquery;
- var layer = layui.layer;
- var util = layui.util;
- var laytpl = layui.laytpl;
- var form = layui.form;
- var laypage = layui.laypage;
- var upload = layui.upload;
- var fly = layui.fly;
- var device = layui.device();
-
- //求解管理
- var active = {
- //提交案例
- push: function(div){
- layer.open({
- type: 1
- ,id: 'LAY_pushcase'
- ,title: '提交案例'
- ,area: (device.ios || device.android) ? ($(window).width() + 'px') : '660px'
- ,content: ['<ul class="layui-form" style="margin: 20px;">'
- ,'<li class="layui-form-item">'
- ,'<label class="layui-form-label">案例名称</label>'
- ,'<div class="layui-input-block">'
- ,'<input required name="title" lay-verify="required" placeholder="一般为网站名称" value="" class="layui-input">'
- ,'</div>'
- ,'</li>'
- ,'<li class="layui-form-item">'
- ,'<label class="layui-form-label">案例网址</label>'
- ,'<div class="layui-input-block">'
- ,'<input required name="link" lay-verify="url" placeholder="必须是自己或自己参与过的项目" value="" class="layui-input">'
- ,'</div>'
- ,'</li>'
- ,'<li class="layui-form-item layui-form-text">'
- ,'<label class="layui-form-label">案例描述</label>'
- ,'<div class="layui-input-block layui-form-text">'
- ,'<textarea required name="desc" lay-verify="required" autocomplete="off" placeholder="大致介绍你的项目,也可以阐述你在该项目中使用 layui 的感受\n10-60个字" class="layui-textarea"></textarea>'
- ,'</div>'
- ,'</li>'
- ,'<li class="layui-form-item">'
- ,'<label class="layui-form-label">案例封面</label>'
- ,'<div class="layui-input-inline" style="width:auto;">'
- ,'<input type="hidden" name="cover" lay-verify="required" class="layui-input fly-case-image">'
- ,'<button type="button" class="layui-btn layui-btn-primary" id="caseUpload">'
- ,'<i class="layui-icon"></i>上传图片'
- ,'</button>'
- ,'</div>'
- ,'<div class="layui-form-mid layui-word-aux" id="preview">推荐尺寸:478*300,大小不能超过 30kb</div>'
- ,'</li>'
- ,'<li class="layui-form-item">'
- ,'<label class="layui-form-label"> </label>'
- ,'<div class="layui-input-block">'
- ,'<input type="checkbox" name="agree" id="agree" title="我同意(如果你进行了刷赞行为,你的案例将被立马剔除)" lay-skin="primary">'
- ,'</div>'
- ,'</li>'
- ,'<li class="layui-form-item">'
- ,'<div class="layui-input-block">'
- ,'<button type="button" lay-submit lay-filter="pushCase" class="layui-btn">提交案例</button>'
- ,'</div>'
- ,'</li>'
- ,'</ul>'].join('')
- ,success: function(layero, index){
- var image = layero.find('.fly-case-image')
- ,preview = $('#preview');
-
- upload.render({
- url: '/api/upload/case/'
- ,elem: '#caseUpload'
- ,size: 30
- ,done: function(res){
- if(res.status == 0){
- image.val(res.url);
- preview.html('<a href="'+ res.url +'" target="_blank" style="color: #5FB878;">封面已上传,点击可预览</a>');
- } else {
- layer.msg(res.msg, {icon: 5});
- }
- }
- });
- form.render('checkbox').on('submit(pushCase)', function(data){
- if(!data.field.agree){
- return layer.tips('你需要同意才能提交', $('#agree').next(), {tips: 1});
- }
- fly.json('/case/push/', data.field, function(res){
- layer.close(index);
- layer.alert(res.msg, {
- icon: 1
- })
- });
- });
- }
- });
- }
-
- //点赞
- ,praise: function(othis){
- var li = othis.parents('li')
- ,PRIMARY = 'layui-btn-primary'
- ,unpraise = !othis.hasClass(PRIMARY)
- ,numElem = li.find('.fly-case-nums')
- fly.json('/case/praise/', {
- id: li.data('id')
- ,unpraise: unpraise ? true : null
- }, function(res){
- numElem.html(res.praise);
- if(unpraise){
- othis.addClass(PRIMARY).html('点赞');
- layer.tips('少了个赞囖', numElem, {
- tips: 1
- });
- } else {
- othis.removeClass(PRIMARY).html('已赞');
- layer.tips('成功获得个赞', numElem, {
- tips: [1, '#FF5722']
- });
- }
- });
- }
- //查看点赞用户
- ,showPraise: function(othis){
- var li = othis.parents('li');
- if(othis.html() == 0) return layer.tips('该项目还没有收到赞', othis, {
- tips: 1
- });
- fly.json('/case/praise_user/', {
- id: li.data('id')
- }, function(res){
- var html = '';
- layer.open({
- type: 1
- ,title: '项目【'+ res.title + '】获得的赞'
- ,id: 'LAY_showPraise'
- ,shade: 0.8
- ,shadeClose: true
- ,area: '305px'
- ,skin: 'layer-ext-case'
- ,content: function(){
- layui.each(res.data, function(_, item){
- html += '<li><a href="/u/'+ 168*item.id +'/" target="_blank" title="'+ item.username +'"><img src="'+ item.avatar +'"></a></li>'
- });
- return '<ul class="layer-ext-ul">' + html + '</ul>';
- }()
- })
- });
- }
- };
- $('body').on('click', '.fly-case-active', function(){
- var othis = $(this), type = othis.data('type');
- active[type] && active[type].call(this, othis);
- });
- exports('case', {});
- });
|