You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
409 lines
14 KiB
409 lines
14 KiB
/**
|
|
|
|
@Name: 用户模块
|
|
|
|
*/
|
|
|
|
layui.define(['laypage', 'fly', 'element', 'flow'], 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 fly = layui.fly;
|
|
var flow = layui.flow;
|
|
var element = layui.element;
|
|
var upload = layui.upload;
|
|
|
|
var gather = {}, dom = {
|
|
mine: $('#LAY_mine')
|
|
, mineview: $('.mine-view')
|
|
, minemsg: $('#LAY_minemsg')
|
|
, infobtn: $('#LAY_btninfo')
|
|
};
|
|
//登录
|
|
form.on('submit(login)', function (data) {
|
|
var action = $(data.form).attr('action');
|
|
fly.json(action, data.field, function (res) {
|
|
if (res.code > 0) {
|
|
layer.msg(res.msg, {icon: 1, time: 1000}, function () {
|
|
window.location.href = res.url;
|
|
});
|
|
} else {
|
|
re_captcha();
|
|
layer.msg(res.msg, {time: 1000, icon: 2});
|
|
}
|
|
});
|
|
return false;
|
|
});
|
|
//发邮件
|
|
$('#sentEmail').click(function () {
|
|
var email = $('#L_email').val();
|
|
var loading = layer.load(1, {shade: [0.1, '#fff']});
|
|
$.post("/user/login/sendEmail",{email:email},function(res){
|
|
layer.close(loading);
|
|
if(res.code > 0){
|
|
layer.msg(res.msg,{time:1000,icon:1});
|
|
}else{
|
|
layer.msg(res.msg,{time:1000,icon:2});
|
|
}
|
|
});
|
|
return false;
|
|
});
|
|
|
|
//根据ip获取城市
|
|
form.on('select(province)', function(data){
|
|
$.getScript('/user/set/getRegion.html?pid='+data.value, function (res) {
|
|
var html = '<option value="">请选择市</option>';
|
|
$.each($.parseJSON(res), function (i, value) {
|
|
html += '<option value="' + value.id + '">' + value.name + '</option>';
|
|
});
|
|
$('#city').html(html);
|
|
$('#area').html('<option value="">请选择县/区</option>');
|
|
form.render()
|
|
});
|
|
});
|
|
form.on('select(city)', function(data){
|
|
$.getScript('/user/set/getRegion.html?pid='+data.value, function (res) {
|
|
var html = '<option value="">请选择区</option>';
|
|
$.each($.parseJSON(res), function (i, value) {
|
|
html += '<option value="' + value.id + '">' + value.name + '</option>';
|
|
});
|
|
$('#area').html(html);
|
|
form.render()
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
//我的相关数据
|
|
var elemUC = $('#LAY_uc'), elemUCM = $('#LAY_ucm');
|
|
gather.minelog = {};
|
|
gather.mine = function (index, type, url) {
|
|
var tpl = [
|
|
//求解
|
|
'{{# for(var i = 0; i < d.rows.length; i++){ }}\
|
|
<li>\
|
|
{{# if(d.rows[i].collection_time){ }}\
|
|
<a class="jie-title" href="/jie/{{d.rows[i].id}}/" target="_blank">{{= d.rows[i].title}}</a>\
|
|
<i>{{ d.rows[i].collection_time }} 收藏</i>\
|
|
{{# } else { }}\
|
|
{{# if(d.rows[i].status == 1){ }}\
|
|
<span class="fly-jing layui-hide-xs">精</span>\
|
|
{{# } }}\
|
|
{{# if(d.rows[i].accept >= 0){ }}\
|
|
<span class="jie-status jie-status-ok">已结</span>\
|
|
{{# } else { }}\
|
|
<span class="jie-status">未结</span>\
|
|
{{# } }}\
|
|
{{# if(d.rows[i].status == -1){ }}\
|
|
<span class="jie-status">审核中</span>\
|
|
{{# } }}\
|
|
<a class="jie-title" href="/jie/{{d.rows[i].id}}/" target="_blank">{{= d.rows[i].title}}</a>\
|
|
<i class="layui-hide-xs">{{ layui.util.timeAgo(d.rows[i].time, 1) }}</i>\
|
|
{{# if(d.rows[i].accept == -1){ }}\
|
|
<a class="mine-edit layui-hide-xs" href="/jie/edit/{{d.rows[i].id}}" target="_blank">编辑</a>\
|
|
{{# } }}\
|
|
<em class="layui-hide-xs">{{d.rows[i].hits}}阅/{{d.rows[i].comment}}答</em>\
|
|
{{# } }}\
|
|
</li>\
|
|
{{# } }}'
|
|
];
|
|
|
|
var view = function (res) {
|
|
var html = laytpl(tpl[0]).render(res);
|
|
dom.mine.children().eq(index).find('span').html(res.count);
|
|
elemUCM.children().eq(index).find('ul').html(res.rows.length === 0 ? '<div class="fly-msg">没有相关数据</div>' : html);
|
|
};
|
|
|
|
var page = function (now) {
|
|
var curr = now || 1;
|
|
if (gather.minelog[type + '-page-' + curr]) {
|
|
view(gather.minelog[type + '-page-' + curr]);
|
|
} else {
|
|
//我收藏的帖
|
|
if (type === 'collection') {
|
|
var nums = 10; //每页出现的数据量
|
|
fly.json(url, {}, function (res) {
|
|
res.count = res.rows.length;
|
|
|
|
var rows = layui.sort(res.rows, 'collection_timestamp', 'desc')
|
|
, render = function (curr) {
|
|
var data = []
|
|
, start = curr * nums - nums
|
|
, last = start + nums - 1;
|
|
|
|
if (last >= rows.length) {
|
|
last = curr > 1 ? start + (rows.length - start - 1) : rows.length - 1;
|
|
}
|
|
|
|
for (var i = start; i <= last; i++) {
|
|
data.push(rows[i]);
|
|
}
|
|
|
|
res.rows = data;
|
|
|
|
view(res);
|
|
};
|
|
|
|
render(curr)
|
|
gather.minelog['collect-page-' + curr] = res;
|
|
|
|
now || laypage.render({
|
|
elem: 'LAY_page1'
|
|
, count: rows.length
|
|
, curr: curr
|
|
, jump: function (e, first) {
|
|
if (!first) {
|
|
render(e.curr);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
} else {
|
|
fly.json('/api/' + type + '/', {
|
|
page: curr
|
|
}, function (res) {
|
|
view(res);
|
|
gather.minelog['mine-jie-page-' + curr] = res;
|
|
now || laypage.render({
|
|
elem: 'LAY_page'
|
|
, count: res.count
|
|
, curr: curr
|
|
, jump: function (e, first) {
|
|
if (!first) {
|
|
page(e.curr);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
};
|
|
|
|
if (!gather.minelog[type]) {
|
|
page();
|
|
}
|
|
};
|
|
|
|
if (elemUC[0]) {
|
|
layui.each(dom.mine.children(), function (index, item) {
|
|
var othis = $(item)
|
|
gather.mine(index, othis.data('type'), othis.data('url'));
|
|
});
|
|
}
|
|
|
|
//显示当前tab
|
|
if (location.hash) {
|
|
element.tabChange('user', location.hash.replace(/^#/, ''));
|
|
}
|
|
|
|
element.on('tab(user)', function () {
|
|
var othis = $(this), layid = othis.attr('lay-id');
|
|
if (layid) {
|
|
location.hash = layid;
|
|
}
|
|
});
|
|
|
|
|
|
|
|
//上传图片
|
|
if ($('.upload-img')[0]) {
|
|
layui.use('upload', function (upload) {
|
|
var avatarAdd = $('.avatar-add');
|
|
|
|
upload.render({
|
|
elem: '.upload-img'
|
|
, url: '/user/set/upload/'
|
|
, size: 50
|
|
, before: function () {
|
|
avatarAdd.find('.loading').show();
|
|
}
|
|
, done: function (res) {
|
|
if (res.status == 0) {
|
|
location.reload();
|
|
} else {
|
|
layer.msg(res.msg, {icon: 5});
|
|
}
|
|
avatarAdd.find('.loading').hide();
|
|
}
|
|
, error: function () {
|
|
avatarAdd.find('.loading').hide();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
//合作平台
|
|
if ($('#LAY_coop')[0]) {
|
|
|
|
//资源上传
|
|
$('#LAY_coop .uploadRes').each(function (index, item) {
|
|
var othis = $(this);
|
|
upload.render({
|
|
elem: item
|
|
, url: '/api/upload/cooperation/?filename=' + othis.data('filename')
|
|
, accept: 'file'
|
|
, exts: 'zip'
|
|
, size: 30 * 1024
|
|
, before: function () {
|
|
layer.msg('正在上传', {
|
|
icon: 16
|
|
, time: -1
|
|
, shade: 0.7
|
|
});
|
|
}
|
|
, done: function (res) {
|
|
if (res.code == 0) {
|
|
layer.msg(res.msg, {icon: 6})
|
|
} else {
|
|
layer.msg(res.msg)
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
//成效展示
|
|
var effectTpl = ['{{# layui.each(d.data, function(index, item){ }}'
|
|
, '<tr>'
|
|
, '<td><a href="/u/{{ item.uid }}" target="_blank" style="color: #01AAED;">{{ item.uid }}</a></td>'
|
|
, '<td>{{ item.authProduct }}</td>'
|
|
, '<td>¥{{ item.rmb }}</td>'
|
|
, '<td>{{ item.create_time }}</td>'
|
|
, '</tr>'
|
|
, '{{# }); }}'].join('');
|
|
|
|
var effectView = function (res) {
|
|
var html = laytpl(effectTpl).render(res);
|
|
$('#LAY_coop_effect').html(html);
|
|
$('#LAY_effect_count').html('你共有 <strong style="color: #FF5722;">' + (res.count || 0) + '</strong> 笔合作授权订单');
|
|
};
|
|
|
|
var effectShow = function (page) {
|
|
fly.json('/cooperation/effect', {
|
|
page: page || 1
|
|
}, function (res) {
|
|
effectView(res);
|
|
laypage.render({
|
|
elem: 'LAY_effect_page'
|
|
, count: res.count
|
|
, curr: page
|
|
, jump: function (e, first) {
|
|
if (!first) {
|
|
effectShow(e.curr);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
};
|
|
effectShow();
|
|
}
|
|
|
|
//提交成功后刷新
|
|
fly.form['set-mine'] = function (data, required) {
|
|
layer.msg('修改成功', {
|
|
icon: 1
|
|
, time: 1000
|
|
, shade: 0.1
|
|
}, function () {
|
|
location.reload();
|
|
});
|
|
}
|
|
|
|
//帐号绑定
|
|
$('.acc-unbind').on('click', function () {
|
|
var othis = $(this), type = othis.attr('type');
|
|
layer.confirm('整的要解绑' + ({
|
|
qq_id: 'QQ'
|
|
, weibo_id: '微博'
|
|
})[type] + '吗?', {icon: 5}, function () {
|
|
fly.json('/api/unbind', {
|
|
type: type
|
|
}, function (res) {
|
|
if (res.status === 0) {
|
|
layer.alert('已成功解绑。', {
|
|
icon: 1
|
|
, end: function () {
|
|
location.reload();
|
|
}
|
|
});
|
|
} else {
|
|
layer.msg(res.msg);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
//我的消息
|
|
gather.minemsg = function () {
|
|
var delAll = $('#LAY_delallmsg')
|
|
, tpl = '{{# var len = d.rows.length;\
|
|
if(len === 0){ }}\
|
|
<div class="fly-none">您暂时没有最新消息</div>\
|
|
{{# } else { }}\
|
|
<ul class="mine-msg">\
|
|
{{# for(var i = 0; i < len; i++){ }}\
|
|
<li data-id="{{d.rows[i].id}}">\
|
|
<blockquote class="layui-elem-quote">{{ d.rows[i].content}}</blockquote>\
|
|
<p><span>{{d.rows[i].time}}</span><a href="javascript:;" class="layui-btn layui-btn-sm layui-btn-danger fly-delete">删除</a></p>\
|
|
</li>\
|
|
{{# } }}\
|
|
</ul>\
|
|
{{# } }}'
|
|
, delEnd = function (clear) {
|
|
if (clear || dom.minemsg.find('.mine-msg li').length === 0) {
|
|
dom.minemsg.html('<div class="fly-none">您暂时没有最新消息</div>');
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
fly.json('/message/find/', {}, function(res){
|
|
var html = laytpl(tpl).render(res);
|
|
dom.minemsg.html(html);
|
|
if(res.rows.length > 0){
|
|
delAll.removeClass('layui-hide');
|
|
}
|
|
});
|
|
*/
|
|
|
|
//阅读后删除
|
|
dom.minemsg.on('click', '.mine-msg li .fly-delete', function () {
|
|
var othis = $(this).parents('li'), id = othis.data('id');
|
|
fly.json('/message/remove/', {
|
|
id: id
|
|
}, function (res) {
|
|
if (res.status === 0) {
|
|
othis.remove();
|
|
delEnd();
|
|
}
|
|
});
|
|
});
|
|
|
|
//删除全部
|
|
$('#LAY_delallmsg').on('click', function () {
|
|
var othis = $(this);
|
|
layer.confirm('确定清空吗?', function (index) {
|
|
fly.json('/message/remove/', {
|
|
all: true
|
|
}, function (res) {
|
|
if (res.status === 0) {
|
|
layer.close(index);
|
|
othis.addClass('layui-hide');
|
|
delEnd(true);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
};
|
|
|
|
dom.minemsg[0] && gather.minemsg();
|
|
|
|
exports('user', null);
|
|
|
|
});
|