208 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| const app = getApp()
 | ||
| const api = require("../../../utils/request.js");
 | ||
| Page({
 | ||
|   data: {
 | ||
|     formData: [
 | ||
|       {
 | ||
|         type: 'input',
 | ||
|         id:'name',
 | ||
|         lable:'考试名称',
 | ||
|         isRequired: true,//是否必填
 | ||
|         maxLength: 20,//最大长度
 | ||
|         defaultValue:'',//初始值
 | ||
|         rules:[//规则验证数组
 | ||
|           {
 | ||
|             regular: '^\\S*$',//正则字符串
 | ||
|             tips: '不能有空格'//错误提示
 | ||
|           },
 | ||
|         ]
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'input',
 | ||
|         id:'place',
 | ||
|         lable:'考试地点',
 | ||
|         isRequired: true,//是否必填
 | ||
|         maxLength: 50,//最大长度
 | ||
|         defaultValue:'',//初始值
 | ||
|         rules:[//规则验证数组
 | ||
|           {
 | ||
|             regular: '^\\S*$',//正则字符串
 | ||
|             tips: '不能有空格'//错误提示
 | ||
|           },
 | ||
|         ]
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'input',
 | ||
|         id: 'chance',
 | ||
|         lable: '考试机会',
 | ||
|         defaultValue: 3,
 | ||
|         inputType: 'digit', //对应input组件type值(text,number)
 | ||
|         placeholder: '请填写数字',
 | ||
|         isRequired: true,//是否必填
 | ||
|         //disabled:true,
 | ||
|         rules: [
 | ||
|           
 | ||
|         ]
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'picker',
 | ||
|         id: 'workscope',
 | ||
|         lable: '工作类别',
 | ||
|         defaultIdx:0,//默认选择索引
 | ||
|         // disabled:true,
 | ||
|         isRequired:true,
 | ||
|         range:[
 | ||
|           {
 | ||
|             id: 0,
 | ||
|             name: '正常'
 | ||
|           },
 | ||
|           {
 | ||
|             id: 1,
 | ||
|             name: '异常'
 | ||
|           },
 | ||
|         
 | ||
|         ]
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'date',
 | ||
|         id: 'daterange',
 | ||
|         lable: '开关时间',
 | ||
|         isRequired: true,
 | ||
|         /* 显示完整时间包含时分秒;当使用endDate的时候关闭,不要同时打开, 否则日期将会换行;
 | ||
|            与config中的colum属性共同设置
 | ||
|         */
 | ||
|         completeTime:true, //显示完整时间, 包含时分秒
 | ||
|         config: {
 | ||
|           endDate: true,
 | ||
|           dateLimit: true,
 | ||
|           // initStartTime: "2020-01-01 12:32:44",
 | ||
|           // initEndTime: "2020-12-01 12:32:44",
 | ||
|           column: "minute",//day、hour、minute、secend
 | ||
|           limitStartTime: "2000-01-01 00:00:59",
 | ||
|           limitEndTime: "2100-01-01 00:00:59"
 | ||
|         }
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'input',
 | ||
|         id:'proctor_name',
 | ||
|         lable:'监考人姓名',
 | ||
|         isRequired: true,//是否必填
 | ||
|         maxLength: 50,//最大长度
 | ||
|         defaultValue:'',//初始值
 | ||
|         rules:[//规则验证数组
 | ||
|           {
 | ||
|             regular: '^\\S*$',//正则字符串
 | ||
|             tips: '不能有空格'//错误提示
 | ||
|           },
 | ||
|         ]
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'input',
 | ||
|         id:'proctor_phone',
 | ||
|         lable:'监考人联系方式',
 | ||
|         isRequired: true,//是否必填
 | ||
|         maxLength: 50,//最大长度
 | ||
|         defaultValue:'',//初始值
 | ||
|         rules:[//规则验证数组
 | ||
|           {
 | ||
|             regular: '^\\S*$',//正则字符串
 | ||
|             tips: '不能有空格'//错误提示
 | ||
|           },
 | ||
|         ]
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'input',
 | ||
|         id:'train_name',
 | ||
|         lable:'培训名称',
 | ||
|         isRequired: false,//是否必填
 | ||
|         maxLength: 50,//最大长度
 | ||
|         defaultValue:null,//初始值
 | ||
|         rules:[//规则验证数组
 | ||
|           {
 | ||
|             regular: '^\\S*$',//正则字符串
 | ||
|             tips: '不能有空格'//错误提示
 | ||
|           },
 | ||
|         ]
 | ||
|       },
 | ||
|       {
 | ||
|         type: 'date',
 | ||
|         id: 'daterange2',
 | ||
|         lable: '培训时间',
 | ||
|         isRequired: false,
 | ||
|         /* 显示完整时间包含时分秒;当使用endDate的时候关闭,不要同时打开, 否则日期将会换行;
 | ||
|            与config中的colum属性共同设置
 | ||
|         */
 | ||
|         completeTime:false, //显示完整时间, 包含时分秒
 | ||
|         config: {
 | ||
|           endDate: true,
 | ||
|           dateLimit: true,
 | ||
|           // initStartTime: "2020-01-01 12:32:44",
 | ||
|           // initEndTime: "2020-12-01 12:32:44",
 | ||
|           column: "day",//day、hour、minute、secend
 | ||
|           limitStartTime: "2000-01-01 00:00:59",
 | ||
|           limitEndTime: "2100-01-01 00:00:59"
 | ||
|         }
 | ||
|       },
 | ||
|     ],
 | ||
|     toSubmit: Math.random()
 | ||
|   },
 | ||
|   onFormSubmit(e){
 | ||
|     console.log('表单提交: ', e);
 | ||
|     let x = {};
 | ||
|     x.opentime = e.detail.daterange.startDate;
 | ||
|     x.closetime = e.detail.daterange.endDate;
 | ||
|     x.train_name = e.detail.train_name.value;
 | ||
|     if (e.detail.daterange2.startDate){
 | ||
|       x.train_start_date = e.detail.daterange2.startDate
 | ||
|     }
 | ||
|     if (e.detail.daterange2.endDate){
 | ||
|       x.train_end_date = e.detail.daterange2.endDate
 | ||
|     }
 | ||
|     x.name = e.detail.name.value
 | ||
|     x.place = e.detail.place.value
 | ||
|     x.chance = e.detail.chance.value
 | ||
|     x.workscope = e.detail.workscope.original.range[e.detail.workscope.idx].id
 | ||
|     x.proctor_name = e.detail.proctor_name.value
 | ||
|     x.proctor_phone = e.detail.proctor_phone.value
 | ||
|     wx.showModal({
 | ||
|       content: '确认发布考试吗',
 | ||
|       success (res) {
 | ||
|         if (res.confirm) {
 | ||
|           api.requesta('/examtest/exam/', 'POST', x).then(res=>{
 | ||
|             let rdata = res.data
 | ||
|             wx.showModal({
 | ||
|               title: '发布成功',
 | ||
|               content: '考试号为' + rdata.code,
 | ||
|               showCancel: false,
 | ||
|               success (res) {
 | ||
|                 if (res.confirm) {
 | ||
|                   wx.redirectTo({
 | ||
|                     url: '/pages/admin/exam/detail?id='+rdata.id,
 | ||
|                   })
 | ||
|                 }
 | ||
|               }
 | ||
|             })
 | ||
|           })
 | ||
|         } 
 | ||
|       }
 | ||
|     })
 | ||
|   },
 | ||
|   onFormChange(e){
 | ||
|     //console.log('表单变化: ',e);
 | ||
|   },
 | ||
|   //变更数值, 触发表单提交事件
 | ||
|   toSubmitChange(){
 | ||
|     this.setData({
 | ||
|       toSubmit: Math.random()
 | ||
|     })
 | ||
|   },
 | ||
|   onLoad: function () {
 | ||
|     api.requesta('/examtest/workscope/?can_exam=true', 'GET').then(res=>{
 | ||
|       this.data.formData[3].range=res.data
 | ||
|       this.setData({
 | ||
|         formData: this.data.formData
 | ||
|       })
 | ||
|     })
 | ||
|   },
 | ||
| })
 |