Compare commits

..

No commits in common. "8c03b3eafc1f28e860f974ffd80b3e49ffbba8fa" and "a8fae1ab1c634b193f90da5c9f921175df703deb" have entirely different histories.

324 changed files with 29118 additions and 561 deletions

View File

@ -1,33 +1,27 @@
<template> <template>
<!-- fixed -->
<up-popup :show="show" closeable round="10" @close="close"> <up-popup :show="show" closeable round="10" @close="close">
<view class="address-popup"> <view class="address-popup">
<view class="head-title">提货点</view> <view class="head-title">选择提货点</view>
<view class="list-admin"> <view class="list-admin">
<up-search placeholder="请输入提货点名称" @search="searchKeyword" v-model="keyword" <up-search placeholder="请输入提货点名称" @search="searchKeyword" v-model="keyword"
@custom="searchKeyword"></up-search> @custom="searchKeyword"></up-search>
</view> </view>
<scroll-view style="height: 600rpx;padding-bottom: 20rpx;" scroll-y> <scroll-view style="height: 600rpx;padding-bottom: 20rpx;" scroll-y>
<view class="list-li border" v-for="(item,index) in list" :key="index" @click="addressType=index"> <view class="row" v-for="(item,index) in list" :key="index" @click="addressType=index">
<view class="list-li-top"> <view class="content">
<view class=""> <view class="top">
<text>{{item.mer_name}}</text> <view class="name">{{item.mer_name}}</view>
<text v-if="index==0" <u-tag v-if="item.distance" style="pointer-events: none;" :text="item.distance"
style="background-color: #38BE41;color: white;font-size: 18rpx;margin-left: 24rpx;padding: 0 5rpx;">距离最近</text> type="success" plain size="mini"></u-tag>
<text class="distance">步行{{item.distance}}</text>
</view> </view>
<view class="bottom u-line-2">{{item.service_phone}}</view>
</view> </view>
<view class=""> <image v-if="addressType==index" src="@/static/icon/check.png"></image>
{{item.mer_address||'sdsd'}} <image v-else src="@/static/icon/n-check.png"></image>
</view>
<view class="check">
<image style="width: 36rpx;height: 36rpx" v-if="addressType==index"
src="@/static/icon/check.png">
</image>
<image style="width: 36rpx;height: 36rpx" v-else src="@/static/icon/n-check.png"></image>
</view>
</view> </view>
</scroll-view> </scroll-view>
<up-button color="#20B128" shape="circle" @click="submitAddress">确认</up-button> <up-button color="#20B128" shape="circle" @click="submitAddress">确认提货点</up-button>
</view> </view>
</up-popup> </up-popup>
</template> </template>
@ -137,38 +131,6 @@
} }
} }
.border {
border-bottom: 1px solid #F3F3F3;
}
.list-li {
padding: 30rpx 0;
font-size: 24rpx;
position: relative;
.list-li-top {
display: flex;
justify-content: space-between;
margin-bottom: 10rpx;
font-size: 30rpx;
}
.distance {
border: 1px solid #40AE36;
font-size: 18rpx;
color: #40AE36;
margin-left: 20rpx;
padding: 0 5rpx;
}
.check {
position: absolute;
right: 20rpx;
top: 50%;
transform: translateY(-50%);
}
}
@keyframes disappear { @keyframes disappear {
to { to {
opacity: 0; opacity: 0;

View File

@ -0,0 +1,11 @@
<template>
<view class="">
商品详情
</view>
</template>
<script>
</script>
<style>
</style>

View File

@ -1,121 +1,18 @@
<template> <template>
<view class="content"> <view class="">
<up-sticky bgColor="#fff"> <up-navbar placeholder style="z-index: 10080;">
<view class="head"> <template #left>
<up-search placeholder="请输入提货点名称" @search="searchKeyword" v-model="keyword" <view style="font-size: 30rpx;font-weight: bold;" @click="test">报价单</view>
@custom="searchKeyword"></up-search> </template>
<view class=""> </up-navbar>
<view class="" style="display: flex;justify-content: space-around;margin-top: 24rpx;">
<view :class="{act: tabIndex==1}" @click="tabIndex=1"> dgfsdhjg
订单列表
</view>
<view :class="{act: tabIndex==2}" @click="tabIndex=2">
报价记录
</view>
</view>
<view style="height: 8rpx;" />
<view class="line" :style="{left:tabIndex==1?tabsLeft+'px':tabsRight+'px'}" />
</view>
</view>
</up-sticky>
<view class="card" v-for="item in 10">
<view class="card-head">
<text>PF171504442988969633</text>
<text style="color:#20B128 ;">待报价</text>
</view>
<view class="card-content">
<image v-for="(item,index) in 10" style="width: 152rpx;height: 152rpx;margin-right: 20rpx;"
src="../../static/logo.png" mode="">
</image>
</view>
<view class="total">
<view style="display: flex;align-items: center;">
共4件 <up-icon name="arrow-right"></up-icon>
</view>
</view>
</view>
</view> </view>
</template> </template>
<script setup> <script>
import {
ref,
reactive
} from "vue"
//
const keyword = ref('')
const searchKeyword = () => {
console.log("sousuo1")
}
//
// tabsindex
const tabIndex = ref(1)
const {
windowWidth
} = uni.getSystemInfoSync();
const tabsLeft = ref(((windowWidth / 2) - 26) / 2)
const tabsRight = ref(tabsLeft.value + (windowWidth / 2))
// tabsindex
</script> </script>
<style lang="scss"> <style>
.content {
.head {
padding: 20rpx;
background-color: white;
position: relative;
.act {
color: #20B128;
}
.line {
width: 26px;
height: 5rpx;
background-color: #20B128;
border-radius: 50rpx;
position: absolute;
transition: 300ms;
}
}
.card {
width: 710rpx;
margin: 20rpx auto;
background-color: white;
box-sizing: border-box;
padding: 20rpx;
border-radius: 16rpx;
position: relative;
.card-head {
display: flex;
justify-content: space-between;
margin-bottom: 12rpx;
}
.card-content {
overflow-x: auto;
white-space: nowrap;
padding-right: 152rpx;
}
.total {
width: 152rpx;
height: 160rpx;
position: absolute;
border: 1px dashed black;
display: flex;
justify-content: space-around;
align-items: center;
top: 60rpx;
right: 20rpx;
background-color: white;
}
}
}
</style> </style>

View File

@ -88,9 +88,16 @@
"style": { "style": {
"navigationBarTitleText": "报价单", "navigationBarTitleText": "报价单",
"enablePullDownRefresh": false, "enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
"path": "goodDetail/index",
"style": {
"navigationBarTitleText": "商品详情",
"enablePullDownRefresh": false
} }
} }
] ]
}], }],

View File

@ -1,106 +1,95 @@
<template> <template>
<view class=""> <view class="">
<!-- <view class="m-card row"> <!-- <view class="m-card row">
<up-cell-group> <up-cell-group>
<up-cell title="请添加自提点" :isLink="true" :border="false" @click="shopListShow=true"></up-cell> <up-cell title="请添加自提点" :isLink="true" :border="false" @click="shopListShow=true"></up-cell>
</up-cell-group> </up-cell-group>
</view> --> </view> -->
<view v-if="!addressInfo.address_id" class="m-card row"> <view class="m-card m-address">
<up-cell-group> <view class="address-info">
<up-cell title="我的地址" :isLink="true" :border="false" @click="openAddress()"></up-cell> <view class="top" style="align-items: flex-start;">
</up-cell-group> <view style="color: #333;display: flex;align-items: center;">
</view> <up-icon name="map"></up-icon>
<view v-else class="m-card m-address"> <text style="margin: 0 10rpx;">自提点</text>
<view class="address-info"> </view>
<view class="top"> <view v-if="shopInfo.mer_id">
<up-icon name="account"></up-icon> <view>{{shopInfo.mer_name}}</view>
<view class="t-name">{{addressInfo.real_name}}</view> <view>
<view>{{addressInfo.phone}}</view> <text>{{shopInfo.service_phone}}</text>
</view> <text style="color: #20b128;margin-left: 10rpx;font-size: 22rpx;">{{shopInfo.distance}}</text>
<view class="bottom u-line-2"> </view>
{{addressInfo.detail}} </view>
</view> </view>
</view> </view>
<view class="address-btn"> <view class="address-btn">
<view style="width: 80px;"><up-button @click="showAddress = true" size="small" shape="circle" <view style="width: 80px;"><up-button @click="shopListShow=true" size="small" shape="circle" color="#f6f6f6"
color="#f6f6f6" :customStyle="{color:'#666666'}">修改</up-button></view> :customStyle="{color:'#666666'}">修改</up-button></view>
</view> </view>
</view> </view>
<view class="m-card m-address"> <view v-if="!addressInfo.address_id" class="m-card row">
<view class="address-info"> <up-cell-group>
<view class="top" style="align-items: flex-start;"> <up-cell title="我的地址" :isLink="true" :border="false" @click="openAddress()"></up-cell>
<view style="color: #333;display: flex;align-items: center;"> </up-cell-group>
<up-icon name="map"></up-icon> </view>
<text style="margin: 0 10rpx;">提货人</text> <view v-else class="m-card m-address">
</view> <view class="address-info">
<view v-if="shopInfo.mer_id"> <view class="top">
<view> <text>姓名</text> {{shopInfo.service_phone}}</view> <up-icon name="account"></up-icon>
</view> <view class="t-name">{{addressInfo.real_name}}</view>
</view> <view>{{addressInfo.phone}}</view>
<view class="top" style="align-items: flex-start;margin-top: 20rpx;"> </view>
<view style="color: #333;display: flex;align-items: center;"> <view class="bottom u-line-2">
<up-icon name="map"></up-icon> {{addressInfo.detail}}
<text style="margin: 0 10rpx;">自提点</text> </view>
</view> </view>
<view v-if="shopInfo.mer_id"> <view class="address-btn">
<view>{{shopInfo.mer_name}}</view> <view style="width: 80px;"><up-button @click="showAddress = true" size="small" shape="circle" color="#f6f6f6"
<view> :customStyle="{color:'#666666'}">修改</up-button></view>
<text>自提点具体地址</text> </view>
<!-- <text </view>
style="color: #20b128;margin-left: 10rpx;font-size: 22rpx;">{{shopInfo.distance}}</text> --> <view class="m-card m-good" v-for="(item,index) in cartList" :key="index">
</view> <view class="image" >
</view> <up-image width="160rpx" height="160rpx" :src="item.imgs"></up-image>
</view> </view>
</view> <view class="body-content">
<view class="address-btn"> <view>
<view style="width: 80px;"><up-button @click="shopListShow=true" size="small" shape="circle" <view class="title">
color="#f6f6f6" :customStyle="{color:'#666666'}">修改</up-button></view> <view>{{item.name}}</view>
</view> <view>¥{{item.price}}</view>
</view> </view>
<view class="tips">
<view class="m-card m-good" v-for="(item,index) in cartList" :key="index"> <view>{{item.unit_name}}</view>
<view class="image"> <view>x{{item.cart_num}}</view>
<up-image width="160rpx" height="160rpx" :src="item.imgs"></up-image> </view>
</view> </view>
<view class="body-content"> <view class="time">
<view> {{orderInfo.delivery_msg}}
<view class="title"> </view>
<view>{{item.name}}</view> </view>
<view>¥{{item.price}}</view> </view>
</view> <view class="m-card good-info">
<view class="tips"> <view class="head-title">价格明细</view>
<view>{{item.unit_name}}</view> <view class="row">
<view>x{{item.cart_num}}</view> <view>商品总价 <text>共计{{cartList.length}}款商品</text></view>
</view> <view><text>¥</text>{{c_price(orderInfo.total, 0)}}<text>.{{c_price(orderInfo.total, 1)}}</text></view>
</view> </view>
<view class="time"> <view class="row">
{{orderInfo.delivery_msg}} <view>运费</view>
</view> <view><text>¥</text>0<text>.00</text></view>
</view> </view>
</view> </view>
<view class="m-card good-info"> <view class="m-card good-info">
<view class="head-title">价格明细</view> <view class="head-title">支付方式</view>
<view class="row"> <view class="row">
<view>商品总价 <text>共计{{cartList.length}}款商品</text></view> <view class="icon-text"><up-icon name="weixin-circle-fill" color="#20b128" size="22"
<view><text>¥</text>{{c_price(orderInfo.total, 0)}}<text>.{{c_price(orderInfo.total, 1)}}</text></view> style="margin-right: 10rpx;"></up-icon> </view>
</view> <view class="icon">
<view class="row"> <image v-if="true" src="@/static/icon/check.png"></image>
<view>运费</view> <image v-else src="@/static/icon/n-check.png"></image>
<view><text>¥</text>0<text>.00</text></view> </view>
</view> </view>
</view> </view>
<view class="m-card good-info"> <!-- <view class="m-card order-remark">
<view class="head-title">支付方式</view>
<view class="row">
<view class="icon-text"><up-icon name="weixin-circle-fill" color="#20b128" size="22"
style="margin-right: 10rpx;"></up-icon> </view>
<view class="icon">
<image v-if="true" src="@/static/icon/check.png"></image>
<image v-else src="@/static/icon/n-check.png"></image>
</view>
</view>
</view>
<!-- <view class="m-card order-remark">
<view class="head-title"> <view class="head-title">
<text>订单备注</text> <text>订单备注</text>
<text>0/200</text> <text>0/200</text>
@ -108,159 +97,144 @@
<up-textarea style="background-color: #F6F6F6;" v-model="formData.remark" placeholder="暂无备注内容" <up-textarea style="background-color: #F6F6F6;" v-model="formData.remark" placeholder="暂无备注内容"
:height="100"></up-textarea> :height="100"></up-textarea>
</view> --> </view> -->
<view style="width: 100%;height: 200rpx;"></view> <view style="width: 100%;height: 200rpx;"></view>
<view class="fiexd-btn-box"> <view class="fiexd-btn-box">
<view class="tips"> <view class="tips">
<view style="margin-right: 20rpx;"> {{ cartList.length }} </view> <view style="margin-right: 20rpx;"> {{ cartList.length }} </view>
<view class="all"> <view class="all">
<text style="color: #000;">合计: </text> <text style="color: #000;">合计: </text>
<text></text> <text></text>
<block v-if="orderInfo.total"> <block v-if="orderInfo.total">
<text style="font-size: 32rpx;font-weight: bold;">{{c_price(orderInfo.total, 0)}}</text> <text style="font-size: 32rpx;font-weight: bold;">{{c_price(orderInfo.total, 0)}}</text>
<text>.{{c_price(orderInfo.total, 1)}}</text> <text>.{{c_price(orderInfo.total, 1)}}</text>
</block> </block>
</view> </view>
</view> </view>
<view style="width: 200rpx;"> <view style="width: 200rpx;">
<up-button color="#20B128" shape="circle" @click="submitOrder">提交订单</up-button> <up-button color="#20B128" shape="circle" @click="submitOrder">提交订单</up-button>
</view> </view>
</view> </view>
<addressPopup v-if="addressList.length>0" :show="showAddress" :list="addressList" @close="showAddress=false" <addressPopup v-if="addressList.length>0" :show="showAddress" :list="addressList" @close="showAddress=false" @change="changeAddress" />
@change="changeAddress" /> <shopListPopupVue v-if="merchantList.length>0" :show="shopListShow" :list="merchantList" @close="shopListShow=false" @change="changeShop" @search="searchShop" />
<shopListPopupVue v-if="merchantList.length>0" :show="shopListShow" :list="merchantList" <modal title="尚未设置收货地址" content="您还没有添加收货地址,请点击添加" cancleText="添加地址" confirmText="继续支付" :show="toastAddressShow"
@close="shopListShow=false" @change="changeShop" @search="searchShop" /> @close="addAddress" @change="goPay" />
<modal title="尚未设置收货地址" content="您还没有添加收货地址,请点击添加" cancleText="添加地址" confirmText="继续支付" :show="toastAddressShow" </view>
@close="addAddress" @change="goPay" />
</view>
</template> </template>
<script setup> <script setup>
import { import { onLoad, onShow } from "@dcloudio/uni-app"
onLoad, import { nextTick, ref } from "vue"
onShow import addressPopup from "@/components/addressPopup.vue";
} from "@dcloudio/uni-app" import shopListPopupVue from "@/components/shopListPopup.vue";
import { import modal from "@/components/modal.vue"
nextTick, import useCartStore from "@/store/cart.js";
ref import { checkOrderApi } from "@/api/cart.js";
} from "vue" import { addressListsApi, merchantListApi } from "@/api/user.js";
import addressPopup from "@/components/addressPopup.vue"; import { createOrderApi } from "@/api/order.js";
import shopListPopupVue from "@/components/shopListPopup.vue";
import modal from "@/components/modal.vue"
import useCartStore from "@/store/cart.js";
import {
checkOrderApi
} from "@/api/cart.js";
import {
addressListsApi,
merchantListApi
} from "@/api/user.js";
import {
createOrderApi
} from "@/api/order.js";
const cartStore = useCartStore(); const cartStore = useCartStore();
const formData = ref({ const formData = ref({
remark: "" remark: ""
}) })
const isAddress = ref(false); const isAddress = ref(false);
const toastAddressShow = ref(false); const toastAddressShow = ref(false);
// //
const addressList = ref([]); const addressList = ref([]);
const getAddressList = () => { const getAddressList = ()=>{
addressListsApi().then(res => { addressListsApi().then(res=>{
addressList.value = res.data.lists; addressList.value = res.data.lists;
addressList.value.forEach(item => { addressList.value.forEach(item=>{
if (item.is_default) { if(item.is_default) {
addressInfo.value = item; addressInfo.value = item;
isAddress.value = true; isAddress.value = true;
} }
}) })
if (!isAddress.value && addressList.value.length > 0) { if(!isAddress.value && addressList.value.length>0){
addressInfo.value = addressList.value[0]; addressInfo.value = addressList.value[0];
isAddress.value = true; isAddress.value = true;
} }
}) })
} }
// //
const showAddress = ref(false); const showAddress = ref(false);
const addressInfo = ref({}); const addressInfo = ref({});
const changeAddress = (e) => { const changeAddress = (e) => {
addressInfo.value = e; addressInfo.value = e;
showAddress.value = false; showAddress.value = false;
isAddress.value = true; isAddress.value = true;
} }
const openAddress = () => { const openAddress = ()=>{
if (addressList.length > 0) showAddress.value = true; if(addressList.length>0) showAddress.value=true;
else uni.navigateTo({ else uni.navigateTo({
url: '/pagesOrder/addressEdit/addressEdit' url: '/pagesOrder/addressEdit/addressEdit'
}) })
} }
// //
const shopListShow = ref(false); const shopListShow = ref(false);
const merchantList = ref([]); const merchantList = ref([]);
const myAddressInfo = ref({ const myAddressInfo = ref({
long: "", long: "",
lat: "" lat: ""
}) })
const shopInfo = ref({ const shopInfo = ref({
mer_id: '' mer_id: ''
}); });
const getMerchantList = (mer_name = null) => { const getMerchantList = (mer_name=null)=>{
merchantListApi({ merchantListApi({
...myAddressInfo.value, ...myAddressInfo.value,
mer_name: mer_name ? mer_name : '' mer_name: mer_name ? mer_name : ''
}).then(res => { }).then(res=>{
merchantList.value = res.data.lists; merchantList.value = res.data.lists;
if (mer_name === null && myAddressInfo.value.long && merchantList.value.length > 0 && !shopInfo if(mer_name===null && myAddressInfo.value.long && merchantList.value.length>0 && !shopInfo.value.mer_id) {
.value.mer_id) { shopInfo.value = merchantList.value[0];
shopInfo.value = merchantList.value[0]; }
} })
}) }
} getMerchantList('');
getMerchantList(''); //
// const LoadAddress = ()=>{
const LoadAddress = () => { uni.getLocation({
uni.getLocation({ success: (res) => {
success: (res) => {}, },
fail: (err) => { fail: (err) => {
uni.$u.toast('定位失败, 请手动选择提货点!') uni.$u.toast('定位失败, 请手动选择提货点!')
}, },
complete: (res) => { complete: (res) => {
console.log("===", res); console.log("===", res);
myAddressInfo.value.long = res.longitude || ""; myAddressInfo.value.long = res.longitude || "";
myAddressInfo.value.lat = res.latitude || ""; myAddressInfo.value.lat = res.latitude || "";
getMerchantList(); getMerchantList();
} }
}) })
} }
LoadAddress(); LoadAddress();
const changeShop = (e) => { const changeShop = (e)=>{
shopInfo.value = e; shopInfo.value = e;
shopListShow.value = false; shopListShow.value = false;
} }
const searchShop = (e) => { const searchShop = (e)=>{
getMerchantList(e) getMerchantList(e)
} }
// //
const addAddress = () => { const addAddress = () => {
toastAddressShow.value = false; toastAddressShow.value = false;
nextTick(() => { nextTick(()=>{
showAddress.value = true; showAddress.value = true;
}) })
} }
// //
const goPay = () => { const goPay = ()=>{
toastAddressShow.value = false; toastAddressShow.value = false;
isAddress.value = true; isAddress.value = true;
submitOrder(); submitOrder();
} }
// //
const submitOrder = () => { const submitOrder = () => {
@ -287,11 +261,11 @@
}).then(res=>{ }).then(res=>{
uni.requestPayment({ uni.requestPayment({
provider: 'wxpay', provider: 'wxpay',
timeStamp: res.data.timeStamp, timeStamp: res.data.config.timeStamp,
nonceStr: res.data.nonceStr, nonceStr: res.data.config.nonceStr,
package: res.data.package, package: res.data.config.package,
signType: res.data.signType, signType: res.data.config.signType,
paySign: res.data.paySign, paySign: res.data.config.paySign,
success: (e) => { success: (e) => {
if(e.errMsg == 'requestPayment:ok'){ if(e.errMsg == 'requestPayment:ok'){
uni.showModal({ uni.showModal({
@ -339,150 +313,148 @@
</script> </script>
<style lang="scss"> <style lang="scss">
.m-card { .m-card {
margin: 20rpx; margin: 20rpx;
border-radius: 14rpx; border-radius: 14rpx;
background-color: #fff; background-color: #fff;
padding: 20rpx; padding: 20rpx;
} }
.row { .row {
padding: 0; padding: 0;
overflow: hidden; overflow: hidden;
} }
.m-address { .m-address {
margin-bottom: 20rpx; margin-bottom: 20rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
color: #999999; color: #999999;
.address-info { .address-info {
width: 510rpx; width: 510rpx;
.top { .top {
display: flex; display: flex;
font-size: 28rpx; font-size: 28rpx;
margin-bottom: 10;
.t-name { .t-name {
color: #444; color: #444;
margin: 0 10rpx; margin: 0 10rpx;
margin-right: 40rpx; }
} }
}
.bottom { .bottom {
font-size: 24rpx; font-size: 24rpx;
} }
} }
} }
.m-good { .m-good {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 20rpx; margin-bottom: 20rpx;
.image { .image {
width: 160rpx; width: 160rpx;
height: 160rpx; height: 160rpx;
margin-right: 20rpx; margin-right: 20rpx;
border-radius: 14rpx; border-radius: 14rpx;
overflow: hidden; overflow: hidden;
} }
.body-content { .body-content {
width: 490rpx; width: 490rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
color: #989898; color: #989898;
.title { .title {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-size: 28rpx; font-size: 28rpx;
color: #444; color: #444;
} }
.tips { .tips {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-size: 24rpx; font-size: 24rpx;
margin-top: 10rpx; margin-top: 10rpx;
} }
.time { .time {
background-color: #F6F6F6; background-color: #F6F6F6;
padding: 5rpx 10rpx; padding: 5rpx 10rpx;
font-size: 26rpx; font-size: 26rpx;
color: #444; color: #444;
border-radius: 10rpx; border-radius: 10rpx;
} }
} }
} }
.good-info { .good-info {
margin-bottom: 20rpx; margin-bottom: 20rpx;
.head-title { .head-title {
margin-bottom: 18rpx; margin-bottom: 18rpx;
color: #000; color: #000;
font-weight: bold; font-weight: bold;
} }
.row { .row {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
margin-bottom: 18rpx; margin-bottom: 18rpx;
.red { .red {
color: #F55726; color: #F55726;
} }
.icon-text { .icon-text {
display: flex; display: flex;
} }
.icon { .icon {
image { image {
width: 40rpx; width: 40rpx;
height: 40rpx; height: 40rpx;
} }
} }
} }
.row-need { .row-need {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
color: #F55726; color: #F55726;
} }
text { text {
font-size: 22rpx; font-size: 22rpx;
} }
} }
.order-remark { .order-remark {
.head-title { .head-title {
margin-bottom: 18rpx; margin-bottom: 18rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
} }
.tips { .tips {
font-size: 28rpx; font-size: 28rpx;
color: #999; color: #999;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
align-items: center; align-items: center;
flex: 1; flex: 1;
margin-right: 20rpx; margin-right: 20rpx;
.all { .all {
color: #F55726; color: #F55726;
} }
} }
</style> </style>

View File

@ -1,30 +1,26 @@
// 导入定义仓库的方法 // 导入定义仓库的方法
import { import { defineStore } from 'pinia';
defineStore
} from 'pinia';
// 导入响应式和计算 // 导入响应式和计算
import { import { ref } from 'vue';
ref
} from 'vue';
const useUserStore = defineStore("user", () => { const useUserStore = defineStore("user", () => {
// 定义一个状态用户信息 // 定义一个状态用户信息
const userInfo = ref(uni.getStorageSync('userInfo') || {}); const userInfo = ref(uni.getStorageSync('userInfo') || {});
// 定义一个设置状态的方法 // 定义一个设置状态的方法
const setUserInfo = (data) => { const setUserInfo = (data) => {
userInfo.value = data; userInfo.value = data;
uni.setStorageSync('userInfo', data) uni.setStorageSync('userInfo', data)
} }
const token = ref(uni.getStorageSync('token') || ''); const token = ref(uni.getStorageSync('token') || '');
const setToken = (data) => { const setToken = (data) => {
token.value = data; token.value = data;
uni.setStorageSync('token', data) uni.setStorageSync('token', data)
} }
// #ifdef H5 // #ifdef H5
token.value = "31f74a72e2d05673ec14d2a6408718ef" token.value = "aba1d819e38fa087f52a6ddfd1b61f30"
userInfo.value = { userInfo.value = {
avatar: "https://lihaiim.oss-cn-chengdu.aliyuncs.com/image/admin/default_avatar.png", avatar: "https://lihaiim.oss-cn-chengdu.aliyuncs.com/image/admin/default_avatar.png",
id: 9, id: 9,
@ -37,12 +33,7 @@ const useUserStore = defineStore("user", () => {
} }
// #endif // #endif
return { return { userInfo, setUserInfo, token, setToken }
userInfo,
setUserInfo,
token,
setToken
}
}) })
export default useUserStore; export default useUserStore;

154
unpackage/dist/dev/mp-weixin/app.js vendored Normal file
View File

@ -0,0 +1,154 @@
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const common_vendor = require("./common/vendor.js");
const uni_modules_uviewPlus_index = require("./uni_modules/uview-plus/index.js");
require("./uni_modules/uview-plus/libs/mixin/mixin.js");
require("./uni_modules/uview-plus/libs/function/index.js");
require("./uni_modules/uview-plus/libs/function/test.js");
require("./uni_modules/uview-plus/libs/function/digit.js");
require("./uni_modules/uview-plus/libs/config/config.js");
require("./uni_modules/uview-plus/libs/util/route.js");
require("./uni_modules/uview-plus/libs/mixin/mpMixin.js");
require("./uni_modules/uview-plus/libs/luch-request/core/Request.js");
require("./uni_modules/uview-plus/libs/luch-request/core/dispatchRequest.js");
require("./uni_modules/uview-plus/libs/luch-request/adapters/index.js");
require("./uni_modules/uview-plus/libs/luch-request/helpers/buildURL.js");
require("./uni_modules/uview-plus/libs/luch-request/utils.js");
require("./uni_modules/uview-plus/libs/luch-request/core/buildFullPath.js");
require("./uni_modules/uview-plus/libs/luch-request/helpers/isAbsoluteURL.js");
require("./uni_modules/uview-plus/libs/luch-request/helpers/combineURLs.js");
require("./uni_modules/uview-plus/libs/luch-request/core/settle.js");
require("./uni_modules/uview-plus/libs/luch-request/core/InterceptorManager.js");
require("./uni_modules/uview-plus/libs/luch-request/core/mergeConfig.js");
require("./uni_modules/uview-plus/libs/luch-request/core/defaults.js");
require("./uni_modules/uview-plus/libs/luch-request/utils/clone.js");
require("./uni_modules/uview-plus/libs/function/colorGradient.js");
require("./uni_modules/uview-plus/libs/function/debounce.js");
require("./uni_modules/uview-plus/libs/function/throttle.js");
require("./uni_modules/uview-plus/libs/config/props.js");
require("./uni_modules/uview-plus/libs/config/props/actionSheet.js");
require("./uni_modules/uview-plus/libs/config/props/album.js");
require("./uni_modules/uview-plus/libs/config/props/alert.js");
require("./uni_modules/uview-plus/libs/config/props/avatar.js");
require("./uni_modules/uview-plus/libs/config/props/avatarGroup.js");
require("./uni_modules/uview-plus/libs/config/props/backtop.js");
require("./uni_modules/uview-plus/libs/config/props/badge.js");
require("./uni_modules/uview-plus/libs/config/props/button.js");
require("./uni_modules/uview-plus/libs/config/props/calendar.js");
require("./uni_modules/uview-plus/libs/config/props/carKeyboard.js");
require("./uni_modules/uview-plus/libs/config/props/cell.js");
require("./uni_modules/uview-plus/libs/config/props/cellGroup.js");
require("./uni_modules/uview-plus/libs/config/props/checkbox.js");
require("./uni_modules/uview-plus/libs/config/props/checkboxGroup.js");
require("./uni_modules/uview-plus/libs/config/props/circleProgress.js");
require("./uni_modules/uview-plus/libs/config/props/code.js");
require("./uni_modules/uview-plus/libs/config/props/codeInput.js");
require("./uni_modules/uview-plus/libs/config/props/col.js");
require("./uni_modules/uview-plus/libs/config/props/collapse.js");
require("./uni_modules/uview-plus/libs/config/props/collapseItem.js");
require("./uni_modules/uview-plus/libs/config/props/columnNotice.js");
require("./uni_modules/uview-plus/libs/config/props/countDown.js");
require("./uni_modules/uview-plus/libs/config/props/countTo.js");
require("./uni_modules/uview-plus/libs/config/props/datetimePicker.js");
require("./uni_modules/uview-plus/libs/config/props/divider.js");
require("./uni_modules/uview-plus/libs/config/props/empty.js");
require("./uni_modules/uview-plus/libs/config/props/form.js");
require("./uni_modules/uview-plus/libs/config/props/formItem.js");
require("./uni_modules/uview-plus/libs/config/props/gap.js");
require("./uni_modules/uview-plus/libs/config/props/grid.js");
require("./uni_modules/uview-plus/libs/config/props/gridItem.js");
require("./uni_modules/uview-plus/libs/config/props/icon.js");
require("./uni_modules/uview-plus/libs/config/props/image.js");
require("./uni_modules/uview-plus/libs/config/props/indexAnchor.js");
require("./uni_modules/uview-plus/libs/config/props/indexList.js");
require("./uni_modules/uview-plus/libs/config/props/input.js");
require("./uni_modules/uview-plus/libs/config/props/keyboard.js");
require("./uni_modules/uview-plus/libs/config/props/line.js");
require("./uni_modules/uview-plus/libs/config/props/lineProgress.js");
require("./uni_modules/uview-plus/libs/config/props/link.js");
require("./uni_modules/uview-plus/libs/config/props/list.js");
require("./uni_modules/uview-plus/libs/config/props/listItem.js");
require("./uni_modules/uview-plus/libs/config/props/loadingIcon.js");
require("./uni_modules/uview-plus/libs/config/props/loadingPage.js");
require("./uni_modules/uview-plus/libs/config/props/loadmore.js");
require("./uni_modules/uview-plus/libs/config/props/modal.js");
require("./uni_modules/uview-plus/libs/config/props/navbar.js");
require("./uni_modules/uview-plus/libs/config/color.js");
require("./uni_modules/uview-plus/libs/config/props/noNetwork.js");
require("./uni_modules/uview-plus/libs/config/props/noticeBar.js");
require("./uni_modules/uview-plus/libs/config/props/notify.js");
require("./uni_modules/uview-plus/libs/config/props/numberBox.js");
require("./uni_modules/uview-plus/libs/config/props/numberKeyboard.js");
require("./uni_modules/uview-plus/libs/config/props/overlay.js");
require("./uni_modules/uview-plus/libs/config/props/parse.js");
require("./uni_modules/uview-plus/libs/config/props/picker.js");
require("./uni_modules/uview-plus/libs/config/props/popup.js");
require("./uni_modules/uview-plus/libs/config/props/radio.js");
require("./uni_modules/uview-plus/libs/config/props/radioGroup.js");
require("./uni_modules/uview-plus/libs/config/props/rate.js");
require("./uni_modules/uview-plus/libs/config/props/readMore.js");
require("./uni_modules/uview-plus/libs/config/props/row.js");
require("./uni_modules/uview-plus/libs/config/props/rowNotice.js");
require("./uni_modules/uview-plus/libs/config/props/scrollList.js");
require("./uni_modules/uview-plus/libs/config/props/search.js");
require("./uni_modules/uview-plus/libs/config/props/section.js");
require("./uni_modules/uview-plus/libs/config/props/skeleton.js");
require("./uni_modules/uview-plus/libs/config/props/slider.js");
require("./uni_modules/uview-plus/libs/config/props/statusBar.js");
require("./uni_modules/uview-plus/libs/config/props/steps.js");
require("./uni_modules/uview-plus/libs/config/props/stepsItem.js");
require("./uni_modules/uview-plus/libs/config/props/sticky.js");
require("./uni_modules/uview-plus/libs/config/props/subsection.js");
require("./uni_modules/uview-plus/libs/config/props/swipeAction.js");
require("./uni_modules/uview-plus/libs/config/props/swipeActionItem.js");
require("./uni_modules/uview-plus/libs/config/props/swiper.js");
require("./uni_modules/uview-plus/libs/config/props/swipterIndicator.js");
require("./uni_modules/uview-plus/libs/config/props/switch.js");
require("./uni_modules/uview-plus/libs/config/props/tabbar.js");
require("./uni_modules/uview-plus/libs/config/props/tabbarItem.js");
require("./uni_modules/uview-plus/libs/config/props/tabs.js");
require("./uni_modules/uview-plus/libs/config/props/tag.js");
require("./uni_modules/uview-plus/libs/config/props/text.js");
require("./uni_modules/uview-plus/libs/config/props/textarea.js");
require("./uni_modules/uview-plus/libs/config/props/toast.js");
require("./uni_modules/uview-plus/libs/config/props/toolbar.js");
require("./uni_modules/uview-plus/libs/config/props/tooltip.js");
require("./uni_modules/uview-plus/libs/config/props/transition.js");
require("./uni_modules/uview-plus/libs/config/props/upload.js");
require("./uni_modules/uview-plus/libs/config/zIndex.js");
require("./uni_modules/uview-plus/libs/function/platform.js");
if (!Math) {
"./pages/login/login.js";
"./pages/index/index.js";
"./pages/cart/cart.js";
"./pages/my/my.js";
"./pagesOrder/order/order.js";
"./pagesOrder/detail/detail.js";
"./pagesOrder/addressList/addressList.js";
"./pagesOrder/addressEdit/addressEdit.js";
"./pagesOrder/settle/settle.js";
}
const _sfc_main = {
onLaunch: function() {
console.log("App Launch");
},
onShow: function() {
console.log("App Show");
},
onHide: function() {
console.log("App Hide");
}
};
const App = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/App.vue"]]);
function createApp() {
const app = common_vendor.createSSRApp(App);
app.use(common_vendor.createPinia());
app.use(uni_modules_uviewPlus_index.uviewPlus);
return {
app,
Pinia: common_vendor.Pinia
// 此处必须将 Pinia 返回
};
}
createApp().app.mount("#app");
exports.createApp = createApp;

36
unpackage/dist/dev/mp-weixin/app.json vendored Normal file
View File

@ -0,0 +1,36 @@
{
"pages": [
"pages/login/login",
"pages/index/index",
"pages/cart/cart",
"pages/my/my"
],
"subPackages": [
{
"root": "pagesOrder",
"pages": [
"order/order",
"detail/detail",
"addressList/addressList",
"addressEdit/addressEdit",
"settle/settle"
]
}
],
"window": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "",
"navigationBarBackgroundColor": "#fff",
"backgroundColor": "#fff"
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于查找最近的提货点"
}
},
"requiredPrivateInfos": [
"chooseLocation",
"getLocation"
],
"usingComponents": {}
}

3084
unpackage/dist/dev/mp-weixin/app.wxss vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,11 @@
"use strict";
const _imports_1$1 = "/static/icon/n-check.png";
const _imports_0$1 = "/static/icon/check.png";
const _imports_0 = "/static/tab/ba.png";
const _imports_1 = "/static/tab/ca.png";
const _imports_2 = "/static/icon/cart.png";
exports._imports_0 = _imports_0$1;
exports._imports_0$1 = _imports_0;
exports._imports_1 = _imports_1$1;
exports._imports_1$1 = _imports_1;
exports._imports_2 = _imports_2;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,99 @@
"use strict";
const common_vendor = require("../common/vendor.js");
const common_assets = require("../common/assets.js");
if (!Array) {
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
const _easycom_u_tag2 = common_vendor.resolveComponent("u-tag");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup");
(_easycom_up_icon2 + _easycom_u_tag2 + _easycom_up_button2 + _easycom_up_popup2)();
}
const _easycom_up_icon = () => "../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_u_tag = () => "../uni_modules/uview-plus/components/u-tag/u-tag.js";
const _easycom_up_button = () => "../uni_modules/uview-plus/components/u-button/u-button.js";
const _easycom_up_popup = () => "../uni_modules/uview-plus/components/u-popup/u-popup.js";
if (!Math) {
(_easycom_up_icon + _easycom_u_tag + _easycom_up_button + _easycom_up_popup)();
}
const _sfc_main = {
__name: "addressPopup",
props: {
show: {
type: Boolean,
default: false
},
list: {
type: Array,
default: () => []
}
},
emits: ["close", "change"],
setup(__props, { emit: __emit }) {
const addressType = common_vendor.ref(-1);
const props = __props;
const emit = __emit;
const close = () => {
emit("close");
};
const submitAddress = () => {
emit("change", props.list[addressType.value]);
};
const navTo = (url) => {
common_vendor.index.navigateTo({
url
});
};
return (_ctx, _cache) => {
return {
a: common_vendor.p({
name: "edit-pen",
color: "#20B128"
}),
b: common_vendor.o(($event) => navTo("/pagesOrder/addressList/addressList")),
c: common_vendor.p({
name: "plus",
color: "#20B128"
}),
d: common_vendor.o(($event) => navTo("/pagesOrder/addressEdit/addressEdit")),
e: common_vendor.f(__props.list, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.real_name),
b: common_vendor.t(item.phone),
c: item.is_default
}, item.is_default ? {
d: "dc6b9753-3-" + i0 + ",dc6b9753-0",
e: common_vendor.p({
text: "默认",
type: "success",
plain: true,
size: "mini"
})
} : {}, {
f: common_vendor.t(item.detail),
g: addressType.value == index
}, addressType.value == index ? {
h: common_assets._imports_0
} : {
i: common_assets._imports_1
}, {
j: index,
k: common_vendor.o(($event) => addressType.value = index, index)
});
}),
f: common_vendor.o(submitAddress),
g: common_vendor.p({
color: "#20B128",
shape: "circle"
}),
h: common_vendor.o(close),
i: common_vendor.p({
show: __props.show,
closeable: true,
round: "10"
})
};
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-dc6b9753"], ["__file", "D:/里海数字乡村/purchase-let/components/addressPopup.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,9 @@
{
"component": true,
"usingComponents": {
"up-icon": "../uni_modules/uview-plus/components/u-icon/u-icon",
"u-tag": "../uni_modules/uview-plus/components/u-tag/u-tag",
"up-button": "../uni_modules/uview-plus/components/u-button/u-button",
"up-popup": "../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

View File

@ -0,0 +1 @@
<up-popup wx:if="{{i}}" class="data-v-dc6b9753" u-s="{{['d']}}" bindclose="{{h}}" u-i="dc6b9753-0" bind:__l="__l" u-p="{{i}}"><view class="address-popup data-v-dc6b9753"><view class="head-title data-v-dc6b9753">收货人与详细地址</view><view class="list-admin data-v-dc6b9753"><view class="data-v-dc6b9753">常用地址</view><view class="admin-btn data-v-dc6b9753"><view class="btn data-v-dc6b9753" bindtap="{{b}}"><up-icon wx:if="{{a}}" class="data-v-dc6b9753" u-i="dc6b9753-1,dc6b9753-0" bind:__l="__l" u-p="{{a}}"></up-icon>管理</view><view class="btn data-v-dc6b9753" bindtap="{{d}}"><up-icon wx:if="{{c}}" class="data-v-dc6b9753" u-i="dc6b9753-2,dc6b9753-0" bind:__l="__l" u-p="{{c}}"></up-icon>新增</view></view></view><scroll-view class="data-v-dc6b9753" style="height:600rpx;padding-bottom:20rpx" scroll-y><view wx:for="{{e}}" wx:for-item="item" wx:key="j" class="row data-v-dc6b9753" bindtap="{{item.k}}"><view class="content data-v-dc6b9753"><view class="top data-v-dc6b9753"><view class="name data-v-dc6b9753">{{item.a}}</view><view class="phone data-v-dc6b9753">{{item.b}}</view><u-tag wx:if="{{item.c}}" class="data-v-dc6b9753" style="pointer-events:none" u-i="{{item.d}}" bind:__l="__l" u-p="{{item.e}}"></u-tag></view><view class="bottom u-line-2 data-v-dc6b9753">{{item.f}}</view></view><image wx:if="{{item.g}}" class="data-v-dc6b9753" src="{{item.h}}"></image><image wx:else class="data-v-dc6b9753" src="{{item.i}}"></image></view></scroll-view><up-button wx:if="{{g}}" class="data-v-dc6b9753" u-s="{{['d']}}" bindclick="{{f}}" u-i="dc6b9753-4,dc6b9753-0" bind:__l="__l" u-p="{{g}}">确认</up-button></view></up-popup>

View File

@ -0,0 +1,83 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.address-popup.data-v-dc6b9753 {
padding: 30rpx;
}
.address-popup .head-title.data-v-dc6b9753 {
font-weight: bold;
text-align: center;
margin-bottom: 20rpx;
}
.address-popup .list-admin.data-v-dc6b9753 {
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
}
.address-popup .list-admin .admin-btn.data-v-dc6b9753 {
display: flex;
color: #20B128;
}
.address-popup .list-admin .admin-btn .btn.data-v-dc6b9753 {
margin-left: 20rpx;
display: flex;
align-items: center;
}
.address-popup .list-admin .admin-btn .btn.data-v-dc6b9753:active {
color: rgba(32, 177, 40, 0.8);
transition: background-color 0.5s;
animation: disappear-dc6b9753 0.5s 0.5s forwards;
}
.address-popup .row.data-v-dc6b9753 {
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 20rpx;
border-bottom: 1rpx solid #f6f6f6;
margin-bottom: 20rpx;
}
.address-popup .row.data-v-dc6b9753:last-child {
border-bottom: none;
margin-bottom: 0;
}
.address-popup .row .content .top.data-v-dc6b9753 {
display: flex;
}
.address-popup .row .content .top view.data-v-dc6b9753 {
margin-right: 20rpx;
}
.address-popup .row image.data-v-dc6b9753 {
width: 40rpx;
height: 40rpx;
flex-shrink: 0;
}
@keyframes disappear-dc6b9753 {
to {
opacity: 0;
/* 渐隐 */
transform: scale(0);
/* 缩小 */
}
}

View File

@ -0,0 +1,73 @@
"use strict";
const common_vendor = require("../common/vendor.js");
if (!Array) {
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup");
(_easycom_up_button2 + _easycom_up_popup2)();
}
const _easycom_up_button = () => "../uni_modules/uview-plus/components/u-button/u-button.js";
const _easycom_up_popup = () => "../uni_modules/uview-plus/components/u-popup/u-popup.js";
if (!Math) {
(_easycom_up_button + _easycom_up_popup)();
}
const _sfc_main = {
__name: "modal",
props: {
show: {
type: Boolean,
default: false
},
title: {
type: String,
default: "确认操作吗"
},
content: {
type: String,
default: "确认后继续下一步操作"
},
confirmText: {
type: String,
default: "确认"
},
cancleText: {
type: String,
default: "取消"
}
},
emits: ["close", "change"],
setup(__props, { emit: __emit }) {
const emit = __emit;
const close = () => {
emit("close");
};
const change = () => {
emit("change");
};
return (_ctx, _cache) => {
return {
a: common_vendor.t(__props.title),
b: common_vendor.t(__props.content),
c: common_vendor.t(__props.cancleText),
d: common_vendor.o(close),
e: common_vendor.p({
plain: true,
color: "#999"
}),
f: common_vendor.t(__props.confirmText),
g: common_vendor.o(change),
h: common_vendor.p({
color: "#20B128"
}),
i: common_vendor.o(close),
j: common_vendor.p({
show: __props.show,
round: "10",
mode: "center",
safeAreaInsetBottom: false
})
};
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-b2596e17"], ["__file", "D:/里海数字乡村/purchase-let/components/modal.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"up-button": "../uni_modules/uview-plus/components/u-button/u-button",
"up-popup": "../uni_modules/uview-plus/components/u-popup/u-popup"
}
}

View File

@ -0,0 +1 @@
<up-popup wx:if="{{j}}" class="data-v-b2596e17" u-s="{{['d']}}" bindclose="{{i}}" u-i="b2596e17-0" bind:__l="__l" u-p="{{j}}"><view class="m-modal-popup data-v-b2596e17"><view class="head-title-modal data-v-b2596e17">{{a}}</view><view class="content-modal data-v-b2596e17">{{b}}</view><view class="btn-box-modal data-v-b2596e17"><view class="data-v-b2596e17" style="width:230rpx"><up-button wx:if="{{e}}" class="data-v-b2596e17" u-s="{{['d']}}" bindclick="{{d}}" u-i="b2596e17-1,b2596e17-0" bind:__l="__l" u-p="{{e}}">{{c}}</up-button></view><view class="data-v-b2596e17" style="width:230rpx"><up-button wx:if="{{h}}" class="data-v-b2596e17" u-s="{{['d']}}" bindclick="{{g}}" u-i="b2596e17-2,b2596e17-0" bind:__l="__l" u-p="{{h}}">{{f}}</up-button></view></view></view></up-popup>

View File

@ -0,0 +1,43 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.m-modal-popup.data-v-b2596e17 {
width: 500rpx;
padding: 40rpx;
}
.m-modal-popup .head-title-modal.data-v-b2596e17 {
font-size: 32rpx;
text-align: center;
}
.m-modal-popup .content-modal.data-v-b2596e17 {
font-size: 26rpx;
color: #999;
text-align: center;
padding: 40rpx 0;
}
.m-modal-popup .btn-box-modal.data-v-b2596e17 {
display: flex;
justify-content: space-between;
}

View File

@ -0,0 +1,58 @@
"use strict";
const common_vendor = require("../common/vendor.js");
if (!Array) {
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
_easycom_up_icon2();
}
const _easycom_up_icon = () => "../uni_modules/uview-plus/components/u-icon/u-icon.js";
if (!Math) {
_easycom_up_icon();
}
const _sfc_main = {
__name: "viewPopup",
props: {
nav: {
type: Boolean,
default: false
},
show: {
type: Boolean,
default: false
}
},
emits: ["close", "click"],
setup(__props, { emit: __emit }) {
const emit = __emit;
const close = () => {
emit("close");
};
const height = common_vendor.ref(0);
common_vendor.index.getSystemInfo({
success: (res) => {
const statusBarHeight = res.statusBarHeight || 0;
const menuButtonInfo = common_vendor.index.getMenuButtonBoundingClientRect();
const navBarHeight = menuButtonInfo.height + (menuButtonInfo.top - statusBarHeight) * 2;
const topIconDistance = statusBarHeight + navBarHeight;
console.log("顶部图标距离:", topIconDistance);
height.value = topIconDistance;
},
fail: (err) => {
console.error("获取系统信息失败:", err);
}
});
return (_ctx, _cache) => {
return common_vendor.e({
a: __props.nav
}, __props.nav ? {
b: height.value + "px"
} : {}, {
c: common_vendor.p({
name: "arrow-up"
}),
d: common_vendor.o(close)
});
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-9faf4b3c"], ["__file", "D:/里海数字乡村/purchase-let/components/viewPopup.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"up-icon": "../uni_modules/uview-plus/components/u-icon/u-icon"
}
}

View File

@ -0,0 +1 @@
<view class="view-popup data-v-9faf4b3c"><view wx:if="{{a}}" class="data-v-9faf4b3c" style="{{'width:100%' + ';' + ('height:' + b)}}"></view><view class="center data-v-9faf4b3c"><slot></slot><view class="up data-v-9faf4b3c" bindtap="{{d}}"><text class="data-v-9faf4b3c">点击收起</text><up-icon wx:if="{{c}}" class="data-v-9faf4b3c" u-i="9faf4b3c-0" bind:__l="__l" u-p="{{c}}"></up-icon></view></view></view>

View File

@ -0,0 +1,58 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.view-popup.data-v-9faf4b3c {
height: 100vh;
width: 100%;
background-color: rgba(0, 0, 0, 0.3);
position: absolute;
top: 0;
left: 0;
z-index: 10;
}
.view-popup .center.data-v-9faf4b3c {
animation: slideDown-9faf4b3c 0.3s forwards;
}
.view-popup .up.data-v-9faf4b3c {
width: 100%;
height: 80rpx;
background-color: #fff;
border-radius: 0 0 28rpx 28rpx;
border-top: 1rpx solid #f6f6f6;
display: flex;
justify-content: center;
align-items: center;
font-size: 24rpx;
}
@keyframes slideDown-9faf4b3c {
from {
transform: translateY(-100%);
/* 初始状态向上偏移100% */
}
to {
transform: translateY(0);
/* 最终状态:无偏移 */
}
}

View File

@ -0,0 +1,32 @@
"use strict";
const list = [
{
name: "不想要了/临时有事",
value: 1
},
{
name: "点错了/点多了/点少了",
value: 2
},
{
name: "地址/电话填错了",
value: 3
},
{
name: "送达时间选错了",
value: 4
},
{
name: "支付遇到问题",
value: 5
},
{
name: "其他平台更便宜",
value: 6
},
{
name: "其他原因",
value: 7
}
];
exports.list = list;

View File

@ -0,0 +1,279 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const api_cart = require("../../api/cart.js");
const store_cart = require("../../store/cart.js");
require("../../utils/request.js");
require("../../config/app.js");
require("../../store/user.js");
if (!Array) {
const _easycom_up_navbar2 = common_vendor.resolveComponent("up-navbar");
const _easycom_u__icon2 = common_vendor.resolveComponent("u--icon");
const _easycom_up_empty2 = common_vendor.resolveComponent("up-empty");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
const _easycom_up_transition2 = common_vendor.resolveComponent("up-transition");
(_easycom_up_navbar2 + _easycom_u__icon2 + _easycom_up_empty2 + _easycom_up_button2 + _easycom_up_transition2)();
}
const _easycom_up_navbar = () => "../../uni_modules/uview-plus/components/u-navbar/u-navbar.js";
const _easycom_u__icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_up_empty = () => "../../uni_modules/uview-plus/components/u-empty/u-empty.js";
const _easycom_up_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js";
const _easycom_up_transition = () => "../../uni_modules/uview-plus/components/u-transition/u-transition.js";
if (!Math) {
(_easycom_up_navbar + _easycom_u__icon + _easycom_up_empty + _easycom_up_button + _easycom_up_transition + goodPopup)();
}
const goodPopup = () => "../../components/goodPopup.js";
const _sfc_main = {
__name: "cart",
setup(__props) {
const cartStore = store_cart.useCartStore();
const list = common_vendor.ref(["购物车", "常买"]);
const tabsActive = common_vendor.ref(0);
const changeTab = (e) => {
tabsActive.value = e;
swiperCurrent.value = e;
};
const swiperCurrent = common_vendor.ref(0);
const animationfinish = ({ detail: { current } }) => {
swiperCurrent.value = current;
tabsActive.value = current;
};
const settleAccounts = () => {
let list2 = [];
cartList.value.forEach((item) => {
if (item.check)
list2.push(item.cart_id);
});
cartStore.setCartList(list2);
common_vendor.index.navigateTo({
url: "/pagesOrder/settle/settle"
});
};
const deleteCartList = () => {
let list2 = [];
cartList.value.forEach((item) => {
if (item.check)
list2.push(item.cart_id);
});
api_cart.cartDeleteApi({
cart_id: list2
}).then(() => {
getcartList(false);
});
};
const addCart = (id, cart_num) => {
api_cart.cartCreateApi({
cart_num: +cart_num,
goods_id: id
}).then((res) => {
getcartList();
});
};
const isAdmin = common_vendor.ref(false);
const showGoodPopup = common_vendor.ref(false);
const goodRef = common_vendor.ref(null);
const goodData = common_vendor.ref({});
const openGoodPopup = (item) => {
goodData.value = JSON.parse(JSON.stringify(item));
goodRef.value.setData(goodData.value);
showGoodPopup.value = true;
};
const changeGood = (data) => {
showGoodPopup.value = false;
addCart(data.goods_id || data.id, data.cart_num);
};
const cartList = common_vendor.ref([]);
const cartInfo = common_vendor.ref({});
const getcartList = (check = true) => {
api_cart.cartListApi().then((res) => {
var _a, _b, _c;
if (check) {
res.data.lists = res.data.lists.map((item) => {
item.check = true;
return item;
});
checkAll.value = ((_a = res.data) == null ? void 0 : _a.count) || 0;
} else {
checkAll.value = 0;
}
cartList.value = res.data.lists;
cartInfo.value = {
total_price: ((_b = res.data) == null ? void 0 : _b.extend.total_price) || "0.00",
count: ((_c = res.data) == null ? void 0 : _c.count) || 0
};
});
};
const c_price0 = common_vendor.computed(() => {
let price = cartInfo.value.total_price + "";
return price.split(".")[0] || "0";
});
const c_price1 = common_vendor.computed(() => {
let price = cartInfo.value.total_price + "";
return price.split(".")[1] || "00";
});
let checkAll = common_vendor.ref(0);
const checkItem = (item, type) => {
item.check = type;
let price = Number(cartInfo.value.total_price);
if (type) {
price += item.sell * item.cart_num;
checkAll.value++;
} else {
price -= item.sell * item.cart_num;
checkAll.value--;
}
cartInfo.value.total_price = price.toFixed(2);
};
const changeAll = (flag = false) => {
cartList.value.forEach((item) => {
item.check = !flag;
});
if (!flag)
checkAll.value = cartInfo.value.count;
else
checkAll.value = 0;
};
const frequentlyList = common_vendor.ref([]);
const where = common_vendor.ref({
page_no: 1,
page_size: 25
});
const getFrequentlyPurchase = () => {
api_cart.frequentlyPurchaseApi({
...where.value
}).then((res) => {
frequentlyList.value = res.data;
});
};
getFrequentlyPurchase();
common_vendor.onShow(() => {
getcartList();
});
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.f(list.value, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: tabsActive.value == index ? 1 : "",
c: index,
d: common_vendor.o(($event) => changeTab(index), index)
};
}),
b: common_vendor.p({
placeholder: true,
autoBack: true
}),
c: common_vendor.t(cartList.value.length),
d: !isAdmin.value
}, !isAdmin.value ? {
e: common_vendor.o(($event) => {
isAdmin.value = true;
})
} : {
f: common_vendor.o(($event) => {
isAdmin.value = false;
})
}, {
g: cartList.value.length > 0
}, cartList.value.length > 0 ? {
h: common_vendor.f(cartList.value, (item, index, i0) => {
return common_vendor.e({
a: !item.check
}, !item.check ? {
b: common_assets._imports_1
} : {
c: common_assets._imports_0
}, {
d: common_vendor.o(($event) => checkItem(item, !item.check), index),
e: item.imgs,
f: common_vendor.t(item.goods_name),
g: common_vendor.t(item.unit_name),
h: common_vendor.t(item.sell),
i: common_vendor.t(item.cart_num),
j: "da603134-1-" + i0,
k: index,
l: common_vendor.o(($event) => openGoodPopup(item), index)
});
}),
i: common_vendor.p({
name: "plus-circle-fill",
size: "20",
color: "#20b128"
})
} : {
j: common_vendor.p({
text: "购物车空空如也",
icon: "https://lihai001.oss-cn-chengdu.aliyuncs.com/def/29955202404260944367594.png"
})
}, {
k: common_vendor.f(frequentlyList.value, (item, index, i0) => {
return {
a: item.imgs,
b: common_vendor.t(item.name),
c: common_vendor.t(item.unit_name),
d: common_vendor.t(item.sell),
e: "da603134-3-" + i0,
f: index,
g: common_vendor.o(($event) => openGoodPopup(item), index)
};
}),
l: common_vendor.p({
size: "small",
plain: true,
color: "#20b128",
shape: "circle"
})
}, {
n: swiperCurrent.value,
o: common_vendor.o(animationfinish),
p: common_vendor.unref(checkAll) != cartInfo.value.count
}, common_vendor.unref(checkAll) != cartInfo.value.count ? {
q: common_assets._imports_1
} : {
r: common_assets._imports_0
}, {
s: common_vendor.unref(checkAll)
}, common_vendor.unref(checkAll) ? {
t: common_vendor.t(common_vendor.unref(checkAll))
} : {}, {
v: common_vendor.o(($event) => changeAll(common_vendor.unref(checkAll) === cartInfo.value.count)),
w: !isAdmin.value
}, !isAdmin.value ? common_vendor.e({
x: common_vendor.t(c_price0.value),
y: common_vendor.t(c_price1.value),
z: common_vendor.unref(checkAll)
}, common_vendor.unref(checkAll) ? {
A: common_vendor.t(common_vendor.unref(checkAll))
} : {}, {
B: common_vendor.o(settleAccounts),
C: common_vendor.p({
color: "#20b128",
shape: "circle",
disabled: !common_vendor.unref(checkAll)
})
}) : {
D: common_vendor.o(($event) => deleteCartList()),
E: common_vendor.p({
size: "small",
plain: true,
color: "#989898",
shape: "circle"
})
}, {
F: common_vendor.p({
show: tabsActive.value == 0
}),
G: common_vendor.sr(goodRef, "da603134-8", {
"k": "goodRef"
}),
H: common_vendor.o(($event) => showGoodPopup.value = false),
I: common_vendor.o(changeGood),
J: common_vendor.p({
show: showGoodPopup.value
})
});
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pages/cart/cart.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,13 @@
{
"navigationBarTitleText": "购物车",
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"usingComponents": {
"up-navbar": "../../uni_modules/uview-plus/components/u-navbar/u-navbar",
"u--icon": "../../uni_modules/uview-plus/components/u-icon/u-icon",
"up-empty": "../../uni_modules/uview-plus/components/u-empty/u-empty",
"up-button": "../../uni_modules/uview-plus/components/u-button/u-button",
"up-transition": "../../uni_modules/uview-plus/components/u-transition/u-transition",
"good-popup": "../../components/goodPopup"
}
}

View File

@ -0,0 +1 @@
<view><up-navbar wx:if="{{b}}" u-s="{{['center']}}" u-i="da603134-0" bind:__l="__l" u-p="{{b}}"><view style="display:flex;align-items:center;width:100%;justify-content:flex-start;margin-left:100rpx" slot="center"><view wx:for="{{a}}" wx:for-item="item" wx:key="c" class="{{['tabs', item.b && 'tabs-active']}}" bindtap="{{item.d}}">{{item.a}}</view></view></up-navbar><swiper class="swiper-box" current="{{n}}" bindanimationfinish="{{o}}"><swiper-item class="swiper-item"><scroll-view scroll-y style="height:100%;width:100%"><view class="page-box1"><view class="total"><view>共计<text style="color:#20B128">{{c}}</text>件</view><view wx:if="{{d}}" bindtap="{{e}}">管理</view><view wx:else bindtap="{{f}}">完成</view></view><view wx:if="{{g}}" class="list" style="margin-top:80rpx"><view wx:for="{{h}}" wx:for-item="item" wx:key="k" class="shop-item" bindtap="{{item.l}}"><view class="shop-check" catchtap="{{item.d}}"><image wx:if="{{item.a}}" src="{{item.b}}"></image><image wx:else src="{{item.c}}"></image></view><image class="shop-img" src="{{item.e}}"></image><view class="shop-content"><view class="title"><view class="name u-line-2">{{item.f}}</view><view class="tip u-line-1">{{item.g}}</view></view><view class="price-btn"><view class="price">¥{{item.h}}</view><view class="btn"><view class="num">{{item.i}}</view><u--icon wx:if="{{i}}" u-i="{{item.j}}" bind:__l="__l" u-p="{{i}}"></u--icon></view></view></view></view></view><view wx:else style="margin-top:100rpx"><up-empty wx:if="{{j}}" u-i="da603134-2" bind:__l="__l" u-p="{{j}}"></up-empty></view><view style="width:100%;height:200rpx"></view></view></scroll-view></swiper-item><swiper-item class="swiper-item"><scroll-view scroll-y style="height:100%;width:100%"><view class="page-box1"><view wx:if="{{true}}" class="list"><view wx:for="{{k}}" wx:for-item="item" wx:key="f" class="shop-item" bindtap="{{item.g}}"><image class="shop-img" src="{{item.a}}"></image><view class="shop-content" style="width:490rpx"><view class="title"><view class="name u-line-2">{{item.b}}</view><view class="tip u-line-1">{{item.c}}</view></view><view class="price-btn"><view class="price">¥{{item.d}}</view><view class="btn"><up-button wx:if="{{l}}" u-s="{{['d']}}" u-i="{{item.e}}" bind:__l="__l" u-p="{{l}}">加入购物车</up-button></view></view></view></view></view><view wx:else style="margin-top:100rpx"><up-empty wx:if="{{m}}" u-i="da603134-4" bind:__l="__l" u-p="{{m}}"></up-empty></view><view style="width:100%;height:200rpx"></view></view></scroll-view></swiper-item></swiper><up-transition wx:if="{{F}}" u-s="{{['d']}}" u-i="da603134-5" bind:__l="__l" u-p="{{F}}"><view class="fiexd-btn-box cart-btn"><view class="cart-check" bindtap="{{v}}"><image wx:if="{{p}}" src="{{q}}"></image><image wx:else src="{{r}}"></image><text style="font-size:24rpx">全选</text><text wx:if="{{s}}" style="font-size:24rpx">({{t}})</text></view><view wx:if="{{w}}" class="btn-boxs"><view class="all-price"><view style="width:80rpx">合计:</view><view class="price"><text style="font-size:24rpx">¥</text><text style="font-size:34rpx">{{x}}</text><text style="font-size:24rpx">.{{y}}</text></view></view><view style="width:200rpx"><up-button wx:if="{{C}}" u-s="{{['d']}}" bindclick="{{B}}" u-i="da603134-6,da603134-5" bind:__l="__l" u-p="{{C}}">去结算<text wx:if="{{z}}">({{A}})</text></up-button></view></view><view wx:else class="btn-boxs"><view style="width:100px"><up-button wx:if="{{E}}" u-s="{{['d']}}" bindclick="{{D}}" u-i="da603134-7,da603134-5" bind:__l="__l" u-p="{{E}}">删除</up-button></view></view></view></up-transition><good-popup wx:if="{{J}}" class="r" u-r="goodRef" bindclose="{{H}}" bindchange="{{I}}" u-i="da603134-8" bind:__l="__l" u-p="{{J}}"/></view>

View File

@ -0,0 +1,141 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.tabs {
color: #444444;
font-size: 32rpx;
margin-right: 30rpx;
}
.tabs-active {
color: #20B128;
transition: 300ms;
}
.swiper-box {
flex: 1;
height: calc(100vh - var(--window-top));
width: 100%;
}
.swiper-box .swiper-item {
height: 100%;
}
.page-box1 {
position: relative;
}
.page-box1 .total {
padding: 0 20rpx;
display: flex;
justify-content: space-between;
position: fixed;
top: var(--window-top);
left: 0;
right: 0;
background-color: #f6f6f6;
z-index: 100;
height: 60rpx;
line-height: 60rpx;
font-size: 26rpx;
color: #444;
}
.page-box1 .list {
margin: 20rpx;
border-radius: 20rpx;
overflow: hidden;
}
.page-box1 .list .shop-item {
padding: 20rpx;
border-bottom: 1rpx solid #f6f6f6;
background-color: #fff;
display: flex;
}
.page-box1 .list .shop-item .shop-check {
width: 60rpx;
height: 160rpx;
display: flex;
align-items: center;
}
.page-box1 .list .shop-item .shop-check image {
width: 40rpx;
height: 40rpx;
}
.page-box1 .list .shop-item .shop-img {
height: 160rpx;
width: 160rpx;
margin-right: 20rpx;
border-radius: 14rpx;
}
.page-box1 .list .shop-item .shop-content {
width: 430rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.page-box1 .list .shop-item .shop-content .title .name {
font-size: 28rpx;
}
.page-box1 .list .shop-item .shop-content .title .tip {
color: #999;
font-size: 24rpx;
margin: 12rpx 0;
}
.page-box1 .list .shop-item .shop-content .price {
font-size: 30rpx;
font-weight: bold;
color: #F55726;
}
.page-box1 .list .shop-item .shop-content .price-btn {
display: flex;
justify-content: space-between;
}
.page-box1 .list .shop-item .shop-content .price-btn .btn {
display: flex;
align-items: center;
}
.page-box1 .list .shop-item .shop-content .price-btn .btn .num {
width: 60rpx;
text-align: center;
}
.cart-btn .cart-check {
display: flex;
align-items: center;
}
.cart-btn .cart-check image {
width: 40rpx;
height: 40rpx;
margin: 0 10rpx;
}
.cart-btn .btn-boxs {
display: flex;
}
.cart-btn .btn-boxs .all-price {
display: flex;
align-items: center;
margin-right: 20rpx;
}
.cart-btn .btn-boxs .all-price .price {
color: #20B128;
display: table-cell;
vertical-align: bottom;
font-weight: bold;
}

View File

@ -0,0 +1,355 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const api_good = require("../../api/good.js");
const api_cart = require("../../api/cart.js");
const store_cart = require("../../store/cart.js");
require("../../utils/request.js");
require("../../config/app.js");
require("../../store/user.js");
if (!Array) {
const _easycom_up_navbar2 = common_vendor.resolveComponent("up-navbar");
const _easycom_up_search2 = common_vendor.resolveComponent("up-search");
const _easycom_up_image2 = common_vendor.resolveComponent("up-image");
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
const _easycom_u__icon2 = common_vendor.resolveComponent("u--icon");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
(_easycom_up_navbar2 + _easycom_up_search2 + _easycom_up_image2 + _easycom_up_icon2 + _easycom_u__icon2 + _easycom_up_button2)();
}
const _easycom_up_navbar = () => "../../uni_modules/uview-plus/components/u-navbar/u-navbar.js";
const _easycom_up_search = () => "../../uni_modules/uview-plus/components/u-search/u-search.js";
const _easycom_up_image = () => "../../uni_modules/uview-plus/components/u-image/u-image.js";
const _easycom_up_icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_u__icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_up_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js";
if (!Math) {
(_easycom_up_navbar + _easycom_up_search + _easycom_up_image + _easycom_up_icon + viewPopup + _easycom_u__icon + _easycom_up_button + goodPopup)();
}
const viewPopup = () => "../../components/viewPopup.js";
const goodPopup = () => "../../components/goodPopup.js";
const _sfc_main = {
__name: "index",
setup(__props) {
const cartStore = store_cart.useCartStore();
const show = common_vendor.ref(0);
const topActive = common_vendor.ref(0);
const changeOne = (item, index) => {
var _a, _b, _c;
console.log("选择", item, index);
topActive.value = item.id;
show.value = 0;
goodClassTow.value = (item == null ? void 0 : item.children) || [];
goodClassThree.value = ((_a = goodClassTow.value[0]) == null ? void 0 : _a.children) || [];
leftActive.value = ((_b = goodClassTow.value[0]) == null ? void 0 : _b.id) || "";
rightActive.value = ((_c = goodClassThree.value[0]) == null ? void 0 : _c.id) || "";
getGoodList();
};
const leftActive = common_vendor.ref(0);
const changeTwo = (item, index) => {
var _a;
console.log("选择", item, index);
leftActive.value = item.id;
show.value = 0;
goodClassThree.value = (item == null ? void 0 : item.children) || [];
rightActive.value = ((_a = goodClassThree.value[0]) == null ? void 0 : _a.id) || "";
getGoodList();
};
const rightActive = common_vendor.ref(0);
const changeThree = (item, index) => {
console.log("选择", item, index);
rightActive.value = item.id;
show.value = 0;
getGoodList();
};
const cartList = common_vendor.reactive(/* @__PURE__ */ new Map());
const addCart = (id, cart_num) => {
api_cart.cartCreateApi({
cart_num,
is_new: 0,
// 是否直接购买0否1是
goods_id: id
}).then((res) => {
console.log(res);
let now = cartList.get(id) || 0;
cartList.set(id, now + 1);
getCartList();
});
};
const keyword = common_vendor.ref("");
const searchKeyword = () => {
where.value.name = keyword.value;
getGoodList();
};
const changeOrder = (order) => {
console.log("排序", order);
where.value.order = order;
getGoodList();
};
const where = common_vendor.ref({
page_no: 1,
page_size: 25,
name: "",
order: ""
});
const loading = common_vendor.ref(true);
const goodList = common_vendor.ref([]);
const getGoodList = (loadmore = false) => {
loading.value = true;
let class_id = rightActive.value || leftActive.value || topActive.value || "";
let class_all = "";
if (rightActive.value == "")
class_all = leftActive.value;
if (leftActive.value == "")
class_all = topActive.value;
if (topActive.value == "")
class_all = "";
if (class_all)
class_id = "";
if (loadmore)
where.value.page_no++;
else
where.value.page_no = 1;
api_good.goodListApi({
...where.value,
class_all,
class: class_id
}).then((res) => {
if (loadmore)
goodList.value.push(...res.data.lists);
else
goodList.value = res.data.lists;
});
};
const loadMoreGood = () => {
console.log("触底了");
getGoodList(true);
};
const goodClassList = common_vendor.ref([]);
const goodClassTow = common_vendor.ref([]);
const goodClassThree = common_vendor.ref([]);
const getgoodClassList = () => {
api_good.goodClassListApi().then((res) => {
var _a, _b, _c, _d, _e, _f, _g, _h;
(_b = (_a = res.data) == null ? void 0 : _a.lists) == null ? void 0 : _b.unshift({
id: "",
name: "全部",
pic: "https://lihai001.oss-cn-chengdu.aliyuncs.com/def/35adb202404271727457954.png",
children: []
});
res.data.lists = res.data.lists.map((item) => {
var _a2;
if (!item.children)
item.children = [];
(_a2 = item.children) == null ? void 0 : _a2.unshift({
id: "",
pid: item.id,
name: "全部"
});
item.children = item.children.map((t) => {
var _a3;
if (!t.children)
t.children = [];
(_a3 = t.children) == null ? void 0 : _a3.unshift({
id: "",
pid: t.id,
name: "全部"
});
return t;
});
return item;
});
goodClassList.value = ((_c = res.data) == null ? void 0 : _c.lists) || [];
goodClassTow.value = ((_d = goodClassList.value[0]) == null ? void 0 : _d.children) || [];
goodClassThree.value = ((_e = goodClassTow.value[0]) == null ? void 0 : _e.children) || [];
topActive.value = (_f = goodClassList.value[0]) == null ? void 0 : _f.id;
leftActive.value = (_g = goodClassTow.value[0]) == null ? void 0 : _g.id;
rightActive.value = (_h = goodClassThree.value[0]) == null ? void 0 : _h.id;
});
};
const navTo = (url) => {
common_vendor.index.navigateTo({
url
});
};
const showGoodPopup = common_vendor.ref(false);
const goodRef = common_vendor.ref(null);
const goodData = common_vendor.ref({});
const openGoodPopup = (item) => {
goodData.value = item;
goodRef.value.setData(item);
showGoodPopup.value = true;
};
const changeGood = (data) => {
showGoodPopup.value = false;
addCart(data.id, data.cart_num);
};
const settleAccounts = () => {
common_vendor.index.navigateTo({
url: "/pagesOrder/settle/settle"
});
};
const cartInfo = common_vendor.ref({
total_price: "0.00",
count: 0
});
const getCartList = (res) => {
api_cart.cartListApi({
page_no: 1,
page_size: 100
}).then((res2) => {
var _a, _b, _c, _d;
cartInfo.value = {
total_price: ((_b = (_a = res2.data) == null ? void 0 : _a.extend) == null ? void 0 : _b.total_price) || "0.00",
count: ((_c = res2.data) == null ? void 0 : _c.count) || 0
};
cartStore.setCartList((_d = res2.data) == null ? void 0 : _d.lists.map((item) => item.cart_id));
});
};
common_vendor.onLoad(() => {
getgoodClassList();
getGoodList();
});
common_vendor.onShow(() => {
getCartList();
});
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.p({
placeholder: true
}),
b: common_vendor.o(searchKeyword),
c: common_vendor.o(searchKeyword),
d: common_vendor.o(($event) => keyword.value = $event),
e: common_vendor.p({
placeholder: "请输入商品",
showAction: false,
modelValue: keyword.value
}),
f: common_assets._imports_0$1,
g: common_vendor.o(($event) => navTo("/pages/cart/cart")),
h: common_assets._imports_1$1,
i: common_vendor.o(($event) => navTo("/pages/my/my")),
j: common_vendor.f(goodClassList.value, (item, index, i0) => {
return {
a: "1ba6254c-2-" + i0,
b: common_vendor.p({
height: "100rpx",
width: "100rpx",
src: item.pic
}),
c: common_vendor.t(item.name),
d: topActive.value === item.id ? 1 : "",
e: index,
f: common_vendor.o(($event) => changeOne(item, index), index)
};
}),
k: common_vendor.p({
name: "list"
}),
l: common_vendor.o(($event) => show.value = 1),
m: show.value === 1
}, show.value === 1 ? {
n: common_vendor.f(goodClassList.value, (item, index, i0) => {
return {
a: "1ba6254c-5-" + i0 + ",1ba6254c-4",
b: common_vendor.p({
height: "100rpx",
width: "100rpx",
src: item.pic
}),
c: common_vendor.t(item.name),
d: topActive.value === item.id ? 1 : "",
e: index,
f: common_vendor.o(($event) => changeOne(item, index), index)
};
}),
o: common_vendor.o(($event) => show.value = 0),
p: common_vendor.p({
nav: true
})
} : {}, {
q: common_vendor.f(goodClassTow.value, (item, index, i0) => {
return {
a: common_vendor.t(item.name),
b: leftActive.value === item.id ? 1 : "",
c: index,
d: common_vendor.o(($event) => changeTwo(item, index), index)
};
}),
r: common_vendor.f(goodClassThree.value, (item, index, i0) => {
return {
a: common_vendor.t(item.name),
b: rightActive.value === item.id ? 1 : "",
c: index,
d: common_vendor.o(($event) => changeThree(item, index), index)
};
}),
s: common_vendor.p({
name: "arrow-down"
}),
t: common_vendor.o(($event) => show.value = 2),
v: where.value.order == "" ? 1 : "",
w: common_vendor.o(($event) => changeOrder("")),
x: where.value.order == "desc" || where.value.order == "asc" ? 1 : "",
y: common_vendor.o(($event) => changeOrder(where.value.order == "asc" ? "desc" : "asc")),
z: where.value.order == "sales" ? 1 : "",
A: common_vendor.o(($event) => changeOrder("sales")),
B: show.value === 2
}, show.value === 2 ? {
C: common_vendor.f(goodClassThree.value, (item, index, i0) => {
return {
a: common_vendor.t(item.name),
b: rightActive.value === item.id ? 1 : "",
c: index,
d: common_vendor.o(($event) => changeThree(item, index), index)
};
}),
D: common_vendor.o(($event) => show.value = 0)
} : {}, {
E: common_vendor.f(goodList.value, (item, index, i0) => {
return {
a: "1ba6254c-8-" + i0,
b: common_vendor.p({
width: "160rpx",
height: "160rpx",
src: item.imgs
}),
c: common_vendor.t(item.name),
d: common_vendor.t(item.brand_name),
e: common_vendor.t(item.class_name),
f: common_vendor.t(item.unit_name),
g: common_vendor.t(item.sell),
h: "1ba6254c-9-" + i0,
i: item.id,
j: common_vendor.o(($event) => openGoodPopup(item), item.id)
};
}),
F: common_vendor.p({
name: "plus-circle-fill",
size: "20",
color: "#20b128"
}),
G: common_vendor.o(loadMoreGood),
H: common_vendor.t(cartInfo.value.total_price),
I: common_vendor.o(settleAccounts),
J: common_vendor.p({
color: "#20b128",
disabled: cartInfo.value.count == 0
}),
K: common_assets._imports_2,
L: common_vendor.t(cartInfo.value.count),
M: common_vendor.o(($event) => navTo("/pages/cart/cart")),
N: common_vendor.sr(goodRef, "1ba6254c-11", {
"k": "goodRef"
}),
O: common_vendor.o(($event) => showGoodPopup.value = false),
P: common_vendor.o(changeGood),
Q: common_vendor.p({
show: showGoodPopup.value
})
});
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pages/index/index.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,15 @@
{
"navigationBarTitleText": "购物",
"disableScroll": true,
"navigationStyle": "custom",
"usingComponents": {
"up-navbar": "../../uni_modules/uview-plus/components/u-navbar/u-navbar",
"up-search": "../../uni_modules/uview-plus/components/u-search/u-search",
"up-image": "../../uni_modules/uview-plus/components/u-image/u-image",
"up-icon": "../../uni_modules/uview-plus/components/u-icon/u-icon",
"u--icon": "../../uni_modules/uview-plus/components/u-icon/u-icon",
"up-button": "../../uni_modules/uview-plus/components/u-button/u-button",
"view-popup": "../../components/viewPopup",
"good-popup": "../../components/goodPopup"
}
}

View File

@ -0,0 +1 @@
<view class="content"><up-navbar wx:if="{{a}}" u-s="{{['left']}}" style="z-index:10080" u-i="1ba6254c-0" bind:__l="__l" u-p="{{a}}"><view style="font-size:30rpx;font-weight:bold" slot="left">惠农批发</view></up-navbar><view class="navbar"><view style="width:500rpx"><up-search wx:if="{{e}}" bindsearch="{{b}}" bindclear="{{c}}" u-i="1ba6254c-1" bind:__l="__l" bindupdateModelValue="{{d}}" u-p="{{e}}"></up-search></view><view class="nav-item" bindtap="{{g}}"><image src="{{f}}"></image><text>购物车</text></view><view class="nav-item" bindtap="{{i}}"><image src="{{h}}"></image><text>个人中心</text></view></view><view style="position:relative;overflow:hidden"><scroll-view class="head-view" scroll-x><view class="list"><view wx:for="{{j}}" wx:for-item="item" wx:key="e" class="{{['item', item.d && 'item-active']}}" bindtap="{{item.f}}"><view class="c-img"><up-image wx:if="{{item.b}}" u-i="{{item.a}}" bind:__l="__l" u-p="{{item.b}}"></up-image></view><view class="c-text u-line-1">{{item.c}}</view></view><view class="item" style="width:80rpx;height:20rpx"></view></view></scroll-view><view class="r-btn" bindtap="{{l}}"><view>全</view><view>部</view><up-icon wx:if="{{k}}" u-i="1ba6254c-3" bind:__l="__l" u-p="{{k}}"></up-icon></view></view><view-popup wx:if="{{m}}" u-s="{{['d']}}" bindclose="{{o}}" u-i="1ba6254c-4" bind:__l="__l" u-p="{{p}}"><view class="cateOne"><view class="head-title">全部分类</view><scroll-view scroll-y style="height:600rpx"><view class="list"><view wx:for="{{n}}" wx:for-item="item" wx:key="e" class="{{['item', item.d && 'item-active']}}" bindtap="{{item.f}}"><view class="c-img"><up-image wx:if="{{item.b}}" u-i="{{item.a}}" bind:__l="__l" u-p="{{item.b}}"></up-image></view><view class="c-text u-line-1">{{item.c}}</view></view></view></scroll-view></view></view-popup><view class="scroll-box"><scroll-view class="left" scroll-y><view wx:for="{{q}}" wx:for-item="item" wx:key="c" class="{{['item', 'u-line-1', item.b && 'item-active']}}" bindtap="{{item.d}}">{{item.a}}</view><view style="width:100%;height:300rpx"></view></scroll-view><view class="right"><view class="classify"><scroll-view style="height:90rpx" scroll-x><view class="classify-list"><view wx:for="{{r}}" wx:for-item="item" wx:key="c" class="{{['classify-list-item', 'u-line-1', item.b && 'item-active']}}" bindtap="{{item.d}}">{{item.a}}</view><view style="width:70rpx;flex-shrink:0"></view></view></scroll-view><view class="done" bindtap="{{t}}"><up-icon wx:if="{{s}}" u-i="1ba6254c-6" bind:__l="__l" u-p="{{s}}"></up-icon></view><view class="order-by"><view class="{{['item', v && 'order-active']}}" bindtap="{{w}}">综合</view><view class="{{['item', x && 'order-active']}}" bindtap="{{y}}">价格</view><view class="{{['item', z && 'order-active']}}" bindtap="{{A}}">销量</view></view></view><view-popup wx:if="{{B}}" u-s="{{['d']}}" bindclose="{{D}}" u-i="1ba6254c-7" bind:__l="__l"><view class="cateOne"><scroll-view scroll-y style="height:230rpx"><view class="classify-list"><view wx:for="{{C}}" wx:for-item="item" wx:key="c" class="{{['classify-list-item', 'u-line-1', item.b && 'item-active']}}" bindtap="{{item.d}}">{{item.a}}</view></view></scroll-view></view></view-popup><scroll-view class="list" scroll-y bindscrolltolower="{{G}}"><view wx:for="{{E}}" wx:for-item="item" wx:key="i" class="shop-item" bindtap="{{item.j}}"><view class="shop-img"><up-image wx:if="{{item.b}}" u-i="{{item.a}}" bind:__l="__l" u-p="{{item.b}}"></up-image></view><view class="shop-content"><view class="title"><view class="name u-line-2">{{item.c}}</view><view class="tip u-line-1"><text>{{item.d}}|</text><text>{{item.e}}|</text><text>{{item.f}}</text></view></view><view class="price-btn"><view class="price">¥{{item.g}}</view><view class="btn"><u--icon wx:if="{{F}}" u-i="{{item.h}}" bind:__l="__l" u-p="{{F}}"></u--icon></view></view></view></view><view style="width:100%;height:300rpx"></view></scroll-view></view></view><view class="fiexd-btn-box"><view class="price-info"><view class="row"><view>合计</view><view class="price">¥<text style="font-size:36rpx">{{H}}</text></view></view></view><view class="btn"><up-button wx:if="{{J}}" u-s="{{['d']}}" bindclick="{{I}}" u-i="1ba6254c-10" bind:__l="__l" u-p="{{J}}">结算</up-button></view><view class="cart" bindtap="{{M}}"><image src="{{K}}"></image><view class="badge">{{L}}</view></view></view><good-popup wx:if="{{Q}}" class="r" u-r="goodRef" bindclose="{{O}}" bindchange="{{P}}" u-i="1ba6254c-11" bind:__l="__l" u-p="{{Q}}"/></view>

View File

@ -0,0 +1,353 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.content {
background-color: #fff;
}
.navbar {
padding: 0 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 22rpx;
color: #777;
}
.navbar .nav-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.navbar .nav-item image {
height: 40rpx;
width: 40rpx;
}
.head-view {
background-color: #fff;
height: 180rpx;
width: 750rpx;
}
.head-view .list {
height: 100%;
display: flex;
align-items: center;
padding: 0 20rpx;
font-size: 22rpx;
}
.head-view .list .item {
width: 120rpx;
flex-shrink: 0;
margin-right: 20rpx;
display: flex;
flex-direction: column;
align-items: center;
}
.head-view .list .item .c-img {
height: 100rpx;
width: 100rpx;
flex-shrink: 0;
border-radius: 50%;
border: 2px solid transparent;
overflow: hidden;
}
.head-view .list .item .c-text {
width: 100%;
text-align: center;
box-sizing: border-box;
padding: 2rpx 4rpx 3rpx 4rpx;
border-radius: 50rpx;
margin-top: 5rpx;
}
.head-view .list .item-active .c-img {
border: 2px solid #20b128;
}
.head-view .list .item-active .c-text {
background-color: #20b128;
color: #fff;
}
.r-btn {
position: absolute;
right: 0;
top: 0;
height: 100%;
width: 60rpx;
font-size: 24rpx;
background-color: #fff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
box-shadow: -10rpx 0 60rpx 1rpx rgba(0, 0, 0, 0.3);
}
.cateOne {
background-color: #fff;
}
.cateOne .head-title {
color: #666666;
font-size: 30rpx;
height: 80rpx;
line-height: 80rpx;
padding-left: 30rpx;
}
.cateOne .list {
padding: 20rpx 20rpx;
font-size: 22rpx;
display: grid;
grid-template-columns: repeat(5, 1fr);
justify-content: center;
grid-gap: 20rpx;
}
.cateOne .list .item {
width: 120rpx;
margin: 0 auto;
display: flex;
flex-direction: column;
align-items: center;
}
.cateOne .list .item .c-img {
height: 100rpx;
width: 100rpx;
flex-shrink: 0;
border-radius: 50%;
border: 2px solid transparent;
overflow: hidden;
}
.cateOne .list .item .c-text {
width: 100%;
text-align: center;
box-sizing: border-box;
padding: 2rpx 4rpx 3rpx 4rpx;
border-radius: 50rpx;
margin-top: 5rpx;
}
.cateOne .list .item-active .c-img {
border: 2px solid #20b128;
}
.cateOne .list .item-active .c-text {
background-color: #20b128;
color: #fff;
}
.cateOne .classify-list {
padding: 20rpx 30rpx;
font-size: 22rpx;
display: grid;
grid-template-columns: repeat(3, 1fr);
justify-content: center;
grid-gap: 20rpx;
}
.cateOne .classify-list .classify-list-item {
flex-shrink: 0;
text-align: center;
width: 150rpx;
height: 42rpx;
line-height: 42rpx;
background: #F6F6F6;
border-radius: 22rpx 22rpx 22rpx 22rpx;
border: 1rpx solid transparent;
}
.cateOne .classify-list .item-active {
border: 1rpx solid #20b128;
color: #20b128;
background-color: rgba(32, 177, 40, 0.1);
}
.scroll-box {
display: flex;
}
.scroll-box .left {
height: calc(100vh - var(--window-top) - var(--window-bottom) - 500rpx);
width: 170rpx;
box-sizing: border-box;
background-color: #f6f6f6;
font-size: 24rpx;
}
.scroll-box .left .item {
height: 96rpx;
line-height: 96rpx;
text-align: center;
}
.scroll-box .left .item-active {
background-color: #fff;
position: relative;
color: #20b128;
}
.scroll-box .left .item-active::before {
content: "";
background-color: #20b128;
width: 6rpx;
height: 48rpx;
border-radius: 10rpx;
position: absolute;
left: 0;
top: 50%;
transform: translate(0, -50%);
}
.scroll-box .right {
height: calc(100vh - var(--window-top) - 500rpx);
width: 580rpx;
box-sizing: border-box;
position: relative;
overflow: hidden;
}
.scroll-box .right .classify {
height: 150rpx;
background-color: #fff;
border-bottom: 1rpx solid #f6f6f6;
position: relative;
font-size: 24rpx;
}
.scroll-box .right .classify .classify-list {
display: flex;
padding: 20rpx;
}
.scroll-box .right .classify .classify-list .classify-list-item {
flex-shrink: 0;
text-align: center;
width: 108rpx;
height: 42rpx;
line-height: 42rpx;
background: #F6F6F6;
border-radius: 22rpx 22rpx 22rpx 22rpx;
margin-right: 20rpx;
border: 1rpx solid transparent;
}
.scroll-box .right .classify .classify-list .item-active {
border: 1rpx solid #20b128;
color: #20b128;
background-color: rgba(32, 177, 40, 0.1);
}
.scroll-box .right .classify .done {
height: 90rpx;
width: 60rpx;
position: absolute;
top: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
background-color: #fff;
}
.scroll-box .right .classify .order-by {
display: flex;
justify-content: flex-end;
align-items: center;
}
.scroll-box .right .classify .order-by .item {
padding-right: 20rpx;
}
.scroll-box .right .classify .order-by .order-active {
color: #20b128;
}
.scroll-box .right .list {
height: calc(100vh - var(--window-top) - 600rpx);
}
.scroll-box .right .list .shop-item {
padding: 20rpx;
border-bottom: 1rpx solid #f6f6f6;
background-color: #fff;
display: flex;
}
.scroll-box .right .list .shop-item .shop-img {
height: 160rpx;
width: 160rpx;
margin-right: 20rpx;
border-radius: 14rpx;
overflow: hidden;
}
.scroll-box .right .list .shop-item .shop-content {
width: 380rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.scroll-box .right .list .shop-item .shop-content .title .name {
font-size: 28rpx;
}
.scroll-box .right .list .shop-item .shop-content .title .tip {
color: #999;
font-size: 24rpx;
margin: 12rpx 0;
}
.scroll-box .right .list .shop-item .shop-content .price {
font-size: 30rpx;
font-weight: bold;
color: #F55726;
}
.scroll-box .right .list .shop-item .shop-content .price-btn {
display: flex;
justify-content: space-between;
}
.scroll-box .right .list .shop-item .shop-content .price-btn .btn {
display: flex;
align-items: center;
}
.scroll-box .right .list .shop-item .shop-content .price-btn .btn .num {
width: 60rpx;
text-align: center;
}
.fiexd-btn-box {
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
height: 140rpx;
height: calc(constant(safe-area-inset-bottom) + 140rpx);
/* 适用于iOS设备 */
height: calc(env(safe-area-inset-bottom) + 140rpx);
/* 适用于Android设备 */
padding-top: 40rpx;
}
.fiexd-btn-box .price-info .row {
display: flex;
font-size: 26rpx;
align-items: center;
}
.fiexd-btn-box .price-info .row > view {
margin-right: 15rpx;
}
.fiexd-btn-box .price-info .row .price {
color: #F55726;
}
.fiexd-btn-box .btn {
width: 200rpx;
}
.fiexd-btn-box .cart {
position: absolute;
top: -40rpx;
left: 40rpx;
}
.fiexd-btn-box .cart image {
width: 80rpx;
height: 80rpx;
}
.fiexd-btn-box .cart .badge {
position: absolute;
top: 0;
right: 0;
background-color: #F55726;
color: #fff;
border-radius: 50%;
width: 26rpx;
height: 26rpx;
text-align: center;
line-height: 26rpx;
font-size: 18rpx;
}

View File

@ -0,0 +1,239 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const api_user = require("../../api/user.js");
const store_user = require("../../store/user.js");
require("../../utils/request.js");
require("../../config/app.js");
if (!Array) {
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
const _easycom_up_navbar2 = common_vendor.resolveComponent("up-navbar");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
const _easycom_up_transition2 = common_vendor.resolveComponent("up-transition");
const _easycom_up_input2 = common_vendor.resolveComponent("up-input");
const _easycom_up_code2 = common_vendor.resolveComponent("up-code");
(_easycom_up_icon2 + _easycom_up_navbar2 + _easycom_up_button2 + _easycom_up_transition2 + _easycom_up_input2 + _easycom_up_code2)();
}
const _easycom_up_icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_up_navbar = () => "../../uni_modules/uview-plus/components/u-navbar/u-navbar.js";
const _easycom_up_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js";
const _easycom_up_transition = () => "../../uni_modules/uview-plus/components/u-transition/u-transition.js";
const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js";
const _easycom_up_code = () => "../../uni_modules/uview-plus/components/u-code/u-code.js";
if (!Math) {
(_easycom_up_icon + _easycom_up_navbar + _easycom_up_button + _easycom_up_transition + _easycom_up_input + _easycom_up_code + bindPhone)();
}
const bindPhone = () => "../../components/bindPhone.js";
const _sfc_main = {
__name: "login",
setup(__props) {
const navToIndex = () => {
if (!userStore.userInfo.supplier)
common_vendor.index.reLaunch({
url: "/pages/index/index"
});
else
common_vendor.index.$u.toast("功能开发中");
};
const userStore = store_user.useUserStore();
if (userStore.userInfo && userStore.userInfo.mobile) {
navToIndex();
} else {
userStore.setToken("");
userStore.setUserInfo({});
}
const showWeixin = common_vendor.ref(true);
const isAgree = common_vendor.ref(false);
const weixinLogin = () => {
if (!isAgree.value)
return common_vendor.index.$u.toast("请先阅读并同意协议");
common_vendor.index.showLoading({
title: "登录中"
});
common_vendor.index.login({
provider: "weixin",
success: (res) => {
api_user.userLoginWeixinApi({
code: res.code
}).then((res2) => {
common_vendor.index.hideLoading();
userStore.setToken(res2.data.token);
userStore.setUserInfo(res2.data);
if (!res2.data.mobile) {
return showBind.value = true;
}
navToIndex();
});
},
fail: (err) => {
console.log(err);
common_vendor.index.$u.toast("登录失败");
}
});
};
const showBind = common_vendor.ref(false);
const getPhoneNumber = (e) => {
var _a;
console.log("===", e);
if (((_a = e.detail) == null ? void 0 : _a.errMsg) == "getPhoneNumber:ok") {
api_user.getMobileByMnpApi({
code: e.detail.code
}).then((res) => {
navToIndex();
});
} else {
console.log("用户拒绝授权");
return common_vendor.index.$u.toast("您拒绝了授权");
}
};
const loginForm = common_vendor.ref({
phone: "15366662222",
code: ""
});
const isPhone = () => {
loginForm.value.phone = loginForm.value.phone.replace(/\s*/g, "");
return !/^1[3456789]\d{9}$/.test(loginForm.value.phone);
};
const codeLogin = () => {
if (!isAgree.value)
return common_vendor.index.$u.toast("请先阅读并同意协议");
if (isPhone())
return common_vendor.index.$u.toast("请输入正确的手机号码");
console.log("登录");
api_user.userLoginApi({
account: "17811111111",
password: "1111",
terminal: 3,
scene: 1
}).then((res) => {
console.log(res);
});
};
const tips = common_vendor.ref("");
const seconds = common_vendor.ref(60);
const uCodeRef = common_vendor.ref(null);
const codeChange = (text) => {
tips.value = text;
};
const getCode = () => {
if (!isAgree.value)
return common_vendor.index.$u.toast("请先阅读并同意协议");
if (uCodeRef.value.canGetCode) {
if (isPhone())
return common_vendor.index.$u.toast("请输入正确的手机号码");
common_vendor.index.showLoading({
title: "正在获取验证码"
});
setTimeout(() => {
common_vendor.index.hideLoading();
common_vendor.index.$u.toast("验证码已发送");
uCodeRef.value.start();
}, 2e3);
} else {
common_vendor.index.$u.toast("倒计时结束后再发送");
}
};
const navBack = () => {
if (showWeixin.value == false) {
showWeixin.value = true;
return true;
} else
common_vendor.index.navigateBack();
};
return (_ctx, _cache) => {
return common_vendor.e({
a: !showWeixin.value
}, !showWeixin.value ? {
b: common_vendor.o(navBack),
c: common_vendor.p({
name: "arrow-left",
size: "20"
})
} : {}, {
d: common_vendor.p({
title: "登录",
autoBack: false,
placeholder: true,
bgColor: "rgba(0,0,0,0)"
}),
e: showWeixin.value
}, showWeixin.value ? {
f: common_vendor.p({
name: "weixin-fill",
color: "#fff",
size: "28"
}),
g: common_vendor.o(weixinLogin),
h: common_vendor.p({
color: "#20B128",
size: "large"
}),
i: common_vendor.o(($event) => showWeixin.value = false),
j: common_vendor.p({
color: "#ECFFEE",
size: "large"
}),
k: common_vendor.p({
show: showWeixin.value
})
} : {
l: common_vendor.o(($event) => loginForm.value.phone = $event),
m: common_vendor.p({
customStyle: {
height: "100%"
},
placeholderClass: "place",
border: "none",
placeholder: "请输入手机号",
type: "number",
modelValue: loginForm.value.phone
}),
n: common_vendor.sr(uCodeRef, "23c3038c-9,23c3038c-8", {
"k": "uCodeRef"
}),
o: common_vendor.o(codeChange),
p: common_vendor.p({
seconds: seconds.value
}),
q: common_vendor.t(tips.value),
r: common_vendor.o(getCode),
s: common_vendor.o(($event) => loginForm.value.code = $event),
t: common_vendor.p({
customStyle: {
height: "100%"
},
maxlength: 4,
placeholderClass: "place",
border: "none",
placeholder: "请输入验证码",
type: "number",
modelValue: loginForm.value.code
}),
v: common_vendor.o(codeLogin),
w: common_vendor.p({
color: "#20B128",
size: "large"
}),
x: common_vendor.p({
show: !showWeixin.value
})
}, {
y: !isAgree.value
}, !isAgree.value ? {
z: common_vendor.o(($event) => isAgree.value = true),
A: common_assets._imports_1
} : {
B: common_vendor.o(($event) => isAgree.value = false),
C: common_assets._imports_0
}, {
D: common_vendor.o(($event) => showBind.value = false),
E: common_vendor.o(getPhoneNumber),
F: common_vendor.p({
show: showBind.value
})
});
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pages/login/login.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,14 @@
{
"navigationBarTitleText": "登录",
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"usingComponents": {
"up-icon": "../../uni_modules/uview-plus/components/u-icon/u-icon",
"up-navbar": "../../uni_modules/uview-plus/components/u-navbar/u-navbar",
"up-button": "../../uni_modules/uview-plus/components/u-button/u-button",
"up-transition": "../../uni_modules/uview-plus/components/u-transition/u-transition",
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-code": "../../uni_modules/uview-plus/components/u-code/u-code",
"bind-phone": "../../components/bindPhone"
}
}

View File

@ -0,0 +1 @@
<view><up-navbar wx:if="{{d}}" u-s="{{['left']}}" u-i="23c3038c-0" bind:__l="__l" u-p="{{d}}"><view slot="left"><up-icon wx:if="{{a}}" bindclick="{{b}}" u-i="23c3038c-1,23c3038c-0" bind:__l="__l" u-p="{{c}}"></up-icon><view wx:else></view></view></up-navbar><view class="login-box"><image class="logo" src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/35adb202404271727457954.png"></image><view class="tips">欢迎登录惠农批发</view><block wx:if="{{e}}"><up-transition wx:if="{{k}}" u-s="{{['d']}}" u-i="23c3038c-2" bind:__l="__l" u-p="{{k}}"><view class="btn"><up-button wx:if="{{h}}" u-s="{{['d']}}" bindclick="{{g}}" u-i="23c3038c-3,23c3038c-2" bind:__l="__l" u-p="{{h}}"><up-icon wx:if="{{f}}" u-i="23c3038c-4,23c3038c-3" bind:__l="__l" u-p="{{f}}"></up-icon>微信快捷登录</up-button></view><view class="btn"><up-button wx:if="{{j}}" u-s="{{['d']}}" bindclick="{{i}}" u-i="23c3038c-5,23c3038c-2" bind:__l="__l" u-p="{{j}}"><text style="color:#20B128">使用短信验证登录</text></up-button></view></up-transition></block><block wx:else><up-transition wx:if="{{x}}" u-s="{{['d']}}" u-i="23c3038c-6" bind:__l="__l" u-p="{{x}}"><view class="form"><view class="input"><up-input wx:if="{{m}}" u-s="{{['prefix']}}" u-i="23c3038c-7,23c3038c-6" bind:__l="__l" bindupdateModelValue="{{l}}" u-p="{{m}}"><image style="height:40rpx;width:40rpx;margin-top:6rpx" src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/48491202404281006484208.png" slot="prefix"></image></up-input></view><view class="input"><up-input wx:if="{{t}}" u-s="{{['prefix','suffix']}}" u-i="23c3038c-8,23c3038c-6" bind:__l="__l" bindupdateModelValue="{{s}}" u-p="{{t}}"><image style="height:40rpx;width:40rpx;margin-top:6rpx" src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/3a42f202404281007454918.png" slot="prefix"></image><view slot="suffix"><up-code wx:if="{{p}}" class="r" u-r="uCodeRef" bindchange="{{o}}" u-i="23c3038c-9,23c3038c-8" bind:__l="__l" u-p="{{p}}"></up-code><view style="color:#20B128" bindtap="{{r}}">{{q}}</view></view></up-input></view></view><view class="btn"><up-button wx:if="{{w}}" u-s="{{['d']}}" bindclick="{{v}}" u-i="23c3038c-10,23c3038c-6" bind:__l="__l" u-p="{{w}}">登录</up-button></view></up-transition></block><view class="agreement"><image wx:if="{{y}}" bindtap="{{z}}" src="{{A}}"></image><image wx:else bindtap="{{B}}" src="{{C}}"></image><view> 我已同意<text>《用户协议》</text>与<text>《隐私政策》</text></view></view></view><bind-phone wx:if="{{F}}" bindclose="{{D}}" bindchange="{{E}}" u-i="23c3038c-11" bind:__l="__l" u-p="{{F}}"/></view>

View File

@ -0,0 +1,84 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
page {
background-color: #fff;
}
.login-box {
width: 700rpx;
height: 80vh;
margin: 0 auto;
box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 10vh;
position: relative;
}
.login-box .logo {
height: 152rpx;
width: 152rpx;
}
.login-box .tips {
color: #444444;
font-size: 28rpx;
margin: 30rpx 0;
}
.login-box .btn {
width: 600rpx;
margin-top: 40rpx;
font-size: 32rpx !important;
}
.login-box .form .input {
background-color: #ECFFEE;
width: 600rpx;
height: 90rpx;
box-sizing: border-box;
padding: 0 20rpx;
margin-bottom: 40rpx;
}
.login-box .form .input .place {
color: #333;
}
.login-box .form .input .customStyle {
color: red;
}
.login-box .agreement {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
display: flex;
justify-content: center;
color: #444;
}
.login-box .agreement image {
width: 40rpx;
height: 40rpx;
margin-right: 10rpx;
}
.login-box .agreement text {
color: #20B128;
}

View File

@ -0,0 +1,101 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const store_user = require("../../store/user.js");
const api_order = require("../../api/order.js");
require("../../utils/request.js");
require("../../config/app.js");
if (!Array) {
const _easycom_up_navbar2 = common_vendor.resolveComponent("up-navbar");
const _easycom_up_avatar2 = common_vendor.resolveComponent("up-avatar");
const _easycom_up_cell2 = common_vendor.resolveComponent("up-cell");
const _easycom_up_cell_group2 = common_vendor.resolveComponent("up-cell-group");
(_easycom_up_navbar2 + _easycom_up_avatar2 + _easycom_up_cell2 + _easycom_up_cell_group2)();
}
const _easycom_up_navbar = () => "../../uni_modules/uview-plus/components/u-navbar/u-navbar.js";
const _easycom_up_avatar = () => "../../uni_modules/uview-plus/components/u-avatar/u-avatar.js";
const _easycom_up_cell = () => "../../uni_modules/uview-plus/components/u-cell/u-cell.js";
const _easycom_up_cell_group = () => "../../uni_modules/uview-plus/components/u-cell-group/u-cell-group.js";
if (!Math) {
(_easycom_up_navbar + _easycom_up_avatar + _easycom_up_cell + _easycom_up_cell_group)();
}
const _sfc_main = {
__name: "my",
setup(__props) {
const userStore = store_user.useUserStore();
const userInfo = userStore.userInfo;
const orderCount = common_vendor.ref({
no_pay: 0,
receiving: 0,
waiting: 0
});
const getOrderCount = () => {
api_order.orderCountApi().then((res) => {
orderCount.value = res.data;
});
};
getOrderCount();
const navTo = (type = 0) => {
common_vendor.index.navigateTo({
url: `/pagesOrder/order/order?type=${type}`
});
};
const logout = () => {
userStore.setToken("");
userStore.setUserInfo({});
common_vendor.index.reLaunch({
url: "/pages/login/login"
});
};
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.p({
title: "我的",
bgColor: "rgba(0,0,0,0)",
autoBack: true
}),
b: common_vendor.p({
src: common_vendor.unref(userInfo).avatar,
size: "80"
}),
c: common_vendor.t(common_vendor.unref(userInfo).nickname),
d: common_vendor.t(common_vendor.unref(userInfo).id),
e: orderCount.value.no_pay
}, orderCount.value.no_pay ? {
f: common_vendor.t(orderCount.value.no_pay)
} : {}, {
g: common_vendor.o(($event) => navTo(1)),
h: orderCount.value.waiting
}, orderCount.value.waiting ? {
i: common_vendor.t(orderCount.value.waiting)
} : {}, {
j: common_vendor.o(($event) => navTo(2)),
k: orderCount.value.receiving
}, orderCount.value.receiving ? {
l: common_vendor.t(orderCount.value.receiving)
} : {}, {
m: common_vendor.o(($event) => navTo(3)),
n: common_vendor.o(($event) => navTo()),
o: common_vendor.p({
title: "我的地址",
isLink: true,
url: "/pagesOrder/addressList/addressList"
}),
p: common_vendor.p({
title: "意见反馈",
isLink: true
}),
q: common_vendor.p({
title: "关于我们",
isLink: true
}),
r: common_vendor.o(logout),
s: common_vendor.p({
title: "退出登录",
isLink: true
})
});
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pages/my/my.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,11 @@
{
"navigationBarTitleText": "个人中心",
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"usingComponents": {
"up-navbar": "../../uni_modules/uview-plus/components/u-navbar/u-navbar",
"up-avatar": "../../uni_modules/uview-plus/components/u-avatar/u-avatar",
"up-cell": "../../uni_modules/uview-plus/components/u-cell/u-cell",
"up-cell-group": "../../uni_modules/uview-plus/components/u-cell-group/u-cell-group"
}
}

View File

@ -0,0 +1 @@
<view><up-navbar wx:if="{{a}}" u-i="39cfeb26-0" bind:__l="__l" u-p="{{a}}"></up-navbar><view class="user-info"><image class="bg" src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/e3a7b202404261113002322.webp" mode="widthFix"></image><view class="u-card"><up-avatar wx:if="{{b}}" u-i="39cfeb26-1" bind:__l="__l" u-p="{{b}}"></up-avatar><view class="content"><view class="u-phone">{{c}}</view><view class="u-id">ID: {{d}}</view></view></view></view><view class="order-info-box"><view class="order-info"><view class="info-head">我的订单</view><view class="info-list"><view class="list-item" bindtap="{{g}}"><image src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/f335a202404261401535608.png"></image><view class="">待付款</view><view wx:if="{{e}}" class="badge">{{f}}</view></view><view class="list-item" bindtap="{{j}}"><image src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/53747202405061509465296.png"></image><view class="">待发货</view><view wx:if="{{h}}" class="badge">{{i}}</view></view><view class="list-item" bindtap="{{m}}"><image src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/45241202404261403353935.png"></image><view class="">待收货</view><view wx:if="{{k}}" class="badge">{{l}}</view></view><view class="list-item" bindtap="{{n}}"><image src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/abdcd202404261406199643.png"></image><view class="">全部订单</view></view></view></view></view><view class="card"><up-cell-group u-s="{{['d']}}" u-i="39cfeb26-2" bind:__l="__l"><up-cell wx:if="{{o}}" u-i="39cfeb26-3,39cfeb26-2" bind:__l="__l" u-p="{{o}}"></up-cell></up-cell-group></view><view class="card"><up-cell-group u-s="{{['d']}}" u-i="39cfeb26-4" bind:__l="__l"><up-cell wx:if="{{p}}" u-i="39cfeb26-5,39cfeb26-4" bind:__l="__l" u-p="{{p}}"></up-cell><up-cell wx:if="{{q}}" u-i="39cfeb26-6,39cfeb26-4" bind:__l="__l" u-p="{{q}}"></up-cell><up-cell wx:if="{{s}}" bindclick="{{r}}" u-i="39cfeb26-7,39cfeb26-4" bind:__l="__l" u-p="{{s}}"></up-cell></up-cell-group></view></view>

View File

@ -0,0 +1,122 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.user-info {
overflow: hidden;
position: relative;
width: 750rpx;
height: 450rpx;
}
.user-info .bg {
width: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
.user-info .u-card {
box-sizing: border-box;
padding: 50rpx 0 50rpx 50rpx;
display: flex;
position: absolute;
bottom: 50rpx;
left: 0;
z-index: 2;
}
.user-info .u-card .content {
width: 500rpx;
padding-left: 30rpx;
display: flex;
flex-direction: column;
justify-content: center;
}
.user-info .u-card .content .u-phone {
font-size: 32rpx;
margin-bottom: 16rpx;
}
.user-info .u-card .content .u-id {
font-size: 24rpx;
}
.order-info-box {
margin: 20rpx;
height: 140rpx;
position: relative;
}
.order-info-box .order-info {
height: 220rpx;
width: 710rpx;
background-color: #fff;
border-radius: 14rpx;
position: absolute;
top: -80rpx;
left: 0;
z-index: 3;
background-image: url("https://lihai001.oss-cn-chengdu.aliyuncs.com/def/a8863202404261349533191.png");
background-size: 28% 100%;
background-position: right;
background-repeat: no-repeat;
}
.order-info-box .order-info .info-head {
margin-left: 20rpx;
margin-top: 20rpx;
margin-bottom: 20rpx;
font-size: 32rpx;
}
.order-info-box .order-info .info-list {
height: 110rpx;
display: flex;
font-size: 26rpx;
}
.order-info-box .order-info .info-list .list-item {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
align-items: center;
position: relative;
}
.order-info-box .order-info .info-list .list-item image {
width: 64rpx;
height: 64rpx;
}
.order-info-box .order-info .info-list .list-item .badge {
position: absolute;
top: 0;
right: 20%;
width: 30rpx;
height: 30rpx;
border-radius: 50%;
text-align: center;
line-height: 30rpx;
font-size: 22rpx;
color: #fff;
background-color: #F55726;
}
.card {
margin: 20rpx;
background-color: #fff;
border-radius: 14rpx;
overflow: hidden;
}

View File

@ -0,0 +1,145 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const api_user = require("../../api/user.js");
require("../../utils/request.js");
require("../../config/app.js");
require("../../store/user.js");
if (!Array) {
const _easycom_up_input2 = common_vendor.resolveComponent("up-input");
const _easycom_up_form_item2 = common_vendor.resolveComponent("up-form-item");
const _easycom_up_form2 = common_vendor.resolveComponent("up-form");
const _easycom_up_switch2 = common_vendor.resolveComponent("up-switch");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
(_easycom_up_input2 + _easycom_up_form_item2 + _easycom_up_form2 + _easycom_up_switch2 + _easycom_up_button2)();
}
const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js";
const _easycom_up_form_item = () => "../../uni_modules/uview-plus/components/u-form-item/u-form-item.js";
const _easycom_up_form = () => "../../uni_modules/uview-plus/components/u-form/u-form.js";
const _easycom_up_switch = () => "../../uni_modules/uview-plus/components/u-switch/u-switch.js";
const _easycom_up_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js";
if (!Math) {
(_easycom_up_input + _easycom_up_form_item + _easycom_up_form + _easycom_up_switch + _easycom_up_button)();
}
const _sfc_main = {
__name: "addressEdit",
setup(__props) {
const mode = common_vendor.ref("add");
const formData = common_vendor.ref({
real_name: "",
phone: "",
detail: "",
is_default: 0
});
const rules = common_vendor.ref({
real_name: [{ required: true, message: "请输入姓名", trigger: ["blur"] }],
phone: [{ required: true, message: "请输入手机号", trigger: ["blur"] }],
detail: [{ required: true, message: "请输入地址", trigger: ["blur"] }]
});
const uForm = common_vendor.ref(null);
const submit = () => {
uForm.value.validate().then(() => {
console.log("验证通过");
if (mode.value == "add") {
api_user.addressCreateApi(formData.value).then((res) => {
common_vendor.index.$u.toast(res.msg);
common_vendor.index.$u.sleep(800).then((res2) => {
common_vendor.index.navigateBack();
});
});
} else {
api_user.addressEditApi(formData.value).then((res) => {
common_vendor.index.$u.toast(res.msg);
common_vendor.index.$u.sleep(800).then((res2) => {
common_vendor.index.navigateBack();
});
});
}
}).catch(() => {
console.log("验证失败");
});
};
const getAddressDetil = (address_id) => {
api_user.addressDetailApi({
address_id
}).then((res) => {
formData.value = res.data;
});
};
common_vendor.onLoad((options) => {
if (options.mode == "edit" && options.address_id) {
mode.value = "edit";
common_vendor.index.setNavigationBarTitle({
title: "编辑地址"
});
getAddressDetil(options.address_id);
} else
common_vendor.index.setNavigationBarTitle({
title: "新增地址"
});
});
return (_ctx, _cache) => {
return {
a: common_vendor.o(($event) => formData.value.real_name = $event),
b: common_vendor.p({
disabledColor: "#ffffff",
border: "none",
placeholder: "请填写收货人姓名",
modelValue: formData.value.real_name
}),
c: common_vendor.p({
label: "收货人",
prop: "real_name",
borderBottom: true
}),
d: common_vendor.o(($event) => formData.value.phone = $event),
e: common_vendor.p({
disabledColor: "#ffffff",
type: "number",
placeholder: "请填写联系电话",
border: "none",
modelValue: formData.value.phone
}),
f: common_vendor.p({
label: "联系电话",
prop: "phone",
borderBottom: true
}),
g: common_vendor.o(($event) => formData.value.detail = $event),
h: common_vendor.p({
disabledColor: "#ffffff",
placeholder: "请填写详细地址",
border: "none",
modelValue: formData.value.detail
}),
i: common_vendor.p({
label: "详细地址",
prop: "detail",
borderBottom: true
}),
j: common_vendor.sr(uForm, "663ade36-0", {
"k": "uForm"
}),
k: common_vendor.p({
labelPosition: "left",
model: formData.value,
rules: rules.value,
labelWidth: "100"
}),
l: common_vendor.o(($event) => formData.value.is_default = $event),
m: common_vendor.p({
activeValue: 1,
inactiveValue: 0,
activeColor: "#20B128",
modelValue: formData.value.is_default
}),
n: common_vendor.o(submit),
o: common_vendor.p({
color: "#20B128",
shape: "circle"
})
};
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pagesOrder/addressEdit/addressEdit.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,11 @@
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"usingComponents": {
"up-input": "../../uni_modules/uview-plus/components/u-input/u-input",
"up-form-item": "../../uni_modules/uview-plus/components/u-form-item/u-form-item",
"up-form": "../../uni_modules/uview-plus/components/u-form/u-form",
"up-switch": "../../uni_modules/uview-plus/components/u-switch/u-switch",
"up-button": "../../uni_modules/uview-plus/components/u-button/u-button"
}
}

View File

@ -0,0 +1 @@
<view class=""><view class="card"><up-form wx:if="{{k}}" class="r" u-s="{{['d']}}" u-r="uForm" u-i="663ade36-0" bind:__l="__l" u-p="{{k}}"><up-form-item wx:if="{{c}}" u-s="{{['d']}}" u-i="663ade36-1,663ade36-0" bind:__l="__l" u-p="{{c}}"><up-input wx:if="{{b}}" u-i="663ade36-2,663ade36-1" bind:__l="__l" bindupdateModelValue="{{a}}" u-p="{{b}}"></up-input></up-form-item><up-form-item wx:if="{{f}}" u-s="{{['d']}}" u-i="663ade36-3,663ade36-0" bind:__l="__l" u-p="{{f}}"><up-input wx:if="{{e}}" u-i="663ade36-4,663ade36-3" bind:__l="__l" bindupdateModelValue="{{d}}" u-p="{{e}}"></up-input></up-form-item><up-form-item wx:if="{{i}}" u-s="{{['d']}}" u-i="663ade36-5,663ade36-0" bind:__l="__l" u-p="{{i}}"><up-input wx:if="{{h}}" u-i="663ade36-6,663ade36-5" bind:__l="__l" bindupdateModelValue="{{g}}" u-p="{{h}}"></up-input></up-form-item></up-form></view><view class="card"><view class="is-default"><view>设置为默认地址</view><up-switch wx:if="{{m}}" u-i="663ade36-7" bind:__l="__l" bindupdateModelValue="{{l}}" u-p="{{m}}"></up-switch></view></view><view class="bottom-fixed"><up-button wx:if="{{o}}" u-s="{{['d']}}" bindclick="{{n}}" u-i="663ade36-8" bind:__l="__l" u-p="{{o}}">保存</up-button></view></view>

View File

@ -0,0 +1,55 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.card {
margin: 20rpx;
background-color: #fff;
border-radius: 14rpx;
padding: 0 30rpx;
}
.card .is-default {
display: flex;
align-items: center;
justify-content: space-between;
padding: 20rpx 0;
}
.bottom-fixed {
position: fixed;
bottom: 0;
left: 0;
height: 120rpx;
height: calc(constant(safe-area-inset-bottom) + 120rpx);
/* 适用于iOS设备 */
height: calc(env(safe-area-inset-bottom) + 120rpx);
/* 适用于Android设备 */
width: 100%;
box-sizing: border-box;
background-color: #fff;
padding: 20rpx;
padding-bottom: calc(constant(safe-area-inset-bottom) + 20rpx);
/* 适用于iOS设备 */
padding-bottom: calc(env(safe-area-inset-bottom) + 20rpx);
/* 适用于Android设备 */
}

View File

@ -0,0 +1,104 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const api_user = require("../../api/user.js");
require("../../utils/request.js");
require("../../config/app.js");
require("../../store/user.js");
if (!Array) {
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
(_easycom_up_icon2 + _easycom_up_button2)();
}
const _easycom_up_icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_up_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js";
if (!Math) {
(_easycom_up_icon + _easycom_up_button + modal)();
}
const modal = () => "../../components/modal.js";
const _sfc_main = {
__name: "addressList",
setup(__props) {
const navTo = (url) => {
common_vendor.index.navigateTo({
url
});
};
const show = common_vendor.ref(false);
const deleteInfo = common_vendor.ref({});
const showDelete = (item) => {
if (addressList.value.length <= 1)
return common_vendor.index.$u.toast("最后一个地址无法删除!");
deleteInfo.value = item;
show.value = true;
};
const updateDefault = (item) => {
api_user.addressEditApi({
...item,
is_default: !item.is_default
}).then((res) => {
getAddressLists();
});
};
const deleteAddress = () => {
api_user.addressDeleteApi({
address_id: deleteInfo.value.address_id
}).then((res) => {
getAddressLists();
});
show.value = false;
};
const addressList = common_vendor.ref([]);
const getAddressLists = () => {
api_user.addressListsApi().then((res) => {
addressList.value = res.data.lists;
});
};
common_vendor.onShow(() => {
getAddressLists();
});
return (_ctx, _cache) => {
return {
a: common_vendor.f(addressList.value, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.real_name),
b: common_vendor.t(item.phone),
c: common_vendor.t(item.detail),
d: item.is_default
}, item.is_default ? {
e: common_assets._imports_0
} : {
f: common_assets._imports_1
}, {
g: common_vendor.o(($event) => updateDefault(item), index),
h: "5e66515e-0-" + i0,
i: common_vendor.o(($event) => showDelete(item), index),
j: "5e66515e-1-" + i0,
k: common_vendor.o(($event) => navTo("/pagesOrder/addressEdit/addressEdit?mode=edit&address_id=" + item.address_id), index),
l: index
});
}),
b: common_vendor.p({
name: "trash"
}),
c: common_vendor.p({
name: "edit-pen"
}),
d: common_vendor.o(($event) => navTo("/pagesOrder/addressEdit/addressEdit")),
e: common_vendor.p({
color: "#20B128",
shape: "circle"
}),
f: common_vendor.o(($event) => show.value = false),
g: common_vendor.o(deleteAddress),
h: common_vendor.p({
show: show.value,
title: "确认删除吗",
content: "删除后不可恢复"
})
};
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pagesOrder/addressList/addressList.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,9 @@
{
"navigationBarTitleText": "地址管理",
"enablePullDownRefresh": false,
"usingComponents": {
"up-icon": "../../uni_modules/uview-plus/components/u-icon/u-icon",
"up-button": "../../uni_modules/uview-plus/components/u-button/u-button",
"modal": "../../components/modal"
}
}

View File

@ -0,0 +1 @@
<view class="list"><view wx:for="{{a}}" wx:for-item="item" wx:key="l" class="address-card"><view class="address-info"><view class="top"><view class="name">收货人:{{item.a}}</view><view class="phone">{{item.b}}</view></view><view class="bottom">{{item.c}}</view></view><view class="btn-box"><view class="left" bindtap="{{item.g}}"><image wx:if="{{item.d}}" src="{{item.e}}"></image><image wx:else src="{{item.f}}"></image><view>设为默认</view></view><view class="right"><view class="btn" bindtap="{{item.i}}"><up-icon wx:if="{{b}}" u-i="{{item.h}}" bind:__l="__l" u-p="{{b}}"></up-icon> 删除 </view><view class="btn" bindtap="{{item.k}}"><up-icon wx:if="{{c}}" u-i="{{item.j}}" bind:__l="__l" u-p="{{c}}"></up-icon> 编辑 </view></view></view></view><view style="width:100%;height:150rpx"></view><view class="bottom-fixed"><up-button wx:if="{{e}}" u-s="{{['d']}}" bindclick="{{d}}" u-i="5e66515e-2" bind:__l="__l" u-p="{{e}}">新增地址</up-button></view><modal wx:if="{{h}}" bindclose="{{f}}" bindchange="{{g}}" u-i="5e66515e-3" bind:__l="__l" u-p="{{h}}"></modal></view>

View File

@ -0,0 +1,104 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.address-card {
margin: 20rpx;
background-color: #fff;
border-radius: 14rpx;
box-sizing: border-box;
padding: 20rpx;
color: #444;
}
.address-card .address-info {
padding-bottom: 20rpx;
border-bottom: 1rpx solid #f6f6f6;
margin-bottom: 20rpx;
}
.address-card .address-info .top {
display: flex;
justify-content: space-between;
font-size: 28rpx;
}
.address-card .address-info .top .name {
color: #000;
}
.address-card .address-info .bottom {
font-size: 26rpx;
margin-top: 10rpx;
}
.address-card .btn-box {
display: flex;
justify-content: space-between;
font-size: 26rpx;
}
.address-card .btn-box .left {
display: flex;
align-items: center;
}
.address-card .btn-box .left image {
width: 40rpx;
height: 40rpx;
margin-right: 6rpx;
}
.address-card .btn-box .right {
display: flex;
color: #7a7a7a;
align-items: center;
}
.address-card .btn-box .right .btn {
display: flex;
margin-left: 20rpx;
}
.address-card .btn-box .right .btn:active {
color: rgba(122, 122, 122, 0.8);
transition: background-color 0.5s;
animation: disappear 0.5s 0.5s forwards;
}
.bottom-fixed {
position: fixed;
bottom: 0;
left: 0;
height: 120rpx;
height: calc(constant(safe-area-inset-bottom) + 120rpx);
/* 适用于iOS设备 */
height: calc(env(safe-area-inset-bottom) + 120rpx);
/* 适用于Android设备 */
width: 100%;
box-sizing: border-box;
background-color: #fff;
padding: 20rpx;
padding-bottom: calc(constant(safe-area-inset-bottom) + 20rpx);
/* 适用于iOS设备 */
padding-bottom: calc(env(safe-area-inset-bottom) + 20rpx);
/* 适用于Android设备 */
}
@keyframes disappear {
to {
opacity: 0;
/* 渐隐 */
transform: scale(0);
/* 缩小 */
}
}

View File

@ -0,0 +1,239 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const api_order = require("../../api/order.js");
const api_user = require("../../api/user.js");
require("../../utils/request.js");
require("../../config/app.js");
require("../../store/user.js");
if (!Array) {
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
const _easycom_up_image2 = common_vendor.resolveComponent("up-image");
const _easycom_up_copy2 = common_vendor.resolveComponent("up-copy");
(_easycom_up_icon2 + _easycom_up_button2 + _easycom_up_image2 + _easycom_up_copy2)();
}
const _easycom_up_icon = () => "../../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_up_button = () => "../../uni_modules/uview-plus/components/u-button/u-button.js";
const _easycom_up_image = () => "../../uni_modules/uview-plus/components/u-image/u-image.js";
const _easycom_up_copy = () => "../../uni_modules/uview-plus/components/u-copy/u-copy.js";
if (!Math) {
(_easycom_up_icon + _easycom_up_button + _easycom_up_image + _easycom_up_copy + orderCanclePopup + addressPopup + modal)();
}
const addressPopup = () => "../../components/addressPopup.js";
const orderCanclePopup = () => "../../components/orderCanclePopup.js";
const modal = () => "../../components/modal.js";
const _sfc_main = {
__name: "detail",
setup(__props) {
const showCancel = common_vendor.ref(false);
const submitCancel = (e) => {
showCancel.value = false;
console.log(e);
common_vendor.index.showToast({
title: "取消成功",
icon: "none"
});
};
const datas = common_vendor.ref({});
const getDetails = () => {
api_order.orderDetailApi({
order_id: datas.value.id
}).then((res) => {
datas.value = res.data;
if (!res.data.paid) {
targetDate = new Date(res.data.create_time).getTime() + 30 * 60 * 1e3;
timer = setInterval(updateCountdown, 1e3);
updateCountdown();
}
});
};
const c_price = (price, index = 0) => {
price = price + "";
return price.split(".")[index] || (index ? "00" : "0");
};
const addressList = common_vendor.ref([]);
const getAddressList = () => {
api_user.addressListsApi().then((res) => {
addressList.value = res.data.lists;
addressList.value.forEach((item) => {
if (item.is_default) {
addressInfo.value = item;
}
});
if (addressList.value.length > 0) {
addressInfo.value = addressList.value[0];
}
});
};
getAddressList();
const showAddress = common_vendor.ref(false);
const addressInfo = common_vendor.ref({});
const changeAddress = (e) => {
addressInfo.value = e;
showAddress.value = false;
};
const rePay = () => {
api_order.rePaymentApi({
order_id: datas.value.id,
pay_type: 1
}).then((res) => {
console.log(res);
});
};
let targetDate = "";
let countDown = common_vendor.ref("");
let timer = null;
function updateCountdown() {
const now = (/* @__PURE__ */ new Date()).getTime();
const distance = targetDate - now;
if (distance < 0)
return clearInterval(timer);
const hours = Math.floor(distance % (1e3 * 60 * 60 * 24) / (1e3 * 60 * 60));
const minutes = Math.floor(distance % (1e3 * 60 * 60) / (1e3 * 60));
const seconds = Math.floor(distance % (1e3 * 60) / 1e3);
countDown.value = `${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`;
if (distance < 0) {
console.log("倒计时结束");
countDown.value = "";
}
}
common_vendor.onLoad((option) => {
common_vendor.index.setNavigationBarTitle({
title: option.type == 0 ? "等待付款" : "订单详情"
});
if (option.id) {
datas.value.id = option.id;
getDetails();
}
});
common_vendor.onBackPress(() => {
clearInterval(timer);
console.log("清除");
});
return (_ctx, _cache) => {
return common_vendor.e({
a: datas.value.paid == 0 && common_vendor.unref(countDown)
}, datas.value.paid == 0 && common_vendor.unref(countDown) ? {
b: common_vendor.t(common_vendor.unref(countDown))
} : {}, {
c: common_vendor.p({
name: "account"
}),
d: common_vendor.t(addressInfo.value.real_name),
e: common_vendor.t(addressInfo.value.phone),
f: common_vendor.t(addressInfo.value.detail),
g: datas.value.paid == 0
}, datas.value.paid == 0 ? {
h: common_vendor.o(($event) => showAddress.value = true),
i: common_vendor.p({
size: "small",
shape: "circle",
color: "#f6f6f6",
customStyle: {
color: "#666666"
}
})
} : {}, {
j: common_vendor.f(datas.value.goods_list, (item, index, i0) => {
return {
a: "666b5ad0-2-" + i0,
b: common_vendor.p({
src: item.imgs,
width: "160rpx",
height: "160rpx"
}),
c: common_vendor.t(item.class_name),
d: common_vendor.t(item.sell),
e: common_vendor.t(item.goods_unit),
f: common_vendor.t(item.nums),
g: common_vendor.t(item.msg),
h: index
};
}),
k: datas.value.paid == 0
}, datas.value.paid == 0 ? common_vendor.e({
l: datas.value.goods_list
}, datas.value.goods_list ? {
m: common_vendor.t(datas.value.goods_list.length),
n: common_vendor.t(c_price(datas.value.total, 0)),
o: common_vendor.t(c_price(datas.value.total, 1))
} : {}, {
p: datas.value.total
}, datas.value.total ? {
q: common_vendor.t(c_price(datas.value.total, 0)),
r: common_vendor.t(c_price(datas.value.total, 1))
} : {}) : {}, {
s: datas.value.paid == 0
}, datas.value.paid == 0 ? common_vendor.e({
t: common_vendor.t(datas.value.number),
v: common_vendor.p({
content: datas.value.number
}),
w: common_vendor.t(datas.value.create_time),
x: datas.value.paid
}, datas.value.paid ? {} : {}) : common_vendor.e({
y: datas.value.goods_list
}, datas.value.goods_list ? {
z: common_vendor.t(c_price(datas.value.total, 0)),
A: common_vendor.t(c_price(datas.value.total, 1))
} : {}, {
B: common_vendor.t(datas.value.number),
C: common_vendor.p({
content: datas.value.number
}),
D: common_vendor.t(datas.value.pay_type == 3 ? "余额支付" : "微信支付"),
E: common_vendor.t(datas.value.create_time),
F: datas.value.paid
}, datas.value.paid ? {} : {}), {
G: datas.value.number
}, datas.value.number ? common_vendor.e({
H: !datas.value.paid
}, !datas.value.paid ? {
I: common_vendor.o(($event) => showCancel.value = true),
J: common_vendor.t(datas.value.total),
K: common_vendor.o(rePay),
L: common_vendor.p({
color: "#20B128",
shape: "circle"
})
} : common_vendor.e({
M: datas.value.status == 0 || datas.value.status == 1
}, datas.value.status == 0 || datas.value.status == 1 ? {
N: common_vendor.o(() => {
}),
O: common_vendor.p({
color: "#20B128",
shape: "circle"
})
} : {
P: common_vendor.o(() => {
}),
Q: common_vendor.p({
color: "#20B128",
shape: "circle"
})
})) : {}, {
R: common_vendor.o(($event) => showCancel.value = false),
S: common_vendor.o(submitCancel),
T: common_vendor.p({
show: showCancel.value
}),
U: addressList.value.length > 0
}, addressList.value.length > 0 ? {
V: common_vendor.o(($event) => showAddress.value = false),
W: common_vendor.o(changeAddress),
X: common_vendor.p({
show: showAddress.value,
list: addressList.value
})
} : {}, {
Y: common_vendor.p({
show: false,
content: "您还没有添加收货地址,请点击添加"
})
});
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pagesOrder/detail/detail.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,13 @@
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"usingComponents": {
"up-icon": "../../uni_modules/uview-plus/components/u-icon/u-icon",
"up-button": "../../uni_modules/uview-plus/components/u-button/u-button",
"up-image": "../../uni_modules/uview-plus/components/u-image/u-image",
"up-copy": "../../uni_modules/uview-plus/components/u-copy/u-copy",
"address-popup": "../../components/addressPopup",
"order-cancle-popup": "../../components/orderCanclePopup",
"modal": "../../components/modal"
}
}

View File

@ -0,0 +1 @@
<view class=""><view wx:if="{{a}}" class="count_down"> 还剩<text>{{b}}</text>订单自动取消 </view><view class="m-card m-address" style="margin-top:20rpx"><view class="address-info"><view class="top"><up-icon wx:if="{{c}}" u-i="666b5ad0-0" bind:__l="__l" u-p="{{c}}"></up-icon><view class="t-name">{{d}}</view><view>{{e}}</view></view><view class="bottom u-line-2">{{f}}</view></view><view wx:if="{{g}}" class="address-btn"><view style="width:80px"><up-button wx:if="{{i}}" u-s="{{['d']}}" bindclick="{{h}}" u-i="666b5ad0-1" bind:__l="__l" u-p="{{i}}">修改</up-button></view></view></view><view wx:for="{{j}}" wx:for-item="item" wx:key="h" class="m-card m-good"><view class="image"><up-image wx:if="{{item.b}}" u-i="{{item.a}}" bind:__l="__l" u-p="{{item.b}}"></up-image></view><view class="body-content"><view><view class="title"><view>{{item.c}}</view><view>¥{{item.d}}</view></view><view class="tips"><view>{{item.e}}</view><view>x{{item.f}}</view></view></view><view class="time">{{item.g}}</view></view></view><view wx:if="{{k}}" class="m-card good-info"><view wx:if="{{l}}" class="row"><view>商品总价 <text>共计{{m}}款商品</text></view><view><text>¥</text>{{n}}<text>.{{o}}</text></view></view><view class="row"><view>运费</view><view><text>¥</text>0<text>.00</text></view></view><view class="row-need"><view style="margin-right:10rpx">需付款</view><view wx:if="{{p}}"><text>¥</text>{{q}}<text>.{{r}}</text></view></view></view><view class="m-card good-info"><view class="head-title">订单信息</view><block wx:if="{{s}}"><view class="row"><view>订单编号</view><up-copy wx:if="{{v}}" u-s="{{['d']}}" u-i="666b5ad0-3" bind:__l="__l" u-p="{{v}}"><text>{{t}} | 复制</text></up-copy></view><view class="row"><view>下单时间</view><view>{{w}}</view></view><view class="row" style="margin-bottom:0"><view>支付状态</view><view wx:if="{{x}}">已支付</view><view wx:else class="red">待支付</view></view></block><block wx:else><view wx:if="{{y}}" class="row"><view>实付款</view><view><text>¥</text>{{z}}<text>.{{A}}</text></view></view><view class="row"><view>订单编号</view><up-copy wx:if="{{C}}" u-s="{{['d']}}" u-i="666b5ad0-4" bind:__l="__l" u-p="{{C}}"><text>{{B}} | 复制</text></up-copy></view><view class="row"><view>支付方式</view><view>{{D}}</view></view><view class="row"><view>下单时间</view><view>{{E}}</view></view><view class="row" style="margin-bottom:0"><view>支付状态</view><view wx:if="{{F}}">已支付</view><view wx:else class="red">待支付</view></view></block></view><view style="width:100%;height:200rpx"></view><view wx:if="{{G}}" class="fiexd-btn-box"><block wx:if="{{H}}"><view style="color:#777777" bindtap="{{I}}">取消订单</view><view style="width:450rpx"><up-button wx:if="{{L}}" u-s="{{['d']}}" bindclick="{{K}}" u-i="666b5ad0-5" bind:__l="__l" u-p="{{L}}">立即支付 ¥{{J}}</up-button></view></block><block wx:else><view></view><view style="width:450rpx"><up-button wx:if="{{M}}" u-s="{{['d']}}" bindclick="{{N}}" u-i="666b5ad0-6" bind:__l="__l" u-p="{{O}}">确认收货</up-button><up-button wx:else u-s="{{['d']}}" bindclick="{{P}}" u-i="666b5ad0-7" bind:__l="__l" u-p="{{Q||''}}">再次购买</up-button></view></block></view><order-cancle-popup wx:if="{{T}}" bindclose="{{R}}" bindchange="{{S}}" u-i="666b5ad0-8" bind:__l="__l" u-p="{{T}}"/><address-popup wx:if="{{U}}" bindclose="{{V}}" bindchange="{{W}}" u-i="666b5ad0-9" bind:__l="__l" u-p="{{X}}"/><modal wx:if="{{Y}}" u-i="666b5ad0-10" bind:__l="__l" u-p="{{Y}}"></modal></view>

View File

@ -0,0 +1,125 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.count_down {
padding-top: 20rpx;
text-align: center;
color: #444444;
}
.count_down text {
color: #F55726;
padding: 0 10rpx;
}
.m-card {
width: 710rpx;
margin: 0 auto;
background-color: #fff;
border-radius: 14rpx;
box-sizing: border-box;
padding: 20rpx;
color: #333333;
}
.m-address {
margin-bottom: 20rpx;
display: flex;
justify-content: space-between;
color: #999999;
}
.m-address .address-info {
width: 510rpx;
}
.m-address .address-info .top {
display: flex;
font-size: 28rpx;
}
.m-address .address-info .top .t-name {
color: #444;
margin: 0 10rpx;
}
.m-address .address-info .bottom {
font-size: 24rpx;
}
.m-good {
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
}
.m-good .image {
width: 160rpx;
height: 160rpx;
margin-right: 20rpx;
border-radius: 14rpx;
overflow: hidden;
}
.m-good .body-content {
width: 490rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
color: #989898;
}
.m-good .body-content .title {
display: flex;
justify-content: space-between;
font-size: 28rpx;
color: #444;
}
.m-good .body-content .tips {
display: flex;
justify-content: space-between;
font-size: 24rpx;
margin-top: 10rpx;
}
.m-good .body-content .time {
background-color: #F6F6F6;
padding: 5rpx 10rpx;
font-size: 26rpx;
color: #444;
border-radius: 10rpx;
}
.good-info {
margin-bottom: 20rpx;
}
.good-info .head-title {
margin-bottom: 18rpx;
color: #000;
font-weight: bold;
}
.good-info .row {
display: flex;
justify-content: space-between;
margin-bottom: 18rpx;
}
.good-info .row .red {
color: #F55726;
}
.good-info .row-need {
display: flex;
justify-content: flex-end;
color: #F55726;
}
.good-info text {
font-size: 22rpx;
}

View File

@ -0,0 +1,109 @@
"use strict";
const common_vendor = require("../../../common/vendor.js");
if (!Array) {
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
const _easycom_up_button2 = common_vendor.resolveComponent("up-button");
(_easycom_up_icon2 + _easycom_up_button2)();
}
const _easycom_up_icon = () => "../../../uni_modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_up_button = () => "../../../uni_modules/uview-plus/components/u-button/u-button.js";
if (!Math) {
(_easycom_up_icon + _easycom_up_button)();
}
const _sfc_main = {
__name: "good",
props: {
type: {
type: Number,
default: 0
},
datas: {
type: Object,
default: () => {
}
}
},
emits: ["cancleOrder"],
setup(__props, { emit: __emit }) {
const props = __props;
const navTo = () => {
common_vendor.index.navigateTo({
url: `/pagesOrder/detail/detail?type=${props.datas.paid}&id=${props.datas.id}`
});
};
const emit = __emit;
const cancleOrder = () => {
emit("cancleOrder", props.datas);
};
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.t(__props.datas.number),
b: __props.datas.paid == 0
}, __props.datas.paid == 0 ? {} : common_vendor.e({
c: __props.datas.status == 0
}, __props.datas.status == 0 ? {} : {}, {
d: __props.datas.status == 1
}, __props.datas.status == 1 ? {} : {}, {
e: __props.datas.status == 2 || __props.datas.status == 3
}, __props.datas.status == 2 || __props.datas.status == 3 ? {} : {}), {
f: common_vendor.o(navTo),
g: common_vendor.f(__props.datas.goods_list, (item, index, i0) => {
return {
a: item.imgs,
b: index
};
}),
h: common_vendor.p({
name: "arrow-right-double",
color: "#20B128"
}),
i: common_vendor.t(__props.datas.goods_count),
j: common_vendor.t(__props.datas.total),
k: common_vendor.o(navTo),
l: __props.datas.paid == 0
}, __props.datas.paid == 0 ? {
m: common_vendor.o(cancleOrder),
n: common_vendor.p({
size: "small",
plain: true,
color: "#989898",
shape: "circle"
}),
o: common_vendor.p({
size: "small",
plain: true,
color: "#20B128",
shape: "circle"
})
} : common_vendor.e({
p: __props.datas.status == 1
}, __props.datas.status == 1 ? {
q: common_vendor.p({
size: "small",
plain: true,
color: "#20B128",
shape: "circle"
})
} : {}, {
r: __props.datas.status == 2 || __props.datas.status == 3
}, __props.datas.status == 2 || __props.datas.status == 3 ? {
s: common_vendor.p({
size: "small",
plain: true,
color: "#20B128",
shape: "circle"
})
} : {}, {
t: common_vendor.p({
size: "small",
plain: true,
color: "#20B128",
shape: "circle"
}),
v: common_vendor.o(navTo)
}));
};
}
};
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pagesOrder/order/component/good.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"up-icon": "../../../uni_modules/uview-plus/components/u-icon/u-icon",
"up-button": "../../../uni_modules/uview-plus/components/u-button/u-button"
}
}

View File

@ -0,0 +1 @@
<view class="shop-item"><view class="item-title" bindtap="{{f}}"><view>{{a}}</view><view wx:if="{{b}}"><text>待付款</text></view><view wx:else><text wx:if="{{c}}">待发货</text><text wx:if="{{d}}">待收货</text><text wx:if="{{e}}">已完成</text></view></view><view class="item-body" bindtap="{{k}}"><view class="body-content"><view style="display:flex;flex:1;flex-shrink:0"><view wx:for="{{g}}" wx:for-item="item" wx:key="b"><image class="image" src="{{item.a}}"></image></view></view><view style="display:flex;flex-direction:column;align-items:center;justify-content:center;width:100rpx"><up-icon wx:if="{{h}}" u-i="e1c5d592-0" bind:__l="__l" u-p="{{h}}"></up-icon></view></view><view class="all">共 {{i}} 件商品, 总金额 <text>¥{{j}}</text></view></view><view wx:if="{{l}}" class="item-btn"><view style="width:80px"><up-button wx:if="{{n}}" u-s="{{['d']}}" bindclick="{{m}}" u-i="e1c5d592-1" bind:__l="__l" u-p="{{n}}">取消订单</up-button></view><view style="width:80px"><up-button wx:if="{{o}}" u-s="{{['d']}}" u-i="e1c5d592-2" bind:__l="__l" u-p="{{o}}">立即支付</up-button></view></view><view wx:else class="item-btn"><view wx:if="{{p}}" style="width:80px"><up-button wx:if="{{q}}" u-s="{{['d']}}" u-i="e1c5d592-3" bind:__l="__l" u-p="{{q}}">确认收货</up-button></view><view wx:if="{{r}}" style="width:80px"><up-button wx:if="{{s}}" u-s="{{['d']}}" u-i="e1c5d592-4" bind:__l="__l" u-p="{{s}}">再次购买</up-button></view><view bindtap="{{v}}" style="width:80px"><up-button wx:if="{{t}}" u-s="{{['d']}}" u-i="e1c5d592-5" bind:__l="__l" u-p="{{t}}">查看详情</up-button></view></view></view>

View File

@ -0,0 +1,93 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.shop-item {
width: 710rpx;
margin-bottom: 20rpx;
background-color: #fff;
border-radius: 14rpx;
padding: 20rpx;
box-sizing: border-box;
}
.shop-item .item-title {
display: flex;
justify-content: space-between;
}
.shop-item .item-body {
margin: 20rpx 0;
}
.shop-item .item-body .body-content {
display: flex;
justify-content: space-between;
color: #989898;
}
.shop-item .item-body .body-content .image {
width: 160rpx;
height: 160rpx;
margin-right: 20rpx;
border-radius: 14rpx;
}
.shop-item .item-body .body-content .title {
display: flex;
justify-content: space-between;
font-size: 28rpx;
color: #444;
}
.shop-item .item-body .body-content .tips {
display: flex;
justify-content: space-between;
font-size: 24rpx;
margin-top: 10rpx;
}
.shop-item .item-body .all {
text-align: right;
font-size: 26rpx;
}
.shop-item .item-body .all text {
color: #F55726;
}
.shop-item .item-btn {
display: flex;
justify-content: flex-end;
}
.shop-item .item-btn view {
width: 80rpx;
margin-left: 20rpx;
}
.shop-item .item-close {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #F6F6F6;
padding: 15rpx;
border-radius: 14rpx;
}
.shop-item .item-close .title {
display: flex;
}
.shop-item .item-close .title .type {
font-weight: 600;
margin-right: 20rpx;
}

View File

@ -0,0 +1,161 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const api_order = require("../../api/order.js");
require("../../utils/request.js");
require("../../config/app.js");
require("../../store/user.js");
if (!Array) {
const _easycom_up_search2 = common_vendor.resolveComponent("up-search");
const _easycom_up_tabs2 = common_vendor.resolveComponent("up-tabs");
const _easycom_up_sticky2 = common_vendor.resolveComponent("up-sticky");
const _easycom_up_empty2 = common_vendor.resolveComponent("up-empty");
(_easycom_up_search2 + _easycom_up_tabs2 + _easycom_up_sticky2 + _easycom_up_empty2)();
}
const _easycom_up_search = () => "../../uni_modules/uview-plus/components/u-search/u-search.js";
const _easycom_up_tabs = () => "../../uni_modules/uview-plus/components/u-tabs/u-tabs.js";
const _easycom_up_sticky = () => "../../uni_modules/uview-plus/components/u-sticky/u-sticky.js";
const _easycom_up_empty = () => "../../uni_modules/uview-plus/components/u-empty/u-empty.js";
if (!Math) {
(_easycom_up_search + _easycom_up_tabs + _easycom_up_sticky + good + _easycom_up_empty + orderCanclePopup)();
}
const good = () => "./component/good.js";
const orderCanclePopup = () => "../../components/orderCanclePopup.js";
const _sfc_main = {
__name: "order",
setup(__props) {
const tabsActive = common_vendor.ref(0);
const changeTab = ({ index }) => {
tabsActive.value = index;
swiperCurrent.value = index;
};
const tablist = common_vendor.ref([
{ name: "全部" },
{ name: "待付款" },
{ name: "待发货" },
{ name: "待收货" }
// { name: '退款/售后' },
]);
const swiperCurrent = common_vendor.ref(0);
const animationfinish = ({ detail: { current } }) => {
swiperCurrent.value = current;
tabsActive.value = current;
};
const showCancel = common_vendor.ref(false);
const submitCancel = (e) => {
showCancel.value = false;
console.log(e);
common_vendor.index.showToast({
title: "取消成功",
icon: "none"
});
};
const cancleOrder = (e) => {
console.log(e);
showCancel.value = true;
};
const where = common_vendor.ref({
page_no: 1,
page_size: 25,
keyword: ""
});
const orderList = common_vendor.ref([
[],
[],
[],
[]
]);
const getOrderList = (type = 0, status = "", paid = 1) => {
api_order.orderListApi({
...where.value,
status,
paid
}).then((res) => {
orderList.value[type] = res.data.lists;
});
};
const searchOn = () => {
orderList.value[+swiperCurrent.value] = [];
if (swiperCurrent.value == 0)
getOrderList(0);
if (swiperCurrent.value == 1)
getOrderList(1, "", 0);
if (swiperCurrent.value == 2)
getOrderList(2, 0);
if (swiperCurrent.value == 3)
getOrderList(3, 1);
};
common_vendor.onLoad((options) => {
if (options.type) {
tabsActive.value = +options.type;
swiperCurrent.value = +options.type;
}
getOrderList(0);
getOrderList(1, "", 0);
getOrderList(2, 0);
getOrderList(3, 1);
});
return (_ctx, _cache) => {
return {
a: common_vendor.o(searchOn),
b: common_vendor.o(searchOn),
c: common_vendor.o(searchOn),
d: common_vendor.o(($event) => where.value.keyword = $event),
e: common_vendor.p({
shape: "round",
actionStyle: {
color: "#20b128"
},
modelValue: where.value.keyword
}),
f: common_vendor.o(changeTab),
g: common_vendor.p({
current: tabsActive.value,
list: tablist.value,
lineColor: "#20b128",
scrollable: false,
activeStyle: {
color: "#20b128",
fontWeight: "bold"
}
}),
h: common_vendor.p({
bgColor: "#fff"
}),
i: common_vendor.f(orderList.value, (list, k, i0) => {
return common_vendor.e({
a: list.length > 0
}, list.length > 0 ? {
b: common_vendor.f(list, (item, index, i1) => {
return {
a: index,
b: common_vendor.o(cancleOrder, index),
c: "aea1ad54-3-" + i0 + "-" + i1,
d: common_vendor.p({
datas: item,
type: k
})
};
})
} : {
c: "aea1ad54-4-" + i0,
d: common_vendor.p({
text: "订单空空如也",
icon: "https://lihai001.oss-cn-chengdu.aliyuncs.com/def/29955202404260944367594.png"
})
}, {
e: k
});
}),
j: swiperCurrent.value,
k: common_vendor.o(animationfinish),
l: common_vendor.o(($event) => showCancel.value = false),
m: common_vendor.o(submitCancel),
n: common_vendor.p({
show: showCancel.value
})
};
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__file", "D:/里海数字乡村/purchase-let/pagesOrder/order/order.vue"]]);
wx.createPage(MiniProgramPage);

View File

@ -0,0 +1,12 @@
{
"navigationBarTitleText": "我的订单",
"enablePullDownRefresh": false,
"usingComponents": {
"up-search": "../../uni_modules/uview-plus/components/u-search/u-search",
"up-tabs": "../../uni_modules/uview-plus/components/u-tabs/u-tabs",
"up-sticky": "../../uni_modules/uview-plus/components/u-sticky/u-sticky",
"up-empty": "../../uni_modules/uview-plus/components/u-empty/u-empty",
"good": "./component/good",
"order-cancle-popup": "../../components/orderCanclePopup"
}
}

View File

@ -0,0 +1 @@
<view><up-sticky wx:if="{{h}}" u-s="{{['d']}}" u-i="aea1ad54-0" bind:__l="__l" u-p="{{h}}"><view style="padding:10rpx 20rpx 0 20rpx"><up-search wx:if="{{e}}" bindcustom="{{a}}" bindsearch="{{b}}" bindclear="{{c}}" u-i="aea1ad54-1,aea1ad54-0" bind:__l="__l" bindupdateModelValue="{{d}}" u-p="{{e}}"></up-search></view><up-tabs wx:if="{{g}}" bindchange="{{f}}" u-i="aea1ad54-2,aea1ad54-0" bind:__l="__l" u-p="{{g}}"></up-tabs></up-sticky><swiper class="swiper-box" current="{{j}}" bindanimationfinish="{{k}}"><swiper-item wx:for="{{i}}" wx:for-item="list" wx:key="e" class="swiper-item"><scroll-view scroll-y style="height:100%;width:100%"><view class="page-box"><view wx:if="{{list.a}}" class="list"><good wx:for="{{list.b}}" wx:for-item="item" wx:key="a" bindcancleOrder="{{item.b}}" u-i="{{item.c}}" bind:__l="__l" u-p="{{item.d}}"></good></view><view wx:else style="padding-top:100rpx"><up-empty wx:if="{{list.d}}" u-i="{{list.c}}" bind:__l="__l" u-p="{{list.d}}"></up-empty></view><view style="width:100%;height:200rpx"></view></view></scroll-view></swiper-item></swiper><order-cancle-popup wx:if="{{n}}" bindclose="{{l}}" bindchange="{{m}}" u-i="aea1ad54-5" bind:__l="__l" u-p="{{n}}"/></view>

View File

@ -0,0 +1,36 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.swiper-box {
flex: 1;
height: calc(100vh - var(--window-top) - 140rpx);
width: 100%;
}
.swiper-box .swiper-item {
height: 100%;
}
.page-box {
margin: 20rpx;
}

View File

@ -0,0 +1,48 @@
{
"description": "项目配置文件。",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"urlCheck": false,
"es6": true,
"postcss": false,
"minified": false,
"newFeature": true,
"bigPackageSizeSupport": true,
"condition": false,
"ignoreUploadUnusedFiles": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}
},
"compileType": "miniprogram",
"libVersion": "3.4.2",
"appid": "wxdee751952c8c2027",
"projectname": "purchase-let",
"condition": {
"search": {
"current": -1,
"list": []
},
"conversation": {
"current": -1,
"list": []
},
"game": {
"current": -1,
"list": []
},
"miniprogram": {
"current": -1,
"list": []
}
},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
}

View File

@ -0,0 +1,20 @@
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "purchase-let",
"setting": {
"compileHotReLoad": true
},
"condition": {
"miniprogram": {
"list": [
{
"name": "",
"pathName": "pagesOrder/detail/detail",
"query": "type=0&id=106",
"launchMode": "default",
"scene": null
}
]
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

View File

@ -0,0 +1,16 @@
"use strict";
const common_vendor = require("../common/vendor.js");
const useUserStore = common_vendor.defineStore("user", () => {
const userInfo = common_vendor.ref(common_vendor.index.getStorageSync("userInfo") || {});
const setUserInfo = (data) => {
userInfo.value = data;
common_vendor.index.setStorageSync("userInfo", data);
};
const token = common_vendor.ref(common_vendor.index.getStorageSync("token") || "");
const setToken = (data) => {
token.value = data;
common_vendor.index.setStorageSync("token", data);
};
return { userInfo, setUserInfo, token, setToken };
});
exports.useUserStore = useUserStore;

View File

@ -0,0 +1,82 @@
"use strict";
const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js");
const uni_modules_uviewPlus_libs_function_test = require("../../libs/function/test.js");
const props = {
props: {
// 头像图片路径(不能为相对路径)
src: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.src
},
// 头像形状circle-圆形square-方形
shape: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.shape
},
// 头像尺寸
size: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.size
},
// 裁剪模式
mode: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.mode
},
// 显示的文字
text: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.text
},
// 背景色
bgColor: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.bgColor
},
// 文字颜色
color: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.color
},
// 文字大小
fontSize: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.fontSize
},
// 显示的图标
icon: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.icon
},
// 显示小程序头像只对百度微信QQ小程序有效
mpAvatar: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.mpAvatar
},
// 是否使用随机背景色
randomBgColor: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.randomBgColor
},
// 加载失败的默认头像(组件有内置默认图片)
defaultUrl: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.defaultUrl
},
// 如果配置了randomBgColor为true且配置了此值则从默认的背景色数组中取出对应索引的颜色值取值0-19之间
colorIndex: {
type: [String, Number],
// 校验参数规则索引在0-19之间
validator(n) {
return uni_modules_uviewPlus_libs_function_test.test.range(n, [0, 19]) || n === "";
},
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.colorIndex
},
// 组件标识符
name: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.avatar.name
}
}
};
exports.props = props;

View File

@ -0,0 +1,234 @@
"use strict";
const uni_modules_uviewPlus_components_uAvatar_props = require("./props.js");
const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js");
const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js");
const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js");
const common_vendor = require("../../../../common/vendor.js");
require("../../libs/config/props.js");
require("../../libs/config/config.js");
require("../../libs/config/props/actionSheet.js");
require("../../libs/config/props/album.js");
require("../../libs/config/props/alert.js");
require("../../libs/config/props/avatar.js");
require("../../libs/config/props/avatarGroup.js");
require("../../libs/config/props/backtop.js");
require("../../libs/config/props/badge.js");
require("../../libs/config/props/button.js");
require("../../libs/config/props/calendar.js");
require("../../libs/config/props/carKeyboard.js");
require("../../libs/config/props/cell.js");
require("../../libs/config/props/cellGroup.js");
require("../../libs/config/props/checkbox.js");
require("../../libs/config/props/checkboxGroup.js");
require("../../libs/config/props/circleProgress.js");
require("../../libs/config/props/code.js");
require("../../libs/config/props/codeInput.js");
require("../../libs/config/props/col.js");
require("../../libs/config/props/collapse.js");
require("../../libs/config/props/collapseItem.js");
require("../../libs/config/props/columnNotice.js");
require("../../libs/config/props/countDown.js");
require("../../libs/config/props/countTo.js");
require("../../libs/config/props/datetimePicker.js");
require("../../libs/config/props/divider.js");
require("../../libs/config/props/empty.js");
require("../../libs/config/props/form.js");
require("../../libs/config/props/formItem.js");
require("../../libs/config/props/gap.js");
require("../../libs/config/props/grid.js");
require("../../libs/config/props/gridItem.js");
require("../../libs/config/props/icon.js");
require("../../libs/config/props/image.js");
require("../../libs/config/props/indexAnchor.js");
require("../../libs/config/props/indexList.js");
require("../../libs/config/props/input.js");
require("../../libs/config/props/keyboard.js");
require("../../libs/config/props/line.js");
require("../../libs/config/props/lineProgress.js");
require("../../libs/config/props/link.js");
require("../../libs/config/props/list.js");
require("../../libs/config/props/listItem.js");
require("../../libs/config/props/loadingIcon.js");
require("../../libs/config/props/loadingPage.js");
require("../../libs/config/props/loadmore.js");
require("../../libs/config/props/modal.js");
require("../../libs/config/props/navbar.js");
require("../../libs/config/color.js");
require("../../libs/config/props/noNetwork.js");
require("../../libs/config/props/noticeBar.js");
require("../../libs/config/props/notify.js");
require("../../libs/config/props/numberBox.js");
require("../../libs/config/props/numberKeyboard.js");
require("../../libs/config/props/overlay.js");
require("../../libs/config/props/parse.js");
require("../../libs/config/props/picker.js");
require("../../libs/config/props/popup.js");
require("../../libs/config/props/radio.js");
require("../../libs/config/props/radioGroup.js");
require("../../libs/config/props/rate.js");
require("../../libs/config/props/readMore.js");
require("../../libs/config/props/row.js");
require("../../libs/config/props/rowNotice.js");
require("../../libs/config/props/scrollList.js");
require("../../libs/config/props/search.js");
require("../../libs/config/props/section.js");
require("../../libs/config/props/skeleton.js");
require("../../libs/config/props/slider.js");
require("../../libs/config/props/statusBar.js");
require("../../libs/config/props/steps.js");
require("../../libs/config/props/stepsItem.js");
require("../../libs/config/props/sticky.js");
require("../../libs/config/props/subsection.js");
require("../../libs/config/props/swipeAction.js");
require("../../libs/config/props/swipeActionItem.js");
require("../../libs/config/props/swiper.js");
require("../../libs/config/props/swipterIndicator.js");
require("../../libs/config/props/switch.js");
require("../../libs/config/props/tabbar.js");
require("../../libs/config/props/tabbarItem.js");
require("../../libs/config/props/tabs.js");
require("../../libs/config/props/tag.js");
require("../../libs/config/props/text.js");
require("../../libs/config/props/textarea.js");
require("../../libs/config/props/toast.js");
require("../../libs/config/props/toolbar.js");
require("../../libs/config/props/tooltip.js");
require("../../libs/config/props/transition.js");
require("../../libs/config/props/upload.js");
require("../../libs/function/test.js");
require("../../libs/util/route.js");
require("../../libs/function/digit.js");
const base64Avatar = "data:image/jpg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjREMEQwRkY0RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjREMEQwRkY1RjgwNDExRUE5OTY2RDgxODY3NkJFODMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NEQwRDBGRjJGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NEQwRDBGRjNGODA0MTFFQTk5NjZEODE4Njc2QkU4MzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCADIAMgDAREAAhEBAxEB/8QAcQABAQEAAwEBAAAAAAAAAAAAAAUEAQMGAgcBAQAAAAAAAAAAAAAAAAAAAAAQAAIBAwICBgkDBQAAAAAAAAABAhEDBCEFMVFBYXGREiKBscHRMkJSEyOh4XLxYjNDFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A/fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHbHFyZ/Dam+yLA+Z2L0Pjtyj2poD4AAAAAAAAAAAAAAAAAAAAAAAAKWFs9y6lcvvwQeqj8z9wFaziY1n/HbUX9XF97A7QAGXI23EvJ1goyfzR0YEfN269jeZ+a03pNe0DIAAAAAAAAAAAAAAAAAAAACvtO3RcVkXlWutuL9YFYAAAAAOJRjKLjJVi9GmB5/csH/mu1h/in8PU+QGMAAAAAAAAAAAAAAAAAAaMDG/6MmMH8C80+xAelSSVFolwQAAAAAAAHVlWI37ErUulaPk+hgeYnCUJuElSUXRrrQHAAAAAAAAAAAAAAAAABa2Oz4bM7r4zdF2ICmAAAAAAAAAg7zZ8GX41wuJP0rRgYAAAAAAAAAAAAAAAAAD0m2R8ODaXU33tsDSAAAAAAAAAlb9HyWZcnJd9PcBHAAAAAAAAAAAAAAAAAPS7e64Vn+KA0AAAAAAAAAJm+v8Ftf3ewCKAAAAAAAAAAAAAAAAAX9muqeGo9NttP06+0DcAAAAAAAAAjb7dTu2ra+VOT9P8AQCWAAAAAAAAAAAAAAAAAUNmyPt5Ltv4bui/kuAF0AAAAAAADiUlGLlJ0SVW+oDzOXfd/Ind6JPRdS0QHSAAAAAAAAAAAAAAAAAE2nVaNcGB6Lbs6OTao9LsF51z60BrAAAAAABJ3jOVHjW3r/sa9QEgAAAAAAAAAAAAAAAAAAAPu1duWriuW34ZR4MC9hbnZyEoy8l36XwfYBsAAADaSq9EuLAlZ+7xSdrGdW9Hc5dgEdtt1erfFgAAAAAAAAAAAAAAAAADVjbblX6NR8MH80tEBRs7HYivyzlN8lovaBPzduvY0m6eK10TXtAyAarO55lpJK54orolr+4GqO/Xaea1FvqbXvA+Z77kNeW3GPbV+4DJfzcm/pcm3H6Vou5AdAFLC2ed2Pjv1txa8sV8T6wOL+yZEKu1JXFy4MDBOE4ScZxcZLinoB8gAAAAAAAAAAAB242LeyJ+C3GvN9C7QLmJtePYpKS+5c+p8F2IDYAANJqj1T4oCfk7Nj3G5Wn9qXJax7gJ93Z82D8sVNc4v30A6Xg5i42Z+iLfqARwcyT0sz9MWvWBps7LlTf5Grce9/oBTxdtxseklHxT+uWr9AGoAB138ezfj4bsFJdD6V2MCPm7RdtJzs1uW1xXzL3gTgAAAAAAAAADRhYc8q74I6RWs5ckB6GxYtWLat21SK731sDsAAAAAAAAAAAAAAAASt021NO/YjrxuQXT1oCOAAAAAAABzGLlJRSq26JAelwsWONYjbXxcZvmwO8AAAAAAAAAAAAAAAAAAef3TEWPkVivx3NY9T6UBiAAAAAABo2+VmGXblddIJ8eivRUD0oAAAAAAAAAAAAAAAAAAAYt4tKeFKVNYNSXfRgefAAAAAAAAr7VuSSWPedKaW5v1MCsAAAAAAAAAAAAAAAAAAIe6bj96Ts2n+JPzSXzP3ATgAAAAAAAAFbbt1UUrOQ9FpC4/UwK6aaqtU+DAAAAAAAAAAAAAAA4lKMIuUmoxWrb4ARNx3R3q2rLpa4Sl0y/YCcAAAAAAAAAAANmFud7G8r89r6X0dgFvGzLGRGtuWvTF6NAdwAAAAAAAAAAAy5W442PVN+K59EePp5ARMvOv5MvO6QXCC4AZwAAAAAAAAAAAAAcxlKLUotprg1owN+PvORborq+7Hnwl3gUbO74VzRydt8pKn68ANcJwmqwkpLmnUDkAAAAfNy9atqtyagut0AxXt5xIV8Fbj6lRd7Am5G65V6qUvtwfyx94GMAAAAAAAAAAAAAAAAAAAOU2nVOj5gdsc3LiqRvTpyqwOxbnnrhdfpSfrQB7pnv/AGvuS9gHXPMy5/Fem1yq0v0A6W29XqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//Z";
const _sfc_main = {
name: "u-avatar",
mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_components_uAvatar_props.props],
data() {
return {
// 如果配置randomBgColor参数为true在图标或者文字的模式下会随机从中取出一个颜色值当做背景色
colors: [
"#ffb34b",
"#f2bba9",
"#f7a196",
"#f18080",
"#88a867",
"#bfbf39",
"#89c152",
"#94d554",
"#f19ec2",
"#afaae4",
"#e1b0df",
"#c38cc1",
"#72dcdc",
"#9acdcb",
"#77b1cc",
"#448aca",
"#86cefa",
"#98d1ee",
"#73d1f1",
"#80a7dc"
],
avatarUrl: this.src,
allowMp: false
};
},
watch: {
// 监听头像src的变化赋值给内部的avatarUrl变量因为图片加载失败时需要修改图片的src为默认值
// 而组件内部不能直接修改props的值所以需要一个中间变量
src: {
immediate: true,
handler(newVal) {
this.avatarUrl = newVal;
if (!newVal) {
this.errorHandler();
}
}
}
},
computed: {
imageStyle() {
const style = {};
return style;
}
},
created() {
this.init();
},
emits: ["click"],
methods: {
addStyle: uni_modules_uviewPlus_libs_function_index.addStyle,
addUnit: uni_modules_uviewPlus_libs_function_index.addUnit,
random: uni_modules_uviewPlus_libs_function_index.random,
init() {
this.allowMp = true;
},
// 判断传入的name属性是否图片路径只要带有"/"均认为是图片形式
isImg() {
return this.src.indexOf("/") !== -1;
},
// 图片加载时失败时触发
errorHandler() {
this.avatarUrl = this.defaultUrl || base64Avatar;
},
clickHandler() {
this.$emit("click", this.name);
}
}
};
if (!Array) {
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
const _easycom_up_text2 = common_vendor.resolveComponent("up-text");
(_easycom_u_icon2 + _easycom_up_text2)();
}
const _easycom_u_icon = () => "../u-icon/u-icon.js";
const _easycom_up_text = () => "../u-text/u-text.js";
if (!Math) {
(_easycom_u_icon + _easycom_up_text)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.mpAvatar && $data.allowMp
}, _ctx.mpAvatar && $data.allowMp ? {
b: common_vendor.s({
width: $options.addUnit(_ctx.size),
height: $options.addUnit(_ctx.size)
})
} : {}, {
c: _ctx.mpAvatar && $data.allowMp
}, _ctx.mpAvatar && $data.allowMp ? {} : _ctx.icon ? {
e: common_vendor.p({
name: _ctx.icon,
size: _ctx.fontSize,
color: _ctx.color
})
} : _ctx.text ? {
g: common_vendor.p({
text: _ctx.text,
size: _ctx.fontSize,
color: _ctx.color,
align: "center",
customStyle: "justify-content: center"
})
} : {
h: common_vendor.n(`u-avatar__image--${_ctx.shape}`),
i: $data.avatarUrl || _ctx.defaultUrl,
j: _ctx.mode,
k: common_vendor.o((...args) => $options.errorHandler && $options.errorHandler(...args)),
l: common_vendor.s({
width: $options.addUnit(_ctx.size),
height: $options.addUnit(_ctx.size)
})
}, {
d: _ctx.icon,
f: _ctx.text,
m: common_vendor.n(`u-avatar--${_ctx.shape}`),
n: common_vendor.s({
backgroundColor: _ctx.text || _ctx.icon ? _ctx.randomBgColor ? $data.colors[_ctx.colorIndex !== "" ? _ctx.colorIndex : $options.random(0, 19)] : _ctx.bgColor : "transparent",
width: $options.addUnit(_ctx.size),
height: $options.addUnit(_ctx.size)
}),
o: common_vendor.s($options.addStyle(_ctx.customStyle)),
p: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args))
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-34d954f9"], ["__file", "D:/里海数字乡村/purchase-let/uni_modules/uview-plus/components/u-avatar/u-avatar.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"u-icon": "../u-icon/u-icon",
"up-text": "../u-text/u-text"
}
}

View File

@ -0,0 +1 @@
<view class="{{['u-avatar', 'data-v-34d954f9', m]}}" style="{{n + ';' + o}}" bindtap="{{p}}"><block wx:if="{{$slots.d}}"><slot></slot></block><block wx:else><open-data wx:if="{{a}}" class="data-v-34d954f9" type="userAvatarUrl" style="{{b}}"/><block wx:if="{{c}}"></block><u-icon wx:elif="{{d}}" class="data-v-34d954f9" u-i="34d954f9-0" bind:__l="__l" u-p="{{e}}"></u-icon><up-text wx:elif="{{f}}" class="data-v-34d954f9" u-i="34d954f9-1" bind:__l="__l" u-p="{{g}}"></up-text><image wx:else class="{{['u-avatar__image', 'data-v-34d954f9', h]}}" src="{{i}}" mode="{{j}}" binderror="{{k}}" style="{{l}}"></image></block></view>

View File

@ -0,0 +1,60 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.u-empty.data-v-34d954f9,
.u-empty__wrap.data-v-34d954f9,
.u-tabs.data-v-34d954f9,
.u-tabs__wrapper.data-v-34d954f9,
.u-tabs__wrapper__scroll-view-wrapper.data-v-34d954f9,
.u-tabs__wrapper__scroll-view.data-v-34d954f9,
.u-tabs__wrapper__nav.data-v-34d954f9,
.u-tabs__wrapper__nav__line.data-v-34d954f9 {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-avatar.data-v-34d954f9 {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}
.u-avatar--circle.data-v-34d954f9 {
border-radius: 100px;
}
.u-avatar--square.data-v-34d954f9 {
border-radius: 4px;
}
.u-avatar__image--circle.data-v-34d954f9 {
border-radius: 100px;
overflow: hidden;
}
.u-avatar__image--square.data-v-34d954f9 {
border-radius: 4px;
}

View File

@ -0,0 +1,80 @@
"use strict";
const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js");
const props = {
props: {
// 是否显示圆点
isDot: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.isDot
},
// 显示的内容
value: {
type: [Number, String],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.value
},
// 显示的内容
modelValue: {
type: [Number, String],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.modelValue
},
// 是否显示
show: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.show
},
// 最大值,超过最大值会显示 '{max}+'
max: {
type: [Number, String],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.max
},
// 主题类型error|warning|success|primary
type: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.type
},
// 当数值为 0 时,是否展示 Badge
showZero: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.showZero
},
// 背景颜色优先级比type高如设置type参数会失效
bgColor: {
type: [String, null],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.bgColor
},
// 字体颜色
color: {
type: [String, null],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.color
},
// 徽标形状circle-四角均为圆角horn-左下角为直角
shape: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.shape
},
// 设置数字的显示方式overflow|ellipsis|limit
// overflow会根据max字段判断超出显示`${max}+`
// ellipsis会根据max判断超出显示`${max}...`
// limit会依据1000作为判断条件超出1000显示`${value/1000}K`比如2.2k、3.34w最多保留2位小数
numberType: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.numberType
},
// 设置badge的位置偏移格式为 [x, y]也即设置的为top和right的值absolute为true时有效
offset: {
type: Array,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.offset
},
// 是否反转背景和字体颜色
inverted: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.inverted
},
// 是否绝对定位
absolute: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.badge.absolute
}
}
};
exports.props = props;

View File

@ -0,0 +1,161 @@
"use strict";
const uni_modules_uviewPlus_components_uBadge_props = require("./props.js");
const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js");
const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js");
const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js");
const common_vendor = require("../../../../common/vendor.js");
require("../../libs/config/props.js");
require("../../libs/config/config.js");
require("../../libs/config/props/actionSheet.js");
require("../../libs/config/props/album.js");
require("../../libs/config/props/alert.js");
require("../../libs/config/props/avatar.js");
require("../../libs/config/props/avatarGroup.js");
require("../../libs/config/props/backtop.js");
require("../../libs/config/props/badge.js");
require("../../libs/config/props/button.js");
require("../../libs/config/props/calendar.js");
require("../../libs/config/props/carKeyboard.js");
require("../../libs/config/props/cell.js");
require("../../libs/config/props/cellGroup.js");
require("../../libs/config/props/checkbox.js");
require("../../libs/config/props/checkboxGroup.js");
require("../../libs/config/props/circleProgress.js");
require("../../libs/config/props/code.js");
require("../../libs/config/props/codeInput.js");
require("../../libs/config/props/col.js");
require("../../libs/config/props/collapse.js");
require("../../libs/config/props/collapseItem.js");
require("../../libs/config/props/columnNotice.js");
require("../../libs/config/props/countDown.js");
require("../../libs/config/props/countTo.js");
require("../../libs/config/props/datetimePicker.js");
require("../../libs/config/props/divider.js");
require("../../libs/config/props/empty.js");
require("../../libs/config/props/form.js");
require("../../libs/config/props/formItem.js");
require("../../libs/config/props/gap.js");
require("../../libs/config/props/grid.js");
require("../../libs/config/props/gridItem.js");
require("../../libs/config/props/icon.js");
require("../../libs/config/props/image.js");
require("../../libs/config/props/indexAnchor.js");
require("../../libs/config/props/indexList.js");
require("../../libs/config/props/input.js");
require("../../libs/config/props/keyboard.js");
require("../../libs/config/props/line.js");
require("../../libs/config/props/lineProgress.js");
require("../../libs/config/props/link.js");
require("../../libs/config/props/list.js");
require("../../libs/config/props/listItem.js");
require("../../libs/config/props/loadingIcon.js");
require("../../libs/config/props/loadingPage.js");
require("../../libs/config/props/loadmore.js");
require("../../libs/config/props/modal.js");
require("../../libs/config/props/navbar.js");
require("../../libs/config/color.js");
require("../../libs/config/props/noNetwork.js");
require("../../libs/config/props/noticeBar.js");
require("../../libs/config/props/notify.js");
require("../../libs/config/props/numberBox.js");
require("../../libs/config/props/numberKeyboard.js");
require("../../libs/config/props/overlay.js");
require("../../libs/config/props/parse.js");
require("../../libs/config/props/picker.js");
require("../../libs/config/props/popup.js");
require("../../libs/config/props/radio.js");
require("../../libs/config/props/radioGroup.js");
require("../../libs/config/props/rate.js");
require("../../libs/config/props/readMore.js");
require("../../libs/config/props/row.js");
require("../../libs/config/props/rowNotice.js");
require("../../libs/config/props/scrollList.js");
require("../../libs/config/props/search.js");
require("../../libs/config/props/section.js");
require("../../libs/config/props/skeleton.js");
require("../../libs/config/props/slider.js");
require("../../libs/config/props/statusBar.js");
require("../../libs/config/props/steps.js");
require("../../libs/config/props/stepsItem.js");
require("../../libs/config/props/sticky.js");
require("../../libs/config/props/subsection.js");
require("../../libs/config/props/swipeAction.js");
require("../../libs/config/props/swipeActionItem.js");
require("../../libs/config/props/swiper.js");
require("../../libs/config/props/swipterIndicator.js");
require("../../libs/config/props/switch.js");
require("../../libs/config/props/tabbar.js");
require("../../libs/config/props/tabbarItem.js");
require("../../libs/config/props/tabs.js");
require("../../libs/config/props/tag.js");
require("../../libs/config/props/text.js");
require("../../libs/config/props/textarea.js");
require("../../libs/config/props/toast.js");
require("../../libs/config/props/toolbar.js");
require("../../libs/config/props/tooltip.js");
require("../../libs/config/props/transition.js");
require("../../libs/config/props/upload.js");
require("../../libs/function/test.js");
require("../../libs/util/route.js");
require("../../libs/function/digit.js");
const _sfc_main = {
name: "u-badge",
mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_components_uBadge_props.props, uni_modules_uviewPlus_libs_mixin_mixin.mixin],
computed: {
// 是否将badge中心与父组件右上角重合
boxStyle() {
let style = {};
return style;
},
// 整个组件的样式
badgeStyle() {
const style = {};
if (this.color) {
style.color = this.color;
}
if (this.bgColor && !this.inverted) {
style.backgroundColor = this.bgColor;
}
if (this.absolute) {
style.position = "absolute";
if (this.offset.length) {
const top = this.offset[0];
const right = this.offset[1] || top;
style.top = uni_modules_uviewPlus_libs_function_index.addUnit(top);
style.right = uni_modules_uviewPlus_libs_function_index.addUnit(right);
}
}
return style;
},
showValue() {
switch (this.numberType) {
case "overflow":
return Number(this.value) > Number(this.max) ? this.max + "+" : this.value;
case "ellipsis":
return Number(this.value) > Number(this.max) ? "..." : this.value;
case "limit":
return Number(this.value) > 999 ? Number(this.value) >= 9999 ? Math.floor(this.value / 1e4 * 100) / 100 + "w" : Math.floor(this.value / 1e3 * 100) / 100 + "k" : this.value;
default:
return Number(this.value);
}
}
},
methods: {
addStyle: uni_modules_uviewPlus_libs_function_index.addStyle
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.show && ((Number(_ctx.value) === 0 ? _ctx.showZero : true) || _ctx.isDot)
}, _ctx.show && ((Number(_ctx.value) === 0 ? _ctx.showZero : true) || _ctx.isDot) ? {
b: common_vendor.t(_ctx.isDot ? "" : $options.showValue),
c: common_vendor.n(_ctx.isDot ? "u-badge--dot" : "u-badge--not-dot"),
d: common_vendor.n(_ctx.inverted && "u-badge--inverted"),
e: common_vendor.n(_ctx.shape === "horn" && "u-badge--horn"),
f: common_vendor.n(`u-badge--${_ctx.type}${_ctx.inverted ? "--inverted" : ""}`),
g: common_vendor.s($options.addStyle(_ctx.customStyle)),
h: common_vendor.s($options.badgeStyle)
} : {});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-06cca9b7"], ["__file", "D:/里海数字乡村/purchase-let/uni_modules/uview-plus/components/u-badge/u-badge.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1 @@
<text wx:if="{{a}}" class="{{[c, d, e, f, 'u-badge', 'data-v-06cca9b7']}}" style="{{g + ';' + h}}">{{b}}</text>

View File

@ -0,0 +1,96 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.u-empty.data-v-06cca9b7,
.u-empty__wrap.data-v-06cca9b7,
.u-tabs.data-v-06cca9b7,
.u-tabs__wrapper.data-v-06cca9b7,
.u-tabs__wrapper__scroll-view-wrapper.data-v-06cca9b7,
.u-tabs__wrapper__scroll-view.data-v-06cca9b7,
.u-tabs__wrapper__nav.data-v-06cca9b7,
.u-tabs__wrapper__nav__line.data-v-06cca9b7 {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-badge.data-v-06cca9b7 {
border-top-right-radius: 100px;
border-top-left-radius: 100px;
border-bottom-left-radius: 100px;
border-bottom-right-radius: 100px;
display: flex;
flex-direction: row;
line-height: 11px;
text-align: center;
font-size: 11px;
color: #FFFFFF;
}
.u-badge--dot.data-v-06cca9b7 {
height: 8px;
width: 8px;
}
.u-badge--inverted.data-v-06cca9b7 {
font-size: 13px;
}
.u-badge--not-dot.data-v-06cca9b7 {
padding: 2px 5px;
}
.u-badge--horn.data-v-06cca9b7 {
border-bottom-left-radius: 0;
}
.u-badge--primary.data-v-06cca9b7 {
background-color: #3c9cff;
}
.u-badge--primary--inverted.data-v-06cca9b7 {
color: #3c9cff;
}
.u-badge--error.data-v-06cca9b7 {
background-color: #f56c6c;
}
.u-badge--error--inverted.data-v-06cca9b7 {
color: #f56c6c;
}
.u-badge--success.data-v-06cca9b7 {
background-color: #5ac725;
}
.u-badge--success--inverted.data-v-06cca9b7 {
color: #5ac725;
}
.u-badge--info.data-v-06cca9b7 {
background-color: #909399;
}
.u-badge--info--inverted.data-v-06cca9b7 {
color: #909399;
}
.u-badge--warning.data-v-06cca9b7 {
background-color: #f9ae3d;
}
.u-badge--warning--inverted.data-v-06cca9b7 {
color: #f9ae3d;
}

View File

@ -0,0 +1,155 @@
"use strict";
const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js");
const props = {
props: {
// 是否细边框
hairline: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.hairline
},
// 按钮的预置样式infoprimaryerrorwarningsuccess
type: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.type
},
// 按钮尺寸largenormalsmallmini
size: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.size
},
// 按钮形状circle两边为半圆square带圆角
shape: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.shape
},
// 按钮是否镂空
plain: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.plain
},
// 是否禁止状态
disabled: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.disabled
},
// 是否加载中
loading: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.loading
},
// 加载中提示文字
loadingText: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.loadingText
},
// 加载状态图标类型
loadingMode: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.loadingMode
},
// 加载图标大小
loadingSize: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.loadingSize
},
// 开放能力具体请看uniapp稳定关于button组件部分说明
// https://uniapp.dcloud.io/component/button
openType: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.openType
},
// 用于 <form> 组件,点击分别会触发 <form> 组件的 submit/reset 事件
// 取值为submit提交表单reset重置表单
formType: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.formType
},
// 打开 APP 时,向 APP 传递的参数open-type=launchApp时有效
// 只微信小程序、QQ小程序有效
appParameter: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.appParameter
},
// 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效
hoverStopPropagation: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.hoverStopPropagation
},
// 指定返回用户信息的语言zh_CN 简体中文zh_TW 繁体中文en 英文。只微信小程序有效
lang: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.lang
},
// 会话来源open-type="contact"时有效。只微信小程序有效
sessionFrom: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.sessionFrom
},
// 会话内消息卡片标题open-type="contact"时有效
// 默认当前标题,只微信小程序有效
sendMessageTitle: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.sendMessageTitle
},
// 会话内消息卡片点击跳转小程序路径open-type="contact"时有效
// 默认当前分享路径,只微信小程序有效
sendMessagePath: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.sendMessagePath
},
// 会话内消息卡片图片open-type="contact"时有效
// 默认当前页面截图,只微信小程序有效
sendMessageImg: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.sendMessageImg
},
// 是否显示会话内消息卡片,设置此参数为 true用户进入客服会话会在右下角显示"可能要发送的小程序"提示,
// 用户点击后可以快速发送小程序消息open-type="contact"时有效
showMessageCard: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.showMessageCard
},
// 额外传参参数用于小程序的data-xxx属性通过target.dataset.name获取
dataName: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.dataName
},
// 节流,一定时间内只能触发一次
throttleTime: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.throttleTime
},
// 按住后多久出现点击态,单位毫秒
hoverStartTime: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.hoverStartTime
},
// 手指松开后点击态保留时间,单位毫秒
hoverStayTime: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.hoverStayTime
},
// 按钮文字之所以通过props传入是因为slot传入的话
// nvue中无法控制文字的样式
text: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.text
},
// 按钮图标
icon: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.icon
},
// 按钮图标
iconColor: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.icon
},
// 按钮颜色支持传入linear-gradient渐变色
color: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.button.color
}
}
};
exports.props = props;

View File

@ -0,0 +1,300 @@
"use strict";
const uni_modules_uviewPlus_libs_mixin_button = require("../../libs/mixin/button.js");
const uni_modules_uviewPlus_libs_mixin_openType = require("../../libs/mixin/openType.js");
const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js");
const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js");
const uni_modules_uviewPlus_components_uButton_props = require("./props.js");
const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js");
const uni_modules_uviewPlus_libs_function_throttle = require("../../libs/function/throttle.js");
const uni_modules_uviewPlus_libs_config_color = require("../../libs/config/color.js");
const common_vendor = require("../../../../common/vendor.js");
require("../../libs/function/test.js");
require("../../libs/util/route.js");
require("../../libs/config/props.js");
require("../../libs/config/config.js");
require("../../libs/config/props/actionSheet.js");
require("../../libs/config/props/album.js");
require("../../libs/config/props/alert.js");
require("../../libs/config/props/avatar.js");
require("../../libs/config/props/avatarGroup.js");
require("../../libs/config/props/backtop.js");
require("../../libs/config/props/badge.js");
require("../../libs/config/props/button.js");
require("../../libs/config/props/calendar.js");
require("../../libs/config/props/carKeyboard.js");
require("../../libs/config/props/cell.js");
require("../../libs/config/props/cellGroup.js");
require("../../libs/config/props/checkbox.js");
require("../../libs/config/props/checkboxGroup.js");
require("../../libs/config/props/circleProgress.js");
require("../../libs/config/props/code.js");
require("../../libs/config/props/codeInput.js");
require("../../libs/config/props/col.js");
require("../../libs/config/props/collapse.js");
require("../../libs/config/props/collapseItem.js");
require("../../libs/config/props/columnNotice.js");
require("../../libs/config/props/countDown.js");
require("../../libs/config/props/countTo.js");
require("../../libs/config/props/datetimePicker.js");
require("../../libs/config/props/divider.js");
require("../../libs/config/props/empty.js");
require("../../libs/config/props/form.js");
require("../../libs/config/props/formItem.js");
require("../../libs/config/props/gap.js");
require("../../libs/config/props/grid.js");
require("../../libs/config/props/gridItem.js");
require("../../libs/config/props/icon.js");
require("../../libs/config/props/image.js");
require("../../libs/config/props/indexAnchor.js");
require("../../libs/config/props/indexList.js");
require("../../libs/config/props/input.js");
require("../../libs/config/props/keyboard.js");
require("../../libs/config/props/line.js");
require("../../libs/config/props/lineProgress.js");
require("../../libs/config/props/link.js");
require("../../libs/config/props/list.js");
require("../../libs/config/props/listItem.js");
require("../../libs/config/props/loadingIcon.js");
require("../../libs/config/props/loadingPage.js");
require("../../libs/config/props/loadmore.js");
require("../../libs/config/props/modal.js");
require("../../libs/config/props/navbar.js");
require("../../libs/config/props/noNetwork.js");
require("../../libs/config/props/noticeBar.js");
require("../../libs/config/props/notify.js");
require("../../libs/config/props/numberBox.js");
require("../../libs/config/props/numberKeyboard.js");
require("../../libs/config/props/overlay.js");
require("../../libs/config/props/parse.js");
require("../../libs/config/props/picker.js");
require("../../libs/config/props/popup.js");
require("../../libs/config/props/radio.js");
require("../../libs/config/props/radioGroup.js");
require("../../libs/config/props/rate.js");
require("../../libs/config/props/readMore.js");
require("../../libs/config/props/row.js");
require("../../libs/config/props/rowNotice.js");
require("../../libs/config/props/scrollList.js");
require("../../libs/config/props/search.js");
require("../../libs/config/props/section.js");
require("../../libs/config/props/skeleton.js");
require("../../libs/config/props/slider.js");
require("../../libs/config/props/statusBar.js");
require("../../libs/config/props/steps.js");
require("../../libs/config/props/stepsItem.js");
require("../../libs/config/props/sticky.js");
require("../../libs/config/props/subsection.js");
require("../../libs/config/props/swipeAction.js");
require("../../libs/config/props/swipeActionItem.js");
require("../../libs/config/props/swiper.js");
require("../../libs/config/props/swipterIndicator.js");
require("../../libs/config/props/switch.js");
require("../../libs/config/props/tabbar.js");
require("../../libs/config/props/tabbarItem.js");
require("../../libs/config/props/tabs.js");
require("../../libs/config/props/tag.js");
require("../../libs/config/props/text.js");
require("../../libs/config/props/textarea.js");
require("../../libs/config/props/toast.js");
require("../../libs/config/props/toolbar.js");
require("../../libs/config/props/tooltip.js");
require("../../libs/config/props/transition.js");
require("../../libs/config/props/upload.js");
require("../../libs/function/digit.js");
const _sfc_main = {
name: "u-button",
mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_libs_mixin_button.button, uni_modules_uviewPlus_libs_mixin_openType.openType, uni_modules_uviewPlus_components_uButton_props.props],
data() {
return {};
},
computed: {
// 生成bem风格的类名
bemClass() {
if (!this.color) {
return this.bem(
"button",
["type", "shape", "size"],
["disabled", "plain", "hairline"]
);
} else {
return this.bem(
"button",
["shape", "size"],
["disabled", "plain", "hairline"]
);
}
},
loadingColor() {
if (this.plain) {
return this.color ? this.color : uni_modules_uviewPlus_libs_config_color.color[`u-${this.type}`];
}
if (this.type === "info") {
return "#c9c9c9";
}
return "rgb(200, 200, 200)";
},
iconColorCom() {
if (this.iconColor)
return this.iconColor;
if (this.plain) {
return this.color ? this.color : this.type;
} else {
return this.type === "info" ? "#000000" : "#ffffff";
}
},
baseColor() {
let style = {};
if (this.color) {
style.color = this.plain ? this.color : "white";
if (!this.plain) {
style["background-color"] = this.color;
}
if (this.color.indexOf("gradient") !== -1) {
style.borderTopWidth = 0;
style.borderRightWidth = 0;
style.borderBottomWidth = 0;
style.borderLeftWidth = 0;
if (!this.plain) {
style.backgroundImage = this.color;
}
} else {
style.borderColor = this.color;
style.borderWidth = "1px";
style.borderStyle = "solid";
}
}
return style;
},
// nvue版本按钮的字体不会继承父组件的颜色需要对每一个text组件进行单独的设置
nvueTextStyle() {
let style = {};
if (this.type === "info") {
style.color = "#323233";
}
if (this.color) {
style.color = this.plain ? this.color : "white";
}
style.fontSize = this.textSize + "px";
return style;
},
// 字体大小
textSize() {
let fontSize = 14, { size } = this;
if (size === "large")
fontSize = 16;
if (size === "normal")
fontSize = 14;
if (size === "small")
fontSize = 12;
if (size === "mini")
fontSize = 10;
return fontSize;
}
},
emits: [
"click",
"getphonenumber",
"getuserinfo",
"error",
"opensetting",
"launchapp",
"agreeprivacyauthorization"
],
methods: {
addStyle: uni_modules_uviewPlus_libs_function_index.addStyle,
clickHandler() {
if (!this.disabled && !this.loading) {
uni_modules_uviewPlus_libs_function_throttle.throttle(() => {
this.$emit("click");
}, this.throttleTime);
}
},
// 下面为对接uniapp官方按钮开放能力事件回调的对接
getphonenumber(res) {
this.$emit("getphonenumber", res);
},
getuserinfo(res) {
this.$emit("getuserinfo", res);
},
error(res) {
this.$emit("error", res);
},
opensetting(res) {
this.$emit("opensetting", res);
},
launchapp(res) {
this.$emit("launchapp", res);
},
agreeprivacyauthorization(res) {
this.$emit("agreeprivacyauthorization", res);
}
}
};
if (!Array) {
const _easycom_u_loading_icon2 = common_vendor.resolveComponent("u-loading-icon");
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
(_easycom_u_loading_icon2 + _easycom_u_icon2)();
}
const _easycom_u_loading_icon = () => "../u-loading-icon/u-loading-icon.js";
const _easycom_u_icon = () => "../u-icon/u-icon.js";
if (!Math) {
(_easycom_u_loading_icon + _easycom_u_icon)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.loading
}, _ctx.loading ? {
b: common_vendor.p({
mode: _ctx.loadingMode,
size: _ctx.loadingSize * 1.15,
color: $options.loadingColor
}),
c: common_vendor.t(_ctx.loadingText || _ctx.text),
d: common_vendor.s({
fontSize: $options.textSize + "px"
})
} : common_vendor.e({
e: _ctx.icon
}, _ctx.icon ? {
f: common_vendor.p({
name: _ctx.icon,
color: $options.iconColorCom,
size: $options.textSize * 1.35,
customStyle: {
marginRight: "2px"
}
})
} : {}, {
g: common_vendor.t(_ctx.text),
h: common_vendor.s({
fontSize: $options.textSize + "px"
})
}), {
i: Number(_ctx.hoverStartTime),
j: Number(_ctx.hoverStayTime),
k: _ctx.formType,
l: _ctx.openType,
m: _ctx.appParameter,
n: _ctx.hoverStopPropagation,
o: _ctx.sendMessageTitle,
p: _ctx.sendMessagePath,
q: _ctx.lang,
r: _ctx.dataName,
s: _ctx.sessionFrom,
t: _ctx.sendMessageImg,
v: _ctx.showMessageCard,
w: common_vendor.o((...args) => $options.getphonenumber && $options.getphonenumber(...args)),
x: common_vendor.o((...args) => $options.getuserinfo && $options.getuserinfo(...args)),
y: common_vendor.o((...args) => $options.error && $options.error(...args)),
z: common_vendor.o((...args) => $options.opensetting && $options.opensetting(...args)),
A: common_vendor.o((...args) => $options.launchapp && $options.launchapp(...args)),
B: common_vendor.o((...args) => $options.agreeprivacyauthorization && $options.agreeprivacyauthorization(...args)),
C: !_ctx.disabled && !_ctx.loading ? "u-button--active" : "",
D: common_vendor.s($options.baseColor),
E: common_vendor.s($options.addStyle(_ctx.customStyle)),
F: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args)),
G: common_vendor.n($options.bemClass)
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-5ce41ee6"], ["__file", "D:/里海数字乡村/purchase-let/uni_modules/uview-plus/components/u-button/u-button.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"u-loading-icon": "../u-loading-icon/u-loading-icon",
"u-icon": "../u-icon/u-icon"
}
}

View File

@ -0,0 +1 @@
<button hover-start-time="{{i}}" hover-stay-time="{{j}}" form-type="{{k}}" open-type="{{l}}" app-parameter="{{m}}" hover-stop-propagation="{{n}}" send-message-title="{{o}}" send-message-path="{{p}}" lang="{{q}}" data-name="{{r}}" session-from="{{s}}" send-message-img="{{t}}" show-message-card="{{v}}" bindgetphonenumber="{{w}}" bindgetuserinfo="{{x}}" binderror="{{y}}" bindopensetting="{{z}}" bindlaunchapp="{{A}}" bindagreeprivacyauthorization="{{B}}" hover-class="{{C}}" style="{{D + ';' + E}}" bindtap="{{F}}" class="{{['u-button', 'u-reset-button', 'data-v-5ce41ee6', G]}}"><block wx:if="{{a}}"><u-loading-icon wx:if="{{b}}" class="data-v-5ce41ee6" u-i="5ce41ee6-0" bind:__l="__l" u-p="{{b}}"></u-loading-icon><text class="u-button__loading-text data-v-5ce41ee6" style="{{d}}">{{c}}</text></block><block wx:else><u-icon wx:if="{{e}}" class="data-v-5ce41ee6" u-i="5ce41ee6-1" bind:__l="__l" u-p="{{f}}"></u-icon><block wx:if="{{$slots.d}}"><slot></slot></block><block wx:else><text class="u-button__text data-v-5ce41ee6" style="{{h}}">{{g}}</text></block></block></button>

View File

@ -0,0 +1,188 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.u-empty.data-v-5ce41ee6,
.u-empty__wrap.data-v-5ce41ee6,
.u-tabs.data-v-5ce41ee6,
.u-tabs__wrapper.data-v-5ce41ee6,
.u-tabs__wrapper__scroll-view-wrapper.data-v-5ce41ee6,
.u-tabs__wrapper__scroll-view.data-v-5ce41ee6,
.u-tabs__wrapper__nav.data-v-5ce41ee6,
.u-tabs__wrapper__nav__line.data-v-5ce41ee6 {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-button.data-v-5ce41ee6 {
width: 100%;
white-space: nowrap;
}
.u-button__text.data-v-5ce41ee6 {
white-space: nowrap;
line-height: 1;
}
.u-button.data-v-5ce41ee6:before {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 100%;
border: inherit;
border-radius: inherit;
transform: translate(-50%, -50%);
opacity: 0;
content: " ";
background-color: #000;
border-color: #000;
}
.u-button--active.data-v-5ce41ee6:before {
opacity: 0.15;
}
.u-button__icon + .u-button__text.data-v-5ce41ee6:not(:empty), .u-button__loading-text.data-v-5ce41ee6 {
margin-left: 4px;
}
.u-button--plain.u-button--primary.data-v-5ce41ee6 {
color: #3c9cff;
}
.u-button--plain.u-button--info.data-v-5ce41ee6 {
color: #909399;
}
.u-button--plain.u-button--success.data-v-5ce41ee6 {
color: #5ac725;
}
.u-button--plain.u-button--error.data-v-5ce41ee6 {
color: #f56c6c;
}
.u-button--plain.u-button--warning.data-v-5ce41ee6 {
color: #f56c6c;
}
.u-button.data-v-5ce41ee6 {
height: 40px;
position: relative;
align-items: center;
justify-content: center;
display: flex;
flex-direction: row;
box-sizing: border-box;
flex-direction: row;
}
.u-button__text.data-v-5ce41ee6 {
font-size: 15px;
}
.u-button__loading-text.data-v-5ce41ee6 {
font-size: 15px;
margin-left: 4px;
}
.u-button--large.data-v-5ce41ee6 {
width: 100%;
height: 50px;
padding: 0 15px;
}
.u-button--normal.data-v-5ce41ee6 {
padding: 0 12px;
font-size: 14px;
}
.u-button--small.data-v-5ce41ee6 {
min-width: 60px;
height: 30px;
padding: 0px 8px;
font-size: 12px;
}
.u-button--mini.data-v-5ce41ee6 {
height: 22px;
font-size: 10px;
min-width: 50px;
padding: 0px 8px;
}
.u-button--disabled.data-v-5ce41ee6 {
opacity: 0.5;
}
.u-button--info.data-v-5ce41ee6 {
color: #323233;
background-color: #fff;
border-color: #ebedf0;
border-width: 1px;
border-style: solid;
}
.u-button--success.data-v-5ce41ee6 {
color: #fff;
background-color: #5ac725;
border-color: #5ac725;
border-width: 1px;
border-style: solid;
}
.u-button--primary.data-v-5ce41ee6 {
color: #fff;
background-color: #3c9cff;
border-color: #3c9cff;
border-width: 1px;
border-style: solid;
}
.u-button--error.data-v-5ce41ee6 {
color: #fff;
background-color: #f56c6c;
border-color: #f56c6c;
border-width: 1px;
border-style: solid;
}
.u-button--warning.data-v-5ce41ee6 {
color: #fff;
background-color: #f9ae3d;
border-color: #f9ae3d;
border-width: 1px;
border-style: solid;
}
.u-button--block.data-v-5ce41ee6 {
display: flex;
flex-direction: row;
width: 100%;
}
.u-button--circle.data-v-5ce41ee6 {
border-top-right-radius: 100px;
border-top-left-radius: 100px;
border-bottom-left-radius: 100px;
border-bottom-right-radius: 100px;
}
.u-button--square.data-v-5ce41ee6 {
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.u-button__icon.data-v-5ce41ee6 {
min-width: 1em;
line-height: inherit !important;
vertical-align: top;
}
.u-button--plain.data-v-5ce41ee6 {
background-color: #fff;
}
.u-button--hairline.data-v-5ce41ee6 {
border-width: 0.5px !important;
}

View File

@ -0,0 +1,17 @@
"use strict";
const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js");
const props = {
props: {
// 分组标题
title: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cellGroup.title
},
// 是否显示外边框
border: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cellGroup.border
}
}
};
exports.props = props;

View File

@ -0,0 +1,129 @@
"use strict";
const uni_modules_uviewPlus_components_uCellGroup_props = require("./props.js");
const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js");
const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js");
const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js");
const common_vendor = require("../../../../common/vendor.js");
require("../../libs/config/props.js");
require("../../libs/config/config.js");
require("../../libs/config/props/actionSheet.js");
require("../../libs/config/props/album.js");
require("../../libs/config/props/alert.js");
require("../../libs/config/props/avatar.js");
require("../../libs/config/props/avatarGroup.js");
require("../../libs/config/props/backtop.js");
require("../../libs/config/props/badge.js");
require("../../libs/config/props/button.js");
require("../../libs/config/props/calendar.js");
require("../../libs/config/props/carKeyboard.js");
require("../../libs/config/props/cell.js");
require("../../libs/config/props/cellGroup.js");
require("../../libs/config/props/checkbox.js");
require("../../libs/config/props/checkboxGroup.js");
require("../../libs/config/props/circleProgress.js");
require("../../libs/config/props/code.js");
require("../../libs/config/props/codeInput.js");
require("../../libs/config/props/col.js");
require("../../libs/config/props/collapse.js");
require("../../libs/config/props/collapseItem.js");
require("../../libs/config/props/columnNotice.js");
require("../../libs/config/props/countDown.js");
require("../../libs/config/props/countTo.js");
require("../../libs/config/props/datetimePicker.js");
require("../../libs/config/props/divider.js");
require("../../libs/config/props/empty.js");
require("../../libs/config/props/form.js");
require("../../libs/config/props/formItem.js");
require("../../libs/config/props/gap.js");
require("../../libs/config/props/grid.js");
require("../../libs/config/props/gridItem.js");
require("../../libs/config/props/icon.js");
require("../../libs/config/props/image.js");
require("../../libs/config/props/indexAnchor.js");
require("../../libs/config/props/indexList.js");
require("../../libs/config/props/input.js");
require("../../libs/config/props/keyboard.js");
require("../../libs/config/props/line.js");
require("../../libs/config/props/lineProgress.js");
require("../../libs/config/props/link.js");
require("../../libs/config/props/list.js");
require("../../libs/config/props/listItem.js");
require("../../libs/config/props/loadingIcon.js");
require("../../libs/config/props/loadingPage.js");
require("../../libs/config/props/loadmore.js");
require("../../libs/config/props/modal.js");
require("../../libs/config/props/navbar.js");
require("../../libs/config/color.js");
require("../../libs/config/props/noNetwork.js");
require("../../libs/config/props/noticeBar.js");
require("../../libs/config/props/notify.js");
require("../../libs/config/props/numberBox.js");
require("../../libs/config/props/numberKeyboard.js");
require("../../libs/config/props/overlay.js");
require("../../libs/config/props/parse.js");
require("../../libs/config/props/picker.js");
require("../../libs/config/props/popup.js");
require("../../libs/config/props/radio.js");
require("../../libs/config/props/radioGroup.js");
require("../../libs/config/props/rate.js");
require("../../libs/config/props/readMore.js");
require("../../libs/config/props/row.js");
require("../../libs/config/props/rowNotice.js");
require("../../libs/config/props/scrollList.js");
require("../../libs/config/props/search.js");
require("../../libs/config/props/section.js");
require("../../libs/config/props/skeleton.js");
require("../../libs/config/props/slider.js");
require("../../libs/config/props/statusBar.js");
require("../../libs/config/props/steps.js");
require("../../libs/config/props/stepsItem.js");
require("../../libs/config/props/sticky.js");
require("../../libs/config/props/subsection.js");
require("../../libs/config/props/swipeAction.js");
require("../../libs/config/props/swipeActionItem.js");
require("../../libs/config/props/swiper.js");
require("../../libs/config/props/swipterIndicator.js");
require("../../libs/config/props/switch.js");
require("../../libs/config/props/tabbar.js");
require("../../libs/config/props/tabbarItem.js");
require("../../libs/config/props/tabs.js");
require("../../libs/config/props/tag.js");
require("../../libs/config/props/text.js");
require("../../libs/config/props/textarea.js");
require("../../libs/config/props/toast.js");
require("../../libs/config/props/toolbar.js");
require("../../libs/config/props/tooltip.js");
require("../../libs/config/props/transition.js");
require("../../libs/config/props/upload.js");
require("../../libs/function/test.js");
require("../../libs/util/route.js");
require("../../libs/function/digit.js");
const _sfc_main = {
name: "u-cell-group",
mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_components_uCellGroup_props.props],
methods: {
addStyle: uni_modules_uviewPlus_libs_function_index.addStyle
}
};
if (!Array) {
const _easycom_u_line2 = common_vendor.resolveComponent("u-line");
_easycom_u_line2();
}
const _easycom_u_line = () => "../u-line/u-line.js";
if (!Math) {
_easycom_u_line();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.title
}, _ctx.title ? {
b: common_vendor.t(_ctx.title)
} : {}, {
c: _ctx.border
}, _ctx.border ? {} : {}, {
d: common_vendor.s($options.addStyle(_ctx.customStyle)),
e: common_vendor.n(_ctx.customClass)
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-014d39dc"], ["__file", "D:/里海数字乡村/purchase-let/uni_modules/uview-plus/components/u-cell-group/u-cell-group.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"u-line": "../u-line/u-line"
}
}

View File

@ -0,0 +1 @@
<view style="{{d}}" class="{{[e, 'u-cell-group', 'data-v-014d39dc']}}"><view wx:if="{{a}}" class="u-cell-group__title data-v-014d39dc"><block wx:if="{{$slots.title}}"><slot name="title"></slot></block><block wx:else><text class="u-cell-group__title__text data-v-014d39dc">{{b}}</text></block></view><view class="u-cell-group__wrapper data-v-014d39dc"><u-line wx:if="{{c}}" class="data-v-014d39dc" u-i="014d39dc-0" bind:__l="__l"></u-line><slot/></view></view>

View File

@ -0,0 +1,55 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.u-empty.data-v-014d39dc,
.u-empty__wrap.data-v-014d39dc,
.u-tabs.data-v-014d39dc,
.u-tabs__wrapper.data-v-014d39dc,
.u-tabs__wrapper__scroll-view-wrapper.data-v-014d39dc,
.u-tabs__wrapper__scroll-view.data-v-014d39dc,
.u-tabs__wrapper__nav.data-v-014d39dc,
.u-tabs__wrapper__nav__line.data-v-014d39dc {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-cell-group.data-v-014d39dc {
flex: 1;
}
.u-cell-group__title.data-v-014d39dc {
padding: 16px 16px 8px;
}
.u-cell-group__title__text.data-v-014d39dc {
font-size: 15px;
line-height: 16px;
color: #303133;
}
.u-cell-group__wrapper.data-v-014d39dc {
position: relative;
}

View File

@ -0,0 +1,113 @@
"use strict";
const uni_modules_uviewPlus_libs_config_props = require("../../libs/config/props.js");
const props = {
props: {
// 标题
title: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.title
},
// 标题下方的描述信息
label: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.label
},
// 右侧的内容
value: {
type: [String, Number],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.value
},
// 左侧图标名称,或者图片链接(本地文件建议使用绝对地址)
icon: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.icon
},
// 是否禁用cell
disabled: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.disabled
},
// 是否显示下边框
border: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.border
},
// 内容是否垂直居中(主要是针对右侧的value部分)
center: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.center
},
// 点击后跳转的URL地址
url: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.url
},
// 链接跳转的方式内部使用的是uView封装的route方法可能会进行拦截操作
linkType: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.linkType
},
// 是否开启点击反馈(表现为点击时加上灰色背景)
clickable: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.clickable
},
// 是否展示右侧箭头并开启点击反馈
isLink: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.isLink
},
// 是否显示表单状态下的必填星号(此组件可能会内嵌入input组件)
required: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.required
},
// 右侧的图标箭头
rightIcon: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.rightIcon
},
// 右侧箭头的方向可选值为leftupdown
arrowDirection: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.arrowDirection
},
// 左侧图标样式
iconStyle: {
type: [Object, String],
default: () => {
return uni_modules_uviewPlus_libs_config_props.defProps.cell.iconStyle;
}
},
// 右侧箭头图标的样式
rightIconStyle: {
type: [Object, String],
default: () => {
return uni_modules_uviewPlus_libs_config_props.defProps.cell.rightIconStyle;
}
},
// 标题的样式
titleStyle: {
type: [Object, String],
default: () => {
return uni_modules_uviewPlus_libs_config_props.defProps.cell.titleStyle;
}
},
// 单位元的大小可选值为large
size: {
type: String,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.size
},
// 点击cell是否阻止事件传播
stop: {
type: Boolean,
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.stop
},
// 标识符cell被点击时返回
name: {
type: [Number, String],
default: () => uni_modules_uviewPlus_libs_config_props.defProps.cell.name
}
}
};
exports.props = props;

View File

@ -0,0 +1,197 @@
"use strict";
const uni_modules_uviewPlus_components_uCell_props = require("./props.js");
const uni_modules_uviewPlus_libs_mixin_mpMixin = require("../../libs/mixin/mpMixin.js");
const uni_modules_uviewPlus_libs_mixin_mixin = require("../../libs/mixin/mixin.js");
const uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js");
const uni_modules_uviewPlus_libs_function_test = require("../../libs/function/test.js");
const common_vendor = require("../../../../common/vendor.js");
require("../../libs/config/props.js");
require("../../libs/config/config.js");
require("../../libs/config/props/actionSheet.js");
require("../../libs/config/props/album.js");
require("../../libs/config/props/alert.js");
require("../../libs/config/props/avatar.js");
require("../../libs/config/props/avatarGroup.js");
require("../../libs/config/props/backtop.js");
require("../../libs/config/props/badge.js");
require("../../libs/config/props/button.js");
require("../../libs/config/props/calendar.js");
require("../../libs/config/props/carKeyboard.js");
require("../../libs/config/props/cell.js");
require("../../libs/config/props/cellGroup.js");
require("../../libs/config/props/checkbox.js");
require("../../libs/config/props/checkboxGroup.js");
require("../../libs/config/props/circleProgress.js");
require("../../libs/config/props/code.js");
require("../../libs/config/props/codeInput.js");
require("../../libs/config/props/col.js");
require("../../libs/config/props/collapse.js");
require("../../libs/config/props/collapseItem.js");
require("../../libs/config/props/columnNotice.js");
require("../../libs/config/props/countDown.js");
require("../../libs/config/props/countTo.js");
require("../../libs/config/props/datetimePicker.js");
require("../../libs/config/props/divider.js");
require("../../libs/config/props/empty.js");
require("../../libs/config/props/form.js");
require("../../libs/config/props/formItem.js");
require("../../libs/config/props/gap.js");
require("../../libs/config/props/grid.js");
require("../../libs/config/props/gridItem.js");
require("../../libs/config/props/icon.js");
require("../../libs/config/props/image.js");
require("../../libs/config/props/indexAnchor.js");
require("../../libs/config/props/indexList.js");
require("../../libs/config/props/input.js");
require("../../libs/config/props/keyboard.js");
require("../../libs/config/props/line.js");
require("../../libs/config/props/lineProgress.js");
require("../../libs/config/props/link.js");
require("../../libs/config/props/list.js");
require("../../libs/config/props/listItem.js");
require("../../libs/config/props/loadingIcon.js");
require("../../libs/config/props/loadingPage.js");
require("../../libs/config/props/loadmore.js");
require("../../libs/config/props/modal.js");
require("../../libs/config/props/navbar.js");
require("../../libs/config/color.js");
require("../../libs/config/props/noNetwork.js");
require("../../libs/config/props/noticeBar.js");
require("../../libs/config/props/notify.js");
require("../../libs/config/props/numberBox.js");
require("../../libs/config/props/numberKeyboard.js");
require("../../libs/config/props/overlay.js");
require("../../libs/config/props/parse.js");
require("../../libs/config/props/picker.js");
require("../../libs/config/props/popup.js");
require("../../libs/config/props/radio.js");
require("../../libs/config/props/radioGroup.js");
require("../../libs/config/props/rate.js");
require("../../libs/config/props/readMore.js");
require("../../libs/config/props/row.js");
require("../../libs/config/props/rowNotice.js");
require("../../libs/config/props/scrollList.js");
require("../../libs/config/props/search.js");
require("../../libs/config/props/section.js");
require("../../libs/config/props/skeleton.js");
require("../../libs/config/props/slider.js");
require("../../libs/config/props/statusBar.js");
require("../../libs/config/props/steps.js");
require("../../libs/config/props/stepsItem.js");
require("../../libs/config/props/sticky.js");
require("../../libs/config/props/subsection.js");
require("../../libs/config/props/swipeAction.js");
require("../../libs/config/props/swipeActionItem.js");
require("../../libs/config/props/swiper.js");
require("../../libs/config/props/swipterIndicator.js");
require("../../libs/config/props/switch.js");
require("../../libs/config/props/tabbar.js");
require("../../libs/config/props/tabbarItem.js");
require("../../libs/config/props/tabs.js");
require("../../libs/config/props/tag.js");
require("../../libs/config/props/text.js");
require("../../libs/config/props/textarea.js");
require("../../libs/config/props/toast.js");
require("../../libs/config/props/toolbar.js");
require("../../libs/config/props/tooltip.js");
require("../../libs/config/props/transition.js");
require("../../libs/config/props/upload.js");
require("../../libs/util/route.js");
require("../../libs/function/digit.js");
const _sfc_main = {
name: "u-cell",
data() {
return {};
},
mixins: [uni_modules_uviewPlus_libs_mixin_mpMixin.mpMixin, uni_modules_uviewPlus_libs_mixin_mixin.mixin, uni_modules_uviewPlus_components_uCell_props.props],
computed: {
titleTextStyle() {
return uni_modules_uviewPlus_libs_function_index.addStyle(this.titleStyle);
}
},
emits: ["click"],
methods: {
addStyle: uni_modules_uviewPlus_libs_function_index.addStyle,
testEmpty: uni_modules_uviewPlus_libs_function_test.test.empty,
// 点击cell
clickHandler(e) {
if (this.disabled)
return;
this.$emit("click", {
name: this.name
});
this.openPage();
this.stop && this.preventEvent(e);
}
}
};
if (!Array) {
const _easycom_u_icon2 = common_vendor.resolveComponent("u-icon");
const _easycom_u_line2 = common_vendor.resolveComponent("u-line");
(_easycom_u_icon2 + _easycom_u_line2)();
}
const _easycom_u_icon = () => "../u-icon/u-icon.js";
const _easycom_u_line = () => "../u-line/u-line.js";
if (!Math) {
(_easycom_u_icon + _easycom_u_line)();
}
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return common_vendor.e({
a: _ctx.$slots.icon || _ctx.icon
}, _ctx.$slots.icon || _ctx.icon ? common_vendor.e({
b: _ctx.$slots.icon
}, _ctx.$slots.icon ? {} : {
c: common_vendor.p({
name: _ctx.icon,
["custom-style"]: _ctx.iconStyle,
size: _ctx.size === "large" ? 22 : 18
})
}) : {}, {
d: _ctx.$slots.title || !_ctx.title
}, _ctx.$slots.title || !_ctx.title ? {} : {
e: common_vendor.t(_ctx.title),
f: common_vendor.s($options.titleTextStyle),
g: common_vendor.n(_ctx.disabled && "u-cell--disabled"),
h: common_vendor.n(_ctx.size === "large" && "u-cell__title-text--large")
}, {
i: _ctx.label
}, _ctx.label ? {
j: common_vendor.t(_ctx.label),
k: common_vendor.n(_ctx.disabled && "u-cell--disabled"),
l: common_vendor.n(_ctx.size === "large" && "u-cell__label--large")
} : {}, {
m: !$options.testEmpty(_ctx.value)
}, !$options.testEmpty(_ctx.value) ? {
n: common_vendor.t(_ctx.value),
o: common_vendor.n(_ctx.disabled && "u-cell--disabled"),
p: common_vendor.n(_ctx.size === "large" && "u-cell__value--large")
} : {}, {
q: _ctx.$slots["right-icon"] || _ctx.isLink
}, _ctx.$slots["right-icon"] || _ctx.isLink ? common_vendor.e({
r: _ctx.rightIcon && !_ctx.$slots["right-icon"]
}, _ctx.rightIcon && !_ctx.$slots["right-icon"] ? {
s: common_vendor.p({
name: _ctx.rightIcon,
["custom-style"]: _ctx.rightIconStyle,
color: _ctx.disabled ? "#c8c9cc" : "info",
size: _ctx.size === "large" ? 18 : 16
})
} : {}, {
t: common_vendor.n(`u-cell__right-icon-wrap--${_ctx.arrowDirection}`)
}) : {}, {
v: _ctx.$slots["righticon"]
}, _ctx.$slots["righticon"] ? {
w: common_vendor.n(`u-cell__right-icon-wrap--${_ctx.arrowDirection}`)
} : {}, {
x: common_vendor.n(_ctx.center && "u-cell--center"),
y: common_vendor.n(_ctx.size === "large" && "u-cell__body--large"),
z: _ctx.border
}, _ctx.border ? {} : {}, {
A: common_vendor.n(_ctx.customClass),
B: common_vendor.s($options.addStyle(_ctx.customStyle)),
C: !_ctx.disabled && (_ctx.clickable || _ctx.isLink) ? "u-cell--clickable" : "",
D: common_vendor.o((...args) => $options.clickHandler && $options.clickHandler(...args))
});
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-3fd6feca"], ["__file", "D:/里海数字乡村/purchase-let/uni_modules/uview-plus/components/u-cell/u-cell.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,7 @@
{
"component": true,
"usingComponents": {
"u-icon": "../u-icon/u-icon",
"u-line": "../u-line/u-line"
}
}

View File

@ -0,0 +1 @@
<view class="{{['u-cell', 'data-v-3fd6feca', A]}}" style="{{B}}" hover-class="{{C}}" hover-stay-time="{{250}}" bindtap="{{D}}"><view class="{{['u-cell__body', 'data-v-3fd6feca', x, y]}}"><view class="u-cell__body__content data-v-3fd6feca"><view wx:if="{{a}}" class="u-cell__left-icon-wrap data-v-3fd6feca"><slot wx:if="{{b}}" name="icon"></slot><u-icon wx:else class="data-v-3fd6feca" u-i="3fd6feca-0" bind:__l="__l" u-p="{{c||''}}"></u-icon></view><view class="u-cell__title data-v-3fd6feca"><slot wx:if="{{d}}" name="title"></slot><text wx:else style="{{f}}" class="{{['u-cell__title-text', 'data-v-3fd6feca', g, h]}}">{{e}}</text><block wx:if="{{$slots.label}}"><slot name="label"></slot></block><block wx:else><text wx:if="{{i}}" class="{{['u-cell__label', 'data-v-3fd6feca', k, l]}}">{{j}}</text></block></view></view><block wx:if="{{$slots.value}}"><slot name="value"></slot></block><block wx:else><text wx:if="{{m}}" class="{{['u-cell__value', 'data-v-3fd6feca', o, p]}}">{{n}}</text></block><view wx:if="{{q}}" class="{{['u-cell__right-icon-wrap', 'data-v-3fd6feca', t]}}"><u-icon wx:if="{{r}}" class="data-v-3fd6feca" u-i="3fd6feca-1" bind:__l="__l" u-p="{{s}}"></u-icon><slot wx:else name="right-icon"></slot></view><view wx:if="{{v}}" class="{{['u-cell__right-icon-wrap', 'data-v-3fd6feca', w]}}"><slot name="righticon"></slot></view></view><u-line wx:if="{{z}}" class="data-v-3fd6feca" u-i="3fd6feca-2" bind:__l="__l"></u-line></view>

View File

@ -0,0 +1,119 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场https://ext.dcloud.net.cn上很多三方插件均使用了这些样式变量
* 如果你是插件开发者建议你使用scss预处理并在插件代码中直接使用这些变量无需 import 这个文件方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者插件使用者你可以通过修改这些变量来定制自己的插件主题实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
/* 文字基本颜色 */
/* 背景颜色 */
/* 边框颜色 */
/* 尺寸变量 */
/* 文字尺寸 */
/* 图片尺寸 */
/* Border Radius */
/* 水平间距 */
/* 垂直间距 */
/* 透明度 */
/* 文章场景相关 */
.u-empty.data-v-3fd6feca,
.u-empty__wrap.data-v-3fd6feca,
.u-tabs.data-v-3fd6feca,
.u-tabs__wrapper.data-v-3fd6feca,
.u-tabs__wrapper__scroll-view-wrapper.data-v-3fd6feca,
.u-tabs__wrapper__scroll-view.data-v-3fd6feca,
.u-tabs__wrapper__nav.data-v-3fd6feca,
.u-tabs__wrapper__nav__line.data-v-3fd6feca {
display: flex;
flex-direction: column;
flex-shrink: 0;
flex-grow: 0;
flex-basis: auto;
align-items: stretch;
align-content: flex-start;
}
.u-cell__body.data-v-3fd6feca {
display: flex;
flex-direction: row;
box-sizing: border-box;
padding: 13px 15px;
font-size: 15px;
color: #303133;
align-items: center;
}
.u-cell__body__content.data-v-3fd6feca {
display: flex;
flex-direction: row;
align-items: center;
flex: 1;
}
.u-cell__body--large.data-v-3fd6feca {
padding-top: 13px;
padding-bottom: 13px;
}
.u-cell__left-icon-wrap.data-v-3fd6feca, .u-cell__right-icon-wrap.data-v-3fd6feca {
display: flex;
flex-direction: row;
align-items: center;
font-size: 16px;
}
.u-cell__left-icon-wrap.data-v-3fd6feca {
margin-right: 4px;
}
.u-cell__right-icon-wrap.data-v-3fd6feca {
margin-left: 4px;
transition: transform 0.3s;
}
.u-cell__right-icon-wrap--up.data-v-3fd6feca {
transform: rotate(-90deg);
}
.u-cell__right-icon-wrap--down.data-v-3fd6feca {
transform: rotate(90deg);
}
.u-cell__title.data-v-3fd6feca {
flex: 1;
}
.u-cell__title-text.data-v-3fd6feca {
font-size: 15px;
line-height: 22px;
color: #303133;
}
.u-cell__title-text--large.data-v-3fd6feca {
font-size: 16px;
}
.u-cell__label.data-v-3fd6feca {
margin-top: 5px;
font-size: 12px;
color: #909193;
line-height: 18px;
}
.u-cell__label--large.data-v-3fd6feca {
font-size: 14px;
}
.u-cell__value.data-v-3fd6feca {
text-align: right;
margin-left: auto;
font-size: 14px;
line-height: 24px;
color: #606266;
}
.u-cell__value--large.data-v-3fd6feca {
font-size: 15px;
}
.u-cell--clickable.data-v-3fd6feca {
background-color: #f3f4f6;
}
.u-cell--disabled.data-v-3fd6feca {
color: #c8c9cc;
cursor: not-allowed;
}
.u-cell--center.data-v-3fd6feca {
align-items: center;
}

View File

@ -0,0 +1,66 @@
"use strict";
const common_vendor = require("../../../../common/vendor.js");
const _sfc_main = {
name: "xy-copy",
props: {
content: {
type: String,
default: ""
},
alertStyle: {
type: String,
default: "toast"
},
notice: {
type: String,
default: "复制成功"
}
},
emits: ["success"],
methods: {
handleClick() {
let content = this.content;
if (!content) {
common_vendor.index.showToast({
title: "暂无",
icon: "none",
duration: 2e3
});
return false;
}
content = typeof content === "string" ? content : content.toString();
let that = this;
common_vendor.index.setClipboardData({
data: content,
success: function() {
if (that.alertStyle == "modal") {
common_vendor.index.showModal({
title: "提示",
content: that.notice
});
} else {
common_vendor.index.showToast({
title: that.notice,
icon: "none"
});
}
that.$emit("success");
},
fail: function() {
common_vendor.index.showToast({
title: "复制失败",
icon: "none",
duration: 3e3
});
}
});
}
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return {
a: common_vendor.o((...args) => $options.handleClick && $options.handleClick(...args))
};
}
const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "D:/里海数字乡村/purchase-let/uni_modules/uview-plus/components/u-copy/u-copy.vue"]]);
wx.createComponent(Component);

View File

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

View File

@ -0,0 +1 @@
<view bindtap="{{a}}"><block wx:if="{{$slots.d}}"><slot></slot></block><block wx:else>复制</block></view>

Some files were not shown because too many files have changed in this diff Show More