You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

85 lines
2.2 KiB

<template>
<view v-if="!selfexamination.hasSign">
<view class="container" v-html="selfexamination.requirementHtml"></view>
<view class="footer col-24">
<button type="primary" @click="handleSign">任务签收</button>
</view>
</view>
<view v-else>
<view v-for="(item, index) in selfexamination.contents" class="content-item" @tap="open(item.id)">
<view class="content-item-title">
<text>{{ index + 1 }} {{ item.title }}</text>
<uni-tag type="warning" text="待检查" :inverted="true" v-if="item.status === 'todo'" />
<uni-tag type="success" text="已检查" :inverted="true" v-else />
</view>
<view class="content-item-c">{{ item.content }}</view>
</view>
</view>
</template>
<script>
import {
getTaskSelfexamination,
signTaskSelfexamination
} from '@/api/selfexamination'
import { submitTask } from '@/api/task'
let _this;
export default {
data() {
return {
selfexamination: {}
}
},
onLoad() {
_this = this;
},
onShow() {
getTaskSelfexamination(this.$page.options.taskId).then(data => {
this.selfexamination = data
if (data.contents.filter(item => item.status === 'todo').length === 0) {
uni.showModal({
content: `本次自查内容以全部检查,\n请确认是否结束本次任务`,
success: function (res) {
if (res.confirm) {
submitTask(_this.$page.options.taskId).then(data => {
uni.navigateTo({
url: '/pages/task/index?taskStatus=todo'
});
})
}
}
});
}
})
},
methods: {
async handleSign() {
await signTaskSelfexamination(this.$page.options.taskId)
this.selfexamination.hasSign = true
},
open(conentId) {
uni.navigateTo({
url: `/pages/task/selfexamination/add?taskId=${this.$page.options.taskId}&contentId=${conentId}&departId=${this.selfexamination.supDepartId}`
});
}
}
}
</script>
<style lang="scss" scoped>
.content-item {
padding: 24rpx 0;
margin: 0 24rpx;
box-shadow: inset 0 -1px 0 0 #DDDDDD;
.content-item-title {
margin-bottom: 12rpx;
display: flex;
justify-content: space-between;
}
.content-item-c {
font-size: 12px;
color: #666;
}
}
</style>