From 9a61e46d96536f3299e57f7259ae1c9972256ec6 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 30 九月 2025 09:42:09 +0800
Subject: [PATCH] 1. 隐藏未完成的账户匹配页面 2. 根据第三方新的接口文档修改接口url地址
---
src/components/list-item/ItemSubTask.vue | 159 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 145 insertions(+), 14 deletions(-)
diff --git a/src/components/list-item/ItemSubTask.vue b/src/components/list-item/ItemSubTask.vue
index 52b43f0..20f9ee1 100644
--- a/src/components/list-item/ItemSubTask.vue
+++ b/src/components/list-item/ItemSubTask.vue
@@ -1,23 +1,68 @@
<template>
<div class="wrapper">
- <div>
- <el-text truncated>{{ item.name }}</el-text>
- </div>
- <div>
- <el-space fill>
- <el-text truncated class="w-250px" size="small">{{ item.scenseaddress }}</el-text>
- <el-text truncated class="w-250px" size="small">{{
- $fm.formatYMDH(item.planstarttime)
- }}</el-text>
- <el-text truncated class="w-250px" size="small">{{ item.executorrealtimes }}</el-text>
- </el-space>
- </div>
- <el-row justify="end" style="margin-top: 4px">
- <slot :item="item"></slot>
+ <el-row justify="space-between" class="m-t-4">
+ <el-col :span="20">
+ <div class="text-title">
+ <el-tag
+ size="small"
+ :type="statusType.type"
+ effect="plain"
+ class="m-r-4 m-b-4"
+ >
+ <el-space :size="4">
+ <el-icon size="16">
+ <component :is="statusType.icon"></component>
+ </el-icon>
+ {{ item.status }}
+ </el-space>
+ </el-tag>
+ {{ item.name }}
+ </div>
+ <div class="text-info">
+ <div class="text-label">
+ <el-icon class="m-r-4" size="16"><LocationInformation /></el-icon>
+ <span>浠诲姟鍦板潃锛�</span>
+ </div>
+ {{ item.scenseaddress }}
+ </div>
+ <div class="text-info">
+ <div class="text-label">
+ <!-- <el-icon><Clock /></el-icon> -->
+ <el-icon class="m-r-4" size="16"><AlarmClock /></el-icon>
+ <span>浠诲姟鏃堕棿锛�</span>
+ </div>
+ {{ $fm.formatYMD(item.planstarttime) }}
+ </div>
+ <div class="text-info">
+ <div class="text-label">
+ <el-icon class="m-r-4" size="16"><User /></el-icon>
+ 浠诲姟浜哄憳锛�
+ </div>
+ {{ item.executorrealtimes }}
+ </div>
+ <el-space class="m-t-4">
+ <el-tag size="small" type="info" effect=""
+ >闂锛歿{ status.proNum }}</el-tag
+ >
+ <el-tag size="small" type="info" effect=""
+ >鏁存敼锛歿{ status.changeNum }}</el-tag
+ >
+ <el-tag size="small" :type="changePerType" effect=""
+ >鏁存敼鐜囷細{{ status.changePer }}</el-tag
+ >
+ </el-space>
+ </el-col>
+ <el-col :span="4">
+ <slot :item="item"></slot>
+ </el-col>
</el-row>
</div>
</template>
<script setup>
+import { ref, watch, computed } from 'vue';
+import problemApi from '@/api/fysp/problemApi';
+import ProCheckProxy from '@/views/fysp/check/ProCheckProxy';
+
/**
* 鐩戠瀵硅薄
*/
@@ -27,12 +72,98 @@
default: () => {}
}
});
+
+const loading = ref(false);
+const proList = ref([]);
+const status = ref({});
+
+const statusType = computed(() => {
+ switch (props.item.status) {
+ case '鏈墽琛�':
+ return {
+ type: 'danger',
+ icon: 'WarningFilled'
+ };
+ case '姝e湪鎵ц':
+ return {
+ type: 'success',
+ icon: 'Timer'
+ };
+ case '宸茬粨鏉�':
+ return {
+ type: 'info',
+ icon: 'SuccessFilled'
+ };
+ default:
+ return {
+ type: 'danger',
+ icon: 'Warning'
+ };
+ }
+});
+
+const changePerType = computed(() => {
+ if (status.value.changeNum == 0) {
+ if (status.value.proNum == 0) {
+ return 'success';
+ } else {
+ return 'danger';
+ }
+ } else if (status.value.proNum == status.value.changeNum) {
+ return 'success';
+ } else {
+ return 'warning';
+ }
+});
+
+watch(
+ () => props.item,
+ (nV, oV) => {
+ if (nV != oV) {
+ fetchProblems(nV);
+ }
+ },
+ { immediate: true }
+);
+
+function fetchProblems(subtask) {
+ loading.value = true;
+ problemApi
+ .getProBySubtask(subtask.stguid)
+ .then((res) => {
+ proList.value = res;
+ status.value = ProCheckProxy.calProStatus(res);
+ })
+ .finally(() => {
+ loading.value = false;
+ });
+}
</script>
<style scoped>
.wrapper {
/* width: 300px; */
+ width: 100%;
border: 1px solid var(--el-border-color);
border-radius: var(--el-border-radius-base);
padding: 4px 8px;
}
+
+.text-title {
+ font-weight: var(--el-font-weight-primary);
+ color: var(--el-text-color-primary);
+ font-size: var(--el-font-size-medium);
+}
+
+.text-info {
+ display: flex;
+ align-items: flex-start;
+ color: var(--el-text-color-secondary);
+ font-size: var(--el-font-size-small);
+}
+
+.text-label {
+ display: flex;
+ align-items: center;
+ white-space: nowrap;
+}
</style>
--
Gitblit v1.9.3