|
@@ -1,275 +1,131 @@
|
|
|
<template>
|
|
|
- <div class="page" id="page">
|
|
|
- <div class="top-title wow fadeInUp" data-wow-duration="2s" data-wow-delay="0s" data-wow-offset="0">
|
|
|
- <div class="report-nav-container top-container">
|
|
|
- <n-icon :component="IosFiling" size="40" style="vertical-align: middle" />
|
|
|
- <span>{{ t("common.navigate.report") }}</span>
|
|
|
+ <div class="page">
|
|
|
+ <div class="top">
|
|
|
+ <img src="@/assets/images/report/img1.png" alt="">
|
|
|
+ <div>
|
|
|
+ <div class="top_title">Reports</div>
|
|
|
+ <div class="top_location">
|
|
|
+ <span class="iconfont icon-weizhi"></span>
|
|
|
+ Current Location : Home <span class="iconfont icon-dkw_guanbi-"></span> <span>Reports</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="page-nav">
|
|
|
- <div class="report-page-nav page-nav-container">
|
|
|
- <div class="nav-txt wow fadeInLeft" data-wow-duration="2s" data-wow-delay="0s" data-wow-offset="0">
|
|
|
- <n-breadcrumb separator=">">
|
|
|
- <n-breadcrumb-item>
|
|
|
- <n-icon :component="MdHome" /><router-link to="/home">{{
|
|
|
- t("common.navigate.home")
|
|
|
- }}</router-link>
|
|
|
- </n-breadcrumb-item>
|
|
|
- <n-breadcrumb-item>
|
|
|
- <n-icon :component="IosFiling" />{{ t("common.navigate.report") }}
|
|
|
- </n-breadcrumb-item>
|
|
|
- </n-breadcrumb>
|
|
|
+ <div class="box">
|
|
|
+ <div class="box_l">
|
|
|
+ <div class="box_l_title">
|
|
|
+ <div>Industry Segment</div>
|
|
|
+ <div>
|
|
|
+ <span class="iconfont icon-shouqi1"></span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="content">
|
|
|
- <div class="content-search">
|
|
|
- <div class="report-category wow fadeInLeft" data-wow-duration="3s" data-wow-delay="0s" data-wow-offset="0">
|
|
|
- <div class="report-category-title">
|
|
|
- {{ t("report.category.fsttitle") }}
|
|
|
- </div>
|
|
|
- <ul>
|
|
|
- <template v-for="item in categories" :key="item">
|
|
|
- <li>
|
|
|
- <a>
|
|
|
- <span class="category-name">{{ item.marketTypeName }}({{ item.marketCount }})</span>
|
|
|
- <span class="category-check">
|
|
|
- <n-checkbox size="large" :checked="item.marketType === record.marketType" @update:checked="
|
|
|
- handleCategory(
|
|
|
- $event,
|
|
|
+ <div class="box_l_list">
|
|
|
+ <template v-for="item in categories" :key="item">
|
|
|
+ <div class="box_l_list_item" :class="{active:item.marketType === record.marketType}" @click=" handleCategory(
|
|
|
+ item,
|
|
|
item.marketType,
|
|
|
item.marketTypeName
|
|
|
- )
|
|
|
- " />
|
|
|
- </span>
|
|
|
- </a>
|
|
|
- </li>
|
|
|
- </template>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="report-search wow fadeInLeft" data-wow-duration="3s" data-wow-delay="0s" data-wow-offset="0">
|
|
|
- <div class="report-search-name">
|
|
|
- {{ t("report.category.sndtitle") }}
|
|
|
- </div>
|
|
|
- <div class="report-search-content">
|
|
|
- <n-input-number :show-button="false" clearable v-model:value="record.priceStr" :min="0" />
|
|
|
- <span class="report-search-line">-</span>
|
|
|
- <n-input-number :show-button="false" clearable v-model:value="record.priceEnd" :min="0" />
|
|
|
- <n-button type="primary" @click="queryPrice">{{
|
|
|
- t("report.category.ok")
|
|
|
- }}</n-button>
|
|
|
- </div>
|
|
|
- <div class="report-search-range">
|
|
|
- <!--<template v-for="item in prices" :key="item">-->
|
|
|
- <div class="price-range range">
|
|
|
- <!--({{ item.marketCount }})-->
|
|
|
- <span>{{ t("report.price.eight") }}</span>
|
|
|
- <n-checkbox size="large" :checked="8000 === record.queryPrice" @update:checked="handlePrice($event, 8000)" />
|
|
|
- </div>
|
|
|
- <div class="price-range range">
|
|
|
- <!--({{ item.marketCount }})-->
|
|
|
- <span>{{ t("report.price.twelve") }}</span>
|
|
|
- <n-checkbox size="large" :checked="12000 === record.queryPrice" @update:checked="handlePrice($event, 12000)" />
|
|
|
- </div>
|
|
|
- <div class="price-range range">
|
|
|
- <!--({{ item.marketCount }})-->
|
|
|
- <span>{{ t("report.price.fifteen") }}</span>
|
|
|
- <n-checkbox size="large" :checked="15000 === record.queryPrice" @update:checked="handlePrice($event, 15000)" />
|
|
|
- </div>
|
|
|
- <div class="price-range range">
|
|
|
- <!--({{ item.marketCount }})-->
|
|
|
- <span>{{ t("report.price.fifteens") }}</span>
|
|
|
- <n-checkbox size="large" :checked="15001 === record.queryPrice" @update:checked="handlePrice($event, 15001)" />
|
|
|
- </div>
|
|
|
- <!--</template>-->
|
|
|
- <!-- <div class="price-range range">
|
|
|
- <span><¥3000(1000)</span>
|
|
|
- <n-checkbox size="large"
|
|
|
- :checked="3000 === record.queryPrice"
|
|
|
- @update:checked="handlePrice($event,3000)"/>
|
|
|
- </div>-->
|
|
|
+ )">
|
|
|
+ <div class="box_l_list_item_l">{{ item.marketTypeName }}</div>
|
|
|
+ <div class="box_l_list_item_r ">
|
|
|
+ <div></div>
|
|
|
+ <span class="iconfont icon-duigou"></span>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="report-search wow fadeInLeft" data-wow-duration="3s" data-wow-delay="0s" data-wow-offset="0">
|
|
|
- <div class="report-search-name">
|
|
|
- {{ t("report.category.trdtitle") }}
|
|
|
- </div>
|
|
|
- <div class="report-search-content">
|
|
|
- <n-date-picker type="date" clearable v-model:value="publishDateStr" />
|
|
|
- <span class="report-search-line">-</span>
|
|
|
- <n-date-picker type="date" clearable v-model:value="publishDateEnd" />
|
|
|
- <n-button type="primary" @click="queryPublishDate">{{
|
|
|
- t("report.category.ok")
|
|
|
- }}</n-button>
|
|
|
- </div>
|
|
|
- <div class="report-search-range">
|
|
|
- <template v-for="item in publishDates" :key="item">
|
|
|
- <div class="date-range range">
|
|
|
- <span>{{ item.marketTypeName }}({{ item.marketCount }})</span>
|
|
|
- <n-checkbox size="large" :checked="
|
|
|
- item.publishDateValue === record.queryPublishDate
|
|
|
- " @update:checked="
|
|
|
- handlePublishDate(
|
|
|
- $event,
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div class="box_l_title">
|
|
|
+ <div>Published</div>
|
|
|
+ <div>
|
|
|
+ <span class="iconfont icon-shouqi1"></span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="box_l_list">
|
|
|
+ <template v-for="item in publishDates" :key="item">
|
|
|
+ <div class="box_l_list_item" :class="{active:item.publishDateValue === record.queryPublishDate}" @click=" handlePublishDate(
|
|
|
+ item,
|
|
|
item.publishDateValue,
|
|
|
item.marketTypeName
|
|
|
- )
|
|
|
- " />
|
|
|
- </div>
|
|
|
- </template>
|
|
|
+ )">
|
|
|
+ <div class="box_l_list_item_l">{{ item.marketTypeName }}</div>
|
|
|
+ <div class="box_l_list_item_r ">
|
|
|
+ <div></div>
|
|
|
+ <span class="iconfont icon-duigou"></span>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="report-search wow fadeInLeft" data-wow-duration="3s" data-wow-delay="0s" data-wow-offset="0">
|
|
|
- <div class="report-search-name">
|
|
|
- {{ t("report.content.area") }}
|
|
|
- </div>
|
|
|
- <div class="report-search-range">
|
|
|
- <div class="range">
|
|
|
- <span>{{ t("report.content.global") }}</span>
|
|
|
- <n-checkbox size="large" :checked="record.reportRegion === '1'" @update:checked="handleRegion($event, '1')" />
|
|
|
+ </template>
|
|
|
+ <div class="selBox">
|
|
|
+ <n-date-picker v-model:value="publishDateStr" clearable placeholder="Select Date" type="date" />
|
|
|
+ <span> - </span>
|
|
|
+ <n-date-picker v-model:value="publishDateEnd" clearable placeholder="Select Date" type="date" />
|
|
|
+ <div class="selBox_btn" @click="queryPublishDate">OK</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="box_r">
|
|
|
+ <view class="box_r_list">
|
|
|
+ <template v-for="(item,i) in pageList?.list" :key="i">
|
|
|
+ <a class="box_r_list_item " :href="'/reports/' +item.webTitle +'-' +item.id">
|
|
|
+ <img :src="BaseUrl + '/report/' + item.fileName" alt="">
|
|
|
+ <div class="box_r_list_item_content">
|
|
|
+ <h2 class="box_r_list_title">{{ item.title }}</h2>
|
|
|
+ <div class="box_r_list_time">
|
|
|
+ <span class="iconfont icon-suoshuhangye-01"></span>
|
|
|
+ Industry:{{dealTypeShow(item.marketType)}}{{item.marketType}}
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="report-search-range">
|
|
|
- <div class="range">
|
|
|
- <span>{{ t("report.content.china") }}</span>
|
|
|
- <n-checkbox size="large" :checked="record.reportRegion === '0'" @update:checked="handleRegion($event, '0')" />
|
|
|
+ <div class="box_r_list_time">
|
|
|
+ <span class="iconfont icon-top_"></span>
|
|
|
+ Report Format:
|
|
|
+ <span class="desc-icon">
|
|
|
+ <img src="@/assets/images/doc.png" />
|
|
|
+ <img src="@/assets/images/pdf.png" />
|
|
|
+ <img src="@/assets/images/xlsx.png" />
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="report-content wow fadeInRight" data-wow-duration="3s" data-wow-delay="0s" data-wow-offset="0">
|
|
|
- <div class="search">
|
|
|
- <div class="search-text">
|
|
|
- <n-tag v-if="categoryTag" type="success" closable @close="handleCloseTag($event, 'marketType')">{{ categoryTag }}</n-tag>
|
|
|
- <n-tag v-if="priceTag" type="success" closable @close="handleCloseTag($event, 'price')">{{ priceTag }}</n-tag>
|
|
|
- <n-tag v-if="publishDateTag" type="success" closable @close="handleCloseTag($event, 'publishDate')">{{ publishDateTag }}</n-tag>
|
|
|
- <n-tag v-if="regionTag" type="success" closable @close="handleCloseTag($event, 'region')">{{ regionTag }}</n-tag>
|
|
|
- </div>
|
|
|
- <div class="search-keyword">
|
|
|
- <!-- <n-input type="text" size="large" round :placeholder="t('report.content.keyword')" v-model:value="record.queryKeyword" clearable>
|
|
|
- <template #suffix>
|
|
|
- <a class="search-btn" @click="handleSearch"><n-icon :component="MdSearch" size="30" color="#0e7a0d"/></a>
|
|
|
- </template>
|
|
|
- </n-input> -->
|
|
|
-
|
|
|
- <!-- <n-input-group>
|
|
|
- <n-button size="large" type="primary" @click="handleSearch" style="padding: 0 10px;"><n-icon :component="MdSearch" size="30" color="#fff"/></n-button>
|
|
|
- <n-input type="text" size="large" :placeholder="t('report.content.keyword')" v-model:value="record.queryKeyword" clearable/>
|
|
|
- </n-input-group> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="box">
|
|
|
- <ul v-if="pageList?.count > 0">
|
|
|
- <template v-for="item in pageList?.list" :key="item">
|
|
|
- <li>
|
|
|
- <div class="img">
|
|
|
- <img :src="BaseUrl + '/report/' + item.fileName" />
|
|
|
- </div>
|
|
|
- <div class="text">
|
|
|
- <!-- <a @click="viewDetail(item)"><h3>{{ item.title }}</h3></a> -->
|
|
|
- <a :href="
|
|
|
- (lang === 'zh-CN' ? '' : '/en') +
|
|
|
- '/reports/' +
|
|
|
- item.webTitle +
|
|
|
- '-' +
|
|
|
- item.id
|
|
|
- ">
|
|
|
- <h2>{{ item.title }}</h2>
|
|
|
- </a>
|
|
|
- <p>{{ item.outline }}</p>
|
|
|
- <div v-if="pcShow" class="time pc-time">
|
|
|
- <n-icon :component="MdTime" color="#0e7a0d" depth="1" size="18" />
|
|
|
- <span>{{ item.publishDate }}</span>
|
|
|
- <span class="text-type">
|
|
|
- {{ t("report.detail.formTitle") }}
|
|
|
- <span class="desc-icon">
|
|
|
- <img src="@/assets/images/doc.png" />
|
|
|
- <img src="@/assets/images/pdf.png" />
|
|
|
- <img src="@/assets/images/xlsx.png" />
|
|
|
- </span>
|
|
|
- </span>
|
|
|
- <span class="text-price">
|
|
|
- {{ t("report.content.version") }}:<b>{{
|
|
|
- (item.lang == "zh-CN" ? "¥ " : "") +
|
|
|
- item.price?.toFixed(2) +
|
|
|
- (item.lang == "en-US" ? " USD" : "")
|
|
|
- }}</b>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div v-if="pcShow" class="operate">
|
|
|
- <n-button class="btn" @click="handleDemand(item, '1')" type="warning">{{ t("report.content.sample") }}</n-button>
|
|
|
- <n-button class="btn" v-if="lang === 'zh-CN'" type="info" @click="handleDemand(item, '2')">{{ t("report.content.buy") }}</n-button>
|
|
|
- <n-button class="btn" v-else type="info" @click="tocontentBuy(item)">{{ t("report.content.buy") }}</n-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div v-if="!pcShow" class="time mobile-time">
|
|
|
- <n-icon :component="MdTime" color="#0e7a0d" depth="1" size="18" />
|
|
|
- <span>{{ item.publishDate }}</span>
|
|
|
- <span class="text-price">
|
|
|
- {{ t("report.content.version") }}:<b>{{
|
|
|
- (item.lang == "zh-CN" ? "¥ " : "") +
|
|
|
- item.price?.toFixed(2) +
|
|
|
- (item.lang == "en-US" ? " USD" : "")
|
|
|
- }}</b>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- </template>
|
|
|
-
|
|
|
- <div class="pagination">
|
|
|
- <n-pagination :page="pageList?.pageNo" :page-count="pageList?.count" :page-size="pageList?.pageSize" size="large" :on-update-page="changePage" :page-slot="7" />
|
|
|
+ <div class="box_r_list_time">
|
|
|
+ <span class="iconfont icon-normal"></span>
|
|
|
+ {{ item.publishDate }}
|
|
|
</div>
|
|
|
- </ul>
|
|
|
-
|
|
|
- <div class="box-empty" v-if="pageList?.count === 0">
|
|
|
- <n-empty :description="t('report.detail.empty')">
|
|
|
- <template #extra>
|
|
|
- <n-button @click="handleDemand({ id: '', price: 0 }, '0')" round type="primary">{{ t("report.detail.custom") }}</n-button>
|
|
|
- </template>
|
|
|
- </n-empty>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="box_r_list_item_btn">
|
|
|
+ <div class="box_r_list_item_btn_l">Request</div>
|
|
|
+ <div class="box_r_list_item_btn_r">Buy Now</div>
|
|
|
+ </div>
|
|
|
+ </a>
|
|
|
+ </template>
|
|
|
+ </view>
|
|
|
+ <div class="pageBox" v-if="pageList?.list.length>0">
|
|
|
+ <n-pagination show-quick-jumper :page-count="pageList?.count" :on-update:page="changePage" :page-slot="6">
|
|
|
+ <template #prev>
|
|
|
+ <div class="pageBox_btn">Previous</div>
|
|
|
+ </template>
|
|
|
+ <template #next>
|
|
|
+ <div class="pageBox_btn">Next</div>
|
|
|
+ </template>
|
|
|
+ <template #goto>
|
|
|
+ <div class="pageBox_inp">Go To</div>
|
|
|
+ </template>
|
|
|
+ </n-pagination>
|
|
|
+ </div>
|
|
|
+ <div class="box-empty" v-if="pageList?.count === 0">
|
|
|
+ <n-empty description="未找到指定的报告">
|
|
|
+ <template #extra>
|
|
|
+ <!-- <n-button @click="handleDemand({ id: '', price: 0 }, '0')" round type="primary">{{ t("report.detail.custom") }}</n-button> -->
|
|
|
+ </template>
|
|
|
+ </n-empty>
|
|
|
+ </div>
|
|
|
+ <div class="load">
|
|
|
+ <n-spin size="large">
|
|
|
+ <template #description>Loading...</template>
|
|
|
+ </n-spin>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="load">
|
|
|
- <n-spin size="large">
|
|
|
- <template #description>{{ t("report.content.loading") }}</template>
|
|
|
- </n-spin>
|
|
|
- </div>
|
|
|
-
|
|
|
- <n-modal :show="demandShow" preset="dialog" :title="t('report.detail.subscribe')" @close="demandShow = false" @esc="demandShow = false" @mask-click="demandShow = false" :style="'min-width: 40%'">
|
|
|
- <Demand :rowId="rowId" :rowPrice="rowPrice" :rowType="rowType" :rowRegion="rowRegion" @closeDialog="handleCloseDiag" />
|
|
|
- </n-modal>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
import { ref, onMounted, watch, onServerPrefetch, nextTick } from "vue";
|
|
|
import { MdSearch, MdHome, IosFiling, MdTime } from "@vicons/ionicons4";
|
|
|
-// import {
|
|
|
-// NBreadcrumb,
|
|
|
-// NBreadcrumbItem,
|
|
|
-// NInput,
|
|
|
-// NPagination,
|
|
|
-// NIcon,
|
|
|
-// NModal,
|
|
|
-// NCheckbox,
|
|
|
-// NTag,
|
|
|
-// NInputNumber,
|
|
|
-// NButton,
|
|
|
-// NDatePicker,
|
|
|
-// NSpin,
|
|
|
-// PaginationInfo,
|
|
|
-// NInputGroup,
|
|
|
-// NEmpty,
|
|
|
-// } from "naive-ui";
|
|
|
import {
|
|
|
useRouter,
|
|
|
useRoute,
|
|
@@ -299,7 +155,7 @@ const userStore = useUserStore();
|
|
|
const lang = userStore.getLang;
|
|
|
const config = useRuntimeConfig();
|
|
|
const BaseUrl = ref(config.public.baseUrl);
|
|
|
-const pageSize = 10;
|
|
|
+const pageSize = 9;
|
|
|
const websiteToken = computed(() => userStore.getToken);
|
|
|
const userInfo = computed(() => userStore.getUserInfo);
|
|
|
function viewDetail(item: any) {
|
|
@@ -328,6 +184,14 @@ const publishDates = ref();
|
|
|
// }, 1000);
|
|
|
// }
|
|
|
// })
|
|
|
+const dealTypeShow = (type) => {
|
|
|
+ let arr = categories.value;
|
|
|
+ for (let i = 0; i < arr.length; i++) {
|
|
|
+ if (arr[i].marketType == type) {
|
|
|
+ return arr[i].marketTypeName;
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
onMounted(async () => {
|
|
|
if (typeof window !== "undefined") {
|
|
|
window.scrollTo(0, 1);
|
|
@@ -379,22 +243,21 @@ async function getData() {
|
|
|
|
|
|
// 选择/取消类别
|
|
|
function handleCategory(
|
|
|
- checked: boolean,
|
|
|
+ item: boolean,
|
|
|
value: string | undefined,
|
|
|
label: string | undefined
|
|
|
) {
|
|
|
//const lang = useLocaleStore().getLocale;
|
|
|
const language = lang === "zh-CN" ? "" : "en";
|
|
|
- if (checked) {
|
|
|
- record.value.marketType = value;
|
|
|
- // categoryTag.value = label;
|
|
|
+ // item.checked = !Boolean(item.checked);
|
|
|
+ record.value.marketType =
|
|
|
+ record.value.marketType != item.marketType ? item.marketType : "";
|
|
|
+ if (record.value.marketType) {
|
|
|
router.push({
|
|
|
name: "reports",
|
|
|
params: { category: value, lang: language },
|
|
|
});
|
|
|
} else {
|
|
|
- record.value.marketType = "";
|
|
|
- // categoryTag.value = "";
|
|
|
router.push({ name: "reports", params: { lang: language } });
|
|
|
}
|
|
|
}
|
|
@@ -446,11 +309,11 @@ function handlePrice(checked: boolean, price: number | undefined) {
|
|
|
|
|
|
// 发布日期
|
|
|
function handlePublishDate(
|
|
|
- checked: boolean,
|
|
|
+ item: boolean,
|
|
|
day: number | undefined,
|
|
|
dayStr: string | undefined
|
|
|
) {
|
|
|
- if (checked) {
|
|
|
+ if (record.value.queryPublishDate != day) {
|
|
|
record.value.queryPublishDate = day;
|
|
|
publishDateTag.value = dayStr;
|
|
|
} else {
|
|
@@ -635,205 +498,388 @@ useHead({
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
-.content {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- padding: 10px 0 30px;
|
|
|
- flex-wrap: wrap;
|
|
|
- .content-search {
|
|
|
- width: 22%;
|
|
|
- .report-category {
|
|
|
- background-color: #fff;
|
|
|
- padding: 20px;
|
|
|
- .report-category-title {
|
|
|
- font-size: 18px;
|
|
|
- font-weight: 600;
|
|
|
- padding: 10px 0;
|
|
|
+@import "~/assets/css/tool.scss";
|
|
|
+.page {
|
|
|
+ .top {
|
|
|
+ width: 100%;
|
|
|
+ position: relative;
|
|
|
+ margin-top: var(--size-130);
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ > div {
|
|
|
+ width: 100%;
|
|
|
+ padding: var(--size-60) var(--size-176) 0;
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ .top_title {
|
|
|
+ font-size: var(--size-48);
|
|
|
+ font-family: Arial, Arial-Bold;
|
|
|
+ font-weight: 700;
|
|
|
+ text-align: left;
|
|
|
+ color: #ffffff;
|
|
|
+ }
|
|
|
+ .top_location {
|
|
|
+ font-size: var(--size-14);
|
|
|
+ font-family: Arial, Arial-Regular;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #ffffff;
|
|
|
+ .icon-dkw_guanbi- {
|
|
|
+ color: #ffffff;
|
|
|
+ font-size: var(--size-12);
|
|
|
+ }
|
|
|
+ span {
|
|
|
+ color: #72ff56;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .box {
|
|
|
+ background: #f6f7fa;
|
|
|
+ padding: var(--size-30) var(--size-147) var(--size-70);
|
|
|
+ display: flex;
|
|
|
+ .box_l {
|
|
|
+ background: #ffffff;
|
|
|
+ width: var(--size-493);
|
|
|
+ flex-shrink: 0;
|
|
|
+ .box_l_title {
|
|
|
+ width: 100%;
|
|
|
+ padding: var(--size-20) var(--size-30);
|
|
|
+ background: #6aaa87;
|
|
|
+ font-size: var(--size-22);
|
|
|
+ font-family: Arial, Arial-Bold;
|
|
|
+ font-weight: 700;
|
|
|
+ text-align: left;
|
|
|
+ color: #ffffff;
|
|
|
+ line-height: var(--size-22);
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ span {
|
|
|
+ font-size: var(--size-13);
|
|
|
+ }
|
|
|
}
|
|
|
- ul {
|
|
|
- padding: 0;
|
|
|
- li {
|
|
|
- height: 50px;
|
|
|
- line-height: 50px;
|
|
|
- margin: 0;
|
|
|
- list-style: none;
|
|
|
- padding: 0;
|
|
|
- > a {
|
|
|
+ .box_l_list {
|
|
|
+ padding: var(--size-12) 0;
|
|
|
+ border: 1px solid #ffffff;
|
|
|
+ border-bottom: var(--size-20) solid #ffffff;
|
|
|
+ background: #f4f7f9;
|
|
|
+ min-height: var(--size-282);
|
|
|
+ .box_l_list_item {
|
|
|
+ padding: var(--size-6) var(--size-30);
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ background: #f4f7f9;
|
|
|
+ cursor: pointer;
|
|
|
+ .box_l_list_item_l {
|
|
|
+ font-size: var(--size-18);
|
|
|
+ font-family: Arial, Arial-Regular;
|
|
|
+ color: #639e57;
|
|
|
+ line-height: var(--size-22);
|
|
|
+ }
|
|
|
+ .box_l_list_item_r {
|
|
|
+ width: var(--size-27);
|
|
|
+ height: var(--size-27);
|
|
|
+ border: 1px solid #639e57;
|
|
|
+ border-radius: 50%;
|
|
|
display: flex;
|
|
|
- justify-content: space-between;
|
|
|
align-items: center;
|
|
|
- > .category-name {
|
|
|
- font-size: 16px;
|
|
|
- margin: 0;
|
|
|
- line-height: 20px;
|
|
|
+ justify-content: center;
|
|
|
+ > div {
|
|
|
+ width: var(--size-17);
|
|
|
+ height: var(--size-17);
|
|
|
+ background: #639e57;
|
|
|
+ border-radius: 50%;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ span {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .active {
|
|
|
+ .box_l_list_item_l {
|
|
|
+ font-weight: 700;
|
|
|
+ }
|
|
|
+ .box_l_list_item_r {
|
|
|
+ background: #639e57;
|
|
|
+ span {
|
|
|
+ color: #ffffff;
|
|
|
+ font-size: var(--size-25);
|
|
|
+ }
|
|
|
+ > div {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ span {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .selBox {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: var(--size-8) var(--size-30);
|
|
|
+ > span {
|
|
|
+ display: inline-block;
|
|
|
+ }
|
|
|
+ .selBox_btn {
|
|
|
+ width: var(--size-68);
|
|
|
+ height: var(--size-44);
|
|
|
+ background: linear-gradient(90deg, #719d58 4%, #43a086 99%);
|
|
|
+ border-radius: var(--size-4);
|
|
|
+ font-size: var(--size-16);
|
|
|
+ font-family: Microsoft YaHei, Microsoft YaHei-Regular;
|
|
|
+ color: #ffffff;
|
|
|
+ cursor: pointer;
|
|
|
+ text-align: center;
|
|
|
+ line-height: var(--size-44);
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .box_r {
|
|
|
+ margin-left: var(--size-46);
|
|
|
+ flex-grow: 1;
|
|
|
+ .box_r_list {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ // justify-content: space-between;
|
|
|
+ .box_r_list_item {
|
|
|
+ background: #ffffff;
|
|
|
+ width: var(--size-338);
|
|
|
+ border-radius: var(--size-10);
|
|
|
+ margin-right: var(--size-26);
|
|
|
+ margin-bottom: var(--size-27);
|
|
|
+ overflow: hidden;
|
|
|
+ &:nth-child(3n) {
|
|
|
+ margin-right: 0;
|
|
|
+ }
|
|
|
+ > img {
|
|
|
+ width: var(--size-338);
|
|
|
+ height: var(--size-394);
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ .box_r_list_item_content {
|
|
|
+ padding: var(--size-15) var(--size-18);
|
|
|
+ .box_r_list_title {
|
|
|
+ font-size: var(--size-18);
|
|
|
+ font-family: Arial, Arial-Regular;
|
|
|
+ color: #1a1a1a;
|
|
|
+ line-height: var(--size-28);
|
|
|
overflow: hidden;
|
|
|
text-overflow: ellipsis;
|
|
|
- width: 80%;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
}
|
|
|
- > .category-check {
|
|
|
- font-size: 16px;
|
|
|
+ .box_r_list_time {
|
|
|
+ font-size: var(--size-14);
|
|
|
+ font-family: Microsoft YaHei, Microsoft YaHei-Regular;
|
|
|
color: #999999;
|
|
|
+ line-height: var(--size-26);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .desc-icon {
|
|
|
+ display: flex !important;
|
|
|
+ align-items: center;
|
|
|
+ img {
|
|
|
+ width: var(--size-18);
|
|
|
+ height: var(--size-18);
|
|
|
+ margin-left: var(--size-4);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &:nth-child(2) {
|
|
|
+ span {
|
|
|
+ font-size: var(--size-22);
|
|
|
+ position: relative;
|
|
|
+ left: var(--size--2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ &:nth-child(3),
|
|
|
+ &:nth-child(4) {
|
|
|
+ span {
|
|
|
+ font-size: var(--size-18);
|
|
|
+ display: inline-block;
|
|
|
+ margin-right: var(--size-3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .box_r_list_item_btn {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: var(--size-20) var(--size-18);
|
|
|
+ border-top: 1px solid rgba(230, 230, 230, 0.5);
|
|
|
+ > div {
|
|
|
+ width: var(--size-145);
|
|
|
+ height: var(--size-48);
|
|
|
+ border-radius: var(--size-8);
|
|
|
+ font-size: var(--size-14);
|
|
|
+ font-family: Arial, Arial-Regular;
|
|
|
text-align: center;
|
|
|
- vertical-align: middle;
|
|
|
+ color: #ffffff;
|
|
|
+ line-height: var(--size-48);
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .box_r_list_item_btn_l {
|
|
|
+ background: #60ac92;
|
|
|
+ }
|
|
|
+ .box_r_list_item_btn_r {
|
|
|
+ background: #84a86c;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .box_r_list_item:hover {
|
|
|
+ box-shadow: 0px var(--size-9) var(--size-16) 0px #d1d1d1;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- .report-search {
|
|
|
- padding: 20px;
|
|
|
- background-color: #fff;
|
|
|
- margin-top: 20px;
|
|
|
- .report-search-name {
|
|
|
- font-size: 18px;
|
|
|
- font-weight: 600;
|
|
|
- padding: 10px 0;
|
|
|
- }
|
|
|
- .report-search-content {
|
|
|
+ .pageBox {
|
|
|
display: flex;
|
|
|
- justify-content: space-around;
|
|
|
- padding-bottom: 20px;
|
|
|
- .n-input-number {
|
|
|
- width: 35%;
|
|
|
+ justify-content: center;
|
|
|
+ ::v-deep .n-pagination-item {
|
|
|
+ min-width: var(--size-42);
|
|
|
+ height: var(--size-42);
|
|
|
+ background: #f2f2f2;
|
|
|
+ border: 1px solid #cccccc;
|
|
|
+ border-radius: var(--size-4);
|
|
|
+ font-size: var(--size-14);
|
|
|
+ color: #808080;
|
|
|
+ text-align: center;
|
|
|
+ line-height: var(--size-40);
|
|
|
}
|
|
|
- .n-date-pick {
|
|
|
- width: 35%;
|
|
|
- .n-input .n-input-wrapper {
|
|
|
- .n-input__suffix {
|
|
|
- display: none !important;
|
|
|
- }
|
|
|
+ ::v-deep .n-pagination-item--active {
|
|
|
+ background: rgba(57, 154, 192, 1);
|
|
|
+ color: #ffffff;
|
|
|
+ &:hover {
|
|
|
+ background: rgba(57, 154, 192, 1);
|
|
|
+ color: #ffffff;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- .report-search-line {
|
|
|
- line-height: 30px;
|
|
|
+ .pageBox_btn {
|
|
|
+ width: var(--size-70);
|
|
|
+ color: #333333;
|
|
|
}
|
|
|
- }
|
|
|
- .report-search-range {
|
|
|
- .range {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- padding-bottom: 15px;
|
|
|
+ ::v-deep(.n-input__input) {
|
|
|
+ height: var(--size-40);
|
|
|
+ line-height: var(--size-40);
|
|
|
+ }
|
|
|
+ ::v-deep(.n-pagination .n-pagination-quick-jumper .n-input) {
|
|
|
+ border: 1px solid #cccccc;
|
|
|
+ }
|
|
|
+ .pageBox_inp {
|
|
|
+ font-size: var(--size-16);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .report-content {
|
|
|
- width: 77%;
|
|
|
- background-color: #fff;
|
|
|
- padding: 30px 50px;
|
|
|
- .search {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- padding-bottom: 20px;
|
|
|
- border-bottom: 1px solid #d1d1d1;
|
|
|
- align-items: center;
|
|
|
- .search-text {
|
|
|
- padding-top: 10px;
|
|
|
- font-size: 16px;
|
|
|
- font-weight: 700;
|
|
|
- width: 30%;
|
|
|
- .n-tag {
|
|
|
- margin: 0 5px 5px 0;
|
|
|
- }
|
|
|
- }
|
|
|
- .search-keyword {
|
|
|
- width: 60%;
|
|
|
+}
|
|
|
+::v-deep .n-date-picker > div {
|
|
|
+ --n-height: var(--size-45) !important;
|
|
|
+ margin-top: var(--size-1);
|
|
|
+}
|
|
|
+.load {
|
|
|
+ display: v-bind("spinShow");
|
|
|
+}
|
|
|
+@include responseTo("phone") {
|
|
|
+ .page {
|
|
|
+ .top {
|
|
|
+ img {
|
|
|
+ height: 100px;
|
|
|
+ object-fit: cover;
|
|
|
}
|
|
|
- }
|
|
|
- .box > ul > li {
|
|
|
- padding: 0.3rem 0;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- align-items: center;
|
|
|
- border-bottom: 1px solid #d1d1d1;
|
|
|
- flex-wrap: wrap;
|
|
|
- > .img {
|
|
|
- max-width: 11em;
|
|
|
- max-height: 14em;
|
|
|
- overflow: hidden;
|
|
|
- box-shadow: 7px 0px 15px rgb(0 87 149 / 33%);
|
|
|
- > img {
|
|
|
- width: 100%;
|
|
|
- transition: all 0.4s ease;
|
|
|
- border: none;
|
|
|
- vertical-align: middle;
|
|
|
+ > div {
|
|
|
+ padding: 15px;
|
|
|
+ .top_title {
|
|
|
+ font-size: 28px;
|
|
|
}
|
|
|
- // >img:hover{
|
|
|
- // transform: scale(1.1);
|
|
|
- // }
|
|
|
}
|
|
|
- .text {
|
|
|
- width: calc(100% - 13em);
|
|
|
- > a {
|
|
|
- > h3 {
|
|
|
- //word-break: break-all;
|
|
|
- }
|
|
|
- }
|
|
|
- > .time {
|
|
|
- vertical-align: sub;
|
|
|
- padding: 10px 0;
|
|
|
- > span {
|
|
|
- padding: 0px 20px 0 2px;
|
|
|
- vertical-align: text-bottom;
|
|
|
- > b {
|
|
|
- color: #f00;
|
|
|
+ }
|
|
|
+ .box {
|
|
|
+ padding: 15px;
|
|
|
+ width: 100%;
|
|
|
+ display: block;
|
|
|
+ .box_l {
|
|
|
+ width: 100%;
|
|
|
+ .box_l_list {
|
|
|
+ .box_l_list_item {
|
|
|
+ padding: var(--size-6) var(--size-20);
|
|
|
+ .box_l_list_item_l {
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ .box_l_list_item_r {
|
|
|
+ width: var(--size-20);
|
|
|
+ height: var(--size-20);
|
|
|
+ > div {
|
|
|
+ width: var(--size-12);
|
|
|
+ height: var(--size-12);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- .desc-icon {
|
|
|
- img {
|
|
|
- width: 1.7em;
|
|
|
- height: 1.7em;
|
|
|
- vertical-align: bottom;
|
|
|
- margin-right: 0.6em;
|
|
|
+ .active .box_l_list_item_r span {
|
|
|
+ font-size: var(--size-18);
|
|
|
+ }
|
|
|
+ .selBox {
|
|
|
+ padding: var(--size-6) var(--size-20);
|
|
|
+ .selBox_btn {
|
|
|
+ width: var(--size-52);
|
|
|
+ height: var(--size-34);
|
|
|
+ border-radius: var(--size-4);
|
|
|
+ font-size: var(--size-16);
|
|
|
+ line-height: var(--size-34);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- > p {
|
|
|
- font-size: 14px;
|
|
|
- color: #999999;
|
|
|
- line-height: 26px;
|
|
|
- margin: 0.15rem 0;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- display: -webkit-box;
|
|
|
- -webkit-line-clamp: 3;
|
|
|
- -webkit-box-orient: vertical;
|
|
|
- //word-break: break-all;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .box {
|
|
|
- .box-empty {
|
|
|
- padding: 50px 0;
|
|
|
- border-bottom: 1px solid #d1d1d1;
|
|
|
}
|
|
|
- .operate {
|
|
|
- width: 100%;
|
|
|
- text-align: right;
|
|
|
- .btn {
|
|
|
- margin: 5px;
|
|
|
+ .box_r {
|
|
|
+ margin: 0;
|
|
|
+ .box_r_list {
|
|
|
+ .box_r_list_item {
|
|
|
+ width: 100%;
|
|
|
+ margin-right: 0;
|
|
|
+ > img {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .pageBox {
|
|
|
+ ::v-deep .n-pagination-item {
|
|
|
+ min-width: var(--size-21);
|
|
|
+ height: var(--size-21);
|
|
|
+ border-radius: var(--size-2);
|
|
|
+ font-size: var(--size-8);
|
|
|
+ line-height: var(--size-20);
|
|
|
+ }
|
|
|
+ .pageBox_btn {
|
|
|
+ width: var(--size-35);
|
|
|
+ }
|
|
|
+ ::v-deep(.n-input__input) {
|
|
|
+ height: var(--size-20);
|
|
|
+ line-height: var(--size-20);
|
|
|
+ font-size: var(--size-9);
|
|
|
+ }
|
|
|
+ .pageBox_inp {
|
|
|
+ font-size: var(--size-8);
|
|
|
+ }
|
|
|
+
|
|
|
+ ::v-deep(.n-pagination .n-pagination-quick-jumper .n-input) {
|
|
|
+ width: var(--size-35);
|
|
|
+ }
|
|
|
+ ::v-deep(.n-input .n-input__input-el) {
|
|
|
+ height: var(--size-20);
|
|
|
+ line-height: var(--size-20);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ ::v-deep(.n-input__input) {
|
|
|
+ height: var(--size-34);
|
|
|
+ line-height: var(--size-34);
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
}
|
|
|
-.search-btn > .n-icon {
|
|
|
- vertical-align: middle;
|
|
|
-}
|
|
|
-.pagination {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- padding: 20px;
|
|
|
-}
|
|
|
-.n-input .n-input__suffix {
|
|
|
- display: none !important;
|
|
|
-}
|
|
|
-.n-input .n-input-wrapper {
|
|
|
- padding: 0 1px;
|
|
|
-}
|
|
|
-.load {
|
|
|
- display: v-bind("spinShow");
|
|
|
+h2 {
|
|
|
+ margin: 0;
|
|
|
}
|
|
|
</style>
|