223 lines
4.6 KiB
Vue
223 lines
4.6 KiB
Vue
|
<template>
|
|||
|
<view class="detail">
|
|||
|
<view class="card">
|
|||
|
<view class="title">查看详细</view>
|
|||
|
<view class="row">
|
|||
|
<label>工作岗位:</label>
|
|||
|
<label>{{detail.postName}}</label>
|
|||
|
</view>
|
|||
|
<view class="row">
|
|||
|
<label>工作日期:</label>
|
|||
|
<label>{{detail.workDate}}</label>
|
|||
|
</view>
|
|||
|
<view class="row">
|
|||
|
<label class="col-5">工作时长/{{ detail.postType == '固定岗位A' ? '天' : '小时' }}:</label>
|
|||
|
<view class="col-15">
|
|||
|
<uni-easyinput v-model="detail.workTime" type="number" />
|
|||
|
<text style="color: red;">*工作时长可修改</text>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="row">
|
|||
|
<label>主要工作:</label>
|
|||
|
<label>{{detail.mainWork}}</label>
|
|||
|
</view>
|
|||
|
<view class="row">
|
|||
|
<label>附件:</label>
|
|||
|
<view class="photos">
|
|||
|
<image @tap="previewImg(attachment,index)" v-for="(img,index) in attachment" :src="basePath+img"
|
|||
|
mode="aspectFill"></image>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="row">
|
|||
|
<label>审核意见:</label>
|
|||
|
<uni-data-checkbox v-model="detail.zdlsCmt" :localdata="zdlsCmt" />
|
|||
|
</view>
|
|||
|
<button @click="doAudit" type="primary" plain>审核</button>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import {
|
|||
|
CheckImgExists,
|
|||
|
isEmpty
|
|||
|
} from "@/api/helpFunc";
|
|||
|
import {
|
|||
|
baseUrl
|
|||
|
} from "@/config.js";
|
|||
|
import {
|
|||
|
previewImg
|
|||
|
} from "@/utils/uploadImg.js"
|
|||
|
import {
|
|||
|
doAudit,
|
|||
|
listZdls as getList,
|
|||
|
manyAudit
|
|||
|
} from "@/api/workStudy/worklog";
|
|||
|
export default {
|
|||
|
data() {
|
|||
|
return {
|
|||
|
detail: null,
|
|||
|
attachment: [],
|
|||
|
basePath: baseUrl,
|
|||
|
zdlsCmt: [{
|
|||
|
text: '通过',
|
|||
|
value: '通过'
|
|||
|
}, {
|
|||
|
text: '不通过',
|
|||
|
value: '不通过'
|
|||
|
}],
|
|||
|
}
|
|||
|
},
|
|||
|
onLoad(option) {
|
|||
|
this.detail = JSON.parse(option.detailData);
|
|||
|
console.log(this.detail);
|
|||
|
this.attachment = this.detail.workMaterial.split(",");
|
|||
|
console.log(this.attachment);
|
|||
|
},
|
|||
|
methods: {
|
|||
|
async doAudit() {
|
|||
|
let sdata = {
|
|||
|
...this.detail
|
|||
|
};
|
|||
|
|
|||
|
if (isEmpty(sdata.workTime)) {
|
|||
|
uni.showToast({
|
|||
|
title: "请输入工作时间",
|
|||
|
icon: "error"
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
if (sdata.workTime <= 0 || sdata.workTime > 24) {
|
|||
|
uni.showToast({
|
|||
|
title: "请输入正确的工作时间",
|
|||
|
icon: "error"
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
if (isEmpty(sdata.zdlsCmt)) {
|
|||
|
uni.showToast({
|
|||
|
title: "请选择是否通过",
|
|||
|
icon: "error"
|
|||
|
});
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// if (isEmpty(sdata.zdlsSign)) {
|
|||
|
// uni.showToast({
|
|||
|
// title: "请上传签章",
|
|||
|
// icon: "error"
|
|||
|
// });
|
|||
|
// return;
|
|||
|
// }
|
|||
|
|
|||
|
console.log(sdata)
|
|||
|
|
|||
|
uni.showLoading({
|
|||
|
title: "正在提交",
|
|||
|
success: async () => {
|
|||
|
try {
|
|||
|
let res = await doAudit(sdata);
|
|||
|
if (res.code == 200) {
|
|||
|
uni.showToast({
|
|||
|
title: "提交成功"
|
|||
|
});
|
|||
|
setTimeout(() => {
|
|||
|
uni.navigateBack({
|
|||
|
success: () => {
|
|||
|
const pages = getCurrentPages();
|
|||
|
if (pages.length > 0) {
|
|||
|
const prevPage = pages[pages.length -
|
|||
|
2]
|
|||
|
console.log(prevPage);
|
|||
|
if (prevPage && typeof prevPage
|
|||
|
.getList ===
|
|||
|
'function') {
|
|||
|
prevPage.queryParams.pageNum = 1;
|
|||
|
prevPage.getList();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}, 1000)
|
|||
|
}
|
|||
|
} catch (error) {} finally {
|
|||
|
this.isSubmitting = false;
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
// if (!CheckImgExists(this.baseurl + sdata.zdlsSign)) {
|
|||
|
// this.$message.info("签名失效,请重新上传");
|
|||
|
// return;
|
|||
|
// }
|
|||
|
|
|||
|
// let res = await doAudit(sdata);
|
|||
|
// if (res.code == 200) {
|
|||
|
// uni.showToast({
|
|||
|
// title: res.msg,
|
|||
|
// icon: "success"
|
|||
|
// });
|
|||
|
// this.getList();
|
|||
|
// this.lookV = false;
|
|||
|
// }
|
|||
|
},
|
|||
|
previewImg(imgs, index) {
|
|||
|
let images = imgs.map(img => {
|
|||
|
return {
|
|||
|
path: baseUrl + img
|
|||
|
}
|
|||
|
})
|
|||
|
previewImg(images, index);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped lang="scss">
|
|||
|
.detail {
|
|||
|
height: calc(100vh - 44px);
|
|||
|
background-color: #F5F5F7;
|
|||
|
padding: 20rpx 30rpx 0;
|
|||
|
|
|||
|
.card {
|
|||
|
margin: 30rpx 0rpx 0;
|
|||
|
padding: 30rpx;
|
|||
|
background-color: white;
|
|||
|
border-radius: 20rpx;
|
|||
|
|
|||
|
.title {
|
|||
|
font-weight: bold;
|
|||
|
color: #202020;
|
|||
|
display: inline-block;
|
|||
|
font-size: 30rpx;
|
|||
|
margin-bottom: 30rpx;
|
|||
|
}
|
|||
|
|
|||
|
.row {
|
|||
|
margin-bottom: 30rpx;
|
|||
|
|
|||
|
&>label:first-child {
|
|||
|
color: #9C9C9C;
|
|||
|
margin-right: 40rpx;
|
|||
|
}
|
|||
|
|
|||
|
.photos {
|
|||
|
margin-top: 10rpx;
|
|||
|
display: flex;
|
|||
|
flex-wrap: wrap;
|
|||
|
|
|||
|
image {
|
|||
|
margin-bottom: 10rpx;
|
|||
|
width: 23.5%;
|
|||
|
border-radius: 8rpx;
|
|||
|
height: 136rpx;
|
|||
|
|
|||
|
&:not(:nth-child(4n)) {
|
|||
|
margin-right: 2%;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
</style>
|