From 3908a403cb3a852bee96414a8bb82b88371e7b5a Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 22 十月 2024 11:42:33 +0800
Subject: [PATCH] 1. 任务调整模块修改(暂存)
---
src/components.d.ts | 3
src/components/list-item/ItemSubTask.vue | 53 +++++++++++++----
src/views/fysp/task/components/CompSubTaskList.vue | 31 +++++++++-
src/views/fysp/task/TaskManage.vue | 33 +++++++---
src/views/fysp/task/components/CompMonitorPlan.vue | 37 +++++++----
5 files changed, 115 insertions(+), 42 deletions(-)
diff --git a/src/components.d.ts b/src/components.d.ts
index 13c1bdc..12178e1 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -19,6 +19,7 @@
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
+ ElButtonGroup: typeof import('element-plus/es')['ElButtonGroup']
ElCalendar: typeof import('element-plus/es')['ElCalendar']
ElCard: typeof import('element-plus/es')['ElCard']
ElCascader: typeof import('element-plus/es')['ElCascader']
@@ -47,6 +48,7 @@
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup']
ElOption: typeof import('element-plus/es')['ElOption']
+ ElPageHeader: typeof import('element-plus/es')['ElPageHeader']
ElPagination: typeof import('element-plus/es')['ElPagination']
ElPopover: typeof import('element-plus/es')['ElPopover']
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
@@ -65,7 +67,6 @@
ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElText: typeof import('element-plus/es')['ElText']
- ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTree: typeof import('element-plus/es')['ElTree']
ElUpload: typeof import('element-plus/es')['ElUpload']
Footer: typeof import('./components/core/Footer.vue')['default']
diff --git a/src/components/list-item/ItemSubTask.vue b/src/components/list-item/ItemSubTask.vue
index 58abf2b..210bebc 100644
--- a/src/components/list-item/ItemSubTask.vue
+++ b/src/components/list-item/ItemSubTask.vue
@@ -1,20 +1,29 @@
<template>
<div class="wrapper">
- <div>
- <el-text truncated class="w-250px" size="large">{{ item.name }}</el-text>
+ <div class="text-title">
+ {{ item.name }}
</div>
- <div>
- <el-text truncated class="w-250px" size="small">{{ item.scenseaddress }}</el-text>
+ <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>
- <el-text truncated size="small">{{
- $fm.formatYMDH(item.planstarttime)
- }}</el-text>
+ <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>
- <el-text truncated class="w-250px" size="small">{{
- item.executorrealtimes
- }}</el-text>
+ <div class="text-info">
+ <div class="text-label">
+ <el-icon class="m-r-4" size="16"><User /></el-icon>
+ 浠诲姟浜哄憳锛�
+ </div>
+ {{ item.executorrealtimes }}
</div>
<el-row justify="end" style="margin-top: 4px">
<slot :item="item"></slot>
@@ -35,8 +44,28 @@
<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>
diff --git a/src/views/fysp/task/TaskManage.vue b/src/views/fysp/task/TaskManage.vue
index 68efe34..a3e4f21 100644
--- a/src/views/fysp/task/TaskManage.vue
+++ b/src/views/fysp/task/TaskManage.vue
@@ -39,24 +39,26 @@
<el-tabs model-value="first">
<el-tab-pane label="鐩戠璁″垝" name="first">
<el-row>
- <el-col :span="curSubTaskList.length > 0 ? 16 : 24">
+ <el-col :span="curSubTaskList ? 16 : 24">
<CompMonitorPlan
:task="curTask.data"
@date-change="onDateChange"
></CompMonitorPlan>
</el-col>
- <el-col v-if="curSubTaskList.length > 0" :span="8">
+ <el-col v-if="curSubTaskList" :span="8">
<CompSubTaskList
+ create
:data="curSubTaskList"
+ :loading="subTaskLoading"
height="56vh"
@add="subTaskDrawer = true"
></CompSubTaskList>
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane label="鐩戠鍦板浘" name="second">
+ <!-- <el-tab-pane label="鐩戠鍦板浘" name="second">
<CompTaskMap></CompTaskMap>
- </el-tab-pane>
+ </el-tab-pane> -->
</el-tabs>
</el-row>
<el-divider></el-divider>
@@ -177,7 +179,8 @@
// 褰撳墠閫夋嫨鐨勬棩浠诲姟
curDayTask: {},
// 褰撳墠閫夋嫨鐨勬棩浠诲姟涓嬬殑瀛愪换鍔�
- curSubTaskList: [],
+ curSubTaskList: undefined,
+ subTaskLoading: false,
// 鎬讳换鍔℃柊澧炲脊鍑烘
topTaskAddVisible: false
};
@@ -238,7 +241,7 @@
this.task = task;
this.sideLoading = false;
this.mainLoading = true;
- this.curSubTaskList = []
+ this.curSubTaskList = undefined;
taskApi
.fetchMonitorObjectVersion(task.data.tguid)
.then((res) => {
@@ -268,11 +271,19 @@
});
},
onDateChange(dayTask) {
- // this.subTaskDrawer = true;
- this.curDayTask = dayTask;
- taskApi.fetchSubtaskByDayTask(dayTask.guid).then((res) => {
- this.curSubTaskList = res;
- });
+ if (dayTask) {
+ this.subTaskLoading = true;
+ // this.subTaskDrawer = true;
+ this.curDayTask = dayTask;
+ taskApi
+ .fetchSubtaskByDayTask(dayTask.guid)
+ .then((res) => {
+ this.curSubTaskList = res;
+ })
+ .finally(() => (this.subTaskLoading = false));
+ } else {
+ this.curSubTaskList = [];
+ }
},
navToTaskCreate(value) {
this.topTaskAddVisible = false;
diff --git a/src/views/fysp/task/components/CompMonitorPlan.vue b/src/views/fysp/task/components/CompMonitorPlan.vue
index e59c37a..037c36c 100644
--- a/src/views/fysp/task/components/CompMonitorPlan.vue
+++ b/src/views/fysp/task/components/CompMonitorPlan.vue
@@ -22,15 +22,15 @@
<el-row justify="space-between" class="m-t-16">
<el-space direction="vertical">
<el-text size="small">鎬昏</el-text>
- <el-text>{{computeDayTask(data.day).totalTaskNum}}</el-text>
+ <el-text>{{ computeDayTask(data.day).totalTaskNum }}</el-text>
</el-space>
<el-space direction="vertical">
<el-text size="small">瀹屾垚</el-text>
- <el-text>{{computeDayTask(data.day).completeTaskNum}}</el-text>
+ <el-text>{{ computeDayTask(data.day).completeTaskNum }}</el-text>
</el-space>
<el-space direction="vertical">
<el-text size="small">鏁存敼</el-text>
- <el-text>{{computeDayTask(data.day).changedTaskNum}}</el-text>
+ <el-text>{{ computeDayTask(data.day).changedTaskNum }}</el-text>
</el-space>
<!-- <el-statistic title="鎬昏" :value="computeDayTask(data.day).totalTaskNum" />
<el-statistic title="瀹屾垚" :value="computeDayTask(data.day).completeTaskNum" />
@@ -55,7 +55,7 @@
default: () => {}
}
});
-const emit = defineEmits(['dateChange'])
+const emit = defineEmits(['dateChange']);
// 閫変腑鏃ユ湡
const dateValue = ref(new Date());
// 鏃ュ巻鏍囬
@@ -70,18 +70,27 @@
// 鏃ュ巻鑼冨洿
const startDay = computed(() => dayjs(props.task.starttime));
const endDay = computed(() => dayjs(props.task.endtime));
-const dateRange = computed(() => [startDay.value.toDate(), endDay.value.toDate()]);
+const dateRange = computed(() => [
+ startDay.value.toDate(),
+ endDay.value.toDate()
+]);
// const dateRange = computed(() => [new Date(2024, 4, 27), new Date(2024, 5, 30)]);
// 鏃ユ湡鏄惁鍦ㄤ换鍔¤寖鍥村唴
function isDayEnable(day) {
const _day = dayjs(day);
- return _day.isSameOrAfter(startDay.value, 'day') && _day.isSameOrBefore(endDay.value, 'day');
+ return (
+ _day.isSameOrAfter(startDay.value, 'day') &&
+ _day.isSameOrBefore(endDay.value, 'day')
+ );
}
/********************** 鏃ユ湡鏍峰紡 *********************************/
function calendarDayClz(day) {
- return 'calendar-day ' + (isDayEnable(day) ? 'calendar-day-enable' : 'calendar-day-disable');
+ return (
+ 'calendar-day ' +
+ (isDayEnable(day) ? 'calendar-day-enable' : 'calendar-day-disable')
+ );
}
function getDay(day) {
return day.split('-').splice(1, 2).join('-');
@@ -119,11 +128,11 @@
}
function onDateChange(e) {
- const day = dayjs(e).format('YYYY-MM-DD')
- const t = computeDayTask(day)
- console.log(t);
-
- emit('dateChange', t)
+ if (isDayEnable(e)) {
+ const day = dayjs(e).format('YYYY-MM-DD');
+ const t = computeDayTask(day);
+ emit('dateChange', t);
+ }
}
// 鎬讳换鍔$粺璁�
@@ -142,7 +151,7 @@
() => props.task,
(nV) => {
if (nV.tguid) {
- fetchDayTasks(nV.tguid);
+ fetchDayTasks(nV.tguid);
}
},
{ immediate: true }
@@ -185,7 +194,7 @@
border: 1px solid rgb(172, 165, 165);
border-radius: 50%; */
padding: 8px;
- height: var(--el-calendar-cell-width);
+ /* min-height: var(--el-calendar-cell-width); */
}
.calendar-day-enable {
diff --git a/src/views/fysp/task/components/CompSubTaskList.vue b/src/views/fysp/task/components/CompSubTaskList.vue
index d6cc205..b84adbd 100644
--- a/src/views/fysp/task/components/CompSubTaskList.vue
+++ b/src/views/fysp/task/components/CompSubTaskList.vue
@@ -1,12 +1,24 @@
<template>
<el-row justify="space-between">
<el-text>鍗曟棩璁″垝</el-text>
- <el-button type="success" size="small" @click="add">鏂板</el-button>
+ <el-button
+ v-show="create && data && data.length > 0"
+ type="success"
+ size="small"
+ @click="add"
+ >浠诲姟璋冩暣</el-button
+ >
</el-row>
<el-divider />
<div>
- <el-scrollbar :height="height">
- <el-space fill direction="vertical">
+ <el-scrollbar v-loading="loading" :height="height">
+ <el-space
+ v-if="data && data.length > 0"
+ fill
+ :fill-ratio="100"
+ direction="vertical"
+ style="width: 100%"
+ >
<ItemSubTask v-for="s in data" :key="s.guid" :item="s">
<template #default="{ item }">
<el-button type="danger" size="small" @click="remove(item)"
@@ -15,6 +27,14 @@
</template>
</ItemSubTask>
</el-space>
+ <div v-else>
+ <el-empty description="鏃犱换鍔¤褰�" />
+ <el-row justify="center">
+ <el-button type="success" size="small" @click="add"
+ >娣诲姞浠诲姟</el-button
+ >
+ </el-row>
+ </div>
</el-scrollbar>
</div>
</template>
@@ -26,7 +46,10 @@
height: {
type: String,
default: '70vh'
- }
+ },
+ // 鏄惁鏄剧ず娣诲姞浠诲姟鎸夐挳
+ create: Boolean,
+ loading: Boolean
});
const curSubTaskList = ref([]);
--
Gitblit v1.9.3