7 changed files with 373 additions and 45 deletions
@ -0,0 +1,263 @@ |
|||
<template> |
|||
<view class="container"> |
|||
<view class="head"> |
|||
<view> |
|||
<uni-group mode="card"> |
|||
<uni-icons custom-prefix="iconfont" type="icon-dengpao" :color="primaryColor" size="20"></uni-icons><text class="textstyle text-white">小贴士:</text><br/> |
|||
<text class="textstyle">1. 艺术家们可在下方列表选择一个标签当作自定义标签的父标签。</text><br/> |
|||
<text class="textstyle">2. 自定义标签的父标签一次仅可选择一个。</text><br/> |
|||
<text class="textstyle">3. 自定义标签长度最长8个字符。</text><br/> |
|||
<text class="textstyle">4. 一次性推荐最多创建5个自定义标签。</text><br/> |
|||
<text class="textstyle">5. 每个标签顿号隔开。如:花、太阳、雨、你。</text><br/> |
|||
<text class="textstyle">6. 自定义标签审核通过后即有机会展示在图片上传界面。</text><br/> |
|||
<text class="textstyle">7. 大胆发挥你们的想象,尽情开始创作吧!</text><br/> |
|||
</uni-group> |
|||
</view> |
|||
|
|||
<view> |
|||
<uni-group mode="card"> |
|||
<view class="section-content"> |
|||
<view class="segmented-control"> |
|||
<uni-data-checkbox mode="tag" v-model="signListSelected" :localdata="signList" @change="selectedSign" max="1"></uni-data-checkbox> |
|||
</view> |
|||
</view> |
|||
</uni-group> |
|||
<uni-group mode="card"> |
|||
<uni-forms validate-trigger='blur' :modelValue="signCustomList" label-position="top" labelWidth="80" ref="form"> |
|||
<uni-forms-item label="标签名" required name="name"> |
|||
<uni-easyinput v-model="signCustomList.name" placeholder="请选择一个父标签并输入自定义标签名" :clearable="false" :inputBorder="false" trim="all" :maxlength="50"/> |
|||
</uni-forms-item> |
|||
</uni-forms> |
|||
</uni-group> |
|||
|
|||
<view> |
|||
<button class="confirmBtn" size="default" @click="$noMultipleClicks(creatorSign)">确定添加</button> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { |
|||
getSignList |
|||
} from '@/api/index.js' |
|||
import { |
|||
creatorSign |
|||
} from '@/api/userInfo.js' |
|||
export default { |
|||
data() { |
|||
return { |
|||
primaryColor: '#0b6375', |
|||
signList:[], |
|||
signListSelected: undefined, |
|||
noClick:true, //防止重复提交 |
|||
signCustomList:{ |
|||
name: undefined |
|||
}, |
|||
|
|||
rules:{ |
|||
name:{ |
|||
rules: [{ |
|||
required: true, |
|||
errorMessage: '请输入自定义标签' |
|||
}] |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
mounted() { |
|||
//设置校验规则 |
|||
this.$refs.form.setRules(this.rules); |
|||
}, |
|||
created() { |
|||
const userInfo = uni.getStorageSync('userInfo') |
|||
if (!userInfo) { |
|||
console.log('havent userInfo') |
|||
uni.showModal({ |
|||
content: '艺术家账户过期,请重新登录!', |
|||
showCancel: false, |
|||
success() { |
|||
//没有缓存则跳转登录页面 |
|||
uni.reLaunch({ |
|||
url: '/pages/login/login' |
|||
}); |
|||
} |
|||
}); |
|||
} else { |
|||
this.userInfo = userInfo; |
|||
console.log('have userInfo') |
|||
} |
|||
this.getSignList(); |
|||
}, |
|||
methods: { |
|||
|
|||
//选中标签事件 |
|||
selectedSign(e){ |
|||
let that = this; |
|||
that.signListSelected = e.detail.value; |
|||
//console.log('that.signListSelected',that.signListSelected); |
|||
}, |
|||
|
|||
//获取标签列表 |
|||
async getSignList(){ |
|||
let that = this; |
|||
const res = await getSignList({}) |
|||
if (res.data.code === 200) { |
|||
for (let s of res.data.data) { |
|||
let signObject = {} |
|||
signObject.text = "#" +s.name |
|||
signObject.value = s.id |
|||
that.signList.push(signObject) |
|||
} |
|||
|
|||
} else { |
|||
uni.showModal({ |
|||
content: '标签列表加载失败!', |
|||
showCancel: false |
|||
}); |
|||
} |
|||
}, |
|||
|
|||
//艺术家创作标签 |
|||
creatorSign(){ |
|||
const that = this; |
|||
if(that.signCustomList.name == null || that.signCustomList.name == '' || that.signCustomList.name == "" || that.signCustomList.name == undefined){ |
|||
uni.showModal({ |
|||
content: '请输入自定义标签名!', |
|||
showCancel: false |
|||
}); |
|||
}else if(that.signListSelected == null || that.signListSelected == undefined){ |
|||
uni.showModal({ |
|||
content: '请选择父标签后再编辑!', |
|||
showCancel: false |
|||
}); |
|||
}else{ |
|||
uni.showLoading({ |
|||
title: "添加中", |
|||
mask: true, |
|||
success() { |
|||
let param = { |
|||
name: that.signCustomList.name, |
|||
parentId: that.signListSelected |
|||
} |
|||
creatorSign(param).then(res =>{ |
|||
if (res.data.code === 200) { |
|||
uni.hideLoading(); |
|||
//清空选择项 |
|||
that.signCustomList.name = undefined, |
|||
that.signListSelected = undefined, |
|||
//跳转上传页 |
|||
uni.reLaunch({ |
|||
url: '/pages/index/upload/upload', |
|||
success() { |
|||
uni.showToast({ |
|||
title: '添加成功!', |
|||
icon: 'success', |
|||
duration: 1500 |
|||
}) |
|||
} |
|||
}); |
|||
}else{ |
|||
uni.hideLoading(); |
|||
uni.showModal({ |
|||
content: res.data.msg, |
|||
showCancel: false, |
|||
success() { |
|||
//清空选择项 |
|||
that.signCustomList.name = undefined |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.container { |
|||
width: 670rpx; |
|||
height: 100vh; |
|||
margin: 0 auto; |
|||
position: relative; |
|||
} |
|||
|
|||
.textstyle{ |
|||
font-size: 26rpx; |
|||
color: $uni-secondary-color; |
|||
padding-top: 10rpx; |
|||
padding-bottom: 40rpx; |
|||
} |
|||
|
|||
.text-white { |
|||
color: $uni-white !important; |
|||
} |
|||
|
|||
.section-content { |
|||
width: 654rpx; |
|||
margin: 0 auto; |
|||
} |
|||
|
|||
.segmented-control { |
|||
|
|||
|
|||
::v-deep .checklist-box { |
|||
border: none !important; |
|||
background: none !important; |
|||
margin-right: 0 !important; |
|||
} |
|||
|
|||
::v-deep .checklist-text { |
|||
color: $uni-secondary-color !important; |
|||
font-size: 24rpx !important; |
|||
} |
|||
|
|||
::v-deep .is-checked .checklist-text { |
|||
color: $uni-primary !important; |
|||
font-size: 24rpx !important; |
|||
} |
|||
|
|||
::v-deep .is-disable .checklist-text { |
|||
color: $uni-base-color !important; |
|||
font-size: 24rpx !important; |
|||
} |
|||
|
|||
} |
|||
|
|||
.head { |
|||
|
|||
::v-deep .uni-group--card { |
|||
margin: 0 0 40rpx 0 !important; |
|||
background: $uni-bg-base-color; |
|||
} |
|||
|
|||
::v-deep .uni-tag { |
|||
border-width: 2rpx !important; |
|||
} |
|||
|
|||
::v-deep .uni-forms-item__label { |
|||
color: $uni-white; |
|||
} |
|||
|
|||
::v-deep input { |
|||
background: $uni-bg-base-color !important; |
|||
border: 0 !important; |
|||
color: $uni-white !important; |
|||
} |
|||
|
|||
::v-deep .uni-file-picker__header { |
|||
.file-title { |
|||
font-size: 24rpx; |
|||
color: #999; |
|||
} |
|||
.file-count { |
|||
font-size: 24rpx; |
|||
color: #999; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
Loading…
Reference in new issue