帧视界壹通告,付费看视频的微信小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

323 lines
7.3 KiB

11 months ago
10 months ago
11 months ago
11 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
  1. <template>
  2. <view class="actorRelease">
  3. <navbar leftClick @leftClick="$utils.navigateBack" title="演员发布" />
  4. <view class="avatarFace" @click="uploadImage('image')">
  5. <image v-if="form.image" :src="form.image" style="width: 100%;height: 100%"></image>
  6. <image v-else src="../../static/image/+.png" style="width: 100%;height: 100%"></image>
  7. </view>
  8. <view class="form">
  9. <view class="form-item">
  10. <view class="label">
  11. 名称
  12. </view>
  13. <input type="text" placeholder="请输入名称" v-model="form.name" />
  14. </view>
  15. <view class="form-item">
  16. <view class="label">
  17. 价格
  18. </view>
  19. <input type="number" placeholder="请输入价格" v-model="form.money" />
  20. </view>
  21. <!-- <view class="form-item">
  22. <view class="label">
  23. 地点
  24. </view>
  25. <input type="text" placeholder="请输入地点"/>
  26. </view>
  27. <view class="form-item">
  28. <view class="label">
  29. 时间
  30. </view>
  31. <input type="text" placeholder="请选择时间"/>
  32. </view> -->
  33. <view class="form-item">
  34. <view class="label">
  35. 联系方式
  36. </view>
  37. <input type="text" placeholder="请输入联系方式" v-model="form.phone" />
  38. </view>
  39. <view class="form-item-content">
  40. <view class="label">
  41. 详情介绍
  42. </view>
  43. <view class="textarea">
  44. <uv-textarea v-model="form.content" :maxlength="200" count placeholder="输入详情介绍"></uv-textarea>
  45. </view>
  46. </view>
  47. <view class="form-item-content">
  48. <view class="label">
  49. 发布人
  50. </view>
  51. <view class="textarea">
  52. <uv-radio-group v-model="form.isUser">
  53. <uv-radio size="35rpx" icon-size="35rpx" label="本人发布" labelSize="28rpx" name="1">
  54. </uv-radio>
  55. <uv-radio size="35rpx" icon-size="35rpx" label="经纪人发布" labelSize="28rpx" name="0">
  56. </uv-radio>
  57. </uv-radio-group>
  58. </view>
  59. </view>
  60. <view class="form-item-content">
  61. <view class="label">
  62. 联系方式是否付费查看建议付费避免无效联系
  63. </view>
  64. <view class="textarea">
  65. <uv-radio-group v-model="form.phonePay">
  66. <uv-radio size="35rpx" icon-size="35rpx" label="是" labelSize="28rpx" name="1">
  67. </uv-radio>
  68. <uv-radio size="35rpx" icon-size="35rpx" label="否" labelSize="28rpx" name="0">
  69. </uv-radio>
  70. </uv-radio-group>
  71. </view>
  72. </view>
  73. <view class="form-item-content">
  74. <view class="label">
  75. 是否置顶
  76. </view>
  77. <view class="textarea">
  78. <uv-radio-group v-model="form.isTop">
  79. <uv-radio size="35rpx" icon-size="35rpx" label="是" labelSize="28rpx" name="1">
  80. </uv-radio>
  81. <uv-radio size="35rpx" icon-size="35rpx" label="否" labelSize="28rpx" name="0">
  82. </uv-radio>
  83. </uv-radio-group>
  84. </view>
  85. <!-- 新版方法401暂时注释 -->
  86. <!-- <view class="title">
  87. <uv-icon name="pushpin-fill"></uv-icon>
  88. 是否置顶
  89. </view>
  90. <uv-radio-group v-model="form.upTop">
  91. <view class="list">
  92. <view class="item" v-for="(item, index) in upTopList" :key="index">
  93. <view class="left">
  94. 置顶{{ item.day }}{{ item.money }}
  95. </view>
  96. <view class="right">
  97. <uv-radio size="35rpx" icon-size="35rpx" :name="item.id">
  98. </uv-radio>
  99. </view>
  100. </view>
  101. </view>
  102. </uv-radio-group> -->
  103. </view>
  104. <view class="form-item-content">
  105. <view class="label">
  106. 代表作
  107. </view>
  108. <view class="upload">
  109. <uv-upload :fileList="fileList" :maxCount="5" multiple accept="video" width="150rpx" height="150rpx"
  110. @delete="deleteImage" @afterRead="afterRead" :previewFullImage="true"></uv-upload>
  111. </view>
  112. </view>
  113. </view>
  114. <submit @submit="submit" @preview="preview" @draft="draft" />
  115. <confirmationPopup ref="confirmationPopupUpload" title="提示" confirmText="确认" @confirm="confirm()">
  116. <view class="confirmationPopup">
  117. <image src="/static/image/publish/upload.png" style="width: 150rpx;height: 150rpx;" mode=""></image>
  118. <view class="info">
  119. 已由平台进行审核时间周期为24小时
  120. </view>
  121. </view>
  122. </confirmationPopup>
  123. </view>
  124. </template>
  125. <script>
  126. import submit from '@/components/content/submit.vue'
  127. import confirmationPopup from '@/components/toast/confirmationPopup.vue'
  128. import {
  129. mapState
  130. } from 'vuex'
  131. export default {
  132. components: {
  133. submit,
  134. confirmationPopup
  135. },
  136. data() {
  137. return {
  138. form: {
  139. phonePrice: '1',
  140. upTop: '1',
  141. createType: '1',
  142. },
  143. fileList: [
  144. // {
  145. // url: 'https://cdn.uviewui.com/uview/swiper/2.jpg'
  146. // },
  147. ],
  148. fileListImage: [],
  149. upTopList: [],
  150. };
  151. },
  152. computed: {
  153. ...mapState(['certifiedIndividual']),
  154. },
  155. mounted() {
  156. // this.indexTopPayList()
  157. },
  158. methods: {
  159. indexTopPayList() {
  160. this.$api('indexTopPayList', res => {
  161. if (res.code == 200) {
  162. this.upTopList = res.result
  163. }
  164. })
  165. },
  166. uploadImage(key) {
  167. this.$Oss.ossUploadImage({
  168. success: url => {
  169. this.$set(this.form, "image", url)
  170. // this.certifiedIndividual[key] = url
  171. }
  172. })
  173. },
  174. deleteImage(e) {
  175. this.fileList.splice(e.index, 1)
  176. },
  177. afterRead(e) {
  178. let self = this
  179. e.file.forEach(file => {
  180. self.$Oss.ossUpload(file.url).then(url => {
  181. self.fileList.push({
  182. url
  183. })
  184. })
  185. })
  186. },
  187. deleteImage2(e) {
  188. this.fileListImage.splice(e.index, 1)
  189. },
  190. afterRead2(e) {
  191. let self = this
  192. e.file.forEach(file => {
  193. self.$Oss.ossUpload(file.url).then(url => {
  194. self.fileListImage.push({
  195. url
  196. })
  197. })
  198. })
  199. },
  200. pay() {
  201. let arr = []
  202. this.fileList.forEach(n => {
  203. arr.push(n.url)
  204. })
  205. let data = {
  206. ...this.form,
  207. isCard: 1,
  208. image: arr.join(',')
  209. }
  210. this.$api('infoReleaseTrends', data,
  211. res => {
  212. if (res.code == 200) {
  213. this.$refs.confirmationPopupUpload.open()
  214. }
  215. })
  216. },
  217. submit() {
  218. console.log("fileList", this.fileList.map((item) => item.url).join(","))
  219. this.form.magnumOpus = this.fileList.map((item) => item.url).join(",")
  220. this.$api('publishActor', this.form, res => {
  221. if (res.code == 200) {
  222. this.$refs.confirmationPopupUpload.open()
  223. }
  224. })
  225. },
  226. confirm() {
  227. this.$refs.confirmationPopupUpload.close()
  228. uni.navigateTo({
  229. url: "/pages/index/index"
  230. })
  231. },
  232. }
  233. }
  234. </script>
  235. <style lang="scss" scoped>
  236. .actorRelease {
  237. background-color: #fff;
  238. min-height: 100vh;
  239. font-size: 28rpx;
  240. padding-bottom: 150rpx;
  241. /deep/ .uv-radio {
  242. margin-right: 25rpx;
  243. margin-top: 10rpx;
  244. }
  245. .box {
  246. padding: 0 20rpx;
  247. }
  248. .avatarFace {
  249. width: 150rpx;
  250. height: 150rpx;
  251. // border: 1px solid #000000;
  252. margin-left: 10rpx;
  253. }
  254. .form {
  255. .label {
  256. padding: 20rpx;
  257. }
  258. .form-item {
  259. display: flex;
  260. align-items: center;
  261. justify-content: space-between;
  262. padding: 20rpx 0;
  263. padding-right: 30rpx;
  264. input {
  265. text-align: right;
  266. flex: 1;
  267. }
  268. }
  269. .form-item-content {
  270. padding-right: 30rpx;
  271. padding-top: 30rpx;
  272. .textarea {
  273. padding-left: 20rpx;
  274. }
  275. .upload {
  276. padding-left: 20rpx;
  277. }
  278. }
  279. }
  280. .confirmationPopup {
  281. display: flex;
  282. flex-direction: column;
  283. align-items: center;
  284. justify-content: center;
  285. width: 100%;
  286. height: 300rpx;
  287. image {
  288. margin-top: 40rpx;
  289. }
  290. .info {
  291. margin-top: 40rpx;
  292. font-size: 26rpx;
  293. }
  294. }
  295. }
  296. </style>