123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- <template>
- <view class="request_join_container">
- <custom-nav-bar :title="isGroup ? '群聊验证' : '好友验证'">
- <view class="top_right_btn" slot="more">
- <u-button @click="sendRequest" text="发送" type="primary"></u-button>
- </view>
- </custom-nav-bar>
- <text class="title">{{ `发送${isGroup ? "入群" : "好友"}申请` }}</text>
- <view class="input_container">
- <u--textarea
- height="120"
- v-model="reason"
- border="none"
- placeholder="请输入内容"
- maxlength="20"
- count
- >
- </u--textarea>
- </view>
- </view>
- </template>
- <script>
- import IMSDK, { GroupJoinSource } from "openim-uniapp-polyfill";
- import CustomNavBar from "../../../components/CustomNavBar/index.vue";
- import { navigateToDesignatedConversation } from "../../../util/imCommon";
- export default {
- components: {
- CustomNavBar,
- },
- data() {
- return {
- reason: "",
- sourceID: "",
- isGroup: false,
- isScan: false,
- notNeedVerification: false,
- sessionType: 0,
- };
- },
- onLoad(options) {
- const { isGroup, sourceID, isScan, notNeedVerification, sessionType } =
- options;
- this.isGroup = JSON.parse(isGroup);
- this.isScan = JSON.parse(isScan);
- this.sourceID = sourceID;
- this.notNeedVerification = JSON.parse(notNeedVerification);
- this.sessionType = sessionType ?? 0;
- },
- methods: {
- sendRequest() {
- let func;
- if (this.isGroup) {
- const joinSource = this.isScan
- ? GroupJoinSource.QrCode
- : GroupJoinSource.Search;
- func = IMSDK.asyncApi(IMSDK.IMMethods.JoinGroup, IMSDK.uuid(), {
- groupID: this.sourceID,
- reqMsg: this.reason,
- joinSource,
- });
- } else {
- func = IMSDK.asyncApi(IMSDK.IMMethods.AddFriend, IMSDK.uuid(), {
- toUserID: this.sourceID,
- reqMsg: this.reason,
- });
- }
- func
- .then(() => {
- uni.$u.toast(this.notNeedVerification ? "你已加入该群" : "发送成功");
- setTimeout(() => {
- if (this.notNeedVerification) {
- navigateToDesignatedConversation(
- this.sourceID,
- Number(this.sessionType),
- ).catch(() => this.showToast("获取会话信息失败"));
- } else {
- uni.navigateBack();
- }
- }, 1000);
- })
- .catch((err) => {
- console.log(err);
- uni.$u.toast("发送失败");
- });
- },
- showToast(message) {
- this.$refs.uToast.show({
- message,
- });
- },
- },
- };
- </script>
- <style lang="scss">
- .request_join_container {
- @include colBox(false);
- height: 100vh;
- background-color: #f6f6f6;
- .top_right_btn {
- margin-right: 44rpx;
- .u-button {
- height: 48rpx;
- }
- }
- .title {
- font-size: 28rpx;
- color: #999;
- margin: 24rpx 44rpx;
- }
- .input_container {
- /deep/.u-textarea {
- padding: 24rpx 44rpx !important;
- }
- }
- }
- </style>
|