|
@@ -1,15 +1,225 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <div>
|
|
|
|
|
- 预约待办
|
|
|
|
|
|
|
+ <div class="main_container">
|
|
|
|
|
+ <div class="calendar" >
|
|
|
|
|
+ <Calendar v-model:selectedCalendarTime="selectedCalendarTime"></Calendar>
|
|
|
|
|
+ <div class="calendar_desc">
|
|
|
|
|
+ <div class="calendar_desc_title">
|
|
|
|
|
+ <span class="date_desc">7月预约</span>
|
|
|
|
|
+ <span class="total_count">共20条</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="calendar_desc_content">
|
|
|
|
|
+ <div class="active">
|
|
|
|
|
+ <span class="num">10</span>
|
|
|
|
|
+ <span>待开始</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="split_line"></div>
|
|
|
|
|
+ <div class="completed">
|
|
|
|
|
+ <span class="num">10</span>
|
|
|
|
|
+ <span>已结束</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="split_line"></div>
|
|
|
|
|
+ <div class="cancelled">
|
|
|
|
|
+ <span class="num">10</span>
|
|
|
|
|
+ <span>已取消</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="page_item appointment_todo">
|
|
|
|
|
+ <div class="page_search" style="margin-bottom: 16px">
|
|
|
|
|
+ <div class="search_content">
|
|
|
|
|
+ <div class="content_left">
|
|
|
|
|
+ <TabSearch tabType="box"
|
|
|
|
|
+ :tabList="tabSearchList"
|
|
|
|
|
+ :defaultTabKey="defaultTabType"
|
|
|
|
|
+ @tabChange="HandleTypeChange">
|
|
|
|
|
+ </TabSearch>
|
|
|
|
|
+ <FormSearchGroup :searchList="formSearchList" @searchChange=""></FormSearchGroup>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <SearchBlock :searchList="blockSearchList"></SearchBlock>
|
|
|
|
|
+ <div class="page_jg_20"></div>
|
|
|
|
|
+
|
|
|
|
|
+ <TimeNavLine v-for="(item,index) in appointmentList"
|
|
|
|
|
+ :key="item.id"
|
|
|
|
|
+ :navIcon="item.navIcon"
|
|
|
|
|
+ :navTime="item.navTime"
|
|
|
|
|
+ :timeDesc="item.timeDesc"
|
|
|
|
|
+ :isLast="index == (appointmentList.length - 1)">
|
|
|
|
|
+ <template #navContent>
|
|
|
|
|
+ <FollowCard :cardList="[{...(item.desc)}]">
|
|
|
|
|
+ <template #operation>
|
|
|
|
|
+ <div class="table_row_option">
|
|
|
|
|
+ <span class="button_delete">取消预约</span>
|
|
|
|
|
+ <span class="option_button_editor">查看详情</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+ </FollowCard>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </TimeNavLine>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
|
|
+import { ref } from 'vue';
|
|
|
|
|
+import FormSearchGroup from '@/baseComponents/FormSearchGroup.vue';
|
|
|
|
|
+import SearchBlock from '@/baseComponents/SearchBlock.vue';
|
|
|
|
|
+import TabSearch from '@/baseComponents/TabSearch.vue';
|
|
|
|
|
+
|
|
|
|
|
+import {tabSearchList} from './tabSearch'
|
|
|
|
|
+import {formSearchList} from './formSearchGroup'
|
|
|
|
|
+
|
|
|
|
|
+import {blockSearchList} from './searchBlock'
|
|
|
|
|
+import TimeNavLine from '@/baseComponents/TimeNavLine.vue';
|
|
|
|
|
+import schoolIcon from '@/assets/clientManage/school.png'
|
|
|
|
|
+import FollowCard from '@/components/FollowCard.vue';
|
|
|
|
|
+
|
|
|
|
|
+import Calendar from '@/baseComponents/Calendar.vue'
|
|
|
|
|
+
|
|
|
|
|
+const defaultTabType = ref('appointment')
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+const appointmentList = ref([
|
|
|
|
|
+ {
|
|
|
|
|
+ id:1,
|
|
|
|
|
+ navTime: '14:00',
|
|
|
|
|
+ navIcon:schoolIcon,
|
|
|
|
|
+ timeDesc: '待开始',
|
|
|
|
|
+ navTitle:'北京市第一中学',
|
|
|
|
|
+
|
|
|
|
|
+ desc:{
|
|
|
|
|
+ id:1,
|
|
|
|
|
+ headerTitleList:['北京市区第一中学'],
|
|
|
|
|
+ headerTags:[],
|
|
|
|
|
+ taskType:'',
|
|
|
|
|
+ middleDesc:['跟进人员:张三','角色:校长','联系人:王德态'],
|
|
|
|
|
+ bottomDesc:'跟进内容:9:50会议室,所有管理层一起参会,准备PPT9:50会议室,所有管理层一起参会,准备PPT9:50会议室,所有管理层一起参会,准备PPT',
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ id:2,
|
|
|
|
|
+ navTime: '14:00',
|
|
|
|
|
+ navIcon:schoolIcon,
|
|
|
|
|
+ timeDesc: '待开始',
|
|
|
|
|
+ navTitle:'北京市第一中学',
|
|
|
|
|
+ desc:{
|
|
|
|
|
+ id:1,
|
|
|
|
|
+ headerTitleList:['北京市区第一中学'],
|
|
|
|
|
+ headerTags:[],
|
|
|
|
|
+ taskType:'',
|
|
|
|
|
+ middleDesc:['跟进人员:张三','角色:校长','联系人:王德态'],
|
|
|
|
|
+ bottomDesc:'跟进内容:9:50会议室,所有管理层一起参会,准备PPT9:50会议室,所有管理层一起参会,准备PPT9:50会议室,所有管理层一起参会,准备PPT',
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+])
|
|
|
|
|
+
|
|
|
|
|
+const HandleTypeChange = (val)=>{
|
|
|
|
|
+ defaultTabType.value = val
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 当前选中的日历信息
|
|
|
|
|
+const selectedCalendarTime =ref()
|
|
|
|
|
+
|
|
|
|
|
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
|
+.main_container{
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row;
|
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
|
+ gap:20px;
|
|
|
|
|
+ > div{
|
|
|
|
|
+ overflow:auto;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .calendar{
|
|
|
|
|
+ padding:16px;
|
|
|
|
|
+ width: 320px;
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ background: #FFFFFF;
|
|
|
|
|
+ border-radius: 10px 10px 10px 10px;
|
|
|
|
|
+ .calendar_desc{
|
|
|
|
|
+ padding:16px;
|
|
|
|
|
+ background: #F8FAFE;
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ border: 1px solid #EBEEF5;
|
|
|
|
|
+ .calendar_desc_title{
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ line-height: 22px;
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ color: #333333;
|
|
|
|
|
+ .date_desc{
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .calendar_desc_content{
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap:28px;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-top: 18px;
|
|
|
|
|
+ line-height: 20px;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ > div{
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap:4px;
|
|
|
|
|
+ .num{
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .split_line{
|
|
|
|
|
+ width: 1px;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+ background-color: #EBEEF5;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .active{
|
|
|
|
|
+ color:#2E64FA;
|
|
|
|
|
+ }
|
|
|
|
|
+ .completed{
|
|
|
|
|
+ color:#999999;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ .cancelled{
|
|
|
|
|
+ color:#F56C6C
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
+.time_nav_line{
|
|
|
|
|
+ :deep(.follow_card){
|
|
|
|
|
+ .audit_card{
|
|
|
|
|
+ border-color: transparent;
|
|
|
|
|
+ .table_row_option{
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ :hover{
|
|
|
|
|
+ :deep(.follow_card){
|
|
|
|
|
+ .audit_card{
|
|
|
|
|
+ background-color: #F8FAFE;
|
|
|
|
|
+ border: 1px solid #EBEEF5;
|
|
|
|
|
+ .table_row_option{
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|