123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352 |
- Namespace.register("U.CD.SL"); //注册示例项目区域
- U.CD.SL.MySQL = "mysql"; //后台据此判断是到mongodb还是mysql。type是命令类型
- U.CD.SL.Data = null; //保存示例中的数据,避免数据库频繁刷新。
- U.CD.SL.PrePD = null; //保存了示例项目中评论和大图2个按钮,在onmouseover中切换状态。
- //示例项目
- U.CD.SL.Init = function () {
- // if (!$("#UCD_SL_N_F_R")[0].childNodes.length) U.D.AD.BDGG($("#UCD_SL_N_F_R")[0], '897767'); //百度广告,外部js加载不成功,导致本网站js不能运行,奇怪了
- //暂时做几个功能,以后扩充。
- //var _lans = $("#UCD_SL_N_F")[0].getElementsByTagName("div"), i;
- //for (i = 0; i < _lans.length; i++) { if (_lans[i].innerHTML != "HTML5语言") _lans[i].onclick = U.M.apply(this, [[alert, (["有空看看http://www.1473.cn,有惊喜!"])]]) }
- // var _s = $("#UCD_SL")[0];
- // //_s.style.width = document.body.clientWidth * 0.67 + "px"; //设置展示区域宽度
- // _s.style.width = "1000px";
- // _s.style.left = (document.body.clientWidth - parseInt(_s.style.width)) / 2 + "px"; //宽度居中
- // _s.style.height = document.body.clientHeight - 20 - 20 - 80 + "px"; //减去头部和尾部高度
- // _s.style.display = "block"; //显示或隐藏
- var UCD_SL_T_Width, UCD_SL_T_Left, UCD_SL_T_height;
- UCD_SL_T_Width = "1000px";
- UCD_SL_T_Left = (document.body.clientWidth - parseInt(UCD_SL_T_Width)) / 2 + "px";
- UCD_SL_T_height = document.body.clientHeight - 20 - 20 - 80 + "px";
- U.UF.UI.Form({ id: "UCD_SL_T", style: { "width": UCD_SL_T_Width, "left": UCD_SL_T_Left, "top": "5%", "height": UCD_SL_T_height }, title: "成功案例" })
- $("#UCD_SL_T .UD_SYF_SCO").append($(".UCD_SL_N_T")[0]);
- $("#UCD_SL_T .UD_SYF_SCO").append($(".UCD_SL_NN")[0]);
- //$("#UCD_SL_N_N")[0].style.height = _s.clientHeight - 100 + "px";
- //选取数据库所有数据,参数1表示滚动加载的页数,以后再修正为滚动加载,数据库默认1次加载500条。
- //为了避免频繁加载,结果需要保存到全局变量中。
- if (!U.CD.SL.Data || true) {// 加个true 刷新案例
- //try catch不成功?以后再搞
- try {
- //第一个参数:请求的后台地址。第二个参数是一个数组(数据库名字,存储过程名字,后面的都是存储过程的参数)
- //第三个参数是回调函数。第四个是回调参数。
- U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_All", 1, U.CD.USLang]), U.CD.SL.Display, ([""]));
- }
- catch (e) { alert("数据库连接暂时不成功,但不影响客户端操作"); }
- }
- }
- //弹出切换语言窗口
- U.CD.SL.L = function () {
- // var _b = $("#UCD_L_C")[0];
- // _b.style.width = "537px";
- // _b.style.left = (document.body.clientWidth - parseInt(_b.style.width)) / 2 + "px"; //宽度居中
- // // _b.style.height = document.body.clientHeight - 20 - 20 - 430 + "px"; //减去头部和尾部高度
- // _b.style.display = "block"; //显示或隐藏
- if ($("#test")[0]) {
- $("#test")[0].style.display = "block"
- } else {
- U.UF.UI.Form({ id: "test", "class": "UCD_L_C", style: { "width": "537px", "left": "698px", "height": "298px", "top": "256px" }, title: "云端切换语言" });
- $("#test .UD_SYF_SCO")[0].appendChild($(".UCD_SL_C_N")[0]);
- $("#test .UD_SYF_SCO")[0].style.overflow = "hidden";
- $("#UCD_L_C")[0].style.display = "none";
- }
- }
- //展示数据库中发布的项目
- U.CD.SL.Display = function (r) {
- if (r.value == "") { U.CD.SL.Init(); }
- var _r = U.CD.SL.Data = r.value[0]; //获取mysql数据库返回的数据。
- U.CD.SL.DisFlow(_r);
- }
- U.CD.SL.DisFlow = function (_r) {
- var _nr = $("#UCD_SL_N_N")[0], i, j, _l; //_l流式布局个数定义
- var userId = U.M.Cookies.get("usestudiosso") && U.M.Cookies.get("usestudiosso").split("&").filter(function (v) { return v.indexOf("userid") != -1 }); //当前登录用户的id
- userId && (userId = userId[userId.length - 1].split("=")[1]);
- $("#UCD_SL_N_N")[0].innerHTML = ""; //清空div
- if (!_r.length) _nr.innerHTML = "<div class='UCD_SL_TS' onclick='U.CD.U.LoginApply()'>暂时无人添加示例,您可以来添加哦,分享是一种美德,点此分享!</div>";
- _l = U.CD.SL.Flowlayout(_nr, 140, 7); //返回列数,如果已经做了流式布局,下一次进来不再调用此函数。
- var a = _r, len = a.length, tp;
- for (i = 0; i < len; i++) {
- for (j = i; j < len; j++) {
- if (Date.parse(a[i].CreateDate) < Date.parse(a[j].CreateDate)) {//按时间排序 降序
- tp = a[i];
- a[i] = a[j];
- a[j] = tp;
- }
- }
- }
- _r = a;
- for (i = 0; i < _r.length; i++) {
- var _p = $("#UCD_SL_N_N")[0]; //找到流式布局点,追加相应元素,这是技巧,为了兼容Chrome,使用了Uq方法获取孩子节点 .Child()[i % _l]
- //var _src = "http://www.1473.cn/img/usestudiobackgroudnimage/beta1/bg1(1).jpg";
- var _a = $$("div", { "className": "UCD_SL_N_N_C", "onmouseover": [[U.CD.SL.DisReply, (["retElement", _r[i]])]], "onclick": [[U.CD.SL.DisOther, ([_r[i]])]] }, _p); //单个样式
- $$("img", { "className": "UCD_SL_N_N_C_I", "src": _r[i].DImg, "onerror": [U.MD.C.imgError, (["this", 1])] }, _a); //图像样式
- var _b = $$("div", { "className": "UCD_SL_N_N_C_RD" }, _a); //评论,大图样式
- var pl = $$("div", { "className": "UCD_SL_N_N_C_R" }, _b); //评论样式
- $$("img", { "src": "../images/cgal_dt.png", "onclick": [[U.UF.EV.stopBubble], [U.Img.Create, ([{ 'Img': _r[i].DImg, 'Thm': _r[i].DSmallImg}])]] }, pl);
- //"onclick": [[U.UF.EV.stopBubble], [U.Img.Create, ([{ 'Img': _r[i].DImg, 'Thm': _r[i].DSmallImg}])]]
- //"onclick": [[U.UF.EV.stopBubble], [U.CD.OU.Reply, ([_r[i].DID])]]
- //如果是管理员账号,则添加一个发布审核按钮。
- /*if (U.CD.U.IsUSelf().userid == "baa5e5ae-0fc2-4eab-ba44-cd993d6ce5a1")
- $$("div", { "className": "UCD_SL_N_N_C_S", "innerHTML": "审核", "onclick": [[U.UF.EV.stopBubble], [U.CD.SL.VerConfirm, ([_r[i]])]] }, _b); //评论样式*/
- var dt = $$("div", { "className": "UCD_SL_N_N_C_D" }, _b); //大图样式
- $$("img", { "src": "../images/cgal_pl.png", "onclick": [[U.UF.EV.stopBubble], [U.CD.OU.Reply, ([_r[i].DID])]] }, dt);
- _r[i].DBrief = _r[i].DBrief.replace(/\r\n/g, '<br/>'); //换行符号处理
- $$("div", { "className": "UCD_SL_N_N_C_T", "title": _r[i].DName, "innerHTML": _r[i].DName }, _a); //标题样式
- $$("div", { "className": "UCD_SL_N_N_C_N", "innerHTML": _r[i].DBrief }, _a); //内容样式
- if (userId && (userId == _r[i].UserID)) {//只有用户自己的案例才可以修改
- $$("div", { "className": "UCD_SL_N_N_C_XG", "onclick": [[U.UF.EV.stopBubble], [U.CD.SL.Publish, [null, US.userInfo.UserId, _r[i]]]] }, _b); //修改
- $$("div", { "className": "UCD_SL_N_N_C_SC", "onclick": [[U.UF.EV.stopBubble], [function (id, div) {//删除的函数
- U.UF.UI.Confirm("确定要删除吗?", [function (id, div) { //confirm
- var rt = U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Develop_delete_example", id]), 0, ([""])); //删除数据库案例
- if (rt.value.affectedRows == 1) {//影响行数
- $(div).remove(); //把div删除了
- U.Alert("删除成功!"); //弹个框
- }
- }, ([id, div])], [function () { }, ([])]);
- }, [_r[i].DID, _a]]]//id和div传进去
- }, _b); //删除
- }
- //U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_All", 1, U.CD.USLang]), U.CD.SL.Display, ([""]));
- }
- }
- //精华,提问,等切换区域
- U.CD.SL.Type = function (t) {
- //如果前台有数据,切换时筛选数据
- var d = U.CD.SL.Data, n = d.length, i, _r = [];
- if (d) {
- for (i = 0; i < n; i++) {
- if (d[i].DType == t)
- _r.push(d[i]);
- }
- }
- $("#UCD_SL_N_N")[0].innerHTML = "";
- U.CD.SL.DisFlow(_r);
- }
- //搜索函数
- U.CD.SL.Sou = function (o) {
- var s = o.parentNode.getElementsByTagName("input")[0].value;
- var d = U.CD.SL.Data, n = d.length, i, _r = [];
- if (d) {
- for (i = 0; i < n; i++) {
- if (d[i].DName.indexOf(s) > -1)
- _r.push(d[i]);
- }
- }
- $("#UCD_SL_N_N")[0].innerHTML = "";
- U.CD.SL.DisFlow(_r);
- }
- //回车搜索
- U.CD.SL.SouEnter = function (o) {
- if (event.keyCode == 13) {
- var s = o.parentNode.getElementsByTagName("input")[0].value;
- var d = U.CD.SL.Data, n = d.length, i, _r = [];
- if (d) {
- for (i = 0; i < n; i++) {
- if (d[i].DName.indexOf(s) > -1)
- _r.push(d[i]);
- }
- }
- $("#UCD_SL_N_N")[0].innerHTML = "";
- U.CD.SL.DisFlow(_r);
- }
- }
- //鼠标移动到相关条目时弹出查看该项目评论信息。
- U.CD.SL.DisReply = function (SO, r) {
- //给SO添加2个div,用来查看评论和大图
- var _s, i;
- if (U.CD.SL.PrePD) { if (U.CD.SL.PrePD.childNodes[1]) { _s = U.CD.SL.PrePD.childNodes[1].childNodes; for (i = 0; i < _s.length; i++) { _s[i].style.display = "none"; } } }
- _s = SO.childNodes[1].childNodes; for (i = 0; i < _s.length; i++) { _s[i].style.display = "block"; }
- U.CD.SL.PrePD = SO;
- }
- //弹出审核确认取消框。
- U.CD.SL.VerConfirm = function (r) {
- U.UF.UI.Confirm("你确定取消<span style='color:blue;'>" + r.DName + "</span>在首页中的显示吗?", [U.CD.SL.Verify, ([r])], "");
- }
- //去数据库通过审核,展示在前台供其他用户查看项目。
- U.CD.SL.Verify = function (r) {
- U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Add_Develop", r.DID, r.UserID, r.UserName, r.DName, r.DBrief, r.DSmallImg, r.DImg, r.DPrice, "0"]), U.CD.SL.VerifyAsyn, ([""]));
- }
- //数据库是否成功
- U.CD.SL.VerifyAsyn = function (r) {
- r.value[0].length ? alert("审核成功") : alert("审核失败");
- }
- //展示其他人的项目。
- U.CD.SL.DisOther = function (u) {
- //window.open("http://d.1473.cn/" + "#!/" + encodeURI(u.DID + "|" + u.UserID));
- $("#UCD_SL_T")[0].style.display = "none";
- U.CD.Url.Param(["#!", u.DID + "|" + u.UserID]); //采用本窗口加载模式
- }
- //前端后端切换
- U.CD.SL.Change = function (l) {
- U.UF.UI.Confirm("<div style='margin-top:-20px; margin-left:20px;font-size:16px;text-align:left;color:red;'>你确定切换到" + l + "后端吗?</br>前端:包括HTML,CSS,Javascript等知识.</br>后端:包括C语言,PHP语言,Ruby语言等.</div>", [U.CD.SL.ChangeAsyn, ([l])], "");
- }
- U.CD.SL.ChangeAsyn = function (l) { window.open("http://c.1473.cn/" + "#!/" + l); } //异步采用新窗口模式
- //流式布局函数,封装起来,以后给UC。参数1为大的元素,参数2为小元素的宽度,各个小元素的margin,此函数返回值为列数
- U.CD.SL.Flowlayout = function (NR, W, M) {
- // var _a = NR.clientWidth, i; //大容器宽度
- // var _num = Math.floor(_a / (W + 2 * M)); //小元素宽度
- // //添加列数到大元素
- // for (i = 0; i < _num; i++) {
- // $$("div", { "style": { "width": W + "px", "margin": M + "px" }, "className": "UCD_SL_N_N_L" }, NR); //追加流式布局的包容器
- // }
- // return _num;
- var _a = NR.clientWidth, i; //大容器宽度
- var _num = Math.floor(_a / (W + 2 * M)); //小元素宽度
- //添加列数到大元素
- for (i = 0; i < 5; i++) {
- $$("div", { "style": { "width": "185px", "margin-right": "10px" }, "className": "UCD_SL_N_N_L" }, NR); //追加流式布局的包容器
- }
- return _num;
- }
- //-------------------------------------------------------------------发布项目到首页区域-----------------------------------------------------
- //发布一个项目,会添加到示例项目区域。
- U.CD.SL.Publish = function (SO, userid, node) {
- //到数据库查询是否已经发不过。
- U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Select_One", node.ID]), U.CD.SL.ISPub, (["", SO, userid, node]));
- }
- //--------------------------------------UJ框架RadioList控件-------------------------------------------------
- //S是一个json,表示多个Checkbox的内容,D表示需要生成checkbox的父亲元素,比如一个div
- //调用方法。//var ra = U.UF.UI.RadioList($("#UCD_FB_N_CK_CK")[0], { "TW": "提问", "ZY": "作业", "JH": "精华", "CT": "控件" });
- //取值方法 ra.value();可以获取用户选择的值。
- U.UF.UI.RadioList = function (D, S) {
- var T = new U.UF.UI.RadioListT(D, S);
- T.init(); //初始化单选按钮组。
- return T;
- }
- U.UF.UI.RadioListT = function (D, S) {
- if (U.M.GetType(S) != "Object") return; //如果不是数组,返回
- D.innerHTML = ""; //清空以前的
- this.D = D; this.S = S; this.A = []; //所有checkbox元素,用于选择, //返回选中的Checkbox。
- }
- U.UF.UI.RadioListT.prototype = {
- init: function () {
- var S = this.S, p, c; //得到Checkbox长度,p为span,c为checkbox
- for (var s in S) {
- if (S.hasOwnProperty(s)) {
- p = $$("div", { "innerHTML": S[s], "style": { "cssText": "margin-left:5px;"} }, this.D);
- c = $$("input", { "type": "radio", "value": s, "onclick": [this.radiochecked, ([this, "retElement"])] }, p);
- this.A.push(c);
- }
- }
- this.A[0].checked = true;
- },
- //选中函数,其他全部不选中,单击的元素选中。r为保证作用域,"retElement"表示radio元素本身。
- radiochecked: function (r, o) {
- var i; for (i = 0; i < r.A.length; i++) r.A[i].checked = false; o.checked = true;
- },
- //返回被选中的值
- value: function () {
- var i; for (i = 0; i < this.A.length; i++) if (this.A[i].checked == true) return this.A[i].value;
- return this.A[0].value; //默认返回第一个元素
- }
- }
- //检测以前是否发布过的异步函数
- U.CD.SL.ISPub = function (r) {
- //清空以前数据
- var SO = r.context[1], userid = r.context[2], node = r.context[3]; //得到传递的参数
- var _r = r.value[0]; //得到数据库的值。
- //如果没获取到数据,表示没发不过,所有选项清空,否则,表示修改,把数据库的值赋予各个选项。
- if (_r.length == 0) { $("#UCD_FB_N_N_Name")[0].value = "", $("#UCD_FB_N_N_T")[0].value = "", $("#UCD_FB_NR_IMG")[0].value = "", $("#UCD_FB_N_N_P")[0].value = ""; }
- else { _r = _r[0]; $("#UCD_FB_N_N_Name")[0].value = _r.DName, $("#UCD_FB_N_N_T")[0].value = _r.DBrief, $("#UCD_FB_NR_IMG")[0].src = _r.DSmallImg, $("#UCD_FB_N_N_P")[0].value = _r.DPrice; }
- // var _UDUP = $("#UCD_FB")[0]; //获取命令窗口
- //var _NR = $("#UCD_FB_N_N")[0]; _NR.innerHTML = ""; //获取内容窗口
- if (_r.DName) $("#UCD_FB_N_T")[0].innerHTML = "您已经发不过" + node.Name + "了?但还可以修改相应信息";
- else $("#UCD_FB_N_T")[0].innerHTML = "您将要发布" + node.Name + "吗?此项目将对所有人可见!";
- $("#UCD_FB_N_N_Name")[0].value = node.Name; //给标题赋值
- //生成CheckBoxList
- var ra = U.UF.UI.RadioList($("#UCD_FB_N_CK_CK")[0], U.CD.DType);
- $("#UCD_FB_NR_IMG")[0].onclick = U.M.apply(this, [[U.UF.EV.stopBubble], [U.Img.Create, [([{ 'Thm': _r.DSmallImg, 'Img': _r.DImg}])]]]);
- $("#UCD_FB_N_N_N_S")[0].onclick = U.M.apply(this, [[U.CD.SL.PSubmit, ([SO, userid, node, ra])]]); //给提交按钮赋值
- if (!$("#UCD_FB2")[0]) {
- U.UF.UI.Form({ id: "UCD_FB2", style: { "width": "537px", "left": "690px", "top": "200px", "height": "537px" }, title: "发布项目窗口." });
- $("#UCD_FB2 .UD_SYF_SC")[0].childNodes[0].remove()
- $("#UCD_FB2 .UD_SYF_SC")[0].append($(".UCD_FB_N")[0]);
- } else {
- $("#UCD_FB2")[0].style.display = "block";
- }
- // if (_UDUP.style.display == "none") { U.D.PopupWindow(_UDUP); } //onclick直接响应
- }
- //单击发布按钮,发布到mysql
- U.CD.SL.PSubmit = function (SO, userid, node, ra) {
- var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie. _c.userid _c.username _c.Loginid
- if (!_c) { U.CD.U.LoginApply(); return; } //如果未登录,弹出登录窗口。
- //_n名字 _b简介 -i图片 _p价格。
- var _n = $("#UCD_FB_N_N_Name")[0].value, _b = $("#UCD_FB_N_N_T")[0].value;
- var _s = $("#UCD_FB_NR_IMG")[0].title; _i = $("#UCD_FB_NR_IMG")[0].src, _p = $("#UCD_FB_N_N_P")[0].value;
- var username = _c.username; //cookie中的用户名
- if (!$("#UCD_FB_N_N_Name")[0].value) { U.Alert("项目名称不能为空!"); return; } //项目名称不可以为空
- //id为项目id,存储在mongodb中,
- //提交到数据库,ra.value()表示提交到精华区域、学习区域的类型, U.CD.USLang表示提交到哪一个语言。"1"表示发布到首页。
- U.ACD.Request(U.CD.AjaxUrl, ([U.CD.SL.MySQL, "Add_Develop", node.ID, userid, username, _n, _b, _s, _i, _p, "1", U.CD.USLang, ra.value()]), U.CD.SL.PSubAsyn, ([""]));
- }
- //发布成功后异步函数。
- U.CD.SL.PSubAsyn = function (r) {
- r.value[0].length ? alert("发布项目成功") : alert("发布项目失败");
- }
- //新用户发布自己的项目
- U.CD.SL.PubPro = function () {
- var _c = U.CD.U.IsUSelf(); //获取用户登录Cookie. _c.userid _c.username _c.Loginid
- if (!_c) { U.CD.U.LoginApply(); return; } //如果未登录,弹出登录窗口。
- U.CD.SL.SelPro();
- // alert("请在右边项目区域单击操作图标,发布自己的项目,谢谢!!!!");
- // U.CD.RT.CProject(_c.userid, U.CD.U.CUser.TNode[0]);
- // U.CD.RT.Panel();
- }
- U.CD.SL.SelPro = function (node, UUID) {
- if (node != undefined) {
- var DetailsFrame = document.getElementById("UCD_SLPublish").getElementsByClassName("UD_SYF_SCO")[0];
- U.CD.RT.F_L_Node(node, UUID, DetailsFrame);
- $("#UCD_SLPublish")[0].style.display = "none";
- } else {
- $("#UCD_SLPublish")[0].style.display = "block";
- U.D.PopupWindow($("#UCD_SLPublish")[0]);
- }
- }
|