代码更新

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

@@ -9,19 +9,22 @@
<view class="category">
<view class="category_item" @tap="itemClick(item,index)" :class="{active:index===category.active}" v-for="(item,index) in category.list" :key="index">{{item.name}}</view>
</view>
<up-radio-group v-model="goodsValue" @change="groupChange" style="width: 100%;display: initial;">
<view class="goodsList">
<view class="goodsItem" @tap="goodsClick(item,index)" v-for="(item,index) in category.goodsList" :key="index">
<view>{{item.name}}</view>
<up-radio
:key="item.id"
:name="item.id"
@change="groupChange"
>
</up-radio>
<view style="flex-shrink: 0;">
<up-radio-group v-model="goodsValue" @change="groupChange" style="width: 100%;display: initial;">
<view class="goodsList">
<view class="goodsItem" @tap="goodsClick(item,index)" v-for="(item,index) in category.goodsList" :key="index">
<view>{{item.name}}</view>
<up-radio
:key="item.id"
:name="item.id"
@change="groupChange"
>
</up-radio>
</view>
</view>
</view>
</up-radio-group>
</up-radio-group>
</view>
</view>
<view class="bomBtn">
<view class="affirm" @tap="affirm">确定</view>
@@ -31,10 +34,8 @@
<script setup>
import { reactive,ref,onMounted } from 'vue';
import {
$tbShopCategory,
$tbProductV2
} from "@/http/yskApi/goods.js"
import { $tbShopCategory, $tbProductV2 } from "@/http/yskApi/goods.js"
import { getProductList, getCategoryList } from '@/api/product.js'
const props=defineProps({
show:{
type:Boolean,
@@ -50,7 +51,7 @@ import {
page: 0,
size: 999,
categoryId: '',
sort: "createdAt,desc",
orderBy: "create_time desc",
}
})
let goodsValue = ref('');
@@ -67,18 +68,18 @@ import {
function groupChange ( n ) {
// console.log(n)
}
function getCategoryList () {
$tbShopCategory({
function getCategory () {
getCategoryList({
page:0,size:200
}).then(res=>{
category.list = res.content;
category.query.categoryId = res.content[0].id
category.list = res;
category.query.categoryId = res[0].id
getGoodsList()
})
}
function getGoodsList () {
$tbProductV2(category.query).then(res => {
category.goodsList = res.content.map(v => {
getProductList(category.query).then(res => {
category.goodsList = res.records.map(v => {
return {
...v,
isSellNone: false,
@@ -90,7 +91,7 @@ import {
}
function open(){
show.value = true;
getCategoryList();
getCategory();
}
function close(){
@@ -140,6 +141,7 @@ import {
.category_item{
padding: 22rpx 24rpx;
border-left: 8rpx solid transparent;
word-wrap: break-word;
}
.active{
border-left: 8rpx solid #318AFE;

View File

@@ -8,7 +8,7 @@
</view>
</view>
<view class="item">
<view class="lable">使用门槛2</view>
<view class="lable">使用门槛</view>
<view class="value">
<view></view><input v-model="formData.fullAmount" type="number" placeholder="填写金额" border="none"></input><view>元</view><view>减</view><input v-model="formData.discountAmount" type="number" placeholder="填写金额" border="none"></input><view></view>
</view>
@@ -19,8 +19,8 @@
<view class="lable">有效期类型</view>
<view class="value" style="display: flex;flex-direction: column;align-items: flex-start;">
<view>
<up-radio-group v-model="formData.validityType" @change="typeChange('validityType')">
<up-radio name="fixed" label="领券后有效期内可用" style="margin-right: 30rpx;"></up-radio>
<up-radio-group placement="column" v-model="formData.validityType" @change="typeChange('validityType')">
<up-radio name="fixed" label="领券后有效期内可用"></up-radio>
<up-radio name="custom" label="固定有效期范围内可用"></up-radio>
</up-radio-group>
</view>
@@ -65,7 +65,7 @@
<view class="lable">指定时间段可用</view>
<view class="value" style="display: flex;flex-direction: column;align-items: flex-start;">
<view>
<up-radio-group v-model="formData.useTimeType" >
<up-radio-group v-model="formData.useTimeType" placement="column">
<up-radio name="all" label="全时段可用" style="margin-right: 30rpx;"></up-radio>
<up-radio name="custom" label="指定时段可用"></up-radio>
</up-radio-group>
@@ -103,13 +103,10 @@
</view>
</template>
<script setup>
import go from '@/commons/utils/go.js'
import {
reactive,
ref
} from 'vue';
import { reactive, ref } from 'vue';
import { onLoad, onShow } from '@dcloudio/uni-app';
import { getTbShopCouponInfo, addTbShopCoupon } from '@/http/yskApi/coupon.js'
import go from '@/commons/utils/go.js'
import { addCoupon, updateCoupon } from '@/api/coupon.js'
const pageData = reactive({
value: [
{ name: "周一", },
@@ -146,8 +143,11 @@
})
onLoad((options) => {
if ( options.type == 'info' ) {
pageData.id = options.id;
getConponInfo();
let itemData = JSON.parse(options.item);
for (let item in itemData) {
formData[item] = itemData[item]
}
formData.userDays = formData.userDays.split(",");
}
})
let datePicker = ref(null)
@@ -165,24 +165,9 @@
pageData.show = true;
}
/**
* 获取详情
*/
let getConponInfo = () => {
getTbShopCouponInfo(pageData.id).then((res) => {
// formData = res;
for (let item in res) {
formData[item] = res[item]
}
formData.userDays = formData.userDays.split(",");
console.log(formData)
})
}
let typeChange = ( type ) =>{
pageData.dateType = type;
pageData.mode = 'date'
if ( formData.validityType == "custom") {
datePicker.value.open()
}
@@ -211,7 +196,6 @@
*/
let timeConfirm = () => {
pageData.useTimeShow = false;
console.log(pageData.useTime)
if ( pageData.sueDateType == 'useStartTime') { formData.useStartTime = pageData.useTime}
if ( pageData.sueDateType == 'useEndTime') { formData.useEndTime = pageData.useTime}
}
@@ -220,9 +204,7 @@
* 有效期选择
*/
let datePickerConfirm = (data) => {
console.log(pageData.dateType)
if ( pageData.dateType == 'validityType') {
// .substring(0,10)
formData.validStartTime = data.start;
formData.validEndTime = data.end;
}
@@ -232,15 +214,39 @@
* 保存
*/
let save = () => {
if( !formData.title ){
uni.showToast({ title: '请输入优惠券名称' })
return false;
}
if( !formData.fullAmount ){
uni.showToast({ title: '请输入使用门槛' })
return false;
}
if( !formData.daysToTakeEffect ){
uni.showToast({ title: '请输入生效天数' })
return false;
}
if( !formData.number ){
uni.showToast({ title: '请输入发放数量' })
return false;
}
formData.userDays = formData.userDays.toString();
let params = {
...formData
}
console.log(params)
addTbShopCoupon(params).then((res) => {
// console.log(res)
go.back(1)
})
if(formData.id){
updateCoupon(params).then((res) => {
go.back(1)
})
} else{
addCoupon(params).then((res) => {
go.back(1)
})
}
}
</script>

View File

@@ -28,10 +28,11 @@
<view class="selectGoods" @tap="selectGoodsOpen">
<view>
<view class="title">选择商品</view>
<view class="goodsName" v-if='formData.products.length <= 0'>选择指定商品</view>
<view class="goodsName" v-if='!formData.proId'>选择指定商品</view>
<view class="goodsName" v-else>
<view class="goodsItem" v-for="(item,index) in formData.products" :key="index">
<view class="productName">{{item.name}}</view><up-input @tap.stop="stop" style="border-bottom: 1rpx solid #666;" v-model="item.num" placeholder="填写数量" border="none" ></up-input>
<view class="goodsItem" >
<view class="productName">{{formData.proName}}</view>
<!-- <up-input @tap.stop="stop" style="border-bottom: 1rpx solid #666;" v-model="item.num" placeholder="填写数量" border="none" ></up-input> -->
</view>
</view>
</view>
@@ -51,15 +52,13 @@
</view>
</template>
<script setup>
import go from '@/commons/utils/go.js'
import myActionSheet from '@/components/my-components/my-action-sheet';
import selectGoods from './components/select-goods';
import { getTbShopCouponInfo, addTbShopCoupon } from '@/http/yskApi/coupon.js'
import { reactive, ref } from 'vue';
import { onLoad, onShow } from '@dcloudio/uni-app';
import go from '@/commons/utils/go.js'
import selectGoods from './components/select-goods';
import { addCoupon, updateCoupon } from '@/api/coupon.js'
const pageData = reactive({
id: null,
goodsData: null,
title: "",
show: false,
})
@@ -68,13 +67,18 @@
type: '2',
fullAmount: null,
number: null,
proId: null,
proName: null,
products: []
})
onLoad((options) => {
if ( options.type == 'info' ) {
pageData.id = options.id;
getConponInfo();
let itemData = JSON.parse(options.item);
for (let item in itemData) {
formData[item] = itemData[item]
}
formData.userDays = formData.userDays.split(",");
}
})
@@ -82,39 +86,43 @@
let selectGoodsOpen = () => {
goods.value.open();
}
let getConponInfo = () => {
getTbShopCouponInfo(pageData.id).then((res) => {
// formData = res;
for (let item in res) {
formData[item] = res[item]
}
console.log(formData)
})
}
let stop = () => { }
let affirm = (item) => {
pageData.goodsData = item;
formData.products = [];
formData.products.push({
productId: item.id,
name: item.name,
num: null
})
formData.proId = item.id
formData.proName = item.name
}
/**
* 保存
*/
let save = () => {
if( !formData.title ){
uni.showToast({ title: '请输入商品名称' })
return false;
}
if( !formData.fullAmount ){
uni.showToast({ title: '请输入使用门槛' })
return false;
}
if( !formData.number ){
uni.showToast({ title: '请输入发放数量' })
return false;
}
let params = {
...formData
}
addTbShopCoupon(params).then((res) => {
go.back(1)
})
if(formData.id){
updateCoupon(params).then((res) => {
go.back(1)
})
} else{
addCoupon(params).then((res) => {
go.back(1)
})
}
}
</script>

View File

@@ -7,21 +7,7 @@
{{item.name}}
</view>
</view>
<!-- 搜搜 -->
<!-- <view class="search">
<up-input
placeholder="搜索优惠券名称"
prefixIcon="search"
shape="circle"
border="none"
fontSize="14px"
prefixIconStyle="font-size: 28px;color: #999;"
:customStyle="{backgroundColor:'#F9F9F9',padding: '10rpx 18rpx'}"
></up-input>
<view class="searchBtn">
搜索
</view>
</view> -->
<!-- 内容 -->
<view class="couponContentList">
<view class="couponContent" v-for="(item,index) in pageData.couponList" :key="index">
@@ -71,10 +57,7 @@
<button @tap="delCoupon(item)">删除</button>
</view>
</view>
<template v-if="pageData.couponList.length">
<my-pagination :page="pageData.query.page" :totalElements="pageData.totalElements" :size="pageData.query.size"
@change="pageChange"></my-pagination>
</template>
</view>
@@ -86,16 +69,13 @@
</template>
<script setup>
import { reactive, ref } from 'vue';
import { onShow } from '@dcloudio/uni-app';
import go from '@/commons/utils/go.js'
import { getTbShopCoupon , delTbShopCoupon} from '@/http/yskApi/coupon.js'
import {
reactive,
ref,
onMounted
} from 'vue';
import { onLoad, onShow,onPageScroll,
onPullDownRefresh,
onReachBottom, } from '@dcloudio/uni-app';
import { getCouponList } from '@/api/coupon.js'
const pageData = reactive({
delShow: false,
delItem: null,
@@ -109,22 +89,14 @@
},
query: {
type: 1,
page: 1,
size: 10,
},
couponList: [],
totalElements: 0,
})
onShow(() => {
getCoupon();
})
onReachBottom(() => {
// pageData.query.page++
// getCoupon()
})
/**
* tag切换
*/
@@ -135,21 +107,18 @@
getCoupon();
}
// 获取优惠券列表
/**
* 获取优惠券列表
*/
let getCoupon = () => {
let params = pageData.query;
getTbShopCoupon(params).then((res) => {
getCouponList(params).then((res) => {
console.log(res)
pageData.couponList = res.content;
pageData.totalElements = res.totalElements;
pageData.couponList = res;
})
}
// 页数改变事件
function pageChange(page) {
console.log(page)
pageData.query.page = page
getCoupon()
}
/**
* 添加
*/
@@ -168,9 +137,9 @@
let editCoupon = (item)=>{
console.log(item.id)
if ( item.type == 1 ) {
go.to('PAGES_COUPON_DISCOUNTCOUPONS',{type: 'info', id: item.id})
go.to('PAGES_COUPON_DISCOUNTCOUPONS',{type: 'info', item: JSON.stringify(item)})
} else {
go.to('PAGES_COUPON_CERTIFICATE',{type: 'info', id: item.id})
go.to('PAGES_COUPON_CERTIFICATE',{type: 'info', item: JSON.stringify(item)})
}
}