|
|
@ -1,53 +1,49 @@ |
|
|
|
<template> |
|
|
|
<!-- 交付物 --> |
|
|
|
<view class="box shadow-lg"> |
|
|
|
<view class="mt-3"> |
|
|
|
<view v-if="data.lists && data.lists.length"> |
|
|
|
<view :key="list.id" v-for="list in data.lists"> |
|
|
|
<view class="p-3 mt-3 shadow"> |
|
|
|
<view class="text-gray-400 pb-2"> |
|
|
|
<span class="mr-4">{{ list.name }}</span> |
|
|
|
<span>{{ $moment(+list.time).format('YYYY-MM-DD HH:mm:ss') }}</span> |
|
|
|
</view> |
|
|
|
<view class="pb-2 flex flex-wrap overflow-hidden" v-if="list.content"> |
|
|
|
<a :href="list.content" class="text-blue-500" target="_blank" v-if="CheckUrl(list.content)">{{ list.content }}</a> |
|
|
|
<span v-else>{{ list.content }}</span> |
|
|
|
</view> |
|
|
|
<view :key="checker.checkerId" v-for="checker in list.checkerList" class="mb-2"> |
|
|
|
<view class="flex justify-between"> |
|
|
|
<view class="font-bold"> |
|
|
|
{{ checker.checkerName }} |
|
|
|
<span v-if="checker.isMine">(我)</span> |
|
|
|
</view> |
|
|
|
<view> |
|
|
|
<span class="text-blue-500" v-if="checker.status === 1">通过</span> |
|
|
|
<span class="text-red-500" v-if="checker.status === 2">驳回</span> |
|
|
|
<span class="ml-4" v-if="checker.status !== 0">{{ checker.score }}分</span> |
|
|
|
<span class="text-gray-400" v-if="checker.status === 0 && !checker.isMine">未审核</span> |
|
|
|
<view v-if="checker.status === 0 && checker.isMine"> |
|
|
|
<u-button @click="showScore(checker.checkId, 2)" class="mr-3" plain size="mini" type="error">驳回</u-button> |
|
|
|
<u-button @click="showScore(checker.checkId, 1)" plain size="mini" type="primary">通过</u-button> |
|
|
|
<view class="mt-3"> |
|
|
|
<view v-if="data.lists && data.lists.length"> |
|
|
|
<view :key="list.id" v-for="list in data.lists"> |
|
|
|
<view class="p-3 mt-3 shadow"> |
|
|
|
<view class="text-gray-400 pb-2"> |
|
|
|
<span class="mr-4">{{ list.name }}</span> |
|
|
|
<span>{{ $moment(+list.time).format('YYYY-MM-DD HH:mm:ss') }}</span> |
|
|
|
</view> |
|
|
|
<view class="pb-2 flex flex-wrap overflow-hidden" v-if="list.content"> |
|
|
|
<a :href="list.content" class="text-blue-500" target="_blank" v-if="CheckUrl(list.content)">{{ list.content }}</a> |
|
|
|
<span v-else>{{ list.content }}</span> |
|
|
|
</view> |
|
|
|
<view :key="checker.checkerId" v-for="checker in list.checkerList" class="mb-2"> |
|
|
|
<view class="flex justify-between"> |
|
|
|
<view class="font-bold"> |
|
|
|
{{ checker.checkerName }} |
|
|
|
<span v-if="checker.isMine">(我)</span> |
|
|
|
</view> |
|
|
|
<view> |
|
|
|
<span class="text-blue-500" v-if="checker.status === 1">通过</span> |
|
|
|
<span class="text-red-500" v-if="checker.status === 2">驳回</span> |
|
|
|
<span class="ml-4" v-if="checker.status !== 0">{{ checker.score }}分</span> |
|
|
|
<span class="text-gray-400" v-if="checker.status === 0 && !checker.isMine">未审核</span> |
|
|
|
<view v-if="checker.status === 0 && checker.isMine"> |
|
|
|
<u-button @click="showScore(checker.checkId, 2)" class="mr-3" plain size="mini" type="error">驳回</u-button> |
|
|
|
<u-button @click="showScore(checker.checkId, 1)" plain size="mini" type="primary">通过</u-button> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="text-gray-400 text-xs mt-1">{{ checker.remark }}</view> |
|
|
|
</view> |
|
|
|
<view class="text-gray-400 text-xs mt-1">{{ checker.remark }}</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<u-empty icon-size="90" mode="history" text="暂未上传交付物" v-else></u-empty> |
|
|
|
|
|
|
|
<!-- 评分 --> |
|
|
|
<!-- <uni-popup :maskClick="false" background-color="#fff" ref="popup" type="bottom"><PDeliverCheck @closeScore="closeScore" @submit="submit"></PDeliverCheck></uni-popup> --> |
|
|
|
</view> |
|
|
|
<u-empty icon-size="90" mode="history" text="暂未上传交付物" v-else></u-empty> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup> |
|
|
|
import { ref, reactive, onMounted, computed } from 'vue'; |
|
|
|
import { useStore } from 'vuex'; |
|
|
|
// import UniPopup from '../../components/uni-popup/uni-popup.vue'; |
|
|
|
import PDeliverCheck from '../p-deliver-check/p-deliver-check.vue'; |
|
|
|
|
|
|
|
const props = defineProps({ task: { type: Object, default: null } }); |
|
|
|
|
|
|
@ -97,13 +93,13 @@ async function submit(remark, score) { |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 检查交付物 |
|
|
|
* @param {string} checkId 检查记录id |
|
|
|
* @param {string} projectId 项目id |
|
|
|
* @param {string} remark 评论 |
|
|
|
* @param {number} score 分数 |
|
|
|
* @param {number} status 检查状态(1-通过,2-驳回) |
|
|
|
*/ |
|
|
|
* 检查交付物 |
|
|
|
* @param {string} checkId 检查记录id |
|
|
|
* @param {string} projectId 项目id |
|
|
|
* @param {string} remark 评论 |
|
|
|
* @param {number} score 分数 |
|
|
|
* @param {number} status 检查状态(1-通过,2-驳回) |
|
|
|
*/ |
|
|
|
async function checkDeliver(remark, score) { |
|
|
|
try { |
|
|
|
data.show = true; |
|
|
@ -131,11 +127,10 @@ function CheckUrl(url) { |
|
|
|
</script> |
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
|
.box{ |
|
|
|
border-radius: 8px; |
|
|
|
background: #fff; |
|
|
|
padding: 16px; |
|
|
|
overflow: hidden; |
|
|
|
} |
|
|
|
.box { |
|
|
|
border-radius: 8px; |
|
|
|
background: #fff; |
|
|
|
padding: 16px; |
|
|
|
overflow: hidden; |
|
|
|
} |
|
|
|
</style> |
|
|
|
|
|
|
|