封装的ttyu调接口
function webData(Actions,userI){
tdata = { type: 'web', isJsonp: false, uuid: null, compId: null, userId: null, action: Actions, tableName: null, where: userI, fieldName: null, sql: null, datas: null, tableDatas: null, paras: null,
GoPage: { index: null, rows: null }, Tree: { id: null, pId: null, name: null, other: null }
};
}
1、点赞功能(赞和踩)
(1)获取数据中的赞ID和踩ID
var zan1 = "s" + datas[i].zanid;
var cai = "s" + datas[i].downid;
(2)判断赞id中是否有当前用户;(存在赞变成红色,踩灰色)
if (zan1 != null && zan1.indexOf(userID) > 0) {
str += "<i class='iconfont icon-praise-copy' style='color: red;'></i>" +
" <span>(" + datas[i].thumbsUpCount + ")</span>";
str += "<i class='iconfont icon-good-fill' style='color: #595757;' ></i>" +
" <span>(" + datas[i].thumbsDownCount + ")</span>";
}
(3)判断踩id中是否有当前用户;(存在赞变成灰色,踩红色)
if (cai != null && cai.indexOf(userID) > 0) {
str += "<i class='iconfont icon-praise-copy' style='color: #595757;'></i>" +
" <span>(" + datas[i].thumbsUpCount + ")</span>";
str += "<i class='iconfont icon-good-fill' style='color: red;'></i>" +
" <span>(" + datas[i].thumbsDownCount + ")</span>";
}
(4)如果赞id中没有当前用户,且踩id中没有当前用户(均是灰色,且有点击事件)
if (zan1 != null && zan1.indexOf(userID) < 0 && cai != null && cai.indexOf(userID) < 0) {
str += "<i class='iconfont icon-praise-copy' style='color: #595757;' onclick=Upcount(this,'" + datas[i].ID + "','" + datas[i].zanid + "')></i>" +
" <span>(" + datas[i].thumbsUpCount + ")</span>";
str += "<i class='iconfont icon-good-fill' style='color: #595757;' onclick=Downcount(this,'" + datas[i].ID + "','" + datas[i].downid + "')></i>" +
" <span>(" + datas[i].thumbsDownCount + ")</span>";
}
(5)插入SQL语句,赞
function Upcount(objup,lid,zan) {
zan=zan+","+userID; //将赞ID与用户ID拼接
$(objup).css("color",'red'); //当前icon变红色
var sql1 = "update docReply set thumbsUpCount=thumbsUpCount+1 ,zanid='"+zan+"' where Id="+lid; //列表id
webData("add",sql1);
ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){
//移除当前元素和它兄弟元素的点击事件
$(objup).removeAttr('onclick'); //当前元素移除onclick事件
$(objup).siblings('i').removeAttr('onclick'); //它的兄弟移除onclick事件
var number = $(objup).next('span').text();
number=number.replace(/\(/,""); //去除前括号
number=number.replace(/\)/,""); //去除后括号
number = parseInt(number); //字符串转化成数字
$(objup).next('span').text("");
var number2 = number+1; //数量+1
$(objup).next('span').text("("+number2+")");
});
}
(6)插入SQL语句,踩
function Downcount(objdown,lid,down) {
down = down+","+userID; //将踩id与用户id拼接
$(objdown).css("color",'red'); //当前icon变成红色
sql = "update docReply set thumbsDownCount=thumbsDownCount+1,downid='"+down+"' where Id="+lid; //列表id
webData("add",sql);
ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){
//移除当前元素和它兄弟元素的点击事件
$(objdown).removeAttr('onclick'); //当前元素移除onclick事件
$(objdown).siblings('i').removeAttr('onclick'); //它的兄弟元素移除onclick事件
var number = $(objdown).next('span').text();
number=number.replace(/\(/,""); //去除前括号
number=number.replace(/\)/,""); //去除后括号
number = parseInt(number); //字符串转化成数字
$(objdown).next('span').text("");
var number2 = number+1; //数量+1
$(objdown).next('span').text("("+number2+")");
});
}
2、关注功能
1、一个列表被关注
(1)获取当前已关注的用户
$(function() {
//获取关注的列表id
webData("getfollowask", userID); //传用户id
ttyu.server.doServiceJsonp(serverJson.serverUrl, tdata, "", function (data) {
var num=0; //用于判断是否添加了 红色关注图标;为1 用户已关注,为0 用户第一次关注
if(data!=undefined || data != null){
if(data.length>0){ //判断有没有数据
for(var k=0;k<data.length;k++){ //循环关注列表id
//判断获取到的关注的列表id是否和当前的列表id相同
if(data[k].befuserid==listID){
$('.icon-xin1').addClass('red');
num=num+1; //给num加1,就是已关注过
}
}
}
}
//如果用户第一次关注,绑定事件
if(num==0){
//添加绑定事件
$('.icon-xin1').attr('onclick','xin()');
}
});
});
(2)插入SQL表
//点击关注时,插入SQL
function xin() {
//获取listid
var listids = $("input[name=report]").val();
var sql=" insert into myfollowask(userid,befuserid)values("+userID+","+listids+")"; //用户id,列表id
webData("add",sql);
ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){});
$('.icon-xin1').removeAttr("onclick"); //移除onclick事件
$('.icon-xin1').addClass("red"); //给当前的icon添加红色
//根据列表id修改表的点赞数
var sql1 = "update doc set lightCount=lightCount+1 where Id="+listID;
webData("add",sql1);
ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){});
}
2、多个列表需要被关注
(1)获取已关注的用户
var follow; //定义全局变量,获取已关注人的id,供下方获取
//获取关注的问答
$(function() {
webData("getfollowask",userID);
ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){
if(data !=undefined || data !=null) {
follow=data;
}
});
});
(2)动态创建标签,并获取数据
for (var i = 0; i < datas.length; i++) {
var num=0;//用于判断是否添加了 红色关注图标;为1 用户已关注,为0 用户第一次关注;
if(follow.length>0){
for(var k=0;k<follow.length;k++){
//判断获取到的关注的列表id是否和当前的列表id相同,如果相同,icon变红色,无点击事件
if(follow[k].befuserid==datas[i].ID){
str+="<i class='iconfont icon-xin1 red'></i>" ;
num=num+1;
}
}
}
//如果是用户第一次关注,创建icon 并添加点击事件
if(num==0){
str+="<i class='iconfont icon-xin1' onclick=usercare(this,"+datas[i].ID+")></i>";
}
}
(3)插入SQL
//点击心关注问题
function usercare(thisobj,idobj) { //this,列表id
// 插入SQL语句
var sql=" insert into myfollowask(userid,befuserid)values("+userID+","+idobj+")"; //用户id,列表id
webData("add",sql);
ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){});
// 修改SQL语句
var sql1="update ask set lightcount=lightcount+1 where id="+idobj;
webData("add",sql1);
ttyu.server.doServiceJsonp(serverJson.serverUrl,tdata,"",function(data){});
$(thisobj).removeAttr("onclick");
$(thisobj).css("color",'red');
firm("关注成功"); //自己封装的弹框
}