123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793 |
- <template>
- <div>
- <div class="map-box">
- <!-- 地图 -->
- <div
- id="mapDiv"
- ></div>
- <!-- 驿站查询与展示 -->
- <div class="site-search-data-box">
- <!-- 查询表单区域 -->
- <div class="search-input-box">
- <a-select
- v-model:value="searchType"
- @change="searchTypeChange"
- >
- <a-select-option value="site">找驿站</a-select-option>
- <a-select-option value="siteUser">找人员</a-select-option>
- </a-select>
- <a-input-search
- v-model:value="siteSearchParam.siteName"
- :placeholder="searchType == 'site' ? '请输入站点名称' : '请输入人员名称'"
- enter-button
- :loading="searchLoading"
- style="width: 77%"
- @search="onSearch"
- />
- </div>
- <!-- 数据列表 -->
- <div class="select-data-box">
- <!-- 下拉框查询部分 -->
- <div class="select-input-box">
- <span class="cursor-pointer" style="width: 35px;padding: 7px 0;text-align: center"
- @click="searchAll">全部</span>
- <a-select
- style="width: 30%;"
- v-model:value="siteSearchParam.regionCode"
- :allow-clear="true"
- :options="regionList"
- :field-names="{ label: 'name', value: 'code' }"
- :bordered="false"
- placeholder="所属县区"
- @change="changeRegion"
- >
- </a-select>
- <a-select
- style="width: 30%;"
- v-model:value="siteSearchParam.streetCode"
- :options="streetList"
- :field-names="{ label: 'name', value: 'code' }"
- :allow-clear="true"
- :bordered="false"
- placeholder="所属街道"
- @change="onSearch"
- >
- </a-select>
- <a-select
- style="width: 30%;"
- v-model:value="siteSearchParam.siteID"
- :options="siteDicList"
- :field-names="{ label: 'siteName', value: 'siteID' }"
- :allow-clear="true"
- :bordered="false"
- :disabled="searchType == 'site'"
- placeholder="所属驿站"
- @change="onSearch"
- >
- </a-select>
- </div>
- <div class="list-box">
- <!-- 驿站数据 -->
- <div v-if="searchType == 'site' && siteList.length > 0" class="site-data"
- :class="{'check-site':nowCheckSite.siteID == site.siteID || nowMouseenterSite.siteID == site.siteID}"
- v-for="(site,siteIndex) in siteList"
- :key="siteIndex"
- @click="checkSite(site)"
- @mouseenter="siteMouseenter(site)"
- @mouseleave="siteMouseenter({siteID:null})"
- >
- <p class="site-name">
- {{ site.siteName }}
- </p>
- <p class="label-text">
- 驿站编号:{{ site.siteCode }}
- </p>
- <p class="label-text">
- 所属县区:{{ site.regionName }}
- </p>
- </div>
- <!-- 驿站人员数据 -->
- <div v-if="searchType == 'siteUser' && siteUserList.length > 0" class="site-data"
- :class="{'check-site':nowCheckSiteUser.siteUserID == siteUser.siteUserID || nowMouseenterSiteUser.siteUserID == siteUser.siteUserID}"
- v-for="(siteUser,siteIndex) in siteUserList"
- :key="siteIndex"
- @click="checkSiteUser(siteUser)"
- @mouseenter="siteUserMouseenter(siteUser)"
- @mouseleave="siteUserMouseenter({siteUserID:null})"
- >
- <p class="site-name">
- {{ siteUser.siteUserName }}
- </p>
- <p class="label-text">
- 工号:{{ siteUser.userNo }}
- </p>
- <p class="label-text">
- 联系电话:{{ siteUser.mobile }}
- </p>
- <p class="label-text">
- 所属驿站:{{ siteUser.siteName }}
- </p>
- </div>
- <div
- v-if="(searchType == 'site' && siteList.length == 0) || (searchType == 'siteUser' && siteUserList.length == 0)"
- class="empty-box">
- <a-empty/>
- </div>
- </div>
- </div>
- <!-- 分页控件 -->
- <div class="pagination-box">
- <span>共{{ paginationTotal }}{{ searchType == 'site' ? '个' : '人' }}</span>
- <a-pagination v-model:current="siteSearchParam.pageIndex" :total="paginationTotal"
- v-model:pageSize="siteSearchParam.pageSize" :disabled="searchLoading"
- show-less-items @change="onSearch" simple :show-size-changer="false"/>
- </div>
- </div>
- <!-- 驿站详情 -->
- <div class="site-info-box" v-if="searchType == 'site' && nowCheckSite.siteID != null">
- <p class="font-size-16 font-weight-600 margin-bottom-10 text-align-center">
- {{ nowCheckSite.siteName }}
- ({{ nowCheckSite.siteCode }})
- </p>
- <div class="w-full flex-box items-start margin-bottom-3">
- <img :src="th" alt="" style="width: 23px; height: 20px;" class="margin-right-3"/>
- <span class="font-size-14 white-space-normal">{{ nowCheckSite.detailAddress }}</span>
- </div>
- <div class="avt-info margin-top-10">
- <img :src="avtO1" alt="">
- <div>
- <p>{{ nowCheckSite.fzrName }}(站长)</p>
- <p>{{ nowCheckSite.fzrMobile }}</p>
- </div>
- </div>
- <a-divider></a-divider>
- <div class="w-full flex-box font-weight-800">
- <div class="left-item-flag"></div>
- 建站以来累计
- </div>
- <div class="w-full margin-bottom-10 grid-cols-2 text-align-center padding-top-10 gap-y-1">
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.allCount.companyCount }}</p>
- <p class="font-size-12 font-weight-500">服务企业</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.allCount.postCount }}</p>
- <p class="font-size-12 font-weight-500">收集岗位</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.allCount.jobUserCount }}</p>
- <p class="font-size-12 font-weight-500">服务求职人员(人次)</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.allCount.jobFairsCount }}</p>
- <p class="font-size-12 font-weight-500">开展公共就业服务活动(场)</p>
- </div>
- </div>
- <div class="w-full flex-box font-weight-800">
- <div class="left-item-flag"></div>
- 本年以来累计
- </div>
- <div class="w-full margin-bottom-10 grid-cols-2 text-align-center padding-top-10 gap-y-1">
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.yearCount.companyCount }}</p>
- <p class="font-size-12 font-weight-500">服务企业</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.yearCount.postCount }}</p>
- <p class="font-size-12 font-weight-500">收集岗位</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.yearCount.jobUserCount }}</p>
- <p class="font-size-12 font-weight-500">服务求职人员(人次)</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.yearCount.jobFairsCount }}</p>
- <p class="font-size-12 font-weight-500">开展公共就业服务活动(场)</p>
- </div>
- </div>
- <div class="w-full flex-box font-weight-800">
- <div class="left-item-flag"></div>
- 本月以来累计
- </div>
- <div class="w-full margin-bottom-10 grid-cols-2 text-align-center padding-top-10 gap-y-1">
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.monthCount.companyCount }}</p>
- <p class="font-size-12 font-weight-500">服务企业</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.monthCount.postCount }}</p>
- <p class="font-size-12 font-weight-500">收集岗位</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.monthCount.jobUserCount }}</p>
- <p class="font-size-12 font-weight-500">服务求职人员(人次)</p>
- </div>
- <div>
- <p class="font-size-18 font-weight-700 ">{{ siteDataCount.monthCount.jobFairsCount }}</p>
- <p class="font-size-12 font-weight-500">开展公共就业服务活动(场)</p>
- </div>
- </div>
- </div>
- <!-- 驿站人员信息详情 -->
- <div class="site-user-info-box" v-if="searchType == 'siteUser' && nowCheckSiteUser.siteUserID != null">
- <div class="user-info-box margin-bottom-10">
- <p class="font-size-18 margin-bottom-8" style="font-weight: 600">
- {{ nowCheckSiteUser.siteUserName }}
- </p>
- <p class="label-text font-size-14 margin-bottom-3">
- 工号:{{ nowCheckSiteUser.userNo }}
- </p>
- <p class="label-text font-size-14 margin-bottom-3">
- 联系电话:{{ nowCheckSiteUser.mobile }}
- </p>
- <p class="label-text font-size-14 margin-bottom-3">
- 所属驿站:{{ nowCheckSiteUser.siteName }}
- </p>
- </div>
- <div class="data-count-box">
- <p class="font-size-18 margin-bottom-8" style="font-weight: 600">
- 工作情况
- </p>
- <p class="label-text font-size-14 margin-bottom-3">
- 企业登记数:{{ siteUserDataCount.companyCount }}家
- </p>
- <p class="label-text font-size-14 margin-bottom-3">
- 岗位登记数:{{ siteUserDataCount.postCount }}个
- </p>
- <p class="label-text font-size-14 margin-bottom-3">
- 求职人员登记数:{{ siteUserDataCount.jobUserCount }}人
- </p>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script setup lang="ts">
- import huiZhouGeoJSON from "./geo"
- import {setBoundary} from "@/utils/position";
- import {onMounted, reactive, ref} from "vue";
- import type {SelectProps} from "ant-design-vue";
- import {getRegionCodeList, getStreetCodeList} from "@/api/system/area/index";
- import {findSiteDataCount, getDataMapList, getSiteList} from "@/api/baseSettings/siteInfo";
- import thIcon from "@/assets/images/blueTh1.png"
- import {findUserDataCount, getSiteUserDataMapList} from "@/api/baseSettings/userInfo";
- import avtO1 from "@/assets/images/avt01.png";
- import th from "@/assets/images/th1.png";
- import dayjs from "dayjs";
- const T = (window as any).T;
- const zoom = 9;
- let map = null;
- // 天地图默认中心点坐标
- const centerLngLat = new T.LngLat(114.416110, 23.111582);
- // 地图标记点
- let markerList = ref<Array<any>>([]);
- let labelList = ref<Array<any>>([]);
- // 查询类型
- const searchType = ref("site")
- // 驿站查询数据
- const siteSearchParam = reactive({
- pageIndex: 1,
- pageSize: 100,
- siteName: "",
- regionCode: null,
- streetCode: null,
- siteID: null,
- });
- // 驿站数据
- const siteList = ref<Array<any>>([])
- // 驿站人员数据
- const siteUserList = ref<Array<any>>([]);
- // 查询动画
- const searchLoading = ref(false);
- // 驿站总条数
- const paginationTotal = ref(0)
- // 县区数据
- const regionList = ref<SelectProps['options']>();
- // 街道数据
- const streetList = ref<SelectProps['options']>();
- // 驿站下拉框数据
- const siteDicList = ref<any>([]);
- // 选中的站点
- const nowCheckSite = ref<any>({siteID: null})
- // 鼠标经过的站点
- const nowMouseenterSite = ref<any>({siteID: null});
- // 驿站的业务数据
- const siteDataCount = reactive({
- allCount: {
- companyCount: 0,
- postCount: 0,
- jobUserCount: 0,
- jobFairsCount: 0,
- },
- yearCount: {
- companyCount: 0,
- postCount: 0,
- jobUserCount: 0,
- jobFairsCount: 0,
- },
- monthCount: {
- companyCount: 0,
- postCount: 0,
- jobUserCount: 0,
- jobFairsCount: 0,
- }
- })
- // 选中的站点
- const nowCheckSiteUser = ref<any>({siteUserID: null})
- // 鼠标经过的站点
- const nowMouseenterSiteUser = ref<any>({siteUserID: null});
- // 驿站人员的业务数据
- const siteUserDataCount = ref<any>({})
- // 地图初始化
- const initMap = () => {
- // 初始化容器
- map = new T.Map('mapDiv');
- if (map != null) {
- // 设置地图显示中心点为惠州市人民政府
- (map as any).centerAndZoom(centerLngLat, zoom);
- (map as any).setMinZoom(5);
- (map as any).setMaxZoom(14);
- // 地图缩放监听事件
- (map as any).addEventListener("zoomend", function () {
- setSiteMarker(false);
- });
- }
- // 设置城市边界
- setBoundary(map, T, huiZhouGeoJSON);
- };
- // 查询驿站
- function onSearch() {
- searchLoading.value = true;
- if (searchType.value == "site") {
- getDataMapList(siteSearchParam).then((result: any) => {
- siteList.value = result.list;
- siteList.value.forEach((site: any) => {
- if (site.siteUsers) {
- site.siteUsers = site.siteUsers.split(',');
- } else {
- site.siteUsers = []
- }
- })
- paginationTotal.value = result.total;
- // 地图绘制
- setSiteMarker(true)
- }).finally(() => {
- searchLoading.value = false;
- })
- } else {
- let params = {
- pageIndex: siteSearchParam.pageIndex,
- pageSize: 100,
- siteUserName: siteSearchParam.siteName,
- regionCode: siteSearchParam.regionCode,
- streetCode: siteSearchParam.streetCode,
- siteID: siteSearchParam.siteID
- }
- getSiteUserDataMapList(params).then((result: any) => {
- siteUserList.value = result.list;
- paginationTotal.value = result.total;
- // 地图绘制
- setSiteMarker(true);
- }).finally(() => {
- searchLoading.value = false;
- })
- }
- }
- // 查询全部
- function searchAll() {
- siteSearchParam.pageIndex = 1;
- siteSearchParam.pageSize = 100;
- siteSearchParam.siteName = "";
- siteSearchParam.regionCode = null;
- siteSearchParam.streetCode = null;
- siteSearchParam.siteID = null;
- onSearch();
- }
- // 查询类型切换事件
- function searchTypeChange() {
- // 清空数据
- nowCheckSite.value = {siteID: null};
- nowCheckSiteUser.value = {siteUserID: null};
- onSearch();
- delMapInfo();
- }
- // 查询县区
- const getRegionList = async function () {
- regionList.value = await getRegionCodeList();
- }
- // 县区变更事件-查询街道数据
- const changeRegion = async function () {
- if (siteSearchParam.regionCode) {
- streetList.value = await getStreetCodeList(siteSearchParam.regionCode);
- getSiteList({pageIndex: 1, pageSize: 9999, regionCode: siteSearchParam.regionCode}).then((result: any) => {
- siteDicList.value = result.list;
- })
- } else {
- siteDicList.value = [];
- streetList.value = [];
- }
- onSearch();
- }
- function setSiteMarker(setCenter: boolean) {
- delMapInfo();
- if (setCenter) {
- // 设置中心点
- (map as any).centerAndZoom(centerLngLat, zoom);
- }
- if (siteList.value.length > 0 || siteUserList.value.length > 0) {
- let zoomLevel = (map as any).getZoom();
- const sizeData = computeMarkerSize(zoomLevel);
- // 设置图标
- const icon = new T.Icon({
- iconUrl: thIcon,
- iconSize: new T.Point(sizeData.iconSize, sizeData.iconSize),
- iconAnchor: sizeData.iconAnchor
- })
- if (searchType.value == "site") {
- // 解析站点数据,在地图中标记
- siteList.value.forEach((item: any) => {
- if (item.siteLongitude && item.siteLatitude) {
- const point = new T.LngLat(item.siteLongitude, item.siteLatitude)
- const marker = new T.Marker(point, {icon: icon}); // 创建标注
- // 添加点击事件
- marker.addEventListener('click', () => {
- checkSite(item);
- // marker.openInfoWindow(markerInfoWin);
- });
- let winHtml = `
- <div >
- <p style="line-height: 12px; font-size: 14px; font-weight: 600">${item.siteName}(${item.siteCode})</p>
- <span style="line-height: 12px;">所属区县:${item.regionName}</span>
- <br>
- <span style="line-height: 12px;">运营公司:${item.institutionName}</span>
- <br>
- <span style="line-height: 12px;">运营公司地址:${item.institutionAddress}</span>
- <br>
- <span style="line-height: 12px;">联系人:${item.institutionFzrName}</span>
- <br>
- <span style="line-height: 12px;">联系电话:${item.institutionFzrMobile}</span>
- </div>
- `;
- let markerInfoWin = new T.InfoWindow(winHtml, {autoPan: true, offset: new T.Point(3, 7)});
- // 添加鼠标经过事件
- marker.addEventListener('mouseover', () => {
- marker.openInfoWindow(markerInfoWin);
- });
- marker.addEventListener('mouseout', () => {
- marker.closeInfoWindow();
- });
- (map as any).addOverLay(marker);// 将标注添加到地图中
- markerList.value.push(marker);
- }
- })
- } else {
- // 解析人员数据
- siteUserList.value.forEach((item: any) => {
- if (item.longitude && item.latitude) {
- const point = new T.LngLat(item.longitude, item.latitude)
- const marker = new T.Marker(point, {icon: icon}); // 创建标注
- // 添加点击事件
- marker.addEventListener('click', () => {
- checkSiteUser(item);
- });
- (map as any).addOverLay(marker);// 将标注添加到地图中
- markerList.value.push(marker);
- } else if (item.siteLongitude && item.siteLatitude) {
- const point = new T.LngLat(item.siteLongitude, item.siteLatitude);
- const marker = new T.Marker(point, {icon: icon}); // 创建标注
- // 添加点击事件
- marker.addEventListener('click', () => {
- checkSiteUser(item);
- });
- (map as any).addOverLay(marker);// 将标注添加到地图中
- markerList.value.push(marker);
- }
- })
- }
- }
- }
- // 清空地图标点
- function delMapInfo() {
- // 删除已有标点
- if (markerList.value.length > 0) {
- for (let i = 0; i < markerList.value.length; i++) {
- (map as any).removeOverLay(markerList.value[i]);
- }
- markerList.value = [];
- }
- if (labelList.value.length > 0) {
- for (let i = 0; i < labelList.value.length; i++) {
- (map as any).removeOverLay(labelList.value[i]);
- }
- labelList.value = [];
- }
- (map as any).closeInfoWindow();
- }
- // 天地图按缩放基本计算图标与文本的大小与锚点偏移值
- function computeMarkerSize(zoomLevel: any) {
- // 计算新的icon大小
- let newIconSize = Math.min(Math.max(zoomLevel * 2, 10), 15);
- // 计算新的icon锚点位置
- let iconAnchor = new T.Point(10 * (newIconSize / 30), 20 * (newIconSize / 45));
- // 计算新的偏移量,保持 label 居中且不超过初始值
- let offsetX = -20 + ((newIconSize - 15) / 2);
- let offsetY = 28 + ((newIconSize - 15) / 2);
- // 确保偏移量不超过初始值
- offsetX = Math.max(offsetX, -20);
- offsetY = Math.min(offsetY, 28);
- // 更新 label 的偏移量
- let newOffset = new T.Point(offsetX, offsetY);
- let fontSize = Math.min(8, Math.max(6, 10 - (15 - newIconSize) / 2))
- return {
- iconSize: newIconSize,
- iconAnchor,
- labelOffset: newOffset,
- fontSize
- }
- }
- // 选择站点
- function checkSite(site: any) {
- // 查询业务数据数量
- let year = dayjs().format("YYYY");
- let month = dayjs().format("MM");
- // 全部
- findSiteDataCount(site.siteID, null, null).then((result: any) => {
- siteDataCount.allCount = result;
- })
- // 当年
- findSiteDataCount(site.siteID, year, null).then((result: any) => {
- siteDataCount.yearCount = result;
- })
- // 当月
- findSiteDataCount(site.siteID, year, month).then((result: any) => {
- siteDataCount.monthCount = result;
- })
- nowCheckSite.value = JSON.parse(JSON.stringify(site));
- // 关闭地图上的其他信息弹窗
- (map as any).closeInfoWindow();
- if (site.siteLongitude && site.siteLatitude) {
- // 设置地图中心点
- (map as any).centerAndZoom(new T.LngLat(site.siteLongitude, site.siteLatitude), (map as any).getZoom());
- if (searchType.value == 'site') {
- let winHtml = `
- <div >
- <p style="line-height: 12px; font-size: 14px; font-weight: 600">${site.siteName}(${site.siteCode})</p>
- <span style="line-height: 12px;">所属区县:${site.regionName}</span>
- <br>
- <span style="line-height: 12px;">运营公司:${site.institutionName}</span>
- <br>
- <span style="line-height: 12px;">运营公司地址:${site.institutionAddress}</span>
- <br>
- <span style="line-height: 12px;">联系人:${site.institutionFzrName}</span>
- <br>
- <span style="line-height: 12px;">联系电话:${site.institutionFzrMobile}</span>
- </div>
- `;
- (map as any).openInfoWindow(winHtml, new T.LngLat(site.siteLongitude, site.siteLatitude), {
- autoPan: true,
- maxHeight: 300,
- maxWidth: 400,
- offset: new T.Point(5, 0)
- });
- }
- }
- }
- // 鼠标经过事件
- function siteMouseenter(site: any) {
- nowMouseenterSite.value = site;
- }
- // 选择站点人员
- async function checkSiteUser(siteUser: any) {
- await findUserDataCount(siteUser.userID).then((result: any) => {
- siteUserDataCount.value = result;
- })
- nowCheckSiteUser.value = JSON.parse(JSON.stringify(siteUser))
- if (siteUser.longitude && siteUser.latitude) {
- // 设置地图中心点
- (map as any).centerAndZoom(new T.LngLat(siteUser.longitude, siteUser.latitude), (map as any).getZoom());
- } else if (siteUser.siteLongitude && siteUser.siteLatitude) {
- // 设置地图中心点
- (map as any).centerAndZoom(new T.LngLat(siteUser.siteLongitude, siteUser.siteLatitude), (map as any).getZoom());
- }
- }
- // 鼠标经过事件
- function siteUserMouseenter(siteUser: any) {
- nowMouseenterSite.value = siteUser;
- }
- onMounted(() => {
- initMap();
- getRegionList();
- onSearch();
- })
- </script>
- <script lang="ts">
- // 设置页面名称进行组件缓存
- export default {
- name: "SiteDataMap"
- }
- </script>
- <style lang="less">
- .map-box {
- width: 100vw;
- height: 100vh;
- position: relative;
- border: 1px rgba(173, 173, 173, 0.8) solid;
- box-sizing: border-box;
- #mapDiv {
- position: absolute;
- width: 100%;
- height: 100%;
- z-index: 100;
- }
- .site-search-data-box {
- width: 360px;
- position: absolute;
- top: 15px;
- bottom: 5px;
- left: 15px;
- right: 390px;
- z-index: 110;
- .search-input-box {
- width: 100%;
- margin-bottom: 10px;
- }
- .select-data-box {
- height: calc(100% - 95px);
- background-color: #F8F8F8;
- border-radius: 10px 10px 0 0;
- padding: 10px;
- .select-input-box {
- width: 100%;
- display: flex;
- align-items: center;
- background-color: white;
- padding: 5px;
- margin-bottom: 10px;
- border-radius: 10px;
- }
- .list-box {
- max-height: calc(100% - 60px);
- overflow: hidden;
- overflow-y: auto;
- .site-data {
- background-color: white;
- border-radius: 10px;
- padding: 8px;
- cursor: pointer;
- margin-bottom: 10px;
- box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.3);
- box-sizing: border-box;
- border: 1px solid white;
- }
- .check-site {
- border-color: #007EFF;
- }
- }
- }
- }
- .site-info-box, .site-user-info-box {
- width: 300px;
- position: absolute;
- top: 15px;
- left: calc(100% - 330px);
- right: 15px;
- bottom: 15px;
- z-index: 110;
- border-radius: 10px;
- background-color: white;
- padding: 15px;
- }
- .pagination-box {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 10px 10px;
- background-color: #F8F8F8;
- border-radius: 0 0 10px 10px;
- }
- .empty-box {
- width: 100%;
- height: 450px;
- display: flex;
- justify-content: center;
- align-items: center;
- }
- .site-name {
- font-size: 14px;
- font-weight: 600;
- margin-bottom: 8px;
- }
- .label-text {
- font-size: 12px;
- color: #737373;
- margin-bottom: 3px;
- }
- .avt-info {
- display: flex;
- align-items: center;
- img {
- width: 36px;
- height: 36px;
- margin-right: 10px;
- }
- .contact-name {
- font-size: 14px;
- color: #292934;
- }
- .contact-mobile {
- font-size: 12px;
- color: #6A6F75;
- }
- }
- .left-item-flag {
- height: 20px;
- width: 3px;
- border-radius: 8px;
- margin-right: 7px;
- background: linear-gradient(180deg, #fff, #0094ff);
- }
- .ant-btn, .ant-input {
- border: none !important;
- }
- input {
- height: 32px;
- }
- .ant-select:not(.ant-select-customize-input) .ant-select-selector,
- .ant-select:not(.ant-select-customize-input) .ant-select-selector,
- .ant-input-affix-wrapper, .ant-select-selector {
- border: none !important;
- box-shadow: none !important;
- }
- .ant-select:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) > .ant-select-selector {
- border-color: transparent;
- box-shadow: none;
- }
- }
- </style>
|