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.
yanzong_qianduan/pages/news/article/add.vue

371 lines
7.8 KiB

10 months ago
<template>
<view class="goods">
<view class="goods-hd">
<view class="item">
<view class="a">文章标题<text>*</text></view>
<view class="b">
<input placeholder="请输入分类名称" type="text"/>
</view>
</view>
<view class="item">
<view class="a">文章分类<text>*</text></view>
<view class="b">
<view class="select">请选择分类名称<u-icon name="arrow-right"></u-icon></view>
</view>
</view>
<view class="items">
<view class="a">封面图片<text>*</text></view>
<view class="c">
<u-upload :action="action" width="180" height="180" :file-list="fileList" :custom-btn="true" max-count="8">
<template v-slot:addBtn>
<view class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150">
<image src="/static/news/icon-upload.png"></image>
<view class="1">上传图片</view>
<view class="l">1/8</view>
</view>
</template>
</u-upload>
</view>
</view>
<view class="items">
<view class="a">文章内容<text>*</text></view>
<view class="b">
<editor id="editor" class="ql-container" placeholder="开始输入..." show-img-size show-img-toolbar
show-img-resize @statuschange="onStatusChange" :read-only="readOnly" @ready="onEditorReady">
</editor>
</view>
</view>
</view>
<view class="goods-fd">
<view class="btn">保存</view>
</view>
<u-popup v-model="isShow" mode="bottom" border-radius="12" mask-close-able="false" closeable>
<view class="goods-classify">
<view class="goods-classify-hd">
<view class="a" @click="openPage(4)"><u-icon name="plus"></u-icon></view></view>
<view class="goods-classify-bd">
<scroll-view scroll-y class="m">
<view class="item" v-for="(a,i) in 10" @click="tabMItem(i)"><view :class="tabMIndex == i?'item-on':''">物流</view></view>
</scroll-view>
</view>
</view>
</u-popup>
</view>
</template>
<script>
export default {
data() {
return {
fileList: [
{
url: 'http://pics.sc.chinaz.com/files/pic/pic9/201912/hpic1886.jpg',
}
],
formats: {},
isShow: true,
checked: false,
value: "",
popupType: 1,
tabLIndex: 0,
tabRIndex: 0,
tabMIndex: 0,
tabMIndex1: 0
};
},
methods: {
onStatusChange(e) {
const formats = e.detail
this.formats = formats
},
onEditorReady() {
uni.createSelectorQuery().select('#editor').context((res) => {
this.editorCtx = res.context
}).exec()
},
openPage(i){
if(i<= 3){
this.isShow = true;
this.popupType=i
}else if(i == 4){
uni.navigateTo({
url: "/pages/news/goods/classification"
})
}
},
tabLItem(i){
this.tabLIndex = i
console.log(this.tabLIndex)
},
tabRItem(i){
this.tabRIndex = i
console.log(this.tabRIndex)
},
tabMItem(i){
this.tabMIndex = i
console.log(this.tabMIndex)
},
tabMItem1(i){
this.tabMIndex1 = i
console.log(this.tabMIndex1)
},
}
}
</script>
<style lang="scss" scoped>
.goods{
.ql-container {
position: absolute;
top: 0;
left: 0;
box-sizing: border-box;
width: 100%;
font-size: 16px;
line-height: 1.5;
overflow: auto;
padding: 10px 10px 20px 10px;
border: 1px solid #ECECEC;
}
padding: 0 0 130rpx;
overflow: hidden;
&-hd{
background-color: #fff;
padding: 0 25rpx 0;
overflow: hidden;
margin-bottom: 20rpx;
.item{
padding: 20rpx 30rpx;
line-height: 50rpx;
font-size: 28rpx;
color: #212121;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #F7F7F7;
.a{
text{
color: #F34A40;
margin-left: 5rpx;
}
}
.b{
font-size: 28rpx;
color: #212121;
display: flex;
align-items: center;
justify-content: flex-end;
flex: 1;
input{
font-size: 28rpx;
color: #212121;
flex: 1;
line-height: 50rpx;
font-size: 28rpx;
color: #212121;
text-align: right;
margin-right: 10rpx;
}
.select{
width: 100%;
display: flex;
align-items: center;
color: #C7C7C7;
justify-content: flex-end;
&-on{
color: #212121;
}
}
}
}
.items{
padding: 20rpx 30rpx;
line-height: 50rpx;
font-size: 28rpx;
color: #212121;
border-bottom: 1px solid #F7F7F7;
position: relative;
.a{
flex: 1;
display: flex;
align-items: center;
input{
flex: 1;
font-size: 26rpx;
color: #212121;
line-height: 50rpx;
margin-left: 20rpx;
}
text{
color: #F34A40;
margin-left: 5rpx;
}
.select{
flex: 1;
}
.tip{
margin-left: 15rpx;
font-size: 24rpx;
font-weight: 500;
color: #9F9F9F;
}
}
.b{
padding-top: 10rpx;
font-size: 24rpx;
font-weight: 400;
color: #C7C7C7;
}
.d{
position: absolute;
right: 20rpx;
top: 20rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 400;
color: #212121;
}
.c{
padding-top: 20rpx;
overflow: hidden;
.slot-btn{
width: 180rpx;
height: 180rpx;
background: #F6F6F6;
border-radius: 10rpx;
border: 1px solid #C0C0C0;
text-align: center;
font-size: 28rpx;
font-weight: 500;
color: #6D6D6D;
.l{
line-height: 30rpx;
}
image{
width: 50rpx;
height: 50rpx;
display: block;
margin: 0 auto;
margin-top: 30rpx;
}
}
}
}
}
&-fd{
width: 100%;
position: fixed;
left: 0;
bottom: 0;
padding: 30rpx;
z-index: 99;
background-color: #fafafa;
box-sizing: border-box;
.btn{
width: 630rpx;
line-height: 88rpx;
background: #F34A40;
border-radius: 88rpx;
text-align: center;
font-size: 28rpx;
font-weight: 500;
color: #FFFFFF;
}
}
&-classify{
width: 100%;
overflow: hidden;
&-hd{
padding: 30rpx 60rpx;
position: relative;
font-size: 32rpx;
font-weight: 500;
color: #303030;
text-align: center;
.a{
display: flex;
align-items: center;
font-size: 28rpx;
font-weight: 500;
color: #FF624F;
position: absolute;
top: 30rpx;
left: 40rpx;
z-index: 2;
}
}
&-bd{
overflow: hidden;
display: flex;
align-items: flex-start;
.l{
width: 210rpx;
height: 560rpx;
background-color: #F7F8FA;
.item{
text-overflow: ellipsis;
overflow: hidden;
height: 70rpx;
font-size: 28rpx;
font-weight: 400;
color: #303030;
white-space: nowrap;
line-height: 70rpx;
padding-left: 30rpx;
box-sizing: border-box;
&-on{
background-color: #fff;
font-weight: 500;
}
}
}
.m{
width: 100%;
text-align: center;
max-height: 560rpx;
.item{
text-overflow: ellipsis;
overflow: hidden;
height: 70rpx;
font-size: 28rpx;
font-weight: 400;
color: #303030;
white-space: nowrap;
line-height: 70rpx;
padding-left: 80rpx;
box-sizing: border-box;
text-align: left;
&-on{
color: #FF624F;
}
}
}
.r{
width: 540rpx;
height: 560rpx;
.item{
text-overflow: ellipsis;
overflow: hidden;
height: 70rpx;
font-size: 28rpx;
font-weight: 400;
color: #303030;
white-space: nowrap;
line-height: 70rpx;
padding-left: 80rpx;
box-sizing: border-box;
&-on{
color: #FF624F;
}
}
}
}
}
}
</style>