viewAI.html 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <div class="ai-view">
  2. <div class="ai-title rows">
  3. <!-- v-if="relationId" -->
  4. <div v-if="relationId" class="title-btn rows justify-center" :class="{active:tabIndex==2}" @click.stop="tabChange(2)">
  5. <img class="redbox_icon" src="https://dm.static.elab-plus.com/miniProgram/redbox_icon.png" alt=""></img>
  6. 活动
  7. </div>
  8. <div class="title-btn rows justify-center" :class="{active:tabIndex==0}" @click.stop="tabChange(0)">数字人</div>
  9. <div class="title-btn rows justify-center" :class="{active:tabIndex==1}" @click.stop="tabChange(1)">数字宠物</div>
  10. <div class="title-btn rows justify-center" :class="{active:tabIndex==3}" @click.stop="tabChange(3)">音乐</div>
  11. </div>
  12. <div class="ai-people" v-if="tabIndex==0">
  13. <div class="main grid-view1">
  14. <div :class="['item', peopleIndex==idx ? 'active': '']" v-for="(item, idx) in leftList"
  15. :key="idx">
  16. <template v-if="item.userUpload">
  17. <div v-if="!videoUrl">
  18. <div class="empty-item" @click="showMask">
  19. <div class="add-icon rows justify-center">
  20. <img class="bg" :src="uploadStatus==1 || uploadStatus==2 || uploadStatus==4?'https://dm.static.elab-plus.com/miniProgram/person_icon1.png':'https://dm.static.elab-plus.com/miniProgram/person_icon.png'"/>
  21. </div>
  22. <div class="rows justify-center" v-if="uploadStatus==1" style="width: 100%;height: 100%;">
  23. <el-progress :format="format" :stroke-width="8"
  24. define-back-color="#fff" color="#92CE8B"
  25. text-color="#92CE8B" type="circle" :percentage="progress"></el-progress>
  26. </div>
  27. <div class="rows justify-center" v-if="uploadStatus==2" style="width: 100%;height: 100%;">
  28. <el-progress :format="format" :stroke-width="8"
  29. define-back-color="#fff" color="#92CE8B"
  30. text-color="#92CE8B" type="circle" :percentage="ktProgress"></el-progress>
  31. </div>
  32. </div>
  33. <div class="item-name rows justify-center empty-text" v-if="uploadStatus==0">个人形象</div>
  34. <div class="item-name rows justify-center empty-text" v-else-if="uploadStatus==1 || uploadStatus==2" @click.stop="showPopViewHandle">
  35. <div class="close-view rows justify-center">
  36. <i class="iconfont icon-close rows justify-center"></i>
  37. </div>
  38. 取消
  39. </div>
  40. </div>
  41. <div v-else>
  42. <img class="itemImg" :src="item.icon" @click.stop="selectAction(item,idx)" />
  43. <div class="item-name rows justify-center">
  44. <i class="iconfont icon-ic-huanyihuan rows justify-center"></i>
  45. 替换
  46. <form id='uploadVideoFrom1' class="uploadVideoFrom">
  47. <input type="file" ref="uploadModuleImage1Form" @change.stop="uploadImgObj($event,'uploadVideoFrom1',2)"
  48. name="file" accept="video/*" class="el-upload__input">
  49. </form>
  50. </div>
  51. </div>
  52. </template>
  53. <template v-else>
  54. <img class="itemImg" :src="item.icon" @click.stop="selectAction(item,idx)"/>
  55. <div class="item-name rows justify-center" @click.stop="selectAction(item,idx)">{{item.value}}</div>
  56. </template>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="ai-people" v-else-if="tabIndex==1">
  61. <div class="main grid-view1">
  62. <div :class="['item', petIndex==idx ? 'active': '']" v-for="(item, idx) in rightList"
  63. :key="idx" @click="selectAction(item,idx)">
  64. <img class="itemImg" :src="item.icon"/>
  65. <div class="item-name rows justify-center">{{item.value}}</div>
  66. </div>
  67. </div>
  68. </div>
  69. <!-- 红包视图 -->
  70. <div class="redbox" v-else-if="tabIndex==2">
  71. <div class="main-box rows rows-between flex-start">
  72. <div class="left-box">
  73. <div class="left-main rows">
  74. <div class="main-red columns justify-center">
  75. <img class="red-img" src="https://dm.static.elab-plus.com/miniProgram/redbox.gif"/>
  76. <!-- <div v-if="hasRedBox==false" class="red-btn rows justify-center" @click="addRedBox">添加红包</div>
  77. <div class="rows justify-center" v-else>
  78. <div class="iconfont icon-icon_delete rows justify-center" @click="removeRedBox"></div>
  79. <div class="red-btn rows justify-center red-adjust" @click="setRedBox">
  80. 红包调整
  81. </div>
  82. </div> -->
  83. <div class="red-info" v-if="amount">
  84. <div class="red-money">
  85. <span class="tips">¥</span>{{amount}}
  86. </div>
  87. <div class="word">
  88. 场景礼包总奖励金
  89. </div>
  90. </div>
  91. </div>
  92. <div class="plus">+</div>
  93. <div id="special-img" class="special-img"></div>
  94. </div>
  95. <div class="title"></div>
  96. </div>
  97. <div class="right-box">
  98. <div class="select-view columns" style="justify-content:space-around">
  99. <div class="select-btn" :class="{active:specialIndex==0}" @click.stop="specialChange(0)">金光闪闪</div>
  100. <div class="select-btn" :class="{active:specialIndex==1}" @click.stop="specialChange(1)">烟花喷射</div>
  101. <div class="select-btn" :class="{active:specialIndex==2}" @click.stop="specialChange(2)">彩带飘落</div>
  102. </div>
  103. <div class="title">打开特效</div>
  104. </div>
  105. </div>
  106. <div class="playTips rows justify-center" @click="setRedBox">
  107. 玩法说明 >
  108. </div>
  109. </div>
  110. <!-- 音乐列表 -->
  111. <div class="ai-people" v-else-if="tabIndex==3">
  112. <div class="main grid-view1">
  113. <div :class="['item', musicIndex==idx ? 'active': '']" v-for="(item, idx) in musicList"
  114. :key="idx" @click="selectAction(item,idx)">
  115. <img class="itemImg" :src="item.icon?item.icon:'https://dm.static.elab-plus.com/miniProgram/ai-icon.png'"/>
  116. <div class="item-name rows justify-center">{{item.value}}</div>
  117. </div>
  118. </div>
  119. </div>
  120. <div class="ai-tips">
  121. {{tabIndex==0?'点击添加到场景中,可调整大小和拖动到摆放位置':(tabIndex==1?'点击宠物添加到场景中,可调整大小和拖动到摆放位置':(tabIndex==3?'点击音乐添加到场景中':''))}}
  122. </div>
  123. <div class="ai-bottom rows justify-center" @click.stop="mynavigateFuc">立即发布</div>
  124. <!-- 弹出层-添加个人形象 -->
  125. <div class="mask-view" v-if="showPersonView" @touchmove.stop="catchTapEvent" @click.stop="catchTapEvent">
  126. <div class="content">
  127. <i class="iconfont icon-close close rows justify-center" @click.stop="showPersonView=false;"></i>
  128. <div class="title rows justify-center">添加个人形象</div>
  129. <div class="desc rows justify-center">
  130. 生成时间较长约3-5分钟,<br />
  131. 生成前会以人物剪影的方式在场景中占位
  132. </div>
  133. <img class="img" src="https://dm.static.elab-plus.com/miniProgram/mask-img.png"/>
  134. <div class="section-text">
  135. 1.文件小于50M,时长小于20秒<br />
  136. 2.人物需全身照,拍摄时需保持稳定<br />
  137. 3.人物双脚需靠近摄像画面底部<br />
  138. 4.背景不要太乱,推荐美颜相机
  139. </div>
  140. <div class="btn">
  141. <div class="bg rows justify-center">上传</div>
  142. <form id='uploadVideoFrom' class="uploadVideoFrom">
  143. <input type="file" ref="uploadModuleImage1Form" @change.stop="uploadImgObj($event,'uploadVideoFrom',1)"
  144. name="file" accept="video/*" class="el-upload__input">
  145. </form>
  146. </div>
  147. </div>
  148. </div>
  149. <!-- 取消弹出确认框 -->
  150. <div class="pop-view" v-if="showPopView">
  151. <div class="content">
  152. <i class="iconfont icon-close close" @click.stop="showPopView=false;"></i>
  153. <div class="title">
  154. 是否终止添加个人形象?<br />
  155. 终止后重新添加需重新等待
  156. </div>
  157. <div class="btns rows rows-between">
  158. <div class="btn sty1 rows justify-center" @click.stop="stopUpload">终止上传</div>
  159. <div class="btn sty2 rows justify-center" @click.stop="showPopView=false;">继续添加</div>
  160. </div>
  161. </div>
  162. </div>
  163. <video id="videoPlayer" loop muted autoplay style="display: none;" controls="false" webkit-playsinline="webkit-playsinline" playsinline="playsinline" src=""></video>
  164. </div>