415 lines
12 KiB
Vue
415 lines
12 KiB
Vue
<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>
|