|
|
|
@ -71,6 +71,7 @@ const el = ref<HTMLDivElement | null>(null);
|
|
|
|
|
const selectedSortName = ref('');
|
|
|
|
|
const isFullScreen = ref(false);
|
|
|
|
|
const notPassModalRef = ref(null)
|
|
|
|
|
const mainImageModalRef = ref(null)
|
|
|
|
|
|
|
|
|
|
let canloadMore = true;
|
|
|
|
|
|
|
|
|
@ -270,7 +271,7 @@ function immersionHandler() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showAction() {
|
|
|
|
|
const item = taskDetailInfo.value;
|
|
|
|
|
const item = taskDetailInfo.value;
|
|
|
|
|
if (item.historyStates === 2 || item.historyStates === 3) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
@ -292,12 +293,6 @@ function rejectHandler() {
|
|
|
|
|
const modal = unref(notPassModalRef)! as any
|
|
|
|
|
modal.showModal(selectItems.value)
|
|
|
|
|
}
|
|
|
|
|
function detailRejectHandler() {
|
|
|
|
|
const modal = unref(notPassModalRef)! as any
|
|
|
|
|
const params = cloneDeep(taskDetailInfo.value)
|
|
|
|
|
params.id = params.taskchildpictureid
|
|
|
|
|
modal.showModal([params])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function singleRejectHandler(item) {
|
|
|
|
|
const modal = unref(notPassModalRef)! as any
|
|
|
|
@ -318,22 +313,24 @@ function reject(idOrDesc: string, backId: string, isOther: boolean) {
|
|
|
|
|
|
|
|
|
|
doAudit(param)
|
|
|
|
|
}
|
|
|
|
|
function detailApprovalHandler(items?: any){
|
|
|
|
|
function handleRejectMainImage() {
|
|
|
|
|
const modal = unref(mainImageModalRef)! as any
|
|
|
|
|
const params = cloneDeep(taskDetailInfo.value)
|
|
|
|
|
params.id = params.taskchildpictureid
|
|
|
|
|
modal.showModal([params])
|
|
|
|
|
}
|
|
|
|
|
async function reloadDetailInfo(){
|
|
|
|
|
const packageid = workStore.getActiveId;
|
|
|
|
|
taskDetailInfo.value = await getTaskDetailInfo(packageid);
|
|
|
|
|
}
|
|
|
|
|
function handleApproveMainImage(items?: any) {
|
|
|
|
|
let cloneItem: any
|
|
|
|
|
if (batch.value) {
|
|
|
|
|
processItems = selectItems.value
|
|
|
|
|
}
|
|
|
|
|
else if (overTask.value) {
|
|
|
|
|
if (overTask.value) {
|
|
|
|
|
cloneItem = clone(overTask.value)
|
|
|
|
|
cloneItem.id = cloneItem.taskchildpictureid
|
|
|
|
|
processItems = [cloneItem]
|
|
|
|
|
}
|
|
|
|
|
// 任务包图片 => 点击 => 通过/不通过按钮
|
|
|
|
|
if (items !== undefined && !(items instanceof PointerEvent))
|
|
|
|
|
processItems = [items]
|
|
|
|
|
|
|
|
|
|
const msg = validate(processItems)
|
|
|
|
|
|
|
|
|
|
if (msg !== null) {
|
|
|
|
|
message.error(msg)
|
|
|
|
|
return
|
|
|
|
@ -364,7 +361,15 @@ function detailApprovalHandler(items?: any){
|
|
|
|
|
positiveText: '确定',
|
|
|
|
|
negativeText: '取消',
|
|
|
|
|
onPositiveClick: () => {
|
|
|
|
|
doAudit(param)
|
|
|
|
|
audit(param).then(async(res) => {
|
|
|
|
|
const { code } = res
|
|
|
|
|
if (code === 'OK') {
|
|
|
|
|
message.info(res.message)
|
|
|
|
|
const packageid = workStore.getActiveId;
|
|
|
|
|
taskDetailInfo.value = await getTaskDetailInfo(packageid);
|
|
|
|
|
}
|
|
|
|
|
else message.error(res.message)
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
onNegativeClick: () => { },
|
|
|
|
|
})
|
|
|
|
@ -457,8 +462,8 @@ defineExpose({
|
|
|
|
|
批量审批
|
|
|
|
|
</div>
|
|
|
|
|
<div class="icon-wrap">
|
|
|
|
|
<SvgIcon size="20" v-if="isFullScreen" name="power-off" @click="immersionHandler" style="cursor: pointer;"/>
|
|
|
|
|
<SvgIcon size="20" v-else name="immersion-model" @click="immersionHandler" style="cursor: pointer;"/>
|
|
|
|
|
<SvgIcon size="20" v-if="isFullScreen" name="power-off" @click="immersionHandler" style="cursor: pointer;" />
|
|
|
|
|
<SvgIcon size="20" v-else name="immersion-model" @click="immersionHandler" style="cursor: pointer;" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
@ -495,13 +500,15 @@ defineExpose({
|
|
|
|
|
<div class="time">
|
|
|
|
|
<SvgIcon color="#FFF" size="16" name="save" />
|
|
|
|
|
<span class="time-value">{{
|
|
|
|
|
taskDetailInfo?.submitDateTimestamp ? format(taskDetailInfo?.submitDateTimestamp, 'yyyy-MM-dd HH:mm:ss') :
|
|
|
|
|
taskDetailInfo?.submitDateTimestamp ? format(taskDetailInfo?.submitDateTimestamp, 'yyyy-MM-dd HH:mm:ss')
|
|
|
|
|
:
|
|
|
|
|
'-'
|
|
|
|
|
}} </span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="status">
|
|
|
|
|
<img v-show="taskDetailInfo?.historyStates === 2" class="img-status" src="@/assets/images/task/pass.png" alt="">
|
|
|
|
|
<img v-show="taskDetailInfo?.historyStates === 2" class="img-status" src="@/assets/images/task/pass.png"
|
|
|
|
|
alt="">
|
|
|
|
|
<img v-show="taskDetailInfo?.historyStates === 3" class="img-status" src="@/assets/images/task/not_pass.png"
|
|
|
|
|
alt="">
|
|
|
|
|
</div>
|
|
|
|
@ -540,8 +547,8 @@ defineExpose({
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 操作 -->
|
|
|
|
|
<div v-show="overTask && overTask.id === taskDetailInfo.id" class="action" @click.stop="hideAction">
|
|
|
|
|
<SvgIcon style="cursor: pointer" name="t1" @click.stop="detailApprovalHandler" />
|
|
|
|
|
<SvgIcon style="cursor: pointer; margin-left: 30px" name="t2" @click.stop="detailRejectHandler" />
|
|
|
|
|
<SvgIcon style="cursor: pointer" name="t1" @click.stop="handleApproveMainImage" />
|
|
|
|
|
<SvgIcon style="cursor: pointer; margin-left: 30px" name="t2" @click.stop="handleRejectMainImage" />
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<PictureInfo :taskDetailInfo="taskDetailInfo"></PictureInfo>
|
|
|
|
@ -585,10 +592,10 @@ defineExpose({
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="check">
|
|
|
|
|
<n-checkbox v-show="batch && item.historyStates !== 2 && item.historyStates !== 3" v-model:checked="item.checked" @click.stop
|
|
|
|
|
@update:checked="onCheckChange($event, item)" />
|
|
|
|
|
<n-checkbox v-show="batch && item.historyStates !== 2 && item.historyStates !== 3"
|
|
|
|
|
v-model:checked="item.checked" @click.stop @update:checked="onCheckChange($event, item)" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="percent" :class="{ 'percent-red': item?.maxSimilarity >= 100 }">
|
|
|
|
|
<div class="percent" :class="{ 'percent-red': item?.maxSimilarity >= 100 }">
|
|
|
|
|
<div class="val">
|
|
|
|
|
{{ item?.maxSimilarity && Number(item?.maxSimilarity).toFixed(0) }}<span class="percent-unit">%</span>
|
|
|
|
|
</div>
|
|
|
|
@ -610,6 +617,7 @@ defineExpose({
|
|
|
|
|
</n-spin>
|
|
|
|
|
<ConfrimModal ref="confrimModalRef" @commit="reject" />
|
|
|
|
|
<NotPassed ref="notPassModalRef" @success="reloadList" />
|
|
|
|
|
<NotPassed ref="mainImageModalRef" @success="reloadDetailInfo" />
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
@ -662,6 +670,7 @@ defineExpose({
|
|
|
|
|
margin-left: 6px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.right {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
@ -920,6 +929,7 @@ defineExpose({
|
|
|
|
|
color: #507AFD;
|
|
|
|
|
border: 1px solid #507AFD;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tag-submiting {
|
|
|
|
|
color: #FFB800;
|
|
|
|
|
border: 1px solid #FFB800;
|
|
|
|
@ -1035,11 +1045,13 @@ defineExpose({
|
|
|
|
|
color: #fff;
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.percent-unit {
|
|
|
|
|
font-size: 8px;
|
|
|
|
|
margin-top: 4px;
|
|
|
|
|
}
|
|
|
|
|
.percent-red{
|
|
|
|
|
|
|
|
|
|
.percent-red {
|
|
|
|
|
background: #ff4e4f;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|