Merge branch 'feat/meeting' of https://git.tsl3060.com/jgl/photo_uniapp into feat/meeting

feat/meeting
lilin 8 months ago
commit b5ec88ba76
  1. 176
      meeting/login/index.vue
  2. 32
      meeting/online/index.vue
  3. 7
      pages.json
  4. BIN
      static/image/login/icon1.png
  5. BIN
      static/image/login/icon2.png
  6. BIN
      static/image/login/icon3.png
  7. BIN
      static/image/login/icon4.png
  8. BIN
      static/image/login/icon5.png
  9. BIN
      static/image/login/icon6.png

@ -0,0 +1,176 @@
<template>
<view class="bg container">
<meet-sticky :bg="bg">
<meet-navbar title="" :isFixed="false"></meet-navbar>
</meet-sticky>
<view class="content">
<view v-if="type == 1">
<view class="text-1">密码登录</view>
<view class="input-1">
<image class="img" src="/static/image/login/icon1.png"></image>
<u--input placeholder="请输入手机号" border="surround" v-model="mobile" clearable></u--input>
</view>
<view class="input-1">
<image class="img" src="/static/image/login/icon2.png"></image>
<u--input placeholder="请输入密码" border="surround" v-model="mobile" clearable></u--input>
</view>
<view class="loginBtn">登陆</view>
<view class="text-2">验证码登录</view>
</view>
<view v-if="type == 2">
<view class="text-1 mb-16">验证码登录</view>
<view class="text-4">若手机号未注册我们将为您自动注册</view>
<view class="input-1">
<image class="img" src="/static/image/login/icon1.png"></image>
<u--input placeholder="请输入手机号" border="surround" v-model="mobile" clearable></u--input>
</view>
<view class="input-1">
<image class="img" src="/static/image/login/icon6.png"></image>
<u--input placeholder="请输入验证码" border="surround" v-model="mobile" clearable></u--input>
<view class="text-3">获取验证码</view>
</view>
<view class="loginBtn">登陆</view>
<view class="text-2">密码登录</view>
</view>
</view>
<!-- footer -->
<view class="footer">
<image class="img01" src="/static/image/login/icon3.png"></image>
<view class="footer-text">使用微信登录</view>
<view class="footer-icon">
<image class="img02" src="/static/image/login/icon4.png"></image>
<view class="footer-text-1">已阅读并接受AI会议助手隐私用户协议</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
bg: "",
mobile: "",
type: 2,//1 2
};
},
methods: {
},
};
</script>
<style lang="scss" scoped>
@import "../common.scss";
.container {
min-height: 100vh;
background-color: #d1dcfe;
padding: 20rpx 0;
.content {
box-sizing: border-box;
padding: 0 64rpx;
padding-top: 100rpx;
.text-1 {
font-size: 40rpx;
font-weight: bold;
color: #23262B;
margin-bottom: 48rpx;
}
.input-1 {
border: 1px solid #fff;
border-radius: 24rpx;
height: 88rpx;
background: #F0F7FF;
display: flex;
align-items: center;
box-sizing: border-box;
padding: 0 32rpx;
margin-bottom: 32rpx;
.img {
width: 36rpx;
height: 36rpx;
}
::v-deep .u-input {
border: 0;
}
.text-3 {
color: #1467FF;
font-size: 28rpx;
width: 150rpx;
display: block;
}
}
.text-4 {
color: #4B5158;
font-size: 28rpx;
margin-bottom: 48rpx;
}
.mb-16 {
margin-bottom: 16rpx;
}
.loginBtn {
background: #1467FF;
border-radius: 16rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
color: #fff;
font-size: 30rpx;
margin-top: 88rpx;
}
.text-2 {
text-align: center;
color: #1467FF;
font-size: 28rpx;
margin-top: 40rpx;
}
}
.footer {
position: fixed;
bottom: 100rpx;
width: 100%;
box-sizing: border-box;
.img01 {
width: 64rpx;
height: 64rpx;
display: block;
margin: 0 auto;
}
.footer-text {
text-align: center;
margin-top: 6rpx;
color: #4B5158;
font-size: 28rpx;
}
.footer-icon{
padding: 0 64rpx;
display: flex;
box-sizing: border-box;
align-items: center;
margin-top: 40rpx;
.img02{
width: 32rpx;
height: 32rpx;
margin-right: 16rpx;
}
.footer-text-1{
color: #4B5158;
font-size: 28rpx;
}
}
}
}
</style>

@ -61,6 +61,9 @@ export default {
recorderManager: null,
innerAudioContext: {},
isRecording: false,
ws: null,
webSocketUrl: "",
VITE_APP_WS: "wss://u140106-8027-537a5c07.westx.seetacloud.com:8443/api/stt/service"
};
},
onLoad() {
@ -74,8 +77,37 @@ export default {
// console.log('recorder stop' + JSON.stringify(res));
// self.voicePath = res.tempFilePath;
// });
this.initWebSocket();
},
methods: {
async initWebSocket() {
let url = this.VITE_APP_WS;
var audio_type = "mic_stream";
var hot_words = "碳丝路 元梦空间";
var hot_words2 = "碳丝路元梦空间";
var language = "zh";
var sample_rate = "16000";
var timestamp = Math.floor(Date.now() / 1000);
var api_key = "AT_syAHhLp3vqOA!@+T9Cocxc0^6z@^9";
var auth = `api_key=${api_key}&audio_type=${audio_type}&hot_words=${hot_words2}&language=${language}&sample_rate=${sample_rate}&stream=True&timestamp=${timestamp}`;
const sign = await this.sha256(auth);
url = `${url}?audio_type=${audio_type}&hot_words=${encodeURIComponent(hot_words)}&language=${language}&sample_rate=${sample_rate}&timestamp=${timestamp}&api_key=${encodeURIComponent(api_key)}&auth=${sign}`;
createdWebSocket(url);
},
async sha256(str) {
//
const encoder = new TextEncoder();
const data = encoder.encode(str);
// SubtleCrypto APISHA-256
return crypto.subtle.digest("SHA-256", data).then(buffer => {
//
const hexArray = Array.from(new Uint8Array(buffer));
const hexString = hexArray
.map(byte => byte.toString(16).padStart(2, "0"))
.join("");
return hexString;
});
},
confirm() {
this.popConfig.show = false;
},

@ -241,6 +241,13 @@
"navigationStyle": "custom",
"enablePullDownRefresh":false
}
},{
"path":"login/index",
"style": {
"navigationBarTitleText": "登陆",
"navigationStyle": "custom",
"enablePullDownRefresh":false
}
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Loading…
Cancel
Save