Compare commits

...

2 Commits

Author SHA1 Message Date
zhangmanman
bcbb98ec4a 更新员工工作台商品详情 2021-09-16 17:55:19 +08:00
zhangmanman
2a10a0dcec 更新员工工作台商品详情 2021-09-16 17:50:51 +08:00
31 changed files with 23116 additions and 4218 deletions

View File

@@ -55,11 +55,19 @@ const employeesPut = (id, data) => {
}) })
} }
// 员工管理工具 手太欠
const employeesTool = () => {
return request({
url: 'companies/employees/permission'
})
}
export { export {
employees, employees,
employeesConfig, employeesConfig,
addEmployees, addEmployees,
employeesInfo, employeesInfo,
employeesDelete, employeesDelete,
employeesPut employeesPut,
employeesTool
} }

View File

@@ -102,6 +102,35 @@ const managesCreate = (data) => {
}) })
} }
// 区块链证书
const managesChain = (id) => {
return request({
url: 'mall/goods/'+ id + '/chain'
})
}
// 商品认证
const managesAttestation = (id) => {
return request({
url: 'mall/goods/'+ id +'/message'
})
}
// 商品溯源
const managesTracedTo = (id) => {
return request({
url: 'mall/goods/'+ id +'/trace'
})
}
// 领取优惠券
const managesCoupons = (id) => {
return request({
url: 'coupons/'+ id +'/grant',
method: 'POST'
})
}
export { export {
mall, mall,
list, list,
@@ -114,5 +143,9 @@ export {
managesGoodsCreateBefore, managesGoodsCreateBefore,
managesGoodsCreate, managesGoodsCreate,
managesCategory, managesCategory,
managesCreate managesCreate,
managesChain,
managesAttestation,
managesTracedTo,
managesCoupons
} }

View File

@@ -1,25 +1,61 @@
<template> <template>
<view class="staff"> <view class="staff">
员工啦 <!-- 员工权限工具 -->
<!-- 员工权限工具 --> <view class="tool-flex store">
<!-- <view class="tool-flex store"> <!-- manage-scan -->
<view class="store-item" @click="$Router.push({name: 'Verification'})"> <view class="store-item" @click="$Router.push({name: 'Verification'})" v-if="toolList.manageScan">
<image class="icon" src="@/static/icons/tool_icon_00.png" mode="aspectFill"></image> <image class="icon" src="@/static/icons/tool_icon_00.png" mode="aspectFill"></image>
<view class="title">扫码验证</view> <view class="title">扫码核销</view>
</view> <image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
<view class="store-item" @click="$Router.push({name: 'GoodsMag'})"> </view>
<image class="icon" src="@/static/icons/tool_icon_01.png" mode="aspectFill"></image>
<view class="title">商品权证</view> <!-- manage-goods -->
</view> <view class="store-item" @click="$Router.push({name: 'GoodsMag'})" v-if="toolList.manageGoods">
<view class="store-item" @click="$Router.push({name: 'CouponsMag'})"> <image class="icon" src="@/static/icons/tool_icon_01.png" mode="aspectFill"></image>
<image class="icon" src="@/static/icons/tool_icon_02.png" mode="aspectFill"></image> <view class="title">商品权证</view>
<view class="title">优惠券管理</view> <image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view> </view>
<view class="store-item" @click="$Router.push({name: 'Collection'})">
<image class="icon" src="@/static/icons/tool_icon_03.png" mode="aspectFill"></image> <!-- manage-employee -->
<view class="title">收款管理</view> <view class="store-item" @click="$Router.push({name: 'Employees'})" v-if="toolList.manageEmployee">
</view> <image class="icon" src="@/static/icons/tool_icon_08.png" mode="aspectFill"></image>
</view> --> <view class="title">员工管理</view>
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view>
<!-- order-shipment -->
<view class="store-item" @click="$Router.push({name: ''})" v-if="toolList.orderShipment">
<image class="icon" src="@/static/icons/tool_icon_04.png" mode="aspectFill"></image>
<view class="title">发货单管理</view>
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view>
<!-- order-refund -->
<view class="store-item" @click="$Router.push({name: ''})" v-if="toolList.orderRefund">
<image class="icon" src="@/static/icons/tool_icon_07.png" mode="aspectFill"></image>
<view class="title">退换货管理</view>
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view>
<!-- manageStore -->
<view class="store-item" @click="$Router.push({name: 'shopLists'})" v-if="toolList.manageStore">
<image class="icon" src="@/static/icons/tool_icon_07.png" mode="aspectFill"></image>
<view class="title">部门/门店</view>
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view>
<!-- manage-coupons -->
<view class="store-item" @click="$Router.push({name: 'CouponsMag'})" v-if="toolList.manageCoupons">
<image class="icon" src="@/static/icons/tool_icon_02.png" mode="aspectFill"></image>
<view class="title">优惠券管理</view>
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view>
<view class="store-item">
<image class="icon" src="@/static/icons/tool_icon_06.png" mode="aspectFill"></image>
<view class="title">营销推广码</view>
</view>
</view>
</view> </view>
</template> </template>
@@ -27,46 +63,12 @@
export default { export default {
name:"store-staff", name:"store-staff",
props:{ props:{
// 店铺统计 // 员工数据
top: { toolList: {},
type: Object, },
default: ()=> { created() {
return { // console.log(this.$props.toolList)
barter_total: 0, }
trading_day : 0,
eb_in : 0,
cash_in : 0
}
}
},
// 店铺概况
middle: {
type: Object,
default: ()=> {
return {
visitors : 0,
clinch : 0,
employees: 0,
sale : 0,
hold : 0,
transfer : 0
}
}
},
// 店铺订单
order: {
type: Object,
default: ()=> {
return {
not_shipped : 0,
already_shipped : 0,
not_pick : 0,
already_pick : 0,
after_sale : 0
}
}
}
}
} }
</script> </script>
@@ -76,7 +78,7 @@
.statistical{ .statistical{
display: flex; display: flex;
background: $text-price; background: $text-price;
padding: $padding ($padding/2) $padding*5; padding: $padding ($padding/2) $padding*2;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
.item{ .item{
@@ -95,15 +97,15 @@
} }
// 店铺概况 // 店铺概况
.general{ .general{
margin: -$margin*4 $margin 0 $margin; margin: -$margin*2 $margin 0 $margin;
.general-box{ .general-box{
background-color: white; background-color: white;
border-radius: $radius/2; border-radius: $radius/2;
display: flex; display: flex;
padding: $padding $padding/2; padding: $padding - 20 $padding/2;
flex-wrap: wrap; flex-wrap: wrap;
.general-item{ .general-item{
width: 33.33%; width: 50%;
text-align: center; text-align: center;
padding: $padding/2; padding: $padding/2;
box-sizing: border-box; box-sizing: border-box;
@@ -122,27 +124,34 @@
} }
// 店铺工具 // 店铺工具
.tool-flex{ .tool-flex{
background: white; margin: $margin*2 $margin $margin;
border-radius: $radius/2;
padding: $padding/2;
margin: $margin;
display: flex;
flex-wrap: wrap;
.store-item{ .store-item{
padding: $padding/2; background: white;
text-align: center; border-radius: $radius/2;
width: 25%; padding: $padding/2;
box-sizing: border-box; box-sizing: border-box;
margin-bottom: $margin;
display: flex;
position: relative;
.icon{ .icon{
width: 68rpx; width: 54rpx;
height: 68rpx; height: 54rpx;
margin-right: $margin - 15;
vertical-align: top; vertical-align: top;
} }
.title{ .title{
font-size: $title-size-sm; line-height: 58rpx;
font-size: $title-size-m;
color: $text-gray; color: $text-gray;
padding-top: $padding/3;
} }
.arrow {
width: 38rpx;
height: 38rpx;
filter: brightness(.9);
position: absolute;
right: $padding - 20;
top: $padding - 6;
}
} }
.order-item{ .order-item{
position: relative; position: relative;

186
pages/goods/attestation.vue Normal file
View File

@@ -0,0 +1,186 @@
<template>
<view class="GoodsAuthentication">
<view class="authenticationTop">区块链溯源码{{info.token}}</view>
<!-- 商品认证 商品和服务 -->
<view class="authenticationItem">
<view class="authenticationItemTitle">商品认证</view>
<view class="authenticationItemcontent" v-if="info.goods">
<view class="authenticationItemcontentItem">
<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">
<view class="title">生产批次</view>
<view class="content">{{info.goods.batch || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===2" >
<view class="title">项目分类</view>
<view class="content">{{info.goods.category || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1">
<view class="title">规格</view>
<view class="content">{{info.goods.skus[0].unit || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">数量</view>
<view class="content">{{info.goods.skus[0].stock || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">售价</view>
<view class="content">{{info.goods.skus[0].price || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1">
<view class="title">生产日期</view>
<view class="content">{{info.goods.producted_at || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" >
<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">
<view class="title">生产厂家</view>
<view class="content">{{info.goods.product_name || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="info.goods.type ===1">
<view class="title">生产地</view>
<view class="content">{{info.goods.product_address || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" >
<view class="title">供应商</view>
<view class="content">{{info.goods.skus[0].price || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" >
<view class="title">经营许可证</view>
<view class="content">{{info.goods.lisence || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem" >
<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>
</view>
</view>
<!-- 企业认证 商品和服务通用 -->
<view class="authenticationItem">
<view class="authenticationItemTitle">企业认证</view>
<view class="authenticationItemcontent" v-if="info.certification">
<view class="authenticationItemcontentItem" >
<view class="title">企业名称</view>
<view class="content">{{info.certification.name || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">企业地址</view>
<view class="content">{{info.certification.address || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">统一信用代码</view>
<view class="content">{{info.certification.certification.code || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">行业</view>
<view class="content">{{info.certification.industry.title || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">经营范围</view>
<view class="content">{{info.certification.range || '暂无数据'}}</view>
</view>
<view class="authenticationItemcontentItem">
<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' />
<view class="content" v-else> 暂无数据 </view>
</view>
<view class="authenticationItemcontentItem">
<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" />
<view class="content" v-else>暂无数据</view>
</view>
</view>
</view>
<!-- 弹窗提示喽 -->
<u-toast ref="uToast" />
</view>
</template>
<script>
import { managesAttestation } from '@/apis/interfaces/goods'
export default {
data() {
return {
info: ''
}
},
created() {
managesAttestation(this.$Route.query.id).then(res=>{
console.log(res)
this.info = res
})
},
methods: {}
}
</script>
<style lang="scss" scoped>
page {
background-color: #F7F7F7;
}
.GoodsAuthentication {
padding: 30rpx;
.authenticationTop {
width: 100%;
padding: 20rpx 50rpx;
background-color: #c82626;
font-size: 26rpx;
color: #fff;
border-radius: 60rpx;
word-break: break-all;
text-align: center;
}
// 商品认证
.authenticationItem{
width: 100%;
min-height: 300rpx;
margin-top: 20rpx;
.authenticationItemTitle{
font-size: 30rpx;
color: #333333;
font-weight: 600;
padding: 30rpx 20rpx;
}
.authenticationItemcontent{
width: 100%;
min-height: 500rpx;
background-color: #fff;
border-radius: 20rpx;
border: solid rgba(200,38,0,.05) 6rpx;
box-shadow:2rpx 2rpx 20rpx 0rpx rgba(200,38,0,.051);
padding:10rpx 20rpx;
.authenticationItemcontentItem{
display: flex;
flex-direction: row;
align-items: flex-start;
justify-content: flex-start;
box-sizing: border-box;
padding: 20rpx 0;
font-size: 24rpx;
.title{
width: 180rpx;
}
.content{
text-overflow: ellipsis;
width: calc( 100% - 180rpx);
}
.img{
width: 340rpx;
height: 200rpx;
}
}
}
}
}
</style>

117
pages/goods/chain.vue Normal file
View File

@@ -0,0 +1,117 @@
<template>
<view class="GoodsChain">
<image src="https://e-chain.cnskl.com/storage/imageresource/chain-bg.png" class='chainBg' />
<view class="chain-content">
<view class="chain-center">
<image src="/static/images/service-logi.png" mode="aspectFill" class="logo" />
<view class="name">易品新境区块链溯源证书</view>
<view class="no">区块链溯源证书{{info.token}}</view>
<view class="content">
<view class="con-item">兹证明</view>
<view class="con-item" v-if="info.company">
{{info.company.name}}产品符合溯源规范认证内容如下特授权其产品在易品新境区块链溯源商城出售
</view>
<view class="con-item">交易哈希: {{info.hash}}</view>
<view class="con-item">区块链高度: {{info.height}}</view>
</view>
<view class="date" v-if="info.applied_at">授权时间: {{info.applied_at}}</view>
<view class="date">有效期至: {{info.ended_at}}</view>
<view class="companyInfo">易品新境区块链有限公司</view>
</view>
</view>
<!-- 弹窗提示喽 -->
<u-toast ref="uToast" />
</view>
</template>
<script>
import { managesChain } from '@/apis/interfaces/goods'
export default {
data() {
return {
info: ''
}
},
created() {
managesChain(this.$Route.query.id).then(res=>{
this.info = res
})
},
methods: {}
}
</script>
<style lang="scss" scoped>
page {
background-color: #F7F7F7;
}
.GoodsChain {
background-color:fff;
width: 100%;
min-height: 100vh;
position: relative;
z-index: 1;
.chainBg{
position: absolute;
width: 100%;
height: 100%;
z-index: 2;
}
.chain-content{
width: 100%;
height: 100vh;
z-index: 2;
padding: 18vh 10vw 15vh 10vw ;
box-sizing: border-box;
position: relative;
z-index: 3;
.chain-center{
width: 100%;
height: 100%;
.logo{
width: 160rpx;
height: 160rpx;
border-radius: 50%;
position: relative;
margin-left: -80rpx;
left: 50%;
margin-bottom: 20rpx;
border: solid rgba($color: #fff, $alpha: .3) 10rpx;
}
.name{
font-size: 40rpx;
font-weight: bold;
text-align: center;
}
.no{
font-size: 26rpx;
font-weight: bold;
text-align: center;
margin-top: 10rpx;
}
.content{
margin-top: 60rpx;
font-size: 28rpx;
padding: 0 20rpx;
.con-item{
margin-bottom: 30rpx;
word-break: break-all;
}
}
.date{
text-align: right;
margin-bottom: 10rpx;
padding-right: 20rpx;
}
.companyInfo{
text-align: right;
margin-bottom: 40rpx;
padding-right: 20rpx;
}
}
}
}
</style>

View File

@@ -45,15 +45,15 @@
<view class="openbtn" @click="onOpenWechat">进店<image class="openbtn-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image></view> <view class="openbtn" @click="onOpenWechat">进店<image class="openbtn-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image></view>
</view> </view>
<view class="tooSee"> <view class="tooSee">
<view class="tooSee-label"> <view class="tooSee-label" @click="$Router.push({name: 'GoodsChain', params: {id: goodsObj.goods_id}})">
区块链证书 区块链证书
<image class="tooSee-label-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image> <image class="tooSee-label-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view> </view>
<view class="tooSee-label"> <view class="tooSee-label" @click="$Router.push({name: 'GoodsAttestation', params: {id: goodsObj.goods_id}})">
商品认证 商品认证
<image class="tooSee-label-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image> <image class="tooSee-label-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view> </view>
<view class="tooSee-label"> <view class="tooSee-label" @click="$Router.push({name: 'GoodstracedTo', params: {id: goodsObj.goods_id}})">
商品溯源 商品溯源
<image class="tooSee-label-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image> <image class="tooSee-label-img" src="../../static/icons/equity_arrow_right.png" mode="aspectFill"></image>
</view> </view>
@@ -129,7 +129,7 @@
{{item.time.interval}} {{item.time.interval}}
</view> </view>
</view> </view>
<view class="coupons-right"> <view class="coupons-right" @click="drawCoupons(item.coupon_id)">
领取 领取
</view> </view>
</view> </view>
@@ -166,7 +166,7 @@
</template> </template>
<script> <script>
import { goods } from '@/apis/interfaces/goods' import { goods, managesCoupons } from '@/apis/interfaces/goods'
import userAuth from '@/public/userAuth' import userAuth from '@/public/userAuth'
export default { export default {
data() { data() {
@@ -181,7 +181,6 @@
}, },
created() { created() {
goods(this.$Route.query.id || 16).then(res=>{ goods(this.$Route.query.id || 16).then(res=>{
console.log(res.coupons)
this.loding = false this.loding = false
this.goodsObj = res this.goodsObj = res
this.identity = res.identity.id || '' this.identity = res.identity.id || ''
@@ -235,6 +234,14 @@
}) })
}, },
// 领取优惠券
drawCoupons(id){
console.log(id)
managesCoupons(id).then(res=>{
console.log(res)
})
},
// 选择优惠券-显示 // 选择优惠券-显示
couponsOpne(){ couponsOpne(){
this.$refs.couponsPopup.open('bottom') this.$refs.couponsPopup.open('bottom')
@@ -305,8 +312,8 @@
font-size: 24rpx; font-size: 24rpx;
border-radius: 50rpx; border-radius: 50rpx;
padding: 0 10rpx; padding: 0 10rpx;
height: 38rpx; height: 34rpx;
line-height: 38rpx; line-height: 36rpx;
margin: 6rpx 10rpx 0 0; margin: 6rpx 10rpx 0 0;
} }
} }
@@ -342,33 +349,36 @@
background-color: #fef2f2; background-color: #fef2f2;
color: #e1293f; color: #e1293f;
border-radius: 8rpx; border-radius: 8rpx;
border: 2rpx solid #e7e2df; border: 1rpx solid #ffe5e5;
padding: $padding - 10; padding: $padding - 15;
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
position: relative; position: relative;
margin-bottom: $margin - 10; margin-bottom: $margin - 10;
.coupon-list { .coupon-list {
font-size: 24rpx; font-size: 22rpx;
.coupon-label { .coupon-label {
display: inline-block; display: inline-block;
border: 2rpx solid #e1293f; border: 1rpx solid #e998a1;
border-radius: 50rpx; border-radius: 50rpx;
padding: 4rpx 15rpx; padding: 0 15rpx;
height: 34rpx;
line-height: 34rpx;
margin-right: $margin - 10; margin-right: $margin - 10;
} }
} }
.coupon-btn { .coupon-btn {
position: absolute; position: absolute;
right: $padding - 10; right: $padding - 20;
top: $padding - 10; top: 0;
font-size: 28rpx; line-height: 60rpx;
font-size: 24rpx;
display: flex; display: flex;
font-weight: 700; font-weight: 700;
.coupon-btn-img { .coupon-btn-img {
width: 30rpx; width: 22rpx;
height: 30rpx; height: 22rpx;
margin-top: 6rpx; margin: 20rpx 0 0 4rpx;
} }
} }
} }
@@ -402,7 +412,7 @@
background: #F8F8F8; background: #F8F8F8;
border-radius: $radius/2; border-radius: $radius/2;
padding: $padding; padding: $padding;
min-height: 160rpx; min-height: 220rpx;
.logo{ .logo{
position: absolute; position: absolute;
left: $margin; left: $margin;
@@ -697,4 +707,9 @@
line-height: 44rpx; line-height: 44rpx;
} }
} }
.serve-cont {
height: 40vh;
overflow-y: scroll;
}
</style> </style>

199
pages/goods/tracedTo.vue Normal file
View File

@@ -0,0 +1,199 @@
<template>
<view class="GoodsAuthentication">
<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>商品交易</span>{{item.blockTime}}</view> <!-- 左边 -->
<view class="line" :class="{active:true,none:index==(list.length-1)}"><!-- 中线 -->
<view class="dot" :class="{active:true}"></view><!-- 圆点 -->
</view>
<!-- 右边 -->
<view class="right-box-top">
<view class="authenticationItem">
<view class="authenticationItemcontent">
<view class="authenticationItemcontentItem" v-if="item.goods">
<view class="title">名称:</view>
<view class="content">{{item.goods.name}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="item.goods">
<view class="title">规格:</view>
<view class="content">{{item.goods.skus[0].unit}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">购买数量:</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>
<view class="zhushi">注释:{{item.note}}</view>
</view>
</view>
</view>
</view>
</view>
<no-list v-if="list.length === 0" name='no-chain' txt="没有任何数据哦~" />
<!-- 弹窗提示喽 -->
<u-toast ref="uToast" />
</view>
</template>
<script>
import { managesTracedTo } from '@/apis/interfaces/goods'
export default {
data() {
return {
list: '',
info: ''
}
},
created() {
console.log(this.$Route.query.id)
managesTracedTo(this.$Route.query.id).then(res=>{
console.log(res)
this.list = res.list
this.info = res
})
},
methods: {}
}
</script>
<style lang="scss" scoped>
page {
background-color: #F7F7F7;
}
.GoodsAuthentication {
padding: 30rpx;
.authenticationTop {
width: 100%;
padding: 20rpx 50rpx;
background-color: #c82626;
font-size: 26rpx;
color: #fff;
border-radius: 60rpx;
word-break: break-all;
text-align: center;
margin-bottom: 40rpx;
}
// 商品认证
.authenticationItem {
width: 100%;
min-height: 300rpx;
.authenticationItemTitle {
font-size: 30rpx;
color: #333333;
font-weight: 600;
padding: 30rpx 20rpx;
}
}
.timeAxis {
margin-top: 60rpx;
}
}
.box-top{
width: 100%;
min-height: 120rpx;
box-sizing: border-box;
display: flex;
flex-direction: row;
.left-box-top{
width: 124rpx;
text-align: center;
color: #cacaca;
font-size: 22rpx;
padding-top: 0;
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: flex-start;
box-sizing: border-box;
span{
font-size: 28rpx;
// font-weight: bold;
color:#333;
padding-bottom: 10rpx;
padding-right: 4rpx;
}
}
.line{
width: 2rpx;
background-color: rgba(228,231,237,1);
margin: 0 20rpx 0 20rpx;
padding-top: 0;
.dot{
width: 20rpx;
height: 20rpx;
background-color: rgba(228,231,237,1);
border-radius: 50%;
position: relative;
left: -10rpx;
}
}
.right-box-top{
flex: 1;
width: calc( 100% - 170rpx);
padding: 0 0 20rpx 0;
// 商品认证
.authenticationItem{
width: 100%;
.authenticationItemcontent{
width: 100%;
background-color: #fff;
border-radius: 20rpx;
border: solid rgba(200,38,0,.05) 6rpx;
box-shadow:2rpx 2rpx 20rpx 0rpx rgba(200,38,0,.051);
padding:10rpx 20rpx;
.zhushi{
font-size: 24rpx;
color: #999;
padding: 10rpx 0;
word-wrap:break-word;
}
.authenticationItemcontentItem{
display: flex;
flex-direction: row;
align-items: flex-start;
justify-content: flex-start;
box-sizing: border-box;
padding: 12rpx 0;
font-size: 26rpx;
.title{
width: 160rpx;
}
.content{
text-overflow: ellipsis;
width: calc( 100% - 180rpx);
word-wrap:break-word;
}
.img{
width: 220rpx;
height: 160rpx;
}
}
}
}
}
}
//激活元素
.active{
background-color: #c82626 !important;
}
// 隐藏元素
.none{
background-color: rgba(0,0,0,0) !important;
}
</style>

View File

@@ -144,6 +144,11 @@
<!-- 推广海报 --> <!-- 推广海报 -->
<view class="poster-text">推广海报</view> <view class="poster-text">推广海报</view>
<carousel :img-list="imgList" url-key="url" @selected="selectedBanner"/> <carousel :img-list="imgList" url-key="url" @selected="selectedBanner"/>
<view class="" @click="outLogin">
临时退出
</view>
</block> </block>
<!-- 版权信息 --> <!-- 版权信息 -->
<view class="copyright">易品新境 beta 1.0.0</view> <view class="copyright">易品新境 beta 1.0.0</view>

View File

@@ -40,7 +40,7 @@
<!-- 老板 --> <!-- 老板 -->
<boss v-if="!employee" :word-data="workbench"/> <boss v-if="!employee" :word-data="workbench"/>
<!-- 员工 --> <!-- 员工 -->
<staff v-if="employee"/> <staff v-if="employee" :tool-list="toolList"/>
</block> </block>
</block> </block>
<!-- 登录提示 --> <!-- 登录提示 -->
@@ -60,6 +60,7 @@
<script> <script>
import { index } from '@/apis/interfaces/store' import { index } from '@/apis/interfaces/store'
import { isallow, appliesQuery } from '@/apis/interfaces/company' import { isallow, appliesQuery } from '@/apis/interfaces/company'
import { employeesTool } from '@/apis/interfaces/employees'
import boss from '@/components/store-boss/store-boss' import boss from '@/components/store-boss/store-boss'
import staff from '@/components/store-staff/store-staff' import staff from '@/components/store-staff/store-staff'
import userAuth from '@/public/userAuth' import userAuth from '@/public/userAuth'
@@ -75,11 +76,20 @@
certification: false, certification: false,
employee : false, employee : false,
workbench : {}, workbench : {},
company : {} company : {},
toolList : ''
} }
}, },
onShow(){ onShow(){
this.getIndex() this.getIndex()
// 获取员工管理列表
if(this.$store.state.token != ''){
if(!this.employee) {
employeesTool().then(res=>{
this.toolList = res.permission
})
}
}
}, },
methods: { methods: {
// 首页数据 // 首页数据

View File

@@ -1,7 +1,7 @@
<template> <template>
<!-- v-if="!loding" --> <!-- v-if="!loding" -->
<view class="content"> <view class="content">
<swiper class="vip-container" previous-margin="45rpx" next-margin="45rpx" circular @change="swiperChange"> <!-- <swiper class="vip-container" previous-margin="45rpx" next-margin="45rpx" circular @change="swiperChange">
<swiper-item class="vip-item"> <swiper-item class="vip-item">
<view> <view>
VIP企业会员 VIP企业会员
@@ -17,14 +17,14 @@
超级会员 超级会员
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper> -->
<!-- 会员类型 --> <!-- 会员类型 -->
<!-- <view class="tabs"> <view class="tabs">
<view class="item" :class="{'show': index === tabsIndex}" v-for="(item, index) in identities" :key="index" @click="onTabs(index)">{{item.name}}</view> <view class="item" :class="{'show': index === tabsIndex}" v-for="(item, index) in identities" :key="index" @click="onTabs(index)">{{item.name}}</view>
</view> --> </view>
<!-- 会员信息 --> <!-- 会员信息 -->
<!-- <view class="cards"> <view class="cards">
<view class="card"> <view class="card">
<view class="card-content"> <view class="card-content">
<image class="cover" src="@/static/dev/good_cover_01.png" mode="aspectFill"></image> <image class="cover" src="@/static/dev/good_cover_01.png" mode="aspectFill"></image>
@@ -35,9 +35,9 @@
</view> </view>
<view class="cards-back"></view> <view class="cards-back"></view>
<image class="cards-angle" src="@/static/imgs/vip-angle-back.png" mode="widthFix"></image> <image class="cards-angle" src="@/static/imgs/vip-angle-back.png" mode="widthFix"></image>
</view> --> </view>
<!-- 会员权限 --> <!-- 会员权限 -->
<!-- <view class="privilege"> <view class="privilege">
<view class="title">开通会员享特权</view> <view class="title">开通会员享特权</view>
<view class="privilege-box"> <view class="privilege-box">
<view class="item" v-for="(item, index) in rights" :key="index" @click="showRemark(item.name, item.remark)"> <view class="item" v-for="(item, index) in rights" :key="index" @click="showRemark(item.name, item.remark)">
@@ -45,18 +45,18 @@
<view class="text">{{item.name}}</view> <view class="text">{{item.name}}</view>
</view> </view>
</view> </view>
</view> --> </view>
<!-- 会员 --> <!-- 会员 -->
<!-- <view class="footer"> <view class="footer">
<button class="footer-btn" type="default" @click="openOrder">{{identities[tabsIndex].price}}/&nbsp;开通</button> <button class="footer-btn" type="default" @click="openOrder">{{identities[tabsIndex].price}}/&nbsp;开通</button>
</view> --> </view>
<!-- 会员服务信息 --> <!-- 会员服务信息 -->
<!-- <view class="notice"> <view class="notice">
<view class="title">开通须知</view> <view class="title">开通须知</view>
<view class="item"> <view class="item">
<text>{{description}}</text> <text>{{description}}</text>
</view> </view>
</view> --> </view>
</view> </view>
</template> </template>
@@ -74,18 +74,18 @@
} }
}, },
created() { created() {
// identities().then(res => { identities().then(res => {
// this.loding = false this.loding = false
// this.user = res.user this.user = res.user
// this.description= res.description this.description= res.description
// this.identities = res.identities this.identities = res.identities
// this.rights = res.identities[0].rights this.rights = res.identities[0].rights
// }).catch(err =>{ }).catch(err =>{
// uni.showToast({ uni.showToast({
// title: err.message, title: err.message,
// icon : 'none' icon : 'none'
// }) })
// }) })
}, },
methods: { methods: {
// 切换开通身份 // 切换开通身份

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 688 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long