From e876fed618abd4237b9818424b72d01e24f8908c Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期四, 01 八月 2024 16:22:17 +0800 Subject: [PATCH] update --- sub_pages/customer/trade/list.vue | 12 sub_pages/supplier/supplier-info/supplier-info.vue | 38 ++ pages/user/user-bind-wx/user-bind-wx.vue | 405 +++++++++++++++++++++++++++++++ pages.json | 7 sub_pages/partner/partner-info/partner-info.vue | 16 + pages/order/order-delivery-detail.vue | 25 + sub_pages/partner/delivery/delivery-home.vue | 2 sub_pages/supplier/flower-manage/flower-add.vue | 20 sub_pages/supplier/print/print-list.vue | 31 +- manifest.json | 2 sub_pages/customer/shopping/confirm.vue | 6 pages/order/order.vue | 91 ++++-- pages/order/order-detail.vue | 23 + pages/user/supplier-user.vue | 74 +++++ 14 files changed, 654 insertions(+), 98 deletions(-) diff --git a/manifest.json b/manifest.json index f2448bf..2848179 100644 --- a/manifest.json +++ b/manifest.json @@ -49,7 +49,7 @@ "quickapp" : {}, /* 快应用特有相关 */ "mp-weixin" : { - "appid" : "wx3203fd935a6ffe09", + "appid" : "wx1441324401626290", "setting" : { "urlCheck" : false, "es6" : true, diff --git a/pages.json b/pages.json index dc76b13..094d7e4 100644 --- a/pages.json +++ b/pages.json @@ -129,6 +129,13 @@ "style": { "navigationBarTitleText": "理赔单详情" } + }, + { + "path" : "pages/user/user-bind-wx/user-bind-wx", + "style" : + { + "navigationBarTitleText" : "绑定微信" + } } ], "subPackages": [{ diff --git a/pages/order/order-delivery-detail.vue b/pages/order/order-delivery-detail.vue index ab2e6d1..4afbf9d 100644 --- a/pages/order/order-delivery-detail.vue +++ b/pages/order/order-delivery-detail.vue @@ -61,6 +61,10 @@ }, async submit(status) { + if (!this.dto.arriveImageList || this.dto.arriveImageList.length < 0) { + this.$message.showToast('未上传图片') + return + } await this.$message.confirm('是否确认入位') this.$message.showLoading() const { @@ -80,9 +84,9 @@ }, printDeliveryOrder(item) { // this.$message.showToast('敬请期待') - this.$storage.setItem('cache_delivery_order_print',JSON.stringify(item)) + this.$storage.setItem('cache_delivery_order_print', JSON.stringify(item)) uni.navigateTo({ - url:'/sub_pages/supplier/print/print-list' + url: '/sub_pages/supplier/print/print-list' }) } @@ -94,8 +98,7 @@ <view class="list-container order-delivery supplier"> <view class="p15"> <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> - <view v-for="(item,index) in list" :key="index" - class="m-b-24 order-sale-list list-container"> + <view v-for="(item,index) in list" :key="index" class="m-b-24 order-sale-list list-container"> <view class="order-sale-item list-item"> <view class="title flex"> <view>订单单号:{{item.orderNo}}</view> @@ -150,7 +153,7 @@ <view class="button button-1 m-r-0" @click="printDeliveryOrder(item)">打印</view> </view> <!-- #endif --> - + @@ -161,7 +164,7 @@ <!-- 提交图片 --> <view class="delivery-form p20 bg-white br-4"> <view class="form-item flex before-line bottom-border-no"> - <view class="label " style="width: 400rpx;">图片</view> + <view class="label required" style="width: 400rpx;">图片</view> <view class="m-l-a m-r-0 flex"> <view class="component-button-upload" @click="uploadIcon('arriveImageList')"> @@ -213,12 +216,14 @@ background-color: #fff; margin-bottom: 20rpx; padding: 22rpx; - .each-item{ - .label{ + + .each-item { + .label { min-width: 120rpx; - + } - .label:after{ + + .label:after { content: ":"; margin-right: 10rpx; } diff --git a/pages/order/order-detail.vue b/pages/order/order-detail.vue index 21368d0..bad6c50 100644 --- a/pages/order/order-detail.vue +++ b/pages/order/order-detail.vue @@ -300,10 +300,10 @@ dto.status === 'SEND' && '商家已发货,正在通知取货' || dto.status === 'PENDING' && '订单还未支付,立即去支付' || dto.status === 'RECEIVE' && '待签收' - || ('订单' + dto.statusStr) + || ('订单状态: ' + dto.statusStr) }} </view> - <view class="desc-gray">支付时间:{{dto.paymentTime}}</view> + <view class="desc-gray">支付时间:{{dto.paymentTime || '-'}}</view> </view> </view> <view class="address-container bg-white br-4 m-t-12" v-if="!showSales"> @@ -313,16 +313,16 @@ <view class="info"> <view class="title"> {{ dto.customer }} - <view class="tel">{{ dto.customerTel }}</view> + <view class="tel">{{ dto.customerTel || ''}}</view> </view> - <view class="content">{{ dto.customerAddress }}</view> + <view class="content">{{ dto.customerAddress || ''}}</view> </view> </view> </view> <view class="flower-info m-b-20 m-t-12 br-4" v-for="(item,index) of list" :key="index"> <view class="supplier-name "> <image class="icon-dp" src="/static/common/icon-dp.png"></image> - {{ item.supplierName }} + {{ item.supplierName || ''}} </view> <view class="flex m-t-12"> <radio v-if="showSales" :checked="submitForm.orderItems.indexOf(item.id)>=0" @click="changeSalesOrderItem(item)"></radio> @@ -331,11 +331,16 @@ </image> <view class="flex1"> <view class=" flex"> - <view class="title"><span class="level">{{ item.flowerCategory }}</span><span - class="level">{{ item.flowerLevelStr }}</span>{{ item.flowerName }} + <view class="title"><span class="level">{{ item.flowerCategory || ''}}</span><span + class="level">{{ item.flowerLevelStr || ''}}</span>{{ item.flowerName || ''}} </view> </view> <view class="each-list"> + <view class="each-item"> + <view class="label">货位号</view> + <view class="value">{{ item.warehouseLocationCode || dto.warehouseLocationCode || '-' }}</view> + </view> + <view class="each-item"> <view class="label">颜色</view> <view class="value">{{ item.flowerColor || '-' }}</view> @@ -446,11 +451,11 @@ <view class="flex m-t-12"> <view class="flex1 w-fit m-auto icon-view" @click.stop="callTel"> <image src="/static/common/icon-call.png" class="icon icon-call m-r-10 img100"></image> - 15974805814 + 拨打15974805814 </view> <view class="flex1 w-fit m-auto icon-view" open-type="contact"> <image src="/static/common/icon-wx.png" class="icon icon-call m-r-10 img100"></image> - 在线客服 + 点击联系在线客服 </view> </view> diff --git a/pages/order/order.vue b/pages/order/order.vue index da85fca..3d4c471 100644 --- a/pages/order/order.vue +++ b/pages/order/order.vue @@ -78,7 +78,7 @@ }) this.$message.hideLoading() if (code === 0) { - this.$store.dispatch('sign_add','order') + this.$store.dispatch('sign_add', 'order') this.refreshList() } } @@ -123,7 +123,7 @@ console.log('pay success', res) that.$message.showToast('支付成功') setTimeout(() => { - that.$store.dispatch('sign_add','order') + that.$store.dispatch('sign_add', 'order') that.refreshList() }, 200) }, @@ -176,8 +176,26 @@ } }) this.$message.hideLoading() - if (code === 0) { - this.$store.dispatch('sign_add','order') + if (code === 0) { + this.$store.dispatch('sign_add', 'order') + this.refreshList() + } + } + break + case 'delOrder':{ + await this.$message.confirm('是否删除此订单') + // 发送请求 + this.$message.showLoading() + const { + code + } = await this.$http.request('get', '/api/customer/order/delete', { + params: { + id: item.id, + } + }) + this.$message.hideLoading() + if (code === 0) { + // this.$store.dispatch('sign_add', 'order') this.refreshList() } } @@ -192,7 +210,7 @@ </script> <template> <view class="order-container"> - <view class="order-top"> + <view class="order-top" v-if="false"> <view class="title">订单信息</view> <view class="flex"> <image class="image img100" @@ -218,24 +236,24 @@ </view> <view class="status t-red m-l-a m-r-0">¥{{ dto.paymentAmount || dto.totalAmount || '0'}}</view> </view> - <view class="desc flex" v-if="!query.status"> + <view class=" desc flex" v-if="!query.status"> <view class="label"> 订单状态: </view> - <view class="value">{{ dto.statusBackendStr }}</view> + <view class="value" style="color: #000">{{ dto.statusBackendStr || '-' }}</view> </view> <view class="flex"> <view class="desc flex flex1"> <view class="label"> 收货人: </view> - <view class="value">{{ dto.customer }}</view> + <view class="value">{{ dto.customer || '-' }}</view> </view> <view class="desc flex flex1"> <view class="label"> 收货人手机号码: </view> - <view class="value">{{ dto.customerTel }}</view> + <view class="value">{{ dto.customerTel || '-' }}</view> </view> </view> <view class="desc flex"> @@ -244,21 +262,22 @@ </view> <view class="value">{{ dto.customerAddress }}</view> </view> - <view class="desc flex" v-if="dto.statusBackend!=='PENDING'"> + <view class="desc flex" v-if="dto.statusBackend!=='PENDING'&&dto.statusBackend!=='CANCEL'"> <view class="label"> 支付时间: </view> - <view class="value">{{ dto.paymentTime }}</view> + <view class="value">{{ dto.paymentTime || '-' }}</view> </view> <view class="flower-info m-b-5 m-t-8 br-4" v-for="(item,index) of dto.items" :key="index"> <view class="line-gray"></view> - + <view class="supplier-name "> <image class="icon-dp br-4" src="/static/common/icon-dp.png"></image> {{ item.supplierName }} </view> <view class="flex m-t-12 flex-wrap-normal"> - <image class="flower-img img100 m-r-6" :src="item.flowerCover" @click="previewImg(item.flowerCover)"> + <image class="flower-img img100 m-r-6" :src="item.flowerCover" + @click="previewImg(item.flowerCover)"> </image> <view class="flex1"> <view class=" flex"> @@ -270,42 +289,45 @@ <view class="each-item"> <view class="label">颜色</view> <view class="value">{{ item.flowerColor || '-' }}</view> - + </view> <view class="each-item"> <view class="label">规格</view> <view class="value">{{ item.flowerUnit || '-' }}</view> </view> - + <view class="each-item"> <view class="label">数量</view> <view class="value">{{ item.num || 0 }}</view> - + </view> <view class="each-item"> <view class="label">售价</view> <view class="value">¥{{ item.price || 0 }}</view> - + </view> <view class="each-item"> <view class="label">商品总金额</view> <view class="value">¥{{ item.total || 0 }}</view> - + </view> </view> </view> </view> - + </view> <view class="line-gray"></view> - + <view class="flex buttons"> + <view class="button button-0 m-l-a m-r-15" v-if="dto.statusBackend==='CANCEL'" + @click="buttonClick(dto,'delOrder')">删除订单</view> <view class="button button-0 m-l-a m-r-15" v-if="dto.statusBackend==='PENDING'" @click="buttonClick(dto,'cancelOrder')">取消订单</view> <view class="button button-1 m-l-15 m-r-15" v-if="dto.statusBackend==='PENDING'" @click="buttonClick(dto,'payAgain')">重新支付</view> - <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'refund')" v-if="dto.couldRefund"> + <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'refund')" + v-if="dto.couldRefund"> 申请退款 </view> <view class="button button-0 m-l-a m-r-15" @click="buttonClick(dto,'confirm')" @@ -398,12 +420,13 @@ border: 2rpx solid #20613D; } } + .flower-info { padding: 0rpx; - + background: #FFFFFF; border-radius: 8rpx; - + .supplier-name { border-bottom: 2rpx solid #EEEEEE; font-weight: 600; @@ -411,7 +434,7 @@ color: #000000; padding-bottom: 10rpx; line-height: 40rpx; - + .icon-dp { width: 27rpx; height: 27rpx; @@ -419,13 +442,13 @@ vertical-align: middle; } } - + .title { font-weight: 600; font-size: 28rpx; color: #000000; line-height: 40rpx; - + .level { font-weight: 400; font-size: 28rpx; @@ -434,19 +457,19 @@ margin-right: 20rpx; } } - + .flower-img { width: 128rpx; height: 118rpx; min-width: 128rpx; min-height: 118rpx; } - + .each-list { display: flex; flex-wrap: wrap; margin-top: 6rpx; - + .each-item { min-width: 40%; max-width: 50%; @@ -454,7 +477,7 @@ margin-left: 0rpx; margin-right: auto; display: flex; - + .label { font-weight: 400; font-size: 24rpx; @@ -462,11 +485,11 @@ text-align: left; padding-right: 10rpx; } - + .label::after { content: ": " } - + .value { font-weight: 400; font-size: 24rpx; @@ -474,9 +497,9 @@ } } } - + } - + } diff --git a/pages/user/supplier-user.vue b/pages/user/supplier-user.vue index e8020b8..e490fb8 100644 --- a/pages/user/supplier-user.vue +++ b/pages/user/supplier-user.vue @@ -19,7 +19,7 @@ <image class="user-icon" v-if=" currentInfo.customerDTO&¤tInfo.customerDTO.cover - ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover + ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover || currentInfo.picture " :src=" currentInfo.customerDTO&¤tInfo.customerDTO.cover @@ -45,7 +45,7 @@ <view class="name" v-if="!currentInfo.id" open-type="getUserInfo" @click.stop="toCustomerLogin" style="font-size: 48rpx;margin-top: 16rpx;"> <!-- getUserProfile --> - {{ '点击登陆' }} + {{ '点击登陆/注册' }} </view> <image class="icon-setting" @click="toInfo" src="../../static/common/icon-setting.png" mode="aspectFit"> </image> @@ -181,6 +181,17 @@ </view> </view> <!-- #endif --> + <!-- #ifdef PUB_CUSTOMER --> + <view class="user-util m-t-12 flex" + v-if="(selftype==='customer'||!selftype)&¤tInfo.id&¤tInfo.customerDTO&&!currentInfo.customerDTO.partnerId" + @click="scanPartnerCode"> + <view class="title">扫码绑定合伙人</view> + <view class="right-icon"> + <uni-icons type="right"></uni-icons> + </view> + </view> + <!-- #endif --> + <view class="user-util m-t-12 flex" v-if="selftype==='supplier'" @click="goto('/sub_pages/supplier/supplier-info/supplier-info',true)"> <view class="title">店铺信息</view> @@ -188,11 +199,19 @@ <uni-icons type="right"></uni-icons> </view> </view> + <view class="user-util m-t-12 flex" @click="goto('/pages/user/user-pwd/user-pwd',true)"> <view class="title">修改密码</view> <view class="right-icon"> <uni-icons type="right"></uni-icons> </view> + </view> + <view class="user-util m-t-12 flex" v-if="currentInfo&¤tInfo.id" + @click="goto('/pages/user/user-bind-wx/user-bind-wx',true)"> + <view class="title">绑定当前微信</view> + <view class="right-icon"> + <uni-icons type="right"></uni-icons> + </view> </view> <view class="user-util m-t-12 flex" v-if="selftype==='customer'" @click="clearlogout"> <view class="title">退出登录</view> @@ -203,12 +222,13 @@ <view class="user-util m-t-12 " v-if="selftype==='supplier'||selftype==='customer' || !selftype"> <view class="title">我的客服</view> - <view class="flex"> - <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image> - <view class="name" @click="callTel"> + <view class="flex" open-type="contact"> + <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image> + <!-- @click="callTel" --> + <view class="name"> 客服电话 : <span class="topic-gray">{{ tel }}</span> </view> - <view class="right-icon" open-type="contact"> + <view class="right-icon" > <uni-icons type="right"></uni-icons> </view> </view> @@ -325,6 +345,48 @@ uni.stopPullDownRefresh() }, methods: { + async scanPartnerCode() { + await this.$message.confirm('确定要绑定合伙人吗?') + //扫二维码确认 + let that = this + uni.scanCode({ + success: async function(res) { + console.log('条码内容:' + res.result); + var dto = undefined + try { + dto = JSON.parse(res.result) + if (!!dto['userId']) { + var partnerName = dto['name'] || '' + var partnerId = dto['userId'] || '' + //调用接口绑定 + that.$message.showLoading() + const { + code, + data + } = await that.$http.request('post', '/api/customer/bind/partner', { + data: { + partnerId: partnerId + } + }) + that.$message.hideLoading() + if (code == 0) { + that.$message.showToast(`绑定合伙人${partnerName}成功`) + await this.$store.dispatch('getCurrentInfo') + + } + } else { + that.$message.showToast('二维码格式不正确扫码失败') + } + } catch (e) { + that.$message.showToast('二维码格式不正确扫码失败') + } + }, + fail() { + that.$message.showToast('扫码失败') + + } + }); + }, toInfo() { var url = '' if (this.currentInfo.id) { diff --git a/pages/user/user-bind-wx/user-bind-wx.vue b/pages/user/user-bind-wx/user-bind-wx.vue new file mode 100644 index 0000000..20e5c2c --- /dev/null +++ b/pages/user/user-bind-wx/user-bind-wx.vue @@ -0,0 +1,405 @@ +<template> + <view class="main-container login-container bg-white img100 relative" style="margin-top: 0rpx;"> + <view class="t-login top-bg m-t-20"> + <view class="login" style="padding: 40rpx;"> + <form class="cl m-t-12"> + <!-- <view class="t-a titles-top"> + <view class="title-2 text-center">绑定微信 + </view> + </view> --> + <view class="t-a input form-input"> + + + <u-input placeholder="请输入手机号" :border="false" v-model="phoneNumber"> + <template slot="suffix"> + <view class="get-code" :style="{'color':getCodeBtnColor}" @click.stop="getCode()"> + {{ getCodeText }} + </view> + </template> + </u-input> + </view> + + + <view class="t-a form-input"> + <u-input placeholder="请输入手机验证码" :border="false" v-model="smsCode"></u-input> + + </view> + + <view class="t-a form-input"> + <u-input placeholder="请输入真实姓名" :border="false" v-model="realName"></u-input> + + </view> + <view class="t-red">*提醒:未实名或者真实姓名与微信支付实名不一样,可能会导致转账失败</view> + + + <!-- <button @click="getUserProfile" open-type="getUserInfo" class="bottom-button">绑定当前微信</button> --> + <button @click="wxlogin" open-type="getUserInfo" class="bottom-button">绑定当前微信</button> + + + </form> + </view> + + </view> + </view> +</template> +<script> + export default { + + data() { + return { + + phoneNumber: '', + smsCode: '', + realName: '', + + checked: false, + loginType: 'code', //pwd和code,密码和验证码登录 + pcfvalue: undefined, + getCodeText: '获取验证码', + getCodeBtnColor: "#20613D", + getCodeisWaiting: false, + Timer: undefined, + // #ifdef PUB_SUPPLIER + apitype: 'supplier', + // #endif + // #ifdef PUB_PARTNER + apitype: 'partner', + // #endif + // #ifdef PUB_CUSTOMER + apitype: 'customer', + // #endif + // return 'loginPartner' + }; + }, + methods: { + async getCode() { + console.log('getCode') + uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。 + if (this.getCodeisWaiting) { + return; + } + if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误 + this.$message.showToast('请填写正确手机号码') + return false; + } + this.getCodeText = "发送中..." //发送验证码 + this.getCodeisWaiting = true; + this.getCodeBtnColor = "#000" //追加样式,修改颜色 + //示例用定时器模拟请求效果 + //setTimeout(()用于在指定的毫秒数后调用函数或计算表达式 + const { + code + } = await this.$http.request('post', '/api/sms/send/code', { + data: { + tel: this.phoneNumber, + userType: this.apitype.toLowerCase() + } + }) + if (code == 0) { + uni.showToast({ + title: '验证码已发送', + icon: "none" + }); + this.setTimer(); //调用定时器方法 + } else { + this.getCodeText = "获取验证码" //发送验证码 + this.getCodeisWaiting = false; + this.getCodeBtnColor = "#20613D"; + } + + }, + //setTimer: 需要每隔一段时间执行一件事的的时候就需要使用SetTimer函数 + setTimer() { + let holdTime = 60; //定义变量并赋值 + this.getCodeText = "重新获取(60)" + //setInterval()是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。 + //setInterval方法会不停地调用函数,直到 clearInterval被调用或窗口被关闭。 + this.Timer = setInterval(() => { + if (holdTime <= 0) { + this.getCodeisWaiting = false; + this.getCodeBtnColor = "#20613D"; + this.getCodeText = "获取验证码" + clearInterval(this.Timer); //清除该函数 + return; //返回前面 + } + this.getCodeText = "重新获取(" + holdTime + ")" + holdTime--; + }, 1000) + }, + async getUserProfile(e) { + const res = await wx.getUserProfile({ + desc: '用于转账实名验证', + }); + console.log('getUserProfile', res); + // this.login_Wx(res.userInfo.avatarUrl, res.userInfo.nickName) + }, + async wxlogin() { + var that = this; + + if (!that.realName) { + uni.showToast({ + title: '请输入真实姓名', + icon: 'none' + }); + return; + } + if (!that.phoneNumber) { + uni.showToast({ + title: '请输入手机号', + icon: 'none' + }); + return; + } + if (!that.smsCode) { + uni.showToast({ + title: '请输入手机验证码', + icon: 'none' + }); + return; + } + let tmp = this + wx.login({ + success: async res => { + console.log(res) + if (res.code) { + tmp.login(res.code) + } else { + tmp.$message.showToast('微信登录失败'); + } + }, + error: res => { + console.log('wx.login error', res) + tmp.$message.showToast('获取微信信息失败:' + res); + } + }); + }, + async login(wxcode) { + + + let post = { + tel: this.phoneNumber, + smsCode: this.smsCode, + userType: this.apitype, + realName: this.realName, + wxCode: wxcode, + } + this.$message.showLoading() + const resp = await this.$http.request('post', '/api/current/bind/wechat', { + data: post + }); + this.$message.hideLoading() + + if (resp.code === 0) { + this.$message.showToast('操作成功') + this.currentInfo.bindWechat = true + setTimeout(() => { + uni.navigateBack() + + }, 400) + } else { + + return; + } + + }, + + } + }; +</script> +<style lang="scss" scoped> + .form-input { + background-color: #f8f7fc; + border-radius: 50rpx; + margin-bottom: 50rpx; + border: 1px solid #e9e9e9; + + /deep/ .u-input { + padding-left: 60rpx !important; + padding-right: 40rpx !important; + } + + /deep/ input { + height: 70rpx; + line-height: 70rpx; + + } + + } +</style> +<style lang="scss" scoped> + @import '../../login/login.scss'; + + .main-container { + margin: 20px 0; + } + + .img-a { + position: absolute; + width: 100%; + top: -150rpx; + right: 0; + } + + .img-b { + position: absolute; + width: 50%; + bottom: 0; + left: -120rpx; + } + + .to-home { + margin-top: 30rpx; + font-size: 30rpx; + color: #5af; + display: flex; + flex-direction: row-reverse; + } + + .t-login { + width: 100%; + margin: 0 auto; + font-size: 28rpx; + color: #000; + } + + .t-login .bg { + width: 100%; + position: relative; + } + + .t-login .login { + width: 650rpx; + margin: 60rpx auto; + margin-top: 0rpx; + font-size: 28rpx; + color: #000; + } + + .t-login button { + font-size: 28rpx; + background: #5677fc; + color: #fff; + height: 90rpx; + line-height: 90rpx; + border-radius: 50rpx; + box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2); + } + + .t-login input { + padding: 0 20rpx 0 60rpx; + height: 90rpx; + line-height: 90rpx; + margin-bottom: 50rpx; + background: #f8f7fc; + border: 1px solid #e9e9e9; + font-size: 28rpx; + border-radius: 50rpx; + } + + .t-login .t-a { + position: relative; + + .get-code { + // position: absolute; + // right: 40rpx; + // top: 25rpx; + } + } + + .t-login .t-a .icon { + width: 40rpx; + height: 40rpx; + position: absolute; + left: 24rpx; + top: 14rpx; + margin-right: 20rpx; + } + + .t-login .t-a .line { + width: 2rpx; + height: 40rpx; + background-color: #dedede; + position: absolute; + top: 28rpx; + left: 98rpx; + } + + .t-login .t-b { + text-align: left; + font-size: 46rpx; + color: #000; + padding: 300rpx 0 30rpx 0; + font-weight: bold; + } + + .t-login .t-b2 { + text-align: left; + font-size: 32rpx; + color: #aaaaaa; + padding: 0rpx 0 120rpx 0; + } + + .t-login .t-c { + position: absolute; + right: 22rpx; + top: 22rpx; + background: #5677fc; + color: #fff; + font-size: 24rpx; + border-radius: 50rpx; + height: 50rpx; + line-height: 50rpx; + padding: 0 25rpx; + z-index: 999; + } + + .t-login .t-d { + text-align: center; + color: #999; + margin: 80rpx 0; + } + + .t-login .t-e { + text-align: center; + width: 250rpx; + margin: 80rpx auto 0; + } + + .t-login .t-g { + float: left; + width: 50%; + } + + .t-login .t-e image { + width: 50rpx; + height: 50rpx; + } + + .t-login .t-f { + text-align: center; + margin: 200rpx 0 0 0; + color: #666; + } + + .t-login .t-f text { + margin-left: 20rpx; + color: #aaaaaa; + font-size: 27rpx; + } + + // .t-login .uni-input-placeholder { + // color: #000; + // } + + .cl { + zoom: 1; + } + + .cl:after { + clear: both; + display: block; + visibility: hidden; + height: 0; + content: '\20'; + } +</style> \ No newline at end of file diff --git a/sub_pages/customer/shopping/confirm.vue b/sub_pages/customer/shopping/confirm.vue index 25ae013..777dd9a 100644 --- a/sub_pages/customer/shopping/confirm.vue +++ b/sub_pages/customer/shopping/confirm.vue @@ -205,8 +205,8 @@ </view> <view> <view class="flower-container m-t-12 br-4 p10"> - <view class="shopping-item m-b-20" v-for="(item,index) of dto.flowers" :key="index"> - <u-divider v-if="index>0"></u-divider> + <view class="shopping-item " v-for="(item,index) of dto.flowers" :key="index"> + <!-- <view class="line-gray" v-if></view> --> <view class="sup-title flex"> <image class="icon-dp img100 m-r-10" src="/static/common/icon-dp.png"></image> <view>{{ item.supplierName || '-' }}</view> @@ -352,7 +352,7 @@ background-color: #ffffff; .shopping-item { - padding: 28rpx 22rpx; + padding: 10rpx 22rpx; position: relative; .sup-title { diff --git a/sub_pages/customer/trade/list.vue b/sub_pages/customer/trade/list.vue index 19757a0..4924d66 100644 --- a/sub_pages/customer/trade/list.vue +++ b/sub_pages/customer/trade/list.vue @@ -270,11 +270,17 @@ updateValue(item, value) { // item.value = value // this.$set(item, 'value', value) - if (item.value.indexOf(value) < 0) { - item.value.push(value) + if (item.name == '优点' || item.name === '缺点') { + if (item.value.indexOf(value) < 0) { + item.value.push(value) + } else { + item.value.splice(item.value.indexOf(value), 1) + } } else { - item.value.splice(item.value.indexOf(value), 1) + //单选 + item.value = [value] } + this.$forceUpdate() }, closeParamPop() { diff --git a/sub_pages/partner/delivery/delivery-home.vue b/sub_pages/partner/delivery/delivery-home.vue index 19a83aa..4b868df 100644 --- a/sub_pages/partner/delivery/delivery-home.vue +++ b/sub_pages/partner/delivery/delivery-home.vue @@ -34,7 +34,7 @@ </view> <view class="name" v-if="!currentInfo.id" open-type="getUserInfo" @click.stop="toCustomerLogin" style="font-size: 48rpx;margin-top: 16rpx;"> - {{ '点击登陆' }} + {{ '点击登陆/注册' }} </view> <image class="icon-setting" src="../../static/common/icon-setting.png" mode="aspectFit"></image> </view> diff --git a/sub_pages/partner/partner-info/partner-info.vue b/sub_pages/partner/partner-info/partner-info.vue index c103c88..698993b 100644 --- a/sub_pages/partner/partner-info/partner-info.vue +++ b/sub_pages/partner/partner-info/partner-info.vue @@ -206,8 +206,7 @@ this.dto.city = e.detail.value[0].value if (!!e.detail.value[1]) this.dto.region = e.detail.value[1].value - } - else if(e.detail.value.length <= 3) { + } else if (e.detail.value.length <= 3) { if (!!e.detail.value[0]) this.dto.province = e.detail.value[0].value if (!!e.detail.value[1]) @@ -305,10 +304,23 @@ return } } + + if (this.dto.contactTel.length !== 11 && !this.dto.contactTel.startsWith('1')) { + this.$message.showToast(`联系方式需要为11位,且开头为1`) + return + } + if(isNaN(parseInt(this.dto.contactTel))){ + this.$message.showToast(`联系方式需要为11位手机号,格式错误`) + return + } if (this.dto.idCards.length == 0) { this.$message.showToast(`身份证信息未填写`) return } + if (this.dto.idCards.length < 2) { + this.$message.showToast(`身份证信息需要上传至少2张图片(正反面)`) + return + } await this.$message.confirm(`是否确定提交/修改信息`) if (this.source === 'step') { diff --git a/sub_pages/supplier/flower-manage/flower-add.vue b/sub_pages/supplier/flower-manage/flower-add.vue index 0fd1182..185a721 100644 --- a/sub_pages/supplier/flower-manage/flower-add.vue +++ b/sub_pages/supplier/flower-manage/flower-add.vue @@ -337,16 +337,20 @@ }, methods: { - updateValue(item, value) { - if (item.value.indexOf(value) >= 0) { - item.value.splice(item.value.indexOf(value), 1) - } else { - item.value.push(value) + updateValue(item, value) { + + if (item.name == '优点' || item.name === '缺点') { + if (item.value.indexOf(value) < 0) { + item.value.push(value) + } else { + item.value.splice(item.value.indexOf(value), 1) + } + } else { + //单选 + item.value = [value] } - // item.value = value - // this.$set(item, 'value', value) + this.$forceUpdate() - // console.log('updateValue') }, async updateSearch(search) { this.columns_categorys_search = search || '' diff --git a/sub_pages/supplier/print/print-list.vue b/sub_pages/supplier/print/print-list.vue index d7351d4..66c3832 100644 --- a/sub_pages/supplier/print/print-list.vue +++ b/sub_pages/supplier/print/print-list.vue @@ -448,34 +448,37 @@ var that = this; var command = tsc.jpPrinter.createNew() - command.setSize(48, 96) + command.setSize(48, 60) command.setGap(0) command.setCls() // command.setText(0, 30, "TSS24.BF2", 1, 1, "图片") // command.setQR(40, 120, "L", 5, "A", "www.smarnet.cc佳博智汇") - command.setText(60, 20, "TSS24.BF2", 1, 1, "单号:" + (that.item.orderNo || '-')) + // command.setText(60, 20, "TSS24.BF2", 1, 1, "单号:" + (that.item.orderNo || '-')) if (that.item.warehouseName) - command.setText(10, 60, "TSS24.BF2", 1, 1, "仓库: " + that.item.warehouseName) + command.setText(10, 20, "TSS24.BF2", 1, 1, "仓库: " + that.item.warehouseName) if (that.item.warehouseLocationCode) - command.setText(200, 60, "TSS24.BF2", 1, 1, "库位: " + that.item.warehouseLocationCode) + command.setText(200, 20, "TSS24.BF2", 1, 1, "库位: " + that.item.warehouseLocationCode) // command.setText(170, 50, "TSS24.BF2", 1, 1, "小程序测试") // command.setText(170, 90, "TSS24.BF2", 1, 1, "测试数字12345678") // command.setText(170, 120, "TSS24.BF2", 1, 1, "测试英文abcdefg") // command.setText(170, 150, "TSS24.BF2", 1, 1, "测试符号/*-+!@#$") - command.setText(10, 100, "TSS24.BF2", 1, 1, "供应商: " + (that.item.supplierName || '-')) - command.setText(10, 140, "TSS24.BF2", 1, 1, "商品名称: " + (that.item.flowerName || '-')) - command.setText(10, 180, "TSS24.BF2", 1, 1, "等级: " + (that.item.flowerLevelStr || '-')) - command.setText(200, 180, "TSS24.BF2", 1, 1, "颜色: " + (that.item.flowerColor || '-')) - command.setText(10, 220, "TSS24.BF2", 1, 1, "价格: ¥ " + (that.item.price || '-')) - command.setText(200, 220, "TSS24.BF2", 1, 1, "数目: x " + (that.item.num || '0')) - command.setText(10, 260, "TSS24.BF2", 1, 1, "规格: " + (that.item.flowerUnit || '-')) - command.setText(10, 300, "TSS24.BF2", 1, 1, "花满芫") - command.setText(170, 300, "TSS24.BF2", 1, 1, that.$util.toDateMin(new Date())) + command.setText(10, 60, "TSS24.BF2", 1, 1, "供应商: " + (that.item.supplierName || '-')) + command.setText(10, 100, "TSS24.BF2", 1, 1, "商品名称: " + (that.item.flowerName || '-')) + command.setText(10, 140, "TSS24.BF2", 1, 1, "等级: " + (that.item.flowerLevelStr || '-')) + command.setText(200, 140, "TSS24.BF2", 1, 1, "颜色: " + (that.item.flowerColor || '-')) + // command.setText(10, 220, "TSS24.BF2", 1, 1, "价格: ¥ " + (that.item.price || '-')) + command.setText(10, 180, "TSS24.BF2", 1, 1, "规格: " + (that.item.flowerUnit || '-')) + command.setText(200, 180, "TSS24.BF2", 1, 1, "数目: x " + (that.item.num || '0')) + // command.setText(10, 300, "TSS24.BF2", 1, 1, "花满芫") + command.setText(100, 220, "TSS24.BF2", 1, 1, that.$util.toDateMin(new Date())) if (that.item.params) { var addnum = 0 - var hlen = 300 + var hlen = 220 for (var p of that.item.params) { + if (p.name !== '枝长' && p.name !== '成熟度') { + continue + } if (p.value) { var lef = 10 if (addnum % 2 == 1) { diff --git a/sub_pages/supplier/supplier-info/supplier-info.vue b/sub_pages/supplier/supplier-info/supplier-info.vue index 2fe3f08..77cc38a 100644 --- a/sub_pages/supplier/supplier-info/supplier-info.vue +++ b/sub_pages/supplier/supplier-info/supplier-info.vue @@ -114,19 +114,24 @@ <view class="label required">选择审核方式</view> <view class="m-l-a m-r-0 flex"> - <u-radio-group v-model="dto.idcardType" placement="row"> + <!-- <u-radio-group v-model="dto.idcardType" placement="row"> <u-radio :customStyle="{'margin-bottom': '8px','margin-right': '8px','font-size':'28rpx'}" v-for="(item, index) in shTypeList" :key="index" :label="item.name" :name="item.name"> </u-radio> - </u-radio-group> + </u-radio-group> --> + <view> + <radio :checked="dto.idcardType==='身份证'" @click="dto.idcardType='身份证'"> + </radio>身份证 + </view> + <view> + <radio :checked="dto.idcardType==='营业执照'" @click="dto.idcardType='营业执照'"> + </radio>营业执照 + </view> </view> </view> <view class="form-item bottom-border-no before-line m-t-20 p-b-20" v-if="dto.idcardType=='身份证'"> <view class="label required">身份证正反面</view> <view class="m-l-a m-r-0 flex"> - <!-- <view class="component-button-upload m-r-15" @click="uploadIcon('idCards')"> - - </view> --> <view class="component-button-upload" @click="uploadIcon('idCards')"> </view> @@ -162,9 +167,16 @@ - <view class="button-green-1 m-t-20 button-fixed-bottom before-line " @click="submit"> + <view class="button-green-1 m-t-20 button-fixed-bottom before-line " style="font-size: 22rpx;" + v-if="currentInfo.supplierDTO&¤tInfo.supplierDTO.status==='P'"> + 审核已通过,若修改信息请联系客服 + </view> + + <view class="button-green-1 m-t-20 button-fixed-bottom before-line " v-else @click="submit"> 提交审核 </view> + + </view> @@ -318,7 +330,7 @@ this.dto.city = e.detail.value[0].value if (!!e.detail.value[1]) this.dto.region = e.detail.value[1].value - }else if(e.detail.value.length <= 3) { + } else if (e.detail.value.length <= 3) { if (!!e.detail.value[0]) this.dto.province = e.detail.value[0].value if (!!e.detail.value[1]) @@ -444,10 +456,22 @@ return } } + if (this.dto.contactTel.length !== 11 && !this.dto.contactTel.startsWith('1')) { + this.$message.showToast(`联系方式需要为11位,且开头为1`) + return + } + if (isNaN(parseInt(this.dto.contactTel))) { + this.$message.showToast(`联系方式需要为11位手机号,格式错误`) + return + } if (this.dto.idcardType == '身份证' && this.dto.idCards.length == 0) { this.$message.showToast(`${this.dto.idcardType}信息未填写`) return } + if (this.dto.idcardType == '身份证' && this.dto.idCards.length < 2) { + this.$message.showToast(`${this.dto.idcardType}信息未填写完整,至少上传两张图片(正反面)`) + return + } if (this.dto.idcardType !== '身份证' && this.dto.pictures.length == 0) { this.$message.showToast(`${this.dto.idcardType}信息未填写`) return -- Gitblit v1.9.3