Merge pull request 'jie' (#21) from jie into test

Reviewed-on: #21
pull/23/head^2
lizijie 1 year ago
commit f7ae058ec4

@ -23,7 +23,7 @@ const adminInfo = {
value: 'task-main', value: 'task-main',
}, },
{ {
label: 'AI工单', label: '图审审批管理',
value: 'worksheet-main', value: 'worksheet-main',
}, },
], ],

@ -180,6 +180,19 @@ export async function oneClickCheck(params: Partial<CheckParam> = { search_histo
params params
}) })
} }
/**
*
* @param
* @returns
*/
export async function deletePackage(params) {
return http.request({
url: `/ocr/ocrTaskPackage/deletePackage`,
method: 'get',
params
})
}
/** /**
* *
* @param * @param

@ -1,5 +1,5 @@
import type { RouteRecordRaw } from 'vue-router'
import { Layout } from '@/router/constant' import { Layout } from '@/router/constant'
import type { RouteRecordRaw } from 'vue-router'
/** /**
* @param name , , * @param name , ,
@ -19,7 +19,7 @@ const routes: Array<RouteRecordRaw> = [
redirect: '/worksheet', redirect: '/worksheet',
component: Layout, component: Layout,
meta: { meta: {
title: 'AI工单', title: '图审审批管理',
permissions: ['worksheet-main'], permissions: ['worksheet-main'],
svgname: 'worksheet', svgname: 'worksheet',
svgsize: 22, svgsize: 22,
@ -30,7 +30,7 @@ const routes: Array<RouteRecordRaw> = [
path: 'worksheet', path: 'worksheet',
name: 'worksheet-main', name: 'worksheet-main',
meta: { meta: {
title: 'AI工单', title: '图审审批管理',
}, },
component: () => import('@/views/worksheet/index.vue'), component: () => import('@/views/worksheet/index.vue'),
}, },

@ -236,11 +236,6 @@ async function tasksLoadingCloseCallback() {
checkingTaskModal.showModal() checkingTaskModal.showModal()
} }
async function showLoginSuccessModal() {
const modal = LoginSuccessModalRef.value as any
// modal.showModal()
}
async function commitHandler(settingParam) { async function commitHandler(settingParam) {
const params = { const params = {
name: settingParam.packagename, name: settingParam.packagename,

@ -1,8 +1,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import { format } from 'date-fns'; import { format } from 'date-fns';
import { computed, onMounted } from "vue"; import { computed, onMounted, ref } from "vue";
import type { PackageListItem } from "/#/workorder"; import type { PackageListItem } from "/#/workorder";
defineOptions({ name: "ListItem" }); defineOptions({ name: "ListItem" });
const emit = defineEmits(['dismisClick'])
const props = defineProps({ const props = defineProps({
selected: { selected: {
@ -21,19 +23,22 @@ const props = defineProps({
type: Array, type: Array,
default: () => [], default: () => [],
}, },
mouseOverTask: {
type: Array,
default: () => [],
},
}); });
console.log(props.dicts, "dicts"); const isDismissTask = ref(false)
const svgName = computed(() => { const svgName = computed(() => {
return props.selected ? "taskpack-select" : "taskpack"; return props.selected ? "taskpack-select" : "taskpack";
}); });
function getValueByLabel(label) {
const result = props.dicts.filter(item => item.name === label)
if (result.length === 0) { function handleDismissTask() {
return "" isDismissTask.value = true
} else { emit('dismisClick', props.mouseOverTask.id)
return props.dicts.filter(item => item.name === label)[0].fieldDesc
}
} }
onMounted(async () => { onMounted(async () => {
}) })
</script> </script>
@ -45,8 +50,16 @@ onMounted(async () => {
<div class="id-wrap"> <div class="id-wrap">
<SvgIcon :name="svgName" size="28" /> <SvgIcon :name="svgName" size="28" />
<span class="list-item-header-name" :class="{ 'list-item-header-selected': selected }"> <span class="list-item-header-name" :class="{ 'list-item-header-selected': selected }">
<span class="list-item-title" :title="listItem.name">{{ listItem.name }} </span> <n-ellipsis style="max-width: 180px">
{{ listItem.name }}
</n-ellipsis>
<span class="list-item-header-selected">({{ listItem.pictureCount }})</span> <span class="list-item-header-selected">({{ listItem.pictureCount }})</span>
<n-popover placement="bottom" trigger="hover" >
<template #trigger>
<span class="dismiss-task-pack" v-show="mouseOverTask?.id" style="cursor: pointer;" @click.stop="handleDismissTask">...</span>
</template>
<span>解散任务包</span>
</n-popover>
</span> </span>
</div> </div>
</div> </div>
@ -103,6 +116,11 @@ onMounted(async () => {
margin-bottom: 6px margin-bottom: 6px
} }
.dismiss-task-pack {
position: absolute;
right: 15px;
}
.list-item-header-name { .list-item-header-name {
width: 250px; width: 250px;
font-size: 16px; font-size: 16px;
@ -111,8 +129,10 @@ onMounted(async () => {
color: #333333; color: #333333;
margin-bottom: 0 0 8px 8px; margin-bottom: 0 0 8px 8px;
display: flex; display: flex;
justify-content: space-between; justify-content: flex-start;
.list-item-title{ align-items: center;
.list-item-title {
width: 200px; width: 200px;
display: inline-block; display: inline-block;
white-space: nowrap; white-space: nowrap;

@ -1,9 +1,11 @@
<script lang="ts" setup> <script lang="ts" setup>
import { deletePackage } from '@/api/home/main'
import NotPassed from '@/components/NotPassed.vue' import NotPassed from '@/components/NotPassed.vue'
import { useWorkOrder } from '@/store/modules/workOrder' import { useWorkOrder } from '@/store/modules/workOrder'
import { isEmpty } from '@/utils' import { isEmpty } from '@/utils'
import { useInfiniteScroll } from '@vueuse/core' import { useInfiniteScroll } from '@vueuse/core'
import { reactive, ref, unref, watch } from 'vue' import { useMessage } from 'naive-ui'
import { reactive, ref, watch } from 'vue'
import ApprovalModal from '../modal/ApprovalModal.vue' import ApprovalModal from '../modal/ApprovalModal.vue'
import ListItem from './ListItem.vue' import ListItem from './ListItem.vue'
import type { PackageListItem } from '/#/workorder' import type { PackageListItem } from '/#/workorder'
@ -33,11 +35,7 @@ const pagination = reactive({
const approvalModalRef = ref(null) const approvalModalRef = ref(null)
const notPassedRef: any = ref(null) const notPassedRef: any = ref(null)
const overTask = ref<any>(null);
function showModal(modalRef: any, id) {
const modal = unref(modalRef)! as any
modal.showModal(id)
}
function selectHandler(id: string, index: number) { function selectHandler(id: string, index: number) {
workStore.setActive(index) workStore.setActive(index)
@ -125,7 +123,21 @@ async function search(word: string) {
{ distance: 10, canLoadMore: () => canloadMore.value }, { distance: 10, canLoadMore: () => canloadMore.value },
) )
} }
function overTaskHandelr(item: any) {
overTask.value = item
}
function leaveTaskHandler() {
overTask.value = null;
}
const message = useMessage()
function dismisClick(packageId:string) {
deletePackage({packageId: packageId}).then((res) => {
if(res.code==="OK"){
message.success("解散任务包成功")
loadMore()
}
})
}
defineExpose({ defineExpose({
search, search,
}) })
@ -143,7 +155,11 @@ defineExpose({
:list-item="item" :list-item="item"
:show-field-list="showFieldList" :show-field-list="showFieldList"
:dicts="dicts" :dicts="dicts"
:mouse-over-task="overTask"
@click="selectHandler(item.id, index)" @click="selectHandler(item.id, index)"
@mouseover="overTaskHandelr(item)"
@mouseleave="leaveTaskHandler"
@dismisClick="dismisClick"
/> />
</div> </div>
</n-spin> </n-spin>

@ -53,7 +53,7 @@ const taskpagination = reactive({
pageSize: 10, pageSize: 10,
}); });
const sortBy: SimilarityPictureSortParam = { const sortBy: SimilarityPictureSortParam = {
orderType: "asc", orderType: "desc",
orderName: "similarityScore", orderName: "similarityScore",
}; };
const workStore = useWorkOrder(); const workStore = useWorkOrder();
@ -234,7 +234,7 @@ async function handleSelect(item: any) {
async function sortHandler(orderby: "similarityScore" | "createdate") { async function sortHandler(orderby: "similarityScore" | "createdate") {
selectedSortName.value = orderby; selectedSortName.value = orderby;
sortBy.orderName = orderby; sortBy.orderName = orderby;
sortBy.orderType = sortBy.orderType === "asc" ? "desc" : "asc"; sortBy.orderType = sortBy.orderType === "desc" ? "desc" : "asc";
refreshHandler(); refreshHandler();
} }
@ -480,7 +480,7 @@ function reloadList() {
<!-- 右侧任务 标题信息 --> <!-- 右侧任务 标题信息 -->
<div class="right"> <div class="right">
<n-scrollbar style="max-height: 100%"> <n-scrollbar style="max-height: 100%">
<span class="task-name" :title="taskDetailInfo.taskname">任务ID{{ taskDetailInfo.taskname }}</span> <n-ellipsis style="max-width: 350px">任务ID{{ taskDetailInfo.taskname }}</n-ellipsis>
<div class="tags"> <div class="tags">
<div class="tag tag-submiting" v-if="taskDetailInfo.states == 1">{{ TASK_STATUS_OBJ[taskDetailInfo.states] <div class="tag tag-submiting" v-if="taskDetailInfo.states == 1">{{ TASK_STATUS_OBJ[taskDetailInfo.states]
}}</div> }}</div>
@ -517,7 +517,7 @@ function reloadList() {
<div class="property"> <div class="property">
<span class="property-name top" style=" color: #666666">提报人 <span class="property-name top" style=" color: #666666">提报人
</span> </span>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.pictureInfo?.source || "-" }}</span> <span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.upname || "-" }}</span>
</div> </div>
<div class="property"> <div class="property">
<span class="property-name top" style=" color: #666666">创建时间 <span class="property-name top" style=" color: #666666">创建时间
@ -527,8 +527,8 @@ function reloadList() {
<div class="property"> <div class="property">
<span class="property-name top" style=" color: #666666">提报时间 <span class="property-name top" style=" color: #666666">提报时间
</span> </span>
<span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.uploadTime && <span style=" color: #333333; font-size: 16px">{{ taskDetailInfo?.submitDateTimestamp &&
format(taskDetailInfo?.pictureInfo?.uploadTime, 'yyyy-MM-dd HH:mm:ss') || '-' }}</span> format(taskDetailInfo?.submitDateTimestamp, 'yyyy-MM-dd HH:mm:ss') || '-' }}</span>
</div> </div>
<div v-for="key in Object.keys(propertys)" :key="key" class="property"> <div v-for="key in Object.keys(propertys)" :key="key" class="property">
<span class="property-name">{{ fieldMap[key] }}</span> <span class="property-name">{{ fieldMap[key] }}</span>
@ -914,8 +914,8 @@ function reloadList() {
} }
.tag-passed { .tag-passed {
color: #02C984; color: #ff7575;
border: 1px solid #02C984; border: 1px solid #ff7575;
} }
.tag-approved { .tag-approved {

Loading…
Cancel
Save