TMRAppBle/.bin/login.js

686 lines
16 KiB
JavaScript

(function() {
var Permission = {
hasPermission: function hasPermission(one_per) {
var perms = new Array();
if (one_per) {
perms.push(one_per);
} else {
var prs = document.getElementsByName("p_list");
for (var i = 0; i < prs.length; i++) {
if (prs[i].checked) {
perms.push(prs[i].value);
}
}
}
var rets = api.hasPermission({
list: perms
});
if (!one_per) {
console.log("判断结果:" + JSON.stringify(rets));
return;
}
return rets;
},
reqPermission: function reqPermission(perm, callback) {
var perms = new Array();
perms.push(perm);
api.requestPermission(
{
list: perms,
code: 1
},
function(ret, err) {
if (ret && ret.list.length > 0) {
callback(ret);
}
}
);
},
reqPermissions: function reqPermissions(perms, callback) {
api.requestPermissions(
{
list: perms,
code: 1
},
function(ret, err) {
if (ret && ret.list.length > 0) {
callback(ret);
console.log(JSON.stringify(ret));
}
}
);
}
};
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
enumerableOnly &&
(symbols = symbols.filter(function(sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
})),
keys.push.apply(keys, symbols);
}
return keys;
}
function _objectSpread2(target) {
for (var i = 1; i < arguments.length; i++) {
var source = null != arguments[i] ? arguments[i] : {};
i % 2
? ownKeys(Object(source), !0).forEach(function(key) {
_defineProperty(target, key, source[key]);
})
: Object.getOwnPropertyDescriptors
? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source))
: ownKeys(Object(source)).forEach(function(key) {
Object.defineProperty(
target,
key,
Object.getOwnPropertyDescriptor(source, key)
);
});
}
return target;
}
function _defineProperty(obj, key, value) {
key = _toPropertyKey(key);
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _toPrimitive(input, hint) {
if (typeof input !== "object" || input === null) return input;
var prim = input[Symbol.toPrimitive];
if (prim !== undefined) {
var res = prim.call(input, hint || "default");
if (typeof res !== "object") return res;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (hint === "string" ? String : Number)(input);
}
function _toPropertyKey(arg) {
var key = _toPrimitive(arg, "string");
return typeof key === "symbol" ? key : String(key);
}
var config = {
// schema: 'http',
// host: '192.168.0.107:8088',
schema: "https",
host: "tmr.nxcyx.com/api/",
path: "app/tmr",
secret: "776eca99-******-11e9-9897-*******"
};
function req(options) {
var baseUrl = config.schema + "://" + config.host + "/" + config.path + "/";
options.url = baseUrl + options.url;
return new Promise(function(resolve, reject) {
var data = options.data ? JSON.stringify(options.data.body) : "";
api.ajax(options, function(ret, err) {
console.log(
"[" +
options.method +
"] " +
options.url +
data +
" [" +
api.winName +
"/" +
api.frameName +
"]"
);
if (ret) {
resolve(ret);
api.hideProgress();
} else {
reject(err);
api.hideProgress();
}
});
});
}
/**
* GET请求快捷方法
* @constructor
* @param url {string} 地址
* @param options {Object} 附加参数
*/
function GET(url, options) {
if (options === void 0) {
options = {};
}
return req(
_objectSpread2(_objectSpread2({}, options), {}, {url: url, method: "GET"})
);
}
var DxxLoading = /*@__PURE__*/ (function(Component) {
function DxxLoading(props) {
Component.call(this, props);
}
if (Component) DxxLoading.__proto__ = Component;
DxxLoading.prototype = Object.create(Component && Component.prototype);
DxxLoading.prototype.constructor = DxxLoading;
DxxLoading.prototype.closeview = function() {
this.fire("closeview");
};
DxxLoading.prototype.render = function() {
return apivm.h(
"view",
{
class: "myloadingupview",
style: {display: this.props.show ? "flex" : "none"},
onClick: this.closeview
},
apivm.h(
"view",
{class: "myloadingview"},
apivm.h(
"view",
{class: "viewloading"},
apivm.h("image", {
class: "loadingImage",
src: "../components/loading.gif",
mode: "widthFix"
}),
apivm.h(
"view",
null,
apivm.h(
"text",
{class: "loadingtext"},
this.props.loadingtext ? this.props.loadingtext : "loading"
)
)
)
)
);
};
return DxxLoading;
})(Component);
DxxLoading.css = {
".myloadingupview": {
zIndex: "99999",
position: "absolute",
top: "0",
left: "0",
right: "0",
bottom: "0",
width: "100vw",
height: "100vh",
background: "rgba(0, 0, 0, 0.4)",
flexDirection: "row-reverse",
justifyContent: "center",
alignItems: "center"
},
".viewloading": {
width: "80px",
height: "80px",
textAlign: "center",
background: "#ffffff",
borderRadius: "6px",
padding: "10px",
justifyContent: "center",
alignItems: "center"
},
".loadingImage": {height: "30px", width: "30px"},
".loadingtext": {color: "#000000"}
};
apivm.define("dxx-loading", DxxLoading);
var Login = /*@__PURE__*/ (function(Component) {
function Login(props) {
Component.call(this, props);
this.data = {
//验证码文字
isCodeClick: false,
msgNum: "获取验证码",
phone: null,
code: null,
resCode: null,
codeSwitch: false,
isLoading: false,
isLogin: true
};
}
if (Component) Login.__proto__ = Component;
Login.prototype = Object.create(Component && Component.prototype);
Login.prototype.constructor = Login;
Login.prototype.apiready = function() {
this.ifHasPhone();
this.ifHasBle();
this.ifHasBleCle();
this.ifHasLocation();
var token = api.getPrefs({sync: true, key: "token"});
var sourceCow = api.getPrefs({sync: true, key: "sourceCow"});
if ("" != token && "" != sourceCow) {
api.openWin({
name: "index",
reload: true,
url: "../html/index1.html"
});
}
};
Login.prototype.ifHasLocation = function() {
var statusJson = Permission.hasPermission("location");
// console.log(('location'+JSON.stringify(statusJson)));
if (statusJson[0].granted == true);
else {
api.confirm(
{
title: "提醒",
msg: "需要开启定位权限,去设置?",
buttons: ["确认", "取消"]
},
function(ret, err) {
if (1 == ret.buttonIndex) {
Permission.reqPermission("location", function(ret, err) {
if (ret) {
if (ret.never == true) {
return;
} else {
if (ret.list[0].granted == true);
else {
return;
}
}
}
});
}
}
);
}
};
Login.prototype.ifHasPhone = function() {
var statusJson = Permission.hasPermission("phone");
// console.log(('phone'+JSON.stringify(statusJson)));
if (statusJson[0].granted == true);
else {
api.confirm(
{
title: "提醒",
msg: "需要开设备权限,去设置?",
buttons: ["确认", "取消"]
},
function(ret, err) {
if (1 == ret.buttonIndex) {
Permission.reqPermission("phone", function(ret, err) {
if (ret) {
if (ret.never == true) {
return;
} else {
if (ret.list[0].granted == true);
else {
return;
}
}
}
});
}
}
);
}
};
Login.prototype.ifHasBle = function() {
var statusJson = Permission.hasPermission("ble-scan");
// console.log(('ble-scan'+JSON.stringify(statusJson)));
if (statusJson[0].granted == true);
else {
api.confirm(
{
title: "提醒",
msg: "需要开蓝牙权限,去设置?",
buttons: ["确认", "取消"]
},
function(ret, err) {
if (1 == ret.buttonIndex) {
Permission.reqPermission("ble-scan", function(ret, err) {
if (ret) {
if (ret.never == true) {
return;
} else {
if (ret.list[0].granted == true);
else {
return;
}
}
}
});
}
}
);
}
};
Login.prototype.ifHasBleCle = function() {
var statusJson = Permission.hasPermission("ble-connect");
// console.log(('ble-connect'+JSON.stringify(statusJson)));
if (statusJson[0].granted == true);
else {
api.confirm(
{
title: "提醒",
msg: "需要开蓝牙权限,去设置?",
buttons: ["确认", "取消"]
},
function(ret, err) {
if (1 == ret.buttonIndex) {
Permission.reqPermission("ble-connect", function(ret, err) {
if (ret) {
if (ret.never == true) {
return;
} else {
if (ret.list[0].granted == true);
else {
return;
}
}
}
});
}
}
);
}
};
Login.prototype.handleGetCode = function() {
var that = this;
var _timeNum = 60;
if (that.data.phone != null && "" != that.data.phone) {
GET("sendSms?phone=" + that.data.phone)
.then(function(ret) {
if (ret.code == 200) {
api.toast({
msg: "短信发送成功,请注意查收",
location: "middle"
});
that.data.resCode = ret.data.verificationCode;
} else {
api.toast({
msg: "短信发送成功,请稍后重试",
location: "middle"
});
}
})
.catch(function(err) {
api.toast({
msg: JSON.stringify(err)
});
});
that.data.isCodeClick = true;
var _timer = setInterval(function() {
setTimeout(function() {
if (_timeNum === 0) {
that.data.msgNum = "获取验证码";
that.data.isCodeClick = false;
clearInterval(_timer);
return false;
}
_timeNum--;
that.data.msgNum = _timeNum + "s";
}, 0);
}, 1000);
} else {
api.toast({
msg: "手机号不能为空",
location: "middle"
});
}
};
Login.prototype.handeLogin = function() {
var _this = this;
if (!this.data.phone) {
api.toast({
msg: "手机号不能为空",
location: "middle"
});
} else if (!this.data.code && this.data.codeSwitch) {
api.toast({
msg: "验证码不能为空",
location: "middle"
});
} else if (this.data.code != this.data.resCode && this.data.codeSwitch) {
api.toast({
msg: "验证码错误,请重新发送",
location: "middle"
});
} else {
_this.data.isLoading = true;
GET("login?phonenumber=" + this.data.phone)
.then(function(ret) {
_this.data.isLoading = false;
api.toast({
msg: ret.msg,
location: "middle"
});
if (ret.code == 200) {
api.setPrefs({
key: "token",
value: ret.token
});
api.setPrefs({
key: "loginUser",
value: ret.loginUser
});
api.setPrefs({
key: "sourceCow",
value: ret.loginUser.sourceCow
});
api.openWin({
name: "index",
reload: true,
url: "../html/index1.html"
});
// if (ret.loginUser.sourceCow !=2 ) {
// api.openWin({
// name: 'index',
// reload:true,
// url:'../html/index.html'
// })
// }else{
// api.openWin({
// name: 'index',
// reload:true,
// url:'./index.stml'
// })
// }
var token = api.getPrefs({sync: true, key: "token"});
var sourceCow = api.getPrefs({sync: true, key: "sourceCow"});
}
})
.catch(function(err) {
api.toast({
msg: JSON.stringify(err)
});
});
}
};
Login.prototype.render = function() {
var this$1 = this;
return apivm.h(
"view",
{class: "login_wrap"},
apivm.h("dxx-loading", {
loadingtext: "正在登录...",
show: this.data.isLoading
}),
apivm.h(
"view",
{
class: "login_form",
style: {display: this.data.isLogin ? "flex" : "none"}
},
apivm.h(
"view",
{class: "login_form_title"},
apivm.h("text", {class: "login_title_text"}, "TMR饲喂管理")
),
apivm.h(
"view",
{class: "login_form_content"},
apivm.h(
"view",
{class: "login_form_item"},
apivm.h("text", {class: "item_label"}, "手机号: "),
apivm.h(
"view",
{class: "item_input_content"},
apivm.h("input", {
type: "text",
"keyboard-type": "tel",
class: "input",
name: "name",
onInput: function(e) {
if (typeof phone != "undefined") {
phone = e.target.value;
} else {
this$1.data.phone = e.target.value;
}
},
placeholder: "请输入手机号",
value: typeof phone == "undefined" ? this.data.phone : phone
})
)
),
apivm.h(
"view",
{class: "login_form_item"},
apivm.h("text", {class: "item_label"}, "验证码: "),
apivm.h(
"view",
{class: "item_input_content"},
apivm.h("input", {
type: "text",
"keyboard-type": "number",
class: "input2",
name: "psw",
onInput: function(e) {
if (typeof code != "undefined") {
code = e.target.value;
} else {
this$1.data.code = e.target.value;
}
},
placeholder: "请输入验证码",
value: typeof code == "undefined" ? this.data.code : code
}),
apivm.h(
"button",
{
type: "button",
class: this.data.isCodeClick ? "disabled_yam" : "login_yzm",
disabled: this.data.isCodeClick,
onClick: this.handleGetCode
},
this.data.msgNum
)
)
),
apivm.h(
"button",
{type: "button", class: "login_btn", onClick: this.handeLogin},
"立即登录"
)
)
)
);
};
return Login;
})(Component);
Login.css = {
".login_wrap": {
width: "100%",
height: "100%",
backgroundSize: "150%",
backgroundRepeat: "no-repeat",
backgroundPosition: "center",
position: "relative",
backgroundImage: 'url("../image/bg_img.jpg")'
},
".login_form": {
position: "absolute",
top: "45%",
right: "10%",
transform: "translateY(-45%)",
boxSizing: "border-box",
backgroundColor: "#ffffff",
padding: "2%",
borderRadius: "10px",
width: "50%"
},
".login_form_title": {width: "100%", textAlign: "center", margin: "10px 0"},
".login_title_text": {fontSize: "20px", color: "#000000"},
".login_form_content": {marginTop: "20px", width: "100%"},
".login_form_item": {
display: "flex",
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
margin: "10px 0",
width: "100%"
},
".item_label": {
fontSize: "16px",
marginRight: "5px",
width: "20%",
textAlign: "right"
},
".item_input_content": {
width: "80%",
display: "flex",
flexDirection: "row",
alignItems: "center"
},
".input": {
width: "100%",
height: "40px",
boxSizing: "border-box",
padding: "5px 10px",
borderRadius: "8px"
},
".input2": {
height: "40px",
boxSizing: "border-box",
padding: "5px 10px",
borderRadius: "8px"
},
".login_yzm": {
backgroundColor: "#407ae6",
color: "#ffffff",
marginLeft: "5px",
fontSize: "14px",
opacity: "1"
},
".login_btn": {
width: "80%",
height: "48px",
lineHeight: "24px",
margin: "30px auto 20px",
backgroundColor: "#407ae6",
color: "#ffffff",
fontSize: "16px"
},
".disabled_yam": {
opacity: "0.7",
backgroundColor: "#407ae6",
color: "#ffffff",
marginLeft: "5px",
fontSize: "14px"
}
};
apivm.define("login", Login);
apivm.render(apivm.h("login", null), "body");
})();