Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d80a88507a | ||
|
|
fdefa440bb | ||
|
|
4b364f593a |
@@ -190,24 +190,24 @@ public class WkFailProcessor extends ViewProcessor {
|
||||
//1.判断是否为企业微信浏览器并且对接了企业微信
|
||||
if (browserPlatform == BrowserPlatform.QI_YE_WEI_XIN && propertiesProxy.getBoolean("wxwork.enable", false)) {
|
||||
//进行企业微信授权
|
||||
// String token = getWxWorkToken();
|
||||
// if (StrUtil.isNotBlank(token)) {
|
||||
String token = getWxWorkToken();
|
||||
if (StrUtil.isNotBlank(token)) {
|
||||
// //跳转到企业微信授权地址
|
||||
// new ServerRedirectView(buildWxWorkOauth2Url()).render(request, response, null);
|
||||
// } else {
|
||||
new ServerRedirectView(buildWxWorkOauth2Url()).render(request, response, null);
|
||||
} else {
|
||||
// //跳转到错误页 别问我为啥错了 我也不知道 首先去检查配置文件里的参数有没有写对
|
||||
//// new ServerRedirectView(Globals.AppDomain + errorUri).render(request, response, null);
|
||||
// //跳转到cas登录页
|
||||
// String callBackUrl = propertiesProxy.get("cas.client-host-url") + propertiesProxy.get("cas.client-call-back-url") + "?redirect=" + redirect;
|
||||
// String authUrl = propertiesProxy.get("cas.qi-wx-server-login-url") + "?service=" + URLEncoder.encode(callBackUrl, StandardCharsets.UTF_8);
|
||||
// new ServerRedirectView(authUrl).render(request, response, null);
|
||||
// }
|
||||
//跳转到cas登录页
|
||||
String callBackUrl = propertiesProxy.get("cas.client-host-url") + propertiesProxy.get("cas.client-call-back-url") + "?redirect=" + redirect;
|
||||
String authUrl = propertiesProxy.get("cas.qi-wx-server-login-url") + "?service=" + URLEncoder.encode(callBackUrl, StandardCharsets.UTF_8);
|
||||
new ServerRedirectView(authUrl).render(request, response, null);
|
||||
}
|
||||
|
||||
// 武汉城市职业学院 跳转到企业微信cas登录页
|
||||
String callBackUrl = propertiesProxy.get("wecom.wecom-client-host-url") + propertiesProxy.get("wecom.wecom-client-call-back-url") + "?redirect=" + redirect;
|
||||
/* String callBackUrl = propertiesProxy.get("wecom.wecom-client-host-url") + propertiesProxy.get("wecom.wecom-client-call-back-url") + "?redirect=" + redirect;
|
||||
String authUrl = propertiesProxy.get("wecom.wecom-server-login-url") + "?service=" + URLEncoder.encode(callBackUrl, StandardCharsets.UTF_8);
|
||||
log.info("auth:"+authUrl);
|
||||
new ServerRedirectView(authUrl).render(request, response, null);
|
||||
new ServerRedirectView(authUrl).render(request, response, null);*/
|
||||
} else if (browserPlatform == BrowserPlatform.WEI_XIN && propertiesProxy.getBoolean("wx.enable", false)) {
|
||||
//进行微信公众号授权
|
||||
//跳转到微信授权页
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
AmiMu2ZH1GAFuH2L
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 558 KiB |
@@ -0,0 +1,86 @@
|
||||
(function (window, document) {
|
||||
'use strict'
|
||||
|
||||
if (window.loadMapSdk) return
|
||||
const entry = document.currentScript
|
||||
const sources = {
|
||||
amap: entry.getAttribute('data-amap-url'),
|
||||
tencent: entry.getAttribute('data-tencent-url')
|
||||
}
|
||||
const pending = {}
|
||||
let sequence = 0
|
||||
|
||||
function getSdk(provider) {
|
||||
const sdk = provider === 'amap' ? window.AMap : window.TMap
|
||||
if (!sdk || !sdk.Map) return null
|
||||
if (provider === 'amap') return sdk.PlaceSearch && sdk.PolylineEditor ? sdk : null
|
||||
return sdk.LatLng && sdk.MultiMarker && sdk.tools && sdk.tools.GeometryEditor ? sdk : null
|
||||
}
|
||||
|
||||
// 仅在打开地图时请求 SDK;同一地图服务的并发调用共用一次加载,避免阻塞公共页面。
|
||||
window.loadMapSdk = function (provider) {
|
||||
if (!sources[provider]) return Promise.reject(new Error('未配置地图服务地址'))
|
||||
const sdk = getSdk(provider)
|
||||
if (sdk) return Promise.resolve(sdk)
|
||||
if (pending[provider]) return pending[provider]
|
||||
const request = new Promise(function (resolve, reject) {
|
||||
const script = document.createElement('script')
|
||||
const callback = '__mapSdkReady_' + (++sequence)
|
||||
const name = provider === 'amap' ? '高德地图' : '腾讯地图'
|
||||
let finished = false
|
||||
let timer
|
||||
|
||||
function finish(error) {
|
||||
if (finished) return
|
||||
const loaded = getSdk(provider)
|
||||
if (!error && !loaded) return
|
||||
finished = true
|
||||
clearTimeout(timer)
|
||||
script.onerror = null
|
||||
// 超时后 SDK 仍可能迟到,保留空回调,避免迟到请求抛出全局异常。
|
||||
window[callback] = function () {}
|
||||
if (error) {
|
||||
script.remove()
|
||||
reject(error)
|
||||
} else {
|
||||
resolve(loaded)
|
||||
}
|
||||
}
|
||||
|
||||
window[callback] = function () { finish() }
|
||||
script.async = true
|
||||
script.charset = 'utf-8'
|
||||
if (entry.nonce) script.nonce = entry.nonce
|
||||
script.src = sources[provider] + '&callback=' + callback
|
||||
script.onerror = function () {
|
||||
finish(new Error(name + '加载失败,当前网络无法连接地图服务,请稍后重新打开地图'))
|
||||
}
|
||||
timer = setTimeout(function () {
|
||||
finish(new Error(name + '加载超时,请稍后重新打开地图;其他功能可继续使用'))
|
||||
}, 8000)
|
||||
document.head.appendChild(script)
|
||||
})
|
||||
pending[provider] = request
|
||||
// 失败不永久缓存,恢复网络后重新打开地图即可重试。
|
||||
request.then(function () {
|
||||
if (pending[provider] === request) delete pending[provider]
|
||||
}, function () {
|
||||
if (pending[provider] === request) delete pending[provider]
|
||||
})
|
||||
return request
|
||||
}
|
||||
|
||||
// 业务弹窗使用已有消息组件提示;返回 false 只终止本次地图初始化。
|
||||
window.ensureMapSdk = function (provider) {
|
||||
return window.loadMapSdk(provider).then(function () {
|
||||
return true
|
||||
}).catch(function (error) {
|
||||
if (!error.mapMessageShown) {
|
||||
error.mapMessageShown = true
|
||||
if (window.vant && window.vant.Toast) window.vant.Toast(error.message)
|
||||
else if (window.ELEMENT && window.ELEMENT.Message) window.ELEMENT.Message.error(error.message)
|
||||
}
|
||||
return false
|
||||
})
|
||||
}
|
||||
})(window, document)
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -447,9 +447,15 @@ module.exports = {
|
||||
this.map.fitBounds(bounds)
|
||||
},
|
||||
// 仅在侧滑弹框完全展开后创建地图,保证容器已有可用尺寸,避免动画期间地图空白。
|
||||
initMap() {
|
||||
if (!this.positionConfirmVisible || !this.showMap || !this.row.courseLocationCoordinates || typeof TMap === "undefined") return
|
||||
const position = JSON.parse(this.row.courseLocationCoordinates)
|
||||
async initMap() {
|
||||
if (!this.positionConfirmVisible || !this.showMap || !this.row.courseLocationCoordinates) return
|
||||
const row = this.row
|
||||
const requestId = (this.mapLoadRequestId || 0) + 1
|
||||
this.mapLoadRequestId = requestId
|
||||
if (!await window.ensureMapSdk('tencent')) return
|
||||
// 加载期间可能切换活动或关闭弹窗,迟到的响应不能重新创建旧地图。
|
||||
if (requestId !== this.mapLoadRequestId || this._isDestroyed || !this.positionConfirmVisible || !this.showMap || this.row !== row) return
|
||||
const position = JSON.parse(row.courseLocationCoordinates)
|
||||
const center = new TMap.LatLng(position[0], position[1])
|
||||
this.destroyMap()
|
||||
this.map = new TMap.Map(this.mapContainerId, { zoom: 16, center })
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
v-model="addressValue"
|
||||
style="width: 100%"
|
||||
:fetch-suggestions="querySearchAsync"
|
||||
:disabled="!map"
|
||||
placeholder="请输入关键词查询地址"
|
||||
@select="handleSelect"
|
||||
/>
|
||||
@@ -48,7 +49,7 @@ module.exports = {
|
||||
},
|
||||
methods: {
|
||||
handleSelect(item) {
|
||||
if (item.location) {
|
||||
if (this.map && item.location) {
|
||||
// 定位到中心点
|
||||
this.map.setCenter(item.location)
|
||||
// TODO 获取数据,对数据进行操作如:添加marker等
|
||||
@@ -58,7 +59,8 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
querySearchAsync(queryString, cb) {
|
||||
if (!queryString) {
|
||||
if (!queryString || !this.placeSearchComponent) {
|
||||
cb([])
|
||||
return
|
||||
}
|
||||
this.placeSearchComponent.search(queryString, function (status, result) {
|
||||
@@ -71,7 +73,9 @@ module.exports = {
|
||||
}
|
||||
})
|
||||
},
|
||||
initMap() {
|
||||
async initMap() {
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed) return
|
||||
this.map = new AMap.Map("mapContainer", {
|
||||
// 设置地图容器id
|
||||
resizeEnable: true,
|
||||
|
||||
@@ -94,7 +94,7 @@ module.exports = {
|
||||
if (this.mapDisposed || this.map || this.mapLoading) return
|
||||
this.mapLoading = true
|
||||
this.mapError = ''
|
||||
return Promise.resolve().then(() => {
|
||||
return window.loadMapSdk('tencent').then(() => {
|
||||
if (this.mapDisposed) return null
|
||||
if (typeof TMap === 'undefined' || !TMap.Map || !TMap.LatLng) {
|
||||
throw new Error('腾讯地图脚本未加载成功,请刷新页面后重试')
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/vant/index.css"/>
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/css/common.css"/>
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/css/h5.css"/>
|
||||
<link rel="stylesheet" href="https://cdn.staticfile.net/animate.css/4.1.1/animate.css"/>
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/animate/animate.css"/>
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/fonts/font-awesome.min.css"/>
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/css/pdf/pdfh5.css">
|
||||
<link rel="stylesheet" href="https://res.wx.qq.com/open/libs/weui/2.2.0/weui.min.css">
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/weui/weui.min.css">
|
||||
|
||||
<script src="${base!}/assets/platform/plugins/vue/vue.js"></script>
|
||||
<script src="${base!}/assets/platform/plugins/vuex/vuex.js"></script>
|
||||
@@ -30,7 +30,7 @@
|
||||
<script src="${base!}/assets/platform/plugins/pjax/jquery.pjax.js"></script>
|
||||
|
||||
<!--nprogress 配合pjax使用-->
|
||||
<link rel="stylesheet" href="https://cdn.staticfile.net/nprogress/0.2.0/nprogress.css"/>
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/nprogress/nprogress.css"/>
|
||||
<script src="${base!}/assets/platform/plugins/nprogress/nprogress.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/element-ui/lib/theme-chalk/index.css"/>
|
||||
@@ -72,12 +72,9 @@
|
||||
<script src="${base!}/assets/platform/plugins/g2plot/g2plot.min.js"></script>
|
||||
|
||||
<!-- <script src="https://cdn.jsdelivr.net/npm/goober@2.1.10/dist/goober.umd.js"></script>-->
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="https://webapi.amap.com/maps?v=2.0&key=57f0d098ba1b881ecc436c4cfd23bbbf&plugin=AMap.PolyEditor,AMap.Geolocation"
|
||||
></script>
|
||||
|
||||
<script src="https://map.qq.com/api/gljs?v=2.exp&key=NYNBZ-K62KI-DQJGU-U4NJ5-CSME7-ULFMU"></script>
|
||||
<script nonce="${cspNonce!}" src="${base!}/assets/platform/js/util/mapSdkLoader.js"
|
||||
data-amap-url="https://webapi.amap.com/maps?v=2.0&key=57f0d098ba1b881ecc436c4cfd23bbbf&plugin=AMap.PlaceSearch,AMap.PolylineEditor,AMap.Geolocation"
|
||||
data-tencent-url="https://map.qq.com/api/gljs?v=2.exp&key=NYNBZ-K62KI-DQJGU-U4NJ5-CSME7-ULFMU&libraries=tools"></script>
|
||||
<script nonce="${cspNonce!}">
|
||||
Vue.config.devtools = true
|
||||
|
||||
|
||||
@@ -103,7 +103,9 @@
|
||||
src="https://webapi.amap.com/maps?v=2.0&key=b4fa2e2bc10a725ab007b98a3aa447cc&plugin=AMap.PolyEditor,AMap.Geolocation"
|
||||
></script>-->
|
||||
|
||||
<script src="https://map.qq.com/api/gljs?v=2.exp&key=NYNBZ-K62KI-DQJGU-U4NJ5-CSME7-ULFMU"></script>
|
||||
<script nonce="${cspNonce!}" src="${base!}/assets/platform/js/util/mapSdkLoader.js"
|
||||
data-amap-url="https://webapi.amap.com/maps?v=2.0&key=b4fa2e2bc10a725ab007b98a3aa447cc&plugin=AMap.PlaceSearch,AMap.PolylineEditor,AMap.Geolocation"
|
||||
data-tencent-url="https://map.qq.com/api/gljs?v=2.exp&key=NYNBZ-K62KI-DQJGU-U4NJ5-CSME7-ULFMU&libraries=tools"></script>
|
||||
|
||||
<script nonce="${cspNonce!}">
|
||||
// 在加载 lodash 后、使用前插入
|
||||
|
||||
@@ -7,8 +7,7 @@
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/fonts/themify-icons.css" />
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/fonts/font-awesome.min.css" />
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.staticfile.net/element-ui/2.15.14/theme-chalk/index.css" />
|
||||
<link rel="stylesheet" href="https://cdn.staticfile.net/element-ui/2.15.14/theme-chalk/fonts/element-icons.woff" />
|
||||
<link rel="stylesheet" href="${base!}/assets/platform/plugins/element-ui/lib/theme-chalk/index.css" />
|
||||
|
||||
<!-- import Vue before Element -->
|
||||
<script src="${base!}/assets/platform/plugins/vue/vue.js"></script>
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
</body>
|
||||
<!-- import Vue before Element -->
|
||||
<!--<script src="${base!}/assets/platform/plugins/vue/vue.js"></script>-->
|
||||
<script src="https://cdn.staticfile.net/vue/2.7.0/vue.js"></script>
|
||||
<script src="${base!}/assets/platform/plugins/vue/vue.js"></script>
|
||||
<!-- import JavaScript -->
|
||||
<script src="${base!}/assets/platform/plugins/element-ui/lib/index.js"></script>
|
||||
<script src="${base!}/assets/platform/plugins/jquery/jquery.js"></script>
|
||||
|
||||
@@ -237,11 +237,13 @@ const courseList = {
|
||||
this.courseTimeList = resp.data
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
const viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -82,11 +82,13 @@ const info = {
|
||||
this.courseTimeList = courseTimeList
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -236,11 +236,13 @@ const courseList = {
|
||||
this.courseTimeList = resp.data
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
const viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -79,11 +79,13 @@ const info = {
|
||||
this.courseTimeList = courseTimeList
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -1461,10 +1461,14 @@ layout("/layouts/platform.html"){
|
||||
this.viewMap()
|
||||
}
|
||||
},
|
||||
viewMap() {
|
||||
async viewMap() {
|
||||
if (!this.hasMapCenterPoint()) {
|
||||
return
|
||||
}
|
||||
const requestId = (this.viewMapRequestId || 0) + 1
|
||||
this.viewMapRequestId = requestId
|
||||
if (!await window.ensureMapSdk('tencent')) return
|
||||
if (requestId !== this.viewMapRequestId || this._isDestroyed || !this.viewDialogVisible || this.activeName !== '2') return
|
||||
this.$nextTick(() => {
|
||||
let path = this.viewData.linePoints.map(v => {
|
||||
return [v.coordinates[0], v.coordinates[1]]
|
||||
@@ -1681,10 +1685,14 @@ layout("/layouts/platform.html"){
|
||||
this.formData._id ? this.doEdit() : this.doAdd()
|
||||
}
|
||||
},
|
||||
xlMap() {
|
||||
async xlMap() {
|
||||
if (!this.hasMapCenterPoint()) {
|
||||
return
|
||||
}
|
||||
const requestId = (this.xlMapRequestId || 0) + 1
|
||||
this.xlMapRequestId = requestId
|
||||
if (!await window.ensureMapSdk('tencent')) return
|
||||
if (requestId !== this.xlMapRequestId || this._isDestroyed || this.stepActive !== 2) return
|
||||
const center = new TMap.LatLng(this.appMapCenterPointY, this.appMapCenterPointX)
|
||||
this.lineMap = new TMap.Map("xlMap", {
|
||||
resizeEnable: true,
|
||||
@@ -1834,10 +1842,14 @@ layout("/layouts/platform.html"){
|
||||
}],
|
||||
});
|
||||
},
|
||||
xlMap2() {
|
||||
async xlMap2() {
|
||||
if (!this.hasMapCenterPoint()) {
|
||||
return
|
||||
}
|
||||
const requestId = (this.xlMap2RequestId || 0) + 1
|
||||
this.xlMap2RequestId = requestId
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (requestId !== this.xlMap2RequestId || this._isDestroyed || this.stepActive !== 2) return
|
||||
let map = new AMap.Map("xlMap", {
|
||||
resizeEnable: true,
|
||||
center: [this.appMapCenterPointX, this.appMapCenterPointY],
|
||||
@@ -1905,7 +1917,7 @@ layout("/layouts/platform.html"){
|
||||
// 缩放地图到合适的视野级别
|
||||
map.setFitView([polyline])
|
||||
|
||||
this.polyEditor = new AMap.PolyEditor(map, polyline)
|
||||
this.polyEditor = new AMap.PolylineEditor(map, polyline)
|
||||
this.polyEditor.open()
|
||||
this.polyEditor.on('end', (event) => {
|
||||
let points = event.target.getPath()
|
||||
@@ -1933,7 +1945,7 @@ layout("/layouts/platform.html"){
|
||||
})
|
||||
|
||||
if (this.formData.isMultipleLines) {
|
||||
this.polyEditor2 = new AMap.PolyEditor(map, polyline2)
|
||||
this.polyEditor2 = new AMap.PolylineEditor(map, polyline2)
|
||||
this.polyEditor2.open()
|
||||
this.polyEditor2.on('end', (event) => {
|
||||
let points = event.target.getPath()
|
||||
|
||||
@@ -236,11 +236,13 @@ const courseList = {
|
||||
this.courseTimeList = resp.data
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
const viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -79,11 +79,13 @@ const info = {
|
||||
this.courseTimeList = courseTimeList
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -236,11 +236,13 @@ const courseList = {
|
||||
this.courseTimeList = resp.data
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
const viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -79,11 +79,13 @@ const info = {
|
||||
this.courseTimeList = courseTimeList
|
||||
this.courseTimeListDialog = true
|
||||
},
|
||||
openViewMap(point) {
|
||||
async openViewMap(point) {
|
||||
if (!Array.isArray(point)) {
|
||||
this.$message.warning("没有设置点位,无法通过地图查看")
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('amap')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed || this.viewMapDialog) return
|
||||
this.viewMapDialog = true
|
||||
this.$nextTick(() => {
|
||||
viewMap = new AMap.Map("viewMap", {
|
||||
|
||||
@@ -63,12 +63,15 @@ const times = {
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$nextTick(async () => {
|
||||
if(this.row.signType === 3) {
|
||||
if(this.map) this.map.destroy()
|
||||
this.initMap()
|
||||
this.map = null
|
||||
this.markerLayer = null
|
||||
await this.initMap()
|
||||
if (!this.visible || this.row !== row || !this.map) return
|
||||
this.getLocation((coords) => {
|
||||
if (coords) {
|
||||
if (coords && this.visible && this.row === row && this.markerLayer) {
|
||||
const center = new TMap.LatLng(coords.lat, coords.lng)
|
||||
this.markerLayer.remove(["current"])
|
||||
this.createMarker(center, 'current', 'current')
|
||||
@@ -102,9 +105,9 @@ const times = {
|
||||
this.visible = false
|
||||
} else {
|
||||
this.$toast(res.msg)
|
||||
this.markerLayer.remove(["current"])
|
||||
if (this.markerLayer) this.markerLayer.remove(["current"])
|
||||
this.getLocation((coords) => {
|
||||
if (coords) {
|
||||
if (coords && this.visible && this.map && this.markerLayer) {
|
||||
const center = new TMap.LatLng(coords.lat, coords.lng)
|
||||
this.createMarker(center, 'current', 'current')
|
||||
}
|
||||
@@ -162,12 +165,17 @@ const times = {
|
||||
}
|
||||
);
|
||||
},
|
||||
initMap() {
|
||||
async initMap() {
|
||||
if(!this.row.courseLocationCoordinates) {
|
||||
this.$toast('未设置签到点')
|
||||
return
|
||||
}
|
||||
const posi = JSON.parse(this.row.courseLocationCoordinates)
|
||||
const row = this.row
|
||||
const requestId = (this.mapLoadRequestId || 0) + 1
|
||||
this.mapLoadRequestId = requestId
|
||||
if (!await window.ensureMapSdk('tencent')) return
|
||||
if (requestId !== this.mapLoadRequestId || this._isDestroyed || !this.visible || this.row !== row) return
|
||||
const posi = JSON.parse(row.courseLocationCoordinates)
|
||||
const center = new TMap.LatLng(posi[0], posi[1])
|
||||
this.map = new TMap.Map('mapContainer', {
|
||||
resizeEnable: true,
|
||||
|
||||
@@ -41,16 +41,20 @@ layout("/layouts/platform_h5.html"){
|
||||
return {
|
||||
courseId: GetQueryString('courseId'),
|
||||
markerLayer: null,
|
||||
currentPosition: null,
|
||||
map: null,
|
||||
res: {},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
initMap() {
|
||||
async initMap() {
|
||||
if(!this.row.courseLocationCoordinates) {
|
||||
this.$toast('未设置签到点')
|
||||
return
|
||||
}
|
||||
if (!await window.ensureMapSdk('tencent')) return
|
||||
if (this._isDestroyed || this._isBeingDestroyed) return
|
||||
await this.$nextTick()
|
||||
const posi = this.row.courseLocationCoordinates
|
||||
const center = new TMap.LatLng(posi[0], posi[1])
|
||||
this.map = new TMap.Map('mapContainer', {
|
||||
@@ -70,6 +74,14 @@ layout("/layouts/platform_h5.html"){
|
||||
})
|
||||
this.createMarker(center)
|
||||
this.createCircle(center)
|
||||
this.showCurrentPosition()
|
||||
},
|
||||
// 定位和签到独立于地图下载;先返回的定位结果在地图就绪后补画。
|
||||
showCurrentPosition() {
|
||||
if (!this.map || !this.markerLayer || !this.currentPosition) return
|
||||
this.markerLayer.remove(["current"])
|
||||
const center = new TMap.LatLng(this.currentPosition[0], this.currentPosition[1])
|
||||
this.createMarker(center, 'current', 'current')
|
||||
},
|
||||
createMarker(position, styleId = 'marker', id = 'marker_' + Date.now()) {
|
||||
this.markerLayer.add([
|
||||
@@ -103,13 +115,8 @@ layout("/layouts/platform_h5.html"){
|
||||
lat: pos.coords.latitude,
|
||||
lng: pos.coords.longitude
|
||||
});
|
||||
if (this.markerLayer) {
|
||||
this.markerLayer.remove(["current"])
|
||||
}
|
||||
const transPosi = this.$coordinateUtil.wgs84ToGcj02(pos.coords.longitude, pos.coords.latitude)
|
||||
console.log(transPosi)
|
||||
const center = new TMap.LatLng(transPosi[0], transPosi[1])
|
||||
this.createMarker(center, 'current', 'current')
|
||||
this.currentPosition = this.$coordinateUtil.wgs84ToGcj02(pos.coords.longitude, pos.coords.latitude)
|
||||
this.showCurrentPosition()
|
||||
},
|
||||
(err) => {
|
||||
console.log(err)
|
||||
|
||||
@@ -2,9 +2,7 @@ const home = {
|
||||
template: /*language=HTML*/ `
|
||||
<div class="home-page">
|
||||
<div class="home-summary-bar" :class="{'home-summary-bar--visible': showHomeSummary}">
|
||||
<img class="home-summary-bar__logo"
|
||||
src="/assets/mobile/img/home/v4/中国地质大学-logo.png"
|
||||
alt="中国地质大学">
|
||||
<span class="home-summary-bar__logo" role="img" aria-label="南京审计大学"></span>
|
||||
<span class="home-summary-bar__divider"></span>
|
||||
<span class="home-summary-bar__title">智慧工会</span>
|
||||
</div>
|
||||
@@ -14,8 +12,8 @@ const home = {
|
||||
<div class="home-hero__content">
|
||||
<div class="home-hero__topbar">
|
||||
<img class="home-hero__brand-logo"
|
||||
src="/assets/mobile/img/home/v4/中国地质大学-logo.png"
|
||||
alt="中国地质大学">
|
||||
src="/assets/mobile/img/home/v4/南京审计大学-logo.svg"
|
||||
alt="南京审计大学">
|
||||
</div>
|
||||
<div class="home-hero__title">智慧工会</div>
|
||||
<div class="home-hero__subtitle">情系职工 · 真诚服务</div>
|
||||
@@ -765,8 +763,11 @@ const home = {
|
||||
width: 118px;
|
||||
height: 28px;
|
||||
display: block;
|
||||
object-fit: contain;
|
||||
object-position: left center;
|
||||
flex-shrink: 0;
|
||||
/* 白底吸顶栏使用蓝色标识,复用原 Logo 的透明轮廓以保留校徽和校名字形。 */
|
||||
background-color: #005bac;
|
||||
-webkit-mask: url('/assets/mobile/img/home/v4/南京审计大学-logo.svg') left center / contain no-repeat;
|
||||
mask: url('/assets/mobile/img/home/v4/南京审计大学-logo.svg') left center / contain no-repeat;
|
||||
}
|
||||
|
||||
.home-summary-bar__divider {
|
||||
|
||||
Reference in New Issue
Block a user