Browse Source

发布动态和演员

master
chenkun 10 months ago
parent
commit
e1a3c0a04f
6 changed files with 293 additions and 219 deletions
  1. +10
    -0
      api/api.js
  2. +34
    -31
      components/toast/confirmationPopup.vue
  3. +175
    -164
      pages/publish/actorRelease.vue
  4. +25
    -7
      pages/publish/publishPost.vue
  5. +49
    -17
      pages_mine/mine/authFirm.vue
  6. BIN
      static/image/+.png

+ 10
- 0
api/api.js View File

@ -23,6 +23,16 @@ const config = {
url: '/api/index/getActorDetail',
method: 'GET'
},
//发布演员接口
publishActor: {
url: '/api/index/releaseActorSet',
method: 'POST'
},
//发布动态接口
publishDynamicState: {
url: '/api/index/releaseTrends',
method: 'POST'
},
//获取认证演员
indexGetActorList: {
url: '/api/index/getActorList',


+ 34
- 31
components/toast/confirmationPopup.vue View File

@ -1,8 +1,5 @@
<template>
<uv-popup
:safeAreaInsetBottom="false"
:round="round"
ref="popup">
<uv-popup :safeAreaInsetBottom="false" :round="round" ref="popup">
<view class="toast">
<view class="title">
{{ title }}
@ -11,8 +8,7 @@
<slot></slot>
</view>
<view class="btns" v-if="!cancel">
<view class="btn"
@click="$emit('confirm')">
<view class="btn" @click="$emit('confirm')">
{{ confirmText }}
</view>
</view>
@ -30,52 +26,56 @@
<script>
export default {
name : 'toast',
props : {
title : {
default : ''
name: 'toast',
props: {
title: {
default: ''
},
confirmText : {
default : '确认'
confirmText: {
default: '确认'
},
cancel : {
default : false
cancel: {
default: false
},
cancelText : {
default : '取消'
cancelText: {
default: '取消'
},
round : {
default : '40rpx'
round: {
default: '40rpx'
}
},
methods : {
open(){
methods: {
open() {
this.$refs.popup.open();
},
close(){
this.$refs.popup.close();
}
close() {
this.$refs.popup.close();
}
}
}
</script>
<style lang="scss" scoped>
.toast{
.toast {
min-width: 500rpx;
.title{
.title {
min-height: 70rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 32rpx;
}
.content{
.content {
// min-height: 300rpx;
}
.btns{
.btns {
display: flex;
padding: 30rpx;
.btn{
.btn {
flex: 1;
background: $uni-linear-gradient-btn-color;
border-radius: 20rpx;
@ -84,16 +84,19 @@
text-align: center;
}
}
.btnstwo{
.btnstwo {
display: flex;
.btn{
.btn {
flex: 1;
background: $uni-linear-gradient-btn-color;
color: #fff;
padding: 20rpx 0;
text-align: center;
}
.c{
.c {
background: #fff;
border-top: 1px solid #999;
color: #333;


+ 175
- 164
pages/publish/actorRelease.vue View File

@ -1,34 +1,26 @@
<template>
<view class="actorRelease">
<navbar
leftClick
@leftClick="$utils.navigateBack"
title="演员发布"/>
<view class="images box">
<uv-upload
:fileList="fileListImage"
:maxCount="1"
multiple
width="150rpx"
height="150rpx"
@delete="deleteImage2"
@afterRead="afterRead2"
:previewFullImage="true"></uv-upload>
<navbar leftClick @leftClick="$utils.navigateBack" title="演员发布" />
<view class="avatarFace" @click="uploadImage('image')">
<image v-if="form.image" :src="form.image" style="width: 100%;height: 100%"></image>
<image v-else src="../../static/image/+.png" style="width: 100%;height: 100%"></image>
</view>
<view class="form">
<view class="form-item">
<view class="label">
名称
</view>
<input type="text" placeholder="请输入名称"/>
<input type="text" placeholder="请输入名称" v-model="form.name" />
</view>
<view class="form-item">
<view class="label">
价格
</view>
<input type="number" placeholder="请输入价格"/>
<input type="number" placeholder="请输入价格" v-model="form.money" />
</view>
<!-- <view class="form-item">
<view class="label">
@ -46,18 +38,14 @@
<view class="label">
联系方式
</view>
<input type="text" placeholder="请输入联系方式"/>
<input type="text" placeholder="请输入联系方式" v-model="form.phone" />
</view>
<view class="form-item-content">
<view class="label">
详情介绍
</view>
<view class="textarea">
<uv-textarea
v-model="form.content"
:maxlength="200"
count
placeholder="输入详情介绍"></uv-textarea>
<uv-textarea v-model="form.content" :maxlength="200" count placeholder="输入详情介绍"></uv-textarea>
</view>
</view>
<view class="form-item-content">
@ -65,20 +53,10 @@
发布人
</view>
<view class="textarea">
<uv-radio-group v-model="form.createType">
<uv-radio
size="35rpx"
icon-size="35rpx"
label="本人发布"
labelSize="28rpx"
name="1">
<uv-radio-group v-model="form.isUser">
<uv-radio size="35rpx" icon-size="35rpx" label="本人发布" labelSize="28rpx" name="1">
</uv-radio>
<uv-radio
size="35rpx"
icon-size="35rpx"
label="经纪人发布"
labelSize="28rpx"
name="0">
<uv-radio size="35rpx" icon-size="35rpx" label="经纪人发布" labelSize="28rpx" name="0">
</uv-radio>
</uv-radio-group>
</view>
@ -88,20 +66,10 @@
联系方式是否付费查看建议付费避免无效联系
</view>
<view class="textarea">
<uv-radio-group v-model="form.phonePrice">
<uv-radio
size="35rpx"
icon-size="35rpx"
label="是"
labelSize="28rpx"
name="1">
<uv-radio-group v-model="form.phonePay">
<uv-radio size="35rpx" icon-size="35rpx" label="是" labelSize="28rpx" name="1">
</uv-radio>
<uv-radio
size="35rpx"
icon-size="35rpx"
label="否"
labelSize="28rpx"
name="0">
<uv-radio size="35rpx" icon-size="35rpx" label="否" labelSize="28rpx" name="0">
</uv-radio>
</uv-radio-group>
</view>
@ -111,58 +79,49 @@
是否置顶
</view>
<view class="textarea">
<uv-radio-group v-model="form.upTop">
<uv-radio
size="35rpx"
icon-size="35rpx"
label="是"
labelSize="28rpx"
name="1">
<uv-radio-group v-model="form.isTop">
<uv-radio size="35rpx" icon-size="35rpx" label="是" labelSize="28rpx" name="1">
</uv-radio>
<uv-radio
size="35rpx"
icon-size="35rpx"
label="否"
labelSize="28rpx"
name="0">
<uv-radio size="35rpx" icon-size="35rpx" label="否" labelSize="28rpx" name="0">
</uv-radio>
</uv-radio-group>
</view>
<!-- 新版方法401暂时注释 -->
<!-- <view class="title">
<uv-icon name="pushpin-fill"></uv-icon>
是否置顶
</view>
<uv-radio-group v-model="form.upTop">
<view class="list">
<view class="item" v-for="(item, index) in upTopList" :key="index">
<view class="left">
置顶{{ item.day }}{{ item.money }}
</view>
<view class="right">
<uv-radio size="35rpx" icon-size="35rpx" :name="item.id">
</uv-radio>
</view>
</view>
</view>
</uv-radio-group> -->
</view>
<view class="form-item-content">
<view class="label">
代表作
</view>
<view class="upload">
<uv-upload
:fileList="fileList"
:maxCount="5"
multiple
accept="video"
width="150rpx"
height="150rpx"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true"></uv-upload>
<uv-upload :fileList="fileList" :maxCount="5" multiple accept="video" width="150rpx" height="150rpx"
@delete="deleteImage" @afterRead="afterRead" :previewFullImage="true"></uv-upload>
</view>
</view>
</view>
<submit
@submit="submit"
@preview="preview"
@draft="draft"
/>
<confirmationPopup
ref="confirmationPopupUpload"
title="提示"
confirmText="确认">
<submit @submit="submit" @preview="preview" @draft="draft" />
<confirmationPopup ref="confirmationPopupUpload" title="提示" confirmText="确认" @confirm="confirm()">
<view class="confirmationPopup">
<image src="/static/image/publish/upload.png"
style="width: 150rpx;height: 150rpx;"
mode=""></image>
<image src="/static/image/publish/upload.png" style="width: 150rpx;height: 150rpx;" mode=""></image>
<view class="info">
已由平台进行审核时间周期为24小时
</view>
@ -174,31 +133,59 @@
<script>
import submit from '@/components/content/submit.vue'
import confirmationPopup from '@/components/toast/confirmationPopup.vue'
import {
mapState
} from 'vuex'
export default {
components : {
components: {
submit,
confirmationPopup
},
data() {
return {
form : {
phonePrice : '1',
upTop : '1',
createType : '1',
form: {
phonePrice: '1',
upTop: '1',
createType: '1',
},
fileList: [
// {
// url: 'https://cdn.uviewui.com/uview/swiper/2.jpg'
// },
],
fileListImage : [],
fileListImage: [],
upTopList: [],
};
},
methods : {
deleteImage(e){
computed: {
...mapState(['certifiedIndividual']),
},
mounted() {
// this.indexTopPayList()
},
methods: {
indexTopPayList() {
this.$api('indexTopPayList', res => {
if (res.code == 200) {
this.upTopList = res.result
}
})
},
uploadImage(key) {
this.$Oss.ossUploadImage({
success: url => {
this.$set(this.form, "image", url)
// this.certifiedIndividual[key] = url
}
})
},
deleteImage(e) {
this.fileList.splice(e.index, 1)
},
afterRead(e){
afterRead(e) {
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
@ -208,10 +195,10 @@
})
})
},
deleteImage2(e){
deleteImage2(e) {
this.fileListImage.splice(e.index, 1)
},
afterRead2(e){
afterRead2(e) {
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
@ -221,93 +208,117 @@
})
})
},
pay(){
pay() {
let arr = []
this.fileList.forEach(n => {
arr.push(n.url)
})
let data = {
...this.form,
isCard : 1,
image : arr.join(',')
isCard: 1,
image: arr.join(',')
}
this.$api('infoReleaseTrends', data,
res => {
if(res.code == 200){
res => {
if (res.code == 200) {
this.$refs.confirmationPopupUpload.open()
}
})
},
submit() {
console.log("fileList", this.fileList.map((item) => item.url).join(","))
this.form.magnumOpus = this.fileList.map((item) => item.url).join(",")
this.$api('publishActor', this.form, res => {
if (res.code == 200) {
this.$refs.confirmationPopupUpload.open()
}
})
},
submit(){
confirm() {
this.$refs.confirmationPopupUpload.close()
uni.navigateTo({
url: "/pages/index/index"
})
},
}
}
</script>
<style lang="scss" scoped>
.actorRelease{
background-color: #fff;
min-height: 100vh;
font-size: 28rpx;
padding-bottom: 150rpx;
/deep/ .uv-radio{
margin-right: 25rpx;
margin-top: 10rpx;
}
.box{
padding: 0 20rpx;
}
.images{
display: flex;
flex-wrap: wrap;
padding: 20rpx;
}
.form{
.label{
padding: 20rpx;
.actorRelease {
background-color: #fff;
min-height: 100vh;
font-size: 28rpx;
padding-bottom: 150rpx;
/deep/ .uv-radio {
margin-right: 25rpx;
margin-top: 10rpx;
}
.form-item{
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 0;
padding-right: 30rpx;
input{
text-align: right;
flex: 1;
}
.box {
padding: 0 20rpx;
}
.form-item-content{
padding-right: 30rpx;
padding-top: 30rpx;
.textarea{
padding-left: 20rpx;
.avatarFace {
width: 150rpx;
height: 150rpx;
// border: 1px solid #000000;
margin-left: 10rpx;
}
.form {
.label {
padding: 20rpx;
}
.upload{
padding-left: 20rpx;
.form-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 0;
padding-right: 30rpx;
input {
text-align: right;
flex: 1;
}
}
.form-item-content {
padding-right: 30rpx;
padding-top: 30rpx;
.textarea {
padding-left: 20rpx;
}
.upload {
padding-left: 20rpx;
}
}
}
}
.confirmationPopup{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 300rpx;
image{
margin-top: 40rpx;
}
.info{
margin-top: 40rpx;
font-size: 26rpx;
.confirmationPopup {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 300rpx;
image {
margin-top: 40rpx;
}
.info {
margin-top: 40rpx;
font-size: 26rpx;
}
}
}
}
</style>
</style>

+ 25
- 7
pages/publish/publishPost.vue View File

@ -31,7 +31,7 @@
</view>
<view class="upTop">
<view class="title">
<!-- <view class="title">
<uv-icon name="pushpin-fill"></uv-icon>
是否置顶
</view>
@ -52,7 +52,18 @@
</view>
</view>
</view>
</uv-radio-group>
</uv-radio-group> -->
<view class="label">
是否置顶
</view>
<view class="textarea">
<uv-radio-group v-model="form.isTop">
<uv-radio size="35rpx" icon-size="35rpx" label="是" labelSize="28rpx" name="1">
</uv-radio>
<uv-radio size="35rpx" icon-size="35rpx" label="否" labelSize="28rpx" name="0">
</uv-radio>
</uv-radio-group>
</view>
</view>
<view class="configBtn"
@ -129,7 +140,7 @@
};
},
onShow() {
this.indexTopPayList()
// this.indexTopPayList()
},
methods : {
deleteImage(e){
@ -190,12 +201,19 @@
})) {
return
}
console.log("图片集", this.fileList.map((item) => item.url).join(","))
this.form.image = this.fileList.map((item) => item.url).join(",")
this.$api('publishDynamicState', this.form, res => {
if (res.code == 200) {
this.$refs.confirmationPopupUpload.open()
}
})
if(this.form.upTop){
// if(this.form.upTop){
}else{
this.$refs.confirmationPopup.open()
}
// }else{
// this.$refs.confirmationPopup.open()
// }
},
preview(){},
draft(){},


+ 49
- 17
pages_mine/mine/authFirm.vue View File

@ -8,7 +8,7 @@
<view class="form-item">
<view class="label">法人真实姓名</view>
<view class="input">
<input type="text" v-model="certifiedIndividual.name" />
<input type="text" v-model="form.name" />
</view>
</view>
@ -17,7 +17,7 @@
<view class="form-item">
<view class="label">法人身份证号</view>
<view class="input">
<input type="text" v-model="certifiedIndividual.card" />
<input type="text" v-model="form.card" />
</view>
</view>
@ -26,8 +26,7 @@
<view class="form-item">
<view class="label">营业执照</view>
<view class="avatarFace" @click="uploadImage('tradeImage')">
<image v-if="certifiedIndividual.tradeImage" :src="certifiedIndividual.tradeImage"
style="width: 100%;height: 100%"></image>
<image v-if="form.tradeImage" :src="form.tradeImage" style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
</view>
</view>
@ -36,10 +35,12 @@
<view class="form-item">
<view class="label">其他资质</view>
<view class="avatarFace" @click="uploadImage('otherImage')">
<image v-if="certifiedIndividual.otherImage" :src="certifiedIndividual.otherImage"
<view class="qtzz">
<!-- <image v-if="certifiedIndividual.otherImage" :src="certifiedIndividual.otherImage"
style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image>
<image v-else src="../static/auth/2.png" style="width: 100%;height: 100%"></image> -->
<uv-upload :fileList="fileList" :maxCount="5" multiple width="150rpx" height="150rpx"
@delete="deleteImage" @afterRead="afterRead" :previewFullImage="true"></uv-upload>
</view>
</view>
@ -51,12 +52,12 @@
<view class="agree">
<!-- <view> -->
<uv-checkbox-group v-model="checkboxValue" placement="column" size="35" activeColor="#008000"
inactiveColor="#999999">
<uv-checkbox shape='circle' :checked="true" name="apple" :label="labelValue ? labelValue : ''"
iconSize="35">
</uv-checkbox>
inactiveColor="#999999">
<uv-checkbox shape='circle' :checked="true" name="apple" :label="labelValue ? labelValue : ''"
iconSize="35">
</uv-checkbox>
</uv-checkbox-group>
请仔细阅读平台<span style="color:#009dff">用户协议</span><span style="color:#009dff">隐私协议</span>
请仔细阅读平台<span style="color:#009dff">用户协议</span><span style="color:#009dff">隐私协议</span>
<!-- </view> -->
</view>
@ -100,7 +101,10 @@
confirmText: ['同意', '同意并支付'],
type: 0,
labelValue: '', // labelValue
checkboxValue: [],
checkboxValue: [],
fileList: [],
form: {},
}
},
components: {
@ -111,11 +115,27 @@
},
methods: {
deleteImage(e) {
this.fileList.splice(e.index, 1)
},
afterRead(e) {
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.fileList.push({
url
})
})
})
},
uploadImage(key) {
this.$Oss.ossUploadImage({
success: url => {
this.$nextTick(() => {
this.$set(this.certifiedIndividual, key, url);
// this.form.tradeImage = url
this.$set(this.form, key, url);
// this.$set(this.form, key, url);
})
}
})
@ -123,7 +143,10 @@
onNextClick() {
if (this.$utils.verificationAll(this.certifiedIndividual, {
this.form.imageStraight = this.certifiedIndividual.imageStraight
this.form.imageReverseSide = this.certifiedIndividual.imageReverseSide
// this.form.tradeImage = this.certifiedIndividual.tradeImage
if (this.$utils.verificationAll(this.form, {
imageReverseSide: '请上传身份证背面',
imageStraight: '请上传身份证正面',
card: '请输入身份证号',
@ -142,7 +165,11 @@
this.$refs.confirmationPopup.open()
}, 500)
} else {
this.$api('infoSubmitCompanyCertification', this.certifiedIndividual,
this.form.image = this.fileList.map((item) => item.url).join(",")
this.form.imageStraight = this.certifiedIndividual.imageStraight
this.form.imageReverseSide = this.certifiedIndividual.imageReverseSide
this.form.tradeImage = this.certifiedIndividual.tradeImage
this.$api('infoSubmitCompanyCertification', this.form,
res => {
if (res.code == 200) {
uni.showToast({
@ -202,6 +229,11 @@
height: 150rpx;
}
.qtzz {
// width: 150rp;
height: 150rpx;
}
}
}
@ -212,7 +244,7 @@
position: fixed;
bottom: 12%;
left: 5%;
}
.confirmationPopup {


BIN
static/image/+.png View File

Before After
Width: 40  |  Height: 40  |  Size: 585 B

Loading…
Cancel
Save