|
@@ -0,0 +1,535 @@
|
|
|
|
|
+<script setup lang="ts">
|
|
|
|
|
+import { useUserStore } from '@/stores/modules/user'
|
|
|
|
|
+import dayjs from 'dayjs'
|
|
|
|
|
+
|
|
|
|
|
+const userStore = useUserStore()
|
|
|
|
|
+const DataTimeSelection = ref('')
|
|
|
|
|
+const startDate = ref('')
|
|
|
|
|
+const endDate = ref('')
|
|
|
|
|
+const RollingValueStart = ref()
|
|
|
|
|
+const RollingValueeEnd = ref()
|
|
|
|
|
+const radio = ref(0)
|
|
|
|
|
+const fixedRangeRadio = ref('')
|
|
|
|
|
+const rollingRangeRadio = ref('')
|
|
|
|
|
+const DataTimeoptions = ref([
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 'ETD',
|
|
|
|
|
+ label: 'ETD'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ value: 'ETA',
|
|
|
|
|
+ label: 'ETA'
|
|
|
|
|
+ }
|
|
|
|
|
+])
|
|
|
|
|
+
|
|
|
|
|
+const isshowRolling = computed(() => radio.value === 1)
|
|
|
|
|
+const isShowFixed = computed(() => radio.value === 2)
|
|
|
|
|
+
|
|
|
|
|
+const clampedValueStart = computed({
|
|
|
|
|
+ get: () => RollingValueStart.value,
|
|
|
|
|
+ set: (newVal) => {
|
|
|
|
|
+ // 转换为整数
|
|
|
|
|
+ const num = parseInt(newVal, 10)
|
|
|
|
|
+ // 处理非数字和NaN情况
|
|
|
|
|
+ if (isNaN(num)) {
|
|
|
|
|
+ RollingValueStart.value = 0
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ // 范围限制
|
|
|
|
|
+ RollingValueStart.value = Math.max(0, Math.min(365, num))
|
|
|
|
|
+ }
|
|
|
|
|
+})
|
|
|
|
|
+const clampedValueEnd = computed({
|
|
|
|
|
+ get: () => RollingValueeEnd.value,
|
|
|
|
|
+ set: (newVal) => {
|
|
|
|
|
+ // 转换为整数
|
|
|
|
|
+ const num = parseInt(newVal, 10)
|
|
|
|
|
+ // 处理非数字和NaN情况
|
|
|
|
|
+ if (isNaN(num)) {
|
|
|
|
|
+ RollingValueeEnd.value = 0
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ // 范围限制
|
|
|
|
|
+ RollingValueeEnd.value = Math.max(0, Math.min(365, num))
|
|
|
|
|
+ }
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
|
|
+let RollingRangeTimeStr: any = ''
|
|
|
|
|
+
|
|
|
|
|
+const emits = defineEmits(['handleSubmitRolling'])
|
|
|
|
|
+
|
|
|
|
|
+// 输入时间
|
|
|
|
|
+const changeTime = (val: any) => {
|
|
|
|
|
+ if (val == 1) {
|
|
|
|
|
+ startDate.value = ''
|
|
|
|
|
+ endDate.value = ''
|
|
|
|
|
+ if (typeof clampedValueStart.value == 'number' && typeof clampedValueEnd.value == 'number') {
|
|
|
|
|
+ if (clampedValueStart.value == 0 && clampedValueEnd.value == 30) {
|
|
|
|
|
+ rollingRangeRadio.value = 'Next 30 days'
|
|
|
|
|
+ } else if (clampedValueStart.value == 0 && clampedValueEnd.value == 60) {
|
|
|
|
|
+ rollingRangeRadio.value = 'Next 60 days'
|
|
|
|
|
+ } else if (clampedValueStart.value == 10 && clampedValueEnd.value == 60) {
|
|
|
|
|
+ rollingRangeRadio.value = 'Past 10 days to next 60 day'
|
|
|
|
|
+ } else if (clampedValueStart.value == 30 && clampedValueEnd.value == 0) {
|
|
|
|
|
+ rollingRangeRadio.value = 'Past 30 days'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ rollingRangeRadio.value = 'Customize'
|
|
|
|
|
+ }
|
|
|
|
|
+ if (clampedValueStart.value == 0 && clampedValueEnd.value == 0) {
|
|
|
|
|
+ RollingRangeTimeStr = ''
|
|
|
|
|
+ } else {
|
|
|
|
|
+ RollingRangeTimeStr =
|
|
|
|
|
+ 'ETD: minus ' +
|
|
|
|
|
+ clampedValueStart.value +
|
|
|
|
|
+ ' Day(s) to Plus ' +
|
|
|
|
|
+ clampedValueEnd.value +
|
|
|
|
|
+ ' Day(s)'
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ RollingRangeTimeStr = ''
|
|
|
|
|
+ }
|
|
|
|
|
+ emits('handleSubmitRolling', {
|
|
|
|
|
+ rollingStartDate: clampedValueStart.value,
|
|
|
|
|
+ rollingEndDate: clampedValueEnd.value,
|
|
|
|
|
+ DataTimeSelection: DataTimeSelection.value
|
|
|
|
|
+ })
|
|
|
|
|
+ } else if (val == 2) {
|
|
|
|
|
+ clampedValueStart.value = 0
|
|
|
|
|
+ clampedValueEnd.value = 0
|
|
|
|
|
+ if (
|
|
|
|
|
+ startDate.value == dayjs().startOf('month').format('YYYY.MM.DD') &&
|
|
|
|
|
+ endDate.value == dayjs().endOf('month').format('YYYY.MM.DD')
|
|
|
|
|
+ ) {
|
|
|
|
|
+ fixedRangeRadio.value = 'This Month'
|
|
|
|
|
+ } else if (
|
|
|
|
|
+ startDate.value == dayjs().subtract(1, 'month').startOf('month').format('YYYY.MM.DD') &&
|
|
|
|
|
+ endDate.value == dayjs().subtract(1, 'month').endOf('month').format('YYYY.MM.DD')
|
|
|
|
|
+ ) {
|
|
|
|
|
+ fixedRangeRadio.value = 'Last Month'
|
|
|
|
|
+ } else if (
|
|
|
|
|
+ startDate.value ==
|
|
|
|
|
+ dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3)
|
|
|
|
|
+ .startOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD') &&
|
|
|
|
|
+ endDate.value ==
|
|
|
|
|
+ dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3 + 2)
|
|
|
|
|
+ .endOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD')
|
|
|
|
|
+ ) {
|
|
|
|
|
+ fixedRangeRadio.value = 'This Quarter'
|
|
|
|
|
+ } else if (
|
|
|
|
|
+ startDate.value ==
|
|
|
|
|
+ dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3 - 3)
|
|
|
|
|
+ .startOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD') &&
|
|
|
|
|
+ endDate.value ==
|
|
|
|
|
+ dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3 - 1)
|
|
|
|
|
+ .endOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD')
|
|
|
|
|
+ ) {
|
|
|
|
|
+ fixedRangeRadio.value = 'Last Quarter'
|
|
|
|
|
+ } else if (
|
|
|
|
|
+ startDate.value == dayjs().startOf('year').format('YYYY.MM.DD') &&
|
|
|
|
|
+ endDate.value == dayjs().endOf('year').format('YYYY.MM.DD')
|
|
|
|
|
+ ) {
|
|
|
|
|
+ fixedRangeRadio.value = 'This Year'
|
|
|
|
|
+ } else if (
|
|
|
|
|
+ startDate.value == dayjs().subtract(1, 'year').startOf('year').format('YYYY.MM.DD') &&
|
|
|
|
|
+ endDate.value == dayjs().subtract(1, 'year').endOf('year').format('YYYY.MM.DD')
|
|
|
|
|
+ ) {
|
|
|
|
|
+ fixedRangeRadio.value = 'Last Year'
|
|
|
|
|
+ } else {
|
|
|
|
|
+ fixedRangeRadio.value = 'Customize'
|
|
|
|
|
+ }
|
|
|
|
|
+ emits('handleSubmitRolling', {
|
|
|
|
|
+ rollingStartDate: startDate.value,
|
|
|
|
|
+ rollingEndDate: endDate.value,
|
|
|
|
|
+ DataTimeSelection: DataTimeSelection.value
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ RollingRangeTimeStr = ''
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+// 选择Dynamic Rolling Range默认值
|
|
|
|
|
+const ChangeRollingRangeRadio = (val: any) => {
|
|
|
|
|
+ if (val == 'Next 30 days') {
|
|
|
|
|
+ clampedValueStart.value = 0
|
|
|
|
|
+ clampedValueEnd.value = 30
|
|
|
|
|
+ } else if (val == 'Next 60 days') {
|
|
|
|
|
+ clampedValueStart.value = 0
|
|
|
|
|
+ clampedValueEnd.value = 60
|
|
|
|
|
+ } else if (val == 'Past 30 days') {
|
|
|
|
|
+ clampedValueStart.value = 30
|
|
|
|
|
+ clampedValueEnd.value = 0
|
|
|
|
|
+ } else if (val == 'Past 10 days to next 60 days') {
|
|
|
|
|
+ clampedValueStart.value = 10
|
|
|
|
|
+ clampedValueEnd.value = 60
|
|
|
|
|
+ } else {
|
|
|
|
|
+ clampedValueStart.value = 0
|
|
|
|
|
+ clampedValueEnd.value = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ if (clampedValueStart.value == 0 && clampedValueEnd.value == 0) {
|
|
|
|
|
+ RollingRangeTimeStr = ''
|
|
|
|
|
+ } else {
|
|
|
|
|
+ RollingRangeTimeStr =
|
|
|
|
|
+ 'ETD: minus ' +
|
|
|
|
|
+ clampedValueStart.value +
|
|
|
|
|
+ ' Day(s) to Plus ' +
|
|
|
|
|
+ clampedValueEnd.value +
|
|
|
|
|
+ ' Day(s)'
|
|
|
|
|
+ }
|
|
|
|
|
+ emits('handleSubmitRolling', {
|
|
|
|
|
+ rollingStartDate: clampedValueStart.value,
|
|
|
|
|
+ rollingEndDate: clampedValueEnd.value,
|
|
|
|
|
+ DataTimeSelection: DataTimeSelection.value
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// 选择fixed range默认值
|
|
|
|
|
+const changeFixedRange = (val: any) => {
|
|
|
|
|
+ if (val == 'This Month') {
|
|
|
|
|
+ startDate.value = dayjs().startOf('month').format('YYYY.MM.DD')
|
|
|
|
|
+ endDate.value = dayjs().endOf('month').format('YYYY.MM.DD')
|
|
|
|
|
+ } else if (val == 'Last Month') {
|
|
|
|
|
+ startDate.value = dayjs().subtract(1, 'month').startOf('month').format('YYYY.MM.DD')
|
|
|
|
|
+ endDate.value = dayjs().subtract(1, 'month').endOf('month').format('YYYY.MM.DD')
|
|
|
|
|
+ } else if (val == 'This Quarter') {
|
|
|
|
|
+ startDate.value = dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3)
|
|
|
|
|
+ .startOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD')
|
|
|
|
|
+ endDate.value = dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3 + 2)
|
|
|
|
|
+ .endOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD')
|
|
|
|
|
+ } else if (val == 'Last Quarter') {
|
|
|
|
|
+ startDate.value = dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3 - 3)
|
|
|
|
|
+ .startOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD')
|
|
|
|
|
+ endDate.value = dayjs()
|
|
|
|
|
+ .month(Math.floor(dayjs().month() / 3) * 3 - 1)
|
|
|
|
|
+ .endOf('month')
|
|
|
|
|
+ .format('YYYY.MM.DD')
|
|
|
|
|
+ } else if (val == 'This Year') {
|
|
|
|
|
+ startDate.value = dayjs().startOf('year').format('YYYY.MM.DD')
|
|
|
|
|
+ endDate.value = dayjs().endOf('year').format('YYYY.MM.DD')
|
|
|
|
|
+ } else if (val == 'Last Year') {
|
|
|
|
|
+ startDate.value = dayjs().subtract(1, 'year').startOf('year').format('YYYY.MM.DD')
|
|
|
|
|
+ endDate.value = dayjs().subtract(1, 'year').endOf('year').format('YYYY.MM.DD')
|
|
|
|
|
+ }
|
|
|
|
|
+ emits('handleSubmitRolling', {
|
|
|
|
|
+ rollingStartDate: startDate.value,
|
|
|
|
|
+ rollingEndDate: endDate.value,
|
|
|
|
|
+ DataTimeSelection: DataTimeSelection.value
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+</script>
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div style="padding: 8px 16px 16px 16px">
|
|
|
|
|
+ <div class="title">
|
|
|
|
|
+ <span class="stars_red">*</span>
|
|
|
|
|
+ Data Time Reference Field Selection
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-select class="select_time" v-model="DataTimeSelection" placeholder="Please select...">
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in DataTimeoptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ <div class="schedule_rule">
|
|
|
|
|
+ <div class="schedule_title">
|
|
|
|
|
+ <span class="stars_red">*</span>
|
|
|
|
|
+ Data Range Configuration Method
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="schedule_container">
|
|
|
|
|
+ <el-radio-group v-model="radio" @change="changeTime">
|
|
|
|
|
+ <el-radio :value="1">
|
|
|
|
|
+ <div class="radio_custom">
|
|
|
|
|
+ <div style="height: 38px">
|
|
|
|
|
+ Dynamic Rolling Range
|
|
|
|
|
+ <el-tooltip
|
|
|
|
|
+ popper-class="schedule-popper"
|
|
|
|
|
+ effect="dark"
|
|
|
|
|
+ :show-arrow="false"
|
|
|
|
|
+ placement="right"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #content>
|
|
|
|
|
+ Configuration: Past X days to Future Y days, always dynamically calculated based
|
|
|
|
|
+ on current date when generating reports.<br />
|
|
|
|
|
+ Usage: For example, setting 5 days to 3 days means the data range differs each
|
|
|
|
|
+ time it's automatically generated. Used for short-cycle operational monitoring.
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <span class="font_family icon-icon_info_b"></span>
|
|
|
|
|
+ </el-tooltip>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div v-if="isshowRolling" class="oceanCheckbox2">
|
|
|
|
|
+ <el-radio-group v-model="rollingRangeRadio" @change="ChangeRollingRangeRadio">
|
|
|
|
|
+ <el-radio-button label="Next 30 days" value="Next 30 days" />
|
|
|
|
|
+ <el-radio-button label="Next 60 days" value="Next 60 days" />
|
|
|
|
|
+ <el-radio-button
|
|
|
|
|
+ label="Past 10 days to next 60 days"
|
|
|
|
|
+ value="Past 10 days to next 60 days"
|
|
|
|
|
+ />
|
|
|
|
|
+ <el-radio-button label="Past 30 days" value="Past 30 days" />
|
|
|
|
|
+ <el-radio-button label="Customize" value="Customize" />
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ <div class="flex" style="align-items: end; margin: 0 8px 8px 0; flex-wrap: wrap">
|
|
|
|
|
+ <div class="date_flex" style="margin-right: 10px">
|
|
|
|
|
+ <div class="time_title">Start Date</div>
|
|
|
|
|
+ <div class="flex">
|
|
|
|
|
+ <div class="currentTime">Past</div>
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="clampedValueStart"
|
|
|
|
|
+ @input="changeTime('1')"
|
|
|
|
|
+ class="input-with-select"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-input>
|
|
|
|
|
+ <div class="Days">Day(s)</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="date_flex">
|
|
|
|
|
+ <div class="time_title">End Date</div>
|
|
|
|
|
+ <div class="flex">
|
|
|
|
|
+ <div class="currentTime">Future</div>
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="clampedValueEnd"
|
|
|
|
|
+ @input="changeTime('1')"
|
|
|
|
|
+ class="input-with-select"
|
|
|
|
|
+ >
|
|
|
|
|
+ </el-input>
|
|
|
|
|
+ <div class="Days">Day(s)</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-radio>
|
|
|
|
|
+ <el-radio :value="2">
|
|
|
|
|
+ <div class="radio_custom">
|
|
|
|
|
+ <div style="height: 38px">
|
|
|
|
|
+ Fixed Range
|
|
|
|
|
+ <el-tooltip
|
|
|
|
|
+ :show-arrow="false"
|
|
|
|
|
+ popper-class="schedule-popper"
|
|
|
|
|
+ effect="dark"
|
|
|
|
|
+ placement="right"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #content>
|
|
|
|
|
+ Configuration: Specific start and end dates, always query this range when
|
|
|
|
|
+ automatically generating reports.<br />
|
|
|
|
|
+ Example: Start date [2025-01-01], End date [2025-12-31]
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <span class="font_family icon-icon_info_b"></span>
|
|
|
|
|
+ </el-tooltip>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div v-if="isShowFixed">
|
|
|
|
|
+ <div class="oceanCheckbox2">
|
|
|
|
|
+ <el-radio-group
|
|
|
|
|
+ v-model="fixedRangeRadio"
|
|
|
|
|
+ @change="changeFixedRange"
|
|
|
|
|
+ class="oceanCheckbox2"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-radio-button label="This Month" value="This Month" />
|
|
|
|
|
+ <el-radio-button label="Last Month" value="Last Month" />
|
|
|
|
|
+ <el-radio-button label="This Quarter" value="This Quarter" />
|
|
|
|
|
+ <el-radio-button label="Last Quarter" value="Last Quarter" />
|
|
|
|
|
+ <el-radio-button label="This Year" value="This Year" />
|
|
|
|
|
+ <el-radio-button label="Last Year" value="Last Year" />
|
|
|
|
|
+ <el-radio-button label="Customize" value="Customize" />
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="display: flex">
|
|
|
|
|
+ <div style="margin-right: 9px; width: 50%">
|
|
|
|
|
+ <div class="date_text">Start Date</div>
|
|
|
|
|
+ <a-date-picker
|
|
|
|
|
+ :format="userStore.dateFormat"
|
|
|
|
|
+ valueFormat="YYYY.MM.DD"
|
|
|
|
|
+ :showToday="false"
|
|
|
|
|
+ @change="changeTime('2')"
|
|
|
|
|
+ style="width: 100%"
|
|
|
|
|
+ v-model:value="startDate"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #suffixIcon>
|
|
|
|
|
+ <span class="font_family icon-icon_date_b"></span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-date-picker>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div style="width: 50%">
|
|
|
|
|
+ <div class="date_text">End Date</div>
|
|
|
|
|
+ <a-date-picker
|
|
|
|
|
+ :format="userStore.dateFormat"
|
|
|
|
|
+ valueFormat="YYYY.MM.DD"
|
|
|
|
|
+ :showToday="false"
|
|
|
|
|
+ @change="changeTime('2')"
|
|
|
|
|
+ style="width: 100%"
|
|
|
|
|
+ v-model:value="endDate"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #suffixIcon>
|
|
|
|
|
+ <span class="font_family icon-icon_date_b"></span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </a-date-picker>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-radio>
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
|
+.title {
|
|
|
|
|
+ color: var(--color-neutral-2);
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+}
|
|
|
|
|
+.stars_red {
|
|
|
|
|
+ color: var(--color-danger);
|
|
|
|
|
+}
|
|
|
|
|
+.select_time {
|
|
|
|
|
+ margin: 4px 0 8px 0;
|
|
|
|
|
+ width: 320px;
|
|
|
|
|
+}
|
|
|
|
|
+.schedule_rule {
|
|
|
|
|
+ border: 1px solid var(--color-border);
|
|
|
|
|
+ background-color: var(--color-schedule-bg);
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ .schedule_title {
|
|
|
|
|
+ padding: 11px 9px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ color: var(--color-neutral-1);
|
|
|
|
|
+ }
|
|
|
|
|
+ .schedule_container {
|
|
|
|
|
+ margin: 0 9px 8px 9px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio-group) {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio) {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ min-height: 40px;
|
|
|
|
|
+ border: 1px solid var(--color-system-border);
|
|
|
|
|
+ background-color: var(--color-system-body-bg);
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+ border-radius: 6px;
|
|
|
|
|
+ padding: 0 8px;
|
|
|
|
|
+ margin-right: 0;
|
|
|
|
|
+ height: fit-content;
|
|
|
|
|
+ line-height: 40px;
|
|
|
|
|
+ align-items: start;
|
|
|
|
|
+}
|
|
|
|
|
+.oceanCheckbox2 {
|
|
|
|
|
+ :deep(.el-radio-group) {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: row;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+.oceanCheckbox2 {
|
|
|
|
|
+ :deep(.el-radio-button) {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ border: 1px solid var(--color-system-input-border);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ :deep(.el-radio-button:first-child) {
|
|
|
|
|
+ border-radius: 6px 0 0 6px;
|
|
|
|
|
+ }
|
|
|
|
|
+ :deep(.el-radio-button:last-child) {
|
|
|
|
|
+ border-radius: 0 6px 6px 0;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio-button__inner) {
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio-button:first-child .el-radio-button__inner) {
|
|
|
|
|
+ border-left: none;
|
|
|
|
|
+ border-radius: 6px 0 0 6px;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio-button:last-child .el-radio-button__inner) {
|
|
|
|
|
+ border-radius: 0 6px 6px 0;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.radio_custom) {
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio__input.is-checked + .el-radio__label) {
|
|
|
|
|
+ color: var(--color-neutral-1);
|
|
|
|
|
+}
|
|
|
|
|
+.input-with-select {
|
|
|
|
|
+ border-radius: 0;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-input__wrapper) {
|
|
|
|
|
+ border-radius: 0;
|
|
|
|
|
+ opacity: 0.8;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio__label) {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ .font_family {
|
|
|
|
|
+ color: var(--color-neutral-2);
|
|
|
|
|
+ margin-left: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio__inner) {
|
|
|
|
|
+ margin-top: 11px;
|
|
|
|
|
+}
|
|
|
|
|
+:deep(.el-radio__input) {
|
|
|
|
|
+ margin-top: 2px;
|
|
|
|
|
+}
|
|
|
|
|
+.date_text {
|
|
|
|
|
+ height: 26px;
|
|
|
|
|
+ color: var(--color-neutral-2);
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+}
|
|
|
|
|
+.flex {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+}
|
|
|
|
|
+.currentTime {
|
|
|
|
|
+ background-color: var(--el-disabled-bg-color);
|
|
|
|
|
+ border-radius: 6px 0 0 6px;
|
|
|
|
|
+ padding: 0 16px;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ border: 1px solid var(--color-system-input-border);
|
|
|
|
|
+}
|
|
|
|
|
+.Days {
|
|
|
|
|
+ width: 150px;
|
|
|
|
|
+ border: 1px solid var(--color-system-input-border);
|
|
|
|
|
+ border-radius: 0 6px 6px 0;
|
|
|
|
|
+ background-color: var(--color-system-body-bg);
|
|
|
|
|
+ border-left: 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ opacity: 0.8;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+}
|
|
|
|
|
+.time_title {
|
|
|
|
|
+ color: var(--color-neutral-2);
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ height: 25px;
|
|
|
|
|
+ margin-bottom: 4px;
|
|
|
|
|
+}
|
|
|
|
|
+.date_flex {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|