微信小程序投票系統的源碼,還缺后台,可以掃小程序參觀,有需要的可以聯系
wxml的
<!--pages/creat_vote/creat_vote.wxml-->
<!--pages/vote/vote.wxml-->
<!--pages/creat_appoint/creat_appoint.wxml-->
<import src="/pages/mytemplate1/mytemplate1.wxml"/>
<view class="input-list">
<view data-name="title" bindtap="changeimge">
<view class="tem" >
<image style="width:100%;height:300rpx;" src="{{hosturl+vote.imgUrls}}" ></image>
</view>
<view class="vote-title-mana" data-id="{{idx}}" data-index="{{index}}">
<view class="row-box-vote">
<view class="text" data-index="{{idx}}" data-indexx="{{index}}">換圖</view>
</view>
</view>
</view>
<view class="input-item">
<view class="row-box">
<text class="input-item-label">投票活動標題</text>
</view>
<view class="input-item-content">
<input data-name="vote_name" type="text" data-index="{{idx}}" value="{{vote.Name}}" bindinput='bindinput' placeholder="輸入活動名稱"></input>
</view>
</view>
<view class="input-item input-item-full">
<view class="row-box">
<view class="red-bj" wx:if="{{item.need}}">*</view>
<view><text class="input-item-label">簡介</text></view>
</view>
<textarea data-name="vote_descri" bindinput="bindinput" maxlength="-1" auto-height="true" data-index="{{idx}}" placeholder="活動說話、投票規則等" value="{{vote.Descri}}"></textarea>
</view>
<!--編輯規則時間點設置-->
<view>
<view class="input-item">
<veiw class="page__title"><text>規則設置</text></veiw>
<view class="row-box">
<block wx:if="{{!unit_setup.ispart}}">
<view class="tui-col-5b">
<view>開始時間:</view>
<picker data-name="Star_datetime" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
<view class="apppoint-pickbox-vote">
{{vote.Star_datetime}}
</view>
</picker>
</view>
<view class="tui-col-5b">
<view>結束時間:</view>
<picker data-name="End_datetime" mode="multiSelector" bindchange="bindMultiPickerChange" bindcolumnchange="bindMultiPickerColumnChange" value="{{multiIndex}}" range="{{multiArray}}">
<view class="apppoint-pickbox-vote">
{{vote.End_datetime}}
</view>
</picker>
</view>
</block>
<view class="tui-col-5a">
<view>一天</view>
<label class="exam-radio">
<radio data-name="one_date" data-index="{{idx}}" bindtap="checkboxchang" checked="{{vote.Count_way==1}}"/>
</label>
<view>總共</view>
<label class="exam-radio">
<radio data-name="all_date" data-index="{{idx}}" bindtap="checkboxchang" checked="{{vote.Count_way==0}}"/>
</label>
</view>
<view class="tui-col-5a">
<view>可投票次數:</view>
<input data-name="Vote_count" data-index="{{idx}}" class="appoint-input" type="number" value="{{vote.Vote_count}}" bindinput='bindinput'></input>
</view>
<view class="tui-col-5a">
<view>是否顯示得票數:</view>
<label class="checkbox">
<checkbox data-name="Ishide_Item_VoteTotal" data-index="{{idx}}" bindtap="checkboxchang" checked="{{vote.Ishide_Item_VoteTotal===1}}"/>
</label>
</view>
<view class="tui-col-5a">
<view>是否有簡介頁:</view>
<label class="checkbox">
<checkbox data-name="Ishas_Descri" data-index="{{idx}}" bindtap="checkboxchang" checked="{{vote.Ishas_Descri===1}}"/>
</label>
</view>
<view class="tui-col-5a">
<view>正在進行:</view>
<label class="checkbox">
<checkbox data-name="Is_service" data-index="{{idx}}" bindtap="checkboxchang" checked="{{vote.Is_service===1}}"/>
</label>
</view>
<view class="tui-col-5a">
<view>單分類</view>
<label class="exam-radio">
<radio data-name="onecategory" data-index="{{idx}}" bindtap="checkboxchang" checked="{{vote.One_or_mult_category==0}}"/>
</label>
<view>多分類</view>
<label class="exam-radio">
<radio data-name="multcategory" data-index="{{idx}}" bindtap="checkboxchang" checked="{{vote.One_or_mult_category==1}}"/>
</label>
</view>
</view>
</view>
</view>
<view>
<block wx:for='{{vote.Vote_item}}' wx:key='form_field_id' wx:for-item="item" wx:for-index="idx" data-index='{{form_field_id}}'>
<template is="{{item.typename}}edit" data="{{item,idx,datetime,hosturl,vote,istemaddress}}"/>
</block>
</view>
<view wx:if="{{vote.One_or_mult_category==1}}"><button type="primary" bindtap="addcategory" style="width:100%;#78C652;">添加分類</button></view>
<!--模板方式調入機構設置-->
<!--mask-->
<view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="{{showModalStatus}}"></view>
<!--content-->
<!--使用animation屬性指定需要執行的動畫-->
<view animation="{{animationData}}" class="drawer_box" wx:if="{{showModalStatus}}">
<view class="showwin" data-name="child" bindtap="changeimge">
<image style="width:400rpx;height:400rpx;" src="{{hosturl+select_item_child.image_addree}}"></image>
</view>
<view class='listItem'>
<view class="input-item">
<view class="row-box">
<view class="vote-text"><text>名稱:</text></view>
<input data-name="item_child.name" class="vote-title-input" type="text" data-index="{{idx}}" value="{{select_item_child.name}}" bindinput='bindinput' placeholder="輸入名稱"></input>
</view>
<view class="row-box">
<view class="vote-text"><text>機構名稱:</text></view>
<input data-name="organ_name" class="vote-title-input" type="text" data-index="{{idx}}" value="{{select_item_child.unit}}" bindinput='bindinput' placeholder="輸入名稱"></input>
</view>
</view>
</view>
<veiw class="row-box2">
<view data-comname="edit_child" class="btn_ok" bindtap="powerDrawer" data-statu="close">取消</view>
<view data-comname="edit_child" class="btn_ok" bindtap="powerDrawer" data-statu="change">確定</view>
</veiw>
</view>
<!--mask-->
<view class="drawer_screen" bindtap="powerDrawer" data-statu="close" wx:if="{{showModalStatus1}}"></view>
<!--content-->
<!--提交發布的對話框屬性指定需要執行的動畫-->
<view animation="{{animationData1}}" class="drawer_box" wx:if="{{showModalStatus1}}">
<view class="input-list">
<view class="input-item">
<text class="input-item-label">表單標題:</text>
</view>
<view class="input-item">
<view hidden="{{Isfromtemplate}}" class="input-item-content">
<label class="checkbox">
<checkbox value="cb" data-index="{{idx}}" bindtap="istemplatecheck" checked="{{CheckStatus}}"/>作為公共模板提供他人使用
</label>
</view>
<view class="input-item-content">
<label class="checkbox">
<checkbox value="Canmulti" data-index="{{idx}}" bindtap="Canmulti" checked="{{Canmulti}}"/>單個用戶可錄入多條記錄
</label>
</view>
<view class="input-item-content">
<label class="checkbox">
<checkbox value="Isclose" data-index="{{idx}}" bindtap="Isclose" checked="{{Isclose}}"/>停止更改、錄入
</label>
</view>
<view class="input-item-content">
<label class="checkbox">
<checkbox value="Isclose" data-index="{{idx}}" bindtap="Canchang" checked="{{Isclose}}"/>提交后數據可修改
</label>
</view>
</view>
</view>
<veiw class="row-box2">
<view data-comname="build" class="btn_ok" bindtap="powerDrawer" data-statu="close">取消</view>
<view data-comname="build" class="btn_ok" bindtap="powerDrawer" data-statu="build">確定</view>
</veiw>
</view>
<view class="height_box"></view>
<view class="height_box"></view>
<view class="height_box"></view>
<view class="height_box"></view>
</view>
<view class="height_box"></view>
<view class="height_box"></view>
<!--底部-->
<view hidden="{{viewShowed2}}" class="cart-tab-wrp" style='bottom:{{inputBottom}}px'>
<view class="nav-tab-item3 {{selectedcom=='add'?'nav-tab-item_text':''}}" hover-class="navigator-hover" bindtap="testabc"><image src="{{selectedcom=='add'?'../images/add_02.png':'../images/icon_23.png'}}"></image><text>預 覽</text></view>
<view data-comname="build" class="nav-tab-item3 {{selectedcom=='ok'?'nav-tab-item_text':''}}" hover-class="navigator-hover" bindtap="powerDrawer" data-statu="open"><image src="{{selectedcom=='ok'?'../images/ok_02.png':'../images/ok_01.png'}}"></image><text>提交發布</text></view>
</view>
js的
import mcommon from '../../utils/util'
var QQMapWX = require('../../utils/qqmap-wx-jssdk.js');
var qqmapsdk;
const app = getApp();
var sysdata=app.globalData.api.sysdata();
var arrays=[];//為多級下拉框定義
var fielidex=0;//為多級下拉框定義
var listseachindex=-1;//下拉搜索框下標
var datetime=mcommon.formatTime(new Date());
Date.prototype.format = function (fmt) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小時
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
//用於時期時間選擇控件的方法
const date = new Date();
const years = [];
const months = [];
const days = [];
const hours = [];
const minutes = [];
//獲取年
for (let i = date.getFullYear(); i <= date.getFullYear() + 1; i++) {
years.push("" + i);
}
//獲取月份
for (let i = 1; i <= 12; i++) {
if (i < 10) {
i = "0" + i;
}
months.push("" + i);
}
//獲取日期
for (let i = 1; i <= 31; i++) {
if (i < 10) {
i = "0" + i;
}
days.push("" + i);
}
//獲取小時
for (let i = 0; i < 24; i++) {
if (i < 10) {
i = "0" + i;
}
hours.push("" + i);
}
//獲取分鍾
for (let i = 0; i < 60; i++) {
if (i < 10) {
i = "0" + i;
}
minutes.push("" + i);
}
Page({
/**
* 頁面的初始數據
*/
data: {
time: '',
multiArray: [years, months, days, hours, minutes],
multiIndex: [0, 9, 16, 10, 17],
choose_year: '',
imgUrls_back:"/UploadFiles/2028/img/2021/8/12/d17c80cf2f87418c95fce8e5736a2958_.jpg",
imgUrls:"/UploadFiles/2028/img/2021/8/12/d75103fb0c5b4af0825a7be73d6d0bdc_.jpg",
big_imgUrls:"",
istemaddress:false,
select_category_index:0,
select_item_index:0,
sysuserid:sysdata.sysuserid,
hosturl:sysdata.hosturl2,
vote:{
Idstr:'',
Organ_no:'1213',
Userid:0,
Name:'',
Descri:'',
Star_datetime:'',
End_datetime:'',//結束時間字符串
Vote_item:[],//提交時,要轉成string
Ishas_Descri:0,//是否有簡介頁
Count_way:1,//一個用戶可投票次數,1為每天N次,N為下方列,0為總共N次
Vote_count:1,//對應上方,可投票次數
Ishide_Item_VoteTotal:1,//是否顯示得票數,默認顯示
Creat_datatime:'',
Is_needtest:0,//是否需要驗證,這個后面再搞了
Exam_code:'2323',//驗證串碼,似乎沒有用
QrCodeurl:'112',//二維碼地址
Is_service:1,//1正在進行,,0,停止
One_or_mult_category:0,//0單分類,1多分類
Total_item:'',//參選統計
Total_voted:0,//總投票數
Total_visited:0,//訪問量
imgUrls_back:"/UploadFiles/2028/img/2021/8/12/d17c80cf2f87418c95fce8e5736a2958_.jpg",
big_imgUrls_back:"",
imgUrls:"/UploadFiles/2028/img/2021/8/12/d75103fb0c5b4af0825a7be73d6d0bdc_.jpg",
big_imgUrls:"",
},
vote_item:{
id:0,
selected:false,//是否選擇,用於上移下移
typename:'vote',
name:'',
one_or_mult:0,//單選或多選,0,單選,1,多選
maxnum:1,//多選時,最多可選多少個
has_vote_count:0,//個人用戶記錄,已經給多少個投了票,這個是對於多選的,只記錄當天的
vote_item_child:[
]
},//大的框架
vote_item_child:{
id:0,
has_voted:false,
name:'小奶狗',
name:'小奶狗',
unit:'光明',//單位
image_addree:'/sysfile/images/ng1.jpg',//圖片地址
big_image_addree:'/sysfile/images/ng1.jpg',
descri:'',//簡介
vote_count:0,//得票數
rank:0,//排名
exten_mess:'',//預留擴展信息
},//本地使用,添加到
select_item_child:{},
},
/**
* 生命周期函數--監聽頁面加載
*/
onLoad: function (options) {
console.log(options)
var that=this;
let frompage="";//哪里轉過來的,模板還是修改表單
var conetcode="";
var voteid =0
voteid = options.formtableid || decodeURIComponent(options.scene);
var userinfo=app.globalData.users;
var userid=userinfo.userid;
//console.log(userid)
this.setData({
choose_year: this.data.multiArray[0][0]
})
console.log(voteid)
if(voteid!=="undefined"&&voteid!==0&&voteid!==null)
{
that.GetVote(voteid);
}else
{
that.vote_sys();
that.addcategory();
}
},
//更換頁頭的圖片
chang_image:function(e)
{
},
async testabc(){
var that=this;
var userinfo=app.globalData.users;
var userid=userinfo.userid;
// var userid=await that.getuserinfo1();
console.log(userid);
if(userid==-1||userid===null||userid==="undefined")
{
wx.showModal({
title: '提示',
content: '將覆蓋已有數據,請輸入數據更改較驗碼!',
showCancel:true,
success (res) {
if (res.confirm) {
userid=that.getuserinfo1();
}
}
})
}
},
async getuserinfo1()
{
var that=this;
var userid=-1;
await app.AnginLogin1();
wx.showLoading({
title: '登錄中',
})
setTimeout(function () {
var userinfo=app.globalData.users;
userid=userinfo.userid;
wx.hideLoading()
}, 2000)
return userid;
},
//表投票主表
async GetVote(voteid)
{
var that=this;
var data={
"id":voteid
}
var url=sysdata.hosturl+'GetVote';
var backdata= await app.globalData.api.getRequest(url,data);
console.log(backdata)
if(backdata.data)
{
// var conetcode=backdata.data[0].Idstr;
that.data.vote=backdata.data.votelist[0]
that.data.vote.Vote_item=JSON.parse(backdata.data.votelist[0].Vote_item)
that.setData({
vote:that.data.vote
})
// that.getappointlist(conetcode)
}
console.log(backdata)
},
//制作serial_no
getserial_no:function()
{
var datetimestr=mcommon.formatTime1(new Date())
var rannum=mcommon.getRanNum();
return datetimestr+rannum
},
//這個是更新
add_vote:function(){
var that = this;
var userid=-1;
// var idstr=that.getserial_no();
var url=sysdata.hosturl+'Vote_change';//這個是去添加的
// var url1= sysdata.hosturl+'Appoint_change';//這個是去添加的
var userinfo=app.globalData.users;
// var twoarray=that.data.twoarray;
userid=userinfo.userid;
if(userid==-1)
{
userid=that.getuserinfo1();
}else{
var datetime=new Date();
var datetimestr=datetime.format("yyyy-MM-dd hh:mm:ss")
var vote_item=that.data.vote.Vote_item;
var Total_item=0;
for(let i=0;i<vote_item.length;i++)
{
Total_item=Total_item+vote_item[i].vote_item_child.length;
}
// var data={}
var data=that.data.vote;
// data.Idstr=idstr;
data.Userid=userid;
data.Total_item=Total_item;
data.Creat_datatime=datetimestr;
// data.Id=0;
if(data.Name==="")
{
wx.showToast({
title:'標題不能為空', //標題
icon: 'success', //圖標 none不使用圖標,詳情看官方文檔
duration: 2000
})
}
else{
wx.showModal({
title: '提示',
content: '將覆蓋已有數據,請輸入數據更改較驗碼!',
showCancel:true,
success (res) {
if (res.confirm) {
data.Vote_item=JSON.stringify(data.Vote_item)
that.postdata9(url,data);
// that.clearStorage(that.data.formtableid);
}
}
})
}
//}
}
},
async postdata9(url,data)
{
var that=this;
console.log(url)
console.log(data)
var backdata= await app.globalData.api.getRequest(url,data);
console.log(backdata)
var workscomstr="vote"
if(backdata.data.result=="OK")
{
var senddata={
formtableid:backdata.data.Id,
qrcodeurl:backdata.data.QrCodeurl,
formtabletitle:that.data.vote.Name,
workscomstr:workscomstr
}
var url1="../share/share?senddata="+JSON.stringify(senddata);
wx.showModal({
title: '提示',
content: '成功創建表單',
showCancel:true,
success (res) {
if (res.confirm) {
wx.navigateTo({
url: url1,
})
}
}
})
}
},
//初始化
vote_sys:function(){
var that=this;
var now=new Date();
//parseInt(endtimeStrs [0], 10);
var month=now.getMonth();
var day=now.getDate()
var hours=now.getHours()
var minutes=now.getMinutes()
var seconds=now.getSeconds()
var nowstr=now.format("yyyy-MM-dd hh:mm:ss")
that.data.multiIndex= [0, month, day-1, hours, minutes]
var enddatetime=now
enddatetime.setDate(now.getDate()+3)
var enddatetimestr=enddatetime.format("yyyy-MM-dd hh:mm:ss")
that.data.vote.Star_datetime=nowstr;
that.data.vote.End_datetime=enddatetimestr;
var idstr=that.getserial_no();
that.data.vote.Idstr=idstr;
that.setData({
vote:that.data.vote,
multiIndex:that.data.multiIndex
})
},
//分類上移選擇的字段
item_moveup:function(e)
{
var that=this;
var index=e.currentTarget.dataset.index;
//var indexx=e.currentTarget.dataset.indexx;
if(index>0)
{
that.data.vote.Vote_item.splice(index-1,0,that.data.vote.Vote_item[index])
that.data.vote.Vote_item.splice(index+1,1)
that.setData({
vote:that.data.vote,
})
}
},
//分類下移
item_movedown:function(e)
{
var that=this;
var index=e.currentTarget.dataset.index;
// var indexx=e.currentTarget.dataset.indexx;
if(index<that.data.vote.Vote_item.length-1)
{
that.data.vote.Vote_item.splice(index+2,0,that.data.vote.Vote_item[index])
that.data.vote.Vote_item.splice(index,1)
that.setData({
vote:that.data.vote,
})
}
},
//上移選擇的字段
moveup:function(e)
{
var that=this;
var index=e.currentTarget.dataset.index;
var indexx=e.currentTarget.dataset.indexx;
if(indexx>0)
{
that.data.vote.Vote_item[index].vote_item_child.splice(indexx-1,0,that.data.vote.Vote_item[index].vote_item_child[indexx])
that.data.vote.Vote_item[index].vote_item_child.splice(indexx+1,1)
that.setData({
vote:that.data.vote,
})
}
},
//下移
movedown:function(e)
{
var that=this;
var index=e.currentTarget.dataset.index;
var indexx=e.currentTarget.dataset.indexx;
if(indexx<that.data.vote.Vote_item[index].vote_item_child.length-1)
{
that.data.vote.Vote_item[index].vote_item_child.splice(indexx+2,0,that.data.vote.Vote_item[index].vote_item_child[indexx])
that.data.vote.Vote_item[index].vote_item_child.splice(indexx,1)
that.setData({
vote:that.data.vote,
})
}
},
//確定修改
change_item:function(){
var that=this;
var select_category_index=that.data.select_category_index;
var select_item_index=that.data.select_item_index;
that.data.vote.Vote_item[select_category_index].vote_item_child[select_item_index]=JSON.parse(JSON.stringify(that.data.select_item_child))
that.setData({
vote:that.data.vote
})
},
//彈窗文本框處理
bindinput:function(e)
{
console.log(e)
var that=this;
var name=e.currentTarget.dataset.name;
var index=e.currentTarget.dataset.index;
switch(name)
{
case "vote_name":
that.data.vote.Name=e.detail.value
break
case "vote_descri":
that.data.vote.Descri=e.detail.value
break
case "item_child.name":
that.data.select_item_child.name=e.detail.value
break
case "organ_name":
that.data.select_item_child.unit=e.detail.value
break
case "Vote_count":
that.data.vote.Vote_count=e.detail.value
break
case "maxnum":
that.data.vote.Vote_item[index].maxnum=e.detail.value
break
case "item_name":
that.data.vote.Vote_item[index].name=e.detail.value
break
}
that.setData({
select_item_child: that.data.select_item_child,
vote:that.data.vote
});
},
//接口
comman:function(fileTemp,name)
{
var that=this;
var temstr=that.data.select_item_child.image_addree;
var temstr1=that.data.vote.imgUrls;
switch(name)
{
case "child":
var temstr=that.data.select_item_child.image_addree;
var data= {
"filePath":that.data.select_item_child.big_image_addree,
"Sm_filePath":that.data.select_item_child.image_addree
};
if(temstr!=="/sysfile/images/ng1.jpg")
{
that.del_image(fileTemp,data)
}
else{
that.uploadImag(fileTemp,name)
}
break;
case "title":
var temstr1=that.data.vote.imgUrls;
var data1= {
"filePath":that.data.vote.big_imgUrls,
"Sm_filePath":that.data.vote.imgUrls
};
if(temstr1!=="/UploadFiles/2028/img/2021/8/12/d75103fb0c5b4af0825a7be73d6d0bdc_.jpg")
{
that.del_image(fileTemp,data1,name)
}
else{
that.uploadImag(fileTemp,name)
}
break;
}
},
//先刪除已經在圖片
async del_image(fileTemp,data,name){
var that=this;
var url= sysdata.hosturl+'DeledFilecom';
wx.showLoading({
title: '上傳中',
});
console.log(data)
var backdata=await app.globalData.api.getRequest(url,data);
wx.hideLoading();
console.log(backdata);
that.uploadImag(fileTemp,name);
},
//上傳圖片
async uploadImag(fileTemp,name){
var that=this;
var userinfo=app.globalData.users;
var userid=userinfo.userid;
var url=sysdata.hosturl+'UploadImageFile?address=img';
var data={
"NO":"1234567890",
"filename":that.data.vote.Name,
"Userid":userid
};
wx.showLoading({
title: '上傳中',
});
var backdata=await app.globalData.api.uploadfile(url,fileTemp,data);
wx.hideLoading();
console.log("wait comeback");
console.log(backdata);
var backobj=JSON.parse(backdata.data)
switch(name)
{
case "child":
that.data.select_item_child.image_addree=backobj.Sm_FilePath;
that.data.select_item_child.big_image_addree=backobj.FilePath;
that.setData({
select_item_child: that.data.select_item_child,
});
break;
case "title":
that.data.vote.imgUrls=backobj.Sm_FilePath;
that.data.vote.big_imgUrls=backobj.FilePath;
that.setData({
vote: that.data.vote,
});
break;
}
},
//更換圖片
changeimge:function(e){
var that=this;
console.log(e)
var name=e.currentTarget.dataset.name;
wx.chooseImage({
count: 1,
sizeType: ['original'],
sourceType: ['album', 'camera'], // 可以指定來源是相冊還是相機,默認二者都有
success: function (res) { // 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標簽的src屬性顯示圖片
console.log(res);
var tempFilesSize = res.tempFiles[0].size;
if(tempFilesSize <= 10200000){ //圖片小於或者等於5M時 可以執行獲取圖片
var tempFilePaths = res.tempFilePaths;
// that.del_image(tempFilePaths[0])
that.comman(tempFilePaths[0],name);
// var temselect_item_child=JSON.parse(JSON.stringify)
}else{ //圖片大於2M,彈出一個提示框
wx.showToast({
title:'上傳圖片不能大於5M!', //標題
icon:'none' //圖標 none不使用圖標,詳情看官方文檔
})
}
}
})
},
//編輯項目
edit_item:function(e){
var that=this;
var index=e.currentTarget.dataset.index;
var comname=e.currentTarget.dataset.comname;
var indexx=e.currentTarget.dataset.indexx;
var select_item_child=JSON.parse(JSON.stringify(that.data.vote.Vote_item[index].vote_item_child[indexx]))
that.setData({
select_category_index:index,
select_item_index:indexx,
select_item_child:select_item_child,
})
console.log(that.data.select_category_index,that.data.select_item_index)
var currentStatu="open"
this.util(currentStatu,comname)
},
//彈窗提示
powerDrawer: function (e) {
console.log(e)
var currentStatu = e.currentTarget.dataset.statu;
var comname=e.currentTarget.dataset.comname;
var that = this;
var userid=-1;
var userinfo=app.globalData.users;
userid=userinfo.userid;
if(userid==-1)
{
userid=that.getuserinfo1();
}
this.util(currentStatu,comname)
},
util: function (currentStatu,comname) {
var that=this;
var animation = wx.createAnimation({
duration: 200,
timingFunction: "linear",
delay: 0
});
this.animation = animation;
animation.opacity(0).rotateX(-100).step();
if(comname==="edit_child"){
this.setData({
animationData: animation.export()
})
}
else if(comname==="build")
{
this.setData({
animationData1: animation.export()
})
}
setTimeout(function ()
{
animation.opacity(1).rotateX(0).step();
if(comname==="edit_child"){
this.setData({
animationData: animation
})
}
else if(comname==="build")
{
this.setData({
animationData1: animation
})
}
if (currentStatu == "close")
{
this.setData({
showModalStatus: false,
showModalStatus1: false
});
}
if (currentStatu == "build")
{
that.add_vote();
this.setData({
showModalStatus1: false
});
}
if (currentStatu == "change")
{
that.change_item();
this.setData({
showModalStatus: false,
});
}
}.bind(this), 200)
if (currentStatu == "open") {
if(comname==="edit_child"){
this.setData({
showModalStatus: true
})
}
else if(comname==="build")
{
this.setData({
showModalStatus1: true
})
}
}
},
//設置的選擇框方法
checkboxchang:function(e){
var that=this;
var name=e.currentTarget.dataset.name;
var index=e.currentTarget.dataset.index;
switch(name)
{
case "Is_one":
that.data.vote.Vote_item[index].one_or_mult=0
break
case "Is_mult":
that.data.vote.Vote_item[index].one_or_mult=1
break
case "onecategory":
var cate_count=that.data.vote.Vote_item.length;
if(cate_count<2)//已經有兩個分類的,不可選
{
that.data.vote.One_or_mult_category=0
}
break
case "multcategory":
that.data.vote.One_or_mult_category=1
break
case "one_date":
that.data.vote.Count_way=1
break
case "all_date":
that.data.vote.Count_way=0
break
case "Ishide_Item_VoteTotal":
that.data.vote.Ishide_Item_VoteTotal=that.data.vote.Ishide_Item_VoteTotal==1?0:1
break
case "Ishas_Descri":
that.data.vote.Ishas_Descri=that.data.vote.Ishas_Descri==1?0:1
break
case "Is_service":
that.data.vote.Is_service=that.data.vote.Is_service==1?0:1
break
}
that.setData({
vote: that.data.vote
})
},
//刪除項目
delitemchild:function(e){
console.log(e)
var that=this;
var index=e.currentTarget.dataset.index;
var indexx=e.currentTarget.dataset.indexx;
that.data.vote.Vote_item[index].vote_item_child.splice(indexx,1);
that.setData({
vote:that.data.vote
})
},
//增加項目
additemchild:function(e){
var that=this;
var index=e.currentTarget.dataset.index;
var vote_item_child=JSON.parse(JSON.stringify(that.data.vote_item_child));
vote_item_child.id=that.getserial_no();
that.data.vote.Vote_item[index].vote_item_child.push(vote_item_child);
that.setData({
vote:that.data.vote
})
},
//刪除分類
delcategory:function(e){
console.log(e)
var that=this;
var index=e.currentTarget.dataset.index;
var vote_item=JSON.parse(JSON.stringify(that.data.vote_item));
that.data.vote.Vote_item.splice(index,1);
that.setData({
vote:that.data.vote
})
},
//添加分類,
addcategory:function(){
var that=this;
var vote_item_child=that.data.vote_item_child;
var vote_item=JSON.parse(JSON.stringify(that.data.vote_item));
var vote=that.data.vote;
vote_item.vote_item_child=[]
vote_item_child.id=that.getserial_no()
vote_item.vote_item_child.push(vote_item_child);
var vote_item_child2=JSON.parse(JSON.stringify(that.data.vote_item_child));
vote_item_child2.id=that.getserial_no();
vote_item.vote_item_child.push(vote_item_child2);
// vote.Vote_item=[];
vote_item.id=that.getserial_no();
vote.Vote_item.push(vote_item);
// vote.Vote_item.push(vote_item);
that.setData({
vote:vote
})
},
//獲取時間日期
bindMultiPickerChange: function(e) {
console.log(e)
var that=this;
var name=e.currentTarget.dataset.name
this.setData({
multiIndex: e.detail.value
})
const index = this.data.multiIndex;
const year = this.data.multiArray[0][index[0]];
const month = this.data.multiArray[1][index[1]];
const day = this.data.multiArray[2][index[2]];
const hour = this.data.multiArray[3][index[3]];
const minute = this.data.multiArray[4][index[4]];
// console.log(`${year}-${month}-${day}-${hour}-${minute}`);
if(name==='Star_datetime')
{
that.data.vote.Star_datetime=year + '-' + month + '-' + day + ' ' + hour + ':' + minute+':00'
}
else if(name==="End_datetime")
{
var datestr=year + '-' + month + '-' + day + ' ' + hour + ':' + minute+':00'
var stardatetime= mcommon.stringToDate(that.data.vote.Star_datetime);
var enddatetime=mcommon.stringToDate(datestr);
if(enddatetime<stardatetime)
{
wx.showToast({
title: '結束日期要大於開始日期',
icon: 'success',
duration: 2000
});
}
else{
that.data.vote.End_datetime=datestr;
}
}
this.setData({
vote: that.data.vote
})
// console.log(this.data.time);
},
//監聽picker的滾動事件
bindMultiPickerColumnChange: function(e) {
console.log(e)
//獲取年份
if (e.detail.column == 0) {
let choose_year = this.data.multiArray[e.detail.column][e.detail.value];
console.log(choose_year);
this.setData({
choose_year
})
}
console.log('修改的列為', e.detail.column, ',值為', e.detail.value);
if (e.detail.column == 1) {
let num = parseInt(this.data.multiArray[e.detail.column][e.detail.value]);
let temp = [];
if (num == 1 || num == 3 || num == 5 || num == 7 || num == 8 || num == 10 || num == 12) { //判斷31天的月份
for (let i = 1; i <= 31; i++) {
if (i < 10) {
i = "0" + i;
}
temp.push("" + i);
}
this.setData({
['multiArray[2]']: temp
});
} else if (num == 4 || num == 6 || num == 9 || num == 11) { //判斷30天的月份
for (let i = 1; i <= 30; i++) {
if (i < 10) {
i = "0" + i;
}
temp.push("" + i);
}
this.setData({
['multiArray[2]']: temp
});
} else if (num == 2) { //判斷2月份天數
let year = parseInt(this.data.choose_year);
console.log(year);
if (((year % 400 == 0) || (year % 100 != 0)) && (year % 4 == 0)) {
for (let i = 1; i <= 29; i++) {
if (i < 10) {
i = "0" + i;
}
temp.push("" + i);
}
this.setData({
['multiArray[2]']: temp
});
} else {
for (let i = 1; i <= 28; i++) {
if (i < 10) {
i = "0" + i;
}
temp.push("" + i);
}
this.setData({
['multiArray[2]']: temp
});
}
}
console.log(this.data.multiArray[2]);
}
var data = {
multiArray: this.data.multiArray,
multiIndex: this.data.multiIndex
};
data.multiIndex[e.detail.column] = e.detail.value;
this.setData(data);
},
/**
* 生命周期函數--監聽頁面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函數--監聽頁面顯示
*/
onShow: function () {
},
/**
* 生命周期函數--監聽頁面隱藏
*/
onHide: function () {
},
/**
* 生命周期函數--監聽頁面卸載
*/
onUnload: function () {
},
/**
* 頁面相關事件處理函數--監聽用戶下拉動作
*/
onPullDownRefresh: function () {
},
/**
* 頁面上拉觸底事件的處理函數
*/
onReachBottom: function () {
},
/**
* 用戶點擊右上角分享
*/
onShareAppMessage: function () {
}
})
