Compare commits

...

11 Commits

Author SHA1 Message Date
唐明明
c02632e452 merge 2021-12-24 15:27:34 +08:00
唐明明
8454a0db23 同步 2021-12-24 15:25:07 +08:00
0fa0f4ae3d [发布权证改版] 2021-12-14 16:35:10 +08:00
zhangmanman
faa6c23826 Merge branch 'main' of https://git.yuzhankeji.cn/TmOct5/BlockChainH5 into main 2021-11-30 15:09:57 +08:00
zhangmanman
1e474cb82f [修改任务] 2021-11-30 15:09:46 +08:00
b22df1d58d ['同步线上'] 2021-11-26 12:02:50 +08:00
86ef1ed56a ['同步下'] 2021-11-26 11:52:36 +08:00
47667b9177 [发布商品认证及商品认证展示,详情页面水晶展示位置] 2021-11-26 11:33:51 +08:00
唐明明
4f2b502ce8 代码检查器 2021-11-24 16:05:09 +08:00
唐明明
842332ef6b 钱包提现 2021-11-24 10:48:07 +08:00
c85f1bccc0 同步数据'] 2021-11-24 09:39:59 +08:00
14 changed files with 1404 additions and 1405 deletions

View File

@@ -184,9 +184,12 @@ const managesAttestation = (id) => {
}
// 商品溯源
const managesTracedTo = (id) => {
const managesTracedTo = (id,page) => {
return request({
url: 'mall/goods/' + id + '/trace'
url: 'mall/goods/' + id + '/trace',
data:{
page: page
}
})
}
// 商品第一条溯源
@@ -203,6 +206,12 @@ const shopself = () => {
})
}
// 商品服务类型调整
const goodsExtendsCreate = (id) => {
return request({
url: 'manages/goods/' + id + '/extends/create'
})
}
export {
managesGoodsIndex,
@@ -230,5 +239,6 @@ export {
managesAttestation,
managesTracedTo,
checkmessage,
shopself
shopself,
goodsExtendsCreate
}

View File

@@ -2,8 +2,8 @@
"name" : "链商星球",
"appid" : "__UNI__1F65101",
"description" : "安徽星煌,链商星球商家工具",
"versionName" : "1.2.1",
"versionCode" : 121,
"versionName" : "1.2.2",
"versionCode" : 122,
"transformPx" : false,
/* 5+App */
"app-plus" : {

View File

@@ -39,7 +39,6 @@
"color": "#fff"
}]
}
}
}
}, {

View File

@@ -11,8 +11,10 @@
export default {
data() {
return {
};
},
mounted() {
let i = "dsadsa"
}
}
</script>

View File

@@ -66,7 +66,7 @@
<view class="task-title">{{item.title}}</view>
<view class="task-subtitle">{{item.sub_title}}</view>
<view class="task-label" :class="{'active' : item.is_finish}">
<image v-if="!item.is_finish" class="task-label-img" src="/static/icons/crystal-icon.png" mode="widthFix" />
{{ !item.is_finish ? '+' : ''}}<image v-if="!item.is_finish" class="task-label-img" src="/static/icons/crystal-icon.png" mode="widthFix" />
{{ item.is_finish ? '已完成' : item.tips}}
<block v-if="!item.is_finish">/</block>
<image @click.stop="showHelp(item.title, item.remark)" class="task-label-icon"

View File

@@ -1,104 +1,59 @@
<template>
<view class="GoodsAuthentication">
<view class="authenticationTop">区块链溯源码{{info.token}}</view>
<view class="GoodsAuthentication" v-if="loaded">
<view class="authenticationTop">商品认证溯源码{{token}}</view>
<!-- 商品认证 商品和服务 -->
<view class="authenticationItem">
<view class="authenticationItem" v-if="goods.length>0">
<view class="authenticationItemTitle">权证认证</view>
<view class="authenticationItemcontent" v-if="info.goods">
<view class="authenticationItemcontentItem" v-if="info.goods.name">
<view class="title">{{info.goods.type ===1 ? '权证名称':'项目名称'}}: </view>
<view class="content">{{info.goods.name || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1 && info.goods.batch">
<view class="title">生产批次</view>
<view class="content">{{info.goods.batch || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===2 && info.goods.category">
<view class="title">项目分类</view>
<view class="content">{{info.goods.category || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1 && info.goods.skus[0].unit">
<view class="title">规格</view>
<view class="content">{{info.goods.skus[0].unit || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.skus[0].stock">
<view class="title">数量</view>
<view class="content">{{info.goods.skus[0].stock || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.skus[0].price">
<view class="title">售价</view>
<view class="content">{{info.goods.skus[0].price || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1 && info.goods.producted_at">
<view class="title">生产日期</view>
<view class="content">{{info.goods.producted_at || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.expiried_at">
<view class="title">{{info.goods.type ===1?'保质期':'有效期'}}</view>
<view class="content">{{info.goods.expiried_at || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1 && info.goods.product_name">
<view class="title">生产厂家</view>
<view class="content">{{info.goods.product_name || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1 && info.goods.product_address">
<view class="title">生产地</view>
<view class="content">{{info.goods.product_address || '暂无数据'}}</view>
</view>
<!-- <view class="authenticationItemcontentItem" v-if="info.goods.type ===2 && info.goods.product_name">
<view class="title">供应商</view>
<view class="content">{{info.goods.product_name || '暂无数据'}}</view>
</view> -->
<view class="authenticationItemcontentItem" v-if="info.goods.lisence">
<view class="title">经营许可证</view>
<view class="content">{{info.goods.lisence || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.cover">
<view class="title">实物照片</view>
<image class="img" v-if="info.goods.cover" :src="info.goods.cover"
@click="priveImg(info.goods.cover)" mode="aspectFill" />
<view class="content" v-else>暂无数据</view>
<view class="authenticationItemcontent">
<block v-for="(item,index) in goods" :key='index'>
<view class="authenticationItemcontentItem" >
<view class="title">{{item.title}}</view>
<view class="content" v-if="item.type !== 2">{{item.value || '暂无数据~'}}</view>
<block v-if="item.type === 2">
<image class="img" v-if="item.value" :src="item.value" @click="priveImg(item.value)" mode="aspectFill" />
<view class="content" v-else>暂无数据~</view>
</block>
</view>
</block>
</view>
</view>
<!-- 企业认证 商品和服务通用 -->
<view class="authenticationItem">
<view class="authenticationItemTitle">企业认证</view>
<view class="authenticationItemcontent" v-if="info.certification">
<view class="authenticationItemcontentItem" v-if="info.certification.name ">
<view class="authenticationItemcontent" v-if="certification">
<view class="authenticationItemcontentItem" v-if="certification.name ">
<view class="title">企业名称</view>
<view class="content">{{info.certification.name || '暂无数据'}}</view>
<view class="content">{{certification.name || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.certification.address" >
<view class="authenticationItemcontentItem" v-if="certification.address" >
<view class="title">企业地址</view>
<view class="content">{{info.certification.address || '暂无数据'}}</view>
<view class="content">{{certification.address || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.certification.certification.code">
<view class="authenticationItemcontentItem" v-if="certification.certification.code">
<view class="title">统一信用代码</view>
<view class="content">{{info.certification.certification.code || '暂无数据'}}</view>
<view class="content">{{certification.certification.code || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.certification.industry.title">
<view class="authenticationItemcontentItem" v-if="certification.industry.title">
<view class="title">行业</view>
<view class="content">{{info.certification.industry.title || '暂无数据'}}</view>
<view class="content">{{certification.industry.title || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.certification.range">
<view class="authenticationItemcontentItem" v-if="certification.range">
<view class="title">经营范围</view>
<view class="content">{{info.certification.range || '暂无数据'}}</view>
<view class="content">{{certification.range || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.certification.contack">
<view class="authenticationItemcontentItem" v-if="certification.contack">
<view class="title">联系电话</view>
<u-icon name="phone-fill" v-if='info.certification.contack'
@click="call(info.certification.contact)" color="#2979ff" label-color="#2979ff" label-size="26"
:label='info.certification.contact' />
<u-icon name="phone-fill" v-if='certification.contack'
@click="call(certification.contact)" color="#2979ff" label-color="#2979ff" label-size="26"
:label='certification.contact' />
<view class="content" v-else> 暂无数据 </view>
</view>
<view class="authenticationItemcontentItem" v-if="info.certification.certification.license">
<view class="authenticationItemcontentItem" v-if="certification.certification.license">
<view class="title">营业执照</view>
<image class="img" v-if='info.certification.certification.license'
:src="info.certification.certification.license"
@click="priveImg(info.certification.certification.license)" mode="aspectFill" />
<image class="img" v-if='certification.certification.license'
:src="certification.certification.license"
@click="priveImg(certification.certification.license)" mode="aspectFill" />
<view class="content" v-else>暂无数据</view>
</view>
</view>
@@ -116,18 +71,28 @@
export default {
data() {
return {
info: ''
token:"",
certification: {},
goods:[],
loaded:false
}
},
created() {
managesAttestation(this.$Route.query.id).then(res => {
this.info = res
this.$nextTick(() => {
this.certification = res.certification
this.goods = res.goods
this.token = res.token
this.loaded = true
})
})
},
methods: {
priveImg(img) {
uni.previewImage({
current: img, // 当前显示图片的http链接
longPressActions: {
itemList: []
},
urls: [img] // 需要预览的图片http链接列表
})
},

View File

@@ -14,12 +14,13 @@
<view class="goods-content">
<view class="header">
<view class="flex-box">
<view class="price"><text></text>{{goodsObj.price.show}}</view>
<!-- <view class="sales">累计交易{{goodsObj.sales}}</view> -->
<span style='font-size: 26rpx;color: #999;font-weight: normal;padding-left: 20rpx;' v-if='goodsObj.price.pv>0'>
贡献值:<span>{{goodsObj.price.pv}}</span><image style="width: 20rpx;" src="/static/icons/crystal-icon.png" mode="widthFix" />
<view class="price"><text></text>{{goodsObj.price.show}}
<span class='shuijing' v-if='goodsObj.price.pv>0'>
+ <span> {{goodsObj.price.pv}} </span><image style="width: 20rpx;" src="/static/icons/crystal-icon.png" mode="widthFix" />
</span>
</view>
<!-- <view class="sales">累计交易{{goodsObj.sales}}次</view> -->
</view>
<view class="coupon" v-if="couponSee.length > 0" @click="couponsOpne">
<view class="coupon-list" v-for="(item, index) in couponSee" :key="index">
<view class="coupon-label">
@@ -413,7 +414,9 @@
font-weight: bold;
color: $text-price;
font-size: $title-size + 14;
.shuijing{
font-size: 26rpx;color: #999;font-weight: normal;padding-left: 20rpx;
}
text {
font-size: 70%;
}

View File

@@ -1,56 +1,40 @@
<template>
<view class="content">
<!-- 商品基本信息 -->
<view class="form-block">
<view class="form-upd">
<view class="form-title">产品实物图片<text>点击预览长按删除</text></view>
<view class="form-imgs">
<view
class="item"
v-if="extendCover.length > 0"
@click="openImg"
@longpress="extendCover = []"
>
<image class="item-cover" :src="extendCover[0].showpath" mode="aspectFill"></image>
<block v-for="item in createInfo" :key='item.id'>
<!-- text -->
<view class="form-box inputs-flex" v-if="item.type === 1">
<label class="form-label"><span v-if='item.required'>*</span>{{item.title}}</label>
<input type="text" @input='inputT(item.name,$event)' v-model="createAddInfo[item.name]" :placeholder="`请输入${item.title}`" />
</view>
<view class="item item-add" v-else @click="updCover">
<!-- images -->
<view class="form-upd" v-if="item.type === 2">
<view class="form-title"><span v-if='item.required'>*</span>{{item.title}}<text>点击预览长按删除</text></view>
<view class="form-imgs">
<view class="item" v-if="createAddInfo[item.name].showpath" @click="openImg(item.name)"
@longpress="delImg(item.name)">
<image class="item-cover" :src="createAddInfo[item.name].showpath" mode="aspectFill"></image>
</view>
<view class="item item-add" v-else @click="updCover(item.name)">
<image class="item-cover" src="@/static/icons/add-icon.png" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
<!-- 商品基本信息 -->
<view class="form-block">
<view class="form-box picker-flex">
<label class="form-label">生产日期</label>
<picker mode="date" :value="productedAt" @change="pickerChange($event, 'productedAt')">
<!-- date -->
<view class="form-box picker-flex" v-if="item.type === 3">
<label class="form-label"><span v-if='item.required'>*</span>{{item.title}}</label>
<picker mode="date" :value="createAddInfo[item.name]" @change="pickerChange($event, item.name)">
<view class="picker-text">
{{productedAt || '选择商品生产日期'}}
{{createAddInfo[item.name] || `选择${item.title}`}}
<uni-icons class="picker-icon" type="arrowright" color="#999"></uni-icons>
</view>
</picker>
</view>
<view class="form-box picker-flex">
<label class="form-label">过期时间</label>
<picker mode="date" :value="expiriedAt" @change="pickerChange($event, 'expiriedAt')">
<view class="picker-text">
{{expiriedAt || '选择商品过期时间'}}
<uni-icons class="picker-icon" type="arrowright" color="#999"></uni-icons>
</view>
</picker>
</view>
<view class="form-box inputs-flex">
<label class="form-label">生产商名称</label>
<input type="text" v-model="productName" placeholder="输入商品生产商名称"/>
</view>
<view class="form-box inputs-flex">
<label class="form-label">生产许可证号</label>
<input type="text" v-model="lisence" placeholder="输入商品生产许可证号"/>
</view>
<view class="form-box inputs-flex">
<label class="form-label">生产商地址</label>
<input type="text" v-model="productAddress" placeholder="输入商品生产商地址"/>
</view>
</block>
</view>
<!-- 安全区 -->
<view class="ios-bottom"></view>
@@ -63,28 +47,38 @@
</template>
<script>
import { managesGoodsAuth, managesGoodsExtends } from '@/apis/interfaces/goods'
import { uploads } from '@/apis/interfaces/uploading'
import {
managesGoodsAuth,
managesGoodsExtends,
goodsExtendsCreate
} from '@/apis/interfaces/goods'
import {
uploads
} from '@/apis/interfaces/uploading'
export default {
data() {
return {
productedAt : '', // 生产日期
expiriedAt : '', // 过期时间
lisence : '', // 生产许可证号
productName : '', // 生产商名称
productAddress : '', // 生产商地址
extendCover : [] // 实物图片
createAddInfo: {}, // suoyou
createInfo: [], // 认证信息可以活的
};
},
created() {
goodsExtendsCreate(this.$Route.query.id).then(res => {
this.createInfo = res.length > 0 ? res : []
res.filter(item => {
if (item.type === 2) {
this.$set(this.createAddInfo, item.name, {
path: '',
showpath: ''
})
} else {
this.$set(this.createAddInfo, item.name, '')
}
})
if (this.$Route.query.edit === 'true' || this.$Route.query.edit) {
managesGoodsExtends(this.$Route.query.id).then(res => {
this.productedAt = res.producted_at
this.expiriedAt = res.expiried_at
this.lisence = res.lisence
this.productName = res.product_name
this.productAddress = res.product_address
this.extendCover = [{...res.cover}]
console.log(res)
this.createAddInfo = res
}).catch(err => {
uni.showToast({
title: err.message,
@@ -92,35 +86,52 @@
})
})
}
}).catch(err => {
uni.showToast({
title: err.message,
icon: 'none'
})
})
},
methods: {
// 输入框txt 分别赋值给text
inputT(key, e) {
this.$set(this.createAddInfo, key, e.detail.value)
},
// picker选择
pickerChange(e, key) {
this[key] = e.detail.value
this.$set(this.createAddInfo, key, e.detail.value)
},
// 图片预览
openImg(){
let paths = this.extendCover.map(val => {
return val.showpath
})
openImg(key) {
console.log(key)
uni.previewImage({
urls : paths,
urls: [this.createAddInfo[key].showpath],
current: 0,
indicator: 'number'
})
},
delImg(key){
this.$set(this.createAddInfo, key, {
path: '',
showpath:''
})
},
// 上传图片
updCover(){
updCover(key) {
uni.chooseImage({
count: 1,
success: res => {
uploads([{
uri: res.tempFilePaths[0]
}]).then(updRes => {
this.extendCover.push({
this.$nextTick(() => {
this.$set(this.createAddInfo, key, {
path: updRes.path[0],
showpath: updRes.url[0]
})
})
}).catch(err => {
uni.showToast({
title: err.message,
@@ -132,14 +143,12 @@
},
// 发布产品
submitAdd() {
let submitData = {
producted_at : this.productedAt,
expiried_at : this.expiriedAt,
lisence : this.lisence,
product_name : this.productName,
product_address : this.productAddress,
extend_cover : this.extendCover[0].path
let submitData = this.createAddInfo
this.createInfo.filter(item => {
if (item.type === 2) {
submitData[item.name] = this.createAddInfo[item.name].path
}
})
let submitFund = managesGoodsAuth(this.$Route.query.id, submitData)
submitFund.then(res => {
uni.setStorageSync('refresh', true)
@@ -172,16 +181,19 @@
.content {
padding-bottom: 150rpx;
}
// 表单
.form-block {
background: white;
margin-top: $margin - 10;
.form-box {
position: relative;
padding-left: 240rpx;
padding-right: $padding;
font-size: $title-size-lg;
min-height: 80rpx;
&::after {
position: absolute;
bottom: 0;
@@ -191,25 +203,34 @@
content: " ";
background: $border-color;
}
&:last-child::after {
display: none;
}
.form-label {
position: absolute;
left: $margin;
line-height: 80rpx;
top: 0;
width: calc(240rpx - #{$margin});
span{
color: #f00;
padding-right: $padding * .2;
}
}
}
.inputs-flex {
input {
height: 80rpx;
line-height: 80rpx;
}
}
.input-unit {
padding-right: 200rpx;
.units {
position: absolute;
right: 0;
@@ -222,6 +243,7 @@
box-sizing: border-box;
}
}
.picker-flex {
.picker-text {
position: relative;
@@ -229,41 +251,52 @@
min-height: 80rpx;
padding-right: 80rpx;
@extend .nowrap;
.picker-icon {
right: 0;
position: absolute;
}
}
.picker-switch {
line-height: 80rpx;
min-height: 80rpx;
text-align: right;
margin-right: -15rpx;
switch {
transform: scale(0.7)
}
}
}
.form-upd {
.form-title {
font-size: $title-size-lg;
line-height: 80rpx;
padding: 0 $padding;
span{
color: #f00;
padding-right: $padding * .2;
}
text {
font-size: 80%;
color: $text-gray;
}
}
.form-imgs {
margin-top: -($margin/3);
padding: 0 20rpx 20rpx;
display: flex;
flex-wrap: wrap;
.item {
width: calc(20% - 14rpx);
padding-top: calc(20% - 14rpx);
margin: 7rpx;
position: relative;
.item-cover {
position: absolute;
top: 0;
@@ -272,9 +305,11 @@
height: 100%;
}
}
.item-add {
border: dashed 2rpx $border-color;
box-sizing: border-box;
.item-cover {
top: calc(15% - 2rpx);
left: calc(15% - 2rpx);
@@ -285,6 +320,7 @@
}
}
}
// 发布
.footer {
background: white;
@@ -295,6 +331,7 @@
padding: 20rpx $padding;
box-shadow: 0 0 4rpx 4rpx rgba($color: #000000, $alpha: .02);
z-index: 9;
.footer-btn {
border: none;
border-radius: 0;
@@ -304,61 +341,74 @@
font-weight: bold;
font-size: $title-size;
color: white;
&::after {
border: none;
}
}
}
// 可选服务
.category-popup {
background: #F5F5F5;
padding: 0 $padding * 2 $padding * 2 $padding * 2;
.header {
padding: $padding*2 0;
box-sizing: border-box;
@extend .vertical;
.title {
text-align: center;
font-size: $title-size + 14;
font-weight: bold;
line-height: 90rpx;
}
.subtitle {
font-size: $title-size-m;
color: $text-gray;
text-align: center;
}
}
.category-flex {
max-height: 50vh;
overflow-y: scroll;
.category-flex-item {
margin-bottom: $margin;
padding: $padding;
background: white;
border: solid 1rpx white;
box-sizing: border-box;
.category-name {
padding-bottom: $padding/2;
font-weight: bold;
font-size: $title-size-lg;
}
.category-content {
font-size: $title-size-sm;
color: $text-gray;
@extend .ellipsis;
}
&.show {
color: $text-price;
border: solid 1rpx $text-price;
}
&:last-child {
margin-bottom: 0;
}
}
}
.btns {
padding-top: $padding * 2;
button {
background: $text-price;
border-radius: 0;
@@ -367,6 +417,7 @@
font-size: $title-size;
color: white;
font-weight: bold;
&::after {
border: none;
}

View File

@@ -194,6 +194,13 @@
// 移出删除商品
goodsRemove(id){
let index = this.goods.findIndex(val => val.goods_id == id)
uni.showModal({
title : '温馨提示',
content : '是否确认删除该商品权证,删除后无法恢复',
confirmText : '确认',
cancelText : '再想想',
success : res => {
if(res.confirm){
managesGoodsDelete(id).then(res => {
this.goods.splice(index,1)
if(this.goods.length === 0) this.getList()
@@ -208,6 +215,9 @@
})
})
}
}
})
}
},
onNavigationBarButtonTap() {
this.$Router.push({name: 'goodsaddClassify'})

View File

@@ -1,10 +1,10 @@
<template>
<view class="GoodsAuthentication">
<view class="authenticationTop" v-if='list.length>0'>区块链溯源码:{{info.token}}</view>
<view class="authenticationTop" v-if='list.length>0'>权证溯源码:{{info.token}}</view>
<!-- 进度条 -->
<view v-if='list.length>0' class='timeAxis'>
<view class="box-top" v-for="(item,index) in list" :key="index">
<view class="left-box-top"><span>{{index === list.length - 1?item.note:'权证交易'}}</span>{{item.blockTime}}</view>
<view class="left-box-top"><span>{{item.title}}</span>{{item.blocked_at}}</view>
<!-- 左边 -->
<view class="line" :class="{active:true,none:index==(list.length-1)}">
<!-- 中线 -->
@@ -24,18 +24,26 @@
<view class="content">{{item.goods.skus.unit}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">{{index === list.length - 1?'初始发行量':'交易数量'}}</view>
<view class="title">{{item.type}}数量</view>
<view class="content">{{item.amount}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">区块链高度:</view>
<view class="content">{{item.height}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">交易哈希</view>
<view class="content">{{item.hash}}</view>
<view class="authenticationItemcontentItem" v-if="item.from_user.nickname">
<view class="title">HashFrom</view>
<view class="content"><image :src="item.from_user.avatar" mode="widthFix"/> {{item.from_user.nickname}}</view>
</view>
<view class="zhushi">注释:{{item.note}}</view>
<view class="authenticationItemcontentItem">
<view class="title">Hash</view>
<view class="content hash ellipsis">{{item.hash}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="item.to_user.nickname">
<view class="title">HashTo</view>
<view class="content"><image :src="item.to_user.avatar" mode="widthFix"/>{{item.to_user.nickname}}</view>
</view>
<view class="zhushi">注释:{{item.remark}}</view>
</view>
</view>
</view>
@@ -50,29 +58,39 @@
<script>
import {
managesTracedTo,
checkmessage
managesTracedTo
} from '@/apis/interfaces/goods'
export default {
data() {
return {
list: '',
info: ''
list: [],
info: {},
has_more:true,
page:1
}
},
created() {
managesTracedTo(this.$Route.query.id).then(res1 => {
console.log(res1)
this.list= res1.list
this.info = res1
checkmessage(this.$Route.query.id).then(res => {
this.list.push(res)
this.getList()
},
onReachBottom(){
if(this.has_more){
this.getList()
}else{
uni.showToast({
title:'没有更多',
icon:'none',
mask:true
})
})
}
},
methods: {
getList(){
managesTracedTo(this.$Route.query.id,this.page).then(res1 => {
this.list= this.list.concat(res1.logs.data)
this.info = res1
this.has_more = res1.logs.page.has_more
})
},
priveImg(img) {
uni.previewImage({
current: img, // 当前显示图片的http链接
@@ -207,11 +225,24 @@
.title {
width: 160rpx;
}
.content {
text-overflow: ellipsis;
.hash{
width: calc(100% - 180rpx);
word-wrap: break-word;
word-break: break-word;
}
.content {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
box-sizing: border-box;
color: #999;
width: calc(100% - 180rpx);
image{
width: 40rpx;
height: 40rpx;
border-radius: 50%;
margin-right: $padding * .3;
}
}
.img {

View File

@@ -1,70 +0,0 @@
<<<<<<< HEAD
config.appendPadding = [10, 30, 10, 15]
const chart = new F2.Chart(config);
chart.source(data, {
date: {
range: [0, 1],
type: 'timeCat',
mask: 'MM-DD'
},
value: {
tickCount: 0
}
});
chart.legend({
position: 'bottom',
offsetY: 0,
offsetX: 30
});
chart.area()
.position('date*value')
.color('name', ['#5881d3', '#ca66e0'])
.shape('smooth')
chart.line()
.position('date*value')
.color('name', ['#5881d3', '#ca66e0'])
.shape('smooth', name => {
if (name === '预期收益率') {
return 'line';
}
if (name === '实际收益率') {
return 'line';
}
});
=======
config.appendPadding = [10, 30, 10, 15]
const chart = new F2.Chart(config);
chart.source(data, {
date: {
range: [0, 1],
type: 'timeCat',
mask: 'MM-DD'
},
value: {
tickCount: 0
}
});
chart.legend({
position: 'bottom',
offsetY: 0,
offsetX: 30
});
chart.area()
.position('date*value')
.color('name', ['#5881d3', '#ca66e0'])
.shape('smooth')
chart.line()
.position('date*value')
.color('name', ['#5881d3', '#ca66e0'])
.shape('smooth', name => {
if (name === '预期收益率') {
return 'line';
}
if (name === '实际收益率') {
return 'line';
}
});
>>>>>>> eba5f5995696e08f67df615fb32054bffa94ae34
chart.render();

View File

@@ -14,10 +14,7 @@
<view class="item">
<view style="flex: 1;">
<view class="inputTxt">提现数量</view>
<input class="input_num" ref='inputNumber' v-model="withdraw_input" @input='inputNum'
:value="withdraw_input" type="number"
placeholder-style="color:#999;font-weight:normal; font-size:34rpx;" placeholder="请输入提现数量"
:disabled="balance===0" />
<input class="input_num" ref='inputNumber' :value="withdraw_input" @input='inputNum' type="number" placeholder-style="color:#999;font-weight:normal; font-size:34rpx;" placeholder="请输入提现数量" :disabled="balance === 0" />
</view>
<view class="all" @click="all">全部提现</view>
</view>

View File

@@ -16,5 +16,6 @@ module.exports = {
}, true)
})
]
}
},
lintOnSave:false // 关闭语法检查
}