소스 검색

配置本地https

yuwenjun1997 2 년 전
부모
커밋
6bef6cd8eb

+ 3 - 0
.env.development

@@ -21,3 +21,6 @@ HOST = '192.168.2.92'
 
 # 项目端口号
 PORT = '8888'
+
+# HTTPS flag
+HTTPS = true

+ 4 - 1
.env.production

@@ -18,4 +18,7 @@ HOST = '172.31.165.23'
 # HOST = '192.168.2.81'
 
 # 项目端口号
-PORT = '8105'
+PORT = '8105'
+
+# HTTPS flag
+HTTPS = false

+ 4 - 1
.env.staging

@@ -17,4 +17,7 @@ CIMEI_LOCAL = 'https://www-b.caimei365.com'
 HOST = '172.31.165.28'
 
 # 项目端口号
-PORT = '8105'
+PORT = '8105'
+
+# HTTPS flag
+HTTPS = false

BIN
assets/theme-images/ross/h5-banner-club.jpg


BIN
assets/theme-images/ross/pc-banner-club.jpg


+ 21 - 0
ca.crt

@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDXjCCAkagAwIBAgIFNjI3MTYwDQYJKoZIhvcNAQELBQAwXjEQMA4GA1UEAxMH
+VGVzdCBDQTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNV
+BAcTDVNhbiBGcmFuY2lzY28xEDAOBgNVBAoTB1Rlc3QgQ0EwHhcNMjIwNzAxMTAy
+ODQ0WhcNMjMwNzAxMTAyODQ0WjBeMRAwDgYDVQQDEwdUZXN0IENBMQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj
+bzEQMA4GA1UEChMHVGVzdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBANp0acIu4b6wlgsvghCCgKNMjB2u1MVFGrWFjhvZSRgWouy8z6UNhNdyzJJL
+0ZLU3dvmfOE3IQKwjfhoBz1XjKvFHb0zsrlYv7+MREINsAKPjV/JTQPswo/C8Ddb
+4qWKReogGnhC4fn8LYslNojzeUBQ6g9FjQp1/OEx/8MCRPKOKxobVHQrMge+ofPm
+NH35A2Pcq4Q7aXH5JXHxksFPMfHqMDJ9GTf2+Fd28IyTb5tP6wr/uqdPsSdDd5TJ
+HXmT3fpG96g+6tFEa3kJ6ZoxG932M+Z3LQDj8ep9XFYUpeY3BPrlPXWLb3UfaIzO
+zmnB8bnYani2etJD+o3R4uDl2NcCAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQELBQADggEBAAj6NFUurjtmw4aUKkDH
+B6TPX1VrZnOkcXxZjqb9upCjxQRcv8SokEUTDTnYlE81gHr+ZX8AYYnDq0mWYkz/
+MFmOoIshPxV7PB4zowivR1N0ZwbI0Yz+Fc75Qi5iPkZQ9PpYr/wnNXsZ7gbr6GqV
+5PkZC0N7gYHK7nPx21/1F6S+BFkv7DX8wQdViUQYaVoPOSWhXUVGkfYWEhOoXyqK
+xeJescHyuHy0v9STc+jb1sItg6Bdptde7vnKPoDjBhunneoyG/KU9x9KsawDBrGp
+HtD8z8PwTXJIEQN81vJ2KaWE56QnKdOhce7HZSdxNZgP95900WTEtNdhdP2m5vwF
+wr0=
+-----END CERTIFICATE-----

+ 27 - 0
ca.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEA2nRpwi7hvrCWCy+CEIKAo0yMHa7UxUUatYWOG9lJGBai7LzP
+pQ2E13LMkkvRktTd2+Z84TchArCN+GgHPVeMq8UdvTOyuVi/v4xEQg2wAo+NX8lN
+A+zCj8LwN1vipYpF6iAaeELh+fwtiyU2iPN5QFDqD0WNCnX84TH/wwJE8o4rGhtU
+dCsyB76h8+Y0ffkDY9yrhDtpcfklcfGSwU8x8eowMn0ZN/b4V3bwjJNvm0/rCv+6
+p0+xJ0N3lMkdeZPd+kb3qD7q0URreQnpmjEb3fYz5nctAOPx6n1cVhSl5jcE+uU9
+dYtvdR9ojM7OacHxudhqeLZ60kP6jdHi4OXY1wIDAQABAoIBABZMv+cEpiKzH/3w
+UZSh3cPNspftGucwULOq+IC7Q4zj8qm79G5i3OapX1ynxLL6a9NgyeqrmAEQSM3M
+wMBwSXnXW1vPBTWKa7h/9w/PGeKJCON4RxZZetr2CVN9W7uOS+jEci9IlIzSQ0vq
+9pAwWnZITDxW2zjwJmpOkk8z0hn4XPB5eYvzb7CzVK54bBfaZq5GGxOm+8Yc2nhS
+cyDV+a3U1K/EGZYnoaEkAO0yw7etQhlhXt6J0O2eKPpZDTmEEJg3s+hPo85eQJ2X
+N1Vda48HtanimOc3mfi5BlU1weWtZZomutLVQpn/wBgpdAQU+ZS377l6ZoQ5erNx
+28of9uECgYEA+XBS76yjd59UHg60orTD5z0YgmwjM1UhvVBRyXPtX+0A1rt21xeU
+aQSYqMLXGtPZRwpvff+ZlnMPNGArx2X4DcJIMfxmmBM2UmCu8ZotduOWqbppv0/U
+c1lBToQ7+9L22YRWMfMbGKUVSRX3/bYS0yvPeTBLVdd8XEnOVTn0ih8CgYEA4DNy
+wN6a85J4PPUliEkS4TIjso4a1d6sX5dfNtjbo80ZnxYayy+Re3jrNjdXbUCnK6tT
+sMIDHbXYoXlDRjZ1PKdqJFdLWLYrhncvYvhBcnMXpkZemVJyjtsz+kuHa+BOqXPK
+eR7KcGcZu10Qqq7msdB7uUiksmMX3XIkL3ESykkCgYEA0zXmNCXloNPbwTvIfoE7
+5KCaEU2JnNy4HfpV1pP/6prfe/PulADWXPpUXYnl5ESAFaRjdbgpj/hLZpkMWOIh
+4VyiDxleseSKucQ+PjvDxYi+uWcsRZ9OEIICR3623+vps5NX/SGRzxNx65nbjAxQ
+8liFbGOVVtGI7whb21SgmRcCgYAkB6CVZjC4m/0+rpbNhBDIp+ocs8GURSimZAkl
+I0yI0lkfu8mqhYZ3tUL3f4VJRW6YEfxtF4CwsZySto4dJntIuA7SsESniP8NqPGw
+kfzSi7RtQDnLofhPBOMhginNKEr76GPNeylFTwxPk/EtvNXOFZcMe6QcFtiq+cDe
+7uj6IQKBgQDcFgKwGJi4AsTgq5h+GBANbAyL1YVHHyiscNQ2ogAfJXSE39SzSY0g
+NsHujQlFGImnm5PvbbFb/5Fr31wSA+GyHjJh5P7muYoXJc+aVTCsIim6brLjCvog
+GUNWG9Fh9XGPcbCEScC2v9eBnoVI4UX1SMphhYV3aot37pQIQk5z5w==
+-----END RSA PRIVATE KEY-----

+ 42 - 0
cert.crt

@@ -0,0 +1,42 @@
+-----BEGIN CERTIFICATE-----
+MIIDVzCCAj+gAwIBAgIGMTI5MDM0MA0GCSqGSIb3DQEBCwUAMF4xEDAOBgNVBAMT
+B1Rlc3QgQ0ExCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYD
+VQQHEw1TYW4gRnJhbmNpc2NvMRAwDgYDVQQKEwdUZXN0IENBMB4XDTIyMDcwMTA5
+NTc0MloXDTIzMDcwMTA5NTc0MlowHDEaMBgGA1UEAxMRMTkyLjE2OC4yLjkyOjg4
+ODgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyCKKMXf2Y2R1FcKoD
+xyKwk6Goi4oS9+j5JuUtPEcOlInwzX+hxRC0g/QTW2Wl+8BaU5GCBoWCt9/vF06w
+X8KY4RD2fnIfh6/bmagWyrvcHSc7a7OjglGkaHDL8a15pqM+mNuq0iC9BTWJI004
+f3Exg1DdZft3oB+wf3iX+taUamAG+fGDV51B2Ih4m/diU4/InoZOHHUO7PqwjTdc
+OfwUteORmx7d5aUu37LIrKTytdPjXdiD26KJPqNlN5/SGojJPV9xh0s27uZQGpf0
+0GlpI5bOxtZR0D7iKkR63x1gwIAfQU7aLNeYbYzGmUVZeq3BLuopnfsD3xYDf/md
+YwwTAgMBAAGjXTBbMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgWgMB0GA1Ud
+JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAcBgNVHREEFTATghExOTIuMTY4LjIu
+OTI6ODg4ODANBgkqhkiG9w0BAQsFAAOCAQEAHAhCVG5RcKgNQgskqUxCmkS5bA1A
+azpGH6l364scmq3DHFrrB5cYzWlsAiYOUl87S97aqbMQLDQ14Xxq26415AYVH5bZ
+t7R5686hcumPYdWs52nZLSjrOR+zc7lg3lzwZgRLGgXbOk5TmuOZWwwM2czognYu
+5yQsbs1CquLiUWgH3BUAiJ/aKefiN09fF2VgN09DAEvw+YUE9Th6vqVjvudz249m
+V02c9w0LQxSQzb9ZW+rD6CiJNrd70tlBGx7YL4Fl4tgredZj5Zondj4zwYzd2D4M
+hLDcdccNtIoTpU8HuJ5Xxuh7CP8zl4kcCs8m/J1EbTOcpW1heGy4sYsxqg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDXjCCAkagAwIBAgIFNjE0MzQwDQYJKoZIhvcNAQELBQAwXjEQMA4GA1UEAxMH
+VGVzdCBDQTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNV
+BAcTDVNhbiBGcmFuY2lzY28xEDAOBgNVBAoTB1Rlc3QgQ0EwHhcNMjIwNzAxMDk1
+NTA1WhcNMjMwNzAxMDk1NTA1WjBeMRAwDgYDVQQDEwdUZXN0IENBMQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5jaXNj
+bzEQMA4GA1UEChMHVGVzdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAMkxX6xu9fIL0my7KNS20Sxsnm5BY4h2BKYvN2WW/qFzQh9axBbN//zmey8l
+Xl/lw0CIH+NhD8Mut2aPAVaCCERY71hxpRhMTzTyzV8qMWrsBzaU2LmQ7iG3LIkV
+nAFHAT1/EMXaC37wZ8okWW/hKtWZMnJbvPhunSCZl3rSyV903NxIJ5ekyXYh0Bw3
+Y3CuzWK4TS82SpQ6VAj/qG7TZ/rAiWmaTsaG9X01GprAQkdCw5mnBIYtrNQrxKZ6
+/tIzG0WR/fXbmK9KECRUCMgohbvi8ja3Vv3N+Br5eXQRH8UWvu55USgCT+XpE5A7
+hcNRRULOubMzRl05aVI+vsZBnnECAwEAAaMjMCEwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAgQwDQYJKoZIhvcNAQELBQADggEBAA38Wkv5aHNKP0UJtqSg
+eeRiBk26uBOLFP9sEUE5gUVlyIJLmKdGSmP6mkQvtZ3IXVNs/PyuwZU/63+EuT8B
+nz1WThtkVuzK6zxgmnEEnkpILH2qxCgoEQh7dspUIm7fCVUGN3PUxcOi+5d3smgn
+GpePuP5XeXUnooUIBBv6NY7tpiTCBqZ6lXZK50kB1lY5QmYbI9J/IP8lJdluqyOz
+cL6jVQ+VmMPoAYMW7g2C23Z4xTNztn+VXh+wIn97RKZsv+f6n45wWNzSsvt/vVLu
+fikgmAcuxAvzy9xY+qa6/qZJEI5zt6kIhH3e+YGBZGM9EVxr8y5hNh7csP7W23yH
+HrQ=
+-----END CERTIFICATE-----

+ 27 - 0
cert.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAsgiijF39mNkdRXCqA8cisJOhqIuKEvfo+SblLTxHDpSJ8M1/
+ocUQtIP0E1tlpfvAWlORggaFgrff7xdOsF/CmOEQ9n5yH4ev25moFsq73B0nO2uz
+o4JRpGhwy/GteaajPpjbqtIgvQU1iSNNOH9xMYNQ3WX7d6AfsH94l/rWlGpgBvnx
+g1edQdiIeJv3YlOPyJ6GThx1Duz6sI03XDn8FLXjkZse3eWlLt+yyKyk8rXT413Y
+g9uiiT6jZTef0hqIyT1fcYdLNu7mUBqX9NBpaSOWzsbWUdA+4ipEet8dYMCAH0FO
+2izXmG2MxplFWXqtwS7qKZ37A98WA3/5nWMMEwIDAQABAoIBAGFFZIJqzCcZ4OtS
+viFoSOTPFJFBBESO3ORcQvTvLSejMqa1sJlTUWg/fDijRCtnHFZ9uE+hforIKfq4
+8k5dU7YxqhHzTik5+nRyRKuHQxLlfszxcGnSxwab5Z0YQ57m0+RcohB31FlSIkj2
+V7eZsd/KjoEYukdG3mmRi/MFov3dIsSwLRRQMnmT9fsIZkMo8wxLoAVpkLp4hprk
+WsyplvoCgJO9SQN7Mebadcwqf3bRPWddMZbgTGPmejwXpc8BE4cEglt344qutNYi
+gNCAHvjcbMtBve791BAeXoYcH9SizAMt6qL8cCcSBMB1FaJxSWnleB5EFwoPVK/I
+3AVZ3ykCgYEA6OZmWzfsExtW8gdTjW7ByhdzDY/GpEHCe0cmOaaSoErQZCev2920
+W96dFQXapYTCQw6mFXi9HOSFryp621M1p8+sl8jBcHmRPKkcPo3q2W6maPnHXnJ3
+svxV3XtopY5bnyamBGQ0nAQgYqqiymP4YskXVm0e8zAqMrlJfbM1WoUCgYEAw7Ed
+/NQQup46RJwtQhix6FCnmukQL6ybCyxTLqIRkr37aegQj+bcTi6TnWCrsZdeyMkI
+B2uQ48WElVowSCI3ePT9WUApFq8FtrcpxKS9Zo/YWBDoCcXhm6X7a1zfakSqjXdA
+llTU2zcr7ZJPBLBwU8wftoqrl0IKj7ghrjlPK7cCgYEA0WgH9FCt1OgqHufzeiFx
+4PGAo1r48kumQA3TEtbw02sxQDxm5LvNJSVd+78NvvFFceHD915eO5JFmSAK4xVI
+EyCpQLhjJWxI6E/tc1lLJkFVIuIjHoqxkZ9M3R3PE7ySKOEpOJ2YqAcVz2E5idyl
+Qr0oXK80utg9uOncaEcv27kCgYEAmCKsU5ByaQL1/b0FGmukdB2wD6i9YrLn3mnZ
+SVnKG7EDMjSuG5G5GDbxn9o14NzzXVmcmlgvzkQSbSIugwXG5oxgIfDVgMMUyBXh
+rPT+IiwWX3DVVDO4z47cxXzwW+eCSHS7i6Prz3k2931VXSnmSd9ZkEqCWBeJqm3W
+EWKQgEUCgYA9MmMwYE0IkfKZ0WhyM35q430ZQdJj4hGCtCq7FVG8zGgooMmynbx1
+4einKREQCh+VwW1FngfRdLODoD5a74RYyQS0Oo0dppRrkz4+RDYzRbTxtg7q4kFk
+H1eOeEgomIpyNJCdiz3lG8Z6KF7rtlK8TkwBtXTeluliAOGoEx4dtw==
+-----END RSA PRIVATE KEY-----

+ 10 - 0
nuxt.config.js

@@ -1,3 +1,6 @@
+import path from 'path'
+import fs from 'fs'
+
 export default {
   router: {
     middleware: 'auth',
@@ -87,5 +90,12 @@ export default {
   server: {
     port: process.env.PORT,
     host: process.env.HOST,
+    https:
+      process.env.HTTPS === 'true'
+        ? {
+            key: fs.readFileSync(path.join(__dirname, 'cert.key')),
+            cert: fs.readFileSync(path.join(__dirname, 'cert.crt')),
+          }
+        : null,
   },
 }

+ 11 - 14
pages/_template/app/approve/club/index.vue

@@ -55,7 +55,7 @@
                 </div>
                 <div
                   class="distance"
-                  v-text="item.distance + 'km'"
+                  v-text="generateDistance(item.distance)"
                   v-if="item.distance && item.distance !== 99999"
                 ></div>
               </div>
@@ -76,7 +76,7 @@
 
 <script>
 import { mapGetters } from 'vuex'
-import { loactionSelf } from '@/utils/map-utils'
+import { geolocation } from '@/utils/map-utils'
 import { drawLogo, debounce } from '@/utils'
 export default {
   layout: 'app',
@@ -144,6 +144,11 @@ export default {
       this.selectValue = cacheData.selectValue
       this.$refs.citySelect.setSelectValue(this.selectValue)
     },
+
+    generateDistance(value) {
+      return value > 1 ? value + 'km' : value * 1000 + 'm'
+    },
+
     // 初始化页面数据
     async initData() {
       this.listQuery.authUserId = this.authUserId
@@ -154,19 +159,11 @@ export default {
         duration: 0,
       })
 
-      // 获取定位信息 百度坐标转高德坐标
+      // 获取定位信息 这里使用的是高德地图获取用户具体位置信息
       try {
-        const location = await loactionSelf()
-        const result = await this.$http.api.assistant({
-          key: '1bcc97330f6cf517e8dd9d5278957e67',
-          locations: `${location.point.lng},${location.point.lat}`,
-          coordsys: 'baidu',
-          output: 'JSON',
-        })
-        const res = await result.json()
-        this.listQuery.lngAndLat = res.locations
+        const resLocation = await geolocation()
+        this.listQuery.lngAndLat = `${resLocation.position.lng},${resLocation.position.lat}`
       } catch (error) {
-        this.$toast.clear()
         this.$toast('获取定位信息失败,请确保您开启的定位权限并保存网络畅通')
         this.isRequest = false
       }
@@ -379,7 +376,7 @@ export default {
           }
 
           .distance {
-            position: absolute; 
+            position: absolute;
             font-size: 12px;
             color: #404040;
             top: 2px;

+ 10 - 13
pages/_template/ldm/approve/club/index.vue

@@ -48,7 +48,7 @@
               </div>
               <div
                 class="distance"
-                v-text="item.distance + 'km'"
+                v-text="generateDistance(item.distance)"
                 v-if="item.distance && item.distance !== 99999"
               ></div>
             </div>
@@ -63,7 +63,7 @@
 
 <script>
 import { mapGetters } from 'vuex'
-import { loactionSelf } from '@/utils/map-utils'
+import { geolocation } from '@/utils/map-utils'
 import { debounce, drawLogo } from '@/utils'
 export default {
   layout: 'app-ldm',
@@ -131,6 +131,11 @@ export default {
       this.selectValue = cacheData.selectValue
       this.$refs.citySelect.setSelectValue(this.selectValue)
     },
+
+    generateDistance(value) {
+      return value > 1 ? value + 'km' : value * 1000 + 'm'
+    },
+
     // 初始化页面数据
     async initData() {
       this.listQuery.authUserId = this.authUserId
@@ -140,19 +145,11 @@ export default {
         duration: 0,
       })
 
-      // 获取定位信息 百度坐标转高德坐标
+      // 获取定位信息 这里使用的是高德地图获取用户具体位置信息
       try {
-        const location = await loactionSelf()
-        const result = await this.$http.api.assistant({
-          key: '1bcc97330f6cf517e8dd9d5278957e67',
-          locations: `${location.point.lng},${location.point.lat}`,
-          coordsys: 'baidu',
-          output: 'JSON',
-        })
-        const res = await result.json()
-        this.listQuery.lngAndLat = res.locations
+        const resLocation = await geolocation()
+        this.listQuery.lngAndLat = `${resLocation.position.lng},${resLocation.position.lat}`
       } catch (error) {
-        this.$toast.clear()
         this.$toast('获取定位信息失败,请确保您开启的定位权限并保存网络畅通')
         this.isRequest = false
       }

+ 10 - 14
pages/_template/ross/index.vue

@@ -66,7 +66,7 @@
                 </div>
                 <div
                   class="distance"
-                  v-text="item.distance + 'km'"
+                  v-text="generateDistance(item.distance)"
                   v-if="item.distance && item.distance !== 99999"
                 ></div>
               </div>
@@ -86,7 +86,7 @@
 
 <script>
 import { mapGetters } from 'vuex'
-import { loactionSelf } from '@/utils/map-utils'
+import { loactionSelf, geolocation } from '@/utils/map-utils'
 import { drawLogo, debounce } from '@/utils'
 export default {
   layout: 'app-ross',
@@ -161,6 +161,11 @@ export default {
         })
       })
     },
+
+    generateDistance(value) {
+      return value > 1 ? value + 'km' : value * 1000 + 'm'
+    },
+
     // 初始化页面数据
     async initData() {
       this.listQuery.authUserId = this.authUserId
@@ -171,23 +176,14 @@ export default {
         duration: 0,
       })
 
-      // 获取定位信息 百度坐标转高德坐标
+      // 获取定位信息 这里使用的是高德地图获取用户具体位置信息
       try {
-        const location = await loactionSelf()
-        const result = await this.$http.api.assistant({
-          key: '1bcc97330f6cf517e8dd9d5278957e67',
-          locations: `${location.point.lng},${location.point.lat}`,
-          coordsys: 'baidu',
-          output: 'JSON',
-        })
-        const res = await result.json()
-        this.listQuery.lngAndLat = res.locations
+        const resLocation = await geolocation()
+        this.listQuery.lngAndLat = `${resLocation.position.lng},${resLocation.position.lat}`
       } catch (error) {
-        this.$toast.clear()
         this.$toast('获取定位信息失败,请确保您开启的定位权限并保存网络畅通')
         this.isRequest = false
       }
-
       // 获取机构列表
       this.fetchList()
     },

+ 22 - 0
utils/map-utils.js

@@ -44,6 +44,28 @@ export function loactionSelf() {
   })
 }
 
+export function geolocation() {
+  return new Promise((resolve, reject) => {
+    window.AMap.plugin('AMap.Geolocation', () => {
+      const geolocation = new window.AMap.Geolocation({
+        // 是否使用高精度定位,默认:true
+        enableHighAccuracy: true,
+        // 设置定位超时时间,默认:无穷大
+        timeout: 10000
+      })
+
+      geolocation.getCurrentPosition((status, result) => {
+        if (status === 'complete') {
+          resolve(result)
+        } else {
+          reject(result)
+        }
+      })
+    })
+  })
+}
+
+
 // 地址导航
 export function mapNavigate(options = {}, origin) {
   console.log(options)