选择城市

cyl/master-0804
wangxia 8 months ago
parent e2000c389e
commit c8bad587f4

@ -1,348 +1,352 @@
<script lang="ts"> <script lang="ts">
import RootStore from '@xkit-yx/im-store-v2' import RootStore from "@xkit-yx/im-store-v2";
import V2NIM, { V2NIMConst } from 'nim-web-sdk-ng/dist/v2/NIM_UNIAPP_SDK' import V2NIM, { V2NIMConst } from "nim-web-sdk-ng/dist/v2/NIM_UNIAPP_SDK";
import { getMsgContentTipByType } from './pages/NEUIKit/utils/msg' import { getMsgContentTipByType } from "./pages/NEUIKit/utils/msg";
import { STORAGE_KEY } from './pages/NEUIKit/utils/constants' import { STORAGE_KEY } from "./pages/NEUIKit/utils/constants";
import { isWxApp } from './pages/NEUIKit/utils' import { isWxApp } from "./pages/NEUIKit/utils";
import { V2NIMMessage, V2NIMMessagePushConfig } from 'nim-web-sdk-ng/dist/v2/NIM_UNIAPP_SDK/V2NIMMessageService' import { V2NIMMessage, V2NIMMessagePushConfig } from "nim-web-sdk-ng/dist/v2/NIM_UNIAPP_SDK/V2NIMMessageService";
import { unix } from 'dayjs' import { unix } from "dayjs";
export default { export default {
globalData: { globalData: {
timer: null, // timer: null, //
themeColor: '#00b666', themeColor: "#00b666",
themeBackgroundColor: '#00b66621', themeBackgroundColor: "#00b66621",
}, },
onShow: function (options) { onLaunch() {
let that = this let that = this;
console.log('show 项目init', options, decodeURIComponent(options.query.scene)) uni.removeStorageSync("selectedCity");
// id },
uni.removeStorageSync('scene') onShow: function (options) {
uni.removeStorageSync('user_scene') let that = this;
uni.removeStorageSync('user_options', options) console.log("show 项目init", options, decodeURIComponent(options.query.scene));
// id
uni.removeStorageSync("scene");
uni.removeStorageSync("user_scene");
uni.removeStorageSync("user_options", options);
if (options.query.id) { if (options.query.id) {
uni.setStorageSync('apply-jobdetail-id', options.query.id) uni.setStorageSync("apply-jobdetail-id", options.query.id);
} else { } else {
uni.setStorageSync('apply-jobdetail-id', 0) uni.setStorageSync("apply-jobdetail-id", 0);
} }
if (options.query.scene) { if (options.query.scene) {
let str = decodeURIComponent(options.query.scene) let str = decodeURIComponent(options.query.scene);
uni.setStorageSync( uni.setStorageSync(
'apply-invite-code', "apply-invite-code",
JSON.stringify({ JSON.stringify({
key: str.split('=')[0], key: str.split("=")[0],
value: str.split('=')[1], value: str.split("=")[1],
}) })
) );
} else { } else {
uni.setStorageSync('apply-invite-code', '') uni.setStorageSync("apply-invite-code", "");
} }
if (uni.getStorageSync('apply-token')) { if (uni.getStorageSync("apply-token")) {
this.G.checkToken() this.G.checkToken();
} }
if (!that.globalData.timer) { if (!that.globalData.timer) {
if (uni.getStorageSync('apply-token')) { if (uni.getStorageSync("apply-token")) {
that.checkNum() that.checkNum();
} }
that.globalData.timer = setInterval(() => { that.globalData.timer = setInterval(() => {
console.log('inner++++++++++++++++++++ +++++++++++++++++++++++++++') console.log("inner++++++++++++++++++++ +++++++++++++++++++++++++++");
if (uni.getStorageSync('apply-token')) { if (uni.getStorageSync("apply-token")) {
that.checkNum() that.checkNum();
} }
}, 1 * 30 * 1000) }, 1 * 30 * 1000);
} }
uni.$on('isGlogin', function (data) { uni.$on("isGlogin", function (data) {
console.log('app.vue 接收', data) console.log("app.vue 接收", data);
if (uni.getStorageSync('apply-uid')) { if (uni.getStorageSync("apply-uid")) {
// that.initWyyx() // that.initWyyx()
} }
}) });
if (uni.getStorageSync('apply-token')) { if (uni.getStorageSync("apply-token")) {
console.log('app.vue 是否调用') console.log("app.vue 是否调用");
// that.initWyyx() // that.initWyyx()
} }
}, },
onHide: function () {}, onHide: function () {},
methods: { methods: {
initWyyx() { initWyyx() {
let that = this let that = this;
that.F.wyyxPost( that.F.wyyxPost(
that.api.wyyx_getConfig, that.api.wyyx_getConfig,
{ {
userId: uni.getStorageSync('apply-uid'), userId: uni.getStorageSync("apply-uid"),
}, },
(res) => { (res) => {
console.log('wyyx_getConfig', res) console.log("wyyx_getConfig", res);
let resData = { let resData = {
appkey: res.appKey, appkey: res.appKey,
accid: res.accid, accid: res.accid,
token: res.token, token: res.token,
} };
const imOptions = { const imOptions = {
appkey: resData.appkey, // appkey appkey: resData.appkey, // appkey
account: resData.accid, // account account: resData.accid, // account
token: resData.token, // token token: resData.token, // token
// appkey: "7e19d679085266aa872a8de12f0c1ae5", // appkey // appkey: "7e19d679085266aa872a8de12f0c1ae5", // appkey
// account: "9", // account // account: "9", // account
// token: "2d4ca36cca6293cf3a81d6ca1b8026f7", // token // token: "2d4ca36cca6293cf3a81d6ca1b8026f7", // token
} };
if (imOptions) { if (imOptions) {
this.initNim(imOptions) this.initNim(imOptions);
} else { } else {
// , // ,
} }
} }
) );
}, },
async initNim(opts) { async initNim(opts) {
let that = this let that = this;
// nim sdk // nim sdk
const nim = (uni.$UIKitNIM = V2NIM.getInstance( const nim = (uni.$UIKitNIM = V2NIM.getInstance(
{ {
appkey: opts.appkey, appkey: opts.appkey,
needReconnect: true, needReconnect: true,
// "reconnectionAttempts": 5, // "reconnectionAttempts": 5,
debugLevel: 'debug', debugLevel: "debug",
apiVersion: 'v2', apiVersion: "v2",
enableV2CloudConversation: true, enableV2CloudConversation: true,
}, },
{ {
V2NIMLoginServiceConfig: { V2NIMLoginServiceConfig: {
lbsUrls: isWxApp ? ['https://lbs.netease.im/lbs/wxwebconf.jsp'] : ['https://lbs.netease.im/lbs/webconf.jsp'], lbsUrls: isWxApp ? ["https://lbs.netease.im/lbs/wxwebconf.jsp"] : ["https://lbs.netease.im/lbs/webconf.jsp"],
linkUrl: isWxApp ? 'wlnimsc0.netease.im' : 'weblink.netease.im', linkUrl: isWxApp ? "wlnimsc0.netease.im" : "weblink.netease.im",
/** /**
* 使用固定设备 ID * 使用固定设备 ID
*/ */
isFixedDeviceId: true, isFixedDeviceId: true,
}, },
} }
)) ));
that.globalData.nim = nim that.globalData.nim = nim;
// store // store
const store = (uni.$UIKitStore = new RootStore( const store = (uni.$UIKitStore = new RootStore(
nim, nim,
{ {
addFriendNeedVerify: false, addFriendNeedVerify: false,
// p2p p2p false // p2p p2p false
p2pMsgReceiptVisible: true, p2pMsgReceiptVisible: true,
// false // false
teamMsgReceiptVisible: true, teamMsgReceiptVisible: true,
teamAgreeMode: V2NIMConst.V2NIMTeamAgreeMode.V2NIM_TEAM_AGREE_MODE_NO_AUTH, teamAgreeMode: V2NIMConst.V2NIMTeamAgreeMode.V2NIM_TEAM_AGREE_MODE_NO_AUTH,
sendMsgBefore: async (options: { msg: V2NIMMessage; conversationId: string; serverExtension?: Record<string, unknown> }) => { sendMsgBefore: async (options: { msg: V2NIMMessage; conversationId: string; serverExtension?: Record<string, unknown> }) => {
const pushContent = getMsgContentTipByType({ const pushContent = getMsgContentTipByType({
text: options.msg.text, text: options.msg.text,
messageType: options.msg.messageType, messageType: options.msg.messageType,
}) });
const yxAitMsg = options.serverExtension ? options.serverExtension.yxAitMsg : { forcePushIDsList: '[]', needForcePush: false } const yxAitMsg = options.serverExtension ? options.serverExtension.yxAitMsg : { forcePushIDsList: "[]", needForcePush: false };
// at 线 // at 线
const { forcePushIDsList, needForcePush } = yxAitMsg const { forcePushIDsList, needForcePush } = yxAitMsg
? // @ts-ignore ? // @ts-ignore
store.msgStore._formatExtAitToPushInfo(yxAitMsg, options.msg.text) store.msgStore._formatExtAitToPushInfo(yxAitMsg, options.msg.text)
: { forcePushIDsList: '[]', needForcePush: false } : { forcePushIDsList: "[]", needForcePush: false };
console.log('forcePushIDsList: ', forcePushIDsList) console.log("forcePushIDsList: ", forcePushIDsList);
const { conversationId } = options const { conversationId } = options;
const conversationType = nim.V2NIMConversationIdUtil.parseConversationType(conversationId) const conversationType = nim.V2NIMConversationIdUtil.parseConversationType(conversationId);
const targetId = nim.V2NIMConversationIdUtil.parseConversationTargetId(conversationId) const targetId = nim.V2NIMConversationIdUtil.parseConversationTargetId(conversationId);
const pushPayload = JSON.stringify({ const pushPayload = JSON.stringify({
// oppo // oppo
oppoField: { oppoField: {
click_action_type: 4, // oppo click_action_type: 4, // oppo
click_action_activity: '', // TODO click_action_activity: "", // TODO
action_parameters: { action_parameters: {
sessionId: targetId, sessionId: targetId,
sessionType: conversationType, sessionType: conversationType,
}, // }, //
}, },
// vivo // vivo
vivoField: { vivoField: {
pushMode: 0, //0 1 0 pushMode: 0, //0 1 0
}, },
// huawei // huawei
hwField: { hwField: {
click_action: { click_action: {
type: 1, type: 1,
action: '', // TODO action: "", // TODO
}, },
androidConfig: { androidConfig: {
category: 'IM', category: "IM",
data: JSON.stringify({ data: JSON.stringify({
sessionId: targetId, sessionId: targetId,
sessionType: conversationType, sessionType: conversationType,
}), }),
}, },
}, },
// //
sessionId: targetId, sessionId: targetId,
sessionType: conversationType, sessionType: conversationType,
}) });
const pushConfig: V2NIMMessagePushConfig = { const pushConfig: V2NIMMessagePushConfig = {
pushEnabled: true, pushEnabled: true,
pushNickEnabled: true, pushNickEnabled: true,
forcePush: needForcePush, forcePush: needForcePush,
forcePushContent: pushContent, forcePushContent: pushContent,
forcePushAccountIds: forcePushIDsList, forcePushAccountIds: forcePushIDsList,
pushPayload: '{}', pushPayload: "{}",
pushContent, pushContent,
} };
return { ...options, pushConfig } return { ...options, pushConfig };
}, },
}, },
'UniApp' "UniApp"
)) ));
// #ifdef APP-PLUS // #ifdef APP-PLUS
const nimPushPlugin = uni.requireNativePlugin('NIMUniPlugin-PluginModule') const nimPushPlugin = uni.requireNativePlugin("NIMUniPlugin-PluginModule");
nim.V2NIMSettingService.setOfflinePushConfig(nimPushPlugin, { nim.V2NIMSettingService.setOfflinePushConfig(nimPushPlugin, {
miPush: { miPush: {
appId: '2882303761520397320', appId: "2882303761520397320",
appKey: '5102039734320', appKey: "5102039734320",
certificateName: 'xiaomiCertificateName', certificateName: "xiaomiCertificateName",
}, },
vivoPush: { vivoPush: {
certificateName: 'vivoCertificateName', certificateName: "vivoCertificateName",
}, },
oppoPush: { oppoPush: {
appId: '32967155', appId: "32967155",
appKey: 'b98618cb272944dea324af6421d42a79', appKey: "b98618cb272944dea324af6421d42a79",
secret: '0b7ce705a2304a17b78f20011c18890c', secret: "0b7ce705a2304a17b78f20011c18890c",
certificateName: 'opopCertificateName', certificateName: "opopCertificateName",
}, },
honorPush: { honorPush: {
certificateName: 'rongyaoCertificateName', certificateName: "rongyaoCertificateName",
}, },
apns: { apns: {
// certificateName: 'AuthKey_98P8URRXUD_test', //: // certificateName: 'AuthKey_98P8URRXUD_test', //:
certificateName: 'AuthKey_98P8URRXUD', // certificateName: "AuthKey_98P8URRXUD", //
}, },
}) });
console.log('是否执行 推送') console.log("是否执行 推送");
// #endif // #endif
nim.V2NIMLoginService.login(opts.account, opts.token).then(() => {}) nim.V2NIMLoginService.login(opts.account, opts.token).then(() => {});
nim.V2NIMConversationService.on('onConversationChanged', function (conversationList: V2NIMConversation[]) { nim.V2NIMConversationService.on("onConversationChanged", function (conversationList: V2NIMConversation[]) {
console.log('初始化监听会话:', conversationList) console.log("初始化监听会话:", conversationList);
let _bool = conversationList.filter((item) => { let _bool = conversationList.filter((item) => {
return Number(item.unreadCount) > 0 return Number(item.unreadCount) > 0;
}) });
console.log('初始化监听会话bool:', _bool) console.log("初始化监听会话bool:", _bool);
if (_bool && _bool.length > 0) { if (_bool && _bool.length > 0) {
that.playAudio() // that.playAudio(); //
} }
}) });
}, },
playAudio() { playAudio() {
let that = this let that = this;
const innerAudioContext = uni.createInnerAudioContext() const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.autoplay = true innerAudioContext.autoplay = true;
innerAudioContext.src = 'https://matripe-cms.oss-cn-beijing.aliyuncs.com/ibocai/tip.mp3' innerAudioContext.src = "https://matripe-cms.oss-cn-beijing.aliyuncs.com/ibocai/tip.mp3";
innerAudioContext.onPlay(() => { innerAudioContext.onPlay(() => {
console.log('开始播放') console.log("开始播放");
}) });
uni.vibrateShort() uni.vibrateShort();
innerAudioContext.onError((res) => { innerAudioContext.onError((res) => {
console.log(res.errMsg) console.log(res.errMsg);
console.log(res.errCode) console.log(res.errCode);
}) });
}, },
checkNum() { checkNum() {
let that = this let that = this;
if (uni.getStorageSync('apply-token')) { if (uni.getStorageSync("apply-token")) {
that.G.Get(that.api.bind_getApplyNum, {}, (res) => { that.G.Get(that.api.bind_getApplyNum, {}, (res) => {
console.log('获取待处理数量:', res) console.log("获取待处理数量:", res);
if (res.approvePassHasNotRed > 0) { if (res.approvePassHasNotRed > 0) {
uni.setTabBarBadge({ uni.setTabBarBadge({
index: 2, index: 2,
text: String(res.approvePassHasNotRed), text: String(res.approvePassHasNotRed),
}) });
} else { } else {
uni.removeTabBarBadge({ uni.removeTabBarBadge({
index: 2, index: 2,
}) });
} }
}) });
} }
}, },
}, },
} };
</script> </script>
<style lang="scss"> <style lang="scss">
@import './static/css/iconfont.css'; @import "./static/css/iconfont.css";
@import './uni_modules/vk-uview-ui/index.scss'; @import "./uni_modules/vk-uview-ui/index.scss";
@import './static/css/base.scss'; @import "./static/css/base.scss";
@import './static/font/iconfont-weapp-icon.css'; @import "./static/font/iconfont-weapp-icon.css";
// #ifdef MP-WEIXIN // #ifdef MP-WEIXIN
page { page {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
} }
// #endif // #endif
// #ifdef H5 || APP-PLUS || MP-TOUTIAO || MP-KUAISHOU // #ifdef H5 || APP-PLUS || MP-TOUTIAO || MP-KUAISHOU
page { page {
width: 100vw; width: 100vw;
height: calc(100% - 0px); height: calc(100% - 0px);
--color-ysd: #ff4400; --color-ysd: #ff4400;
--color-hover: #ff4400cc; --color-hover: #ff4400cc;
--color-be: #ff4400; --color-be: #ff4400;
--color-027: #ff4400; --color-027: #ff4400;
--color-href: #576b95; --color-href: #576b95;
} }
// #endif // #endif
// uview // uview
.u-badge-mini { .u-badge-mini {
top: 22rpx !important; top: 22rpx !important;
right: 102rpx !important; right: 102rpx !important;
color: transparent !important; color: transparent !important;
width: 10px !important; width: 10px !important;
height: 10px !important; height: 10px !important;
border-radius: 50% !important; border-radius: 50% !important;
} }
.u-radio { .u-radio {
&:last-child { &:last-child {
.u-radio__label { .u-radio__label {
margin-right: 0; margin-right: 0;
} }
} }
} }
.g-apply-tab { .g-apply-tab {
.u-tab-bar { .u-tab-bar {
bottom: -2px !important; bottom: -2px !important;
} }
} }
.g_bg_f_5 { .g_bg_f_5 {
background-color: #ededed !important; background-color: #ededed !important;
} }
.g_mt_30 { .g_mt_30 {
margin-top: 30px; margin-top: 30px;
} }
.g_mt_84 { .g_mt_84 {
margin-top: 84px; margin-top: 84px;
} }
.g_pt_90 { .g_pt_90 {
padding-top: 90px; padding-top: 90px;
} }
</style> </style>

@ -17,6 +17,9 @@ let jobInfo = {
yi_job_class_new: "/labels/getListByTypeAndIndustry", // 新职位要求接口(新) yi_job_class_new: "/labels/getListByTypeAndIndustry", // 新职位要求接口(新)
job_get_cus: "/yishoudan/job/customer/support/getJobCustomerSupportIM", // 获取客服ID job_get_cus: "/yishoudan/job/customer/support/getJobCustomerSupportIM", // 获取客服ID
hasSee: "/yishoudan/job/view/record/addRecord", hasSee: "/yishoudan/job/view/record/addRecord",
getCityNameByLatLng: '/location/getCityNameByLatLng' ,// 根据经纬度获取城市
get_city_list: '/city/getAllCityLevel2', // 获取城市列表
} }
export default jobInfo; export default jobInfo;

@ -457,6 +457,12 @@
"navigationBarTitleText": "搜索" "navigationBarTitleText": "搜索"
} }
}, },
{
"path": "city",
"style": {
"navigationBarTitleText": "选择城市"
}
},
{ {
"path": "error", "path": "error",
"style": { "style": {

File diff suppressed because it is too large Load Diff

@ -0,0 +1,255 @@
<template>
<view class="g_pl_16 container" style="background-color: #f5f5f5">
<scroll-view class="cities-scroll" scroll-with-animation="true" style="box-sizing: border-box; height: calc(100vh - 87px)" :scroll-into-view="az" scroll-y ref="scrollViewRef">
<view class="">
<view class="headTxt">当前城市</view>
<view class="" hover-class="none" hover-stop-propagation="false">
<view @click="selectQuanGuo" class="itemCity" :class="{ active: selectedCity === '全国' }">全国</view>
<view class="g_flex_row_center itemCity" v-if="currentCity" @click="selectCity({ shortName: currentCity })" :class="{ active: selectedCity === currentCity }">
<i class="iconfont icon-dizhi1 g_mr_4"></i>
{{ currentCity }}
</view>
</view>
<view class="cities-list">
<block v-for="group in cities">
<view class="headTxt" :id="`letter-${group.name[0] == '热' ? 're' : group.name[0]}`">{{ group.name }}</view>
<block v-for="city in group.list">
<view @click="selectCity(city)" class="itemCity" :class="{ active: selectedCity === city.shortName }">{{ city.shortName }}</view>
</block>
</block>
</view>
</view>
<view class="" style="height: 120px"> </view>
</scroll-view>
<!-- 添加字母索引 -->
<view class="index-list" v-if="false">
<block v-for="(letter, index) in letters">
<!-- , activeIndex: currentIndex === index -->
<view :class="{ indexItem: true }" @click="scrollToLetter(letter)">
{{ letter }}
</view>
</block>
</view>
<g-panel-fixed>
<view class="g_flex_row_center">
<g-button btnText="重置" size="small" @clickBtn="back"></g-button>
<g-button btnText="确定" type="primary" class="g_ml_24" size="small" @clickBtn="setCity"></g-button>
</view>
</g-panel-fixed>
</view>
</template>
<script>
// import { cityList } from "../utils/city.js";
export default {
data() {
return {
cities: [],
cdnBaseImg: this.G.store().cdnBaseImg,
selectedCity: "全国",
currentIndex: 0,
letters: [],
az: "",
currentInfo: {}, //
currentCity: "",
};
},
onLoad() {
this.initializeCities();
this.getLocation().then((res) => {
console.log("res", res);
this.getCity();
});
// this.calculateLetters();
},
methods: {
setCity() {
uni.setStorageSync("selectedCity", this.selectedCity);
console.log(`城市 ${this.selectedCity} 已保存到缓存`);
uni.navigateBack({ delta: 1 });
},
getCity() {
let that = this;
this.G.Get(this.api.getCityNameByLatLng, { lng: this.currentInfo.longitude, lat: this.currentInfo.latitude }, (res) => {
if (res) {
that.currentCity = res.replace("市", "");
}
console.log("res");
});
},
getLocation() {
let that = this;
console.log("123123");
return new Promise((resolve, reject) => {
uni.authorize({
//
scope: "scope.userLocation",
success() {
console.log("用户成功授权位置信息");
uni.getLocation({
type: "wgs84",
success(res) {
that.currentInfo = {
latitude: res.latitude,
longitude: res.longitude,
timestamp: new Date().getTime(),
};
console.log("获取当前经纬度:", that.currentInfo);
resolve();
},
fail(err) {
console.log(err);
},
complete() {
resolve();
},
});
},
fail(err) {
console.log(err);
console.log("用户拒绝授权位置信息,再次提示用户授权");
uni.showToast({
title: "请开启定位权限以显示距职位距离",
icon: "none",
});
resolve();
// that.showRefuseLocationPermission();
},
});
});
},
back() {
this.selectedCity = "全国";
uni.setStorageSync("selectedCity", "全国");
// uni.navigateBack({ delta: 1 });
},
selectQuanGuo() {
this.selectedCity = "全国";
console.log("全国被选中");
},
selectCity(city) {
this.selectedCity = city.shortName;
console.log(`城市 ${city.shortName} 被选中`);
},
initializeCities() {
this.G.Get(this.api.get_city_list, {}, (res) => {
console.log(res);
this.letters.push("热");
res.forEach((item) => {
if (!this.letters.includes(item.name[0])) {
this.letters.push(item.name[0]);
}
});
this.cities = res;
const cachedSelectedCity = uni.getStorageSync("selectedCity");
if (cachedSelectedCity) {
this.selectedCity = cachedSelectedCity;
} else {
this.selectedCity = "全国";
}
});
// const hotCities = originalCities.find(group => group.name === '');
// if (hotCities) {
// hotCities.name = '';
// this.cities = originalCities.filter(group => group.name !== '');
// this.cities.unshift(hotCities);
// } else {
// this.cities = originalCities;
// }
},
// calculateLetters() {
// this.letters = [];
// this.cities.forEach((group) => {
// const firstLetter = group.name.charAt(0).toUpperCase();
// if (!this.letters.includes(firstLetter)) {
// this.letters.push(firstLetter);
// }
// });
// },
scrollToLetter(letter) {
var that = this;
if (letter == "热") {
letter = "re";
}
const id = `letter-${letter}`;
console.log(id);
this.az = id;
// console.log(that.$refs.scrollViewRef);
// this.$nextTick(() => {
// this.$refs.scrollViewRef.scrollIntoView(id, 300);
// });
},
},
};
</script>
<style lang="scss">
.container {
.itemCity {
width: calc(33.33% - 10px);
float: left;
margin-right: 10px;
background: #fff;
border-radius: 30px;
font-size: 16px;
font-weight: 400;
text-align: center;
padding: 8px 0;
color: #1d1d1d;
margin-bottom: 10px;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&.active {
background: #00b666;
color: #ffffff;
}
}
.headTxt {
font-size: 18px;
font-weight: 400;
color: #999999;
line-height: 25px;
margin-top: 10px;
margin-left: 16px;
margin-bottom: 10px;
clear: both;
}
.cities-scroll {
// height: calc(100vh - 100px);
// overflow-y: auto;
}
.index-list {
position: fixed;
right: 10px;
top: 50%;
transform: translateY(-50%);
display: flex;
flex-direction: column;
align-items: center;
background-color: #f5f5f5;
.indexItem {
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
margin: 2px;
&.activeIndex {
background: #00b666;
color: #ffffff;
}
}
}
}
</style>
Loading…
Cancel
Save