feat: 任务终审界面和一键查重界面的新建过滤条件新增规则,弹窗24小时展示

pull/19/head
刘释隆 1 year ago
parent ac5aeb5c05
commit 0837afc545

@ -150,7 +150,7 @@ function unformatValue(searchfield: string, searchvalue: any) {
function createCondition() { function createCondition() {
formValue.conditions.push({ formValue.conditions.push({
type: null, type: null,
operator: null, operator: 'eq',
result: null, result: null,
}) })
} }
@ -227,7 +227,7 @@ function leaveHandler() {
formValue.conditions = [ formValue.conditions = [
{ {
type: null, type: null,
operator: null, operator: 'eq',
result: null, result: null,
}, },
] ]
@ -269,7 +269,7 @@ defineExpose({
<n-form-item path="name" label="标题"> <n-form-item path="name" label="标题">
<n-input v-model:value="formValue.name" :style="{ width: '780px' }" @keydown.enter.prevent /> <n-input v-model:value="formValue.name" :style="{ width: '780px' }" @keydown.enter.prevent />
</n-form-item> </n-form-item>
<n-form-item path="logic" label="逻辑关系"> <n-form-item path="logic" label="逻辑关系" v-show="false">
<n-select filterable v-model:value="formValue.logic" placeholder="请选择逻辑关系" :options="logicOptions" /> <n-select filterable v-model:value="formValue.logic" placeholder="请选择逻辑关系" :options="logicOptions" />
</n-form-item> </n-form-item>
<n-form-item <n-form-item

@ -158,7 +158,7 @@ function unformatValue(searchfield: string, searchvalue: any) {
function createCondition() { function createCondition() {
formValue.conditions.push({ formValue.conditions.push({
type: null, type: null,
operator: null, operator: 'eq',
result: null, result: null,
}) })
} }
@ -260,7 +260,7 @@ function leaveHandler() {
formValue.conditions = [ formValue.conditions = [
{ {
type: null, type: null,
operator: null, operator: 'eq',
result: null, result: null,
}, },
] ]
@ -302,7 +302,7 @@ defineExpose({
<n-form-item path="name" label="标题"> <n-form-item path="name" label="标题">
<n-input v-model:value="formValue.name" :style="{ width: '780px' }" @keydown.enter.prevent /> <n-input v-model:value="formValue.name" :style="{ width: '780px' }" @keydown.enter.prevent />
</n-form-item> </n-form-item>
<n-form-item path="logic" label="逻辑关系"> <n-form-item path="logic" label="逻辑关系" v-show="false">
<n-select filterable v-model:value="formValue.logic" placeholder="请选择逻辑关系" :options="logicOptions" /> <n-select filterable v-model:value="formValue.logic" placeholder="请选择逻辑关系" :options="logicOptions" />
</n-form-item> </n-form-item>
<n-form-item <n-form-item

@ -1,101 +1,104 @@
<script lang="ts" setup> <script lang="ts" setup>
import { reactive, ref, toRefs } from 'vue' import { onMounted, reactive, ref, toRefs } from "vue";
import { format } from 'date-fns' import { format } from "date-fns";
import { NButton, NDataTable, useDialog, useMessage } from 'naive-ui' import { NButton, NDataTable, useDialog, useMessage } from "naive-ui";
import { aiApprovaltools, aiApprovaltoolsClearmark } from '@/api/work/work' import { aiApprovaltools, aiApprovaltoolsClearmark } from "@/api/work/work";
import { getToolsCount } from "@/api/home/main";
const emit = defineEmits<{ const emit = defineEmits<{
(e: 'reject', params: any) (e: "reject", params: any);
(e: 'notPass', params: any) (e: "notPass", params: any);
}>() }>();
const dialog = useDialog() const dialog = useDialog();
const state: any = reactive({ const state: any = reactive({
detail: {}, detail: {},
taskId: '', taskId: "",
}) });
const { detail } = toRefs(state) const { detail } = toRefs(state);
const cardStyle = { const cardStyle = {
'width': '450px', width: "450px",
'--n-padding-bottom': '10px', "--n-padding-bottom": "10px",
'--n-padding-left': '0px', "--n-padding-left": "0px",
} };
const show = ref(false) const show = ref(false);
function showModal(id) { function showModal(id) {
console.log(id) console.log(id);
state.taskId = id state.taskId = id;
getDetail(id) getDetail(id);
} }
async function getDetail(id) { async function getDetail(id) {
const res = await aiApprovaltools({ taskid: id }) const res = await aiApprovaltools({ taskid: id });
if (res.code === 'OK') { if (res.code === "OK") {
state.detail = res.data state.detail = res.data;
show.value = true show.value = true;
} }
console.log(res) console.log(res);
} }
async function clearMark() { async function clearMark() {
const res = await aiApprovaltoolsClearmark({ taskid: state.taskId }) const res = await aiApprovaltoolsClearmark({ taskid: state.taskId });
if (res.code === 'OK') if (res.code === "OK") closeModal();
closeModal()
} }
function closeModal() { function closeModal() {
show.value = false show.value = false;
} }
async function reject() { async function reject() {
// emit('reject', { a: 'todo' }) // emit('reject', { a: 'todo' })
// closeModal() // closeModal()
dialog.info({ dialog.info({
title: '确认提示', title: "确认提示",
content: '确认设置成假吗?', content: "确认设置成假吗?",
positiveText: '确定', positiveText: "确定",
negativeText: '取消', negativeText: "取消",
onPositiveClick: async () => { onPositiveClick: async () => {
// TODO // TODO
// const result = await resetApproval() // const result = await resetApproval()
clearMark() clearMark();
}, },
onNegativeClick: () => {}, onNegativeClick: () => {},
}) });
} }
async function viewRepeat(e: MouseEvent) { async function viewRepeat(e: MouseEvent) {
emit('notPass', { emit("notPass", {
id: state.taskId, id: state.taskId,
detail: state.detail, detail: state.detail,
}) });
e.preventDefault() e.preventDefault();
closeModal() closeModal();
}
async function getShowStatus() {
const res = await getToolsCount();
if (!JSON.parse(res.message)) {
show.value = true;
}
} }
onMounted(() => {
getShowStatus();
});
defineExpose({ defineExpose({
showModal, showModal,
}) });
</script> </script>
<template> <template>
<n-modal v-model:show="show" transform-origin="center" class="modal_wrap"> <n-modal v-model:show="show" transform-origin="center" class="modal_wrap">
<div class="wrapper"> <div class="wrapper">
<div class="closed"> <div class="closed">
<SvgIcon <SvgIcon style="cursor: pointer" name="cut-down" width="32" @click="closeModal" />
style="cursor: pointer"
name="cut-down"
width="32"
@click="closeModal"
/>
</div> </div>
<div class="wrapper-hearder"> <div class="wrapper-hearder">
<div class="wrapper-title"> <div class="wrapper-title">智能AI审批工具</div>
智能AI审批工具
</div>
<div class="wrapper-mark"> <div class="wrapper-mark">
{{ detail.tenantusername }} {{ detail.tenantusername }}
</div> </div>
@ -105,25 +108,20 @@ defineExpose({
<div v-for="i in 1" :key="i" class="item"> <div v-for="i in 1" :key="i" class="item">
<div class="imgwrapper" /> <div class="imgwrapper" />
<div class="content"> <div class="content">
<div class="task_id"> <div class="task_id">任务ID{{ detail.taskid }}</div>
任务ID{{ detail.taskid }}
</div>
<div class="tag_box"> <div class="tag_box">
<div class="tag_item"> <div class="tag_item">基线任务</div>
基线任务 <div class="tag_item error">相似图片({{ detail.similarcount }})</div>
</div>
<div class="tag_item error">
相似图片({{ detail.similarcount }})
</div>
</div> </div>
<div class="time_box"> <div class="time_box">
{{ format(detail.createtime, 'yyyy-MM-dd HH:mm:ss') }} {{ format(detail.createtime, "yyyy-MM-dd HH:mm:ss") }}
</div> </div>
</div> </div>
</div> </div>
</n-scrollbar> </n-scrollbar>
<div class="mark_text"> <div class="mark_text">
智能识别{{ detail.similarComplete }}张图片来源于网络建议将图片标记为假 快速审批不通过 智能识别{{ detail.similarComplete }}张图片来源于网络建议将图片标记为假
快速审批不通过
</div> </div>
<div class="footer"> <div class="footer">
<SvgIcon <SvgIcon

Loading…
Cancel
Save