代码更新

This commit is contained in:
GaoHao
2025-02-26 19:46:20 +08:00
parent 7519ffced3
commit b4a0393d2d
413 changed files with 7483 additions and 60762 deletions

View File

@@ -22,7 +22,7 @@
</view>
<scroll-view :scroll-x="false" scroll-y="true" :style="computedStyle()">
<scroll-view :scroll-x="true" :scroll-y="true" :style="computedStyle()">
<view class="u-p-l-30 u-p-r-30 table">
<view class="u-flex u-row-between no-wrap title">
<view>
@@ -31,8 +31,6 @@
</view>
<view>商品信息</view>
<view>规格</view>
<!-- <view>是否售尽</view> -->
<!-- <view>是否分销</view> -->
<view>售价</view>
<view>销量/库存</view>
<view>分类名称</view>
@@ -41,23 +39,19 @@
<view class="">
<my-radio @change="radioChange($event,item)" v-model="item.checked" shape="square" :size="20"></my-radio>
</view>
<view class="u-text-left u-flex-1 u-p-l-20">
<!-- <view class="u-flex">
<image lazy-load class="coverImg" :src="item.coverImg" mode=""></image>
</view> -->
<view class="u-text-left u-flex-1 u-p-l-20" style="flex-shrink: 0;">
<view class="">{{item.name}}</view>
</view>
<view class="u-flex-1 u-p-l-4 u-p-r-4 box-size-border">
{{item.typeEnum}}
{{isType(item.type)}}
</view>
<view class="u-flex-1">
{{ item.lowPrice }}
</view>
<view class="u-flex-1">
<!-- {{ item.realSalesNumber }}/{{ item.stockNumber }} -->
{{ item.stockNumber }}
{{ item.stockNumber }}
</view>
<view class="u-flex-1">
<view class="u-flex-1" style="text-overflow: ellipsis;overflow: hidden;word-break: break-all;white-space: nowrap;">
{{item.categoryName}}
</view>
</view>
@@ -80,15 +74,9 @@
</template>
<script setup>
import {
$tbProductList
} from '@/http/yskApi/goods.js';
import {
reactive,
onMounted,
ref,
watch
} from 'vue';
import { reactive, onMounted, ref, watch, computed } from 'vue';
import { getProductList} from '@/api/product.js';
const props = defineProps({
modelValue: {
type: Boolean,
@@ -105,6 +93,98 @@
}
}
})
const emits = defineEmits(['update:modelValue', 'confirm'])
const $quey = {
categoryId: "",
id: "",
name: "",
orderBy: "create_time desc",
page: 1,
size: 10,
}
const query = reactive({
...$quey
})
const goods = reactive({
list: [],
allChecked: false,
totalElements: 0,
query: {
...$quey
}
})
//页面全部数据
const pageData = reactive({
// 商品类型
types: [{
name: '单规格',
value: 'single'
},
{
name: '多规格',
value: 'sku'
},
{
name: '套餐',
value: 'package'
},
{
name: '称重',
value: 'weigh'
},
// {
// name: '团购券',
// value: 'coupon'
// },
],
})
function isType (e) {
let obj = pageData.types.find(item=> item.value == e)
return obj.name
}
getGoods()
/**
* 获取商品列表
*/
function getGoods() {
const arr=selArr
getProductList(goods.query).then(res => {
let selLen=0;
goods.list = res.records.map(v => {
const checked=$selGoodsMap[v.id]?true:false
selLen+=(checked?1:0)
return {
...v,
checked
}
})
goods.allChecked = selLen==res.records.length?true:false
goods.totalElements = res.totalRow
})
}
/**
* 单个商品选中
* @param {Object} newval
* @param {Object} item
*/
function radioChange(newval,item) {
if(!newval&&$selGoodsMap[item.id]){
delete $selGoodsMap[item.id]
}else{
$selGoodsMap[item.id]=item
}
goods.allChecked = goods.list.filter(v => v.checked).length != 0
}
/**
* 全选
* @param {Object} item
*/
function changeChecked(item){
item.checked=!item.checked
if(!item.checked&&$selGoodsMap[item.id]){
@@ -128,8 +208,7 @@
selArr=arr
console.log(arr);
for(let i in arr){
$selGoodsMap[arr[i].proId
]=arr[i]
$selGoodsMap[arr[i].proId]=arr[i]
}
getGoods()
}
@@ -150,60 +229,11 @@
return `height:${typeof props.height==='string'?props.height:props.height+'rpx'};`
}
const emits = defineEmits(['update:modelValue', 'confirm'])
const $quey = {
categoryId: "",
createdAt: [],
id: "",
name: "",
sort: "createdAt,desc",
type: "",
page: 0,
size: 10,
}
const query = reactive({
...$quey
})
const goods = reactive({
list: [],
allChecked: false,
totalElements: 0,
query: {
...$quey
}
})
getGoods()
function getGoods() {
const arr=selArr
$tbProductList(goods.query).then(res => {
let selLen=0;
goods.list = res.content.map(v => {
const checked=$selGoodsMap[v.id]?true:false
selLen+=(checked?1:0)
return {
...v,
checked
}
})
goods.allChecked = selLen==res.content.length?true:false
goods.totalElements = res.totalElements
})
}
function pageChange(page) {
goods.query.page = page - 1
goods.query.page = page
getGoods()
}
function radioChange(newval,item) {
if(!newval&&$selGoodsMap[item.id]){
delete $selGoodsMap[item.id]
}else{
$selGoodsMap[item.id]=item
}
goods.allChecked = goods.list.filter(v => v.checked).length != 0
}
function radioAllChange(newval) {
goods.list.forEach(i => {
@@ -223,7 +253,6 @@
delete $selGoodsMap[item.id]
}
}
console.log($selGoodsMap);
const arr = Object.values($selGoodsMap)
emits('confirm', arr)
}