商品改为产品
This commit is contained in:
parent
334d5d57a9
commit
0113bba6c0
@ -373,7 +373,7 @@
|
|||||||
// if(selectList.value.length <= 0){
|
// if(selectList.value.length <= 0){
|
||||||
// uni.showToast({
|
// uni.showToast({
|
||||||
// icon: 'error',
|
// icon: 'error',
|
||||||
// title: '请选择商品'
|
// title: '请选择产品'
|
||||||
// })
|
// })
|
||||||
|
|
||||||
// return
|
// return
|
||||||
@ -384,7 +384,7 @@
|
|||||||
|
|
||||||
// 修确认提交
|
// 修确认提交
|
||||||
const onSubmit = async () => {
|
const onSubmit = async () => {
|
||||||
// 已选商品数据处理
|
// 已选产品数据处理
|
||||||
let newArr = []
|
let newArr = []
|
||||||
selectList.value.forEach((item, index) => {
|
selectList.value.forEach((item, index) => {
|
||||||
let obj = {}
|
let obj = {}
|
||||||
|
@ -144,7 +144,7 @@
|
|||||||
name: '跟进'
|
name: '跟进'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '意向商品'
|
name: '意向产品'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '客户信息',
|
name: '客户信息',
|
||||||
|
@ -1,180 +1,180 @@
|
|||||||
<template>
|
<template>
|
||||||
<uv-navbar
|
<uv-navbar
|
||||||
:fixed="false"
|
:fixed="false"
|
||||||
@leftClick="$onClickLeft"
|
@leftClick="$onClickLeft"
|
||||||
bgColor="#09b4f1"
|
bgColor="#09b4f1"
|
||||||
>
|
>
|
||||||
<template v-slot:left>
|
<template v-slot:left>
|
||||||
<uv-icon name="arrow-left" size="19" color="#ffffff"></uv-icon>
|
<uv-icon name="arrow-left" size="19" color="#ffffff"></uv-icon>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:center>
|
<template v-slot:center>
|
||||||
<text style="color:#ffffff">{{title}}</text>
|
<text style="color:#ffffff">{{title}}</text>
|
||||||
</template>
|
</template>
|
||||||
</uv-navbar>
|
</uv-navbar>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<view class="pb-2 flex px-5" style="background-color: #09b4f1;">
|
<view class="pb-2 flex px-5" style="background-color: #09b4f1;">
|
||||||
<uv-search placeholder="搜索商品名称" v-model="keyword" bgColor="#ffffff" :customStyle="customStyle" :show-action="false" @change="onSearch"></uv-search>
|
<uv-search placeholder="搜索产品名称" v-model="keyword" bgColor="#ffffff" :customStyle="customStyle" :show-action="false" @change="onSearch"></uv-search>
|
||||||
<uv-icon name="/static/images/screen.png" :size="26" @click="openSearch"></uv-icon>
|
<uv-icon name="/static/images/screen.png" :size="26" @click="openSearch"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
<view class="wrap">
|
<view class="wrap">
|
||||||
<scroll-view scroll-y class="sv" :style="{height:scrollHeight+'px'}" :scroll-top="scrollTop" @scroll="scroll" @scrolltolower="reachBottom">
|
<scroll-view scroll-y class="sv" :style="{height:scrollHeight+'px'}" :scroll-top="scrollTop" @scroll="scroll" @scrolltolower="reachBottom">
|
||||||
<view class="page-box">
|
<view class="page-box">
|
||||||
<block v-if="list.length > 0">
|
<block v-if="list.length > 0">
|
||||||
<uv-checkbox-group>
|
<uv-checkbox-group>
|
||||||
<view class="client" v-for="(item, index) in list" :key="index">
|
<view class="client" v-for="(item, index) in list" :key="index">
|
||||||
<view class="top">
|
<view class="top">
|
||||||
<view class="left">
|
<view class="left">
|
||||||
<view class="store">
|
<view class="store">
|
||||||
<uv-checkbox
|
<uv-checkbox
|
||||||
disabled
|
disabled
|
||||||
activeColor = "#09b4f1"
|
activeColor = "#09b4f1"
|
||||||
:checked="item.checked"
|
:checked="item.checked"
|
||||||
:name="item.id"
|
:name="item.id"
|
||||||
>{{item.storeName}}</uv-checkbox>
|
>{{item.storeName}}</uv-checkbox>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="content flex-1">
|
<view class="content flex-1">
|
||||||
<view class="title uv-line-2 flex">
|
<view class="title uv-line-2 flex">
|
||||||
<view class="mr-1">规格:{{item.sku}}</view>
|
<view class="mr-1">规格:{{item.sku}}</view>
|
||||||
<uv-text color="#3c9cff" text="选择规格" @click="selectSku(item.id,index)"></uv-text>
|
<uv-text color="#3c9cff" text="选择规格" @click="selectSku(item.id,index)"></uv-text>
|
||||||
</view>
|
</view>
|
||||||
<view class="type">编号:{{item.id}}</view>
|
<view class="type">编号:{{item.id}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="right flex-1">
|
<view class="right flex-1">
|
||||||
<view class="title">库存:{{item.stock}}</view>
|
<view class="title">库存:{{item.stock}}</view>
|
||||||
<view class="decimal">价格:{{item.price}}</view>
|
<view class="decimal">价格:{{item.price}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom">
|
<view class="bottom">
|
||||||
<view class="client_time">添加时间: {{formatDateTime(item.createTime)}}</view>
|
<view class="client_time">添加时间: {{formatDateTime(item.createTime)}}</view>
|
||||||
<view class="flex">
|
<view class="flex">
|
||||||
<view class="btn ml-1 entity" @click.stop="onSelect(item,index)">{{item.checked ? '取消':'选择'}}</view>
|
<view class="btn ml-1 entity" @click.stop="onSelect(item,index)">{{item.checked ? '取消':'选择'}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</uv-checkbox-group>
|
</uv-checkbox-group>
|
||||||
<uv-load-more :status="listStatus" ></uv-load-more>
|
<uv-load-more :status="listStatus" ></uv-load-more>
|
||||||
</block>
|
</block>
|
||||||
<uv-empty text="暂无数据" v-else margin-top="50" mode="list"></uv-empty>
|
<uv-empty text="暂无数据" v-else margin-top="50" mode="list"></uv-empty>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
<view class="bottom_btn flex justify-end">
|
<view class="bottom_btn flex justify-end">
|
||||||
<view class="mr-1">
|
<view class="mr-1">
|
||||||
<uv-button @click="selectedShow" customStyle="padding-left:80rpx;padding-right:80rpx;border:solid" >查看已选</uv-button>
|
<uv-button @click="selectedShow" customStyle="padding-left:80rpx;padding-right:80rpx;border:solid" >查看已选</uv-button>
|
||||||
</view>
|
</view>
|
||||||
<view class="mr-1">
|
<view class="mr-1">
|
||||||
<uv-button color="#09b4f1" customStyle="padding-left:80rpx;padding-right:80rpx;" @click="chosen" >选好了</uv-button>
|
<uv-button color="#09b4f1" customStyle="padding-left:80rpx;padding-right:80rpx;" @click="chosen" >选好了</uv-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 已选产品弹窗 -->
|
<!-- 已选产品弹窗 -->
|
||||||
<uv-popup mode="bottom" round="38" ref="selectedRef" >
|
<uv-popup mode="bottom" round="38" ref="selectedRef" >
|
||||||
<view class="popup-content">
|
<view class="popup-content">
|
||||||
<view class="popup-title">
|
<view class="popup-title">
|
||||||
<view class="" style="width: 45px;">
|
<view class="" style="width: 45px;">
|
||||||
</view>
|
</view>
|
||||||
<text class="">已选产品</text>
|
<text class="">已选产品</text>
|
||||||
<view class="" @click="selectedClose" style="width: 45px;">
|
<view class="" @click="selectedClose" style="width: 45px;">
|
||||||
<uv-icon name="close" color="#909399" size="30"></uv-icon>
|
<uv-icon name="close" color="#909399" size="30"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<scroll-view scroll-y style="height: 960rpx;width: 100%;" @scrolltolower="reachBottom">
|
<scroll-view scroll-y style="height: 960rpx;width: 100%;" @scrolltolower="reachBottom">
|
||||||
<view class="list">
|
<view class="list">
|
||||||
<block v-if="selectList.length > 0">
|
<block v-if="selectList.length > 0">
|
||||||
<view class="mb-4">
|
<view class="mb-4">
|
||||||
<view class="item flex" v-for="(item,index) in selectList" :key="index">
|
<view class="item flex" v-for="(item,index) in selectList" :key="index">
|
||||||
<view class="title pr-1">{{item.storeName}}(规格:{{item.sku}})</view>
|
<view class="title pr-1">{{item.storeName}}(规格:{{item.sku}})</view>
|
||||||
<view class="check-icon">
|
<view class="check-icon">
|
||||||
<uv-button size="mini" type="error" @click="remove(item,index)">删除</uv-button>
|
<uv-button size="mini" type="error" @click="remove(item,index)">删除</uv-button>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<uv-load-more status="nomore" ></uv-load-more>
|
<uv-load-more status="nomore" ></uv-load-more>
|
||||||
</block>
|
</block>
|
||||||
<uv-empty text="暂无数据,请先选择产品" v-else margin-top="50" mode="list"></uv-empty>
|
<uv-empty text="暂无数据,请先选择产品" v-else margin-top="50" mode="list"></uv-empty>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
</uv-popup>
|
</uv-popup>
|
||||||
|
|
||||||
<!-- 选择sku弹窗 -->
|
<!-- 选择sku弹窗 -->
|
||||||
<uv-popup mode="bottom" round="38" ref="selectShowRef" >
|
<uv-popup mode="bottom" round="38" ref="selectShowRef" >
|
||||||
<view class="popup-content">
|
<view class="popup-content">
|
||||||
<view class="popup-title">
|
<view class="popup-title">
|
||||||
<view class="" style="width: 45px;">
|
<view class="" style="width: 45px;">
|
||||||
</view>
|
</view>
|
||||||
<text class="">选择商品规格</text>
|
<text class="">选择产品规格</text>
|
||||||
<view class="" @click="selectShowClose" style="width: 45px;">
|
<view class="" @click="selectShowClose" style="width: 45px;">
|
||||||
<uv-icon name="close" color="#909399" size="30"></uv-icon>
|
<uv-icon name="close" color="#909399" size="30"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<scroll-view scroll-y style="height: 760rpx;width: 100%;" @scrolltolower="reachBottom">
|
<scroll-view scroll-y style="height: 760rpx;width: 100%;" @scrolltolower="reachBottom">
|
||||||
<view class="list">
|
<view class="list">
|
||||||
<block v-if="skuList.length > 0">
|
<block v-if="skuList.length > 0">
|
||||||
<view class="mb-4">
|
<view class="mb-4">
|
||||||
<view class="item flex" v-for="(item,index) in skuList" :key="index" @click="onItem(item,index)">
|
<view class="item flex" v-for="(item,index) in skuList" :key="index" @click="onItem(item,index)">
|
||||||
<view class="title">{{item.sku}}</view>
|
<view class="title">{{item.sku}}</view>
|
||||||
<view class="check-icon">
|
<view class="check-icon">
|
||||||
<uv-icon v-if="item.checked" name="checkmark" color="#09b4f1" size="28"></uv-icon>
|
<uv-icon v-if="item.checked" name="checkmark" color="#09b4f1" size="28"></uv-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</block>
|
</block>
|
||||||
<uv-empty text="暂无数据" v-else mode="list"></uv-empty>
|
<uv-empty text="暂无数据" v-else mode="list"></uv-empty>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
</uv-popup>
|
</uv-popup>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import {
|
||||||
ref,
|
ref,
|
||||||
unref,
|
unref,
|
||||||
computed
|
computed
|
||||||
} from 'vue'
|
} from 'vue'
|
||||||
import { onLoad,onShow,onReady } from '@dcloudio/uni-app'
|
import { onLoad,onShow,onReady } from '@dcloudio/uni-app'
|
||||||
import {
|
import {
|
||||||
getProducts,
|
getProducts,
|
||||||
getProductsSku
|
getProductsSku
|
||||||
} from '@/api/business'
|
} from '@/api/business'
|
||||||
import AddressSelect from '@/components/AddressSelect/index.vue'
|
import AddressSelect from '@/components/AddressSelect/index.vue'
|
||||||
import { formatDateTime,prePage } from '@/utils/util'
|
import { formatDateTime,prePage } from '@/utils/util'
|
||||||
import { useMainStore } from '@/store/store'
|
import { useMainStore } from '@/store/store'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
const main = useMainStore()
|
const main = useMainStore()
|
||||||
const title = ref('选择商品')
|
const title = ref('选择产品')
|
||||||
const keyword = ref('')
|
const keyword = ref('')
|
||||||
const selected = ref(false)
|
const selected = ref(false)
|
||||||
const priceShow = ref(false)
|
const priceShow = ref(false)
|
||||||
const oldScrollTop = ref(0)
|
const oldScrollTop = ref(0)
|
||||||
const scrollTop = ref(-1)
|
const scrollTop = ref(-1)
|
||||||
const skuList = ref([])
|
const skuList = ref([])
|
||||||
|
|
||||||
// search: {
|
// search: {
|
||||||
// fontSise: '18px'
|
// fontSise: '18px'
|
||||||
// },
|
// },
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
const selectList = ref([])
|
const selectList = ref([])
|
||||||
const consentShow = ref(false)
|
const consentShow = ref(false)
|
||||||
const refund_type = ref(1)
|
const refund_type = ref(1)
|
||||||
const current = ref(0)
|
const current = ref(0)
|
||||||
const pH = ref(0)
|
const pH = ref(0)
|
||||||
const dx = ref(0)
|
const dx = ref(0)
|
||||||
const scrollHeight = ref(0)
|
const scrollHeight = ref(0)
|
||||||
const page = ref(1)
|
const page = ref(1)
|
||||||
const pageSize = ref(10)
|
const pageSize = ref(10)
|
||||||
const lastPage = ref(false)
|
const lastPage = ref(false)
|
||||||
const listStatus = ref('loadmore')
|
const listStatus = ref('loadmore')
|
||||||
const status = ref('')
|
const status = ref('')
|
||||||
const order_id = ref('')
|
const order_id = ref('')
|
||||||
const thisIndex = ref(0)
|
const thisIndex = ref(0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
onReady(()=>{
|
onReady(()=>{
|
||||||
uni.getSystemInfo({
|
uni.getSystemInfo({
|
||||||
success(res) {
|
success(res) {
|
||||||
@ -186,292 +186,292 @@ onReady(()=>{
|
|||||||
}).exec()
|
}).exec()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
onLoad((e) => {
|
onLoad((e) => {
|
||||||
//getBusinessList();
|
//getBusinessList();
|
||||||
})
|
})
|
||||||
|
|
||||||
onShow(()=>{
|
onShow(()=>{
|
||||||
getProductList()
|
getProductList()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 选中一个
|
// 选中一个
|
||||||
const selectShowRef = ref()
|
const selectShowRef = ref()
|
||||||
const onSelect = (val,i)=> {
|
const onSelect = (val,i)=> {
|
||||||
if(!val.sku){
|
if(!val.sku){
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '请先选择商品规格',
|
title: '请先选择产品规格',
|
||||||
icon: 'error',
|
icon: 'error',
|
||||||
duration: 2000
|
duration: 2000
|
||||||
})
|
})
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
list.value.forEach((item,index) => {
|
list.value.forEach((item,index) => {
|
||||||
if(val.id == item.id) {
|
if(val.id == item.id) {
|
||||||
item.checked = item.checked ? !item.checked : true
|
item.checked = item.checked ? !item.checked : true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// 添加已选
|
// 添加已选
|
||||||
if(list.value[i].checked == true) {
|
if(list.value[i].checked == true) {
|
||||||
// 添加已选中
|
// 添加已选中
|
||||||
selectList.value.push(list.value[i])
|
selectList.value.push(list.value[i])
|
||||||
} else {
|
} else {
|
||||||
// 删除取消选中
|
// 删除取消选中
|
||||||
selectList.value.forEach((item,i) => {
|
selectList.value.forEach((item,i) => {
|
||||||
if(item.id == val.id) {
|
if(item.id == val.id) {
|
||||||
selectList.value.splice(i, 1)
|
selectList.value.splice(i, 1)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('selectList:',selectList.value)
|
console.log('selectList:',selectList.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectSku = async(val,index) => {
|
const selectSku = async(val,index) => {
|
||||||
thisIndex.value = index
|
thisIndex.value = index
|
||||||
skuList.value = await getProductsSku({id:val})
|
skuList.value = await getProductsSku({id:val})
|
||||||
unref(selectShowRef).open()
|
unref(selectShowRef).open()
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectShowClose = () => {
|
const selectShowClose = () => {
|
||||||
unref(selectShowRef).close()
|
unref(selectShowRef).close()
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectedRef = ref()
|
const selectedRef = ref()
|
||||||
const selectedShow = () => {
|
const selectedShow = () => {
|
||||||
unref(selectedRef).open()
|
unref(selectedRef).open()
|
||||||
}
|
}
|
||||||
|
|
||||||
const selectedClose = () => {
|
const selectedClose = () => {
|
||||||
unref(selectedRef).close()
|
unref(selectedRef).close()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 选择客户
|
// 选择客户
|
||||||
const onItem = (val,i) => {
|
const onItem = (val,i) => {
|
||||||
skuList.value.forEach((item,index) => {
|
skuList.value.forEach((item,index) => {
|
||||||
if(val.id == item.id) {
|
if(val.id == item.id) {
|
||||||
item.checked = true
|
item.checked = true
|
||||||
} else {
|
} else {
|
||||||
item.checked = false
|
item.checked = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
list.value[thisIndex.value].sku = val.sku
|
list.value[thisIndex.value].sku = val.sku
|
||||||
list.value[thisIndex.value].productAttrUnique = val.unique
|
list.value[thisIndex.value].productAttrUnique = val.unique
|
||||||
|
|
||||||
selectShowClose()
|
selectShowClose()
|
||||||
}
|
}
|
||||||
|
|
||||||
//移除已选产品
|
//移除已选产品
|
||||||
const remove = (val,index)=> {
|
const remove = (val,index)=> {
|
||||||
list.value.forEach((i,index) => {
|
list.value.forEach((i,index) => {
|
||||||
if(val.id == i.id) {
|
if(val.id == i.id) {
|
||||||
i.checked = false
|
i.checked = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
selectList.value.splice(index, 1)
|
selectList.value.splice(index, 1)
|
||||||
}
|
}
|
||||||
// 选好了
|
// 选好了
|
||||||
const chosen = () => {
|
const chosen = () => {
|
||||||
// 储存
|
// 储存
|
||||||
main.SET_SELECT_PRODUCT(selectList.value)
|
main.SET_SELECT_PRODUCT(selectList.value)
|
||||||
uni.navigateBack();
|
uni.navigateBack();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 页面数据
|
// 页面数据
|
||||||
const getProductList = async(isNextPage,pages) => {
|
const getProductList = async(isNextPage,pages) => {
|
||||||
await getProducts({
|
await getProducts({
|
||||||
pageNo: page.value,
|
pageNo: page.value,
|
||||||
pageSize: pageSize.value,
|
pageSize: pageSize.value,
|
||||||
storeName:keyword.value,
|
storeName:keyword.value,
|
||||||
isShow: 1
|
isShow: 1
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if(res) {
|
if(res) {
|
||||||
res.list.forEach((item,index)=>{
|
res.list.forEach((item,index)=>{
|
||||||
//item.create_time = this.timeFormats(item.create_time)
|
//item.create_time = this.timeFormats(item.create_time)
|
||||||
item.checked = false
|
item.checked = false
|
||||||
// 设置默认数据
|
// 设置默认数据
|
||||||
item.nums = 1
|
item.nums = 1
|
||||||
item.remarks = ''
|
item.remarks = ''
|
||||||
selectList.value.forEach((i,index) => {
|
selectList.value.forEach((i,index) => {
|
||||||
if(i.id == item.id) {
|
if(i.id == item.id) {
|
||||||
item.checked = true
|
item.checked = true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
if (res.list.length < 10) {
|
if (res.list.length < 10) {
|
||||||
listStatus.value = 'nomore'
|
listStatus.value = 'nomore'
|
||||||
}
|
}
|
||||||
if(res.list.length == 0) {
|
if(res.list.length == 0) {
|
||||||
lastPage.value = true
|
lastPage.value = true
|
||||||
}
|
}
|
||||||
// 第二页开始
|
// 第二页开始
|
||||||
if(isNextPage) {
|
if(isNextPage) {
|
||||||
list.value = list.value.concat(res.list)
|
list.value = list.value.concat(res.list)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
list.value = res.list
|
list.value = res.list
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// scroll 滚动记录
|
// scroll 滚动记录
|
||||||
const scroll = (e) => {
|
const scroll = (e) => {
|
||||||
oldScrollTop.value = e.detail.scrollTop
|
oldScrollTop.value = e.detail.scrollTop
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 滚动到底部
|
// 滚动到底部
|
||||||
const reachBottom = () => {
|
const reachBottom = () => {
|
||||||
if(lastPage.value || listStatus.value == 'loading') return ;
|
if(lastPage.value || listStatus.value == 'loading') return ;
|
||||||
this.listStatus = 'loading'
|
this.listStatus = 'loading'
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if(lastPage.value) return ;
|
if(lastPage.value) return ;
|
||||||
getProductList(true,++page.value)
|
getProductList(true,++page.value)
|
||||||
if(list.value.length >= 10) {
|
if(list.value.length >= 10) {
|
||||||
listStatus.value = 'loadmore'
|
listStatus.value = 'loadmore'
|
||||||
}else {
|
}else {
|
||||||
listStatus.value = 'loading'
|
listStatus.value = 'loading'
|
||||||
}
|
}
|
||||||
}, 1200)
|
}, 1200)
|
||||||
}
|
}
|
||||||
// 点击搜索
|
// 点击搜索
|
||||||
const onSearch = () => {
|
const onSearch = () => {
|
||||||
page.value = 1
|
page.value = 1
|
||||||
getProductList()
|
getProductList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.container {
|
.container {
|
||||||
background-color: #F7F7F7;
|
background-color: #F7F7F7;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
}
|
}
|
||||||
.page-box {
|
.page-box {
|
||||||
padding: 20rpx 20rpx 160rpx;
|
padding: 20rpx 20rpx 160rpx;
|
||||||
}
|
}
|
||||||
.client {
|
.client {
|
||||||
width: 710rpx;
|
width: 710rpx;
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
border-radius: 20rpx;
|
border-radius: 20rpx;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 20rpx;
|
padding: 20rpx;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
.top {
|
.top {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.left {
|
.left {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.store {
|
.store {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right {
|
.right {
|
||||||
color: #FF7159;
|
color: #FF7159;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.item {
|
.item {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin: 20rpx 0 0;
|
margin: 20rpx 0 0;
|
||||||
.content {
|
.content {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
.title {
|
.title {
|
||||||
line-height: 50rpx;
|
line-height: 50rpx;
|
||||||
}
|
}
|
||||||
.type {
|
.type {
|
||||||
margin: 10rpx 0;
|
margin: 10rpx 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.right {
|
.right {
|
||||||
margin-left: 10rpx;
|
margin-left: 10rpx;
|
||||||
.title {
|
.title {
|
||||||
line-height: 50rpx;
|
line-height: 50rpx;
|
||||||
}
|
}
|
||||||
.decimal {
|
.decimal {
|
||||||
margin: 10rpx 0;
|
margin: 10rpx 0;
|
||||||
}
|
}
|
||||||
.number {
|
.number {
|
||||||
color: $uv-tips-color;
|
color: $uv-tips-color;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.bottom {
|
.bottom {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.client_time {
|
.client_time {
|
||||||
color: #777;
|
color: #777;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
}
|
}
|
||||||
.btn {
|
.btn {
|
||||||
line-height: 60rpx;
|
line-height: 60rpx;
|
||||||
width: 160rpx;
|
width: 160rpx;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: $uv-info-dark;
|
color: $uv-info-dark;
|
||||||
}
|
}
|
||||||
.entity {
|
.entity {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #09b4f1;
|
background-color: #09b4f1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.wrap {
|
.wrap {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bottom_btn {
|
.bottom_btn {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
padding: 28rpx 10rpx 45rpx;
|
padding: 28rpx 10rpx 45rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
}
|
}
|
||||||
.popup-content {
|
.popup-content {
|
||||||
.popup-title {
|
.popup-title {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
position: relative;
|
position: relative;
|
||||||
font-size: 35rpx;
|
font-size: 35rpx;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: 50px;
|
height: 50px;
|
||||||
padding-right: 25rpx;
|
padding-right: 25rpx;
|
||||||
}
|
}
|
||||||
.list {
|
.list {
|
||||||
margin-bottom: 45rpx;
|
margin-bottom: 45rpx;
|
||||||
.item {
|
.item {
|
||||||
padding: 0 25rpx;
|
padding: 0 25rpx;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
height: 55px;
|
height: 55px;
|
||||||
.title {
|
.title {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
.check-icon {
|
.check-icon {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 100rpx;
|
width: 100rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
|||||||
<uv-icon name="arrow-left" size="19" color="#ffffff"></uv-icon>
|
<uv-icon name="arrow-left" size="19" color="#ffffff"></uv-icon>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:center>
|
<template v-slot:center>
|
||||||
<text style="color:#ffffff">商品详情</text>
|
<text style="color:#ffffff">产品详情</text>
|
||||||
</template>
|
</template>
|
||||||
</uv-navbar>
|
</uv-navbar>
|
||||||
<view class="page" v-if="state.productInfo">
|
<view class="page" v-if="state.productInfo">
|
||||||
@ -25,10 +25,6 @@
|
|||||||
<view class="info">
|
<view class="info">
|
||||||
{{state.productInfo.cate_id}}
|
{{state.productInfo.cate_id}}
|
||||||
</view>
|
</view>
|
||||||
<view class="title">产品价格</view>
|
|
||||||
<view class="info">
|
|
||||||
{{state.productInfo.price || 0}}
|
|
||||||
</view>
|
|
||||||
<view class="title">产品简介</view>
|
<view class="title">产品简介</view>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
{{state.productInfo.store_info || '暂无'}}
|
{{state.productInfo.store_info || '暂无'}}
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<view class="title">名称:{{ item.storeName }}</view>
|
<view class="title">名称:{{ item.storeName }}</view>
|
||||||
<view class="price">价格:<text class="num">{{ item.price }}</text></view>
|
<!-- <view class="price">价格:<text class="num">{{ item.price }}</text></view> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -27,7 +27,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<view class="title">名称:{{ item.storeName }}</view>
|
<view class="title">名称:{{ item.storeName }}</view>
|
||||||
<view class="price">价格:<text class="num">{{ item.price }}</text></view>
|
<!-- <view class="price">价格:<text class="num">{{ item.price }}</text></view> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -111,14 +111,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
padding: 10rpx 12rpx 20rpx 16rpx;
|
padding: 14rpx 16rpx 24rpx 16rpx;
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
-o-text-overflow: ellipsis;
|
-o-text-overflow: ellipsis;
|
||||||
font-size: 28rpx;
|
font-size: 30rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</uv-navbar>
|
</uv-navbar>
|
||||||
<view class="pb-2 flex px-5" style="background-color: #09b4f1;">
|
<view class="pb-2 flex px-5" style="background-color: #09b4f1;">
|
||||||
<uv-search placeholder="搜索商品名称" v-model="keyword" bgColor="#ffffff" :customStyle="customStyle"
|
<uv-search placeholder="搜索产品名称" v-model="keyword" bgColor="#ffffff" :customStyle="customStyle"
|
||||||
:show-action="false" @change="onSearch"></uv-search>
|
:show-action="false" @change="onSearch"></uv-search>
|
||||||
<!-- <uv-icon name="/static/images/screen.png" :size="26" @click="openSearch"></uv-icon> -->
|
<!-- <uv-icon name="/static/images/screen.png" :size="26" @click="openSearch"></uv-icon> -->
|
||||||
</view>
|
</view>
|
||||||
@ -52,7 +52,7 @@
|
|||||||
storeToRefs
|
storeToRefs
|
||||||
} from 'pinia'
|
} from 'pinia'
|
||||||
const main = useMainStore()
|
const main = useMainStore()
|
||||||
const title = ref('商品')
|
const title = ref('产品')
|
||||||
const keyword = ref('')
|
const keyword = ref('')
|
||||||
const listStatus = ref('loadmore')
|
const listStatus = ref('loadmore')
|
||||||
const total = ref(-1)
|
const total = ref(-1)
|
||||||
|
Loading…
Reference in New Issue
Block a user