<template>
	<view class="container">
		<tn-nav-bar :isBack="true" backgroundColor="#fff" :bottomShadow="false">数字人创建</tn-nav-bar>
		<view class="pos">
		</view>
		<view class="context">
			<view class="top" @click="">
				<view class="top" @click="show4=true">
					<view class="videoBox1" v-if="bgItem.scale==1&&selBgPic">
						<image class="img16" :src="selBgPic" mode=""></image>
						<view class="role">
							<image :src="selRoleItem.url" mode="" @click.stop="show3=true"></image>
						</view>
					</view>
					<view class="videoBox2" v-if="bgItem.scale==2&&selBgPic" :style="{}">
						<image class="img16" :src="selBgPic" mode=""></image>
						<view class="role" style="z-index: 2;">
							<image :src="selRoleItem.url" mode="" @click.stop="show3=true"></image>
						</view>
					</view>
					<view class="videoBox" v-if="!bgItem.scale&&!selBgPic" :style="{minHeight:!selBgPic?'465rpx':''}">
						<view class="emptyVideo" style="background: #ccc;height: 100%;"></view>
					</view>
				</view>


				<view class="videoBox" v-if="!bgItem.scale&&!selBgPic" :style="{minHeight:!selBgPic?'465rpx':''}">
					<view class="emptyVideo" style="background: #ccc;height: 100%;"></view>
				</view>
			</view>
			<view class="selCon">
				<view class="item" @click="show=true" v-if="curBobaoIndex==0">
					<view class="label">
						语速：
					</view>
					<view class="con">
						{{roundRate}}X
					</view>
				</view>
				<view class="item" @click="show1=true" v-if="curBobaoIndex==0">
					<view class="label">
						声音：{{selVoiceItem.name}}
					</view>
					<image class="conImg" :src="selVoiceItem.url">
					</image>
				</view>
				<view class="item" @click="show3=true">
					<view class="label">
						角色：{{selRoleItem.name}}
					</view>
					<image class="conImg" :src="selRoleItem.url">
					</image>
				</view>
			</view>
			<view class="centerMenuBar">
				<view class="barItem" v-for="(item,index) in menuList" @click="handleSetBox(item)">
					<view class="left" style="display: flex;justify-content: flex-end;align-items: center;">
						<!-- <text class="iconfont " :class="[item.icon]" style="color: #26b3a0;font-weight: 600;"></text> -->
						<image :src="item.icon" mode=""></image>
					</view>
					<view class="right">
						{{item.name}}
					</view>
				</view>
			</view>
			<view class="robotNameBox">
				<uni-easyinput :inputBorder="true" :clearable="false" v-model="robotName"
					placeholder="请输入播报标题"></uni-easyinput>
			</view>

			<view class="audioOrTxtChange">
				<view class="item " :class="[index==curBobaoIndex?'item1':'item2']"
					v-for="(item,index) in bobaoMenuList" @click="handleChangeBobao(index)">
					{{item}}
				</view>
			</view>

			<view class="" v-if="curBobaoIndex==0">
				<u--textarea height="" :disabled="false" border="none" :autoHeight="true" maxlength="9999"
					v-model="textAreaValue" placeholder="请输入播报内容"></u--textarea>
			</view>
			<view class="" v-else style="height: 400rpx;">
				<view class="uploadVideoBtn" @click="uploadVideo">上传录音文件</view>
				<view class="audioList" v-if="audioUrl">
					<view class="">
						已上传的音频：
					</view>
					<view class="audioListBox">
						<view class="con">
							{{audioUrl}}
						</view>
						<text @click="audioUrl=''" class="iconfont icon-shanchu rightIcon"
							:style="{fontSize:isPc?'64rpx':'32rpx'}"></text>
					</view>
				</view>
			</view>

			<view class="btnBox">
				<view class="btn draft" @click="saveDraft">
					存草稿
				</view>
				<view class="btn" @click="genRobot" style="background: linear-gradient(to right,#06C68E,#02BCCD);">
					合成
				</view>
			</view>

		</view>
		<u-picker :showIcon="true" :show="showMoreMenu" :columns="columns" title="更多" confirmColor=""
			@cancel="showMoreMenu=false" @confirm="handleConfirm"></u-picker>

		<u-popup :show="show" @close="close" @open="open">
			<view class="contentBox">
				<view class="toolBar">
					<view class="cancel" @click="show=false">
						<image src="/static/images/closeBtn.png" mode=""></image>
					</view>
					<view class="center">
						全局语速
					</view>
					<view class="confirm" @click="handleBtnConfirm">
						<image src="/static/images/selected.png" mode=""></image>
					</view>
				</view>
				<view class="content" style="min-height: 300rpx;">
					<u-slider height="50" min="0.7" max="1.3" step="0.1" class="slider" :showValue='false'
						@change="handleChange" activeColor="#26b3a0" v-model="voiceRate"></u-slider>
					<view class="sliderValue">
						{{roundRate}}X
					</view>
				</view>
			</view>
		</u-popup>
		<!-- 声音 -->
		<u-popup :show="show1" @close="close1" @open="open">
			<view class="contentBox">
				<view class="toolBar">
					<view class="cancel" @click="handleAudioClose">
						<image src="/static/images/closeBtn.png" mode=""></image>
					</view>
					<view class="center">
						声音
					</view>
					<view class="confirm" @click="handleBtnConfirm1">
						<image src="/static/images/selected.png" mode=""></image>
					</view>
				</view>
				<view class="content">
					<view class="filterConList" style="max-height: 500rpx;min-height: 500rpx;overflow-y: scroll;">
						<view class="item" v-for="(item,index) in allList">
							<view class="avtarBox" @click="handleVoiceSel(item,index)">
								<view class="imgBox">
									<image :class="[currTabIndexAll==index?'sel':'']" :src="item.url" mode="">
								</view>
								<!-- </image> -->
								<view class="nameDes">
									{{item.title}}
								</view>
								<view class="name" :class="[currTabIndexAll==index?'selTxt':'']">
									{{item.name}}
								</view>

							</view>

							<view class="playBox" style="" @click="playAudio(item.audio_url)">
								试听
							</view>
						</view>
					</view>
				</view>
			</view>
		</u-popup>
		<!-- 模型 -->
		<u-popup :show="show3" @close="close3" @open="open">
			<view class="contentBox2">
				<view class="toolBar">
					<view class="cancel" @click="show3=false">
						<image src="/static/images/closeBtn.png" mode=""></image>
					</view>
					<view class="center">
						角色
					</view>
					<view class="confirm" @click="handleBtnConfirm2">
						<image src="/static/images/selected.png" mode=""></image>
					</view>
				</view>
				<view class="content" style="padding: 0 20rpx;">
					<view class="filterConList">
						<view class="item" v-for="(item,index) in roleList" @click="handleRoleSel(item,index)">
							<image :class="[currTabIndexModal==index?'sel':'']" :src="item.url" mode="">
							</image>
							<view class="name" :class="[currTabIndexModal==index?'selTxt':'']">
								{{item.name}}
							</view>
							<view class="ratio">
								{{'('+item.proportion+')'}}
							</view>
						</view>
					</view>
				</view>
			</view>
		</u-popup>

		<!-- 背景 -->
		<u-popup :show="show4" @close="close4" @open="open">
			<view class="contentBox2">
				<view class="toolBar">
					<view class="cancel" @click="show4=false">
						<image src="/static/images/closeBtn.png" mode=""></image>
					</view>
					<view class="center">
						背景
					</view>
					<view class="confirm" @click="handleBtnConfirm3">
						<image src="/static/images/selected.png" mode=""></image>
					</view>
				</view>
				<view class="content">
					<view class="filterBox">
						<view class="tabList">
							<view class="item1" style="padding-left: 40rpx;padding-right: 40rpx;"
								v-for="(item,index) in bgList" :class="[currTabIndex2==index?'tabActive':'']"
								@click="handleBgTabChange(item,index)">
								{{item}}
							</view>
						</view>
					</view>
					<view class="filterConList2" style="max-height: 500rpx;min-height: 500rpx;overflow-y: scroll;">
						<view class="pictureBox" v-if="currTabIndex2==0">
							<view class="bgBox" v-for="(item,index) in bgPicList">
								<image :class="[currTabIndexBg==index?'sel':'']" :src="item.url" mode=""
									@click="handleSelBg(item,index)"></image>
								<view class="ratio">
									{{item.scale==1?'(9:16)':'(16:9)'}}
								</view>
							</view>
						</view>
						<view class="pictureBox" v-if="currTabIndex2==1">
							<!-- <view class="color" :style="{background:item}" :class="[currTabIndexBgc==index?'sel':'']"
								v-for="(item,index) in bgColorList" @click="currTabIndexBgc=index"></view> -->
							<view class="defBox">
								<view class="type1">
									<view class="des">
										<text class="lab">尺寸：9:16</text><br>
										背景图要求：<br>
										像素：最高3800 × 3800px<br>
										文件大小：5M以内
									</view>
									<!-- 	<view class="" style="color: #06C68E;">
										参考图
									</view>
									<view class="referImg" @click="previewImg(refImg1)">
										<image class="ig1" :src="refImg1" mode="scaleToFill"
											style="width: 40%;height: 250rpx;"></image>
									</view> -->
									<view class="btn" @click="uploadBg1">
										上传背景图(9:16)
									</view>
								</view>
								<view class="type1">
									<view class="des">
										<text class="lab">尺寸：16:9</text><br>
										背景图要求：<br>
										像素：最高3800 × 3800px<br>
										文件大小：5M以内
									</view>
									<!-- <view class="" style="color: #06C68E;">
										参考图
									</view>
									<view class="referImg" @click="previewImg(refImg2)">
										<image class="ig2" style="width: 70%;height: 130rpx;" :src="refImg2"
											mode="scaleToFill"></image>
									</view> -->
									<view class="btn" @click="uploadBg2">
										上传背景图(16:9)
									</view>
								</view>

							</view>
							<view class=""
								style="margin-left: 30rpx;margin-top: 20rpx;word-break: break-all;word-wrap: break-word;">
								已选择的背景图：<br>
								<!-- {{testCusBgImg1}} -->
								{{testCusBgImg}}
							</view>
						</view>
					</view>
				</view>
			</view>
		</u-popup>

		<!-- 声音筛选弹框 -->
		<u-popup :show="show2" @close="close" @open="open">
			<view class="contentBox">
				<view class="toolBar2">
					<view class="closeBtn" @click="show2=false">
						<!-- <image src="/static/images/selected.png" mode=""></image> -->
						X
					</view>
				</view>
				<view class="content">
					<!-- 场景 -->
					<view class="scenList">
						<view class="item " v-for="(item, index) in scenList"
							:class="[currScenIndex==index?'active':'']" @click="currScenIndex=index">
							{{item}}
						</view>
					</view>
					<!-- 性别-->
					<view class="sexList">
						<view class="item " v-for="(item, index) in sexList" :class="[currSexIndex==index?'active':'']"
							@click="currSexIndex=index">
							{{item}}
						</view>
					</view>
					<!-- 年龄-->
					<view class="ageList">
						<view class="item " v-for="(item, index) in ageList" :class="[currAgeIndex==index?'active':'']"
							@click="currAgeIndex=index">
							{{item}}
						</view>
					</view>

					<view class="filterBtn2" @click="filter">
						确认
					</view>
				</view>
			</view>
		</u-popup>

		<!-- 备用-视频尺寸 -->
		<u-popup :show="show5" @close="close" @open="open">
			<view class="contentBox">
				<!-- 	<view class="toolBar2">
					<view class="closeBtn" @click="show5=false">
						X
					</view>
				</view> -->
				<view class="toolBar toolBar2">
					<view class="cancel">
					</view>
					<view class="center">
						视频尺寸
					</view>
					<view class="confirm" @click="handleBtnConfirm2">
						<!-- <image src="/static/images/selected.png" mode=""></image> -->
						<view class="closeBtn" @click="show5=false">
							X
						</view>
					</view>
				</view>
				<view class="content">
					<view class="videoRatioBox">
						<view class="item">
							<view class="top">
								竖版视频
							</view>
							<view class="bottom">
								9:16
							</view>
						</view>
						<view class="item">
							<view class="top">
								横版视频
							</view>
							<view class="bottom">
								16:9
							</view>
						</view>
					</view>
					<view class="filterBtn2" @click="show5=false">
						确认
					</view>
				</view>
			</view>
		</u-popup>

		<!-- <view class="" style="height: 500rpx;width:300rpx !important;" :style='genResBgImg'>
		</view> -->
	</view>

	</view>
</template>

<script>
	import {
		generateWork,
		roleList,
		voiceList,
		backList,
		getBg

	} from '@/api/robot/index.js'
	import indexVue from './index.vue';

	import
	uploadImgUrl
	from '@/common/config.js';
	export default {
		data() {
			return {
				bobaoMenuList: ['输入播报文本', '上传播报录音文件'],
				curBobaoIndex: 0,

				localBgPicName: '',
				refImg1: '',
				refImg2: '',


				testCusBgImg: '',
				testCusBgImg1: '',
				// tempAudioUrl: 'https://oaigc.oss-cn-chengdu.aliyuncs.com/20230804/90d3618dd8ae5a9ea50b932dba34f295.mp3',

				audioUrl: '',

				bgItem: {

				},
				show5: false,

				show4: false,
				// bgList: ['图片', '颜色'],
				bgList: ['预置', '自定义'],
				currTabIndex2: 0,
				currTabIndexBg: -1,
				currTabIndexBgc: -1,
				bgPicList: [],
				bgColorList: ['red', 'green', 'blue', 'orange', 'green', 'blue', 'orange'],

				show3: false,
				viewList: ['2D', '3D'],
				currTabIndex1: 0,
				currTabIndexModal: -1,
				modalList: [{
						img: '',
						name: '模型名称'
					},
					{
						img: '',
						name: '模型名称'
					},
					{
						img: '',
						name: '模型名称'
					},
					{
						img: '',
						name: '模型名称'
					},
					{
						img: '',
						name: '模型名称'
					},
					{
						img: '',
						name: '模型名称'
					},
					{
						img: '',
						name: '模型名称'
					},
				],

				show2: false,
				currTabIndexAll: -1,

				scenList: ['全部场景', '热门', '新闻咨询', '影视咨询', '热门', '新闻咨询', '影视咨询'],
				currScenIndex: 0,

				sexList: ['全部性别', '男声', '女声'],
				currSexIndex: 0,

				ageList: ['全部年龄', '儿童', '少年', '青年', '中年', '老年'],
				currAgeIndex: 0,

				allList: [],
				// voiceList: ['全部', '热门', '新闻咨询', '影视综艺', '其他'],
				show1: false,
				currTabIndex: 0,

				robotName: '',
				textAreaValue: '',
				voiceRate: 1,
				selRoleId: -1,
				selVoiceId: -1,
				selBgId: -1,
				selBgPic: '',

				roleList: [],

				value: 1,
				show: false,
				menuList: [{
						icon: require('@/static/images/yusu.png'),
						name: '全局语速'
					},
					{
						icon: require('@/static/images/audio.png'),
						name: '声音'
					},
					{
						icon: require('@/static/images/bg.png'),
						name: '背景'
					},
					{
						icon: require('@/static/images/role.png'),
						name: '角色'
					},
				],
				videoSrc: '',
				showMoreMenu: false,
				columns: [
					[]
				],
				selVoiceItem: {
					name: '',
					url: ''
				},
				selRoleItem: {
					name: '',
					url: ''
				},

				detail: {},

				roundRate: 1,
				isGenerate: false,
				isCreate: false,

				roleList2: [],
				bgPicList2: [],

				newBgItem: {
					id: -1
				},
				music: null,

				genResBgImg: "",

				// hasFirstSeledRole: false,
				isFirstSelRole: true,

				testCusBgScale: 1
			};
		},
		computed: {

		},

		onReady() {

		},
		onUnload() {

		},
		onLoad(o) {
			if (o.type == 'create') {
				this.isCreate = true
				this.selRoleId = 5
				this.selBgId = 0
				this.selVoiceId = 9
				this.roundRate = 1
				this.voiceRate = 1
				return
				console.log('create')
			}




			this.detail = getApp().draftDetail

			this.robotName = getApp().draftDetail.name
			this.textAreaValue = getApp().draftDetail.content
			this.selRoleId = getApp().draftDetail.role - 1
			this.selVoiceId = getApp().draftDetail.audio - 1
			this.voiceRate = getApp().draftDetail.stage

			this.selBgId = getApp().draftDetail.back - 1
			this.selBgPic = getApp().draftDetail.backs.url
			this.bgItem = getApp().draftDetail.backs

			this.roundRate = getApp().draftDetail.stage
			this.selVoiceItem = getApp().draftDetail.audios
			this.selRoleItem = getApp().draftDetail.roles


			this.audioUrl = getApp().draftDetail.audio_url || ''
			if (getApp().draftDetail.back_url) {
				this.testCusBgImg = getApp().draftDetail.back_url
				this.selBgPic = getApp().draftDetail.back_url
				this.bgItem.scale = getApp().draftDetail.scale
				this.currTabIndex2 = 1
			}

			if (this.audioUrl && !this.textAreaValue) {
				this.curBobaoIndex = 1
			}
			console.log('传过来的草稿项：', this.detail);
		},
		async onShow() {
			let res = await roleList({})
			if (res.code == 0) {
				// this.roleList = res.msg
				this.roleList2 = res.msg
				console.log('数字人角色列表返回值：', res);

				if (this.isCreate) {
					this.roleList = this.roleList2.filter((item, index) => {
						return item.proportion == '9:16'
					})
					this.selRoleItem = this.roleList2[5]
					this.currTabIndexModal = 3
				} else {
					if (this.detail.backs.scale == 1) {
						this.roleList = this.roleList2.filter((item, index) => {
							return item.proportion == '9:16'
						})
						this.currTabIndexModal = this.roleList.findIndex((item, index) => {
							return item.id == this.selRoleId + 1
						})
					} else {
						this.roleList = this.roleList2.filter((item, index) => {
							return item.proportion == '16:9'
						})
						this.currTabIndexModal = this.roleList.findIndex((item, index) => {
							return item.id == this.selRoleId + 1
						})
					}
				}
			} else {
				uni.showToast({
					title: res.msg,
					icon: 'none'
				})
			}

			let res1 = await voiceList({})
			if (res1.code == 0) {
				// this.roleList = res.data
				this.allList = res1.msg
				console.log('数字人声音列表返回值：', res1);
				this.currTabIndexAll = res1.msg.findIndex((item, index) => {
					return item.id == this.selVoiceId + 1
				})
				if (this.isCreate) {
					this.selVoiceItem = this.allList[9]
				}

			} else {
				uni.showToast({
					title: res1.msg,
					icon: 'none'
				})
			}

			let res3 = await backList({})
			if (res3.code == 0) {
				this.bgPicList = res3.msg
				this.bgPicList2 = res3.msg

				this.refImg1 = res3.msg[0].url
				this.refImg2 = res3.msg[3].url
				console.log('数字人背景列表返回值：', res3);
				if (!this.testCusBgImg) {
					this.currTabIndexBg = res3.msg.findIndex((item, index) => {
						return item.id == this.selBgId + 1
					})
				}
				if (this.isCreate) {
					this.selBgPic = this.bgPicList[0].url
					this.bgItem = this.bgPicList[0]
				}
				console.log('index3', this.currTabIndexBgc);
			} else {
				uni.showToast({
					title: res3.msg,
					icon: 'none'
				})
			}
		},
		onHide() {
			// this.music.src = ''
			// this.music = null
			if (this.music) this.music.destroy()
		},
		beforeDestroy() {
			console.log('beforeDestroy()');
			if (this.music) this.music.destroy()
		},
		onShareAppMessage: function(res) {

		},

		methods: {
			handleChangeBobao(index) {
				this.curBobaoIndex = index
				// if (index == 0) {
				// 	this.audioUrl = ''
				// }
			},

			previewImg(url) {
				uni.previewImage({
					urls: [url],
					// current:[0]
				});
			},

			handleBgTabChange(item, index) {
				this.currTabIndex2 = index
				console.log('12122', index);
				if (index == 1) {} else {}
			},
			uploadBg1() {
				let that = this;
				uni.chooseImage({
					count: 1, //默认9
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
					sourceType: ['album', 'camera'], //从相册选择
					success: function(res) {
						that.localBgPicName = res.tempFiles[0].name
						console.log('选择图片返回值：', res, res.tempFiles[0].size, that.localBgPicName);
						if (res.tempFiles[0].size >
							5242880) {
							return uni.showToast({
								title: '图片大小最大不能超过5M',
								icon: 'none',
								duration: 2000
							})
						}
						const tempFilePaths = res.tempFilePaths;
						//上传服务器将服务器;
						uni.uploadFile({
							url: uploadImgUrl.baseImgUrl,
							filePath: tempFilePaths[0],
							name: 'file',
							formData: {
								accept: 'image',
								upload_type: 'ali-oss'
							},
							success: res2 => {
								let a = JSON.parse(res2.data);
								if (a.code == 0) {
									that.testCusBgImg = a.data.path.trim()
									that.testCusBgImg1 = that.localBgPicName
									console.log('上传图片返回值----1：', that.testCusBgImg);

									if (that.selRoleItem.proportion != '9:16') {
										that.selRoleItem = {}
										that.currTabIndexModal = -1
									}

									that.roleList = that.roleList2.filter((item,
										index) => {
										return item.proportion == '9:16'

									})
									that.bgItem = {
										id: 9999,
										scale: 1,
										url: a.data.path.trim()
									}
									that.selBgPic = a.data.path.trim()

									that.currTabIndexBg = -1

									that.testCusBgScale = 1
									// that.ifimg = true
								} else {
									uni.showToast({
										title: '上传图片失败',
										icon: 'none'
									})
									// that.ifimg = false
								}
							}
						});
					}
				});
			},
			uploadBg2() {
				let that = this;
				uni.chooseImage({
					count: 1, //默认9
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
					sourceType: ['album', 'camera'], //从相册选择
					success: function(res) {
						that.localBgPicName = res.tempFiles[0].name
						// console.log('选择图片返回值：', res, res.tempFiles[0].size, that.localBgPicName);
						if (res.tempFiles[0].size >
							5242880) {
							return uni.showToast({
								title: '图片大小最大不能超过5M',
								icon: 'none',
								duration: 2000
							})
						}
						const tempFilePaths = res.tempFilePaths;
						//上传服务器将服务器;
						uni.uploadFile({
							url: uploadImgUrl.baseImgUrl,
							filePath: tempFilePaths[0],
							name: 'file',
							formData: {
								accept: 'image',
								upload_type: 'ali-oss'
							},
							success: res2 => {
								let a = JSON.parse(res2.data);
								if (a.code == 0) {
									that.testCusBgImg = a.data.path.trim()
									that.testCusBgImg1 = that.localBgPicName
									console.log('上传图片返回值---2：', that.testCusBgImg);

									if (that.selRoleItem.proportion != '16:9') {
										that.selRoleItem = {}
										that.currTabIndexModal = -1
									}
									that.roleList = that.roleList2.filter((item,
										index) => {
										return item.proportion == '16:9'
									})
									that.bgItem = {
										id: 9999,
										scale: 2,
										url: a.data.path.trim()
									}
									that.selBgPic = a.data.path.trim()
									that.currTabIndexBg = -1

									that.testCusBgScale = 2
								} else {
									uni.showToast({
										title: '上传图片失败',
										icon: 'none'
									})
									// that.ifimg = false
								}
							}
						});
					}
				});
			},




			playAudio(item) {
				if (this.music) {
					this.music.destroy()
				}
				this.music = uni.createInnerAudioContext(); //创建播放器对象
				this.music.autoplay = true;
				this.music.src =
					item; //音频地址
				// this.music.play();
			},


			uploadVideo() {
				let _this = this
				uni.chooseFile({
					count: 1, //默认100
					extension: ['.mp3'],
					success: function(res) {
						let tempFilePaths = res.tempFilePaths;

						console.log('选择的音频文件返回值', res);
						if (!res.tempFiles[0].name.endsWith('.mp3')) {
							return uni.showToast({
								title: "请上传mp3音频文件",
								icon: 'none'
							});
						}
						uni.showLoading({
							title: "上传中...",
						});

						uni.uploadFile({
							url: uploadImgUrl.baseImgUrl,
							filePath: tempFilePaths[0],
							// filePath: JSON.stringify(res.tempFilePaths),
							name: 'file',
							fileType: "audio",
							formData: {
								accept: 'audio',
								upload_type: 'ali-oss'
							},
							success: (uploadFileRes) => {
								uni.hideLoading();
								const ret = JSON.parse(uploadFileRes.data);
								if (ret.code == 0) {
									_this.audioUrl = ret.data.path
									console.log(ret);
								}

							}
						});
					}
				});
			},


			close() {

				this.show = false
			},
			close1() {
				// this.music.src = ''; //音频地址
				// this.music.stop(); //执行播放  
				if (this.music) {
					this.music.destroy()
				}

				this.show1 = false
			},
			close3() {
				this.show3 = false
			},
			close4() {
				this.show4 = false
			},
			handleSelBg(item, index) {
				this.isFirstSelRole = false
				if (this.testCusBgImg) {
					this.testCusBgImg = ''
				}
				if (this.testCusBgImg1) {
					this.testCusBgImg1 = ''
				}

				this.bgItem = item
				this.newBgItem = item
				console.log('111111111', item);

				if (this.selRoleItem.proportion == '9:16') {
					if (item.scale != 1) {
						this.selRoleItem = {}
						this.currTabIndexModal = -1
					}
				} else {
					if (item.scale != 2) {
						this.selRoleItem = {}
						this.currTabIndexModal = -1
					}
				}

				if (item.scale == 1) {
					this.roleList = this.roleList2.filter((item, index) => {
						return item.proportion == '9:16'

					})
				} else {
					this.roleList = this.roleList2.filter((item, index) => {
						return item.proportion == '16:9'
					})
				}



				this.bgItem = item
				this.selBgPic = item.url
				this.selBgId = item.id - 1
				this.currTabIndexBg = index
			},
			handleVoiceSel(item, index) {
				this.music.src = ''; //音频地址
				this.music.stop(); //执行播放  


				this.selVoiceItem = item
				this.selVoiceId = item.id - 1
				this.currTabIndexAll = index
			},
			async handleRoleSel(item, index) {
				if (this.isFirstSelRole) {
					this.selRoleItem = item
					this.selRoleId = item.id - 1
					this.currTabIndexModal = index

					console.log('获取合成背景参数：', {
						roleId: item.id,
						backId: this.bgItem.id
					});
				} else {
					// if (this.bgItem.id != this.newBgItem.id) {
					// 	return uni.showToast({
					// 		title: '请先选择背景图，再选择角色',
					// 		icon: 'none'
					// 	})
					// }
					this.selRoleItem = item
					this.selRoleId = item.id - 1
					this.currTabIndexModal = index

					console.log('获取合成背景参数：', {
						roleId: item.id,
						backId: this.bgItem.id
					});
				}
			},
			async saveDraft() {
				if (!this.robotName) {
					return uni.showToast({
						title: '请输入播报标题',
						icon: 'none'
					})
				}

				let parmas = {
					name: this.robotName,
					content: this.textAreaValue,
					// role: this.selRoleId,
					// back: this.selBgId,
					// audio: this.selVoiceId,
					stage: this.roundRate,
					audio_url: this.audioUrl,
					is_draft: 1
				}
				if (this.selRoleId != -1) {
					parmas['role'] = this.selRoleId
				}
				if (this.selBgId != -1) {
					if (this.testCusBgImg) {
						parmas['back_url'] = this.testCusBgImg
						parmas['scale'] = this.testCusBgScale
					} else {
						parmas['back'] = this.selBgId
					}
				}
				if (this.selVoiceId != -1) {
					parmas['audio'] = this.selVoiceId
				}



				console.log('保存数字人草稿参数：', parmas);
				// return
				let res = await generateWork(parmas)
				if (res.code == 0) {
					uni.showToast({
						title: '保存成功！',
						icon: 'success'
					})
					setTimeout(() => {
						uni.navigateBack()
					}, 1500)
				} else {
					uni.showToast({
						title: res.msg,
						icon: 'none'
					})
				}
				console.log('保存数字人草稿返回值：', res);
			},
			async genRobot() {
				// 生成参数校验
				if (!this.robotName) {
					return uni.showToast({
						title: '请输入播报标题',
						icon: 'none'
					})

				}
				if (this.curBobaoIndex == 0 && !this.textAreaValue) {
					return uni.showToast({
						title: '请输入播报文本',
						icon: 'none'
					})
				}
				if (this.curBobaoIndex == 0 && this.textAreaValue.trim().length < 10) {
					return uni.showToast({
						title: '播报文本最少10个字',
						icon: 'none'
					})
				}

				if (this.curBobaoIndex == 1 && !this.audioUrl) {
					return uni.showToast({
						title: '请上传播报录音文件',
						icon: 'none'
					})
				}
				// return
				// 生成参数校验

				if (this.isGenerate) {
					uni.showToast({
						title: '请等待上一次生成完成后提交！',
						icon: 'none'
					})
					return
				}


				let parmas = {}
				if (this.audioUrl && !this.testCusBgImg && this.curBobaoIndex == 1) {
					parmas = {
						name: this.robotName,
						// content: this.textAreaValue,
						role: this.selRoleId,
						back: this.selBgId,
						// audio: this.selVoiceId,
						// stage: this.roundRate,
						audio_url: this.audioUrl
					}
				} else if (this.audioUrl && this.testCusBgImg && this.curBobaoIndex == 1) {
					parmas = {
						name: this.robotName,
						// content: this.textAreaValue,
						role: this.selRoleId,
						// back: this.selBgId,
						// audio: this.selVoiceId,
						// stage: this.roundRate,
						audio_url: this.audioUrl,
						back_url: this.testCusBgImg
					}
				} else if (!this.audioUrl && this.testCusBgImg) {
					parmas = {
						name: this.robotName,
						content: this.textAreaValue,
						role: this.selRoleId,
						// back: this.selBgId,
						back_url: this.testCusBgImg,
						audio: this.selVoiceId,
						stage: this.roundRate,
						// audio_url: this.audioUrl
					}
				} else if (!this.audioUrl && this.curBobaoIndex == 1) {
					return uni.showToast({
						title: '请上传录音播报文件',
						icon: 'none',
						duration: 1500
					})

				} else if (this.audioUrl && !this.textAreaValue) {
					parmas = {
						name: this.robotName,
						content: this.textAreaValue,
						role: this.selRoleId,
						// back: this.selBgId,
						back_url: this.testCusBgImg,
						audio: this.selVoiceId,
						stage: this.roundRate,
						// audio_url: this.audioUrl
					}
				} else {
					parmas = {
						name: this.robotName,
						content: this.textAreaValue,
						role: this.selRoleId,
						back: this.selBgId,
						audio: this.selVoiceId,
						stage: this.roundRate,
						// audio_url: this.audioUrl
					}
				}
				console.log('创建数字人参数：', parmas);
				// return

				this.isGenerate = true
				this.robotName = ''
				this.textAreaValue = ""
				this.audioUrl = ''
				let res = await generateWork(parmas)
				if (res.code == 0) {
					uni.showToast({
						title: '创建数字人成功！',
						icon: 'success'
					})
					getApp().from = 'create'
					setTimeout(() => {
						uni.navigateBack()
					}, 1500)
					this.isGenerate = false
				} else {
					uni.showToast({
						title: res.msg,
						icon: 'none'
					})
					this.isGenerate = false
				}
				console.log('生成数字人返回值：', res);
			},

			filter() {
				this.show2 = false
			},
			handleFilter() {
				// this.show1 = false
				this.show2 = true
			},
			handleAudioClose() {
				this.show1 = false
				if (this.music) {
					this.music.destroy()
				}
			},
			handleBtnConfirm1() {
				this.show1 = false
				if (this.music) {
					this.music.destroy()
				}
			},
			handleBtnConfirm2() {
				this.show3 = false
			},
			handleBtnConfirm3() {
				this.show4 = false
			},

			handleSetBox(item) {
				if (item.name == '全局语速') {
					if (this.curBobaoIndex == 1) {
						return uni.showToast({
							title: '上传音频不支持全局语速',
							icon: 'none'
						})
					}
					this.show = true
				} else if (item.name == '声音') {
					if (this.curBobaoIndex == 1) {
						return uni.showToast({
							title: '上传音频不支持声音选择',
							icon: 'none'
						})
					}
					this.music = uni.createInnerAudioContext(); //创建播放器对象
					this.music.autoplay = true;
					this.show1 = true
				} else if (item.name == '角色') {

					this.show3 = true
				} else if (item.name == '背景') {
					this.show4 = true
				}
			},
			handleChange(e) {
				console.log(e);
				this.roundRate = e.toFixed(1)
			},

			handleBtnConfirm() {
				this.show = false
			},

			handleCreatePro() {
				uni.navigateTo({
					url: ''
				})
			},
			handleShowMoreMenu() {
				this.showMoreMenu = true
			},
			handleConfirm(e) {
				this.showMoreMenu = false
			},
			open() {
				// console.log('open() ');
			}
		}
	};
</script>

<style lang="scss" scoped>
	@import './index.scss';
</style>