|  | @@ -3,110 +3,201 @@
 | 
	
		
			
				|  |  |      <div class="tasks-left">
 | 
	
		
			
				|  |  |        <!-- 菜单 -->
 | 
	
		
			
				|  |  |        <div class="menu">
 | 
	
		
			
				|  |  | -        <span v-for="{ tab, name } in menuList" :key="tab" :class="['menu-item', tab === 'TaskList' ? 'active' : '']">
 | 
	
		
			
				|  |  | -          {{ name }}
 | 
	
		
			
				|  |  | -        </span>
 | 
	
		
			
				|  |  | +        <template v-for="{ tab, name, isShow } in menuList">
 | 
	
		
			
				|  |  | +          <span
 | 
	
		
			
				|  |  | +            v-if="isShow"
 | 
	
		
			
				|  |  | +            :key="tab"
 | 
	
		
			
				|  |  | +            :class="['menu-item', tab === 'TaskList' ? 'active' : '']"
 | 
	
		
			
				|  |  | +            @click="changeTab(tab)"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            {{ name }}
 | 
	
		
			
				|  |  | +          </span>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |        <!-- 日历 -->
 | 
	
		
			
				|  |  | -      <div class="calendar" />
 | 
	
		
			
				|  |  | +      <monthly-calendar ref="calendar" @changeTimeUnit="changeTimeUnit" @changeDate="changeDate" />
 | 
	
		
			
				|  |  |        <!-- 通知 -->
 | 
	
		
			
				|  |  |        <div class="notice">
 | 
	
		
			
				|  |  |          <div class="notice-title">
 | 
	
		
			
				|  |  | -          <svg-icon icon-class="task-notification" />
 | 
	
		
			
				|  |  | +          <svg-icon icon-class="task-notification" class-name="svg-normal" />
 | 
	
		
			
				|  |  |            <span>通知</span>
 | 
	
		
			
				|  |  | -          <span class="notice-title-link">全部 <i class="el-icon-arrow-right" /></span>
 | 
	
		
			
				|  |  | +          <span class="notice-title-link" @click="goPersonal">全部 <i class="el-icon-arrow-right" /></span>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        <!-- 通知列表 -->
 | 
	
		
			
				|  |  | +        <div class="notice-container">
 | 
	
		
			
				|  |  | +          <ul>
 | 
	
		
			
				|  |  | +            <li v-for="{ id, is_read, content, send_time, source_entity_id } in message_list" :key="id">
 | 
	
		
			
				|  |  | +              <span class="is-read" v-text="is_read === 'false' ? 'new' : ''" />
 | 
	
		
			
				|  |  | +              <span
 | 
	
		
			
				|  |  | +                class="notice-content"
 | 
	
		
			
				|  |  | +                :style="{ color: is_read === 'true' ? '#8c8c8c' : '#000' }"
 | 
	
		
			
				|  |  | +                @click="readMyMessage(id, source_entity_id)"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                {{ content }}
 | 
	
		
			
				|  |  | +              </span>
 | 
	
		
			
				|  |  | +              <span class="send-time">{{ send_time }}</span>
 | 
	
		
			
				|  |  | +            </li>
 | 
	
		
			
				|  |  | +          </ul>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  | -        <div class="notice-container" />
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      <div class="tasks-right">
 | 
	
		
			
				|  |  |        <div class="task-title">
 | 
	
		
			
				|  |  | -        <svg-icon icon-class="task-list" /><span class="task-title-name">任务列表</span>
 | 
	
		
			
				|  |  | +        <svg-icon icon-class="task-list" class-name="svg-normal" /><span class="task-title-name">任务列表</span>
 | 
	
		
			
				|  |  |          <div class="curricula-type">
 | 
	
		
			
				|  |  |            <span
 | 
	
		
			
				|  |  |              v-for="{ constant, name } in taskTimeList"
 | 
	
		
			
				|  |  |              :key="constant"
 | 
	
		
			
				|  |  | -            :class="['curricula-type-item', curTaskTime === constant ? 'active' : '']"
 | 
	
		
			
				|  |  | +            :class="['curricula-type-item', timeType === constant ? 'active' : '']"
 | 
	
		
			
				|  |  | +            @click="changeTaskTime(constant)"
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  |              {{ name }}
 | 
	
		
			
				|  |  |            </span>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  | -        <el-select />
 | 
	
		
			
				|  |  | +        <span class="select-prefix">
 | 
	
		
			
				|  |  | +          <svg-icon icon-class="schedule" class-name="svg-normal" />
 | 
	
		
			
				|  |  | +        </span>
 | 
	
		
			
				|  |  | +        <el-select v-model="course_id" @change="changeCourse">
 | 
	
		
			
				|  |  | +          <el-option v-for="{ id, name } in course_list" :key="id" :label="name" :value="id" />
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <div class="task-container">
 | 
	
		
			
				|  |  | +        <ul v-for="({ task_list }, i) in task_group_list" :key="i" class="task-list">
 | 
	
		
			
				|  |  | +          <li
 | 
	
		
			
				|  |  | +            v-for="({ id, cs_item_name, time_type, course_name, teaching_type }, j) in task_list"
 | 
	
		
			
				|  |  | +            :key="id"
 | 
	
		
			
				|  |  | +            class="task-item"
 | 
	
		
			
				|  |  | +            :style="{
 | 
	
		
			
				|  |  | +              'background-color': colorMatching[i % 6].background,
 | 
	
		
			
				|  |  | +              color: colorMatching[i % 6].main,
 | 
	
		
			
				|  |  | +              border: `1px solid ${colorMatching[i % 6].border}`
 | 
	
		
			
				|  |  | +            }"
 | 
	
		
			
				|  |  | +            @click="taskLink_outside(id)"
 | 
	
		
			
				|  |  | +          >
 | 
	
		
			
				|  |  | +            <div class="task-item-top">
 | 
	
		
			
				|  |  | +              <svg-icon icon-class="arrival" :style="{ color: colorMatching[i % 6].main }" />
 | 
	
		
			
				|  |  | +              <span class="cs-item-name">{{ cs_item_name }}</span>
 | 
	
		
			
				|  |  | +              <span
 | 
	
		
			
				|  |  | +                class="task-button"
 | 
	
		
			
				|  |  | +                :style="{ 'background-color': buttonColorList[j % 2] }"
 | 
	
		
			
				|  |  | +                @click.stop="taskLink(teaching_type, id)"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                {{ getTimeTypeName(time_type) }}任务
 | 
	
		
			
				|  |  | +              </span>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +            <div class="task-item-bottom">
 | 
	
		
			
				|  |  | +              <span>{{ course_name }}</span>
 | 
	
		
			
				|  |  | +            </div>
 | 
	
		
			
				|  |  | +          </li>
 | 
	
		
			
				|  |  | +        </ul>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  | -      <div />
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |    </div>
 | 
	
		
			
				|  |  |  </template>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  | -import { GetMyDayTaskList, PageQueryMyMessageList, GetMyTaskList } from '@/api/table';
 | 
	
		
			
				|  |  | +import { PageQueryMyMessageList, GetMyTaskList } from '@/api/table';
 | 
	
		
			
				|  |  |  import { CreateEnterLiveRoomSession } from '@/api/live';
 | 
	
		
			
				|  |  | -import { parseTime, formatDate } from '@/utils';
 | 
	
		
			
				|  |  |  import { ReadMyMessage } from '@/api/user';
 | 
	
		
			
				|  |  | -import { colorMatching, getMenuList } from './data';
 | 
	
		
			
				|  |  | +import { colorMatching, getMenuList, buttonColorList } from './data';
 | 
	
		
			
				|  |  |  import { taskTimeList } from '@/common/data';
 | 
	
		
			
				|  |  | +import { GetMyCourseList_TaskBelong } from '@/api/list';
 | 
	
		
			
				|  |  | +import MonthlyCalendar from './components/MonthlyCalendar';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |    name: 'TaskList',
 | 
	
		
			
				|  |  | +  components: {
 | 
	
		
			
				|  |  | +    MonthlyCalendar
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  |    data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  |        colorMatching,
 | 
	
		
			
				|  |  | +      buttonColorList,
 | 
	
		
			
				|  |  |        taskTimeList,
 | 
	
		
			
				|  |  | -      date: new Date(),
 | 
	
		
			
				|  |  | +      course_id: '',
 | 
	
		
			
				|  |  |        selected: '',
 | 
	
		
			
				|  |  | -      curTaskTime: -1,
 | 
	
		
			
				|  |  | +      timeType: -1,
 | 
	
		
			
				|  |  |        menuList: getMenuList(),
 | 
	
		
			
				|  |  |        task_group_list: [],
 | 
	
		
			
				|  |  | -      message_list: []
 | 
	
		
			
				|  |  | +      message_list: [],
 | 
	
		
			
				|  |  | +      course_list: []
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    computed: {
 | 
	
		
			
				|  |  | -    dateTime() {
 | 
	
		
			
				|  |  | -      return parseTime(this.date, '{m}-{d}');
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  watch: {
 | 
	
		
			
				|  |  | -    date() {
 | 
	
		
			
				|  |  | -      this.getTaskList();
 | 
	
		
			
				|  |  | +    time_unit() {
 | 
	
		
			
				|  |  | +      return this.$refs.calendar.time_unit;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    created() {
 | 
	
		
			
				|  |  |      PageQueryMyMessageList({
 | 
	
		
			
				|  |  |        read_status: -1,
 | 
	
		
			
				|  |  |        message_type: -1,
 | 
	
		
			
				|  |  | -      page_capacity: 5,
 | 
	
		
			
				|  |  | +      page_capacity: 4,
 | 
	
		
			
				|  |  |        cur_page: 1
 | 
	
		
			
				|  |  |      }).then(({ message_list }) => {
 | 
	
		
			
				|  |  |        this.message_list = message_list;
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  | -    GetMyTaskList({
 | 
	
		
			
				|  |  | -      time_type: this.time_type
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    mounted() {
 | 
	
		
			
				|  |  | -    this.getTaskList();
 | 
	
		
			
				|  |  | +    this.init();
 | 
	
		
			
				|  |  |    },
 | 
	
		
			
				|  |  |    methods: {
 | 
	
		
			
				|  |  | -    timeType(type) {
 | 
	
		
			
				|  |  | -      switch (type) {
 | 
	
		
			
				|  |  | -        case 0:
 | 
	
		
			
				|  |  | -          return '课前';
 | 
	
		
			
				|  |  | -        case 1:
 | 
	
		
			
				|  |  | -          return '课中';
 | 
	
		
			
				|  |  | -        case 2:
 | 
	
		
			
				|  |  | -          return '课后';
 | 
	
		
			
				|  |  | -        default:
 | 
	
		
			
				|  |  | -          return '';
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +    getTimeTypeName(type) {
 | 
	
		
			
				|  |  | +      if (type === 0) return '课前';
 | 
	
		
			
				|  |  | +      if (type === 1) return '课中';
 | 
	
		
			
				|  |  | +      if (type === 2) return '课后';
 | 
	
		
			
				|  |  | +      return '';
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    teachingType(type) {
 | 
	
		
			
				|  |  | -      switch (type) {
 | 
	
		
			
				|  |  | -        case 10:
 | 
	
		
			
				|  |  | -          return '进入直播间';
 | 
	
		
			
				|  |  | -        default:
 | 
	
		
			
				|  |  | -          return '查看';
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | +    getMyCourseList_TaskBelong() {
 | 
	
		
			
				|  |  | +      let { curYear, curMonth, focusDate } = this.$refs.calendar;
 | 
	
		
			
				|  |  | +      GetMyCourseList_TaskBelong({
 | 
	
		
			
				|  |  | +        time_unit: this.time_unit,
 | 
	
		
			
				|  |  | +        date_stamp: `${curYear}-${curMonth}-${focusDate}`,
 | 
	
		
			
				|  |  | +        month_stamp: `${curYear}-${curMonth}`
 | 
	
		
			
				|  |  | +      }).then(({ course_list }) => {
 | 
	
		
			
				|  |  | +        this.course_list = course_list;
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    getMyTaskList() {
 | 
	
		
			
				|  |  | +      let { curYear, curMonth, focusDate } = this.$refs.calendar;
 | 
	
		
			
				|  |  | +      GetMyTaskList({
 | 
	
		
			
				|  |  | +        time_unit: this.time_unit,
 | 
	
		
			
				|  |  | +        date_stamp: `${curYear}-${curMonth}-${focusDate}`,
 | 
	
		
			
				|  |  | +        month_stamp: `${curYear}-${curMonth}`,
 | 
	
		
			
				|  |  | +        time_type: this.timeType,
 | 
	
		
			
				|  |  | +        course_id: this.course_id
 | 
	
		
			
				|  |  | +      }).then(({ task_group_list }) => {
 | 
	
		
			
				|  |  | +        this.task_group_list = task_group_list;
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    // 改变任务时间类型
 | 
	
		
			
				|  |  | +    changeTaskTime(constant) {
 | 
	
		
			
				|  |  | +      this.timeType = constant;
 | 
	
		
			
				|  |  | +      this.getMyTaskList();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    changeTimeUnit() {
 | 
	
		
			
				|  |  | +      this.init();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    changeDate() {
 | 
	
		
			
				|  |  | +      this.init();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    init() {
 | 
	
		
			
				|  |  | +      this.course_id = '';
 | 
	
		
			
				|  |  | +      this.getMyTaskList();
 | 
	
		
			
				|  |  | +      this.getMyCourseList_TaskBelong();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    changeCourse(val) {
 | 
	
		
			
				|  |  | +      if (val.length <= 0) return;
 | 
	
		
			
				|  |  | +      this.getMyTaskList();
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      taskLink(type, task_id) {
 | 
	
	
		
			
				|  | @@ -131,11 +222,6 @@ export default {
 | 
	
		
			
				|  |  |        );
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    dateSkip(num) {
 | 
	
		
			
				|  |  | -      let day = 24 * 60 * 60 * 1000 * num;
 | 
	
		
			
				|  |  | -      this.date = new Date(this.date.getTime() + day);
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      readMyMessage(id, source_entity_id) {
 | 
	
		
			
				|  |  |        ReadMyMessage({ id }).then(() => {
 | 
	
		
			
				|  |  |          this.taskLink_outside(source_entity_id);
 | 
	
	
		
			
				|  | @@ -146,10 +232,8 @@ export default {
 | 
	
		
			
				|  |  |        window.location.href = `/GCLS-Personal/#/EnterSys`;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    getTaskList() {
 | 
	
		
			
				|  |  | -      GetMyDayTaskList({ date_stamp: formatDate(this.date) }).then(response => {
 | 
	
		
			
				|  |  | -        this.task_group_list = response.task_group_list;
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | +    changeTab(tab) {
 | 
	
		
			
				|  |  | +      this.$emit('changeTab', tab);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  };
 | 
	
	
		
			
				|  | @@ -188,7 +272,8 @@ export default {
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    .calendar {
 | 
	
		
			
				|  |  | +    // 日历
 | 
	
		
			
				|  |  | +    .monthly-calendar {
 | 
	
		
			
				|  |  |        height: 498px;
 | 
	
		
			
				|  |  |        padding: 32px;
 | 
	
		
			
				|  |  |        margin: 16px 0;
 | 
	
	
		
			
				|  | @@ -207,11 +292,6 @@ export default {
 | 
	
		
			
				|  |  |          align-items: center;
 | 
	
		
			
				|  |  |          justify-content: space-between;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        .svg-icon {
 | 
	
		
			
				|  |  | -          width: 24px;
 | 
	
		
			
				|  |  | -          height: 24px;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          > span:first-of-type {
 | 
	
		
			
				|  |  |            flex: 1;
 | 
	
		
			
				|  |  |            padding-left: 16px;
 | 
	
	
		
			
				|  | @@ -221,11 +301,42 @@ export default {
 | 
	
		
			
				|  |  |            color: #bababa;
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      &-container {
 | 
	
		
			
				|  |  | +        height: 100%;
 | 
	
		
			
				|  |  | +        overflow: auto;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        ul {
 | 
	
		
			
				|  |  | +          margin-top: 16px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          li {
 | 
	
		
			
				|  |  | +            display: flex;
 | 
	
		
			
				|  |  | +            padding: 8px 0;
 | 
	
		
			
				|  |  | +            border-bottom: 1px solid $border-color;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            .is-read {
 | 
	
		
			
				|  |  | +              width: 80px;
 | 
	
		
			
				|  |  | +              color: $basic-color;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            .notice-content {
 | 
	
		
			
				|  |  | +              width: 230px;
 | 
	
		
			
				|  |  | +              margin-right: 16px;
 | 
	
		
			
				|  |  | +              cursor: pointer;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            .send-time {
 | 
	
		
			
				|  |  | +              color: #8c8c8c;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    &-right {
 | 
	
		
			
				|  |  |      width: 802px;
 | 
	
		
			
				|  |  | +    height: calc(100vh - 119px);
 | 
	
		
			
				|  |  |      padding: 16px 24px;
 | 
	
		
			
				|  |  |      background-color: #fff;
 | 
	
		
			
				|  |  |      border-radius: 8px;
 | 
	
	
		
			
				|  | @@ -247,7 +358,7 @@ export default {
 | 
	
		
			
				|  |  |          height: 40px;
 | 
	
		
			
				|  |  |          margin: 0 16px;
 | 
	
		
			
				|  |  |          color: #8c8c8c;
 | 
	
		
			
				|  |  | -        background-color: #f5f5f5;
 | 
	
		
			
				|  |  | +        background-color: $bac-color;
 | 
	
		
			
				|  |  |          border: 1px solid $border-color;
 | 
	
		
			
				|  |  |          border-radius: 8px;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -266,10 +377,51 @@ export default {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      .el-select {}
 | 
	
		
			
				|  |  | +      .select-prefix {
 | 
	
		
			
				|  |  | +        padding: 6px;
 | 
	
		
			
				|  |  | +        margin-right: -1px;
 | 
	
		
			
				|  |  | +        border: 1px solid $border-color;
 | 
	
		
			
				|  |  | +        border-radius: 8px 0 0 8px;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .el-select {
 | 
	
		
			
				|  |  | +        width: calc(100% - 360px);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      .task-container {
 | 
	
		
			
				|  |  | +      height: calc(100% - 50px);
 | 
	
		
			
				|  |  | +      overflow: auto;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      .task-list {
 | 
	
		
			
				|  |  | +        .task-item {
 | 
	
		
			
				|  |  | +          padding: 16px 24px;
 | 
	
		
			
				|  |  | +          margin-top: 16px;
 | 
	
		
			
				|  |  | +          cursor: pointer;
 | 
	
		
			
				|  |  | +          border-radius: 8px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          &-top {
 | 
	
		
			
				|  |  | +            display: flex;
 | 
	
		
			
				|  |  | +            margin-bottom: 8px;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            .cs-item-name {
 | 
	
		
			
				|  |  | +              flex: 1;
 | 
	
		
			
				|  |  | +              margin-left: 10px;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            .task-button {
 | 
	
		
			
				|  |  | +              padding: 4px 8px;
 | 
	
		
			
				|  |  | +              color: #fff;
 | 
	
		
			
				|  |  | +              border-radius: 8px;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          &-bottom {
 | 
	
		
			
				|  |  | +            font-size: 14px;
 | 
	
		
			
				|  |  | +            color: #808080;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 |