<template> <view :class="isUps == true ? 'prevent' : ''"> <cu-custom bgColor="bg-gradual-blueness" :isBack="true" > <block slot="backText">返回</block> <block slot="content">离岗申请</block> </cu-custom> <scroll-view scroll-y="false" > <view class="form"> <view class="de-card-list de-list"> <view class="cu-form-group "> <view class="title">离岗开始时间</view> <picker mode="date" :value="pd.STARTTIME?pd.STARTTIME:'请选择'" :start="todayDate" @change="changeStartDate"> <view class="uni-input">{{ pd.STARTTIME }}</view> </picker> </view> <view class="cu-form-group bb"> <view class="title">离岗结束时间</view> <picker mode="date" :value="pd.ENDTIME?pd.ENDTIME:'请选择'" :start="todayDate" @change="changeEndDate"> <view class="uni-input">{{ pd.ENDTIME }}</view> </picker> </view> <view class="cu-form-textarea bb-default" style="border-top: 1upx solid #eee;" > <view class="cu-form-title" >离岗原因</view> <textarea maxlength="-1" v-model="pd.DESCR" placeholder="请输入离岗原因"></textarea> </view> <view class="cu-form-group "> <view class="title">申请人</view> <input name="input" disabled="true" v-model="username" placeholder="请输入申请人"></input> </view> <view class="cu-form-group" v-if="SETUP_STATE === '2'"> <view class="title">审批人</view> <picker @change="PickerApprover" :value="approverindex" :range="approverUserList" range-key="NAME" :disabled="approverUserList.length == 0" @click="isBlankList('approver')"> <view class="picker"> {{pd.REVIEW_USER_NAME?pd.REVIEW_USER_NAME:'请选择'}} </view> </picker> </view> </view> </view> <view class="padding flex flex-direction"> <button :loading="buttonloading" class="cu-btn bg-blue margin-tb-sm lg" @click="$noMultipleClicks(goSubmit)">提交</button> </view> <view class="padding flex flex-direction"> </view> </scroll-view> </view> </template> <script> import { basePath,corpinfoId,deptId,loginUser,formatDate,loginSession,baseImgPath,setIsRest } from '@/common/tool.js'; import moment from 'moment'; import tkiTree from "@/components/select-tree/select-tree.vue" import ruiDatePicker from '@/components/rattenking-dtpicker/rattenking-dtpicker.vue'; export default { components: { tkiTree,ruiDatePicker }, data() { return { isUps:false, buttonloading: false, msg:'add', noClick:true, pd: { OFFDUTY_ID: '', USER_NAME: '', REVIEW_USER_NAME: '', REVIEW_USER_DEPARTMENTNAME: '', REVIEW_STATUS: '', REVIEW_DESC: '', STARTTIME: '', ENDTIME: '', DESCR: '', REVIEW_USER_ID: '' },// 数据 approverUserList:[], approverindex:-1, SETUP_STATE: '2', // 离岗设置状态1.无需审批 2.需审批 todayDate:'', username:'' //当前登录用户名称 } }, onLoad(event){ this.todayDate = formatDate(new Date(), 'yyyy-MM-dd'); var tomorrowDate = moment().add(1, 'days').format('YYYY-MM-DD'); // 使用Moment.js库获取明天的日期 this.pd.STARTTIME = tomorrowDate; this.pd.ENDTIME = tomorrowDate; this.username = loginUser.NAME; if (event.OFFDUTY_ID) { this.pd.OFFDUTY_ID = event.OFFDUTY_ID; } }, async onShow(options) { this.getSetupData(); await this.getUserList('approverUserList'); if (this.pd.OFFDUTY_ID) { this.msg = 'edit' await this.getData() } loginSession(); }, methods: { getData() { var _this = this; return new Promise((resolve, reject) => { uni.showLoading({ title: '请稍候' }) uni.request({ url: basePath + '/app/offduty/goEdit', method: 'POST', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { OFFDUTY_ID:_this.pd.OFFDUTY_ID }, success: (res) => { if ("success" == res.data.result) { uni.hideLoading(); _this.pd = res.data.pd; //参数map if (res.data.pd.REVIEW_USER_ID) { _this.approverUserList.forEach((item, index) => { if (item.USER_ID === res.data.pd.REVIEW_USER_ID) { _this.approverindex = index _this.pd.REVIEW_USER_NAME = _this.approverUserList[_this.approverindex].NAME; } }) } } else if ("exception" == data.result) { uni.showToast({ title: '错误', duration: 2000 }); } resolve(true) } }) }) }, getSetupData() { var _this = this; uni.showLoading({ title: '请稍候' }) uni.request({ url: basePath + '/app/offduty/getSetup', method: 'POST', header: { 'Content-type': 'application/x-www-form-urlencoded' }, data: { CORPINFO_ID:loginUser.CORPINFO_ID }, success: (res) => { if ("success" == res.data.result) { uni.hideLoading(); _this.SETUP_STATE = res.data.pd.SETUP_STATE; //参数map } else if ("exception" == data.result) { uni.showToast({ title: '错误', duration: 2000 }); } } }); }, //获取人员列表 getUserList(list,i){ var _this=this return new Promise((resolve, reject) => { //发送 post 请求 uni.request({ method: 'POST', dataType: 'json', header: { 'Content-type':'application/x-www-form-urlencoded' }, url: basePath+'/app/sys/listUserLeader', data: { tm:new Date().getTime(), CORPINFO_ID:loginUser.CORPINFO_ID, DEPARTMENT_ID:loginUser.DEPARTMENT_ID, USER_ID:loginUser.USER_ID }, success: function(res){ if("success" == res.data.result){ _this[list]=res.data.userList; }else{ uni.showToast({ title: res.data.message, duration: 2000 }); } resolve(true) } }) }) }, //获取数据字典数据 getDict: function () { }, changeStartDate(e) { this.pd.STARTTIME = e.detail.value this.$forceUpdate();//强制刷新 }, changeEndDate(e) { this.pd.ENDTIME = e.detail.value this.$forceUpdate();//强制刷新 }, PickerApprover(e) { this.approverindex = e.detail.value; this.pd.REVIEW_USER_ID=this.approverUserList[this.approverindex].USER_ID; this.pd.REVIEW_USER_NAME=this.approverUserList[this.approverindex].NAME; console.log(this.approverindex) console.log(this.approverUserList) console.log(this.pd.REVIEW_USER_ID) this.$forceUpdate();//强制刷新 }, isBlankList(userType) { switch(userType) { case 'approver': if(this.approverUserList.length == 0) { uni.showToast({ icon: 'none', title: '审批人列表暂无数据', duration: 1500 }) } break } }, /* goSubmit1(){ setIsRest(1); var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上二级页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({delta: 1}); uni.hideLoading(); }, */ goSubmit() { var _this = this; if (!_this.pd.STARTTIME || _this.pd.STARTTIME == '请选择') { uni.showToast({ icon: 'none', title: '请选择离岗起始时间', duration: 1500 }); return; } if (!_this.pd.ENDTIME || _this.pd.ENDTIME == '请选择') { uni.showToast({ icon: 'none', title: '请选择离岗结束时间', duration: 1500 }); return; } if(new Date(_this.pd.STARTTIME) > new Date(_this.pd.ENDTIME)){ uni.showToast({ icon: 'none', title: '离岗结束时间不能早于开始时间', duration: 1500 }); return; } if (!_this.pd.DESCR) { uni.showToast({ icon: 'none', title: '请输入离岗原因', duration: 1500 }); return; } if (this.SETUP_STATE === '2' && !_this.pd.REVIEW_USER_ID) { uni.showToast({ icon: 'none', title: '请选择审批人', duration: 1500 }); return; } uni.showLoading({ title: '请稍候' }) uni.showModal({ title: '双控平台', content: '确定要提交申请么?', cancelColor: "#000000", cancelText: '取消', confirmText: '确定', success: res => { if (res.confirm) { this.buttonloading = true uni.request({ url: basePath+'/app/offduty/'+_this.msg, method: 'POST', dataType: 'json', header: { 'Content-type':'application/x-www-form-urlencoded' }, data: { OFFDUTY_ID:_this.pd.OFFDUTY_ID, STARTTIME: _this.pd.STARTTIME, ENDTIME: _this.pd.ENDTIME, DESCR: _this.pd.DESCR, REVIEW_USER_ID: _this.pd.REVIEW_USER_ID, CREATOR: loginUser.USER_ID, OPERATOR: loginUser.USER_ID, CORPINFO_ID: loginUser.CORPINFO_ID, USER_ID: loginUser.USER_ID, }, success: (res) => { uni.hideLoading(); this.buttonloading = false if ("success" == res.data.result) { console.info(res.data.ISREST); setIsRest(res.data.ISREST); uni.showToast({ icon:'none', title: '提交申请成功', duration: 1500 }); setTimeout(function(){ var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上二级页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({delta: 1}); uni.hideLoading(); },1500); }else{ uni.showToast({ icon:'none', title: '系统错误', duration: 2000 }); } } }); } else { uni.hideLoading(); } } }) }, goback(){ var pages = getCurrentPages(); // 获取当前页面栈 var prePage = pages[pages.length - 2]; // 上二级页面 prePage.$vm.initflag = true; // A 页面 init方法 为true uni.navigateBack({delta: 1}); uni.hideLoading(); }, } } </script> <style> .prevent { width: 100%; height: 100%; position: fixed; top: 0; left: 0; overflow: hidden; } .cu-form-title{ padding: 20upx 0; } .cu-form-textarea{ background-color: #ffffff; padding: 1upx 30upx 20upx; min-height: 100upx; } .cu-form-textarea textarea { height: 4.6em; width: 100%; line-height: 1.2em; flex: 1; font-size: 28upx; padding: 0; } .selected{ display: flex; align-items: center; height: 100upx; } .selected .radio{ transform:scale(0.8); margin-right: 10upx; } .group{ display: flex; align-items: center; } .cu-form-group .title{ font-size: 28upx; color: #000; font-weight: bold; } .cu-bar .action:first-child { font-size: 28upx; } .cu-form-group .picker{ color: #808080; } .picker-tree{ color: #808080; } </style>