Namespace.register("U.MD.D.B"); //背景设置
U.MD.D.B.url = "/img/background/ZMYT.jpg"; //默认背景设计图
U.MD.D.B.backUrl = ""; //存放默认壁纸的全局变量
/*
* 作用: 弹出桌面背景框
*
*/
U.MD.D.B.init = function () {
if ($("#U_MD_D_A_A")[0]) {//判断是否有系统图片
return U.selectEl("#U_MD_D_A_A").css("display", "block")//显示系统图片
}
var _systemimg = U.selectEl("#U_MD_D_Set_BG").css("display", "block")[0]//显示系统图片
//创建系统设置的弹窗
var _system = new U.UF.UI.form("
系统设置
",
_systemimg,
{
"id": "U_MD_D_A_A",
"style": {
"width": "746px",
"height": "500px"
}
},
{
isnarrow: false,
isenlarge: false
}).form;
U.MD.D.B.look(); //添加图片到_el
return _system; //返回父级元素
}
/*
* 作用: 打印默认可选择的背景图片
*
*/
U.MD.D.B.look = function () {
var i, _img, _imgparent, //i循环所有图片 _img获取显示图片的div _imgparent获取创建包含图片的div层
_frag = $$("frag"), //创建图片的最高级元素
_url = "/img/background/", //图片地址
_pchild = U.selectEl($("#U_MD_D_Set_BG").childs()[0]).Child(), //获取父级元素的第一个子元素,并且获取默认壁纸div
_imgname = ["3DBox", "cloud", "fruit", "green", "userbackgound", "Dream_train", "ZMYT"], //建立包含图片名称的对象
_img = U.selectEl(_pchild[0]).Child()[1]; //获取显示图片的div
_img.innerText = ""; //清空显示图片的div
if (_imgname.hasOwnProperty) {//忽略从原型链继承的属性
for (i = 0; i < _imgname.length; i++) {
_imgparent = $$("div", { "className": "U_MD_D_Set_BG_OCO", "title": "设为背景",
"onclick": U.UF.C.closure(function (i) {//U.UF.C.closure 解决闭包问题
U.MD.D.B.setBackgroundImage(_url + _imgname[i] + ".jpg"); //给每一个默认壁纸图片添加点击事件
}, [i])
}, _frag); //创建包含图片的div
_imgparent = $$("div", {}, _imgparent); ////创建包含图片的div的下层div_url + _imgname[i][j] + "(1)." + i
var _addimg = U.UF.IMG.imgReady(_url + _imgname[i] + "(1).jpg", null, function () { /**U.MD.D.H.DYWPTP(_imgparent);*/ }, function () { U.MD.C.imgError(this); }); //获取图片 添加图片
_imgparent.appendChild(_addimg); //添加图片到父级元素中,并显示出来
}
}
_img.appendChild(_frag); //图片添加到默认图片
}
/*
* 作用: 切割图片的路径包括图片文件夹和图片的名称的字符串数组
* @param {array} imageurl 图片路径
* return {array} 返回切割好的数组
*/
U.MD.D.B.split = function (imageurl) {
if (imageurl) {//参数有值
var _i = imageurl.lastIndexOf("/"); //获取/最后出现的位置
return [imageurl.substr(0, _i), imageurl.substr(_i + 1)]; //图片文件夹 和 图片的名称 的字符串数组
}
return ["", ""]; //返回切割好的数组
}
/*
* 作用:同作用于服务器,通过数据库修改,完成壁纸的更改
* @param {array} url 图片的路径
* @param {string} str 图片的标识
*/
U.MD.D.B.asyn = function (url, str) {
if (!U.MD.U.L.isLogin()) {//判断用户是否登录,如果未登录,则弹出登录窗体
url = url || U.MD.D.B.backUrl[0]; //获取图片的地址
str = str || U.MD.D.B.backUrl[1]; //获取图片的标识
US.userInfo.UserBackGroundImage = url; //讲图片的地址传入服务器中
U.alert("修改中.."); //弹出提示框
//插入数据库,并且通过数据返回数据出来。
U.A.Request(US.CD, [US.DB, "UseStudio_Users", "UpdateUserDesktopInfo", US.userInfo.userid, url + "/" + str, "", ""],
function () { U.alert("设置成功"); }); //对调函数,弹出提示框
// U.A.Request('UseStudioManage.SetUserBackgroudnImage', [US.userInfo.userid, url, str], function(){U.alert("设置成功");}, []);
}
}
/*
* 作用:点击网盘上传图片
* @param {element} el 图片的元素
* @param {array} url 图片的路径
* @param {string} str 图片的标识
*/
U.MD.D.B.disk = function (el, url, str) {
U.MD.D.B.setBackgroundImage(url, "S"); //调用设置用户点击的背景图片的功能函数
}
/*
* 作用:设置用户点击的背景图片
* @param {array} imageurl 图片的地址
* @param {string} typename 图片的标识
*/
U.MD.D.B.setBackgroundImage = function (imageurl, typename) {
var _el = U.selectEl("#U_MD_D_BG")[0]; //需要设置背景图片的地方
typename = typename || "S"; //设置背景时 undefined 所以值是 "S"
//如果没有传递需要设置的背景图片,那么就设置默认的背景图片
if (imageurl == null) {//判断图片的路径是否正确
imageurl = U.MD.D.B.url; //如果图片的路径传值为空的话,则图片路径为默认图片路径
//判断是否有用户设置的图片路径,如果有,则改变全局变量的图片路径为用户设置的图片路径,如果没有,则用默认图片路径。
U.MD.D.B.backUrl = US.userInfo.UserBackGroundImage ? U.MD.D.B.split(US.userInfo.UserBackGroundImage) : [U.MD.D.B.url, typename];
} else {//如果图片的路径不为空
U.MD.D.B.backUrl = [imageurl, typename]; //则全局变量为图片的路径的传值,以及图片的标识传值
}
//各种背景设置
switch (typename) {
case "T": //标识为T时
//重叠出现
U.selectEl(el).addAttrArray({//改变图片路径
style: {
background: "#F0F0F0 url(" + imageurl + ")"
}
});
break; //跳出循环
case "M": //标识为M时
//原图大小
U.selectEl(el).addAttrArray({//改变图片为原图大小
style: {
background: "#F0F0F0 url(" + imageurl + ") 0 0 no-repeat"
}
});
break; //跳出循环
case "S": //标识为S时
//全屏展示
if (imageurl) {
U.selectEl(_el).addAttrArray({
style: {
filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + imageurl + ",sizingMethod=scale)",
background: "#F0F0F0 url(" + imageurl + ") 0 0 no-repeat",
backgroundSize: "100% 100%",
MozBackgroundSize: "100% 100%"
}
});
}
break; //全屏
default: break;
}
}
/*
* 作用:上传本地图片的设置
* @param {element} el 图片元素
*/
U.MD.D.B.upload = function (el) { //上传图片设置
if (U.UF.UP.isImg(el.value)) {//判断是否是图片
//上传图片 调用上传函数,传入图片元素,上传地址,上传成功的回调函数,回调函数的传参
U.UF.UP.inputUpload([el], "http://disk.1473.cn/USUpfile.ashx?typename=UploadWallpaper", U.MD.D.B.asynUp, [el]);
}
}
/*
* 作用:上传背景的设置
* @param {element} url 图片的元素
*/
U.MD.D.B.asynUp = function (url) { //上传背景设置
var i, _userchild, _imginfo, //i 循环图片文件信息的长度;_userchild 获取用户id的子元素;_imginfo获取图片的信息
_userinfo = US.userInfo; //用户信息
_userid = _userinfo.BHID, //用户的BHID?
_userchange = U.MD.DK.M.diskOperatingSwitch(_userinfo.UserId); //用户操作切换,可以查看多个用户的硬盘,所以需要切换。登录用户和非登录用户有不同权限。
r = url.value; //图片文件信息?
if (_userid && _userchange[_userid] && (_userchild = _userchange[_userid].Child)) {//false 不进去???
for (i = 0; i < r.length; i++) {//循环图片文件信息的长度
_imginfo = r[i]; //获取图片的信息
//上传文件成功后,由前端的数据结构生成一个数据实体,实际传参请参考函数里面的数据结构
_imginfo = new U.MD.DK.M.entity(_imginfo.UserFilesID, _imginfo.UserFilesSize, _imginfo.UserDirectoryID, _imginfo.UserFilesName, _imginfo.UserFilesName, _imginfo.UserFilesExtendName, US.FILESYSTEMURL + _imginfo.UserFilesServerName, _imginfo.UserFilesAddTime, _imginfo.UseFilesServerThumbnailName, 9999, null, "", 1, _imginfo.UserFilesDescript, "", null)
_userchange[_userid].Child.push(_imginfo); //把上传文件成功的数据结构插入数组中
}
}
U.MD.D.B.setBackgroundImage(U.MD.C.getHeadImage(r[0].UserFilesServerName)); //设置背景
}
/*
* 作用:从网盘上传图片
* @param {element} url 图片的元素
*/
U.MD.D.B.uploadByPan = function () {
U.MD.DK.VW.choseFile(function (obj) {
U.MD.D.B.setBackgroundImage('http://fs.1473.cn/' + obj.UserDirectoryUrl, 'S'); //给每一个默认壁纸图片添加点击事件
});
}