目錄結構
config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config scope="client" clientversion="4" devicetype="all" theme="skin-cyan">
<appid>activity_manger</appid>
<appname>活動管理</appname>
<description></description>
<version>1.1.0</version>
<date>2018-07-03</date>
<homepage src="res:page/login.uixml"/>
<faultconfig src=""/>
<access network="true" gps="true" camera="true" certificate="true" land="false" orientation="port"/>
<vendor email="" url=""/>
<icon main="res:image/main.png" logo="res:image/logo.png"/>
</config>
login.uixml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.nj.fiberhome.com.cn/exmobi.dtd">
<html>
<head>
<title show="false"/>
<style type="text/css">
input[type=text]{
background-color:transparent;
border-size:0;
border-radius:4;
margin:3 0;
height:50;
padding:0 4;
color:#525252;
}
input[type=password]{
background-color:transparent;
border-size:0;
border-radius:4;
margin:3 0;
height:50;
padding:0 4;
color:#525252;
}
font{
color:#8f8f8f;
}
switch{
overlay:none;
border-radius: 16;
align:right;
}
input[type="button"]{
width:100%;
margin:4 0 4 0;
height:45;
font-size:20dp;
border-radius:4;
}
.card{
border-radius:4;border-size: 1;border-color: #d9d9d9;background-color: white;
}
</style>
<script type="text/javascript" src="res:script/exmobi_lite/core.js"></script>
<script type="text/javascript">
<![CDATA[
function init(){
//記住密碼邏輯操作
var login_id = document.cache.getCache("ac_uid");
$("#login_id").val(login_id);
var login_pwd = document.cache.getCache("ac_pwd");
var rem_pwd = document.cache.getCache("ac_rem");
if(rem_pwd == "1"){
$("#rem_pwd").attr("checked",true);
$("#login_pwd").val(login_pwd);
}else{
$("#rem_pwd").attr("checked",false);
}
}
function dologin(){
var login_id = $("#login_id").val();
var login_pwd = $("#login_pwd").val();
if(login_id == ""){
$.showToast("請輸入用戶名");
return;
}
if(login_pwd == ""){
$.showToast("請輸入密碼");
return;
}
$.server({
url:'http://demo/checklogin',
type:'post',
dataType:'json',
data:'login_id='+login_id+'&login_pwd='+login_pwd,
success:function(data){
if(data.result == "success"){
var user_info =EncryptionUtil.base64Encode(ClientUtil.jsonToString(data.user_info));
document.cache.setCache("ac_uid",login_id);
if($("#rem_pwd").attr("checked")){
document.cache.setCache("ac_pwd",login_pwd);
document.cache.setCache("ac_rem","1");
}else{
document.cache.remove("ac_pwd");
document.cache.setCache("ac_rem","0");
}
window.setStringSession("user_info",user_info);
window.open("res:page/index.uixml");
}else{
$.showToast(data.msg);
}
},
error:function(data){
$.showToast("請求失敗,請檢測網絡");
},
isBlock:true
});
}
]]>
</script>
</head>
<body style="background-color:#f4f4f4;padding:0 10;" onload="init();">
<br size="40"/>
<img src="res:image/login3/logo.png" href="script:close" style="width:40%;align:center;"/>
<br size="40"/>
<div class="card">
<input type="text" prompt="請輸入用戶名" id="login_id" licon="res:image/login3/user.png"/>
<hr/>
<input type="password" prompt="請輸入密碼" id="login_pwd" licon="res:image/login3/pwd.png"/>
</div>
<br size="5"/>
<font>記住密碼</font>
<switch id="rem_pwd" ontext="" offtext="" value="1" checked="true"></switch>
<br size="5"/>
<input type="button" value="登錄" onclick="dologin();"/>
</body>
</html>
index.uixml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.nj.fiberhome.com.cn/exmobi.dtd">
<html style="background-image:url(res:image/main13/bg.png)">
<head>
<title show="false"/>
<link rel="stylesheet" type="text/css" href="res:css/global.css" />
<style type="text/css">
.case{
width:250;height:150;font-size:24;color:white;text-align:center;text-valign:middle;
margin:10 0 10 0;
}
.icon{
width:60;
}
</style>
<script type="text/javascript" src="res:script/exmobi_lite/core.js"></script>
<script type="text/javascript">
<![CDATA[
]]>
</script>
</head>
<header>
<titlebar title="活動管理" iconhref="script:close" hidericon="true"/>
</header>
<body style="text-align:center;text-valign:middle;background-color:transparent;">
<div class="case" href="script:popmenu(usermenu);" style="background-image:url(res:image/main13/greencase.png);background-click-image:url(res:image/main13/greencase_click.png)">
<img src="res:image/main13/myfault.png" class="icon"/>
<font style="margin:0 24 0 12">用戶管理</font>
</div>
<div class="case" href="script:popmenu(activitymenu);" style="background-image:url(res:image/main13/bluecase.png);background-click-image:url(res:image/main13/bluecase_click.png)">
<img src="res:image/main13/writefault.png" class="icon"/>
<font style="margin:0 24 0 12">活動管理</font>
</div>
<contextmenu id="usermenu" layout="vertical" showtype="normal" optiontype="text" title="用戶管理" shownumber="4">
<option caption="個人信息" onclick="res:page/userdetail.uixml?type=modify"></option>
<option caption="新增用戶" onclick="res:page/userdetail.uixml?type=add"></option>
</contextmenu>
<contextmenu id="activitymenu" layout="vertical" showtype="normal" optiontype="text" title="用戶管理" shownumber="4">
<option caption="活動列表" onclick="res:page/activity_list.uixml"></option>
<option caption="新增活動" onclick="res:page/add_activity.uixml"></option>
</contextmenu>
</body>
</html>
userdetail.uixml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.nj.fiberhome.com.cn/exmobi.dtd">
<html>
<head>
<title show="false"/>
<link rel="stylesheet" type="text/css" href="res:css/global.css"/>
<link rel="stylesheet" type="text/css" href="res:css/control.css"/>
<script type="text/javascript" src="res:script/exmobi_lite/core.js"></script>
<style type="text/css">
.label-left{
color:#333333;
width:30%;
font-size:20;
}
.label-right{
width:70%;
border-size:0;
}
.necessary-border{
border-color:red;
}
</style>
<script type="text/javascript">
<![CDATA[
var opt = window.getParameter("type");
function formsuc(data){
var rspJson = ClientUtil.stringToJson(data.responseText);
if(opt == "modify"){//個人信息修改頁面,提交成功後更新session中的用戶信息
var user_info =EncryptionUtil.base64Encode(ClientUtil.jsonToString(rspJson.currentUser));
window.setStringSession("user_info",user_info);
close();
}else{//新增用戶頁面,提交成功後直接關閉當前頁面
close();
}
$.showToast(rspJson.msg);
}
function formfail(data){
$.showToast("請求失敗,請檢測網絡");
}
function dosubform(){
$("#subform")[0].submit();
}
//個人信息回填頁面
function setUserInfo(user_info){
for(x in user_info){//循環用戶信息並回填至頁面
if( x != "sex"){
$("#"+x).val(user_info[x]);
}
}
if(user_info.sex == "1"){
$("#male").attr("checked",true);
$("#female").attr("checked",false);
}else{
$("#male").attr("checked",false);
$("#female").attr("checked",true);
}
$("#login_id").attr("readonly",true);
}
function init(){
if(opt == "modify"){//個人信息頁面,從session中取出個人信息,並回填頁面
$("#title").attr("title","個人信息");
var user_info =ClientUtil.stringToJson(EncryptionUtil.base64Decode(window.getStringSession("user_info")));
setUserInfo(user_info);//回填個人信息函數
}else{
$("#title").attr("title","新增用戶");
}
}
//新增用戶時,檢測帳號是否
function ifreat(){
$.server({
url:'http://checkrepeatloginid',
type:'post',
dataType:'json',
data:'login_id='+$("#login_id").val(),
success:function(data){
if(data.repeat == "1"){
$.showToast("該賬號已存在!");
}
},
error:function(data){
$.showToast("請求失敗,請檢測網絡");
}
});
}
]]>
</script>
</head>
<header>
<titlebar title="人員詳情" id="title" iconhref="script:close" riconhref="dosubform();" ricon="res:image/titlebar/ok.png" clickricon="res:image/titlebar/ok_click.png"/>
</header>
<body style="padding: 4 8" onload="init();">
<form id="subform" method="post" action="http://submituser" success="formsuc" fail="formfail">
<input type="hidden" id="user_uuid" value="" name="user_uuid"></input>
<font class="label-left" >登陸賬號:</font>
<input class="label-right" onchange="ifreat();" type="text" id="login_id" name="login_id" validate="required" validatemsg="請輸入登陸賬號" prompt="必填"/>
<hr/>
<font class="label-left" >登陸密碼:</font>
<input class="label-right" type="text" id="login_pwd" name="login_pwd" validate="required" validatemsg="請輸入登陸密碼" prompt="必填"/>
<hr/>
<font class="label-left">性別:</font>
<input type="radio" value="1" id="male" caption="男" name="sex" checked="true"/>
<input type="radio" value="2" id="female" caption="女" name="sex"/>
<hr/>
<font class="label-left">姓名:</font>
<input class="label-right" type="text" id="user_name" name="user_name" validate="required" validatemsg="請輸入姓名" prompt="必填"/>
<hr/>
<font class="label-left">手機號:</font>
<input class="label-right" inputlimit="digit" siptype="num" type="text" id="tel_no" name="tel_no"/>
<hr/>
<font class="label-left">身份證號:</font>
<input class="label-right" inputlimit="digit" siptype="num" maxlength="18" type="text" id="identify_id" name="identify_id"/>
<hr/>
<textarea rows="3" prompt="備註信息" name="remark" id="remark"></textarea>
</form>
</body>
</html>
activity_list.uixml
<html id="actlist">
<head>
<meta content="charset=utf-8"/>
<title show="false">活動列表</title>
<script type="text/javascript" src="res:script/exmobi_lite/core.js"></script>
<script type="text/javascript" src="res:script/exmobi_lite/template-native-exmobi.js"></script>
<script>
<![CDATA[
function codeActJson(actJson){
return EncryptionUtil.base64Encode(ClientUtil.jsonToString(actJson));
}
function actInfoClick(actInfoStr){
window.setStringSession("actInfo",actInfoStr);
window.open("res:page/act_detail.uixml");
}
template.helper("codeActJson",codeActJson);
template.helper("actInfoClick",actInfoClick);
function getActList(){
$.server({
url:'http://activity_list.jsp',
type:'post',
dataType:'json',
data:'actTitle='+$("#actTitle").val+"&actStatus="+$("#actStatus").val(),
success:function(data){
if(data.acts.length >0){
$.renderReplace('#actarea', 'res:page/act_list.template', data, function(h, t, o){
//h:注入後生成的html代碼,t:模板,o:data
});
}else{
$.showToast("未查詢到活動");
}
},
error:function(data){
$.showToast("請求失敗,請檢測網絡");
},
isBlock:true
});
}
]]>
</script>
<style type="text/css">
hr{
border-size:1apx;
border-color:#D0CDC8;
}
select{
border-size:0;
background-color:#F1F0EF;
}
.titlebar{
rcolor:white;
}
listitem{
iconwidth:60;
iconheight:45;
}
</style>
</head>
<header style="background-color: #F1F0EF">
<titlebar title="活動列表" class="titlebar" id="title" iconhref="script:close" rcaption="查詢" riconhref="getActList();"/>
<input type="text" style="border-size:0;width:100%;background-color: #F1F0EF;prompt-color: black" id="actTitile" prompt="活動標題"></input>
<hr/>
<select id="actStatus">
<option>請選擇活動狀態</option>
<option value="1">報名中</option>
<option value="2">報名截止</option>
<option value="3">進行中</option>
<option value="4">已結束</option>
</select>
</header>
<body style="padding: 4 0" id="actarea" onload="getActList();">
</body>
</html>
act_detail.uixml
<html>
<head>
<meta content="charset=utf-8"/>
<title show="false">活動詳情</title>
<script type="text/javascript" src="res:script/exmobi_lite/core.js"></script>
<script>
<![CDATA[
var actInfo;
function init(){
actInfo = ClientUtil.stringToJson(EncryptionUtil.base64Decode(window.getStringSession("actInfo")));
$("#act_uuid").val(actInfo.activity_uuid);
$("#actStatus").val(actInfo.actStatus);
window.beignPreferenceChange();/*開始批量刷新*/
$("#poster").attr("src","http://getimg.jsp?img_uuid="+actInfo.poster_img_uuid);
$("#poster").attr("href","http://getimg.jsp?img_uuid="+actInfo.poster_img_uuid);
$("#activity_title").html(actInfo.activity_title);
$("#activity_content").html(actInfo.activity_content);
if(actInfo.activity_imgs != ""){
var scrollObj = document.getElementById("scroll");
var imgIdArray = actInfo.activity_imgs.split(",");
var scrollData = new Array();
for(i=0;i<imgIdArray.length;i++){
var scrollJson = {};
scrollJson.src = "http://getimg.jsp?img_uuid="+imgIdArray[i];
scrollJson.href = "openfile:http://getimg.jsp?img_uuid="+imgIdArray[i];
scrollData.push(scrollJson);
}
scrollObj.loadData(scrollData);
$("#imgDiv").show();
}
$("#begin_time").html(actInfo.begin_time);
$("#end_time").html(actInfo.end_time);
$("#address").html(actInfo.address);
$("#deadline_time").html(actInfo.deadline_time);
$("#contact_tel").html(actInfo.contact_tel);
$("#contact_tel").attr("href","tel:"+actInfo.contact_tel);
var pl = actInfo.person_limit == "0"?"不限制":actInfo.person_limit;
$("#plimit").val(actInfo.person_limit);
$("#person_limit").html(pl);
$("#join_count").html(actInfo.join_count);
if(actInfo.necessary != ""){
var neceArray = actInfo.necessary.split(",");
var neceDict = {tel_no:"手機號",identify_id:"身份證","sex":"性別","remark":"備註"};
var innerBtn = '';
for(i=0;i<neceArray.length;i++){
var btnValue = "";
for(var x in neceDict){
if(x == neceArray[i]){
btnValue = neceDict[x];
break;
}
}
innerBtn += '<input type="button" value="button" value="'+btnValue+'" class="necessary-btn"></input>';
}
$("#needArea").html(innerBtn);
}
window.endPreferenceChange();/*結束批量刷新*/
}
function doSignup(){
var user_info =ClientUtil.stringToJson(EncryptionUtil.base64Decode(window.getStringSession("user_info")));
if($("#actStatus").val() != "報名中"){
$.showToast("活動"+$("#actStatus").val()+",不能報名");
return;
}
if($("#plimit").val() != "0"){
var limitCount = Number($("#plimit").val());
var joinCount = Number($("#join_count").html());
if(joinCount >= limitCount){
$.showToast("報名人數已滿,不能報名");
return;
}
}
if(actInfo.necessary != ""){
var neceArray = actInfo.necessary.split(",");
for(i=0;i<neceArray.length;i++){
for(var x in user_info){
if(x == neceArray[i] && user_info[x] == ""){
$.confirm("您有用戶報名必填項未填寫,是否跳轉至個人信息頁面修改?",function(){window.open("res:page/userdetail.uixml?type=modify");},function(){return;});
return;
}
}
}
}
$.server({
url:'http://signup_act.jsp',
type:'post',
data:'act_uuid='+$("#act_uuid").val()+"&user_uuid="+user_info.user_uuid,
dataType:'json',
success:function(data){
$.showToast(data.msg);
if(data.result == "success"){
var listWin = PageUtil.getWindowById("actlist");
listWin.callFunction("getActList");
close();
}
},
error:function(data){
$.showToast("請求失敗,請檢測網絡");
},
isBlock:true
});
}
]]>
</script>
<style type="text/css">
.cdiv{
background-color:white;
border-top-size:1apx;
border-bottom-size:1apx;
border-color:#D5D2CD;
margin:5 0;
}
.tipdiv{
padding: 10 2;
border-bottom-size:1apx;
border-color:#D5D2CD;
}
.blockicon{
width:20;
}
.textfont{
margin:10;
}
.lfont{
color:#323333;
width:30%;
margin:10 0 10 10;
}
.rlabel{
width:70%;
margin:10 0;
}
.necessary-btn{
border-radius:10;
width:20%;
}
</style>
</head>
<header>
<titlebar title="活動詳情" style="rcolor: white" id="title" iconhref="script:close" riconhref="doSignup();" rcaption="報名"/>
</header>
<body style="padding: 4 0;background-color: #F1F0EF" onload="init();">
<input type="hidden" value="" id="act_uuid"></input>
<input type="hidden" value="" id="actStatus"></input>
<input type="hidden" value="" id="plimit"></input>
<div class="cdiv" style="padding: 4;height:100">
<img id="poster" style="width: 100%;" src="" href="" urltype="openfile" cached="true"></img>
</div>
<div class="cdiv">
<div class="tipdiv">
<img class="blockicon" src="res:image/block.png" ></img>
<efont class="tipcolor">活動標題<subfont style="color: red"> *</subfont></efont>
</div>
<font class="textfont" id="activity_title"></font>
</div>
<div class="cdiv">
<div class="tipdiv">
<img class="blockicon" src="res:image/block.png" ></img>
<efont class="tipcolor">活動詳情<subfont style="color: red"> *</subfont></efont>
</div>
<font class="textfont" id="activity_content"></font>
<br/>
<div id="imgDiv" style="display: none;text-align: center">
<scrollpicture id="scroll" style="width:80%;height:145" interval="true"/>
</div>
</div>
<div class="cdiv">
<font class="lfont">開始時間</font>
<font id="begin_time" class="rlabel"></font>
<hr/>
<font class="lfont">結束時間</font>
<font id="end_time" class="rlabel"></font>
<hr/>
<font class="lfont">活動地址</font>
<font id="address" class="rlabel"></font>
<hr/>
</div>
<div class="cdiv">
<font class="lfont">報名截止</font>
<font id="deadline_time" class="rlabel"></font>
<hr/>
<font class="lfont">活動諮詢</font>
<a id="contact_tel" class="rlabel"></a>
<hr/>
<font class="lfont">人數限制</font>
<font id="person_limit" class="rlabel"></font>
<hr/>
<font class="lfont">已報名人數</font>
<font id="join_count" class="rlabel"></font>
<hr/>
<efont class="lfont" style="width: 100%;margin: 15 0 0 10;">用戶報名必填項</efont>
<br/>
<div style="padding: 10 0 10 10;" id="needArea">
</div>
</div>
</body>
</html>