xuxueyang
2024-07-29 33988b65f7818207e4cf2686cb9be46e3976958c
update 售后、合伙人绑定二维码
已修改8个文件
已重命名2个文件
已添加1个文件
1578 ■■■■■ 文件已修改
manifest.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/supplier-reg.vue 1054 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/order-detail.vue 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/order-sale/order-sale-detail.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/order-sale/order-sale.vue 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/order/order.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/supplier-user.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/customer-info/customer-info.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/partner/partner-info/partner-code.vue 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/supplier/flower-manage/flower-add.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json
@@ -49,7 +49,7 @@
    "quickapp" : {},
    /* 快应用特有相关 */
    "mp-weixin" : {
        "appid" : "wx1441324401626290",
        "appid" : "wx3203fd935a6ffe09",
        "setting" : {
            "urlCheck" : false,
            "es6" : true,
pages.json
@@ -115,6 +115,19 @@
            "style": {
                "navigationBarTitleText": "订单列表"
            }
        },
        {
            "path": "pages/order/order-sale/order-sale",
            "style": {
                "navigationBarTitleText": "售后理赔",
                "enablePullDownRefresh": true
            }
        },
        {
            "path": "pages/order/order-sale/order-sale-detail",
            "style": {
                "navigationBarTitleText": "理赔单详情"
            }
        }
    ],
    "subPackages": [{
@@ -167,26 +180,12 @@
                        "enablePullDownRefresh": true
                    }
                },
                {
                    "path": "order-sale/order-sale",
                    "path": "order-settlement/order-settlement-detail",
                    "style": {
                        "navigationBarTitleText": "售后理赔",
                        "enablePullDownRefresh": true
                        "navigationBarTitleText": "结算单详情"
                    }
                },
                {
                    "path" : "order-settlement/order-settlement-detail",
                    "style" :
                    {
                        "navigationBarTitleText" : "结算单详情"
                    }
                },
                {
                    "path": "order-sale/order-sale-detail",
                    "style" :
                    {
                        "navigationBarTitleText" : "理赔单详情"
                    }
                }
                // #endif
            ]
@@ -201,7 +200,15 @@
                        "navigationBarTitleText": "信息维护",
                        "enablePullDownRefresh": false
                    }
                },
                },
                {
                    "path": "partner-info/partner-code",
                    "style": {
                        "navigationBarTitleText": "二维码",
                        "enablePullDownRefresh": false
                    }
                },
                {
                    "path": "order-manage/order-manage",
                    "style": {
pages/login/supplier-reg.vue
@@ -1,593 +1,627 @@
<template>
  <view>
    <view v-if="source==='step'" style="padding: 20rpx 0rpx;color: red;;background-color: #e6e6e6;">
      <!-- #ifdef PUB_PARTNER -->
      <view style="padding: 20rpx;text-align: center;background-color: #fff;">仅限花满芫合伙人入驻</view>
      <!-- #endif -->e
    <view>
        <view v-if="source==='step'" style="padding: 20rpx 0rpx;color: red;;background-color: #e6e6e6;">
            <!-- #ifdef PUB_PARTNER -->
            <view style="padding: 20rpx;text-align: center;background-color: #fff;">仅限花满芫合伙人入驻</view>
            <!-- #endif -->e
      <view v-if="source==='step'" class="" style="background-color:#ffffff;padding: 20rpx;padding-top: 60rpx;">
        <u-steps current="1">
          <u-steps-item title="信息填写" class="u-steps-item">
          </u-steps-item>
          <u-steps-item title="提交申请" class="u-steps-item"></u-steps-item>
        </u-steps>
      </view>
    </view>
            <view v-if="source==='step'" class="" style="background-color:#ffffff;padding: 20rpx;padding-top: 60rpx;">
                <u-steps current="1">
                    <u-steps-item title="信息填写" class="u-steps-item">
                    </u-steps-item>
                    <u-steps-item title="提交申请" class="u-steps-item"></u-steps-item>
                </u-steps>
            </view>
        </view>
    <view class="main-container login-container img100 relative" style="margin-top: 0rpx;">
      <image class="component-bg"
             src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a5/a54508de179a4942918ecb2c5a4aa9f5bg.png"
             mode="scaleToFill"/>
        <view class="main-container login-container img100 relative" style="margin-top: 0rpx;">
            <image class="component-bg"
                src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/a5/a54508de179a4942918ecb2c5a4aa9f5bg.png"
                mode="scaleToFill" />
      <view class="t-login top-bg">
            <view class="t-login top-bg">
        <view class="nav-title" v-if="source!=='step'" :style="{'padding-top':source==='step'?'60rpx':'unset'
                <view class="nav-title" v-if="source!=='step'" :style="{'padding-top':source==='step'?'60rpx':'unset'
                ,'padding-bottom':source==='step'?'80rpx':'unset'}">
          <view>
            注册
          </view>
        </view>
        <view class="login" style="padding-top: 40rpx;">
          <form class="cl">
            <view class="t-a titles-top">
              <view class="title-1">HELLO</view>
              <view class="title-2">欢迎入驻<span class="title-3">花满芫</span></view>
            </view>
                    <view>
                        注册
                    </view>
                </view>
                <view class="login" style="padding-top: 40rpx;">
                    <form class="cl">
                        <view class="t-a titles-top">
                            <view class="title-1">HELLO</view>
                            <view class="title-2">欢迎入驻<span class="title-3">花满芫</span></view>
                        </view>
            <view class="t-a form-input" v-if="loginType=='code'">
              <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 class="t-a form-input" v-if="loginType=='code'">
                            <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>
              <!-- <u-input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber"
                            <!-- <u-input type="text" name="userName" placeholder="请输入手机号" v-model="phoneNumber"
              style="position: relative;z-index: 1;" /> -->
            </view>
                        </view>
            <view class="t-a form-input" v-if="loginType=='code'">
              <!--         <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode"
                        <view class="t-a form-input" v-if="loginType=='code'">
                            <!--         <input type="text" name="userName" placeholder="请输入手机验证码" v-model="smsCode"
              style="position: relative;z-index: 1;" /> -->
              <u-input placeholder="请输入手机验证码" :border="false" v-model="smsCode"></u-input>
                            <u-input placeholder="请输入手机验证码" :border="false" v-model="smsCode"></u-input>
            </view>
            <view class="t-a form-input" v-if="loginType=='code'">
              <!-- <input type="text" :password="true" name="password" placeholder="请输入密码" v-model="password" /> -->
                        </view>
                        <view class="t-a form-input" v-if="loginType=='code'">
              <u-input :password="true" :border="false" placeholder="请输入密码" v-model="password"></u-input>
            </view>
                            <u-input :password="true" :border="false" placeholder="请输入密码" v-model="password"></u-input>
                        </view>
            <!-- #ifndef PUB_CUSTOMER -->
            <button @tap="reg('')" class="bottom-button">注 册</button>
                        <!-- #ifndef PUB_CUSTOMER -->
                        <button @tap="reg('')" class="bottom-button">注 册</button>
            <!-- #endif -->
            <!-- #ifdef PUB_CUSTOMER -->
            <!--            open-type="getUserInfo"-->
            <button @tap="wxreg('')" class="bottom-button">注 册</button>
                        <!-- #endif -->
                        <!-- #ifdef PUB_CUSTOMER -->
                        <!--            open-type="getUserInfo"-->
                        <button @tap="wxreg('')"
                            class="bottom-button">注册,{{!partnerId?'未绑定合伙人':`已绑定${partnerName}`}}</button>
            <!-- #endif -->
                        <!-- #endif -->
            <view class="flex">
              <view class="topic-font m-l-0 m-r-a" @click="backInfoPage" v-if="source==='step'">返回上一步
              </view>
              <view class="topic-font m-l-a m-r-0" @click="toLogin">前往登录</view>
                        <view class="flex">
                            <view class="topic-font m-l-0 m-r-a" @click="backInfoPage" v-if="source==='step'">返回上一步
                            </view>
                            <!-- #ifdef PUB_CUSTOMER -->
                            <view class="topic-font m-l-a m-r-a" @click="scanPartnerCode" v-if="source==='step'">扫码绑定合伙人
                            </view>
                            <!-- #endif -->
                            <view class="topic-font m-l-a m-r-0" @click="toLogin">前往登录</view>
            </view>
            <view class="flex flex-wrap-normal"
                  style="position: fixed;bottom: 40rpx;left: 40rpx;right: 40rpx;" v-if="false">
              <view :style="{'margin-top': '8rpx','margin-right': '12rpx','font-size':'24rpx'}"
                    @click="protocal=!protocal" class="component-radio" :class="[protocal?'cur':'']">
                        </view>
                        <view class="flex flex-wrap-normal"
                            style="position: fixed;bottom: 40rpx;left: 40rpx;right: 40rpx;" v-if="false">
                            <view :style="{'margin-top': '8rpx','margin-right': '12rpx','font-size':'24rpx'}"
                                @click="protocal=!protocal" class="component-radio" :class="[protocal?'cur':'']">
              </view>
              <view class="topic-gray" @click="toProtocol">请仔细阅读《花满芫合伙人供应商入口小程序隐私保护指引》如您同意该指引,请勾选开始使用本小程序
              </view>
            </view>
          </form>
        </view>
      </view>
    </view>
  </view>
                            </view>
                            <view class="topic-gray" @click="toProtocol">请仔细阅读《花满芫合伙人供应商入口小程序隐私保护指引》如您同意该指引,请勾选开始使用本小程序
                            </view>
                        </view>
                    </form>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
// import util from '@/utils/util.js'
// import gzmzApi from '@/api/gzmzApi.js'
// import myCache from '@/utils/myCache.js'
export default {
  data() {
    return {
      openId: '-1',
    // import util from '@/utils/util.js'
    // import gzmzApi from '@/api/gzmzApi.js'
    // import myCache from '@/utils/myCache.js'
    export default {
        data() {
            return {
                openId: '-1',
      userName: '',
      password: '',
                userName: '',
                password: '',
      phoneNumber: '',
      smsCode: '',
                phoneNumber: '',
                smsCode: '',
                partnerId: '',
                partnerName: '',
                checked: false,
                loginType: 'code', //pwd和code,密码和验证码登录
                pcfvalue: undefined,
                getCodeText: '获取验证码',
                getCodeBtnColor: "#20613D",
                getCodeisWaiting: false,
                Timer: undefined,
                protocal: false,
                source: '',
                // #ifdef PUB_SUPPLIER
                apitype: 'supplier',
                // #endif
                // #ifdef PUB_PARTNER
                apitype: 'partner',
                // #endif
                // #ifdef PUB_CUSTOMER
                apitype: 'customer',
                // #endif
      checked: false,
      loginType: 'code', //pwd和code,密码和验证码登录
      pcfvalue: undefined,
      getCodeText: '获取验证码',
      getCodeBtnColor: "#20613D",
      getCodeisWaiting: false,
      Timer: undefined,
      protocal: false,
      source: '',
      // #ifdef PUB_SUPPLIER
      apitype: 'supplier',
      // #endif
      // #ifdef PUB_PARTNER
      apitype: 'partner',
      // #endif
      // #ifdef PUB_CUSTOMER
      apitype: 'customer',
      // #endif
            };
        },
        onLoad(options) {
            this.source = options.source || ''
        },
        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']) {
                                that.partnerName = dto['name'] || ''
                                that.partnerId = dto['userId'] || ''
                                that.$message.showToast(`绑定合伙人${that.partnerName}成功`)
                            } else {
                                that.$message.showToast('二维码格式不正确扫码失败')
                            }
                        } catch (e) {
                            that.$message.showToast('二维码格式不正确扫码失败')
                        }
                    },
                    fail() {
                        that.$message.showToast('扫码失败')
    };
  },
  onLoad(options) {
    this.source = options.source || ''
  },
  methods: {
    backInfoPage() {
      console.log('backInfoPage')
      uni.navigateBack()
    },
    toProtocol() {
      uni.navigateTo({
        url: '/sub_pages/supplier/protocol'
      })
    },
    async getCode() {
      // await this.$message.confirm('是否同意入驻协议')
      // this.protocal = true
      console.log('getCode')
      setTimeout(() => {
        uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
      }, 200)
                    }
                });
      if (this.getCodeisWaiting) {
        return;
      }
      if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误
        uni.showToast({
          title: '请填写正确手机号码',
          icon: "none"
        });
        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
        }
      })
      if (code === 0) {
        uni.showToast({
          title: '验证码已发送',
          icon: "none"
        });
        this.setTimer(); //调用定时器方法
      } else {
        this.getCodeText = "获取验证码" //发送验证码
        this.getCodeisWaiting = false;
        this.getCodeBtnColor = "#20613D";
      }
      // setTimeout(() => {
      //     //弹出提示框
      //     //示例默认1234,生产中请删除这一句。
      //     // this.code = '1234'; //发送验证码,进行填入
            },
            backInfoPage() {
                console.log('backInfoPage')
                uni.navigateBack()
            },
            toProtocol() {
                uni.navigateTo({
                    url: '/sub_pages/supplier/protocol'
                })
            },
            async getCode() {
                // await this.$message.confirm('是否同意入驻协议')
                // this.protocal = true
                console.log('getCode')
                setTimeout(() => {
                    uni.hideKeyboard() //隐藏已经显示的软键盘,如果软键盘没有显示则不做任何操作。
                }, 200)
      // }, 1000)
    },
    //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)
    },
    toLogin() {
      uni.redirectTo({
        url: '/pages/login/supplier-login'
      })
                if (this.getCodeisWaiting) {
                    return;
                }
                if (!(/^1(3|4|5|6|7|8|9)\d{9}$/.test(this.phoneNumber))) { //校验手机号码是否有误
                    uni.showToast({
                        title: '请填写正确手机号码',
                        icon: "none"
                    });
                    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
                    }
                })
                if (code === 0) {
                    uni.showToast({
                        title: '验证码已发送',
                        icon: "none"
                    });
                    this.setTimer(); //调用定时器方法
                } else {
                    this.getCodeText = "获取验证码" //发送验证码
                    this.getCodeisWaiting = false;
                    this.getCodeBtnColor = "#20613D";
                }
                // setTimeout(() => {
                //     //弹出提示框
                //     //示例默认1234,生产中请删除这一句。
                //     // this.code = '1234'; //发送验证码,进行填入
    },
    changeAll(e) {
      this.pcfvalue = e.detail.value[0]
    },
    // async wxreg(e) {
    //   wx.login({
    //     success: async res => {
    //       if (res.code) {
    //
    //       }
    //     },
    //     fail() {
    //       this.$message.showToast('获取微信信息失败')
    //     }
    //   })
    // },
    wxreg(e) {
      let tmp = this
      wx.login({
        success: async res => {
          console.log(res)
          if (res.code) {
            tmp.reg(res.code)
          } else {
            tmp.$message.showToast('微信登录失败');
          }
        },
        error: res => {
          console.log('wx.login error', res)
          tmp.$message.showToast('获取微信信息失败:' + res);
        }
      });
    },
    async reg(wxcode) {
      // console.log('e', e)
      // this.$message.showLoading()
      // const res = await wx.getUserProfile({
      //   desc: '用于完善会员资料',
      // });
      // console.log(res);
      // this.$message.hideLoading()
                // }, 1000)
            },
            //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)
            },
            toLogin() {
                uni.redirectTo({
                    url: '/pages/login/supplier-login'
                })
      uni.showLoading({
        title: '登陆中'
      });
      var that = this;
      if (!that.phoneNumber) {
        uni.showToast({
          title: '请输入手机号',
          icon: 'none'
        });
        return;
      }
      if (!that.smsCode) {
        uni.showToast({
          title: '请输入手机验证码',
          icon: 'none'
        });
        return;
      }
      if (!that.password) {
        uni.showToast({
          title: '请输入密码',
          icon: 'none'
        });
        return;
      }
      // if (this.pcfvalue == undefined) {
      //     util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
      //     return;
      // }
      let post = {
        tel: this.phoneNumber,
        smsCode: this.smsCode,
        password: this.password,
        type: this.apitype
        // openId: '123456789'
      }
      if (this.source === 'step') {
        var tjson = ''
        // #ifdef PUB_PARTNER
        tjson = this.$storage.getItem('cache_partner_info')
        // #endif
        // #ifdef PUB_CUSTOMER
        tjson = this.$storage.getItem('cache_customer_info')
        // #endif
            },
            changeAll(e) {
                this.pcfvalue = e.detail.value[0]
            },
            // async wxreg(e) {
            //   wx.login({
            //     success: async res => {
            //       if (res.code) {
            //
            //       }
            //     },
            //     fail() {
            //       this.$message.showToast('获取微信信息失败')
            //     }
            //   })
            // },
            wxreg(e) {
                let tmp = this
                wx.login({
                    success: async res => {
                        console.log(res)
                        if (res.code) {
                            tmp.reg(res.code)
                        } else {
                            tmp.$message.showToast('微信登录失败');
                        }
                    },
                    error: res => {
                        console.log('wx.login error', res)
                        tmp.$message.showToast('获取微信信息失败:' + res);
                    }
                });
            },
            async reg(wxcode) {
                // console.log('e', e)
                // this.$message.showLoading()
                // const res = await wx.getUserProfile({
                //   desc: '用于完善会员资料',
                // });
                // console.log(res);
                // this.$message.hideLoading()
        if (!tjson) {
          this.$message.showToast('没有填写用户信息请返回重新填写')
          return
        }
        var dto = JSON.parse(tjson)
        post.dto = dto
      }
      post.wxcode = wxcode
                uni.showLoading({
                    title: '登陆中'
                });
                var that = this;
                if (!that.phoneNumber) {
                    uni.showToast({
                        title: '请输入手机号',
                        icon: 'none'
                    });
                    return;
                }
                if (!that.smsCode) {
                    uni.showToast({
                        title: '请输入手机验证码',
                        icon: 'none'
                    });
                    return;
                }
                if (!that.password) {
                    uni.showToast({
                        title: '请输入密码',
                        icon: 'none'
                    });
                    return;
                }
                // if (this.pcfvalue == undefined) {
                //     util.showMyToast('必须勾选《用户服务协议》及《隐私政策》');
                //     return;
                // }
                let post = {
                    tel: this.phoneNumber,
                    smsCode: this.smsCode,
                    password: this.password,
                    type: this.apitype
                    // openId: '123456789'
                }
                if (this.source === 'step') {
                    var tjson = ''
                    // #ifdef PUB_PARTNER
                    tjson = this.$storage.getItem('cache_partner_info')
                    // #endif
                    // #ifdef PUB_CUSTOMER
                    tjson = this.$storage.getItem('cache_customer_info')
                    // #endif
      // const {
      // code
      // } = await this.$http.request('get', '/api/login/admin')
      const resp = await this.$store.dispatch('regUser', post);
      // uni.hideLoading()
                    if (!tjson) {
                        this.$message.showToast('没有填写用户信息请返回重新填写')
                        return
                    }
                    var dto = JSON.parse(tjson)
                    dto.partnerId = this.partnerId || undefined
                    post.dto = dto
                }
                post.wxcode = wxcode
      if (resp.code === 0) {
                // const {
                // code
                // } = await this.$http.request('get', '/api/login/admin')
                const resp = await this.$store.dispatch('regUser', post);
                // uni.hideLoading()
        // myCache.cache("userToken", res.data.accessToken)
        // let userRes = await gzmzApi.getMemberInfo();
        // if (userRes.status) {
        //     myCache.cache("userInfo", JSON.stringify(userRes.data))
        // }
        uni.showToast({
          title: '注册成功!',
          icon: 'none'
        });
        setTimeout(() => {
          this.toLogin()
        }, 1000);
        // if (this.source == 'step') {
        //     // cache_partner_info
        //     var tjson = this.$storage.getItem('cache_partner_info')
        //     if (tjson) {
        //         var dto = JSON.parse(tjson)
                if (resp.code === 0) {
                    // myCache.cache("userToken", res.data.accessToken)
                    // let userRes = await gzmzApi.getMemberInfo();
                    // if (userRes.status) {
                    //     myCache.cache("userInfo", JSON.stringify(userRes.data))
                    // }
                    uni.showToast({
                        title: '注册成功!',
                        icon: 'none'
                    });
                    setTimeout(() => {
                        this.toLogin()
                    }, 1000);
                    // if (this.source == 'step') {
                    //     // cache_partner_info
                    //     var tjson = this.$storage.getItem('cache_partner_info')
                    //     if (tjson) {
                    //         var dto = JSON.parse(tjson)
        //         this.$message.showLoading()
        //         const re = await this.$http.request('post', '/api/partner/addOrUpdate', {
        //             data: dto
        //         })
        //         this.$message.hideLoading()
        //         if (re.code == 2000 || re.code == 0) {
        //             this.$storage.removeItem('cache_partner_info')
                    //         this.$message.showLoading()
                    //         const re = await this.$http.request('post', '/api/partner/addOrUpdate', {
                    //             data: dto
                    //         })
                    //         this.$message.hideLoading()
                    //         if (re.code == 2000 || re.code == 0) {
                    //             this.$storage.removeItem('cache_partner_info')
        //             this.toLogin()
        //         } else {
        //             this.$message.showToast('合伙人信息失效,请登录后重新填写提交审核')
        //             setTimeout(() => {
        //                 this.toLogin()
        //             }, 1000);
        //         }
                    //             this.toLogin()
                    //         } else {
                    //             this.$message.showToast('合伙人信息失效,请登录后重新填写提交审核')
                    //             setTimeout(() => {
                    //                 this.toLogin()
                    //             }, 1000);
                    //         }
        //     } else {
        //         this.$message.showToast('合伙人信息失效,请登录后重新填写提交审核')
        //         setTimeout(() => {
        //             this.toLogin()
        //         }, 1000);
        //     }
                    //     } else {
                    //         this.$message.showToast('合伙人信息失效,请登录后重新填写提交审核')
                    //         setTimeout(() => {
                    //             this.toLogin()
                    //         }, 1000);
                    //     }
        // } else {
        //     setTimeout(() => {
        //         this.toLogin()
        //     }, 1000);
        // }
                    // } else {
                    //     setTimeout(() => {
                    //         this.toLogin()
                    //     }, 1000);
                    // }
      } else {
        // uni.showToast({
        //     title: '登录失败!',
        //     icon: 'none'
        // });
        return
      }
                } else {
                    // uni.showToast({
                    //     title: '登录失败!',
                    //     icon: 'none'
                    // });
                    return
                }
    },
    tc1(id) {
      uni.navigateTo({
        url: '/pages/users/xieyi?id=' + id,
      });
    }
  }
};
            },
            tc1(id) {
                uni.navigateTo({
                    url: '/pages/users/xieyi?id=' + id,
                });
            }
        }
    };
</script>
<style lang="scss" scoped>
.form-input {
  background-color: #f8f7fc;
  border-radius: 50rpx;
  margin-bottom: 50rpx;
  border: 1px solid #e9e9e9;
    .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/ .u-input {
            padding-left: 60rpx !important;
            padding-right: 40rpx !important;
        }
  /deep/ input {
    height: 70rpx;
    line-height: 70rpx;
        /deep/ input {
            height: 70rpx;
            line-height: 70rpx;
  }
        }
}
    }
</style>
<style lang="scss" scoped>
@import '@/pages/login/login.scss';
    @import '@/pages/login/login.scss';
.main-container {
  margin: 20px 0;
}
    .main-container {
        margin: 20px 0;
    }
.img-a {
  position: absolute;
  width: 100%;
  top: -150rpx;
  right: 0;
}
    .img-a {
        position: absolute;
        width: 100%;
        top: -150rpx;
        right: 0;
    }
.img-b {
  position: absolute;
  width: 50%;
  bottom: 0;
  left: -120rpx;
}
    .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;
}
    .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 {
        width: 100%;
        margin: 0 auto;
        font-size: 28rpx;
        color: #000;
    }
.t-login .bg {
  width: 100%;
  position: relative;
}
    .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 .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 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 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;
    .t-login .t-a {
        position: relative;
  .get-code {
    // position: absolute;
    // right: 0rpx;
    // top: 0rpx;
    // z-index: 99;
    // padding-top: 25rpx;
    // bottom: 0;
    // padding-right: 40rpx;
    // padding-left: 20rpx;
  }
}
        .get-code {
            // position: absolute;
            // right: 0rpx;
            // top: 0rpx;
            // z-index: 99;
            // padding-top: 25rpx;
            // bottom: 0;
            // padding-right: 40rpx;
            // padding-left: 20rpx;
        }
    }
.t-login .t-a .icon {
  width: 40rpx;
  height: 40rpx;
  position: absolute;
  left: 24rpx;
  top: 14rpx;
  margin-right: 20rpx;
}
    .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-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-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-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-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-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-e {
        text-align: center;
        width: 250rpx;
        margin: 80rpx auto 0;
    }
.t-login .t-g {
  float: left;
  width: 50%;
}
    .t-login .t-g {
        float: left;
        width: 50%;
    }
.t-login .t-e image {
  width: 50rpx;
  height: 50rpx;
}
    .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-align: center;
        margin: 200rpx 0 0 0;
        color: #666;
    }
.t-login .t-f text {
  margin-left: 20rpx;
  color: #aaaaaa;
  font-size: 27rpx;
}
    .t-login .t-f text {
        margin-left: 20rpx;
        color: #aaaaaa;
        font-size: 27rpx;
    }
.t-login .uni-input-placeholder {
  color: #000;
}
    .t-login .uni-input-placeholder {
        color: #000;
    }
.cl {
  zoom: 1;
}
    .cl {
        zoom: 1;
    }
.cl:after {
  clear: both;
  display: block;
  visibility: hidden;
  height: 0;
  content: '\20';
}
    .cl:after {
        clear: both;
        display: block;
        visibility: hidden;
        height: 0;
        content: '\20';
    }
</style>
pages/order/order-detail.vue
@@ -4,6 +4,8 @@
            return {
                id: '',
                dto: {},
                showSales: false,
                submitForm: {},
                type: '',
                // #ifdef PUB_CUSTOMER
                type: 'customer',
@@ -106,7 +108,7 @@
                    }
                    break
                    case 'payAgain': {
                        await this.$message.confirm('是否确定重新')
                        await this.$message.confirm('是否确定重新支付')
                        // 发送请求
                        this.$message.showLoading()
                        const {
@@ -143,7 +145,7 @@
                    case 'evaluate': {
                        const res = await this.$message.confirm('', {
                            editable: true,
                            title:'请输入评价信息'
                            title: '请输入评价信息'
                        })
                        if (res.content && res.confirm) {
                            // 发送请求
@@ -163,20 +165,127 @@
                        }
                    }
                    break
                    case 'couldRefund': {
                    case 'sales': {
                        //新增售后单
                        //去新的页面加上这些选择?
                        this.submitForm = {
                            orderId: this.id,
                            imageList: [],
                            videoList: [],
                            reason: [],
                            orderItems: [],
                        }
                        this.showSales = true
                    }
                    default:
                        break
                }
            }
            },
            changeSalesOrderItem(dto) {
                if (this.submitForm.orderItems.indexOf(dto.id) < 0) {
                    this.submitForm.orderItems.push(dto.id)
                } else {
                    this.submitForm.orderItems.splice(this.submitForm.orderItems.indexOf(dto.id), 1)
                }
            },
            deleteCheckImage(key, index) {
                this.submitForm[key].splice(index, 1)
                this.$forceUpdate()
            },
            uploadIcon(key) {
                console.log('that dto key', key)
                const that = this
                if (key === 'video') {
                    uni.chooseVideo({
                        maxDuration: 30,
                        sourceType: ['camera', 'album'],
                        success: function(res) {
                            if (res.size > 1024 * 1024 * 50) {
                                that.$message.confirm('视频最多支持50M大小,超出大小限制')
                                return
                            }
                            if (res.tempFilePath) {
                                console.log('res.tempFilePath', res.tempFilePath)
                                that.$message.showLoading()
                                that.$http.upload(res.tempFilePath).then(async res => {
                                    var pic = res.data && res.data.length > 0 && res.data[
                                            0]
                                        .url || ''
                                    that.$message.hideLoading()
                                    that.submitForm.videoList.push(pic || '')
                                    that.$forceUpdate()
                                }).catch(res => {
                                    that.$message.hideLoading()
                                    console.error(res)
                                })
                            }
                        }
                    });
                } else {
                    uni.chooseImage({
                        count: 1, // 最多可以选择的图片张数,默认9
                        sizeType: ['compressed'], //original 原图,compressed 压缩图,默认二者都有
                        sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
                        success: function(res) {
                            let errMsg = res.errMsg
                            let tempFiles = res.tempFiles
                            if (errMsg === 'chooseImage:ok') {
                                // console.log(tempFiles[0])
                                if (tempFiles[0].size > 1024 * 1024 * 5) {
                                    that.$message.confirm('图片最多支持5M大小,超出大小限制')
                                    return
                                }
                                that.$message.showLoading()
                                that.$http.upload(tempFiles[0].path).then(async res => {
                                    console.log('res1', res)
                                    var pic = res.data && res.data.length > 0 && res.data[
                                            0]
                                        .url || ''
                                    that.$message.hideLoading()
                                    that.submitForm.imageList.push(pic)
                                    that.$forceUpdate()
                                }).catch(res => {
                                    that.$message.hideLoading()
                                    console.error(res)
                                })
                            }
                        }
                    })
                }
            },
            async submitSales() {
                if (this.submitForm.orderItems.length < 1) {
                    this.$message.showToast('未选择需要售后的商品')
                    return
                }
                await this.$message.confirm('确定申请售后吗')
                this.$message.showLoading()
                const {
                    code,
                    data
                } = await this.$http.request('post', '/api/customer/sales/add', {
                    data: {
                        ...this.submitForm
                    }
                })
                this.$message.hideLoading()
                if (code == 0) {
                    this.$message.showToast('提交成功')
                    this.showSales = false
                }
            },
        },
    }
</script>
<template>
    <view class="order-detail-page">
        <view class="top-tip flex ">
        <view class="top-tip flex " v-if="!showSales">
            <image src="/static/common/icon-order-status-SEND.png" class="icon-car m-r-6 img100"></image>
            <view>
                <view>{{
@@ -189,10 +298,10 @@
                <view class="desc-gray">支付时间:{{dto.paymentTime}}</view>
            </view>
        </view>
        <view class="address-container bg-white br-4 m-t-12">
        <view class="address-container bg-white br-4 m-t-12" v-if="!showSales">
            <view class="flex">
                <image src="/static/common/icon-loc.png" class="image  m-r-10"></image>
                <view class="info">
                    <view class="title">
                        {{ dto.customer }}
@@ -208,6 +317,8 @@
                {{ item.supplierName }}
            </view>
            <view class="flex m-t-12">
                <radio :checked="submitForm.orderItems.indexOf(item.id)>=0" @click="changeSalesOrderItem(item)"></radio>
                <image class="flower-img img100 m-r-6" :src="item.flowerCover" @click="previewImg(item.flowerCover)">
                </image>
                <view class="flex1">
@@ -215,9 +326,6 @@
                        <view class="title"><span class="level">{{ item.flowerCategory }}</span><span
                                class="level">{{ item.flowerLevelStr }}</span>{{ item.flowerName }}
                        </view>
                        <!--            <view class="m-l-a m-r-0">-->
                        <!--              {{item.flowerCategory || '-'}}-->
                        <!--            </view>-->
                    </view>
                    <view class="each-list">
                        <view class="each-item">
@@ -248,7 +356,7 @@
            </view>
        </view>
        <view class="info-container bg-white br-4">
        <view class="info-container bg-white br-4" v-if="!showSales">
            <view class="form-item">
                <view class="label">订单编号:</view>
                <view class="value">{{ dto.orderNo || '-' }}</view>
@@ -302,7 +410,7 @@
                <view class="value">{{ dto.remarks || '-' }}</view>
            </view>
        </view>
        <view class="info-container bg-white br-4 m-t-12">
        <view class="info-container bg-white br-4 m-t-12" v-if="!showSales">
            <view class="form-item">
                <view class="label">订单金额:</view>
                <view class="value">{{ dto.totalAmount || '-' }}</view>
@@ -322,7 +430,7 @@
        </view>
        <view class="info-container bg-white br-4 m-t-12">
        <view class="info-container bg-white br-4 m-t-12" v-if="!showSales">
            <view class="icon-view">
                <image src="/static/common/icon-kf.png" class="icon-kf m-r-10 img100 icon"></image>
                我的客服
@@ -339,11 +447,54 @@
            </view>
        </view>
        <view class="info-container form bg-white br-4 m-t-12" v-if="showSales">
            <!-- 表单更新 -->
            <view class="form-item">
                <view class="form-item-label">
                    理由
                </view>
                <view class="form-item-value">
                    <input v-model="submitForm.reason" clearable placeholder="请输入理由" class="form-input"></input>
                </view>
            </view>
            <view class="form-item">
                <view class="form-item-label">
                    图片
                </view>
                <view class="form-item-value m-l-a m-r-0">
                    <view class="t-red" @click="uploadIcon('image')">上传</view>
                </view>
            </view>
            <view class="flex p20" v-if="submitForm.imageList&&submitForm.imageList.length>0">
                <view class="m-t-12 m-r-10 " v-for="(timg,index) of submitForm.imageList" :key="index">
                    <image class="check-img" :src="timg" @click.stop="previewImg(timg)">
                    </image>
                    <view class="t-red text-center" @click.stop="deleteCheckImage('imageList',index)">删除</view>
                </view>
            </view>
            <view class="form-item">
                <view class="form-item-label">
                    视频
                </view>
                <view class="form-item-value m-l-a m-r-0">
                    <view class="t-red" @click="uploadIcon('video')">上传</view>
                </view>
            </view>
            <view class="flex p20" v-if="submitForm.videoList&&submitForm.videoList.length>0">
                <view class="m-t-12 m-r-10 " v-for="(timg,index) of submitForm.videoList" :key="index">
                    <video :src="timg" style="display: block;margin: 0 auto;"></video>
                    <view class="t-red text-center" @click.stop="deleteCheckImage('videoList',index)">删除</view>
                </view>
            </view>
        </view>
        <!-- #ifdef PUB_CUSTOMER -->
        <view class="button-space"></view>
        <view class="buttons-bottom flex">
        <view class="buttons-bottom flex" v-if="!showSales">
            <view class="button button-1" @click="buttonClick('refund')" v-if="dto.couldRefund">申请退款
            </view>
            <view class="button button-1" @click="buttonClick('confirm')" v-if="dto.status ==='RECEIVE'"> 确认收货
@@ -352,10 +503,18 @@
            </view>
            <view class="button button-1" @click="buttonClick('evaluate')" v-if=" dto.status === 'EVALUATE'"> 评价
            </view>
            <!--       <view class="button button-1" @click="buttonClick('couldRefund')"
            v-if="dto.couldRefund"> 退款
      </view> -->
            <view class="button button-1" @click="buttonClick('sales')"
                v-if=" dto.status === 'EVALUATE'||dto.status=='COMPLETED'"> 申请售后
            </view>
        </view>
        <view v-if="showSales">
            <view style="min-height:200rpx">
            </view>
            <view class="bottom-price flex">
                <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx" @click="submitSales">
                    提交售后申请({{submitForm.orderItems&&submitForm.orderItems.length||0}})
                </view>
            </view>
        </view>
        <!-- #endif -->
        <!--
@@ -369,6 +528,29 @@
        background: #F7F7F7;
        padding: 30rpx;
        .check-img {
            width: 96rpx;
            height: 96rpx;
            border-radius: 4rpx;
            border: 2rpx dashed #CECECE;
        }
        .bottom-price {
            position: fixed;
            background-color: #ffffff;
            left: 0rpx;
            padding: 20rpx;
            padding-bottom: 40rpx;
            right: 0rpx;
            bottom: 0rpx;
            .button-green-1 {
                min-width: 400rpx;
                padding-left: 20rpx;
                padding-right: 20rpx;
            }
        }
        .button-space {
            min-height: 140rpx;
        }
pages/order/order-sale/order-sale-detail.vue
文件名从 sub_pages/supplier/order-sale/order-sale-detail.vue 修改
@@ -11,6 +11,9 @@
                // #ifdef PUB_PARTNER
                type: 'partner',
                // #endif
                // #ifdef PUB_CUSTOMER
                type: 'customer',
                // #endif
            };
        },
        async onLoad(options) {
@@ -18,7 +21,6 @@
            this.id = options.id || ''
            if (this.id) {
                await this.getDetail()
                this.getItemList()
            }
        },
        methods: {
@@ -54,16 +56,15 @@
        <view class="address-container bg-white br-4 m-t-12">
            <view class="flex">
                <image src="/static/common/icon-loc.png" class="image  m-r-10"></image>
        <!--         <view class="icon-loc m-r-10">
                <!--         <view class="icon-loc m-r-10">
                    <image src="/static/common/icon-loc.png" class="image"></image>
                </view> -->
                <view class="info">
                    <view class="title">
                        {{ dto.customer }}
                        <view class="tel">{{ dto.customerTel }}</view>
                    </view>
                    <view class="content">{{ dto.customerAddress }}</view>
                    <view class="content">{{ dto.customerTel }}</view>
                </view>
            </view>
        </view>
@@ -72,7 +73,7 @@
                <image class="icon-dp" src="/static/common/icon-dp.png"></image>
                {{ item.supplierName }}
            </view>
            <view class="flex m-t-12">
            <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>
                <view class="flex1">
@@ -100,12 +101,12 @@
                        <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 class="each-item">
                            <view class="label">责任方</view>
@@ -154,7 +155,7 @@
            </view>
        </view>
        <view class="info-container bg-white br-4">
        <view class="info-container bg-white m-t-12 br-4">
            <view class="form-item">
                <view class="label">售后单号:</view>
@@ -275,7 +276,8 @@
        .address-container {
            padding: 28rpx;
.image {
            .image {
                // background-color: #20613D;
                border-radius: 50%;
                margin-top: 8rpx;
@@ -284,6 +286,7 @@
                height: 32rpx;
                // padding: 8rpx;
            }
            // .icon-loc {
            //     width: 48rpx;
            //     height: 48rpx;
@@ -371,8 +374,8 @@
                margin-top: 6rpx;
                .each-item {
                    min-width: 30%;
                    max-width: 40%;
                    min-width: 40%;
                    max-width: 50%;
                    text-align: center;
                    margin-left: 0rpx;
                    margin-right: auto;
pages/order/order-sale/order-sale.vue
文件名从 sub_pages/supplier/order-sale/order-sale.vue 修改
@@ -11,10 +11,10 @@
                <view class="order-sale-item br-4 list-item bg-white">
                    <view class="title flex">
                        <view>售后单号:{{item.salesNo}}</view>
                        <view class="m-l-a m-r-0 status">审核状态:{{item.auditStatusStr}}</view>
                        <view class="m-l-a m-r-0 status">审核状态:{{item.auditStatusStr||'-'}}</view>
                    </view>
                    <view class="line"></view>
                    <view class="form">
                    <view class="sale-form">
                        <view class="form-item">
                            <view class="label" @click="copyTxt(item.orderNo)">订单单号</view>
                            <view class="value">{{item.orderNo}}</view>
@@ -70,7 +70,15 @@
            }
        },
        onLoad() {
            // #ifdef PUB_SUPPLIER
            this.listApi = '/api/supplier/sales/list'
            // #endif
            // #ifdef PUB_PARTNER
            this.listApi = '/api/partner/sales/list'
            // #endif
            // #ifdef PUB_CUSTOMER
            this.listApi = '/api/customer/sales/list'
            // #endif
            this.getList()
        },
@@ -93,7 +101,7 @@
            },
            toDetail(item) {
                uni.navigateTo({
                    url: `/sub_pages/supplier/order-sale/order-sale-detail?id=${item.id}`
                    url: `/pages/order/order-sale/order-sale-detail?id=${item.id}`
                })
            }
        }
@@ -120,35 +128,32 @@
                margin-bottom: 16rpx;
            }
            .form {
                display: flex;
                flex-wrap: wrap;
            .sale-form {
                // display: flex;
                // flex-wrap: wrap;
                .form-item {
                    display: flex;
                    flex: 1;
                    // min-width: 40%;
                    // max-width: 50%;
                    line-height: 40rpx;
                    font-size: 28rpx;
                    .label {
                        font-weight: 400;
                        font-size: 24rpx;
                        color: #666666;
                        line-height: 34rpx;
                    }
                    .label::after {
                        content: ":";
                        font-weight: 400;
                        font-size: 24rpx;
                        color: #666666;
                        line-height: 34rpx;
                    }
                    .value {
                        font-weight: 400;
                        font-size: 24rpx;
                        color: #000000;
                        line-height: 34rpx;
                    }
                    .value.red {
pages/order/order.vue
@@ -12,7 +12,7 @@
        {name: '待发货', value: 'SEND'},
        {name: '待收货', value: 'RECEIVE'},
        {name: '待评价', value: 'EVALUATE'},
        {name: '售后', value: 'COMPLETED'},
        {name: '已完成', value: 'COMPLETED'},
        {name: '已退款', value: 'REFUND'},
      ]
    };
pages/user/supplier-user.vue
@@ -30,7 +30,7 @@
                <view class="name" v-if="currentInfo.id">
                    <view class="t1">
                        {{
              (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || (!!currentInfo.customerDTO ? (currentInfo.customerDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
              (!!currentInfo.partnerDTO ? (currentInfo.partnerDTO.name) : "") ||  (!!currentInfo.supplierDTO ? (currentInfo.supplierDTO.name) : "") || (!!currentInfo.customerDTO ? (currentInfo.customerDTO.name) : "") || currentInfo.nickName || currentInfo.loginName || '-'
            }}
                        <span v-if="currentInfo.supplierDTO&&currentInfo.supplierDTO.status!=='P'">
                            ({{ currentInfo.supplierDTO ? currentInfo.supplierDTO.statusStr : '' }})</span>
@@ -93,7 +93,7 @@
                        <image src="../../static/images/customer/order/order-type-4.png" class="order-icon dpj"></image>
                        <view>待评价</view>
                    </view>
                    <view class="order-icons" @click="goto('/pages/order/order?status=COMPLETED',true)">
                    <view class="order-icons" @click="goto('/pages/order/order-sale/order-sale',true)">
                        <image src="../../static/images/customer/order/order-type-5.png" class="order-icon sh"></image>
                        <view>售后</view>
                    </view>
@@ -162,6 +162,15 @@
                    <uni-icons type="right"></uni-icons>
                </view>
            </view>
            <!-- #ifdef PUB_PARTNER -->
            <view class="user-util m-t-12 flex" v-if="selftype==='partner'"
                @click="goto('/sub_pages/partner/partner-info/partner-code',true)">
                <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>
sub_pages/customer/customer-info/customer-info.vue
@@ -144,7 +144,7 @@
    }
    this.init_area()
// www.hmyxianhua.com/wx-jump
  },
sub_pages/partner/partner-info/partner-code.vue
对比新文件
@@ -0,0 +1,183 @@
<template>
    <!-- 联系我们 -->
    <!--  -->
    <view class="contact-container">
        <view class="container" @click="saveCode">
            <!-- <image src="../../../static/uni.png" mode="aspectFit" class="code"></image> -->
            <canvas type="2d" id="myQrcode" class="code"></canvas>
            <view class="info">
                <view class="desc">
                    <p>{{name||'-'}}的推广二维码</p>
                    <p style="font-size: 600;color: #000;">点击保存二维码</p>
                </view>
            </view>
        </view>
    </view>
</template>
<script>
    import drawQrcode from '@/plugins/weapp.qrcode.esm.js'
    export default {
        data() {
            return {
                name: '',
                userId: '',
                canvas: undefined,
            }
        },
        onLoad(options) {
            if (!this.currentInfo.partnerDTO) {
                this.$message.showToast('请先完善合伙人信息')
                return
            }
            this.name = this.currentInfo.partnerDTO.name || '佚名'
            // this.userId = this.currentInfo.userId
            this.initcode()
        },
        methods: {
            initcode() {
                let that = this
                const query = uni.createSelectorQuery()
                query.select('#myQrcode')
                    .fields({
                        node: true,
                        size: true
                    })
                    .exec((res) => {
                        var canvas = res[0].node
                        that.canvas = canvas
                        // 调用方法drawQrcode生成二维码
                        drawQrcode({
                            callback:function(e){
                                console.log('drawQrcode callback',e)
                            },
                            canvas: canvas,
                            canvasId: 'myQrcode',
                            width: 480,
                            height: 480,
                            padding: 30,
                            background: '#ffffff',
                            foreground: '#000000',
                            text: JSON.stringify({
                                'name': that.name,
                                'userId': that.currentInfo.id,
                                'version': '1.0.0'
                            }),
                            // text: `https://www.hmyxianhua.com/wx-c-jump/sub_pages/customer/customer-info/customer-info?name=${that.name}&userId=${that.currentInfo.id}`
                            // JSON.stringify({
                            //     'name': that.name,
                            //     'userId': this.currentIn fo.id
                            // }),
                        })
                        // .catch(e) {
                        //     console.log('drawQrcode', e)
                        // }
                    })
            },
            saveCode() {
                // 获取临时路径(得到之后,想干嘛就干嘛了)
                uni.canvasToTempFilePath({
                    canvasId: 'myQrcode',
                    canvas: this.canvas,
                    x: 0,
                    y: 0,
                    width: 480,
                    height: 480,
                    destWidth: 260,
                    destHeight: 260,
                    success(res) {
                        console.log('二维码临时路径:', res.tempFilePath)
                        uni.saveImageToPhotosAlbum({
                            filePath: res.tempFilePath,
                            success: function() {
                                console.log('save success');
                                uni.showToast({
                                    title: '保存成功'
                                })
                            },
                            fail(res) {
                                // console.error(res)
                                uni.showToast({
                                    title: '保存失败。',
                                    icon: 'error'
                                })
                            }
                        })
                    },
                    fail(res) {
                        uni.showToast({
                            title: '保存失败',
                            icon: 'error'
                        })
                    }
                })
            }
        }
    }
</script>
<style lang="scss" scoped>
    .contact-container {
        position: relative;
        .container {
            position: absolute;
            top: 148rpx;
            // width: 694rpx;
            left: 30rpx;
            right: 30rpx;
            min-height: 712rpx;
            // background: #FFFFFF;
            border-radius: 20rpx;
            .code {
                margin-left: auto;
                margin-right: auto;
                margin-top: 24rpx;
                width: 482rpx;
                height: 482rpx;
                margin-bottom: 32rpx;
                display: block;
            }
            .info {
                text-align: center;
                .desc {
                    font-weight: 400;
                    font-size: 28rpx;
                    color: #666666;
                    line-height: 40rpx;
                    font-style: normal;
                    margin-bottom: 126rpx;
                    p {
                        line-height: 48rpx;
                    }
                }
                .main {
                    font-weight: 600;
                    font-size: 48rpx;
                    color: #000000;
                    margin-top: 48rpx;
                    margin-bottom: 32rpx;
                }
            }
        }
        .top-image {
            width: 418rpx;
            height: 228rpx;
            position: absolute;
            top: 16rpx;
            left: 50%;
            transform: translateX(-50%);
        }
    }
</style>
sub_pages/supplier/flower-manage/flower-add.vue
@@ -163,11 +163,6 @@
            <view class="form-item bottom-border-no">
                <view class="label">商品描述</view>
                <view class="m-l-a m-r-0 flex">
                    <!--     <u-input type="textarea" v-model="dto.description" placeholder="请输入商品描述" type="number"
                        ></u-input> -->
                    <!--                     <u--textarea v-model="dto.description" style="margin-top: 16px;"
                        placeholder="请输入商品描述" count></u--textarea> -->
                    <!-- <uni-easyinput  v-model="dto.description" placeholder="请输入商品描述" ></uni-easyinput> -->
                </view>
            </view>