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