This commit is contained in:
weipengfei 2024-03-21 11:23:03 +08:00
commit b832389a2c
12 changed files with 1047 additions and 680 deletions

View File

@ -9,6 +9,17 @@
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
/**
* 商户类型列表
*/
export const intentionList = (data) => request.get('intention/detail', data)
/**
* 商户类型申请
*/
export const shopTypeChange = (data) => request.post('intention/change', data)
/**
* 获取商品详情
*/
@ -329,4 +340,3 @@ export function intention(data) {
export function intentionbus(data) {
return request.post(`intention/business`, data);
}

View File

@ -1459,8 +1459,14 @@
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
},
{
}, {
"path": "shop_type_change/list",
"style": {
"navigationBarTitleText": "申请记录",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "addGood/addGood",
"style": {
"navigationBarTitleText": "商品设置",

View File

@ -50,7 +50,8 @@
<view v-if="val.product" class="goods acea-row row-between-wrapper">
<view class="picTxt acea-row row-between-wrapper">
<view class="pictrue">
<image :src="val.product.cart_info.productAttr.image||val.product.cart_info.product.image" />
<image
:src="val.product.cart_info.productAttr.image||val.product.cart_info.product.image" />
</view>
<view class="text acea-row row-between row-column">
<view class="info line1 refund-info">
@ -120,7 +121,8 @@
<view class="attr" v-if="val.cart_info.productAttr.sku">
{{ val.cart_info.productAttr.sku }}
</view>
<view class="attr" @click.stop="showBarCode(val.cart_info.productAttr.product)" v-if="val.cart_info.productAttr.product&&val.cart_info.productAttr.product.bar_code">
<view class="attr" @click.stop="showBarCode(val.cart_info.productAttr.product)"
v-if="val.cart_info.productAttr.product&&val.cart_info.productAttr.product.bar_code">
商品条码: {{ val.cart_info.productAttr.product.bar_code }}
</view>
</view>
@ -174,10 +176,12 @@
一键改价
</view>
<view class="bnt" @click="modify(item, 1)">订单备注</view>
<view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0&&(item.activity_type==98||item.activity_type==99)"
<view class="bnt bnt_color"
v-if="where.status == 2 && item.order_type == 0&&(item.activity_type==98||item.activity_type==99)"
@click="toPostage(item)">去发货
</view>
<view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0&& item.order_type !=1 &&item.activity_type==0"
<view class="bnt bnt_color"
v-if="where.status == 2 && item.order_type == 0&& item.order_type !=1 &&item.activity_type==0"
@click="toPostagequ(item)">去发货
</view>
<view class="bnt bnt_color"
@ -209,16 +213,46 @@
</view>
<view class="mask" @touchmove.prevent v-show="refundMark === true"></view>
</view>
<u-popup :show="popUpShow" mode="center" :closeOnClickOverlay="true" round="12" @close="popUpClose">
<view style="text-align: center;margin-top: 30rpx;">
<!-- <view style="text-align: center;margin-top: 30rpx;">
请把二维码展示给取货人员
</view>
<view style="padding: 28.07rpx;">
<image :src="payCodeUrl" style="width:400rpx;height: 400rpx;"></image>
</view> -->
<view class="form">
<view class="form-item">
<view class="form-item-label">送货人姓名</view>
<view class="form-item-val">
<u-input placeholder="请输入送货人姓名" placeholderStyle="color:#999;font-size:26rpx;"
border="surround"></u-input>
</view>
</view>
<view class="form-item">
<view class="form-item-label">送货人电话</view>
<view class="form-item-val">
<u-input placeholder="请输入送货人电话" placeholderStyle="color:#999;font-size:26rpx;"
border="surround"></u-input>
</view>
</view>
<view class="form-item">
<view class="form-item-label">备注</view>
<view class="form-item-val">
<u-input placeholder="请输入备注" placeholderStyle="color:#999;font-size:26rpx;"></u-input>
</view>
</view>
<view class="form-btn">
<view class="form-btn-cancel" @click="popUpShow = false">取消</view>
<view class="form-btn-confirm">确认</view>
</view>
</view>
</u-popup>
<view class="bar-code" v-show="showBar" @click="showBar=false">
<view class="bar-code" v-show="showBar" @click="showBar=false">
<barcode ref="code"></barcode>
</view>
</view>
@ -300,7 +334,7 @@
this.where.status = option.types
this.current = "";
this.merId = option.merId;
if(option.pay_time){
if (option.pay_time) {
this.where.pay_time = option.pay_time;
}
@ -312,7 +346,7 @@
this.popUpShow = false
},
showBarCode(val){
showBarCode(val) {
this.showBar = true
this.$refs['code'].init({
name: val.store_name,
@ -402,12 +436,12 @@
if (val != 'verify') {
if (this.where.status != val) {
this.where.status = val;
this.where.search_info=''
this.where.search_info = ''
delete this.where.is_verify;
this.init();
}
} else {
this.where.search_info=''
this.where.search_info = ''
this.where.is_verify = 1;
delete this.where.status;
this.init();
@ -477,6 +511,7 @@
}
})
},
//
toPostagequ(item) {
this.popUpShow = true
@ -486,7 +521,12 @@
this.payCodeUrl = res.data.qrcode
}
})
},
toPostage(item) {
let that = this;
if (item.refunding != 0) {
@ -590,6 +630,63 @@
</script>
<style lang="scss">
.form {
padding: 40rpx 60rpx;
.form-item {
display: flex;
align-items: center;
.form-item-label {
width: 140rpx;
font-size: 28rpx;
color: #333;
font-weight: bold;
margin-right: 20rpx;
}
.form-item-val {
flex: 1;
}
}
.form-btn {
display: flex;
justify-content: center;
margin-top: 50rpx;
.form-btn-cancel {
width: 83px;
height: 60rpx;
line-height: 60rpx;
border-radius: 30rpx;
text-align: center;
color: #2291F8;
border: 2rpx solid #2291F8;
margin-right: 40rpx;
}
.form-btn-confirm {
width: 83px;
height: 60rpx;
line-height: 60rpx;
background: linear-gradient(90deg, #2291F8 0%, #1CD1DC 100%);
border-radius: 30rpx;
text-align: center;
color: #fff;
font-size: 28rpx;
}
.form-btn-cancel:active {
background: rgba(209, 220, 255, .3);
}
.form-btn-confirm:active {
opacity: .8;
}
}
}
.pos-order-list .top-header {
position: fixed;
top: 0;
@ -1017,19 +1114,21 @@
flex: 1;
}
}
.bar-code{
.bar-code {
position: fixed;
top: 0;
left: 0;
z-index: 999999;
width: 100vw;
height: 100vh;
background-color: rgba(0,0,0,0.2);
background-color: rgba(0, 0, 0, 0.2);
display: flex;
align-items: center;
justify-content: center;
}
.cloud-tag{
.cloud-tag {
font-size: 20rpx;
padding: 2rpx 5rpx;
font-weight: 400;

View File

@ -617,6 +617,10 @@
name: '收付明细',
type: 22,
image: require('@/static/images/index14.png')
}, {
name: '商户类型',
type: 23,
image: require('@/static/images/index14.png')
},
@ -695,6 +699,10 @@
name: '收付明细',
type: 22,
image: require('@/static/images/index14.png')
}, {
name: '商户类型',
type: 23,
image: require('@/static/images/index14.png')
},
// {
// name: '',
@ -741,6 +749,10 @@
name: '收付明细',
type: 22,
image: require('@/static/images/index14.png')
}, {
name: '商户类型',
type: 23,
image: require('@/static/images/index14.png')
},
{
name: '扫码付款',
@ -1534,6 +1546,14 @@
url: '/pages/payment/payment_detail?mer_id=' + this.userInfoData.service.mer_id
})
break;
case 23:
if (this.userInfoData.mer_info.mer_settlement_agree_status == 0) Toast('暂无权限');
else uni.navigateTo({
url: '/pages/product/shop_type_change/index?mer_id=' + this.userInfoData
.service.mer_id
})
break;
case 17:
if (this.userInfoData.mer_info.mer_settlement_agree_status == 0) Toast('暂无权限');
else uni.navigateTo({

View File

@ -44,7 +44,17 @@
qrcode({
mer_id: merid
}).then(res => {
if (!res.data.count || res.data.count == 0) {
this.$util.Tips({
title: "您还没有添加商品,请添加!"
}, () => {
uni.redirectTo({
url: "/pages/product/addGood/addGood?mer_id=" + merid
})
})
} else {
this.img = res.data.url;
}
})
},
@ -112,12 +122,10 @@
}
.v-qrcode {
position: absolute;
top: 400rpx;
left: 50%;
transform: translateX(-50%);
width: 650rpx;
height: 650rpx;
margin-top: 100rpx;
margin: 100rpx auto 0;
background-color: #fff;
display: flex;
justify-content: center;
@ -131,16 +139,12 @@
}
.v-btn {
position: absolute;
top: 1080rpx;
left: 50%;
transform: translateX(-50%);
display: flex;
align-items: center;
justify-content: center;
width: 690rpx;
height: 100rpx;
margin: 0 auto;
margin: 70rpx auto 0;
text {
font-weight: 400;

View File

@ -80,13 +80,6 @@
<view>建议尺寸:710*134px或710*460px(请根据平台要求选择尺寸此图如未上传默认展示店铺背景图)</view>
</view>
</view>
<view class="street_bg">
<view class="text flex_a_c"> <i class="iconfont icon-xinghao"></i> 商户类型变更</view>
<view class="street_img flex_a_c" @click="changeType">
类型变更
</view>
</view>
</view>
<view class="basice_item">
@ -100,8 +93,7 @@
<checkbox-group name="" @change="checkboxChange">
<checkbox disabled :checked="isZiti" :value="check.ziti" /><text
class="text ziti">到店自提</text>
<checkbox :checked="isKuaidi" :value="check.kuaidi" /><text
class="text">商家配送</text>
<checkbox :checked="isKuaidi" :value="check.kuaidi" /><text class="text">商家配送</text>
</checkbox-group>
</view>
</view>
@ -482,16 +474,6 @@
});
},
//
changeType() {
uni.navigateTo({
url: "/pages/product/shop_type_change/index",
fail(err) {
console.log(err);
}
})
},
seleckImage(i) {
let that = this;
that.$util.uploadImageOne('upload/image', function(res) {

View File

@ -10,17 +10,22 @@
</view>
</view>
<view class="apply-record" @click="handleToRecord">
<text>申请记录</text>
<u-icon name="arrow-right" size="12" color="#fff" style="margin-top: 4rpx;" />
</view>
<view class="shop-type-con">
<view class="shop-type-con-title">点击选择变更的商户类型</view>
<view class="pifa" @click="handleChoose(1)">
<image v-if="selected == '' ||selected == 2"
<image v-if="selected == '' || selected == 2"
src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/b0811202403191613185951.webp" mode="">
</image>
<image v-if="selected == 1"
src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/d7d97202403191611433157.webp" mode=""></image>
</view>
<view class="pifalingshou" @click="handleChoose(2)">
<image v-if="selected == '' ||selected == 1"
<image v-if="selected == '' || selected == 1"
src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/39776202403191612456811.webp" mode="">
</image>
<image v-if="selected == 2"
@ -35,29 +40,75 @@
</template>
<script>
import {
shopTypeChange
} from "@/api/product.js";
export default {
data() {
return {
selected: ''
selected: '',
mer_id: ''
}
},
onLoad(opt) {
if (opt.mer_id)
this.mer_id = opt.mer_id;
},
methods: {
handleToRecord() {
uni.navigateTo({
url: "/pages/product/shop_type_change/list",
fail(err) {
console.log(err);
}
})
},
handleChoose(e) {
this.selected = e;
},
handleJump() {
if (!this.selected) return this.$util.Tips({
title: "请选择一种类型"
})
if (!this.mer_id) return this.$util.Tips({
title: "申请商户不能为空!"
})
shopTypeChange({
type: 3,
mer_id: this.mer_id
}).then(res => {
if (res.status == 200) {
this.$util.Tips({
title: res.message
}, () => {
uni.navigateTo({
url: "/pages/product/shop_type_change/progress",
url: "/pages/product/shop_type_change/list",
fail(err) {
console.log(err);
},
success(res) {
}
})
})
} else {
return this.$util.Tips({
title: res.message
})
}
}).catch((err) => {
this.$util.Tips({
title: err
})
})
},
handleBack() {
@ -90,9 +141,26 @@
}
}
.apply-record {
position: absolute;
top: calc(128rpx + var(--status-bar-height));
right: 0;
display: flex;
justify-content: center;
align-items: center;
width: 154rpx;
height: 50rpx;
background: #A1A1A1;
border-radius: 40rpx 0rpx 0rpx 40rpx;
text {
font-weight: 400;
font-size: 26rpx;
color: #FFFFFF;
}
}
.shop-type-con {
.shop-type-con-title {
margin-bottom: 74rpx;
font-weight: 400;
@ -110,7 +178,6 @@
width: 690rpx;
height: 178rpx;
}
}
.pifalingshou {

View File

@ -0,0 +1,154 @@
<template>
<view class="shopTypeList">
<view class="shop_type-head">
<view style="height: var(--status-bar-height);"></view>
<view class="shop-type-navbar">
<u-icon name="arrow-left" size="18" color="#fff" @click="handleBack" />
<text class="shop-type-navbar-title">申请记录</text>
<text></text>
</view>
</view>
<view class="shop-type-list">
<block v-for="item in 4">
<view class="shop-type-list-item">
<view class="shop-type-list-item-title" @click='hanldeTo'>
<!-- #40AE36 审核通过 #F55726 审核未通过 #666666 审核中-->
<view class="shop-type-list-item-title-status">审核通过</view>
<view class="shop-type-list-item-title-detail">
查看详情
<u-icon name="arrow-right" size="13" color="#666"></u-icon>
</view>
</view>
<view class="shop-type-list-item-con">
<view class="shop-type-list-item-con-item">
<view class="shop-type-list-item-con-key">变更商户</view>
<view class="shop-type-list-item-con-val">这是一段店铺名称</view>
</view>
<view class="shop-type-list-item-con-item">
<view class="shop-type-list-item-con-key">变更类型</view>
<view class="shop-type-list-item-con-val">批发零售商户</view>
</view>
<view class="shop-type-list-item-con-item">
<view class="shop-type-list-item-con-key">申请时间</view>
<view class="shop-type-list-item-con-val">2024-3-14 14:00</view>
</view>
<view class="shop-type-list-item-con-item">
<view class="shop-type-list-item-con-key">审核人</view>
<view class="shop-type-list-item-con-val">2024-</view>
</view>
</view>
</view>
</block>
</view>
</view>
</template>
<script>
import {
intentionList
} from "@/api/product.js";
export default {
data() {
return {
list: []
}
},
onLoad() {
this.getData();
},
methods: {
hanldeTo() {
uni.navigateTo({
url: "/pages/product/shop_type_change/progress"
})
},
getData() {
intentionList().then(res => {
this.list = res.data;
})
}
}
}
</script>
<style lang="scss">
page {
background-color: #F8F9FA;
}
.shopTypeList {
.shop_type-head {
background-color: #40AE36;
margin-bottom: 40rpx;
.shop-type-navbar {
display: flex;
align-items: center;
justify-content: space-between;
padding: 30rpx;
height: 88rpx;
.shop-type-navbar-title {
font-size: 32rpx;
color: #FFFFFF;
}
}
}
.shop-type-list {
height: calc(100vh - 130rpx - var(--status-bar-height));
overflow: auto;
.shop-type-list-item {
margin: 0 30rpx 30rpx;
padding: 0rpx 30rpx 30rpx 30rpx;
background: #FFFFFF;
box-shadow: 0rpx 4rpx 6rpx 2rpx rgba(0, 0, 0, 0.16);
border-radius: 20rpx;
.shop-type-list-item-title {
display: flex;
justify-content: space-between;
align-items: center;
height: 90rpx;
padding: 0 10rpx;
border-bottom: 2rpx solid #F8F9FA;
margin-bottom: 20rpx;
.shop-type-list-item-title-status {
font-size: 28rpx;
color: #666666;
}
.shop-type-list-item-title-detail {
display: flex;
align-items: center;
font-size: 28rpx;
color: #666666;
}
}
.shop-type-list-item-con {
.shop-type-list-item-con-item {
display: flex;
margin-bottom: 20rpx;
.shop-type-list-item-con-key {
min-width: 130rpx;
font-size: 26rpx;
color: #666666;
text-align: left;
}
.shop-type-list-item-con-val {
font-size: 26rpx;
color: #333333;
}
}
}
}
}
}
</style>

View File

@ -124,7 +124,7 @@
.shop_type {
.shop_type-head {
background-color: #40AE36;
margin-bottom: 70rpx;
margin-bottom: 40rpx;
.shop-type-navbar {
display: flex;

View File

@ -1,11 +1,9 @@
<template>
<view>
<view class="content-top">
<view
:style="{ 'background-image': `linear-gradient(0deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.5) 100%),url(${store.mer_banner})` }"
class="store-home">
</view>
<!-- 搜索 -->
<!-- #ifdef MP || APP-PLUS -->
@ -1081,7 +1079,7 @@
this.isLihaiYun === 'Lihai' ? this.tabs = this.tabs4 : this.tabs = this.tabs3
} else {
this.tabs = this.tabs5
this.type=7
this.type = 7
}
this.tab(this.type)
// #ifdef H5

View File

@ -8,10 +8,10 @@
<text class='phone'>{{addressInfo.phone}}</text>
</view>
<view>
<text class='default t-color'
v-if="addressInfo.is_default">[默认]</text>{{addressInfo.province}}{{addressInfo.city}}{{addressInfo.district}}{{addressInfo.street || ''}}
<text v-if='addressInfo.brigade'>{{typeof(addressInfo.brigade)=='string'?addressInfo.brigade:addressInfo.brigade.name }}{{addressInfo.detail}}</text>
<text
v-if='addressInfo.brigade'>{{typeof(addressInfo.brigade)=='string'?addressInfo.brigade:addressInfo.brigade.name }}{{addressInfo.detail}}</text>
</view>
</view>
<navigator v-else :url="'/pages/users/user_address/index?cartId='+cartId" hover-class="none"
@ -1031,7 +1031,7 @@
// source: 0
}).then(res => {
//
that.product_type=res.data.order_type
that.product_type = res.data.order_type
that.is_take = false
res.data.order.forEach(el => {
if (el.order.isTake == 1) that.is_take = true
@ -1086,7 +1086,8 @@
`结算周期:${res.data.order[0].settle_cycle}天 日利率:${res.data.order[0].interest_rate}%`
// console.log(res.data);
if (res.data.order[0].credit_buy == 1 && (this.type_id == 12||this.type_id == 10||this.type_id == 17) && (res.data.order_type==99||res.data.order_type==98)) {
if (res.data.order[0].credit_buy == 1 && (this.type_id == 12 || this.type_id == 10 || this
.type_id == 17) && (res.data.order_type == 99 || res.data.order_type == 98)) {
this.cartArr[4].payStatus = 1
} else {
this.cartArr[4].payStatus = 0
@ -1308,7 +1309,7 @@
});
},
fail: (e) => {
console.log(e,'111111111')
console.log(e, '111111111')
//
let url = '/pages/order_pay_status/index?order_id=' + orderId +
'&msg=取消支付' + '&product_type=' + that.product_type;
@ -1634,6 +1635,10 @@
// return
// }
// balance
uni.showLoading({
title: '订单支付中',
mask: true

View File

@ -15,10 +15,11 @@
<view v-if="open_update_info != 0" class="radius"><span
class="iconfont iconfonta icon-jilu-xuanzhong"></span></view>
</view>
<button v-if="mp_is_new && open_update_info != 0" class="avatar-box pictrue" open-type="chooseAvatar"
@chooseavatar="onChooseAvatar">
<button v-if="mp_is_new && open_update_info != 0" class="avatar-box pictrue"
open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<image :src="item.avatar || '/static/images/f.png'"></image>
<view class="radius"><span class="iconfont iconfonta icon-jilu-xuanzhong"></span></view>
<view class="radius"><span
class="iconfont iconfonta icon-jilu-xuanzhong"></span></view>
</button>
<button v-else-if="mp_is_new && open_update_info == 0" class="avatar-box">
<image :src="item.avatar || '/static/images/f.png'"></image>
@ -33,10 +34,12 @@
<view class="name line1">{{ item.nickname }}</view>
</view>
</view>
<view class="currentBnt acea-row row-center-wrapper t-color" v-if='item.uid === userInfo.uid'>
<view class="currentBnt acea-row row-center-wrapper t-color"
v-if='item.uid === userInfo.uid'>
当前账号
</view>
<view class="bnt t-color acea-row row-center-wrapper" @click='switchAccounts(item,index)' v-else>
<view class="bnt t-color acea-row row-center-wrapper" @click='switchAccounts(item,index)'
v-else>
使用账号
</view>
</view>
@ -71,7 +74,8 @@
</view>
<view class='item acea-row row-between-wrapper'>
<view>手机号码</view>
<navigator url="/pages/users/user_phone/index" hover-class="none" class="input" v-if="!userInfo.phone">
<navigator url="/pages/users/user_phone/index" hover-class="none" class="input"
v-if="!userInfo.phone">
点击绑定手机号<text class="iconfont icon-xiangyou"></text>
</navigator>
<navigator url="/pages/users/user_modify_phone/index" hover-class="none"
@ -120,7 +124,8 @@
<!--#endif-->
</view>
<!-- #ifdef H5 -->
<view class="logOut acea-row row-center-wrapper" @click="outLogin" v-if="!this.$wechat.isWeixin()">退出登录</view>
<view class="logOut acea-row row-center-wrapper" @click="outLogin" v-if="!this.$wechat.isWeixin()">退出登录
</view>
<!-- #endif -->
<!-- #ifdef MP || APP-PLUS -->
<view class="logOut acea-row row-center-wrapper" @click="outLogin">退出登录</view>
@ -149,13 +154,22 @@
editAvatar,
updateInfo
} from '@/api/user.js';
import { switchH5Login, getAppVersion } from '@/api/api.js';
import { mapGetters } from "vuex";
import { configMap } from '@/utils';
import {
switchH5Login,
getAppVersion
} from '@/api/api.js';
import {
mapGetters
} from "vuex";
import {
configMap
} from '@/utils';
import dayjs from "@/plugin/dayjs/dayjs.min.js";
import authorize from '@/components/Authorize';
import Cache from '@/utils/cache';
import { HTTP_REQUEST_URL } from '@/config/app';
import {
HTTP_REQUEST_URL
} from '@/config/app';
export default {
components: {
authorize
@ -174,7 +188,9 @@
version: ''
};
},
computed: configMap({ open_update_info: 0 }, mapGetters(['isLogin', 'viewColor', 'keyColor'])),
computed: configMap({
open_update_info: 0
}, mapGetters(['isLogin', 'viewColor', 'keyColor'])),
onLoad() {
if (this.isLogin) {
this.getUserInfo();
@ -207,7 +223,9 @@
userInfo.avatar = res.data.path;
}
that.switchUserInfo[that.userIndex] = userInfo;
editAvatar({ avatar: res.data.path }).then((res) => {
editAvatar({
avatar: res.data.path
}).then((res) => {
that.$util.Tips({
title: res.message,
})
@ -225,10 +243,14 @@
},
//
onChooseAvatar(e) {
const { avatarUrl } = e.detail
const {
avatarUrl
} = e.detail
this.$util.uploadImgs('upload/image', avatarUrl, (res) => {
this.userInfo.avatar = res.data.path
editAvatar({ avatar: res.data.path }).then((res) => {
editAvatar({
avatar: res.data.path
}).then((res) => {
that.$util.Tips({
title: res.message,
})