|
|
|
@ -1,5 +1,13 @@
|
|
|
|
|
<script lang="ts" setup>
|
|
|
|
|
import { computed, onMounted, onUnmounted, reactive, ref, unref, watch } from "vue";
|
|
|
|
|
import {
|
|
|
|
|
computed,
|
|
|
|
|
onMounted,
|
|
|
|
|
onUnmounted,
|
|
|
|
|
reactive,
|
|
|
|
|
ref,
|
|
|
|
|
unref,
|
|
|
|
|
watch,
|
|
|
|
|
} from "vue";
|
|
|
|
|
import { chunk, clone } from "lodash-es";
|
|
|
|
|
import { useDialog, useMessage } from "naive-ui";
|
|
|
|
|
import { useRoute, useRouter } from "vue-router";
|
|
|
|
@ -11,6 +19,7 @@ import History from "./History.vue";
|
|
|
|
|
import NotPassed from "@/components/Approval/NotPassed.vue";
|
|
|
|
|
import { getAllfieldList, getfieldList } from "@/api/home/filter";
|
|
|
|
|
import { TASK_STATUS_OBJ } from "@/enums/index";
|
|
|
|
|
import { useFinal } from "@/store/modules/final";
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
|
audit,
|
|
|
|
@ -41,6 +50,7 @@ const CustomSettingModalRef = ref(null);
|
|
|
|
|
const taskTableData = ref<any[]>([]);
|
|
|
|
|
const route = useRoute();
|
|
|
|
|
const isDetail = ref(false); // 是否是详情
|
|
|
|
|
const finalStore = useFinal();
|
|
|
|
|
const sortBy: any = {
|
|
|
|
|
orderType: "desc",
|
|
|
|
|
orderName: "similarityScore",
|
|
|
|
@ -150,7 +160,8 @@ function approvalHandler(items?: any) {
|
|
|
|
|
processItems = [cloneItem];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (items !== undefined && !(items instanceof PointerEvent)) processItems = items;
|
|
|
|
|
if (items !== undefined && !(items instanceof PointerEvent))
|
|
|
|
|
processItems = items;
|
|
|
|
|
|
|
|
|
|
const msg = validate(processItems);
|
|
|
|
|
|
|
|
|
@ -356,8 +367,10 @@ function notPassSuccess(param) {
|
|
|
|
|
function reloadList(param, text) {
|
|
|
|
|
// 修改左侧状态
|
|
|
|
|
const id = currentTaskId();
|
|
|
|
|
const hasCurrentId = param.flowTaskInfoList.find((item) => item.formId === id);
|
|
|
|
|
|
|
|
|
|
const hasCurrentId = param.flowTaskInfoList.find(
|
|
|
|
|
(item) => item.formId === id
|
|
|
|
|
);
|
|
|
|
|
finalStore.setListKey();
|
|
|
|
|
if (hasCurrentId) emit("setAsideItemName", text);
|
|
|
|
|
|
|
|
|
|
getDetail();
|
|
|
|
@ -378,8 +391,18 @@ function switchBatch() {
|
|
|
|
|
<div class="left">
|
|
|
|
|
<span class="font">任务ID:{{ taskDetailInfo.fromtaskname }}</span>
|
|
|
|
|
<template v-if="!isDetail">
|
|
|
|
|
<SvgIcon size="22" class="forward" name="arrow-left" @click="backHandler" />
|
|
|
|
|
<SvgIcon size="22" class="back" name="arrow-right" @click="forwardHandler" />
|
|
|
|
|
<SvgIcon
|
|
|
|
|
size="22"
|
|
|
|
|
class="forward"
|
|
|
|
|
name="arrow-left"
|
|
|
|
|
@click="backHandler"
|
|
|
|
|
/>
|
|
|
|
|
<SvgIcon
|
|
|
|
|
size="22"
|
|
|
|
|
class="back"
|
|
|
|
|
name="arrow-right"
|
|
|
|
|
@click="forwardHandler"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="!isDetail" class="right">
|
|
|
|
@ -511,10 +534,18 @@ function switchBatch() {
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mark">
|
|
|
|
|
<SvgIcon v-show="taskDetailInfo?.iztrueorfalse === 0" size="128" name="jia" />
|
|
|
|
|
<SvgIcon
|
|
|
|
|
v-show="taskDetailInfo?.iztrueorfalse === 0"
|
|
|
|
|
size="128"
|
|
|
|
|
name="jia"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="mark">
|
|
|
|
|
<SvgIcon v-show="taskDetailInfo?.iztrueorfalse === 1" size="128" name="zhen" />
|
|
|
|
|
<SvgIcon
|
|
|
|
|
v-show="taskDetailInfo?.iztrueorfalse === 1"
|
|
|
|
|
size="128"
|
|
|
|
|
name="zhen"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="big-mark" />
|
|
|
|
|
<div class="preview" @click="previewHandler">
|
|
|
|
@ -524,7 +555,11 @@ function switchBatch() {
|
|
|
|
|
<n-grid x-gap="12" y-gap="10" :cols="12">
|
|
|
|
|
<n-gi span="4" class="gi1">
|
|
|
|
|
<span>
|
|
|
|
|
<img class="icon-status" src="@/assets/images/task/status.png" alt="" />
|
|
|
|
|
<img
|
|
|
|
|
class="icon-status"
|
|
|
|
|
src="@/assets/images/task/status.png"
|
|
|
|
|
alt=""
|
|
|
|
|
/>
|
|
|
|
|
</span>
|
|
|
|
|
</n-gi>
|
|
|
|
|
<n-gi span="8" class="gi2">
|
|
|
|
@ -543,25 +578,41 @@ function switchBatch() {
|
|
|
|
|
</span>
|
|
|
|
|
</n-gi>
|
|
|
|
|
<n-gi span="8" class="gi2">
|
|
|
|
|
<span class="value num">{{ totalCount }}<span class="unit">张</span> </span>
|
|
|
|
|
<span class="value num"
|
|
|
|
|
>{{ totalCount }}<span class="unit">张</span>
|
|
|
|
|
</span>
|
|
|
|
|
<span class="label">相似匹配</span>
|
|
|
|
|
</n-gi>
|
|
|
|
|
</n-grid>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="time">
|
|
|
|
|
<div class="time-item">
|
|
|
|
|
<SvgIcon class="svg-time" color="#FFF" size="16" name="camera-time" />
|
|
|
|
|
<SvgIcon
|
|
|
|
|
class="svg-time"
|
|
|
|
|
color="#FFF"
|
|
|
|
|
size="16"
|
|
|
|
|
name="camera-time"
|
|
|
|
|
/>
|
|
|
|
|
<span>{{
|
|
|
|
|
taskDetailInfo?.ocrPicture?.photoDateTimestamp
|
|
|
|
|
? formatToDateHMS(Number(taskDetailInfo.ocrPicture.photoDateTimestamp))
|
|
|
|
|
? formatToDateHMS(
|
|
|
|
|
Number(taskDetailInfo.ocrPicture.photoDateTimestamp)
|
|
|
|
|
)
|
|
|
|
|
: "-"
|
|
|
|
|
}}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="time-item time-item2">
|
|
|
|
|
<SvgIcon class="svg-time" color="#FFF" size="16" name="submit-time" />
|
|
|
|
|
<SvgIcon
|
|
|
|
|
class="svg-time"
|
|
|
|
|
color="#FFF"
|
|
|
|
|
size="16"
|
|
|
|
|
name="submit-time"
|
|
|
|
|
/>
|
|
|
|
|
<span>{{
|
|
|
|
|
taskDetailInfo?.ocrPicture?.submitDateTimestamp
|
|
|
|
|
? formatToDateHMS(Number(taskDetailInfo.ocrPicture.submitDateTimestamp))
|
|
|
|
|
? formatToDateHMS(
|
|
|
|
|
Number(taskDetailInfo.ocrPicture.submitDateTimestamp)
|
|
|
|
|
)
|
|
|
|
|
: "-"
|
|
|
|
|
}}</span>
|
|
|
|
|
</div>
|
|
|
|
@ -587,11 +638,23 @@ function switchBatch() {
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="list">
|
|
|
|
|
<div v-for="item in taskDetailPictureList" :key="item.id" class="item">
|
|
|
|
|
<div
|
|
|
|
|
v-for="item in taskDetailPictureList"
|
|
|
|
|
:key="item.id"
|
|
|
|
|
class="item"
|
|
|
|
|
draggable="true"
|
|
|
|
|
@dragend="
|
|
|
|
|
(event) => {
|
|
|
|
|
handleDragEnd(event, item);
|
|
|
|
|
}
|
|
|
|
|
"
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
draggable="true"
|
|
|
|
|
class="img-wrapper"
|
|
|
|
|
:style="{ 'background-image': `url(${item.serverThumbnailUrl})` }"
|
|
|
|
|
:style="{
|
|
|
|
|
'background-image': `url(${item.serverThumbnailUrl})`,
|
|
|
|
|
}"
|
|
|
|
|
@dragend="
|
|
|
|
|
(event) => {
|
|
|
|
|
handleDragEnd(event, item);
|
|
|
|
@ -622,7 +685,12 @@ function switchBatch() {
|
|
|
|
|
/>
|
|
|
|
|
<div class="time">
|
|
|
|
|
<div class="time-item">
|
|
|
|
|
<SvgIcon class="svg-time" color="#FFF" size="8" name="camera-time" />
|
|
|
|
|
<SvgIcon
|
|
|
|
|
class="svg-time"
|
|
|
|
|
color="#FFF"
|
|
|
|
|
size="8"
|
|
|
|
|
name="camera-time"
|
|
|
|
|
/>
|
|
|
|
|
<span>{{
|
|
|
|
|
item.photoDateTimestamp
|
|
|
|
|
? formatToDateHMS(Number(item.photoDateTimestamp))
|
|
|
|
@ -630,7 +698,12 @@ function switchBatch() {
|
|
|
|
|
}}</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="time-item time-item2">
|
|
|
|
|
<SvgIcon class="svg-time" color="#FFF" size="8" name="submit-time" />
|
|
|
|
|
<SvgIcon
|
|
|
|
|
class="svg-time"
|
|
|
|
|
color="#FFF"
|
|
|
|
|
size="8"
|
|
|
|
|
name="submit-time"
|
|
|
|
|
/>
|
|
|
|
|
<span>{{
|
|
|
|
|
item.submitDateTimestamp
|
|
|
|
|
? formatToDateHMS(Number(item.submitDateTimestamp))
|
|
|
|
@ -668,7 +741,11 @@ function switchBatch() {
|
|
|
|
|
</n-tab-pane>
|
|
|
|
|
</n-tabs>
|
|
|
|
|
<NotPassed ref="notPassModalRef" @success="notPassSuccess" />
|
|
|
|
|
<BatchModal ref="batchModalRef" @reject="rejectHandler" @approval="approvalHandler" />
|
|
|
|
|
<BatchModal
|
|
|
|
|
ref="batchModalRef"
|
|
|
|
|
@reject="rejectHandler"
|
|
|
|
|
@approval="approvalHandler"
|
|
|
|
|
/>
|
|
|
|
|
<CustomSettingModal ref="CustomSettingModalRef" @on-ok="getDetail" />
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
@ -938,7 +1015,10 @@ function switchBatch() {
|
|
|
|
|
z-index: 3;
|
|
|
|
|
left: 16px;
|
|
|
|
|
bottom: 16px;
|
|
|
|
|
|
|
|
|
|
padding-left: 10px;
|
|
|
|
|
width: 195px;
|
|
|
|
|
background: rgba(216, 216, 216, 0.4);
|
|
|
|
|
border-radius: 7px;
|
|
|
|
|
.time-item {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
@ -1054,6 +1134,10 @@ function switchBatch() {
|
|
|
|
|
z-index: 3;
|
|
|
|
|
left: 3px;
|
|
|
|
|
bottom: 3px;
|
|
|
|
|
width: 98%;
|
|
|
|
|
|
|
|
|
|
background: rgba(216, 216, 216, 0.4);
|
|
|
|
|
border-radius: 7px;
|
|
|
|
|
.time-item {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|