积分商城

pull/9/head
zhangyouji 8 months ago
parent 7cf3af639d
commit a0b52f8a4c
  1. 8
      packageElectron/components/autograph.vue
  2. 293
      packageElectron/index.vue
  3. 8
      packageElectron/reconciliationDetails/index.vue
  4. 1222
      packageIntegral/productAddition/index.vue
  5. 89
      packageIntegral/productList/index.vue
  6. 1249
      packageIntegral/productUpdate/index.vue
  7. 15
      pages.json
  8. 6
      pages/home/home.vue

@ -0,0 +1,8 @@
<template>
</template>
<script>
</script>
<style>
</style>

@ -0,0 +1,293 @@
<template>
<view class="container">
<cu-custom class="main-totextbar bg-main-oil" :isBack="true" bgColor="bg-main-oil">
<block slot="backText">返回</block>
<block slot="content">商品列表</block>
</cu-custom>
<view class="options-frame">
<view v-for="item,index in optionsList" :key="index" :class="index == currentIndex ? 'active':''"
@click="selectOptions(index)">{{item.text}}<text>({{item.count}})</text></view>
</view>
<scroll-view v-if="dataList.length" class="list" :scroll-y="true" @scrolltolower="lower">
<view class="item" v-for="item,index in dataList" :key="index">
<view class="introduce">
<image :src="item.url"></image>
<view>{{item.productName}}</view>
<view>规格默认</view>
<view>库存{{item.totalStock}}</view>
</view>
<view class="footer">
<view class="button">删除</view>
<view class="button">编辑</view>
</view>
</view>
<view style="height: 30rpx; background: #fff;"></view>
</scroll-view>
<view v-else class="empty">
<image src="https://publicxingyou.oss-cn-hangzhou.aliyuncs.com/mp-oil/yunsite-empty.png"></image>
<view>暂无对账单~</view>
</view>
</view>
</template>
<script>
import serve from '@/api/packageIntegral/productList.js'
export default {
options: {
styleIsolation: 'shared'
},
data() {
return {
currentIndex: 0,
paramter: {
currentPage: 1,
pagesize: 20,
params: {},
},
dataList: [{},{}],
optionsList: [{
text: '全部',
count: 0,
value: ''
}, {
text: '待确认',
count: 0,
value: ''
}, {
text: '已确认',
count: 0,
value: ''
}, {
text: '金额异常',
count: 0,
value: ''
}],
}
},
onLoad() {
// this.productByPage()
// this.getTopInfo()
},
methods: {
selectOptions(index) {
this.currentIndex = index
console.log(index,'index')
if(index == 0){
this.paramter.params ={}
}else if(index ==1){
this.paramter.params ={}
this.paramter.params.productStatus = 1
}else if(index ==2){
this.paramter.params ={}
this.paramter.params.productStatus = 2
}else if(index ==3){
this.paramter.params ={}
this.paramter.params.auditStatus = 1
}
// this.productByPage()
},
lower() {
this.paramter.currentPage += 1
// this.productByPage()
},
}
}
</script>
<style lang="scss" scoped>
.container {
height: 100vh;
display: flex;
flex-direction: column;
background: #f1f2f7 !important;
>.options-frame {
display: flex;
justify-content: space-between;
margin-top: 43rpx;
padding: 0 31rpx;
>view {
width: 144rpx;
height: 66rpx;
font-size: 25rpx;
line-height: 66rpx;
text-align: center;
color: #000000;
background: #F7F7F7;
>text {
color: #F83D3D;
}
&.active {
color: #FFF;
background: #F83D3D;
>text {
color: #fff;
}
}
}
}
>.list {
margin-top: 35rpx;
flex: 1;
overflow-y: hidden;
.item {
position: relative;
margin-top: 20rpx;
background: #fff;
// min-height: 106rpx;
// border-bottom: 12rpx solid #F1F2F7;
&:nth-of-type(1) {
margin-top: 0
}
.header {
// padding: 26rpx 23rpx 0;
height: 60rpx;
// line-height: 83rpx;
width: 100%;
font-size: 30rpx;
color: #666;
border-top: 1rpx solid #D7D7D7;
.identifying{
width: 120rpx;
height: 60rpx;
line-height: 60rpx;
// background-color: #F83D3D;
color: #FFF;
text-align: center;
border-bottom-right-radius: 30rpx;
}
}
.introduce {
position: relative;
padding: 24rpx 29rpx 31rpx 268rpx;
min-height: 220rpx;
>image {
position: absolute;
top: 13rpx;
left: 34rpx;
width: 220rpx;
height: 220rpx;
// border: 1px solid #333;
}
>view {
&:nth-of-type(1) {
font-size: 28rpx;
color: #000;
}
&:nth-of-type(2),
&:nth-of-type(3) {
margin-top: 11rpx;
font-size: 24rpx;
color: #999;
}
&:nth-of-type(3) {
margin-top: 18rpx;
}
&:nth-of-type(4) {
margin-top: 11rpx;
font-size: 28rpx;
color: #F83D3D;
}
}
}
.examine{
width: 120rpx;
height: 45rpx;
color: #FFF;
text-align: center;
line-height: 45rpx;
position: absolute;
right: 50rpx;
top: 180rpx;
}
>.footer {
position: relative;
height: 58rpx;
line-height: 58rpx;
padding: 0 34rpx 40rpx;
font-size: 32rpx;
color: #000;
font-weight: 550;
.button {
position: absolute;
top: 0;
width: 128rpx;
height: 58rpx;
line-height: 58rpx;
text-align: center;
font-size: 28rpx;
color: #999;
background: #FFF;
border: 1px solid #999;
border-radius: 10rpx;
}
>.button{
&:nth-of-type(1){
right: 360rpx;
}
&:nth-of-type(2){
right: 200rpx;
}
&:nth-of-type(3){
right: 40rpx;
}
}
}
}
}
>.empty {
margin: 218rpx auto 0;
>image {
width: 473rpx;
height: 404rpx;
}
>view {
margin-top: 45rpx;
text-align: center;
font-size: 28rpx;
color: #999;
}
}
}
</style>

@ -0,0 +1,8 @@
<template>
</template>
<script>
</script>
<style>
</style>

File diff suppressed because it is too large Load Diff

@ -10,16 +10,15 @@
@click="selectOptions(index)">{{item.text}}<text>({{item.count}})</text></view>
</view>
<view class="search">
<uni-easyinput prefixIcon="search" borderColor="#DCDFE6" v-model="paramter.params.productName" placeholder="请输入商品名称"
@confirm="search" @clear="search" />
<uni-easyinput prefixIcon="search" borderColor="#DCDFE6" v-model="paramter.params.productName"
placeholder="请输入商品名称" @confirm="search" @clear="search" />
</view>
<scroll-view v-if="dataList.length" class="list" :scroll-y="true" @scrolltolower="lower">
<view class="item" v-for="item,index in dataList" :key="index">
<view class="header">
<view class="identifying"
:style="{background:identifying[item.productStatus].background,
<view class="identifying" :style="{background:identifying[item.productStatus].background,
opacity:identifying[item.productStatus].opacity}">{{item.productStatus =='1'?'已上架':'未上架'}}</view>
</view>
<view class="introduce">
@ -29,7 +28,8 @@
<view>库存{{item.totalStock}}</view>
</view>
<view class="examine" @click="examineDetail(item)"
:style="{background:statusEnum[item.auditStatus].color}" >{{statusEnum[item.auditStatus].value}}</view>
:style="{background:statusEnum[item.auditStatus].color}">{{statusEnum[item.auditStatus].value}}
</view>
<view class="footer">
<view class="button" @click="orderDelete">删除</view>
<view class="button" @click="toEditOrder(item)">编辑</view>
@ -128,7 +128,7 @@
count: 0,
value: ''
}],
identifying:{
identifying: {
1: {
background: '#F83D3D',
opacity: 1,
@ -154,8 +154,8 @@
value: "已驳回"
},
},
examineDetailList:[],
productData:{}
examineDetailList: [],
productData: {}
}
},
@ -167,17 +167,17 @@
methods: {
selectOptions(index) {
this.currentIndex = index
console.log(index,'index')
if(index == 0){
this.paramter.params ={}
}else if(index ==1){
this.paramter.params ={}
console.log(index, 'index')
if (index == 0) {
this.paramter.params = {}
} else if (index == 1) {
this.paramter.params = {}
this.paramter.params.productStatus = 1
}else if(index ==2){
this.paramter.params ={}
} else if (index == 2) {
this.paramter.params = {}
this.paramter.params.productStatus = 2
}else if(index ==3){
this.paramter.params ={}
} else if (index == 3) {
this.paramter.params = {}
this.paramter.params.auditStatus = 1
}
this.productByPage()
@ -197,7 +197,7 @@
// url: `../orderDetails/index?orderId=${item.id}`
// })
// },
getTopInfo(){
getTopInfo() {
serve.getTopInfo(this.paramter).then(res => {
if (res.code === 20000) {
this.optionsList[0].count = res.data.count
@ -233,16 +233,18 @@
this.paramter.currentPage += 1
this.productByPage()
},
examineDetail(item){
serve.productAuditHistory({id:item.id}).then(res=>{
examineDetail(item) {
serve.productAuditHistory({
id: item.id
}).then(res => {
this.examineDetailList = res.data
})
this.$refs.detail.open('center')
},
orderDelete(){
orderDelete() {
this.$refs.delete.open('center')
},
toEditOrder(item){
toEditOrder(item) {
uni.navigateTo({
url: `../productUpdate/index?id=${item.id}`
})
@ -252,16 +254,16 @@
this.productData = item
this.$refs.popup.open('center')
},
submitProduct(){
submitProduct() {
let data = {}
data.id = this.productData.id
if(this.productData.productStatus ==1){
if (this.productData.productStatus == 1) {
data.productStatus = 2
}else if(this.productData.productStatus ==2){
} else if (this.productData.productStatus == 2) {
data.productStatus = 1
}
serve.productStatus(data).then(res=>{
serve.productStatus(data).then(res => {
uni.showToast({
title: res.msg,
icon: 'none'
@ -297,6 +299,7 @@
background: #FFF;
}
>.options-frame {
display: flex;
justify-content: space-between;
@ -354,7 +357,7 @@
color: #666;
border-top: 1rpx solid #D7D7D7;
.identifying{
.identifying {
width: 120rpx;
height: 60rpx;
line-height: 60rpx;
@ -404,7 +407,8 @@
}
}
}
.examine{
.examine {
width: 120rpx;
height: 45rpx;
color: #FFF;
@ -438,14 +442,16 @@
border-radius: 10rpx;
}
>.button{
&:nth-of-type(1){
>.button {
&:nth-of-type(1) {
right: 360rpx;
}
&:nth-of-type(2){
&:nth-of-type(2) {
right: 200rpx;
}
&:nth-of-type(3){
&:nth-of-type(3) {
right: 40rpx;
}
@ -467,30 +473,35 @@
color: #000;
margin-bottom: 20rpx;
}
>uni-icons{
>uni-icons {
position: absolute;
top: 30rpx;
right: 30rpx;
}
>.item{
>.item {
display: flex;
justify-content: space-evenly;
overflow-y: hidden;
font-size: 22rpx;
color: #666;
padding: 10rpx;
view{
view {
width: 240rpx;
line-height: 46rpx;
}
>.status{
>.status {
width: 160rpx;
>view{
>view {
width: 160rpx;
}
}
.header{
.header {
font-size: 32rpx;
color: #000;
}
@ -574,4 +585,4 @@
}
}
</style>
</style>

File diff suppressed because it is too large Load Diff

@ -108,6 +108,21 @@
"style": {}
}]
},
{
"root": "packageElectron",
"pages": [{
"path": "index",
"style": {}
},
{
"path": "reconciliationDetails/index",
"style": {}
}, {
"path": "components/autograph",
"style": {}
}
]
},
{
"root": "packageOrders",
"pages": [{

@ -445,6 +445,12 @@
obj.color = 'blue',
obj.badge = 0
obj.name = list.roleName
}else if (list.roleName == '电子对账单') {
obj.cuIcon = 'punch',
obj.path = '/packageElectron/index',
obj.color = 'blue',
obj.badge = 0
obj.name = list.roleName
}
return obj
},

Loading…
Cancel
Save