|
|
- <template>
- <view class="refundsOrExchange">
- <navbar :title="title[titleIndex]" leftClick @leftClick="$utils.navigateBack" />
-
- <view class="frame">
-
- <!-- 商品简介 -->
- <view class="itme1" @click="openSpPopup">
- <view class="left">
- <image :src="commodity.goodsPic" mode="aspectFill" />
- </view>
- <view class="center">
- <view>{{ commodity.goodsName }}</view>
- <view>商品规格:{{ commodity.sku }}</view>
- <view>下单时间:{{ commodity.startTime }}</view>
- </view>
- <view class="right">×{{ commodity.num }}</view>
- </view>
- <!-- 暂未选择商品的时候 -->
- <!-- <view v-else style="height: 200rpx;;display: flex;justify-content: center;align-items: center;font-size: 36px;">
- 请选择商品...
- </view> -->
-
- <!-- 申请类型&申请原因 -->
- <view class="item2">
- <view class="type">
- <span>申请类型</span>
- <span>{{ titleIndex == 0?'退货退款':'换货'}}</span>
- </view>
- <uv-line></uv-line>
- <view class="reason">
- <view>申请原因</view>
- <view>
- <uv-input v-model="form.reason" placeholder="请输入申请原因" border="none" clearable></uv-input>
- </view>
- </view>
- </view>
-
- <!-- 退货数量&申请金额-->
- <view class="item3">
- <view class="type">
- <span>{{ titleIndex == 0 ? '退货数量' : '换货数量' }}</span>
- <span>
- <uv-number-box v-model="form.refundNum" :min="1" :max="commodity.num"></uv-number-box>
- </span>
- </view>
- <uv-line v-if='titleIndex == 0 ? true :false'></uv-line>
- <view class="reason" v-if='titleIndex == 0 ? true :false'>
- <view>申请金额</view>
- <view>
- <uv-input v-model="form.reasonPrice" disabled border="none" clearable></uv-input>
- </view>
- </view>
- </view>
-
- <!-- 申请说明 -->
- <view class="item4">
- <view>申请说明(选填)</view>
- <view>
- <uv-input v-model="form.reasonInfo" placeholder="请您详细填写申请说明" border="none" clearable></uv-input>
- </view>
- <view>
- <uv-upload :fileList="fileList" :maxCount="5" multiple width="150rpx" height="150rpx"
- @delete="deleteImage" @afterRead="afterRead" :previewFullImage="true"></uv-upload>
- </view>
- </view>
-
-
- <!-- 联系电话 -->
- <view class="item5">
- <view class="phone">
- <view>联系电话</view>
- <view>
- <uv-input v-model="form.phone" placeholder="请输入联系电话" border="none" clearable></uv-input>
- </view>
- </view>
- </view>
- </view>
-
- <!-- 底部按钮 -->
- <bottomBtn @confirm='confirm()' :color='bottomBtnStyle.color' :backgroundColor='bottomBtnStyle.backgroundColor'
- :fontSize='bottomBtnStyle.fontSize' :text='bottomBtnStyle.text' :width="bottomBtnStyle.width"
- :height="bottomBtnStyle.height" :borderRadius='bottomBtnStyle.borderRadius' :bottom='bottomBtnStyle.bottom'>
- </bottomBtn>
-
- <!--商品选择-->
- <uv-popup ref="spPopup" :round="30">
- <commoditySelect height="60vh" @selectSp="selectCommodity" ref="commoditySelect" />
- </uv-popup>
-
- </view>
- </template>
-
- <script>
- import bottomBtn from "../../components/bottom/bottomBtn.vue"
- import commoditySelect from "../components/commodity/commoditySelect.vue"
-
- export default {
- onLoad(option) {
- this.titleIndex = option.index
- },
- components: {
- bottomBtn,
- commoditySelect
- },
- data() {
- return {
- titleIndex: 0,
- title: ['申请退货', '申请换货'],
- fileList: [],
- bottomBtnStyle: {
- color: '#FFF',
- backgroundColor: '#fd5100',
- fontSize: '34rpx',
- text: '提交申请',
- width: '400rpx',
- height: '80rpx',
- borderRadius: '100rpx',
- bottom: '40rpx'
- },
- commodity: {
- goodsName: '',
- sku: '',
- num: 0,
- startTime: '',
- goodsPic: '',
- },
- form: {
- id: "",
- phone: "",
- reason: "",
- reasonInfo: "",
- reasonPic: "",
- reasonPrice: "",
- refundNum: "",
- type: '', //0退货 1换货
- },
- }
- },
- onShow() {
- this.$refs.commoditySelect.getList()
- },
- methods: {
-
- openSpPopup() {
- this.$refs.spPopup.open('bottom');
- },
-
- // 选择退换货商品回调
- selectCommodity(e) {
- console.log(e, "selectCommodity--e")
- console.log(e.id, 'e.id');
- this.form.id = e.id //设置租赁ID
- this.form.reasonPrice = e.price //设置退款金额(押金)
- this.form.refundNum = e.num //设置数量
- this.commodity = e
- this.$refs.spPopup.close()
- },
-
- //确认退换货
- confirm() {
- this.form.type = this.titleIndex
- this.form.reasonPic = this.fileList.map(item=>item.url).join(",")
- console.log(this.form, "form");
-
- this.$api('refundOrder', this.form, res => {
- if (res.code == 200) {
- uni.showToast({
- icon: "success",
- title: "申请成功"
- })
- setTimeout(() => {
- uni.navigateTo({
- url: '/pages/index/center'
- })
- }, 3000)
- }
- })
- },
- deleteImage(e) {
- this.fileList.splice(e.index, 1)
- },
- afterRead(e) {
- let self = this
- e.file.forEach(file => {
- self.$Oss.ossUpload(file.url).then(url => {
- self.fileList.push({
- url
- })
- })
- })
- },
- }
- }
- </script>
-
- <style lang="scss" scoped>
- * {
- box-sizing: border-box;
- }
-
- .refundsOrExchange {
- .frame {
-
- display: flex;
- flex-direction: column;
- gap: 30rpx;
- // width: 100%;
- padding: 40rpx 40rpx 0 40rpx;
- background-color: #f5f5f5;
-
-
- .itme1 {
- display: flex;
- height: 200rpx;
- background-color: #ffffff;
-
- .left {
- padding: 20rpx;
- width: 150rpx;
- height: 150rpx;
- border-radius: 20rpx;
- background-color: #ffffff;
- flex-shrink: 0;
-
- image {
- width: 100%;
- height: 100%;
- border-radius: 20rpx;
- }
- }
-
- .center {
- display: flex;
- flex-direction: column;
- justify-content: center;
- gap: 20rpx;
- width: 60%;
- padding: 0rpx 0 0 20rpx;
- background-color: #ffffff;
-
- // 给第一个 view 设置样式
- >view:first-of-type {
- font-size: 36rpx;
- color: #333;
- }
-
- // 给第二个 view 设置样式
- >view:nth-of-type(2) {
- font-size: 28rpx;
- color: #666666;
- }
-
- // 给第三个 view 设置样式
- >view:nth-of-type(3) {
- font-size: 28rpx;
- color: #666666;
- }
- }
-
- .right {
- display: flex;
- justify-content: center;
- align-items: center;
- width: 10%;
- color: #666666;
- background-color: #ffffff;
- }
- }
-
- .item2 {
- // width: 100vw;
-
- .type {
- display: flex;
- align-items: center;
- background-color: #FFF;
- height: 80rpx;
- padding: 0 0 0 20rpx;
-
- >span:nth-of-type(1) {
- width: 30%;
- }
-
- >span:nth-of-type(2) {
- width: 70%;
- }
- }
-
- .reason {
- display: flex;
- align-items: center;
- background-color: #FFF;
- height: 80rpx;
- // margin: 10rpx 0 0 0;
- padding: 10rpx 0 0 20rpx;
-
- >view:nth-of-type(1) {
- width: 30%;
- }
-
- >view:nth-of-type(2) {
- width: 70%;
- padding: 0 20rpx 0 0;
- }
- }
- }
-
- .item3 {
- // width: 100vw;
-
- .type {
- display: flex;
- align-items: center;
- background-color: #FFF;
- height: 80rpx;
- padding: 0 0 0 20rpx;
-
- >span:nth-of-type(1) {
- width: 70%;
- }
-
- >span:nth-of-type(2) {
- width: 30%;
- }
- }
-
- .reason {
- display: flex;
- align-items: center;
- background-color: #FFF;
- height: 80rpx;
- // margin: 10rpx 0 0 0;
- padding: 10rpx 0 0 20rpx;
-
- >view:nth-of-type(1) {
- width: 30%;
- }
-
- >view:nth-of-type(2) {
- width: 70%;
- padding: 0 20rpx 0 0;
- }
- }
- }
-
- .item4 {
- display: flex;
- flex-direction: column;
- padding: 10rpx 0 0 20rpx;
- background-color: #FFF;
-
- >view:nth-of-type(1) {
- background-color: #FFF;
- }
-
- >view:nth-of-type(2) {
- margin: 10rpx 0 10rpx 0;
- background-color: #FFF;
-
- }
- }
-
- .item5 {
- display: flex;
- flex-direction: column;
- padding: 0 0 0 20rpx;
- background-color: #FFF;
-
- .phone {
- display: flex;
- align-items: center;
- background-color: #FFF;
- height: 80rpx;
- // margin: 10rpx 0 0 0;
- padding: 10rpx 0 0 20rpx;
-
- >view:nth-of-type(1) {
- width: 30%;
- }
-
- >view:nth-of-type(2) {
- width: 70%;
- padding: 0 20rpx 0 0;
- }
- }
- }
- }
- }
- </style>
|