微信小程序投票源碼


微信小程序投票系統的源碼,還缺后台,可以掃小程序參觀,有需要的可以聯系
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 () {

  }
})
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM