From ee24d5d1cf9025f6c15f3b4a435fd0ac7ccc8054 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 24 二月 2026 09:06:43 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dingyuannongji
---
mini-program/pagesA/pages/write-off/write-off.vue | 122 +++++
mini-program/static/icon/default2.png | 0
server/dmmall_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java | 2
mini-program/utils/http.interceptor.js | 1
mini-program/pages/distributor/distributor.vue | 65 ++-
mini-program/utils/http.api.js | 19
server/dmmall_web/src/main/java/com/doumee/InterfaceApplication.java | 1
mini-program/unpackage/dist/dev/mp-weixin/common/main.js | 56 +-
server/dmmall_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java | 1
/dev/null | 25 -
mini-program/pagesA/pages/order-details/order-details.vue | 354 ++++++++++++++---
mini-program/pagesA/pages/order/order.vue | 364 +++++++++++++++--
mini-program/pages/mine/mine.vue | 22
mini-program/pagesA/pages/write-off-a/write-off-a.vue | 154 ++++++
14 files changed, 952 insertions(+), 234 deletions(-)
diff --git a/mini-program/pages/distributor/distributor.vue b/mini-program/pages/distributor/distributor.vue
index fd05157..1ecd56c 100644
--- a/mini-program/pages/distributor/distributor.vue
+++ b/mini-program/pages/distributor/distributor.vue
@@ -86,7 +86,7 @@
<image src="/static/icon/ic_xunizhanghu@2x.png" mode="widthFix"></image>
<text>铏氭嫙璐﹀彿</text>
</view>
- <view class="func-item" style="margin-bottom: 30rpx;">
+ <view class="func-item" style="margin-bottom: 30rpx;" @click="jumpWriteoff">
<image src="/static/icon/ic_zitihexiao@2x.png" mode="widthFix"></image>
<text>鑷彁鏍搁攢</text>
</view>
@@ -107,11 +107,11 @@
</view>
<view class="title" v-if="!show">寰呭鐞嗚鍗� ({{total}})</view>
<view class="list" v-if="!show">
- <view class="list-item" v-for="(item, index) in dataList" :key="index" @click="jumpOrderDetail(item.id)">
- <view class="a">
+ <view class="list-item" v-for="(item, index) in dataList" :key="index">
+ <view class="a" @click="jumpOrderDetail(item.id)">
<view class="a-left">
- <view class="a-left-tips">{{item.receiveType==1?'鑷彁':'蹇�掗厤閫�'}}</view>
- <text>璁㈠崟鍙凤細{{item.id}}</text>
+ <view :class="'a-left-tips '+(item.receiveType==1?'shop-top-tips-a':'shop-top-tips-b')">{{item.receiveType==1?'鑷彁':'閰嶉��'}}</view>
+ <text>璁㈠崟鍙凤細{{item.code}}</text>
</view>
<text v-if="item.status ==0" class="a-right">寰呮敮浠�</text>
<text v-if="item.status ==1" class="a-right">{{item.receiveType==1?'寰呰嚜鎻�':'寰呭彂璐�'}}</text>
@@ -120,17 +120,7 @@
<text v-if="item.status ==4"class="a-right">宸插彇娑�</text>
<text v-if="item.status ==6" class="a-right">宸查��娆�</text>
</view>
- <view class="b">
- <view class="b-item" v-for="(item1, index1) in (item.goodsorderDetailList||[])">
- <view class="b-item-image">
- <image :src="item1.imgurl||'/static/logo.png'" mode="widthFix"></image>
- </view>
- <view class="b-item-title">{{item1.name||''}}</view>
- <view class="b-item-jia">
- <text>楼{{(item1.price||0).toFixed(2)}}</text>
- <text>x{{item1.goodsNum||0}}</text>
- </view>
- </view>
+ <view class="b" @click="jumpOrderDetail(item.id)">
<view class="b-item" v-for="(item1, index1) in (item.goodsorderDetailList||[])">
<view class="b-item-image">
<image :src="item1.imgurl||'/static/logo.png'" mode="widthFix"></image>
@@ -152,14 +142,14 @@
</view>
<view class="c-btns">
<view class="c-btns-item blue" @click="contactPhone(item)">鑱旂郴瀹㈡埛</view>
- <view class="c-btns-item bg">鑷彁鏍搁攢</view>
+ <view class="c-btns-item bg" v-if="item.status == 1 && item.receiveType ==1" @click="hexiaoOrder(item)">鑷彁鏍搁攢</view>
</view>
</view>
- <view class="d" v-if="item.memberInfo">
+ <view class="d" v-if="item.memberInfo" @click="jumpOrderDetail(item.id)">
璁㈠崟澶囨敞锛歿{item.memberInfo||''}}
</view>
</view>
- <view v-if="!hasNext" class="nomore">宸插姞杞藉叏閮�</view>
+ <view v-if="!hasNext" class="nomore">{{total>0?'宸插姞杞藉叏閮ㄦ暟鎹�':'鏆傛棤寰呭鐞嗚鍗�'}}</view>
</view>
</view>
<!-- 纭閫�鍑虹櫥闄� -->
@@ -245,13 +235,34 @@
this.active=0
this.shop = this.shopInfo || {}
this.getCountData()
+ this.total=0
+ this.hasNext=true
this.currentPage = 0
this.getOrderList()
},
onReachBottom(){
this.getOrderList( );
},
+ onLoad() {
+ var that =this
+ uni.$on('updateOrder',function(data){
+ if(data.info!=null && data.info.orderId!=null && data.info.orderStatus ==3){
+ if(data.info.orderStatus ==3){
+ that.getCountData()
+ }
+ that.total=0
+ that.hasNext=true
+ that.currentPage = 0
+ that.getOrderList()
+ }
+ })
+ },
methods:{
+ hexiaoOrder(item){
+ uni.navigateTo({
+ url:'/pagesA/pages/write-off-a/write-off-a?id='+item.id
+ })
+ },
openQrcode(){
if(this.shop.programCode){
this.showQrcode = !this.showQrcode
@@ -372,12 +383,17 @@
},
jumpOrderList() {
uni.navigateTo({
- url: '/pagesA/pages/order/order'
+ url: '/pagesA/pages/order/order?userType=1'
})
},
jumpAccount() {
uni.navigateTo({
url: '/pagesA/pages/virtual-account/virtual-account'
+ })
+ },
+ jumpWriteoff() {
+ uni.navigateTo({
+ url: '/pagesA/pages/write-off/write-off'
})
},
jumpMemberList() {
@@ -472,13 +488,20 @@
padding: 0 6rpx;
height: 40rpx;
line-height: 40rpx;
- background: #00B775;
border-radius: 8rpx;
font-weight: 400;
font-size: 22rpx;
color: #FFFFFF;
margin-right: 16rpx;
}
+ .shop-top-tips-a {
+ background: #00B775;
+ border: 1rpx solid #00B775;
+ }
+ .shop-top-tips-b {
+ background: #004096;
+ border: 1rpx solid #004096;
+ }
text {
font-weight: 400;
font-size: 26rpx;
diff --git a/mini-program/pages/mine/mine.vue b/mini-program/pages/mine/mine.vue
index 0df5eae..109db88 100644
--- a/mini-program/pages/mine/mine.vue
+++ b/mini-program/pages/mine/mine.vue
@@ -46,24 +46,24 @@
<view class="func">
<view class="func-top">
<view class="func-top-title">鎴戠殑璁㈠崟</view>
- <view class="func-top-to" @click="jumpOrder">
+ <view class="func-top-to" @click="jumpOrder(0)">
鍏ㄩ儴璁㈠崟
<image src="/static/icon/ic_ar2@2x.png" mode="widthFix"></image>
</view>
</view>
<view class="func-list">
- <view class="func-list-item" @click="jumpOrder(0)">
+ <view class="func-list-item" @click="jumpOrder(1)">
<view class="func-list-item-num" v-if="orderNum && orderNum.waitPayOrders > 0">{{orderNum.waitPayOrders}}</view>
<image src="/static/icon/mine_ic_daifukuan@2x.png" mode="widthFix"></image>
<text>寰呮敮浠�</text>
</view>
- <view class="func-list-item" @click="jumpOrder(1)">
+ <view class="func-list-item" @click="jumpOrder(2)">
<view class="func-list-item-num" v-if="orderNum && orderNum.waitOrders > 0">{{orderNum.waitOrders}}</view>
<image src="/static/icon/mine_ic_daifahuo@2x.png" mode="widthFix"></image>
<text>寰呭彂璐�/鑷彁</text>
</view>
- <view class="func-list-item" @click="jumpOrder(2)">
- <view class="func-list-item-num" v-if="orderNum && orderNum.waitOrders > 0">{{orderNum.waitReceivedOrders}}</view>
+ <view class="func-list-item" @click="jumpOrder(3)">
+ <view class="func-list-item-num" v-if="orderNum && orderNum.waitReceivedOrders > 0">{{orderNum.waitReceivedOrders}}</view>
<image src="/static/icon/mine_ic_daishouhuo@2x.png" mode="widthFix"></image>
<text>寰呮敹璐�</text>
</view>
@@ -157,15 +157,9 @@
},
// 璺宠浆璁㈠崟鍒楄〃
jumpOrder(status) {
- if (status >= 0) {
- uni.navigateTo({
- url: '/pages/order/order?status=' + status
- })
- } else {
- uni.navigateTo({
- url: '/pages/order/order'
- })
- }
+ uni.navigateTo({
+ url: '/pagesA/pages/order/order?userType=0&status=' + status
+ })
}
}
}
diff --git a/mini-program/pagesA/pages/order-details/order-details.vue b/mini-program/pagesA/pages/order-details/order-details.vue
index 043c5c0..11ffc1c 100644
--- a/mini-program/pagesA/pages/order-details/order-details.vue
+++ b/mini-program/pagesA/pages/order-details/order-details.vue
@@ -57,23 +57,22 @@
</view>
</view>
</view>
- <view class="user">
+ <view class="user" v-if="userType!=1">
<view class="user-jxa">
<view class="user-jxa-title">
<image src="/static/icon/ic_address@2x1.png" mode="widthFix"></image>
<text>{{info.shopInfo.name||''}}</text>
</view>
- <view class="user-jxa-lx">
+ <view class="user-jxa-lx" @click="contact( info.shopInfo.phone)">
<image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
- <text v-if="userType==1" @click="contact(info.linkphone)">鑱旂郴瀹㈡埛</text>
- <text v-if="info.orderStatus!=0 && userType==0" @click="contact(info.shopInfo.phone || '')">鑱旂郴缁忛攢鍟�</text>
+ <text > 鑱旂郴缁忛攢鍟�</text>
</view>
</view>
<view class="user-jxtime">
<image class="user-jxtime-icon" src="/static/icon/ic_openinghours@2x.png" mode="widthFix"></image>
<text>钀ヤ笟鏃堕棿锛歿{info.shopInfo.startTime || ''}}</text>
</view>
- <view class="user-jxtime">
+ <view class="user-jxtime" @click="jumpMap()">
<image class="user-jxtime-icon" src="/static/icon/ic_shopaddress@2x.png" mode="widthFix"></image>
<text>{{info.shopInfo.addr || ''}}</text>
<image class="user-jxtime-to" src="/static/icon/ic_ar2@2x.png" mode="widthFix"></image>
@@ -86,29 +85,48 @@
<view class="user-qrcode-btn" @click="copyText(info.exchangeCode)">澶嶅埗鑷彁鐮�</view>
</view>
</view>
- <view class="user" v-if="info.receiveType!=1">
+ <view class="user" v-if="userType==1">
<view class="user-top">
<view class="user-icon">
- <image src="/static/icon/ic_location@2x.png" mode="widthFix"></image>
+ <image :src="info.member && info.member.imgFullUrl? info.member.imgFullUrl:'/static/icon/default.png'" mode="widthFix"></image>
</view>
<view class="user-info">
<view class="user-info-a">
- <text>{{info.linkename || ''}}</text>
- <text>{{info.linkephone || ''}}</text>
+ <text>{{info.linkName || ''}}</text>
+ <view class="user-jxa-lx" @click="contact( info.linkPhone )">
+ <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image>
+ <text > 鑱旂郴瀹㈡埛</text>
+ </view>
</view>
<view class="user-info-b">
- {{info.addr||''}}
+ <!-- <image src="/static/icon/ic_call@2x.png" mode="widthFix"></image> -->
+ <text>{{info.linkPhone || ''}}</text>
</view>
</view>
</view>
- <view class="user-xian"></view>
- <view class="user-kd">
+ <view class="user-remark" v-if="info.memberInfo">
+ <text>璁㈠崟澶囨敞锛�</text>
+ <text>{{info.memberInfo || ''}}</text>
+ </view>
+ <view class="user-xian" v-if="info.receiveType!=1"></view>
+ <view class="user-kd" v-if="info.receiveType!=1">
+ <image src="/static/icon/ic_location@2x.png" mode="widthFix"></image>
+ <text>{{info.linkAddress || ''}}</text>
+ </view>
+ <view class="user-kd" v-if="info.receiveType!=1&& info.kdName && info.kdCode">
<image src="/static/icon/ic_wuliu@2x.png" mode="widthFix"></image>
<text>{{info.kdName || ''}}锝渰{info.kdCode || ''}}</text>
+ <image class="image2" src="/static/icon/ic_cppy@2x.png" @click="copyText(info.kdCode )" mode="widthFix"></image>
</view>
</view>
- <view class="shop">
- <view class="shop-info" style="margin: 0;" v-if="info.status ==6">
+ <view class="user" v-if="userType!=1 &&info.memberInfo" >
+ <view class="user-kd" >
+ <text>璁㈠崟澶囨敞锛�</text>
+ <text>{{info.memberInfo || ''}}</text>
+ </view>
+ </view>
+ <view class="shop" v-if="info.orderStatus ==6">
+ <view class="shop-info" style="margin: 0;" >
<view class="shop-info-item" style="margin-bottom: 12rpx;">
<view class="shop-info-item-label" style="color: #222222; font-size: 30rpx; font-weight: 600;">閫�娆鹃噾棰�</view>
<view class="shop-info-item-price xfk">
@@ -135,13 +153,12 @@
<view :class="'shop-top-tips '+(info.receiveType==1?'shop-top-tips-a':'shop-top-tips-b' )">{{info.receiveType==1?'鑷彁':'閰嶉��'}}</view>
<text>{{info.shopInfo.name || ''}}</text>
</view>
- <view class="b">
- <view class="b-item" v-for="(item, index) in (info.goodsorderDetailList||[])" :key="index">
- <view class="b-item-image">
-<!-- <image v-if="item.imgurl!=null" :src="item.imgurl" mode="widthFix"></image>
- --> <image src="/static/icon/default2.png" mode="widthFix"></image>
+ <view class="b" v-if="info.goodsorderDetailList && info.goodsorderDetailList.length">
+ <view class="b-item" v-for="(item, index) in info.goodsorderDetailList" :key="index" @click="jumpGoodsDetail(item,index)" >
+ <view class="b-item-image" >
+ <image :src="item.imgurl?item.imgurl:'/static/icon/default2.png'" mode="widthFix"></image>
</view>
- <view class="b-item-title">
+ <view class="b-item-title" >
<view class="b-item-title-val">{{item.name || ''}}</view>
<view class="b-item-jia">
<text>楼{{(item.price || 0).toFixed(2)}}</text>
@@ -204,7 +221,49 @@
<text>{{info.createDate || ''}}</text>
</view>
</view>
- <view class="xinxi-list-item">
+ <view class="xinxi-list-item" v-if="info.shopInfo!=null && info.shopInfo.id!=null">
+ <view class="xinxi-list-item-label">缁� 閿� 鍟嗭細</view>
+ <view class="xinxi-list-item-right">
+ <text>{{info.shopInfo.name || ''}}</text>
+ </view>
+ </view>
+ <view class="xinxi-list-item" v-if="info.shopInfo!=null && info.shopInfo.id!=null">
+ <view class="xinxi-list-item-label">鑱旂郴鐢佃瘽锛�</view>
+ <view class="xinxi-list-item-right">
+ <text>{{info.shopInfo.phone || ''}}</text>
+ </view>
+ </view>
+ <view class="xinxi-list-item" v-if="info.payDate!=null">
+ <view class="xinxi-list-item-label">鏀粯鏃堕棿锛�</view>
+ <view class="xinxi-list-item-right">
+ <text>{{info.payDate || ''}}</text>
+ </view>
+ </view>
+ <view class="xinxi-list-item" v-if="info.payStatus != 0">
+ <view class="xinxi-list-item-label">鏀粯鏂瑰紡锛�</view>
+ <view class="xinxi-list-item-right">
+ <text>{{info.payMethod==0?'寰俊鏀粯':'绉垎鎶垫墸'}}</text>
+ </view>
+ </view>
+ <view class="xinxi-list-item" v-if="info.payOrderId">
+ <view class="xinxi-list-item-label">浜ゆ槗娴佹按鍙凤細</view>
+ <view class="xinxi-list-item-right">
+ <text>{{info.payOrderId || ''}}</text>
+ </view>
+ </view>
+ <view class="xinxi-list-item" v-if="info.cancelDate!=null">
+ <view class="xinxi-list-item-label">鍙栨秷鏃堕棿锛�</view>
+ <view class="xinxi-list-item-right">
+ <text>{{info.cancelDate || ''}}</text>
+ </view>
+ </view>
+ <view class="xinxi-list-item" v-if="info.doneDate!=null">
+ <view class="xinxi-list-item-label">瀹屾垚鏃堕棿锛�</view>
+ <view class="xinxi-list-item-right">
+ <text>{{info.doneDate || ''}}</text>
+ </view>
+ </view>
+ <view class="xinxi-list-item" v-if="1==2">
<view class="xinxi-list-item-label">璁㈠崟澶囨敞锛�</view>
<view class="xinxi-list-item-right">
<text>{{info.memberInfo||'-'}}</text>
@@ -215,14 +274,19 @@
<view style="width: 100%; height: calc(100rpx + env(safe-area-inset-bottom));"></view>
</view>
<view class="footer">
- <view class="caozuo">
- <view class="caozuo-item">鍙栨秷璁㈠崟</view>
- <view class="caozuo-item" style="border: 1rpx solid #004096; color: #004096;">缁х画鏀粯</view>
+ <view class="caozuo" v-if="userType!=1">
+ <view class="caozuo-item" v-if="info.orderStatus==0 || info.orderStatus ==1" @click="cancelOrder()"> 鍙栨秷璁㈠崟</view>
+ <view class="caozuo-item" @click="deleteOrder()" v-if="info.orderStatus==4"> 鍒犻櫎璁㈠崟</view>
+ <view class="caozuo-item" @click="payOrder()" v-if=" info.orderStatus==0" style="border: 1rpx solid #004096; color: #004096;">缁х画鏀粯</view>
+ <view class="caozuo-item" @click="doneOrder()" v-if=" info.orderStatus==2" style="border: 1rpx solid #004096; color: #004096;">纭鏀惰揣</view>
+ </view>
+ <view class="caozuo" v-if="userType==1">
+ <view class="caozuo-item" @click="hexiaoOrder()" v-if=" info.orderStatus==1 && info.receiveType ==1" style="border: 1rpx solid #004096; color: #004096;">鑷彁鏍搁攢</view>
</view>
<view style="width: 100%; height: env(safe-area-inset-bottom);"></view>
</view>
<!-- 纭鏀惰揣 -->
- <u-popup :show="show" round="15" :safeAreaInsetBottom="false" mode="center">
+ <u-popup :show="showDone" round="15" :safeAreaInsetBottom="false" mode="center">
<view class="tc">
<view class="tc-contemt">
<view class="tc-contemt-title">纭鏀惰揣鎻愰啋</view>
@@ -231,8 +295,38 @@
</view>
</view>
<view class="tc-btn">
- <view class="tc-btn-item" @click="show = false">鍙栨秷</view>
- <view class="tc-btn-item" style="color: #004096;">纭鏀惰揣</view>
+ <view class="tc-btn-item" @click="showDone = false; ">鍙栨秷</view>
+ <view class="tc-btn-item" style="color: #004096;" @click="doneOrderDo()">纭鏀惰揣</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 鍙栨秷璁㈠崟 -->
+ <u-popup :show="showCancel" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">纭畾鍙栨秷鎻愰啋</view>
+ <view class="tc-contemt-nr">
+ 鎮ㄧ‘璁ゅ彇娑堣璁㈠崟鍚楋紵
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="showCancel = false; ">鎴戝啀鎯虫兂</view>
+ <view class="tc-btn-item" style="color: red;" @click="cancelOrderDo">纭鍙栨秷</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 鍒犻櫎璁㈠崟 -->
+ <u-popup :show="showDelete" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">纭鍒犻櫎鎻愰啋</view>
+ <view class="tc-contemt-nr">
+ 鎮ㄧ‘璁ゅ垹闄よ璁㈠崟鍚楋紵
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="showDelete = false; ">鎴戝啀鎯虫兂</view>
+ <view class="tc-btn-item" style="color: red;" @click="deleteOrderDo">纭鍒犻櫎</view>
</view>
</view>
</u-popup>
@@ -249,6 +343,10 @@
data() {
return {
show: false,
+ showDone:false,
+ showCancel:false,
+ showDelete:false,
+ showPay:false,
qrCodeBase64:'',
id:null,
userType:0,
@@ -267,6 +365,10 @@
}else{
this.getUserDetail()
}
+ this.showDone=false
+ this.showCancel=false
+ this.showDelete=false
+ this.showPay=false
},
onLoad(options) {
this.id = options.id
@@ -274,61 +376,135 @@
this.qrCodeUrl=''
},
methods:{
- copyText(text) {
- try {
- wx.setClipboardData({
- data: text||' ',
- success: function () {
- uni.showToast({ title: '澶嶅埗鎴愬姛' });
- },
- fail: function () {
- uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
- }
- });
- } catch (err) {
- console.error('澶嶅埗澶辫触', err);
- uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
- }
- },
+ hexiaoOrder(item){
+ uni.navigateTo({
+ url:'/pagesA/pages/write-off-a/write-off-a?id='+this.id
+ })
+ },
+ cancelOrder(item){
+ this.showCancel = !this.showCancel
+ },
+ deleteOrder(item){
+ this.showDelete = !this.showDelete
+ },
+ payOrder(item){
+ },
+ doneOrder(item){
+ this.showDone = !this.showDone
+ },
+ async doneOrderDo(){
+ if(this.userType == 1 ) {
+ return
+ }
+ var that =this
+ let res = await this.$u.api.affirmOrder({ orderId: this.info.orderId });
+ if (res.code === 200 ) {
+ //淇敼璁㈠崟鐘舵��
+ this.info.orderStatus = 3
+ uni.$emit('updateOrder',{info:this.info,delete:0})
+ await this.getUserDetail()
+ this.doneOrder()
+ }else{
+ /* uni.showToast({
+ title:res.message||'纭畾鏀惰揣澶辫触锛�',
+ icon:'error'
+ }) */
+ }
+ },
+ async cancelOrderDo(){
+ if(this.userType == 1 ) {
+ return
+ }
+ var that =this
+ let res = await that.$u.api.cancelOrder({ orderId: this.info.orderId });
+ if (res.code === 200 ) {
+ this.info.orderStatus = 4
+ uni.$emit('updateOrder',{info:this.info,delete:0})
+ await this.getUserDetail()
+ this.cancelOrder()
+ }else{
+ /* uni.showToast({
+ title:res.message||'鍙栨秷璁㈠崟澶辫触锛�',
+ icon:'error'
+ }) */
+ }
+ },
+ async deleteOrderDo(){
+ if(this.userType == 1 ) {
+ return
+ }
+ var that =this
+ let res = await that.$u.api.delOrder({ orderId: this.info.orderId });
+ if (res.code === 200 ) {
+ uni.$emit('updateOrder',{info:this.info,delete:1})
+ uni.navigateBack({delta:1})
+ }else{
+ /* uni.showToast({
+ title:res.message||'鍒犻櫎璁㈠崟澶辫触锛�',
+ icon:'error'
+ }) */
+ }
+ },
+ jumpMap(){
+
+ },
+ copyText(text) {
+ try {
+ wx.setClipboardData({
+ data: text||' ',
+ success: function () {
+ uni.showToast({ title: '澶嶅埗鎴愬姛' });
+ },
+ fail: function () {
+ uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
+ }
+ });
+ } catch (err) {
+ console.error('澶嶅埗澶辫触', err);
+ uni.showToast({ title: '澶嶅埗澶辫触', icon: 'none' });
+ }
+ },
async getQrcodeByStr(){
- try {
- const ocanvas = uni.createOffscreenCanvas({ type: "2d" });
- const qrCodeBase64 = await QRCode.toDataURL(ocanvas,this.info.exchangeCode, {
- scale: 1, // 浜岀淮鐮佺殑缂╂斁姣斾緥锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
- width: 300, // 浜岀淮鐮佺殑瀹藉害锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
- margin: 1 // 浜岀淮鐮佸懆鍥寸殑绌虹櫧杈硅窛锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
- });
- this.qrCodeBase64 =qrCodeBase64
- console.log("==================this.info.exchangeCode1:",qrCodeBase64)
- } catch (err) {
- uni.showToast({
- title:'鍒涘缓浜岀淮鐮佸け璐�',
- icon:'error'
- })
- }
+ try {
+ const ocanvas = uni.createOffscreenCanvas({ type: "2d" });
+ const qrCodeBase64 = await QRCode.toDataURL(ocanvas,this.info.exchangeCode, {
+ scale: 1, // 浜岀淮鐮佺殑缂╂斁姣斾緥锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+ width: 300, // 浜岀淮鐮佺殑瀹藉害锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+ margin: 1 // 浜岀淮鐮佸懆鍥寸殑绌虹櫧杈硅窛锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+ });
+ this.qrCodeBase64 =qrCodeBase64
+ } catch (err) {
+ uni.showToast({
+ title:'鐢熸垚鑷彁鐮佸け璐�',
+ icon:'error'
+ })
+ }
},
contact(phone){
- if(phone !=null && phonee!=''){
+ console.log(phone)
+ if(phone !=null && phone!=''){
uni.makePhoneCall({
phoneNumber: phone
})
}
},
- async getShopDetail(index){
+ async getShopDetail(){
var that =this
let res = await that.$u.api.shopOrderDetail({orderId:this.id,tokenType:1 })
if (res.code === 200) {
this.info = res.data
this.info.shopInfo = this.info.shopInfo||{}
-
this.getQrcodeByStr()
+ uni.$emit('updateOrder',{info:this.info,delete:0})
}
},
- async getUserDetail(index){
+ async getUserDetail(){
var that =this
- let res = await that.$u.api.shopOrderDetail({orderId:this.id,tokenType:1 })
+ let res = await this.$u.api.orderDetail({orderId:this.id })
if (res.code === 200) {
this.info = res.data
+ this.getQrcodeByStr()
+ uni.$emit('updateOrder',{info:this.info,delete:0})
}
},
checkShopLogin(){
@@ -342,6 +518,11 @@
jumpBack(){
uni.navigateBack({ delta: 1 });
},
+ jumpGoodsDetail(item){
+ uni.navigateTo({
+ url: '/pages/details/details?id='+item.id
+ })
+ }
}
}
</script>
@@ -841,12 +1022,14 @@
align-items: flex-start;
.user-icon {
flex-shrink: 0;
- width: 48rpx;
- height: 48rpx;
+ width: 80rpx;
+ height: 80rpx;
+ border-radius: 50%;
margin-right: 22rpx;
image {
width: 100%;
}
+
}
.user-info {
flex: 1;
@@ -856,6 +1039,7 @@
width: 100%;
display: flex;
align-items: center;
+ justify-content: space-between;
text {
&:nth-child(1) {
font-weight: 500;
@@ -869,6 +1053,22 @@
margin-left: 14rpx;
}
}
+ .user-jxa-lx {
+ right:0;
+
+ display: flex;
+ align-items: center;
+ image {
+ width: 26rpx;
+ height: 26rpx;
+ margin-right: 10rpx;
+ }
+ text {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #222222;
+ }
+ }
}
.user-info-b {
width: 100%;
@@ -876,6 +1076,11 @@
font-size: 26rpx;
color: #666666;
margin-top: 18rpx;
+ image {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 10rpx;
+ }
}
}
}
@@ -884,6 +1089,18 @@
height: 1rpx;
margin: 30rpx 0;
background-color: #E5E5E5;
+ }
+ .user-remark{
+ width: 100%;
+ padding: 20rpx 10rpx;
+ margin: 30rpx 30rpx;
+ background: #F8F9FB;
+ border-radius: 8rpx;
+ text {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #333333;
+ }
}
.user-kd {
width: 100%;
@@ -897,7 +1114,12 @@
text {
font-weight: 400;
font-size: 26rpx;
- color: #333333;
+ color: #333333;
+ }
+ .image2 {
+ width: 24rpx;
+ height: 24rpx;
+ margin-left: 12rpx;
}
}
}
diff --git a/mini-program/pagesA/pages/order/order.vue b/mini-program/pagesA/pages/order/order.vue
index 773c5d1..4c3c1b2 100644
--- a/mini-program/pagesA/pages/order/order.vue
+++ b/mini-program/pagesA/pages/order/order.vue
@@ -1,17 +1,17 @@
<template>
<view class="box">
<view class="cate">
- <view @click="changeRow(index)" :class="active === index ? 'cate-item active' : 'cate-item'" v-for="(item, index) in cate" :key="index">
+ <view @click="changeRow(item)" :class="active === index ? 'cate-item active' : 'cate-item'" v-for="(item, index) in cate" :key="index">
{{item.name}}
<view class="cate-item-xiab" v-if="active === index"></view>
</view>
</view>
<view class="list">
- <view class="list-item" v-for="(item, index) in dataList" :key="index" @click="jumpOrderDetail(item.id)">
- <view class="a">
+ <view class="list-item" v-for="(item, index) in dataList" :key="index">
+ <view class="a" @click="jumpOrderDetail(item.id)">
<view class="a-left">
- <view class="a-left-tips">{{item.receiveType==1?'鑷彁':'蹇�掗厤閫�'}}</view>
- <text>璁㈠崟鍙凤細{{item.id}}</text>
+ <view :class="'a-left-tips '+(item.receiveType==1?'shop-top-tips-a':'shop-top-tips-b')">{{item.receiveType==1?'鑷彁':'閰嶉��'}}</view>
+ <text>璁㈠崟鍙凤細{{item.code}}</text>
</view>
<text v-if="item.status ==0" class="a-right">寰呮敮浠�</text>
<text v-if="item.status ==1" class="a-right">{{item.receiveType==1?'寰呰嚜鎻�':'寰呭彂璐�'}}</text>
@@ -20,20 +20,10 @@
<text v-if="item.status ==4" class="a-right grey">宸插彇娑�</text>
<text v-if="item.status ==6" class="a-right grey">宸查��娆�</text>
</view>
- <view class="b">
- <view class="b-item" v-for="(item1, index1) in (item.goodsorderDetailList||[])">
+ <view class="b" @click="jumpOrderDetail(item.id)">
+ <view class="b-item" v-for="(item1, index1) in (item.goodsorderDetailList||[])" >
<view class="b-item-image">
- <image :src="item1.imgurl||'/static/logo.png'" mode="widthFix"></image>
- </view>
- <view class="b-item-title">{{item1.name||''}}</view>
- <view class="b-item-jia">
- <text>楼{{(item1.price||0).toFixed(2)}}</text>
- <text>x{{item1.goodsNum||0}}</text>
- </view>
- </view>
- <view class="b-item" v-for="(item1, index1) in (item.goodsorderDetailList||[])">
- <view class="b-item-image">
- <image :src="item1.imgurl||'/static/logo.png'" mode="widthFix"></image>
+ <image :src="item1.imgurl||'/static/static/default2.png'" mode="widthFix"></image>
</view>
<view class="b-item-title">{{item1.name||''}}</view>
<view class="b-item-jia">
@@ -50,12 +40,19 @@
<text></text>
</view>
</view>
- <view class="c-btns">
+ <view class="c-btns" v-if="userType ==1">
<view class="c-btns-item blue" @click="contactPhone(item)">鑱旂郴瀹㈡埛</view>
- <view class="c-btns-item bg" v-if="item.status==1 && item.receiveType==1">鑷彁鏍搁攢</view>
+ <view class="c-btns-item bg" v-if="item.status==1 && item.receiveType==1" @click="hexiaoOrder(item)">鑷彁鏍搁攢</view>
+ </view>
+ <view class="c-btns" v-if="userType !=1">
+ <view class="c-btns-item grey" @click="cancelOrder(item)" v-if="item.status==0 || item.status==1">鍙栨秷璁㈠崟</view>
+ <view class="c-btns-item grey" @click="deleteOrder(item)" v-if="item.status==4">鍒犻櫎璁㈠崟</view>
+ <view class="c-btns-item blue" @click="openQrcode(item)" v-if="item.status==1 && item.receiveType==1">鑷彁鐮�</view>
+ <view class="c-btns-item blue" @click="payOrder(item)" v-if="item.status==0">鍘绘敮浠�</view>
+ <view class="c-btns-item blue" @click="doneOrder(item)" v-if="item.status==2">纭鏀惰揣</view>
</view>
</view>
- <view class="d" v-if="item.memberInfo">
+ <view class="d" v-if="item.memberInfo" @click="jumpOrderDetail(item.id)">
璁㈠崟澶囨敞锛歿{item.memberInfo||''}}
</view>
</view>
@@ -85,11 +82,68 @@
<!-- <view class="phone-botton" @click="contactPhone()" >鍏抽棴</view> -->
</view>
</u-popup>
+ <!-- 纭鏀惰揣 -->
+ <u-popup :show="showDone" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">纭鏀惰揣鎻愰啋</view>
+ <view class="tc-contemt-nr">
+ 鎮ㄧ‘璁ゅ凡缁忔敹鍒板晢鍝佷簡鍚楋紵
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="showDone = false;currentOrder=null;">鍙栨秷</view>
+ <view class="tc-btn-item" style="color: #004096;" @click="doneOrderDo()">纭鏀惰揣</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 鍙栨秷璁㈠崟 -->
+ <u-popup :show="showCancel" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">纭畾鍙栨秷鎻愰啋</view>
+ <view class="tc-contemt-nr">
+ 鎮ㄧ‘璁ゅ彇娑堣璁㈠崟鍚楋紵
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="showCancel = false;currentOrder=null;">鎴戝啀鎯虫兂</view>
+ <view class="tc-btn-item" style="color: red;" @click="cancelOrderDo">纭鍙栨秷</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 鍒犻櫎璁㈠崟 -->
+ <u-popup :show="showDelete" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">纭鍒犻櫎鎻愰啋</view>
+ <view class="tc-contemt-nr">
+ 鎮ㄧ‘璁ゅ垹闄よ璁㈠崟鍚楋紵
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="showDelete = false;currentOrder=null;">鎴戝啀鎯虫兂</view>
+ <view class="tc-btn-item" style="color: red;" @click="deleteOrderDo">纭鍒犻櫎</view>
+ </view>
+ </view>
+ </u-popup>
+ <u-popup :show="showQrcode" round="15" @close="openQrcode()" :safeAreaInsetBottom="false" mode="bottom" :closeable="true" :closeOnClickOverlay="false">
+ <view class="tc" style="width: 100%;">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title" style="text-align: center;">鑷彁鐮�</view>
+ <view class="tc-contemt-nr" style="border: 1rpx solid #f2f2f2;width: 150px;height: 150px;">
+ <image style="border: 1rpx solid #f2f2f2;width: 150px;height: 150px;" v-if="currentOrder && currentOrder.qrCodeBase64" :src="currentOrder.qrCodeBase64" model="widthFix" ></image>
+ </view>
+ <view class="tc-contemt-title" style="text-align: center;">{{currentOrder.exchangeCode|| ''}}</view>
+ </view>
+ </view>
+ </u-popup>
</view>
</template>
<script>
import { mapState } from 'vuex'
+ import QRCode from 'qrcode';
export default {
computed: {
...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken'])
@@ -97,37 +151,210 @@
data() {
return {
i: '',
- active:0,
+ currentOrder:null,
+ showDone:false,
+ showCancel:false,
+ showDelete:false,
+ showQrcode:false,
+ showPay:false,
showPhone:false,
loading:false,
+ active:0,
currentPage:1,
total:0,
hasNext:true,
+ userType:null,
dataList:[],
shop:{},
linkItem:{},
- cate: [
- { name: '鍏ㄩ儴', id: '' },
- { name: '寰呮敮浠�', id: 0 },
- { name: '寰呭彂璐�/鑷彁', id: 1 }
+ cate:[],
+ cate1: [
+ { name: '鍏ㄩ儴', id: '' ,index:0},
+ { name: '寰呮敮浠�', id: 0 ,index:1},
+ { name: '寰呭彂璐�/鑷彁', id: 1,index:2 }
+ ],
+ cate0: [
+ { name: '鍏ㄩ儴', id: '' ,index:0},
+ { name: '寰呮敮浠�', id: 0 ,index:1},
+ { name: '寰呭彂璐�/鑷彁', id: 1,index:2 },
+ { name: '寰呮敹璐�', id: 2 ,index:3},
]
};
},
onLoad(options) {
- if (options.status) {
- this.i = Number(options.status)
+ console.log(options )
+ this.active = 0
+ this.cate =[]
+ this.userType = Number(options.userType)
+ if(this.userType == 1){
+ this.shop ={}
+ this.checkShopLogin()
+ this.shop = this.shopInfo || {}
+ this.cate =this.cate1;
+ }else{
+ this.cate =this.cate0;
}
+ if (options.status) {
+ this.active = Number(options.status)
+ this.i = this.cate[this.active].id
+ }
+ this.getFirstPageData()
+ var that =this
+ uni.$on('updateOrder',function(data){
+ console.log('鐩戝惉鍒颁簨浠舵潵鑷� update 锛屾惡甯﹀弬鏁� msg 涓猴細' ,data);
+ if(data.delete == 1){
+ //鍒犻櫎璁㈠崟锛屽己鍒跺埛鏂版暟鎹�
+ that.getFirstPageData()
+ }else if(data.info!=null && data.info.orderId!=null){
+ console.log('鐩戝惉鍒颁簨浠舵潵鑷� update 01锛�' ,data);
+ that.dataList.forEach((item,index)=>{
+ if(item.id==data.info.orderId){
+ console.log('鐩戝惉鍒颁簨浠舵潵鑷� update 02锛�' ,data);
+ item.status = data.info.orderStatus
+ }
+ })
+ }
+
+ })
},
onShow() {
- this.shop ={}
- this.checkShopLogin()
- this.shop = this.shopInfo || {}
- this.getFirstPageData()
+ this.showDone=false
+ this.showCancel=false
+ this.showDelete=false
+ this.showQrcode=false
+ this.showPay=false
+ this.showPhone=false
+ this.loading=false,
+ this.currentOrder=null
},
onReachBottom(){
this.getDataList();
},
methods: {
+ async openQrcode(item){
+ this.currentOrder = null
+ var that =this
+ if(!this.showQrcode){
+ this.currentOrder = item
+ if(this.currentOrder.qrCodeBase64 == undefined && this.currentOrder.qrCodeBase64==null){
+ try {
+ const ocanvas = uni.createOffscreenCanvas({ type: "2d" });
+ const qrCodeBase64 = await QRCode.toDataURL(ocanvas,this.currentOrder.exchangeCode, {
+ scale: 1, // 浜岀淮鐮佺殑缂╂斁姣斾緥锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+ width: 150, // 浜岀淮鐮佺殑瀹藉害锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+ margin: 1 // 浜岀淮鐮佸懆鍥寸殑绌虹櫧杈硅窛锛屽彲浠ユ牴鎹渶瑕佽皟鏁�
+ });
+ this.currentOrder.qrCodeBase64 =qrCodeBase64
+ that.showQrcode = true
+ } catch (err) {
+ uni.showToast({
+ title:'鐢熸垚鑷彁鐮佸け璐�',
+ icon:'error'
+ })
+ }
+ }else{
+ that.showQrcode = true
+ }
+ }else{
+ this.showQrcode = false
+ }
+ },
+ hexiaoOrder(item){
+ uni.navigateTo({
+ url:'/pagesA/pages/write-off-a/write-off-a?id='+item.id
+ })
+ },
+ cancelOrder(item){
+ this.currentOrder = null
+ this.showCancel = !this.showCancel
+ if(this.showCancel){
+ this.currentOrder = item
+ }
+ },
+ deleteOrder(item){
+ this.currentOrder = null
+ this.showDelete = !this.showDelete
+ if(this.showDelete){
+ this.currentOrder = item
+ }
+ },
+
+ payOrder(item){
+ },
+ doneOrder(item){
+ this.currentOrder = null
+ this.showDone = !this.showDone
+ if(this.showDone){
+ this.currentOrder = item
+ }
+ },
+ async doneOrderDo(){
+ if(this.userType == 1 || this.currentOrder==null || this.currentOrder.id == null) {
+ return
+ }
+ var that =this
+ let res = await this.$u.api.affirmOrder({ orderId: this.currentOrder.id });
+ if (res.code === 200 ) {
+ //淇敼璁㈠崟鐘舵��
+ this.dataList.forEach(item=>{
+ if(item.id==this.currentOrder.id){
+ item.status =3
+ }
+ })
+ this.doneOrder()
+ }else{
+ /* uni.showToast({
+ title:res.message||'纭畾鏀惰揣澶辫触锛�',
+ icon:'error'
+ }) */
+ }
+ },
+ async cancelOrderDo(){
+ if(this.userType == 1 || this.currentOrder==null || this.currentOrder.id == null) {
+ return
+ }
+ var that =this
+ let res = await that.$u.api.cancelOrder({ orderId: this.currentOrder.id });
+ if (res.code === 200 ) {
+ //淇敼璁㈠崟鐘舵��
+ this.dataList.forEach(item=>{
+ if(item.id==this.currentOrder.id){
+ item.status = 4
+ }
+ })
+ this.cancelOrder()
+ }else{
+ /* uni.showToast({
+ title:res.message||'鍙栨秷璁㈠崟澶辫触锛�',
+ icon:'error'
+ }) */
+ }
+ },
+ async deleteOrderDo(){
+ if(this.userType == 1 || this.currentOrder==null || this.currentOrder.id == null) {
+ return
+ }
+ var that =this
+ let res = await that.$u.api.delOrder({ orderId: this.currentOrder.id });
+ if (res.code === 200 ) {
+ //淇敼璁㈠崟鐘舵��
+ /* var tindex = -1;
+ this.dataList.forEach((item,index)=>{
+ if(item.id==this.currentOrder.id){
+ tindex = index
+ }
+ })
+ if(tindex>=0){
+ this.dataList.splice(tindex,1)
+ } */
+ this.getFirstPageData()
+ }else{
+ /* uni.showToast({
+ title:res.message||'鍒犻櫎璁㈠崟澶辫触锛�',
+ icon:'error'
+ }) */
+ }
+ },
contactPhone(item){
this.showPhone = !this.showPhone
this.linkItem = item ||{}
@@ -140,9 +367,9 @@
})
}
},
- changeRow(index) {
- this.active=index
- this.i = this.cate[index].id
+ changeRow( item) {
+ this.active=item.index
+ this.i = item.id
this.getFirstPageData()
},
getFirstPageData(){
@@ -163,15 +390,27 @@
this.dataList=[]
}
var that =this
- let res = await that.$u.api.shopOrderPage({
- capacity:10,
- model: {
- receiveType: 1,
- status: this.i
- },
- page:this.currentPage
- });
- console.log(res)
+ let res ={};
+ if(this.userType == 1){
+ res = await that.$u.api.shopOrderPage({
+ capacity:10,
+ model: {
+ receiveType: 1,
+ status: this.i
+ },
+ page:this.currentPage
+ });
+ }else{
+ res = await that.$u.api.orderPage({
+ capacity:10,
+ model: {
+ receiveType: 1,
+ status: this.i
+ },
+ page:this.currentPage
+ });
+ }
+ console.log(res)
if (res.code === 200 ) {
if ( res.data && res.data.page ===this.currentPage) {
res.data.records = res.data.records||[]
@@ -188,9 +427,9 @@
},
jumpOrderDetail(id){
uni.navigateTo({
- url: '/pagesA/pages/order-details/order-details?userType=1&id='+id
+ url: '/pagesA/pages/order-details/order-details?userType='+this.userType+'&id='+id
})
- },
+ },
checkShopLogin(){
var that =this
if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){
@@ -236,14 +475,20 @@
.a-left-tips {
padding: 0 6rpx;
height: 40rpx;
- line-height: 40rpx;
- // background: #00B775;
- background: #00B775;
+ line-height: 40rpx;
border-radius: 8rpx;
font-weight: 400;
font-size: 22rpx;
color: #FFFFFF;
margin-right: 16rpx;
+ }
+ .shop-top-tips-a {
+ background: #00B775;
+ border: 1rpx solid #00B775;
+ }
+ .shop-top-tips-b {
+ background: #004096;
+ border: 1rpx solid #004096;
}
text {
font-weight: 400;
@@ -259,6 +504,19 @@
.grey{
color: #999999 !important;
}
+ }
+ .d{
+ width: 100%;
+ padding:20rpx 20rpx;
+ margin-top: 22rpx;
+ background: #F8F9FB;
+ border-radius: 8rpx;
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #666666;
+ line-height: 36rpx;
+ text-align: left;
+ font-style: normal;
}
.b {
width: 100%;
@@ -363,6 +621,10 @@
border: 1rpx solid #004096;
color: #004096 !important;
}
+ .grey {
+ border: 1rpx solid #666666;
+ color: #666666 !important;
+ }
.bg{
background: #004096;
border-radius: 34rpx;
@@ -383,10 +645,10 @@
align-items: center;
justify-content: center;
border-radius: 34rpx;
- border: 1rpx solid #B2B2B2;
+ // border: 1rpx solid #B2B2B2;
font-weight: 400;
font-size: 28rpx;
- color: #666666;
+ // color: #666666;
margin-right: 20rpx;
&:last-child {
margin: 0 !important;
diff --git a/mini-program/pagesA/pages/write-off-a/write-off-a.vue b/mini-program/pagesA/pages/write-off-a/write-off-a.vue
index 6612df0..a5fa76f 100644
--- a/mini-program/pagesA/pages/write-off-a/write-off-a.vue
+++ b/mini-program/pagesA/pages/write-off-a/write-off-a.vue
@@ -1,44 +1,144 @@
<template>
<view class="box">
- <view class="title">鏍搁攢璁㈠崟</view>
+ <view class="title">鏍搁攢璁㈠崟
+ <text v-if="info.orderStatus ==0" class="status status-b">寰呮敮浠�</text>
+ <text v-if="info.orderStatus ==1"class="status status-a" >{{info.receiveType==1?'寰呰嚜鎻�':'寰呭彂璐�'}}</text>
+ <text v-if="info.orderStatus ==2" class="status status-b">寰呮敹璐�</text>
+ <text v-if="info.orderStatus ==3" class="status status-b" >浜ゆ槗瀹屾垚</text>
+ <text v-if="info.orderStatus ==4" class="status status-b">宸插彇娑�</text>
+ <text v-if="info.orderStatus ==6"class="status status-b" >宸查��娆�</text>
+ </view>
<view class="item">
<view class="item-user">
<view class="item-user-image">
- <image src="/static/logo.png" mode="widthFix"></image>
+ <image :src="info.member && info.member.imgFullUrl? info.member.imgFullUrl:'/static/icon/default.png'" mode="widthFix"></image>
</view>
<view class="item-user-info">
- <text>寮犳捣娑�</text>
- <text>18155665556</text>
+ <text>{{info.linkName || ''}}</text>
+ <text>{{info.linkPhone || ''}}</text>
</view>
</view>
- <view class="item-info">璁㈠崟澶囨敞锛�11鏈�22鏃ユ潵鎷�</view>
+ <view class="item-info">璁㈠崟澶囨敞锛歿{info.memberInfo || ''}}</view>
</view>
<view class="item">
<view class="item-title">鍟嗗搧鍒楄〃</view>
- <view class="row">
- <view class="row-image">
- <image src="/static/logo.png" mode="widthFix"></image>
+ <template v-if="info.goodsorderDetailList && info.goodsorderDetailList.length">
+ <view class="row" v-for="(item, index) in info.goodsorderDetailList" :key="index" >
+ <view class="row-image">
+ <image :src="item.imgurl?item.imgurl:'/static/icon/default2.png'" mode="widthFix"></image>
+ </view>
+ <view class="row-info">
+ {{info.name || ''}}
+ </view>
+ <view class="row-price">
+ <text楼{{(info.price || 0).toFixed(2)}}</text>
+ <text>x{{info.goodsNum || 1}}</text>
+ </view>
</view>
- <view class="row-info">
- 涓仈鑹剧瀹介娇 閫傜敤闆锋矁/涓仈/涔呬繚鐢�
- </view>
- <view class="row-price">
- <text>楼499.00</text>
- <text>x1</text>
- </view>
- </view>
+ </template>
</view>
<view style="width: 100%; height: calc(env(safe-area-inset-bottom) + 108rpx);"></view>
- <view class="button">纭鏍搁攢</view>
+ <view class="button" @click="confirm" v-if="info.orderStatus==1 && info.receiveType ==1">纭鏍搁攢</view>
+
+ <u-popup :show="show" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">鎿嶄綔鎻愰啋</view>
+ <view class="tc-contemt-nr">
+ 鎮ㄧ‘璁ゆ牳閿�璇ヨ鍗曞悧锛�
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="show = false; ">鎴戝啀鎯虫兂</view>
+ <view class="tc-btn-item" style="color: #004096;" @click="confirmDo">纭鏍搁攢</view>
+ </view>
+ </view>
+ </u-popup>
+ <u-popup :show="show1" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">鎿嶄綔缁撴灉</view>
+ <view class="tc-contemt-nr">
+ 鏍搁攢鎴愬姛锛屾槸鍚︾户缁牳閿�鍏朵粬璁㈠崟锛�
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="jumpBack ">杩斿洖</view>
+ <view class="tc-btn-item" style="color: #004096;" @click="jumpWriteoff()">缁х画鏍搁攢</view>
+ </view>
+ </view>
+ </u-popup>
</view>
</template>
<script>
+ import QRCode from 'qrcode';
+ import { mapState } from 'vuex'
export default {
+ computed: {
+ ...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken'])
+ },
data() {
return {
-
+ show:false,
+ show1:false,
+ shop:{},
+ id:null,
+ info:{}
};
+ },
+ onShow() {
+ this.show1 =false
+ this.show =false
+ this.info={}
+ this.shop ={}
+ this.checkShopLogin()
+ this.shop = this.shopInfo || {}
+ this.getShopDetail()
+ },
+ onLoad(options) {
+ this.id = options.id
+ },
+ methods:{
+ async confirmDo(){
+ this.show = !this.show
+ var that =this
+ var that =this
+ let res = await that.$u.api.writeOffOrder({ orderId: this.info.orderId });
+ if (res.code === 200 ) {
+ this.info.orderStatus = 3
+ this.show = false
+ this.show1 = true
+ uni.$emit('updateOrder',{info:this.info,delete:0})
+ }else{
+ }
+ },
+ jumpWriteoff(){
+ uni.navigateTo({
+ url: '/pagesA/pages/write-off/write-off'
+ })
+ },
+ jumpBack(){
+ uni.navigateBack({delta:1})
+ },
+ confirm(){
+ this.show = !this.show
+ },
+ async getShopDetail(){
+ var that =this
+ let res = await that.$u.api.shopOrderDetail({orderId:this.id,tokenType:1 })
+ if (res.code === 200) {
+ this.info = res.data
+ }
+ },
+ checkShopLogin(){
+ var that =this
+ if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){
+ uni.navigateTo({
+ url: '/pages/login/login'
+ })
+ }
+ },
}
}
</script>
@@ -71,6 +171,24 @@
font-weight: 600;
font-size: 32rpx;
color: #111111;
+ .status{
+ padding: 0 6rpx;
+ height: 40rpx;
+ line-height: 40rpx;
+ border-radius: 8rpx;
+ font-weight: 400;
+ font-size: 22rpx;
+ color: #FFFFFF;
+ margin-right: 16rpx;
+ }
+ .status-a {
+ background: #00B775;
+ border: 1rpx solid #00B775;
+ }
+ .status-b {
+ background: #666666;
+ border: 1rpx solid #004096;
+ }
}
.item {
width: 100%;
diff --git a/mini-program/pagesA/pages/write-off/write-off.vue b/mini-program/pagesA/pages/write-off/write-off.vue
index 0314a76..21fc787 100644
--- a/mini-program/pagesA/pages/write-off/write-off.vue
+++ b/mini-program/pagesA/pages/write-off/write-off.vue
@@ -2,22 +2,122 @@
<view class="box">
<view class="title">杈撳叆鑷彁鐮�</view>
<view class="input">
- <input type="number" placeholder="璇疯緭鍏�6浣嶈嚜鎻愮爜" />
+ <input type="number" v-model="code" placeholder="璇疯緭鍏�6浣嶈嚜鎻愮爜" />
</view>
- <view class="btn">纭</view>
- <view class="footer">
- <image src="/pagesA/images/ic_saoma@2x.png" mode="widthFix"></image>
+ <view class="btn" v-if="!loading" @click="confirmDo">纭</view>
+ <view class="btn1" v-if="loading" >姝e湪鏌ヨ</view>
+ <view class="footer" @click="scanCodeDo">
+ <image src="/pagesA/static/ic_saoma@2x.png" mode="widthFix"></image>
<text>鎵爜鏍搁攢</text>
</view>
+ <u-popup :show="show1" round="15" :safeAreaInsetBottom="false" mode="center">
+ <view class="tc">
+ <view class="tc-contemt">
+ <view class="tc-contemt-title">璁㈠崟鏌ヨ缁撴灉</view>
+ <view class="tc-contemt-nr">
+ 璁㈠崟銆恵{info.code}}銆戜笉婊¤冻鏍搁攢鏉′欢锛�
+ </view>
+ </view>
+ <view class="tc-btn">
+ <view class="tc-btn-item" @click="show1=false ">纭</view>
+ </view>
+ </view>
+ </u-popup>
</view>
</template>
<script>
+ import QRCode from 'qrcode';
+ import { mapState } from 'vuex'
export default {
+ computed: {
+ ...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken'])
+ },
data() {
return {
-
+ code:null,
+ show1:false,
+ loading:false,
+ id:null,
+ info:{}
};
+ },
+ onShow() {
+ this.loading =false
+ this.show1 =false
+ this.info={}
+ this.code =''
+ this.checkShopLogin()
+ },
+ onLoad(options) {
+ },
+ methods:{
+ scanCodeDo(){
+ this.code = ''
+ var that =this
+ uni.scanCode({
+ success: function (res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ // 澶勭悊鎵弿缁撴灉
+ that.code = res.result
+ that.confirmDo()
+ },
+ fail: function (err) {
+ uni.showToast({
+ title:'鎵爜澶辫触',
+ icon:'error'
+ })
+ }
+ });
+ },
+ async confirmDo(){
+ if(this.code ){
+ this.getShopDetail()
+ }
+ },
+ jumpWriteoffA(){
+ if(this.info && this.info.orderId){
+ uni.navigateTo({
+ url: '/pagesA/pages/write-off-a/write-off-a?id='+this.info.orderId
+ })
+ }
+ },
+ jumpBack(){
+ uni.navigateBack({delta:1})
+ },
+ getShopDetail(){
+ if(this.loading){
+ return
+ }
+ this.loading =true
+ var that =this
+ that.$u.api.getOrderDetailByCode({exchangeCode:this.code,tokenType:1 })
+ .then(res=>{
+ console.log(res)
+ if (res.code === 200) {
+ that.info = res.data
+ if(res.data.orderStatus == 1 && res.data.receiveType ==1){
+ that.jumpWriteoffA()
+ }else{
+ this.show1 = !this.show1
+ this.loading =false
+ }
+ }
+ }).catch(e=>{
+ this.loading =false
+ }).finally(e=>{
+ // this.loading =false
+ })
+ },
+ checkShopLogin(){
+ var that =this
+ if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){
+ uni.navigateTo({
+ url: '/pages/login/login'
+ })
+ }
+ },
}
}
</script>
@@ -55,6 +155,18 @@
text-align: center;
}
}
+ .btn1{
+ width: 630rpx;
+ height: 88rpx;
+ line-height: 88rpx;
+ text-align: center;
+ background: #666666;
+ border-radius: 44rpx;
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #FFFFFF;
+ margin-top: 40rpx;
+ }
.btn {
width: 630rpx;
height: 88rpx;
diff --git a/mini-program/static/icon/default2.png b/mini-program/static/icon/default2.png
index 5953111..d15c9b9 100644
--- a/mini-program/static/icon/default2.png
+++ b/mini-program/static/icon/default2.png
Binary files differ
diff --git a/mini-program/unpackage/dist/dev/mp-weixin/common/main.js b/mini-program/unpackage/dist/dev/mp-weixin/common/main.js
index 87a53df..56f2c73 100644
--- a/mini-program/unpackage/dist/dev/mp-weixin/common/main.js
+++ b/mini-program/unpackage/dist/dev/mp-weixin/common/main.js
@@ -1,9 +1,9 @@
(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/main"],{
/***/ 0:
-/*!*************************************************!*\
- !*** D:/璞嗙背/dingyuannongji/mini-program/main.js ***!
- \*************************************************/
+/*!****************************************************************!*\
+ !*** D:/code/idea2023/git/dingyuannongji/mini-program/main.js ***!
+ \****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
@@ -50,9 +50,9 @@
/***/ }),
/***/ 27:
-/*!*************************************************!*\
- !*** D:/璞嗙背/dingyuannongji/mini-program/App.vue ***!
- \*************************************************/
+/*!****************************************************************!*\
+ !*** D:/code/idea2023/git/dingyuannongji/mini-program/App.vue ***!
+ \****************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
@@ -61,7 +61,7 @@
/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 28);
/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
/* harmony import */ var _App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=scss& */ 35);
-/* harmony import */ var _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 37);
+/* harmony import */ var _soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 37);
var render, staticRenderFns, recyclableRender, components
var renderjs
@@ -71,7 +71,7 @@
/* normalize component */
-var component = Object(_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
+var component = Object(_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"],
render,
staticRenderFns,
@@ -90,25 +90,25 @@
/***/ }),
/***/ 28:
-/*!**************************************************************************!*\
- !*** D:/璞嗙背/dingyuannongji/mini-program/App.vue?vue&type=script&lang=js& ***!
- \**************************************************************************/
+/*!*****************************************************************************************!*\
+ !*** D:/code/idea2023/git/dingyuannongji/mini-program/App.vue?vue&type=script&lang=js& ***!
+ \*****************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js& */ 29);
-/* harmony import */ var _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
+/* harmony import */ var _soft_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js& */ 29);
+/* harmony import */ var _soft_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_soft_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _soft_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _soft_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_soft_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_13_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a);
/***/ }),
/***/ 29:
-/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/璞嗙背/dingyuannongji/mini-program/App.vue?vue&type=script&lang=js& ***!
- \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/code/idea2023/git/dingyuannongji/mini-program/App.vue?vue&type=script&lang=js& ***!
+ \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
@@ -319,25 +319,25 @@
/***/ }),
/***/ 35:
-/*!***********************************************************************************!*\
- !*** D:/璞嗙背/dingyuannongji/mini-program/App.vue?vue&type=style&index=0&lang=scss& ***!
- \***********************************************************************************/
+/*!**************************************************************************************************!*\
+ !*** D:/code/idea2023/git/dingyuannongji/mini-program/App.vue?vue&type=style&index=0&lang=scss& ***!
+ \**************************************************************************************************/
/*! no static exports found */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
-/* harmony import */ var _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--8-oneOf-1-3!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../鍔炲叕/HBuilderX.3.8.12.20230817/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss& */ 36);
-/* harmony import */ var _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
-/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
- /* harmony default export */ __webpack_exports__["default"] = (_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_HBuilderX_3_8_12_20230817_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
+/* harmony import */ var _soft_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_soft_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_soft_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src??ref--8-oneOf-1-3!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!../../../../../soft/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=scss& */ 36);
+/* harmony import */ var _soft_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_soft_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_soft_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_soft_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_soft_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_soft_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _soft_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_soft_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_soft_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__) if(["default"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _soft_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_soft_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_soft_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_soft_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_soft_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_8_oneOf_1_1_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_2_soft_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_sass_loader_dist_cjs_js_ref_8_oneOf_1_4_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_8_oneOf_1_5_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_soft_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
/***/ }),
/***/ 36:
-/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/璞嗙背/dingyuannongji/mini-program/App.vue?vue&type=style&index=0&lang=scss& ***!
- \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-2!./node_modules/postcss-loader/src??ref--8-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--8-oneOf-1-5!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!D:/code/idea2023/git/dingyuannongji/mini-program/App.vue?vue&type=style&index=0&lang=scss& ***!
+ \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
diff --git a/mini-program/utils/http.api.js b/mini-program/utils/http.api.js
index 553aa51..db7a0ea 100644
--- a/mini-program/utils/http.api.js
+++ b/mini-program/utils/http.api.js
@@ -54,8 +54,15 @@
let getPlatformAboutUs = (params = {}) => vm.$u.http.get('web/account/getPlatformAboutUs', { params }); // 鑾峰彇绯荤粺閰嶇疆
let findIntegralRecordPage = (data = {}) => vm.$u.http.post('web/integral/findIntegralRecordPage', {...data,tokenType:1}); //缁忛攢鍟� - 鑾峰彇缁忛攢鍟嗙殑绉垎璁板綍
let myCustomer = (data = {}) => vm.$u.http.post('web/shop/myCustomer', {...data,tokenType:1}); //缁忛攢鍟� - 鎴戠殑瀹㈡埛淇℃伅
- let shopOrderDetail = (params = {}) => vm.$u.http.get('web/orders/shopOrderDetail', { params }); //缁忛攢鍟� - 璁㈠崟璇︽儏
-
+ let shopOrderDetail = (params = {}) => vm.$u.http.get('web/orders/shopOrderDetail', { params }); //缁忛攢鍟� - 璁㈠崟璇︽儏
+ let orderDetail = (params = {}) => vm.$u.http.get('web/orders/orderDetail', { params }); //瀹㈡埛 - 璁㈠崟璇︽儏
+ let delOrder = (data = {}) => vm.$u.http.post('web/orders/delOrder',data ); //璁㈠崟鍒犻櫎
+ let cancelOrder = (data = {}) => vm.$u.http.post('web/orders/cancelOrder', data ); //鍙栨秷璁㈠崟
+ let affirmOrder = (data = {}) => vm.$u.http.post('web/orders/affirmOrder',data ); //纭鏀惰揣
+ let writeOffOrder = (data = {}) => vm.$u.http.post('web/orders/writeOffOrder',{...data,tokenType:1} ); //璁㈠崟鏍搁攢
+ let getOrderDetailByCode = (data = {}) => vm.$u.http.post('web/orders/getOrderDetailByCode',{...data,tokenType:1}); //缁忛攢鍟� - 璁㈠崟璇︽儏
+
+
vm.$u.api = {
commentApply,
findActivityReplyCommentDTOPage,
@@ -105,7 +112,13 @@
getPlatformAboutUs,
findIntegralRecordPage,
myCustomer,
- shopOrderDetail
+ shopOrderDetail,
+ orderDetail,
+ delOrder,
+ cancelOrder,
+ affirmOrder,
+ writeOffOrder,
+ getOrderDetailByCode
};
}
diff --git a/mini-program/utils/http.interceptor.js b/mini-program/utils/http.interceptor.js
index 08fb1ea..f8b0134 100644
--- a/mini-program/utils/http.interceptor.js
+++ b/mini-program/utils/http.interceptor.js
@@ -6,6 +6,7 @@
// 璇锋眰鎷︽埅鍣�
uni.$u.http.interceptors.request.use((config) => {
+ console.log(config)
if(config.data && config.data.tokenType===1){
config.header['tokenType'] = config.data.tokenType;
const HeadShoptoken = vm.$store.state.shopToken
diff --git a/server/dmmall_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/dmmall_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index ae4e6df..66e0bd4 100644
--- a/server/dmmall_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/dmmall_admin/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -66,7 +66,7 @@
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
shiroFilterFactoryBean.setSecurityManager(securityManager);
- Map<String, String> map = new HashMap<>();
+ Map<String, String> map = new LinkedHashMap<>();
// 璺緞鎷︽埅閰嶇疆
map.put("/system/login", "anon");
map.put("/system/logout", "anon");
diff --git a/server/dmmall_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/dmmall_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
index 3082db6..016c782 100644
--- a/server/dmmall_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
+++ b/server/dmmall_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java
@@ -156,7 +156,6 @@
}
}
-
public Integer getTokenId(String token){
try {
Integer lastIndex = token.lastIndexOf("_")+1;
diff --git a/server/dmmall_web/src/main/java/com/doumee/InterfaceApplication.java b/server/dmmall_web/src/main/java/com/doumee/InterfaceApplication.java
index d29475d..869599a 100644
--- a/server/dmmall_web/src/main/java/com/doumee/InterfaceApplication.java
+++ b/server/dmmall_web/src/main/java/com/doumee/InterfaceApplication.java
@@ -17,7 +17,6 @@
@EnableAsync
@MapperScan("com.doumee.dao")
public class InterfaceApplication {
-
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(InterfaceApplication.class);
context.getEnvironment();
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java
deleted file mode 100644
index f978edf..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroAuthFilter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.alibaba.fastjson.JSON;
-import com.doumee.core.model.ApiResponse;
-import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
-import org.springframework.http.HttpStatus;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Shiro璁よ瘉杩囨护鍣紝澶勭悊鏈璇佹儏鍐电殑鍝嶅簲
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-public class ShiroAuthFilter extends FormAuthenticationFilter {
-
- public ShiroAuthFilter() {
- super();
- }
-
- @Override
- protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
- HttpServletResponse servletResponse = (HttpServletResponse) response;
- servletResponse.setHeader("content-type", "application/json;charset=UTF-8");
- servletResponse.getWriter().write(JSON.toJSONString(ApiResponse.failed(HttpStatus.UNAUTHORIZED.value(), "鏈櫥褰曟垨鐧诲綍淇℃伅宸茶繃鏈�")));
- return Boolean.FALSE;
- }
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCache.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCache.java
deleted file mode 100644
index 36cd7af..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCache.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.service.proxy.CacheProxy;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.cache.Cache;
-import org.apache.shiro.cache.CacheException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Scope;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-
-/**
- * Shiro缂撳瓨
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Scope(value = "prototype")
-@Slf4j
-@Component
-public class ShiroCache implements Cache<Object, Serializable> {
-
- private String keyPrefix = "";
-
- @Autowired
- private CacheProxy<Object, Serializable> cacheProxy;
-
- public ShiroCache () {
- log.debug("ShiroCache: new, keyPrefix = [" + keyPrefix + "]");
- }
-
- public ShiroCache(String keyPrefix) {
- log.debug("ShiroCache: new, keyPrefix = [" + keyPrefix + "]");
- this.keyPrefix = keyPrefix;
- }
-
- @Override
- public Serializable get(Object key) throws CacheException {
- if (key == null) {
- return null;
- }
- return cacheProxy.get(getKey(key));
- }
-
- @Override
- public Serializable put(Object key, Serializable value) throws CacheException {
- if (key == null) {
- return null;
- }
- cacheProxy.put(getKey(key), value);
- return value;
- }
-
- public Serializable put(Object key, Serializable value, int timeout) throws CacheException {
- if (key == null) {
- return null;
- }
- cacheProxy.put(getKey(key), value, timeout);
- return value;
- }
-
- @Override
- public void clear() throws CacheException {
- Set<Object> keys = this.keys();
- cacheProxy.remove(keys);
- }
-
- @Override
- public int size() {
- return this.keys().size();
- }
-
- @Override
- public Set<Object> keys() {
- Set<Object> keys = cacheProxy.keys(keyPrefix + "*");
- if (CollectionUtils.isEmpty(keys)) {
- return Collections.emptySet();
- }
- return keys;
- }
-
- @Override
- public Collection<Serializable> values() {
- Collection<Serializable> values = new ArrayList<>();
- Set<Object> keys = this.keys();
- if (CollectionUtils.isEmpty(keys)) {
- return values;
- }
- for (Object k : keys) {
- values.add(cacheProxy.get(k));
- }
- return values;
- }
-
- @Override
- public Serializable remove(Object key) throws CacheException {
- if (key == null) {
- return null;
- }
- Serializable value = this.get(getKey(key));
- cacheProxy.remove(getKey(key));
- return value;
- }
-
- private Object getKey (Object key) {
- return (key instanceof String ? (this.keyPrefix + key) : key);
- }
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java
deleted file mode 100644
index fedcb98..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCacheManager.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.doumee.config.shiro;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.cache.Cache;
-import org.apache.shiro.cache.CacheException;
-import org.apache.shiro.cache.CacheManager;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.stereotype.Component;
-
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-
-/**
- * 鑷畾涔塖hiro CacheManager
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Slf4j
-@Component
-public class ShiroCacheManager implements CacheManager {
-
- private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap();
-
- private static ApplicationContext applicationContext;
-
- @Override
- public <K, V> Cache<K, V> getCache(String name) throws CacheException {
- log.debug("get cache, name=" + name);
- Cache cache = this.caches.get(name);
- if (cache == null) {
- cache = applicationContext.getBean(ShiroCache.class, "shiro:cache:");
- this.caches.put(name, cache);
- }
- return cache;
- }
-
- @Autowired
- public void setApplicationContext (ApplicationContext applicationContext) {
- if (ShiroCacheManager.applicationContext == null) {
- ShiroCacheManager.applicationContext = applicationContext;
- }
- }
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroConfig.java
deleted file mode 100644
index 9b3e514..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package com.doumee.config.shiro;
-
-import org.apache.shiro.mgt.SecurityManager;
-import org.apache.shiro.session.mgt.SessionManager;
-import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
-import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
-import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
-import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import javax.servlet.Filter;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * Shiro閰嶇疆
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Configuration
-public class ShiroConfig {
-
- @Value("${cache.session.expire}")
- private int sessionExpireTime;
-
- @Autowired
- private ShiroCredentialsMatcher shiroCredentialsMatcher;
-
- @Autowired
- private ShiroSessionDAO shiroSessionDAO;
-
- @Autowired
- private ShiroCacheManager shiroCacheManager;
-
- @Autowired
- private ShiroRealm shiroRealm;
-
- @Bean
- public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
- DefaultAdvisorAutoProxyCreator autoProxyCreator = new DefaultAdvisorAutoProxyCreator();
- autoProxyCreator.setProxyTargetClass(true);
- return autoProxyCreator;
- }
-
- @Bean
- public SessionManager sessionManager() {
- ShiroSessionManager sessionManager = new ShiroSessionManager();
- sessionManager.setSessionDAO(shiroSessionDAO);
- return sessionManager;
- }
-
- @Bean
- public SecurityManager securityManager() {
- DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
- securityManager.setRealm(shiroRealm);
- securityManager.setSessionManager(this.sessionManager());
- securityManager.setCacheManager(shiroCacheManager);
- return securityManager;
- }
-
- @Bean
- public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
- ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
- shiroFilterFactoryBean.setSecurityManager(securityManager);
- Map<String, String> map = new HashMap<>();
- // 璺緞鎷︽埅閰嶇疆
- map.put("/system/login", "anon");
- map.put("/system/logout", "anon");
- map.put("/common/captcha", "anon");
- map.put("/web/**", "anon");
- //鏂囦欢涓婁紶鍙栨秷鎷︽埅
- map.put("/public/**", "anon");
- // - 鏀捐swagger
- map.put("/doc.html", "anon");
- map.put("/webjars/**", "anon");
- map.put("/swagger-resources/**", "anon");
- map.put("/v2/api-docs/**", "anon");
- // - 鍏朵粬鎺ュ彛缁熶竴鎷︽埅
- map.put("/**", "authc");
- shiroFilterFactoryBean.setFilterChainDefinitionMap(map);
- // 娣诲姞璁よ瘉杩囨护鍣�
- Map<String, Filter> filters = new LinkedHashMap<>();
- filters.put("authc", new ShiroAuthFilter());
- shiroFilterFactoryBean.setFilters(filters);
- return shiroFilterFactoryBean;
- }
-
- @Bean
- public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {
- AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();
- authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
- return authorizationAttributeSourceAdvisor;
- }
-
- @Bean
- public ShiroSessionDAO getShiroSessionDAO () {
- shiroSessionDAO.setExpireTime(sessionExpireTime);
- return shiroSessionDAO;
- }
-
- @Bean
- public ShiroRealm getShiroRealm () {
- shiroRealm.setCredentialsMatcher(shiroCredentialsMatcher);
- return shiroRealm;
- }
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java
deleted file mode 100644
index 75c5280..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroCredentialsMatcher.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.system.model.SystemUser;
-import com.doumee.service.system.SystemUserService;
-import org.apache.shiro.authc.AuthenticationInfo;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.UsernamePasswordToken;
-import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Component;
-
-/**
- * Shiro瀵嗙爜姣斿澶勭悊
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Component
-public class ShiroCredentialsMatcher extends HashedCredentialsMatcher {
-
- @Lazy
- @Autowired
- private SystemUserService systemUserService;
-
- @Override
- public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
- UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token;
- SystemUser queryUserDto = new SystemUser();
- queryUserDto.setUsername(usernamePasswordToken.getUsername());
- queryUserDto.setDeleted(Boolean.FALSE);
- SystemUser systemUser = systemUserService.findOne(queryUserDto);
- if (systemUser == null) {
- return Boolean.FALSE;
- }
- // 鍔犲瘑瀵嗙爜
- String pwd = Utils.Secure.encryptPassword(new String(usernamePasswordToken.getPassword()), systemUser.getSalt());
- // 姣旇緝瀵嗙爜
- return this.equals(pwd, systemUser.getPassword());
- }
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroRealm.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroRealm.java
deleted file mode 100644
index 690addf..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroRealm.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.core.model.LoginUserInfo;
-import com.doumee.dao.system.model.SystemPermission;
-import com.doumee.dao.system.model.SystemRole;
-import com.doumee.dao.system.model.SystemUser;
-import com.doumee.service.system.SystemPermissionService;
-import com.doumee.service.system.SystemRoleService;
-import com.doumee.service.system.SystemUserService;
-import org.apache.shiro.authc.AuthenticationException;
-import org.apache.shiro.authc.AuthenticationInfo;
-import org.apache.shiro.authc.AuthenticationToken;
-import org.apache.shiro.authc.SimpleAuthenticationInfo;
-import org.apache.shiro.authz.AuthorizationInfo;
-import org.apache.shiro.authz.SimpleAuthorizationInfo;
-import org.apache.shiro.realm.AuthorizingRealm;
-import org.apache.shiro.subject.PrincipalCollection;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-/**
- * 鑷畾涔塕ealm锛屽鐞嗚璇佸拰鏉冮檺
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Component
-public class ShiroRealm extends AuthorizingRealm {
-
- @Lazy
- @Autowired
- private SystemUserService systemUserService;
-
- @Lazy
- @Autowired
- private SystemRoleService systemRoleService;
-
- @Lazy
- @Autowired
- private SystemPermissionService systemPermissionService;
-
- /**
- * 鏉冮檺澶勭悊
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
- @Override
- protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
- LoginUserInfo loginUserInfo = (LoginUserInfo)principalCollection.getPrimaryPrincipal();
- // 璁剧疆鐢ㄦ埛瑙掕壊鍜屾潈闄�
- SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
- authorizationInfo.addRoles(loginUserInfo.getRoles());
- authorizationInfo.addStringPermissions(loginUserInfo.getPermissions());
- return authorizationInfo;
- }
-
- /**
- * 璁よ瘉澶勭悊
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
- @Override
- protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
- // 鑾峰彇鐢ㄦ埛鍚�
- String username = authenticationToken.getPrincipal().toString();
- // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
- SystemUser queryDto = new SystemUser();
- queryDto.setUsername(username);
- queryDto.setDeleted(Boolean.FALSE);
- SystemUser user = systemUserService.findOne(queryDto);
- if (user == null) {
- return null;
- }
- // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅
- List<SystemRole> roles = systemRoleService.findByUserId(user.getId());
- List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId());
- LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions);
- // 楠岃瘉鐢ㄦ埛
- return new SimpleAuthenticationInfo(userInfo, user.getPassword(), this.getName());
- }
-
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java
deleted file mode 100644
index 2cc6a11..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroSessionDAO.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package com.doumee.config.shiro;
-
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.session.UnknownSessionException;
-import org.apache.shiro.session.mgt.SimpleSession;
-import org.apache.shiro.session.mgt.eis.SessionDAO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-/**
- * 鑷畾涔塖hiro SessionDAO锛屽皢浼氳瘽淇℃伅瀛樺叆缂撳瓨涓�
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Data
-@Slf4j
-@Component
-public class ShiroSessionDAO implements SessionDAO {
-
- private static final String KEY_PREFIX = "shiro:session:";
-
- @Autowired
- private ShiroCache shiroCache;
-
- private int expireTime = 1800;
-
- @Autowired
- private ShiroTokenManager shiroTokenManager;
-
- @Override
- public Serializable create(Session session) {
- if (session == null) {
- log.error("session is null");
- throw new UnknownSessionException("session is null");
- }
- Serializable sessionId = shiroTokenManager.build();
- ((SimpleSession)session).setId(sessionId);
- this.saveSession(session);
- return sessionId;
- }
-
- @Override
- public Session readSession(Serializable sessionId) throws UnknownSessionException{
- if (sessionId == null) {
- log.warn("session id is null");
- return null;
- }
- if (sessionId instanceof String) {
- // 瀵筍essionId杩涜楠岃瘉锛堝彲鐢ㄤ簬闃叉Session鎹曡幏銆佹毚鍔涙崟鎹夌瓑涓�绯诲垪瀹夊叏闂锛屾渶缁堝畨鍏ㄦ�у彇鍐充簬check濡備綍瀹炵幇锛�
- shiroTokenManager.check((String) sessionId);
- }
- log.debug("read session from cache");
- Session session = getSessionFromCache(sessionId);
- if (session == null) {
- throw new UnknownSessionException("There is no session with id [" + sessionId + "]");
- }
- return session;
- }
-
- @Override
- public void update(Session session) throws UnknownSessionException {
- this.saveSession(session);
- }
-
- @Override
- public void delete(Session session) {
- if (session != null && session.getId() != null) {
- shiroCache.remove(KEY_PREFIX + session.getId());
- }
- }
-
- @Override
- public Collection<Session> getActiveSessions() {
- Set<Session> sessions = new HashSet<>();
- Set<Object> keys = shiroCache.keys();
- if (keys != null && keys.size() > 0) {
- Iterator iter = keys.iterator();
- while(iter.hasNext()) {
- sessions.add((Session) shiroCache.get(iter.next()));
- }
- }
- return sessions;
- }
-
- private void saveSession(Session session) throws UnknownSessionException {
- if (session == null || session.getId() == null) {
- log.error("session or session id is null");
- throw new UnknownSessionException("session or session id is null");
- }
- shiroCache.put(KEY_PREFIX + session.getId(), (SimpleSession)session, expireTime);
- }
-
- private Session getSessionFromCache (Serializable sessionId) {
- Serializable object = shiroCache.get(KEY_PREFIX + sessionId);
- Session session = null;
- if (object != null) {
- session = (Session)shiroCache.get(KEY_PREFIX + sessionId);
- }
- return session;
- }
-
- public void setExpireTime (int expireTime) {
- this.expireTime = expireTime;
- }
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java
deleted file mode 100644
index ef159a7..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroSessionManager.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.doumee.config.shiro;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.shiro.session.Session;
-import org.apache.shiro.session.mgt.DefaultSessionManager;
-import org.apache.shiro.session.mgt.SessionContext;
-import org.apache.shiro.session.mgt.SessionKey;
-import org.apache.shiro.web.servlet.Cookie;
-import org.apache.shiro.web.servlet.ShiroHttpServletRequest;
-import org.apache.shiro.web.servlet.SimpleCookie;
-import org.apache.shiro.web.session.mgt.WebSessionManager;
-import org.apache.shiro.web.util.WebUtils;
-
-import javax.servlet.ServletRequest;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.Serializable;
-
-/**
- * 鑷畾涔変細璇濈鐞嗗櫒
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Slf4j
-public class ShiroSessionManager extends DefaultSessionManager implements WebSessionManager {
-
- private static final String AUTH_TOKEN = "eva-auth-token";
-
- @Override
- protected void onStart(Session session, SessionContext context) {
- super.onStart(session, context);
- if (!WebUtils.isHttp(context)) {
- log.debug("SessionContext argument is not Http compatible or does not have an Http request/response pair. No session ID cookie will be set.");
- return;
- }
- HttpServletRequest request = WebUtils.getHttpRequest(context);
- HttpServletResponse response = WebUtils.getHttpResponse(context);
- Serializable sessionId = session.getId();
- this.storeSessionId(sessionId, request, response);
- request.removeAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_ID_SOURCE);
- request.setAttribute(ShiroHttpServletRequest.REFERENCED_SESSION_IS_NEW, Boolean.TRUE);
- }
-
- @Override
- public Serializable getSessionId(SessionKey key) {
- Serializable sessionId = super.getSessionId(key);
- if (sessionId == null && WebUtils.isWeb(key)) {
- ServletRequest servletRequest = WebUtils.getRequest(key);
- if (!(servletRequest instanceof HttpServletRequest)) {
- log.trace("Can not get sessionId from header, the request is not HttpServletRequest");
- return null;
- }
- HttpServletRequest request = (HttpServletRequest) servletRequest;
- // 浠巆ookie涓幏鍙栬璇�
- javax.servlet.http.Cookie[] cookies = request.getCookies();
- if (cookies != null) {
- for (javax.servlet.http.Cookie cookie : cookies) {
- if (AUTH_TOKEN.equals(cookie.getName())) {
- return cookie.getValue();
- }
- }
- }
- // 浠巋eader涓幏鍙栬璇�
- return request.getHeader(AUTH_TOKEN);
- }
- return sessionId;
- }
-
- @Override
- public boolean isServletContainerSessions() {
- return false;
- }
-
- private void storeSessionId(Serializable currentId, HttpServletRequest request, HttpServletResponse response) {
- if (currentId == null) {
- String msg = "sessionId cannot be null when persisting for subsequent requests.";
- throw new IllegalArgumentException(msg);
- }
- Cookie cookie = new SimpleCookie(AUTH_TOKEN);
- cookie.setHttpOnly(false);
- String idString = currentId.toString();
- cookie.setValue(idString);
- cookie.saveTo(request, response);
- log.trace("Set session ID cookie for session with id {}", idString);
- }
-}
diff --git a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java b/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java
deleted file mode 100644
index 1ba1679..0000000
--- a/server/dmmall_web/src/main/java/com/doumee/config/shiro/ShiroTokenManager.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.doumee.config.shiro;
-
-import com.doumee.core.exception.UnSafeSessionException;
-import org.springframework.stereotype.Component;
-
-import java.util.UUID;
-
-/**
- * 榛樿Token绠$悊鍣�
- * @author Eva.Caesar Liu
- * @date 2023/03/21 14:49
- */
-@Component
-public class ShiroTokenManager {
-
- String build() {
- return UUID.randomUUID().toString();
- }
-
- void check(String token) throws UnSafeSessionException {
- if (token == null || token.length() != 36) {
- throw new UnSafeSessionException();
- }
- }
-}
--
Gitblit v1.9.3