Przeglądaj źródła

:memo: add note

visuddhinanda 3 lat temu
rodzic
commit
f91abcd29a
1 zmienionych plików z 150 dodań i 170 usunięć
  1. 150 170
      public/app/widget/like.js

+ 150 - 170
public/app/widget/like.js

@@ -1,198 +1,178 @@
 var arrElement = new Array();
-function Like(){
-	$("like").each(function(){
-		if($(this).attr("init")!="true"){
+function Like() {
+    $("like").each(function () {
+        if ($(this).attr("init") != "true") {
             let likeItem = {
-							like_type:$(this).attr("liketype"),
-							resource_type:$(this).attr("restype"),
-							resource_id:$(this).attr("resid"),
-							like:$(this).attr("count"),
-							me:$(this).attr("mine"),
-							init:false
-						};
-			arrElement.push(likeItem);
-		}
-	});
-	$("like").on("click",function(){
-			let liketype = $(this).attr("liketype");
-			let rettype = $(this).attr("restype");
-			let resid = $(this).attr("resid");		
-			let readonly = $(this).attr("readonly");
-            if(readonly=='true'){
-                return;
-            }
-		let e = arrElement.find(function(item){
+                like_type: $(this).attr("liketype"),
+                resource_type: $(this).attr("restype"),
+                resource_id: $(this).attr("resid"),
+                like: $(this).attr("count"),
+                me: $(this).attr("mine"),
+                init: false
+            };
+            arrElement.push(likeItem);
+        }
+    });
+    $("like").on("click", function () {
+        let liketype = $(this).attr("liketype");
+        let rettype = $(this).attr("restype");
+        let resid = $(this).attr("resid");
+        let readonly = $(this).attr("readonly");
+        if (readonly == 'true') {
+            return;
+        }
+        let e = arrElement.find(function (item) {
 
-			if(liketype===item.like_type && rettype===item.resource_type && resid===item.resource_id){
-				return true;
-			}
-			else{
-				return false;
-			}
-		});
-		if(e.me){
-            remove(e.me,e.like_type,e.resource_id);
-		}else{
-			add(e.like_type,e.resource_type,e.resource_id);	
-		}
-	})
-	Render();
+            if (liketype === item.like_type && rettype === item.resource_type && resid === item.resource_id) {
+                return true;
+            }
+            else {
+                return false;
+            }
+        });
+        if (e.me) {
+            remove(e.me, e.like_type, e.resource_id);
+        } else {
+            add(e.like_type, e.resource_type, e.resource_id);
+        }
+    })
+    Render();
 }
-function add(liketype,restype,resid) {
-    fetch('/api/v2/like',{
+
+/**
+ * /api/v2/like
+ * @method POST
+ * @param {string} liketype 下列值之一 like,favorite,watch
+ * @param {string} restype 资源类型 下列值之一 chapter,article,course
+ * @param {string} resid   资源 uuid
+ *
+ * @responce {json}
+ *          data{
+                ok: bool,
+                message: string,
+                data:{
+                    type: string, 资源类型 下列值之一 chapter,article,course
+                    target_id: string, 资源 uuid
+                    id: string 点赞记录的uuid
+                }
+            }
+ */
+function add(liketype, restype, resid) {
+    fetch('/api/v2/like', {
         method: 'POST',
         credentials: 'include',
         headers: {
             'Content-Type': 'application/json'
         },
         body: JSON.stringify({
-            type:liketype,
-            target_type:restype,
-			target_id:resid
+            type: liketype,
+            target_type: restype,
+            target_id: resid
         })
     })
-  .then(response => response.json())
-  .then(function(data){
-      console.log(data);
-		let result = data.data;
-		if(data.ok==true){
-			for (let it of arrElement) {
-				if(result.type===it.like_type &&
-				result.target_id===it.resource_id){
-					it.like++;
-					it.me=result.id;
-				}
-			}
-			Render();
-		}
-  });
-
+        .then(response => response.json())
+        .then(function (data) {
+            console.log(data);
+            let result = data.data;
+            if (data.ok == true) {
+                for (let it of arrElement) {
+                    if (result.type === it.like_type &&
+                        result.target_id === it.resource_id) {
+                        it.like++;
+                        it.me = result.id;
+                    }
+                }
+                Render();
+            }
+        });
 }
-function remove(id,liketype,resid) {
-        fetch('/api/v2/like',{
+
+function remove(id, liketype, resid) {
+    fetch('/api/v2/like', {
         method: 'DELETE',
         credentials: 'include',
         headers: {
             'Content-Type': 'application/json'
         },
         body: JSON.stringify({
-            id:id,
-            type:liketype,
-			target_id:resid
+            id: id,
+            type: liketype,
+            target_id: resid
         })
     })
-  .then(response => response.json())
-  .then(function(data){
-      console.log(data);
-		let result = data.data;
-		if(data.ok==true){
-			for (let it of arrElement) {
-				if(liketype===it.like_type &&
-				   resid===it.resource_id){
-					it.like = result.count;
-					it.me=false;
-				}
-			}
-			Render();
-		}
-  });
-/*
-	$.getJSON(
-		"../api/like.php",
-		{
-			_method:"delete",
-			like_type:liketype,
-			resource_type:restype,
-			resource_id:resid
-		}
-	).done(function (data) {
-		console.log("delete",data);
-		if(data.ok){
-			LikeRefresh(data.data);
-		}
-	}).fail(function(jqXHR, textStatus, errorThrown){
-		switch (textStatus) {
-			case "timeout":
-				break;
-			case "error":
-				switch (jqXHR.status) {
-					case 404:
-						break;
-					case 500:
-						break;				
-					default:
-						break;
-				}
-				break;
-			case "abort":
-				break;
-			case "parsererror":
-				console.log("delete-parsererror",jqXHR.responseText);
-				break;
-			default:
-				break;
-		}
-		
-	});
-    */
+        .then(response => response.json())
+        .then(function (data) {
+            console.log(data);
+            let result = data.data;
+            if (data.ok == true) {
+                for (let it of arrElement) {
+                    if (liketype === it.like_type &&
+                        resid === it.resource_id) {
+                        it.like = result.count;
+                        it.me = false;
+                    }
+                }
+                Render();
+            }
+        });
 }
-function LikeRefresh(data){
-	$.ajaxSetup({contentType: "application/json; charset=utf-8"});
-	$.post(
-		"../api/like.php?_method=list",
-		JSON.stringify([data])
-	).done(function (data) {
-		console.log(data);
-		let result = JSON.parse(data);
-		for (let it of arrElement) {
-			if(result["data"][0].resource_type===it.resource_type &&
-			result["data"][0].resource_id===it.resource_id &&
-			result["data"][0].like_type===it.like_type){
-				it.like=result["data"][0].like;
-				it.me=result["data"][0].me;
-			}
-		}
-		Render();
-	});
+function LikeRefresh(data) {
+    $.ajaxSetup({ contentType: "application/json; charset=utf-8" });
+    $.post(
+        "../api/like.php?_method=list",
+        JSON.stringify([data])
+    ).done(function (data) {
+        console.log(data);
+        let result = JSON.parse(data);
+        for (let it of arrElement) {
+            if (result["data"][0].resource_type === it.resource_type &&
+                result["data"][0].resource_id === it.resource_id &&
+                result["data"][0].like_type === it.like_type) {
+                it.like = result["data"][0].like;
+                it.me = result["data"][0].me;
+            }
+        }
+        Render();
+    });
 }
 
-function LikeRefreshAll(){
-	$.ajaxSetup({contentType: "application/json; charset=utf-8"});
-	$.post(
-		"../api/like.php?_method=list",
-		JSON.stringify(arrElement)
-	).done(function (data) {
-		console.log(data);
-		arrElement = JSON.parse(data).data;
-		Render();
-	});
+function LikeRefreshAll() {
+    $.ajaxSetup({ contentType: "application/json; charset=utf-8" });
+    $.post(
+        "../api/like.php?_method=list",
+        JSON.stringify(arrElement)
+    ).done(function (data) {
+        console.log(data);
+        arrElement = JSON.parse(data).data;
+        Render();
+    });
 }
 
-function Render(){
-	for (const it of arrElement) {
-		let html=" ";
-		let meClass="";
-		let likeIcon="";
-		switch (it.like_type) {
-			case "like":
-				likeIcon = "👍Like";
-				break;
-			case "favorite":
-				likeIcon = "⭐Favorite";
-				break;
-			case "watch":
-				likeIcon = "👁️Watch";
-				break;
-			default:
-				break;
-		}
-		if(it.me){
-			meClass = " like_mine";
-		}
-		html +="<div class='like_inner "+meClass+"'>"+likeIcon;
-        html +="<span class='number'>"+it.like+"<span>";
-        html +="</div>";
+function Render() {
+    for (const it of arrElement) {
+        let html = " ";
+        let meClass = "";
+        let likeIcon = "";
+        switch (it.like_type) {
+            case "like":
+                likeIcon = "👍Like";
+                break;
+            case "favorite":
+                likeIcon = "⭐Favorite";
+                break;
+            case "watch":
+                likeIcon = "👁️Watch";
+                break;
+            default:
+                break;
+        }
+        if (it.me) {
+            meClass = " like_mine";
+        }
+        html += "<div class='like_inner " + meClass + "'>" + likeIcon;
+        html += "<span class='number'>" + it.like + "<span>";
+        html += "</div>";
 
-		$("like[liketype='"+it.like_type+"'][restype='"+it.resource_type+"'][resid='"+it.resource_id+"']").html(html);
-	}
+        $("like[liketype='" + it.like_type + "'][restype='" + it.resource_type + "'][resid='" + it.resource_id + "']").html(html);
+    }
 }