|
|
@ -1,40 +1,48 @@ |
|
|
|
<template> |
|
|
|
<theme> |
|
|
|
<view class="bg-white rounded-md"> |
|
|
|
<view class="p-3 flex justify-between" @click="iconRef = !iconRef"> |
|
|
|
<view class="p-3 flex justify-between" @click="collapsed = !collapsed"> |
|
|
|
<span class="relative p-1"> |
|
|
|
<!-- <u-badge :is-dot="true" is-center></u-badge> --> |
|
|
|
{{ nameRef }} |
|
|
|
{{ checkData ? checkData.deliverName : '' }} |
|
|
|
</span> |
|
|
|
<u-icon :name="iconRef ? 'arrow-right' : 'arrow-down'"></u-icon> |
|
|
|
<!-- 展开折叠按钮 --> |
|
|
|
<u-icon :name="collapsed ? 'arrow-up' : 'arrow-down'"></u-icon> |
|
|
|
</view> |
|
|
|
<view class="p-3 pt-0" v-show="iconRef"> |
|
|
|
|
|
|
|
<view class="p-3 pt-0" v-show="collapsed"> |
|
|
|
<!-- 提交人和时间信息 --> |
|
|
|
<view class="text-gray-400"> |
|
|
|
<span class="mr-2">{{ submitter }}</span> <span> {{ dayjs(+timeRef).format('MM-DD HH:mm') }}</span> |
|
|
|
<!-- <span class="mr-2" v-if="checkData && checkData.submitter">{{ checkData.submitter }}</span> --> |
|
|
|
<span v-if="checkData && checkData.submitTime"> {{ dayjs(+checkData.submitTime).format('MM-DD HH:mm') }}</span> |
|
|
|
</view> |
|
|
|
<!-- 提交的链接信息 --> |
|
|
|
<view class="w-64 break-all text-blue-400 py-2"> {{ linkRef }} </view> |
|
|
|
<view class="w-64 break-all text-blue-400 py-2" v-if="checkData && checkData.details && checkData.details[0]"> |
|
|
|
{{ checkData.details[0] }} |
|
|
|
</view> |
|
|
|
<!-- 审核人信息 --> |
|
|
|
<view class="text-gray-400 flex justify-between"> |
|
|
|
<span>审核</span> |
|
|
|
<span class="text-blue-400" @click="moreRecords">更多记录</span> |
|
|
|
</view> |
|
|
|
<view class="px-2"> |
|
|
|
<view class="px-2" v-if="checkData && checkData.checkerList"> |
|
|
|
<!-- 遍历审核人信息 --> |
|
|
|
<view class="mt-3 text-sm flex justify-between" v-for="item in checkerList"> |
|
|
|
<view class="mt-3 text-sm flex justify-between" v-for="item in checkData.checkerList"> |
|
|
|
<view> |
|
|
|
<view>{{ item.checkerName }}</view> |
|
|
|
<view class="my-1">{{ item.remark }}</view> |
|
|
|
<view class="my-1" v-if="item.checkTime > 0">{{ dayjs(+item.checkTime).format('MM-DD HH:mm') }}</view> |
|
|
|
</view> |
|
|
|
<view v-show="item.isMine !== 1">{{ item.status == null ? '待审核' : item.status === 1 ? '已通过' : '已驳回' }}</view> |
|
|
|
<!-- 判断是否是当前审核人 --> |
|
|
|
<view v-show="item.isMine === 1 && item.status == null"> |
|
|
|
<u-button size="mini" shape="circle" class="mr-4 h-1-4 leading-1-4" type="primary" @click="approved">通过</u-button> |
|
|
|
<u-button size="mini" shape="circle" class="h-1-4 leading-1-4" type="error" @click="rebut">驳回</u-button> |
|
|
|
|
|
|
|
<!-- 不是自己 --> |
|
|
|
<view v-show="item.isMine !== 1">{{ item.status === null ? '待审核' : item.status === 1 ? '已通过' : '已驳回' }}</view> |
|
|
|
|
|
|
|
<!-- 是当前审核人 且未审核状态 --> |
|
|
|
<view v-show="item.isMine === 1 && item.status === null"> |
|
|
|
<u-button size="mini" shape="circle" class="mr-4 h-1-4 leading-1-4" type="primary" @click="approvedModal = true">通过</u-button> |
|
|
|
<u-button size="mini" shape="circle" class="h-1-4 leading-1-4" type="error" @click="rebutModal = true">驳回</u-button> |
|
|
|
</view> |
|
|
|
<!-- 当前审核人的审核状态并展示得分情况 --> |
|
|
|
|
|
|
|
<!-- 自己是审核人 且审核过 当前审核人的审核状态并展示得分情况 --> |
|
|
|
<view v-show="item.isMine === 1 && item.status !== null" class="text-sm"> |
|
|
|
<view> |
|
|
|
{{ item.status == '1' ? '已通过' : '已驳回' }} |
|
|
@ -57,11 +65,11 @@ |
|
|
|
<view class="rect2" @tap.stop> |
|
|
|
<!-- 通过modal的标题 --> |
|
|
|
<view class="text-center my-7 font-semibold"> 审核通过 </view> |
|
|
|
<!-- 通过modal的进步器和滑动选择器 --> |
|
|
|
<!-- 评分 --> |
|
|
|
<view class="flex justify-between mx-5"> |
|
|
|
<u-number-box v-model="score" size="30" input-width="50"></u-number-box> |
|
|
|
<u-number-box v-model="score" size="30" input-width="50" :max="10" :min="0" :step="0.01"></u-number-box> |
|
|
|
<view class="w-32 pt-4"> |
|
|
|
<u-slider v-model="score" active-color="#34D399"></u-slider> |
|
|
|
<u-slider v-model="score" active-color="#34D399" :max="10" :min="0" :step="0.01"></u-slider> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view> |
|
|
@ -112,7 +120,6 @@ |
|
|
|
</view> |
|
|
|
</u-mask> |
|
|
|
</view> |
|
|
|
</theme> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup> |
|
|
@ -123,43 +130,29 @@ import dayjs from 'dayjs'; |
|
|
|
const props = defineProps({ task: { type: Object, default: () => {} } }); |
|
|
|
const store = useStore(); |
|
|
|
|
|
|
|
const nameRef = ref(''); |
|
|
|
const iconRef = ref(false); |
|
|
|
const submitter = ref('黛西'); |
|
|
|
const timeRef = ref(''); |
|
|
|
const linkRef = ref(''); |
|
|
|
const projectId = computed(() => store.getters['project/projectId']); |
|
|
|
const collapsed = ref(false); |
|
|
|
const checkData = ref(null); // 获取到的审核信息 |
|
|
|
const approvedModal = ref(false); // 审核通过的modal |
|
|
|
const rebutModal = ref(false); // 审核驳回的modal |
|
|
|
const score = ref(1); // 分数 |
|
|
|
const score = ref(10); // 分数 |
|
|
|
const adviceRef = ref(''); // 审核通过的审批语 |
|
|
|
const rebutRef = ref(''); // 审核驳回的审批语 |
|
|
|
const commonWords = ['加油,再接再厉!', '很棒!', '不错,很详细!', '加油,再接再厉']; // 审核通过常用的审批语 |
|
|
|
const rebutWords = ['不详细', '还有需要改进的地方', '驳回审批1', '驳回审批2']; // 审核驳回常用的审批语 |
|
|
|
const checkerList = ref([]); |
|
|
|
|
|
|
|
// 交付物记录id |
|
|
|
const deliverRecordId = computed(() => store.state.deliver.deliverRecordId); |
|
|
|
|
|
|
|
// 获取当前审核信息 |
|
|
|
|
|
|
|
(async function getDeliverList() { |
|
|
|
try { |
|
|
|
const param = { taskId: props.task.id }; |
|
|
|
const data = await uni.$u.api.getDeliverByTaskId(param); |
|
|
|
// console.log(data) |
|
|
|
linkRef.value = data.details[0]; |
|
|
|
timeRef.value = data.submitTime; |
|
|
|
nameRef.value = data.deliverName; |
|
|
|
checkerList.value = data.checkerList; |
|
|
|
}()); |
|
|
|
|
|
|
|
// 通过的按钮事件 |
|
|
|
async function approved() { |
|
|
|
approvedModal.value = true; |
|
|
|
} |
|
|
|
// 驳回的按钮事件 |
|
|
|
function rebut() { |
|
|
|
rebutModal.value = true; |
|
|
|
} |
|
|
|
checkData.value = await uni.$u.api.getDeliverByTaskId(param); |
|
|
|
} catch (error) { |
|
|
|
console.error('getDeliverList error: ', error); |
|
|
|
} |
|
|
|
})(); |
|
|
|
|
|
|
|
// 审核通过发送相关请求 |
|
|
|
function confirmAdvice() { |
|
|
@ -167,7 +160,7 @@ function confirmAdvice() { |
|
|
|
// console.log('确定') |
|
|
|
try { |
|
|
|
const param = { |
|
|
|
projectId: store.state.project.project.id, |
|
|
|
projectId: projectId.value, |
|
|
|
deliverRecordId: deliverRecordId.value, |
|
|
|
type: 1, |
|
|
|
remark: adviceRef.value, |
|
|
@ -185,7 +178,7 @@ function confirmReject() { |
|
|
|
// TODO:发送请求 |
|
|
|
try { |
|
|
|
const param = { |
|
|
|
projectId: store.state.project.project.id, |
|
|
|
projectId: projectId.value, |
|
|
|
deliverRecordId: deliverRecordId.value, |
|
|
|
type: 2, |
|
|
|
remark: rebutRef.value, |
|
|
|