You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1356 lines
35 KiB
Vue

1 year ago
<template>
<div class="order-details">
6 months ago
<title-block class="titile-d" title="寄存画作">
1 year ago
<template #left>
1 year ago
<div>
<image style="width: 112rpx;height: 52rpx"
src="https://cdns.fontree.cn/fonchain-main/prod/image/default/artwork/785cf885-c4c9-44b3-8155-4b39988c7ef8.png"
@click="back"></image>
</div>
1 year ago
</template>
</title-block>
6 months ago
<div class="content-list" v-if="listPaintings.length>1">
<div class="wrap1">*请注意确认寄存结束时间</div>
<div class="wrap2">
<div class="wrap2_1" :style="{height:`${listHeight}rpx`}">
<div :class="['item',index===currentIndex?'active':'']" @click="itemClick(index)" v-for="(item,index) of listPaintings">
<div class="item_1">{{index+1}}</div>
<div class="item_2">
<div class="item_2_1">
<img :src="listPaintings[index].fileList1[0].url" alt="">
</div>
<div class="item_2_2">{{listPaintings[index].artworkNum}}</div>
</div>
<div class="item_3">{{listPaintings[index].artworkName}}</div>
<div class="item_4">{{listPaintings[index].warehouseID?addressList.find(x=>x.ID===listPaintings[index].warehouseID).address:''}}</div>
<div class="item_5">{{listPaintings[index].endAt}}</div>
</div>
</div>
<div class="wrap2_2" @click="expand">
6 months ago
<div class="wrap2_2_1" v-if="listPaintings.length>2" :style="{transform:`translate(-50%, -50%) ${isExpand?'rotate(180deg)':''}`}">
6 months ago
</div>
6 months ago
<div class="wrap2_2_2">共计{{listPaintings.length}}幅画作</div>
1 year ago
</div>
6 months ago
</div>
</div>
6 months ago
<scroll-view class="content-center" :style="{marginTop:`${contentListHeight+10}px`}" @scroll="scrollDetail" :scroll-into-view="scrollId" scroll-y="true">
<div class="content-scroll" v-for="(item,index) of listPaintings" :id="`item-${index}`">
<div class="painting-name" v-if="listPaintings.length>1">
<div class="wrap1">画作{{index+1}}</div>
6 months ago
<div class="wrap2" @click="itemDelete(index)"></div>
6 months ago
</div>
6 months ago
<div class="content2">
<u-upload
:fileList="listPaintings[index].fileList1"
@afterRead="(e)=>{afterRead(e,index)}"
@delete="(e)=>{deletePic(e,index)}"
name="6"
multiple
:maxCount="1"
width="404rpx"
height="306rpx"
>
<div style="width: 404rpx;height: 306rpx;background: #000;border-radius: 20rpx;display: flex;flex-direction: column;align-items: center;justify-content: center">
<div style="margin-bottom: 14rpx">
<image style="width: 38.32rpx;height: 38.2rpx" src="../../static/zu142@3x.png"></image>
</div>
<div style="font-size: 32rpx;color: #fff">上传画作图片</div>
</div>
6 months ago
6 months ago
</u-upload>
6 months ago
</div>
6 months ago
<div class="content3">
<div class="prompt">*扫描自动填入</div>
<div class="wrap1">
<div class="wrap1_1">
<div class="wrap1_1_1">画作编号</div>
<div class="wrap1_1_2"></div>
<div class="wrap1_1_3">
6 months ago
<input style="color: #939393;font-size: 24rpx;" v-model="listPaintings[index].artworkNum" placeholder-style="color: #939393;font-size: 24rpx;z-index:0" placeholder="请输入画作编号"/>
6 months ago
</div>
<div class="wrap1_1_4"></div>
</div>
<div class="wrap1_1">
<div class="wrap1_1_1">画作名称</div>
<div class="wrap1_1_2"></div>
<div class="wrap1_1_3">
6 months ago
<input style="color: #939393;font-size: 24rpx;" v-model="listPaintings[index].artworkName" placeholder-style="color: #939393;font-size: 24rpx;z-index:0" placeholder="请输入画作名称"/>
6 months ago
</div>
<div class="wrap1_1_4"></div>
</div>
<div class="wrap1_1">
<div class="wrap1_1_1">画家名称</div>
<div class="wrap1_1_2"></div>
<div class="wrap1_1_3">
6 months ago
<input style="color: #939393;font-size: 24rpx;" v-model="listPaintings[index].artistName" placeholder-style="color: #939393;font-size: 24rpx;z-index:0" placeholder="请输入画家名称"/>
6 months ago
</div>
<div class="wrap1_1_4">
</div>
</div>
<div class="wrap1_1">
<div class="wrap1_1_1">画作平尺数</div>
<div class="wrap1_1_2"></div>
<div class="wrap1_1_3">
6 months ago
<input type="number" style="color: #939393;font-size: 24rpx;" v-model="listPaintings[index].artworkSquareSize" @input="(e)=>{inputConfirm(e,index)}" placeholder-style="color: #939393;font-size: 24rpx;z-index:0" placeholder="请输入画作平尺数"/>
6 months ago
</div>
</div>
6 months ago
</div>
6 months ago
<div class="wrap2"></div>
6 months ago
</div>
6 months ago
<div class="content4">
<div class="wrap1">
6 months ago
<div class="wrap1_1" @click="show2Click(index)">
6 months ago
<div class="wrap1_1_1">寄存地址</div>
<div class="wrap1_1_2"></div>
<div class="wrap1_1_3">
6 months ago
<input style="color: #939393;font-size: 24rpx;" disabled :value="listPaintings[index].warehouseID?addressList.find(x=>x.ID===listPaintings[index].warehouseID).address:''" placeholder-style="color: #939393;font-size: 24rpx;z-index:0"
6 months ago
placeholder="请选择寄存地址"/>
</div>
6 months ago
6 months ago
<div class="wrap1_1_4"></div>
<div class="wrap1_1_5">
<image src="../../static/zu611@3x.png"></image>
</div>
</div>
6 months ago
<div class="wrap1_1" @click="openShow1(index)">
6 months ago
<div class="wrap1_1_1">寄存时长</div>
<div class="wrap1_1_2"></div>
<div class="wrap1_1_3">
6 months ago
<input style="color: #939393;font-size: 24rpx;" :value="listPaintings[index].endAt" disabled placeholder-style="color: #939393;font-size: 24rpx;z-index:0" placeholder="请选择寄存时长"/>
6 months ago
</div>
<div class="wrap1_1_5">
<image src="../../static/zu612@3x.png"></image>
</div>
</div>
6 months ago
</div>
6 months ago
<div class="wrap2"></div>
6 months ago
</div>
6 months ago
<div class="content7" v-if="index===listPaintings.length-1" @click="addPainting">
6 months ago
<div class="wrap1">
<div class="horizontal"></div>
<div class="vertical"></div>
6 months ago
</div>
6 months ago
<div class="wrap2">添加</div>
6 months ago
</div>
6 months ago
</div>
</scroll-view>
<div class="content5" @click="expand1">
<div class="wrap4" v-show="isExpand1" :style="{top:`-${152*listPaintings.length}rpx`}">
<div class="item" v-for="(item,index) in listPaintings">
<div class="item_1">{{index+1}}</div>
<div class="item_2">{{item.artworkNum}}</div>
<div class="item_3">{{item.artworkName}}</div>
<div class="item_4">¥ {{item.expectedPayment}}</div>
</div>
</div>
<div class="wrap3" :style="{transform:`${isExpand1?'':'rotate(180deg)'}`}"> <img src="https://cdns.fontree.cn/fonchain-main/prod/image/default/approval/13639162-2871-4187-abc5-71c2d9f01ac2.png" alt=""></div>
<div class="wrap1">
<div class="wrap1_1">*仅微信付款</div>
<div class="wrap1_2">预计 ¥{{totalMoney||'0'}}</div>
</div>
<div class="wrap2" @click.stop="signContract">确认金额并签署合同</div>
</div>
<u-popup :round="15" :show="show_2" mode="bottom" @open="()=>{show_2=true}">
1 year ago
<div class="poup1" >
1 year ago
<div class="content1">
<div class="wrap1">更换您的寄存地址</div>
1 year ago
<div @click="show_2=false" class="wrap2">
1 year ago
<image
src="https://cdns.fontree.cn/fonchain-main/prod/image/default/artwork/d84593b3-10a8-4d86-be8c-b048b03b22c7.png"></image>
1 year ago
</div>
</div>
<div class="content2"></div>
<div class="content3">
6 months ago
<div v-for="(itemaddress,index1) of addressList" @click="selectAddress(itemaddress)"
:class="[listPaintings[currentIndex].warehouseID===itemaddress.ID?'active':'']" :key="index1" class="wrap1">
6 months ago
<div class="wrap1_1">{{ itemaddress.address }}</div>
<div class="wrap1_2">*剩余{{ itemaddress.leftNum }}位置</div>
1 year ago
</div>
</div>
<div class="content2"></div>
1 year ago
<div class="content6" @click="confirmAddress">
1 year ago
<div class="wrap1">确定</div>
</div>
</div>
6 months ago
</u-popup>
<u-picker v-if="show_1" :show="show_1" ref="uPicker" :columns="columns" @confirm="(e)=>{confirmDate(e)}" @cancel="closeClick" @change="(e)=>{changeHandler(e)}"></u-picker>
1 year ago
<u-loading-page bgColor="rgba(0,0,0,0.5)" :loading="loading" loading-text="..."></u-loading-page>
1 year ago
</div>
</template>
<script>
1 year ago
import http from "@/http/api";
1 year ago
import {postDataByParams} from "../../http/service";
6 months ago
import dayjs from 'dayjs'
import _ from 'lodash';
1 year ago
export default {
name: "order-details",
1 year ago
data() {
1 year ago
return {
6 months ago
itemHeight:0,
scrollId:'item-0',
6 months ago
columns: [
[180],
['*'],
6 months ago
[1,2,3,4,5,6,7,8,9,10,11],
6 months ago
['='],
[180]
],
6 months ago
currentIndex:0,
listPaintings:[{
6 months ago
expectedPayment:'',
6 months ago
fileList1:[],
artworkNum:'',
artworkName:'',
artistName:'',
artworkSquareSize:'',
warehouseID:'',
endAt:''
}],
contentListHeight: 0,
isExpand:false,
isExpand1:false,
listHeight:308,
11 months ago
minDate:'',
show: false,
value1: '',
1 year ago
loading:false,
1 year ago
fileList1:[],
1 year ago
dayMoney:'',
1 year ago
expectedPayment:'',
1 year ago
warehouseID: '',
cycleId: '',
cycleList: [],
addressList: [],
1 year ago
info: {},
show_2: false,
data: [],
show_1: false,
1 year ago
title: 'picker-view',
6 months ago
1 year ago
visible: true,
6 months ago
url: ''
1 year ago
}
},
6 months ago
computed:{
6 months ago
totalMoney(){
return this.listPaintings.reduce((total, item) => {
return total + Number(item.expectedPayment);
}, 0);
},
},
onLoad(load){
if (load.url){
this.url=load.url
this.getDetailUrl()
}
if (load.type==='detail'){
6 months ago
this.getData()
this.type=load.type
}
if (load.type==='confirm'){
this.listPaintings=uni.getStorageSync('orderingInfo').listPaintings
1 year ago
}
6 months ago
if (load.type==='scan'){
this.listPaintings=uni.getStorageSync('scanlist')?.map((x)=>{
return {
...x,
expectedPayment:'',
warehouseID:'',
fileList1:[ { url:x.artworkImg }]
}
})
}
1 year ago
},
1 year ago
mounted() {
1 year ago
this.getCycle()
1 year ago
if (this.$mp.query.url){
this.url=this.$mp.query.url
1 year ago
this.getDetailUrl()
}
1 year ago
this.getAddress()
6 months ago
this.$nextTick(async ()=>{
this.itemHeight= await this.getElementHeight('.content-scroll')
6 months ago
this.getheight()
})
1 year ago
},
1 year ago
methods: {
6 months ago
inputConfirm: _.debounce(function (event,index) {
6 months ago
this.listPaintings[index].artworkSquareSize=event.target.value.replace(/\D/g, '')
let number = parseInt(this.listPaintings[index].artworkSquareSize, 10);
if (isNaN(number) || number <= 0) {
this.listPaintings[index].artworkSquareSize=''
}else {
this.obtainAmount(index)
}
6 months ago
}, 1000),
addDaysToCurrentDate(days) {
return dayjs().add(days, 'day').format('YYYY-MM-DD');
},
6 months ago
show2Click(index){
this.currentIndex=index
this.show_2=true
},
6 months ago
closeClick(){
this.show_1=false
},
getElementHeight(selector) {
return new Promise((resolve, reject) => {
const query = uni.createSelectorQuery();
query.select(selector).boundingClientRect(data => {
if (data) {
resolve(data.height); // 成功获取高度时,通过 Promise 返回
} else {
reject(new Error('无法获取元素高度')); // 如果找不到元素或获取高度失败时,通过 Promise 返回错误
}
}).exec();
});
},
async scrollDetail(event){
const scrollTop = event.detail.scrollTop; // 获取当前滚动位置
const totalHeight = this.listPaintings.length * this.itemHeight;
const scrollPercent = (scrollTop / totalHeight) * 100;
const index = Math.floor(scrollTop / this.itemHeight); // 计算索引
/* console.log(` ${scrollPercent}%`);
console.log(`滚动到了第 ${index} 个元素的位置`);*/
this.currentIndex=index
},
6 months ago
async getData() {
const data1 = {
ID: Number(this.$mp.query.ID)
}
const res1 = await postDataByParams('/api/v2/warehouse/detail', data1)
if (res1.code === 200) {
this.info = res1.data
}
},
6 months ago
changeHandler(e,i) {
6 months ago
const {
columnIndex,
value,
values,
index,
picker = this.$refs.uPicker
} = e
if (columnIndex === 2) {
6 months ago
picker.setColumnValues(this.columns.length-1, [this.columns[2][e.index]*this.columns[0][0]])
6 months ago
}
},
6 months ago
itemDelete(index){
this.listPaintings.splice(index,1)
6 months ago
this.currentIndex=0
6 months ago
this.scrollId=`item-0`
6 months ago
if (this.listPaintings.length===1){
this.contentListHeight=0
}
this.$nextTick(()=>{
this.getheight()
})
},
itemClick(index){
6 months ago
this.scrollId=`item-${index}`
6 months ago
this.currentIndex=index
},
addPainting(){
this.listPaintings.push({
6 months ago
expectedPayment:'',
6 months ago
fileList1:[],
artworkNum:'',
artworkName:'',
artistName:'',
artworkSquareSize:'',
6 months ago
warehouseID: this.listPaintings[0].warehouseID,
endAt:this.listPaintings[0].endAt
6 months ago
})
this.$nextTick(()=>{
this.getheight()
})
this.currentIndex=this.currentIndex+1
},
getheight(){
let query = uni.createSelectorQuery().in(this);
query.select('.content-list').boundingClientRect(data => {
if (data) {
let query = uni.createSelectorQuery().in(this);
query.select('.titile-d').boundingClientRect(data1 => {
if (data1) {
this.contentListHeight=data.bottom-data1.bottom
}
}).exec();
}
}).exec();
},
expand1(){
6 months ago
if (this.isExpand){
this.listHeight=154*2
}
if (this.isExpand){
this.isExpand=false
}
6 months ago
this.isExpand1=!this.isExpand1
},
expand(){
if (this.isExpand){
this.listHeight=154*2
}else {
this.listHeight=154*(this.listPaintings.length<=7?this.listPaintings.length:7)
}
this.isExpand=!this.isExpand
6 months ago
if (this.isExpand1){
this.isExpand1=false
}
6 months ago
},
6 months ago
confirmDate(data,index){
6 months ago
this.listPaintings[this.currentIndex].endAt=data.value[data.value.length-1]
6 months ago
if (this.currentIndex===0){
for (let listPainting of this.listPaintings) {
listPainting.endAt=data.value[data.value.length-1]
}
}
6 months ago
this.obtainAmount(this.currentIndex,this.currentIndex===0)
6 months ago
this.show_1=false
11 months ago
},
6 months ago
openShow1(index){
6 months ago
if (!this.listPaintings[index].artworkSquareSize){
1 year ago
uni.showToast({
title: "请先填写画作平尺数",
duration: 2000,
icon: "none",
});
return
}
6 months ago
this.currentIndex=index
1 year ago
this.show_1=true
},
1 year ago
uploadFilePromise(url, type = null) {
return new Promise((resolve) => {
uni.uploadFile({
url: http.baseUrl + "/api/wxuser/uploadpic",
filePath: url,
name: "file",
success: (res) => {
const { path } = JSON.parse(res.data).data;
resolve(path);
},
});
})
},
1 year ago
deletePic() {
this.fileList1=[]
1 year ago
},
// 新增图片
6 months ago
async afterRead(event,index) {
1 year ago
// 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
let lists = [].concat(event.file)
6 months ago
let fileListLen = this.listPaintings[index].fileList1.length
1 year ago
lists.map((item) => {
6 months ago
this.listPaintings[index].fileList1.push({
1 year ago
...item,
status: 'uploading',
message: '上传中'
})
})
for (let i = 0; i < lists.length; i++) {
1 year ago
const result = await this.uploadFilePromise(lists[i].url, 'check')
6 months ago
let item = this.listPaintings[index].fileList1[fileListLen]
this.listPaintings[index].fileList1.splice(fileListLen, 1, Object.assign(item, {
1 year ago
status: 'success',
message: '',
url: result
}))
fileListLen++
}
},
1 year ago
async signContract(){
1 year ago
const checks = [
{
6 months ago
value: 'fileList1',
message: '画作图片'
1 year ago
},
{
6 months ago
value: 'artworkSquareSize',
message: '画作平尺数'
1 year ago
},
{
6 months ago
value: 'artistName',
message: '画家名称'
1 year ago
},
{
6 months ago
value: 'artworkName',
message: '画作名称'
1 year ago
},
{
6 months ago
value: 'artworkNum',
message: '画作编号'
1 year ago
},{
6 months ago
value: 'warehouseID',
message: '寄存地址'
1 year ago
}, {
6 months ago
value: 'endAt',
message: '择寄存时长'
1 year ago
}]
6 months ago
for (const [index,item] of this.listPaintings.entries()) {
for (const check of checks) {
6 months ago
if (check.value==='fileList1'&&item.fileList1.length<1){
uni.showToast({
title: `请完善第${index+1}条数据的${check.message}`,
icon: 'none'
})
return
}
6 months ago
6 months ago
if (!item[check.value]) {
6 months ago
6 months ago
uni.showToast({
title: `请完善第${index+1}条数据的${check.message}`,
icon: 'none'
})
return
}
6 months ago
if (check.value==='artworkSquareSize'){
if (Number(item[check.value])<1){
uni.showToast({
title: `${index+1}条数据的${check.message}应大于0`,
icon: 'none'
})
return
}
}
1 year ago
}
}
1 year ago
this.loading=true
1 year ago
const data={
6 months ago
orders:this.listPaintings.map((x)=>{
return {
6 months ago
endAt:this.addDaysToCurrentDate(x.endAt),
6 months ago
warehouseID:x.warehouseID,
artworkSquareSize:Number(x.artworkSquareSize),
artworkName: x.artworkName,
6 months ago
artworkImg:x.fileList1?.[0]?.url,
6 months ago
artworkNum:x.artworkNum,
artistName: x.artistName
}
})
1 year ago
}
6 months ago
const res = await postDataByParams('/api/v2/warehouse/fdd/contract/h5',data)
1 year ago
if (res.code===200){
uni.setStorageSync("jumpUrl", res.data.jumpUrl)
1 year ago
uni.setStorageSync("orderingInfo", {
6 months ago
listPaintings: this.listPaintings,
1 year ago
transactionId:res.data.transactionId,
})
1 year ago
uni.navigateTo({
url: `/pages/signwebview/index`,
});
1 year ago
this.loading=false
1 year ago
}
},
6 months ago
async obtainAmount(index,list=false){
let data={
6 months ago
orders:[
6 months ago
{ artworkSquareSize:Number(this.listPaintings[index].artworkSquareSize),
endAt:this.addDaysToCurrentDate(this.listPaintings[index].endAt)
}
6 months ago
]
6 months ago
}
if (list){
data={
orders: this.listPaintings.map((x)=>{
return{
artworkSquareSize:Number(x.artworkSquareSize),
endAt:this.addDaysToCurrentDate(x.endAt)
}
})
}
1 year ago
}
6 months ago
const res = await postDataByParams('/api/v2/warehouse/calculate',data)
1 year ago
if (res.code===200){
6 months ago
if (list){
this.listPaintings.forEach((x,ix)=>{
res.data.orders?.forEach((y,iy)=>{
if (ix===iy){
x.expectedPayment=Number(y.money)
}
})
})
}else {
this.listPaintings[index].expectedPayment=Number(res.data.orders?.[0]?.money)
}
1 year ago
}
},
1 year ago
confirmCycle() {
this.show_1 = false
},
confirmAddress() {
this.show_2 = false
},
6 months ago
selectAddress(item) {
6 months ago
this.listPaintings[this.currentIndex].warehouseID = item.ID
6 months ago
if (this.currentIndex===0){
this.listPaintings.forEach((x)=>{
x.warehouseID=item.ID
})
}
1 year ago
},
selectionPeriod(item) {
this.cycleId = item.ID
},
async getCycle() {
const res = await postDataByParams('/api/warehouse/cycle')
if (res.code === 200) {
this.cycleList = res.data.data
}
},
1 year ago
async getAddress() {
const res = await postDataByParams('/api/warehouse/address')
1 year ago
if (res.code === 200) {
this.addressList = res.data.data
6 months ago
console.log(this.addressList,'addressList')
1 year ago
}
},
async getDetailUrl() {
const data = {
url: this.url
}
const res = await postDataByParams('/api/warehouse/ocr', data)
if (res.code === 200) {
this.info = res.data
1 year ago
this.fileList1=[{url:this.info.artworkImg}]
1 year ago
} else {
uni.showToast({
title: res.msg,
icon: 'none'
})
}
console.log(res, 'getDetailUrl')
},
isDateFont(item, num) {
if (Array.isArray && this.data.length === 3) {
return this.data[num] === item
1 year ago
}
},
1 year ago
changeData(e) {
this.data = [e.detail.value[0] + 1990, e.detail.value[1] + 1, e.detail.value[2] + 1]
1 year ago
},
1 year ago
back() {
uni.navigateBack({delta: 2})
1 year ago
}
}
}
</script>
<style scoped lang="scss">
1 year ago
.fontDate {
1 year ago
color: #fff;
}
1 year ago
1 year ago
/deep/ .pickerSelected {
color: #ffffff !important;
z-index: 2;
}
1 year ago
/deep/ .test {
1 year ago
display: flex;
justify-content: center;
align-items: center;
1 year ago
z-index: -1;
1 year ago
background: #A9D897;
color: #fff;
1 year ago
height: 62rpx;
1 year ago
}
1 year ago
1 year ago
uni-picker-view {
display: block;
}
1 year ago
1 year ago
uni-picker-view .uni-picker-view-wrapper {
display: flex;
position: relative;
overflow: hidden;
height: 100%;
background-color: white;
}
1 year ago
1 year ago
uni-picker-view[hidden] {
display: none;
}
1 year ago
1 year ago
picker-view {
width: 100%;
// height: 600upx;
height: 400rpx;
1 year ago
margin-top: 20 upx;
1 year ago
}
1 year ago
1 year ago
.item {
1 year ago
line-height: 100 upx;
1 year ago
text-align: center;
}
1 year ago
.order-details {
1 year ago
background-image: url("https://cdns.fontree.cn/fonchain-main/prod/image/default/artwork/4fdc9a0f-d72a-46b6-a04d-ed56d5465213.png");
box-sizing: border-box;
overflow: hidden;
padding-left: 30rpx;
padding-right: 30rpx;
background-size: cover;
width: 100vw;
height: 100vh;
6 months ago
position: relative;
display: flex;
flex-direction: column;
.content-list{
6 months ago
6 months ago
top: 130rpx;
z-index: 999;
position: absolute;
width: 686rpx;
margin-top: 34rpx;
text-align: right;
.wrap1{
margin-bottom: 10rpx;
font-size: 24rpx;
color: rgba(78, 150, 77, 1);
}
.wrap2{
box-sizing: border-box;
6 months ago
padding-top: 20rpx;
border: 2rpx dashed rgba(118, 196, 88, 1);
6 months ago
border-radius: 20rpx;
background-color: #fff;
6 months ago
padding-left: 20rpx;
padding-right: 20rpx;
6 months ago
.wrap2_2{
6 months ago
border-top: 1rpx dashed rgba(118, 196, 88, 1);
6 months ago
height: 60rpx;
position: relative;
.wrap2_2_2{
line-height: 60rpx;
color: rgba(118, 196, 88, 1);
font-size: 24rpx;
}
.wrap2_2_1{
6 months ago
6 months ago
position: absolute;
top: 50%;
left: 50%;
6 months ago
transform: translate(-50%, -50%) ;
width: 30rpx;
height: 16rpx;
background-image: url("https://cdns.fontree.cn/fonchain-main/prod/image/default/approval/13639162-2871-4187-abc5-71c2d9f01ac2.png");
6 months ago
background-size: cover;
}
}
.wrap2_1{
z-index: 999;
6 months ago
padding-bottom: 20rpx;
6 months ago
overflow-y: scroll;
.item{
height: 154rpx;
display: flex;
align-items: center;
justify-content: space-between;
padding-left: 10rpx;
padding-right: 10rpx;
&.active{
background-color:rgb(245, 251, 242);
}
.item_5{
width: 134rpx;
color: rgba(98, 98, 98, 1);
font-size: 24rpx;
}
.item_4{
margin-right: 28rpx;
width: 192rpx;
color: rgba(98, 98, 98, 1);
font-size: 24rpx;
}
.item_3{
margin-right: 48rpx;
width: 78rpx;
color: rgba(98, 98, 98, 1);
font-size: 24rpx;
}
.item_2{
margin-right: 24rpx;
width: 68rpx;
display: flex;
flex-direction: column;
align-items: center;
.item_2_2{
color: rgba(147, 147, 147, 1);
font-size: 20rpx;
}
.item_2_1{
background-color: #000;
width: 68rpx;
height: 68rpx;
img{
width: 100%;
height: 100%;
}
}
}
.item_1{
margin-right: 18rpx;
color: rgba(88, 166, 107, 1);
font-size: 24rpx;
display: flex;
justify-content: center;
align-items: center;
width: 36rpx;
height: 36rpx;
border: 5rpx solid rgba(118, 196, 88, 1);
border-radius: 50%;
background: transparent;
}
}
}
}
}
& > .content5 {
1 year ago
align-items: center;
1 year ago
left: 0;
1 year ago
background: #fff;
width: 750rpx;
position: fixed;
bottom: 0;
height: 172rpx;
display: flex;
6 months ago
.wrap4{
z-index: 999;
width: 100%;
background-color: #fff;
position: absolute;
6 months ago
border-top-right-radius: 20rpx;
border-top-left-radius: 20rpx;
border-top: 1px dashed rgba(118, 196, 88, 1);
6 months ago
.item{
height: 152rpx;
display: flex;
align-items: center;
.item_4{
margin-right: 64rpx;
margin-left: auto;
color: rgba(118, 196, 88, 1);
font-size: 24rpx;
font-weight: bold;
}
.item_3{
width: 100rpx;
margin-left: 48rpx;
color: rgba(98, 98, 98, 1);
font-size: 24rpx;
}
.item_2{
width: 100rpx;
margin-left: 34rpx;
color: rgba(98, 98, 98, 1);
font-size: 24rpx;
}
.item_1{
margin-left: 56rpx;
color: rgba(88, 166, 107, 1);
font-size: 24rpx;
display: flex;
justify-content: center;
align-items: center;
width: 36rpx;
height: 36rpx;
border: 5rpx solid rgba(118, 196, 88, 1);
border-radius: 50%;
background: transparent;
}
}
}
.wrap3{
margin-left: 32rpx;
img{
width: 30rpx;
height: 16rpx;
}
}
1 year ago
.wrap2 {
1 year ago
border-radius: 40rpx;
display: flex;
justify-content: center;
align-items: center;
width: 392rpx;
height: 56rpx;
color: #fff;
font-size: 32rpx;
1 year ago
background: #76C458;
1 year ago
}
1 year ago
.wrap1 {
6 months ago
margin-left: 18rpx;
1 year ago
margin-right: 70rpx;
1 year ago
display: flex;
1 year ago
flex-direction: column;
align-items: start;
1 year ago
.wrap1_1 {
1 year ago
color: #939393;
font-size: 16rpx;
}
1 year ago
.wrap1_2 {
1 year ago
font-size: 32rpx;
color: #76C458;
}
}
}
1 year ago
.poup1 {
1 year ago
padding-top: 28rpx;
padding-left: 30rpx;
padding-right: 30rpx;
1 year ago
margin-bottom: 72rpx;
1 year ago
& > .content6 {
1 year ago
margin-top: 26rpx;
display: flex;
justify-content: center;
1 year ago
.wrap1 {
1 year ago
color: #fff;
font-size: 28rpx;
width: 436rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
background: #76C458;
border-radius: 30rpx;
}
}
1 year ago
& > .content3 {
1 year ago
margin-bottom: 70rpx;
1 year ago
.wrap1 {
margin-bottom: 18rpx;
border-radius: 32rpx;
height: 80rpx;
box-sizing: border-box;
border: 2px solid #76C458;
padding-left: 44rpx;
padding-right: 42rpx;
display: flex;
justify-content: space-between;
align-items: center;
.wrap1_2 {
color: #76C458;
font-size: 26rpx;
}
.wrap1_1 {
font-size: 28rpx;
color: #000;
}
&.disabled {
border: none;
background: #D8D8D8;
.wrap1_1 {
color: #626262;
font-size: 28rpx;
}
.wrap1_2 {
color: #626262;
font-size: 16rpx;
}
}
&.active {
background: #76C458;
.wrap1_2 {
color: #fff;
font-size: 26rpx;
}
.wrap1_1 {
font-size: 28rpx;
color: #fff;
}
}
}
1 year ago
}
1 year ago
& > .content1 {
1 year ago
margin-bottom: 36rpx;
display: flex;
justify-content: space-between;
1 year ago
.wrap1 {
1 year ago
color: #000;
font-size: 32rpx;
}
1 year ago
.wrap2 {
image {
1 year ago
width: 48rpx;
height: 48rpx;
}
}
}
1 year ago
& > .content2 {
1 year ago
margin-bottom: 36rpx;
height: 1rpx;
1 year ago
background: #626262;
1 year ago
}
}
1 year ago
.poup {
1 year ago
margin-bottom: 72rpx;
1 year ago
padding-top: 28rpx;
padding-left: 30rpx;
padding-right: 30rpx;
11 months ago
&> .content7{
1 year ago
11 months ago
}
1 year ago
& > .content3 {
1 year ago
display: flex;
flex-wrap: wrap;
1 year ago
.wrap4 {
1 year ago
margin-bottom: 40rpx;
1 year ago
border-radius: 32rpx;
margin-top: 30rpx;
width: 220rpx;
height: 84rpx;
background: #D8D8D8;
display: flex;
flex-direction: column;
1 year ago
align-items: center;
1 year ago
justify-content: center;
1 year ago
.wrap4_1 {
1 year ago
color: #626262;
1 year ago
font-size: 28rpx;
}
1 year ago
.wrap4_2 {
1 year ago
color: #BE7E7E;
font-size: 16rpx;
}
}
1 year ago
.wrap1 {
1 year ago
box-sizing: border-box;
flex-shrink: 0;
margin-right: 16rpx;
font-size: 28rpx;
border-radius: 32rpx;
border: 2rpx solid #76C458;
display: flex;
justify-content: center;
align-items: center;
width: 220rpx;
height: 84rpx;
1 year ago
&:nth-child(3) {
1 year ago
margin-right: 0;
}
1 year ago
&.active {
1 year ago
color: #fff;
1 year ago
background: #76C458;
1 year ago
}
}
}
1 year ago
& > .content6 {
1 year ago
margin-top: 26rpx;
display: flex;
justify-content: center;
1 year ago
.wrap1 {
1 year ago
color: #fff;
font-size: 28rpx;
width: 436rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
background: #76C458;
border-radius: 30rpx;
}
}
1 year ago
& > .content5 {
1 year ago
margin-top: 36rpx;
height: 66rpx;
display: flex;
align-items: center;
border-bottom: 1rpx solid #BABABA;
border-top: 1rpx solid #BABABA;
1 year ago
.wrap1 {
1 year ago
display: flex;
justify-content: center;
align-items: center;
flex-grow: 1;
color: #4E964D;
font-size: 28rpx;
}
1 year ago
.wrap2 {
display: flex;
justify-content: center;
align-items: center;
flex-grow: 1;
color: #4E964D;
font-size: 28rpx;
}
.wrap3 {
1 year ago
display: flex;
justify-content: center;
align-items: center;
flex-grow: 1;
color: #4E964D;
font-size: 28rpx;
}
}
1 year ago
& > .content4 {
1 year ago
font-size: 32rpx;
color: #000;
}
1 year ago
& > .content2 {
1 year ago
margin-bottom: 36rpx;
1 year ago
height: 1rpx;
1 year ago
background: #626262;
1 year ago
}
1 year ago
& > .content1 {
1 year ago
margin-bottom: 36rpx;
display: flex;
justify-content: space-between;
1 year ago
.wrap1 {
1 year ago
color: #000;
font-size: 32rpx;
}
1 year ago
.wrap2 {
image {
1 year ago
width: 48rpx;
height: 48rpx;
}
}
}
}
1 year ago
6 months ago
.content-center{
overflow-y: scroll;
margin-bottom: 180rpx;
6 months ago
.content-scroll{
.painting-name{
margin-top: 48rpx;
6 months ago
align-items: center;
6 months ago
display: flex;
justify-content: space-between;
.wrap1{
color: rgba(0, 0, 0, 1);
font-size: 28rpx;
6 months ago
}
6 months ago
.wrap2{
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
color: rgba(118, 196, 88, 1);
border-radius: 40rpx;
background-color: #fff;
width: 148rpx;
height: 56rpx;
border: 1px solid rgba(118, 196, 88, 1);
6 months ago
}
6 months ago
}
& > .content4 {
margin-bottom: 24rpx;
margin-top: 60rpx;
6 months ago
6 months ago
.wrap1 {
border: 1rpx dashed #DFE9F0;
background-color: #fff;
6 months ago
6 months ago
.wrap1_1 {
position: relative;
height: 114rpx;
display: flex;
align-items: center;
1 year ago
6 months ago
.wrap1_1_4 {
left: 50%;
transform: translateX(-50%);
bottom: 0;
position: absolute;
height: 0;
width: 636rpx;
border-bottom: 0.5px solid #626262;
}
1 year ago
6 months ago
.wrap1_1_5 {
right: 42rpx;
position: absolute;
1 year ago
6 months ago
image {
width: 46.34rpx;
height: 20rpx;
}
}
1 year ago
6 months ago
.wrap1_1_2 {
margin-right: 36rpx;
width: 0;
height: 66rpx;
border-left: 0.5px solid #626262;
1 year ago
1 year ago
}
1 year ago
6 months ago
.wrap1_1_1 {
width: 210rpx;
padding-left: 32rpx;
1 year ago
6 months ago
color: #626262;
font-size: 24rpx;
}
1 year ago
}
6 months ago
}
}
1 year ago
6 months ago
& > .content3 {
margin-top: 60rpx;
1 year ago
6 months ago
.prompt {
color: #4E964D;
font-size: 16rpx;
margin-bottom: 4rpx;
}
.wrap1 {
border: 1rpx dashed #DFE9F0;
background-color: #fff;
.wrap1_1 {
position: relative;
height: 114rpx;
display: flex;
align-items: center;
.wrap1_1_4 {
left: 50%;
transform: translateX(-50%);
bottom: 0;
position: absolute;
height: 0;
width: 636rpx;
border-bottom: 0.5px solid #626262;
}
.wrap1_1_2 {
margin-right: 36rpx;
width: 0;
height: 66rpx;
border-left: 0.5px solid #626262;
}
.wrap1_1_1 {
width: 210rpx;
padding-left: 32rpx;
color: #626262;
font-size: 24rpx;
}
1 year ago
}
}
}
1 year ago
6 months ago
& > .content2 {
1 year ago
6 months ago
display: flex;
justify-content: center;
1 year ago
6 months ago
image {
width: 404rpx;
height: 306rpx;
}
}
&>.content7{
margin: 0 auto;
6 months ago
margin-bottom: 20rpx;
1 year ago
background-color: #fff;
6 months ago
border-radius: 40rpx;
width: 228rpx;
height: 56rpx;
border: 3rpx solid rgba(118, 196, 88, 1);
display: flex;
justify-content: center;
align-items: center;
.wrap2{
color: rgba(118, 196, 88, 1);
font-size: 28rpx;
}
.wrap1{
margin-right: 20rpx;
box-sizing: border-box;
width: 32rpx;
height: 32rpx;
border: 3rpx solid rgba(118, 196, 88, 1);
border-radius: 50%;
background: transparent;
1 year ago
1 year ago
position: relative;
6 months ago
.horizontal {
1 year ago
position: absolute;
6 months ago
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
width: 18rpx;
height: 2rpx;
background-color: rgba(118, 196, 88, 1);
1 year ago
}
1 year ago
6 months ago
.vertical {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
width: 2rpx;
height: 18rpx;
background-color: rgba(118, 196, 88, 1);
1 year ago
}
1 year ago
1 year ago
}
}
}
1 year ago
6 months ago
1 year ago
1 year ago
}
6 months ago
}
1 year ago
</style>