收藏
回答

为什么发出的声音会一会是男声,一会是女声?这个能设置固定的吗?

问题类型 插件 AppID 插件版本号 AppID 微信版本 基础库版本
需求 wx069ba97219f66d99 0.3.6 wx069ba97219f66d99 6.5.3 2.0.0

<template>

    <view class="page_wrap u-flex-col u-row-between">


        <view class="content">

            <MyNavbar title="检票"></MyNavbar>

            <view class="content_middle u-flex-col ">

                <view class="content_middle_title">终端绑定</view>

                <view class="content_middle_input u-flex-col u-row-center u-col-center">

                    <view class="content_middle_item u-flex u-row-between">

                        <view class="label">当前终端:{{ terminalObj.terminalName }}</view>

                        <view class="moni_button" @click="reSetBindTerminal">终端解绑</view>

                    </view>

                    <u-form :model="form" ref="uForm">

                        <u-form-item :border-bottom="false">

                            <u-input v-model="form.text" type="select" disabled @click="toSelectOut" :border="border"

                                placeholder="终端选择" />


                            <u-picker :show="selectFlag" mode="selector" :columns="terminalColumns"

                                @confirm="confirmPicker" @cancel="cancelPicker" keyName="label" :default-index="[0]"></u-picker>

                        </u-form-item>

                    </u-form>

                </view>

                <view class="content_middle_button">

                    <u-button :custom-style="customStyle" @click="bindTerminal">终端绑定</u-button>

                </view>

            </view>

            <view class="content_middle u-flex-col ">

                <view class="content_middle_title">语音设置</view>

                <view class="content_middle_input u-flex u-row-between u-col-center u-p-l-60 u-p-r-60">

                    <view class="">

                        是否开启语音

                    </view>

                    <view class="">

                        <u-switch v-model="isAudio" active-color="#F87428" @change="switchChange"></u-switch>

                    </view>

                </view>

            </view>

        </view>

        <MyFooter />

    </view>

</template>


<script>

    import {

        checkTerminalIsBind,

        bindTerminal,

        reSetBindTerminal,

        findNoBindTerminalList

    } from '@/api/check-ticket/index.js';

    import MyFooter from '@/components/MyFooter/index.vue';

    import {

        getUserInfo,

        setIsAudio,

        getIsAudio

    } from '@/util/storage.js';

    export default {

        components: {

            MyFooter

        },

        data() {

            return {

                border: false,

                selectFlag: false,

                form: {

                    text: '',

                    terminalNo: ''

                },

                terminalList: [],

                terminalColumns: [],

                machineNo: null,

                terminalObj: {

                    positionName: '',

                    terminalName: '',

                    terminalNo: '',

                    terminalId: ''

                },

                isAudio: false,

                customStyle: {

                    width: '598rpx',

                    height: '84rpx',

                    background: '#F87428',

                    borderRadius: '46rpx 46rpx 46rpx 46rpx',

                    fontSize: '32rpx',

                    fontFamily: ' PingFang SC-Regular, PingFang SC',

                    fontWeight: 400,

                    color: '#FFFFFF',

                    lineHeight: '44rpx',

                },

            };

        },

        onLoad(option) {},

        created() {

            this.initPage();

        },

        methods: {

            cancelPicker() {

              this.selectFlag = false; // 关闭下拉菜单

            },

            confirmPicker(e) {

              console.log("确认选择的数据:", e);

              if (e.value && e.value.length > 0) {

                const selected = e.value[0]; // 获取选中的选项对象

                this.form.text = selected.label; // 更新 form.text

                this.form.terminalNo = selected.value; // 更新 form.terminalNo

              }

              this.selectFlag = false; // 关闭下拉菜单

            },

            confirm(e) {

                this.form.text = e[0].label;

                this.form.terminalNo = e[0].value;

                this.selectFlag = false; // 关闭下拉菜单                

            },

            initPage() {

                console.log(getApp().globalData.setTerimalStorage)

                if (getApp().globalData.setTerimalStorage == 'ticketTerimal') {

                    this.machineNo = getUserInfo().memberId;

                } else {

                    this.machineNo = getUserInfo().memberNo;

                }

                if (!this.machineNo) {

                    uni.redirectTo({

                        url: 'pages/login/login'

                    });

                }

                this.checkTerminalIsBind();

                this.findNoBindTerminalList();


                let isAudio = getIsAudio()

                if (isAudio) {

                    this.isAudio = isAudio

                } else {

                    this.isAudio = false

                }

            },

            // init回显

            checkTerminalIsBind() {

                checkTerminalIsBind({

                    machineNo: this.machineNo

                }).then(res => {

                    if (res.data) {

                        this.terminalObj = {

                            positionName: res.data.positionName,

                            terminalName: res.data.terminalName,

                            terminalNo: res.data.terminalNo,

                            terminalId: res.data.terminalId,

                            scenicSpotId: res.data.scenicSpotId,

                        };

                        uni.setStorageSync(getApp().globalData.setTerimalStorage, this.terminalObj)

                    } else {

                        this.terminalObj = this.$options.data().terminalObj;

                    }

                });

            },

            // 查终端列表

            findNoBindTerminalList() {

                findNoBindTerminalList({

                    terminalType: getApp().globalData.TERMINALTYPE

                }).then(res => {

                    if (res.data?.list) {

                        this.terminalList = res.data.list.map(item => ({

                            label: item.terminalName,

                            value: item.terminalNo

                        }));

                        this.terminalColumns = [this.terminalList];

                    } else {

                        this.terminalList = [];

                        this.terminalColumns = [];

                    }

                });

            },

            reSetBindTerminal() {

              if (!this.terminalObj.terminalName) return;

            

              uni.showToast({

                title: '正在解绑中',

                icon: 'loading'

              });

            

              reSetBindTerminal({

                terminalNo: this.terminalObj.terminalNo

              })

              .then(res => {

                this.terminalObj = this.$options.data().terminalObj;

                this.form = {};

                uni.removeStorageSync(getApp().globalData.setTerimalStorage);

                this.checkTerminalIsBind();

              })

              .finally(() => {

                uni.hideToast();

                this.findNoBindTerminalList();

              });

            },

            // 呼出下拉

            toSelectOut() {

                console.log('点击事件触发,当前终端名称:', this.terminalObj.terminalName); // 调试日志

                if (this.terminalObj.terminalName) {

                    console.log('终端已绑定,禁止选择');

                    return;

                }

                console.log('打开picker');

                this.selectFlag = true;

            },

            // 选择

            toSelect(index) {

                this.form.text = e.name;

                this.form.terminalNo = e.value;

                this.selectFlag = false

                // this.form = uni.$u.deepClone(this.terminalList[index]);

            },


            bindTerminal() {

              uni.showToast({

                title: '正在绑定中',

                icon: 'loading'

              });

            

              bindTerminal({

                machineNo: this.machineNo,

                terminalNo: this.form.terminalNo

              })

              .then(res => {

                this.terminalObj = {

                  positionName: res.data.positionName,

                  terminalName: res.data.terminalName,

                  terminalNo: res.data.terminalNo,

                  terminalId: res.data.terminalId,

                  scenicSpotId: res.data.scenicSpotId,

                };

                uni.setStorageSync(getApp().globalData.setTerimalStorage, this.terminalObj);

              })

              .finally(() => {

                uni.hideToast();

              });

            },

            // 选择开启语音

            switchChange(value) {

                setIsAudio(value)

            }

        }

    };

</script>

回答关注问题邀请回答
收藏

1 个回答

  • dreamhunter
    dreamhunter
    2天前

    找开发者处理

    2天前
    有用
    回复
登录 后发表内容