123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <template>
- <!-- 退款页、一键改价页、订单备注页、立即退款立即退货页 -->
- <view>
- <view class="priceChange" :class="[change === true ? 'on' : '',status == 2 && !isRefund?'goodsOn':'']">
- <!-- status == 0? orderInfo.refund_status === 1? "立即退款": "一键改价": "订单备注" -->
- <view class="priceTitle">
- {{
- status == 8?'退款原因': status == 0?"一键改价": status == 1?'订单备注': isRefund?'立即退款':'立即退货'
- }}
- <span class="iconfont icon-guanbi" @click="close"></span>
- </view>
- <!-- 一键改价 -->
- <view class="listChange" v-if="status == 0">
- <view
- class="item acea-row row-between-wrapper"
- v-if="orderInfo.refund_status === 0"
- >
- <view>商品总价(¥)</view>
- <view class="money">
- {{ orderInfo.total_price }}<span class="iconfont icon-suozi"></span>
- </view>
- </view>
- <view
- class="item acea-row row-between-wrapper"
- v-if="orderInfo.refund_status === 0"
- >
- <view>原始邮费(¥)</view>
- <view class="money">
- {{ orderInfo.pay_postage }}<span class="iconfont icon-suozi"></span>
- </view>
- </view>
- <view
- class="item acea-row row-between-wrapper"
- v-if="orderInfo.refund_status === 0"
- >
- <view>实际支付(¥)</view>
- <view class="money">
- <input
- type="text"
- v-model="price"
- :class="focus === true ? 'on' : ''"
- @focus="priceChange"
- />
- </view>
- </view>
- </view>
- <!-- 立即退款 -->
- <view class="listChange" v-if="status == 2">
- <view v-if="isRefund"
- class="item acea-row row-between-wrapper"
- >
- <view>实际支付(¥)</view>
- <view class="money">
- {{ orderInfo.pay_price }}<span class="iconfont icon-suozi"></span>
- </view>
- </view>
- <view
- v-if="isRefund"
- class="item acea-row row-between-wrapper"
- >
- <view>退款金额(¥)</view>
- <view class="money">
- <input
- type="text"
- v-model="refund_price"
- :class="focus === true ? 'on' : ''"
- @focus="priceChange"
- />
- </view>
- </view>
- <!-- <view class="title" v-if="!isRefund">同意退货退款</view> -->
- </view>
- <view class="listChange" v-if="status == 1">
- <textarea
- placeholder="请填写备注信息..."
- v-model="remark"
- ></textarea>
- </view>
- <view class="listChange" v-if="status == 8">
- <textarea
- placeholder="请填写退款原因..."
- v-model="refuse_reason"
- ></textarea>
- </view>
- <view class="modify" @click="refuse" v-if="status == 8">确认提交</view>
- <view class="modify" @click="save" v-if="status == 1 || status == 0">立即修改</view>
- <view class="modify" @click="save" v-if="status == 2 && isRefund">同意退款</view>
- <view
- class="modify1"
- @click="openRefund"
- v-if="status == 2 && isRefund"
- >
- 拒绝退款
- </view>
- <view class="reGoods acea-row row-between-wrapper" v-if="status == 2 && !isRefund">
- <view class="bnt grey" @click="refuse">拒绝</view>
- <view class="bnt" @click="save">同意</view>
- </view>
- <slot name="bottom"></slot>
- </view>
- <view class="mask" @touchmove.prevent v-show="change === true"></view>
- </view>
- </template>
- <style lang="scss">
- .mask{
- z-index: 99;
- }
- .priceChange .reGoods{
- padding: 0 25upx;
- margin-top: 50upx;
- }
- .priceChange .reGoods .bnt{width: 250upx;height:90upx;background-color:#2291f8;font-size:32upx;color:#fff;text-align: center;line-height: 90upx;
- border-radius:45upx;}
- .priceChange .reGoods .bnt.grey{
- background-color:#eee;
- color:#312b2b;
- }
- .priceChange{position:fixed;width:580upx;height:670upx;background-color:#fff;border-radius:10upx;top:50%;left:50%;margin-left:-290upx;margin-top:-335upx;z-index:666;transition:all 0.3s ease-in-out 0s;transform: scale(0);opacity:0;}
- .priceChange.on{opacity:1;transform: scale(1);}
- .priceChange.goodsOn{height: 380upx;}
- .priceChange .priceTitle{background:url("../../static/pricetitle.jpg") no-repeat;background-size:100% 100%;width:100%;height:160upx;border-radius:10upx 10upx 0 0;text-align:center;font-size:40upx;color:#fff;line-height:160upx;position:relative;}
- .priceChange .priceTitle .iconfont{position:absolute;font-size:40upx;right:26upx;top:23upx;width:40upx;height:40upx;line-height:40upx;}
- .priceChange .listChange{ width: 100%; padding:0 20rpx;}
- .priceChange .listChange textarea{box-sizing: border-box;}
- .priceChange .listChange .item{height:103upx;border-bottom:1px solid #e3e3e3;font-size:32upx;color:#333;}
- .priceChange .listChange .title{
- font-size: 32rpx;
- text-align: center;
- margin-top: 52rpx;
- }
- .priceChange .listChange .item .money{color:#666;width:300upx;text-align:right;}
- .priceChange .listChange .item .money .iconfont{font-size:32upx;margin-left:20upx;}
- .priceChange .listChange .item .money input{width:100%;height:100%;text-align:right;color:#ccc;}
- .priceChange .listChange .item .money input.on{color:#666;}
- .priceChange .modify{font-size:32upx;color:#fff;width:490upx;height:90upx;text-align:center;line-height:90upx;border-radius:45upx;background-color:#2291f8;margin:53upx auto 0 auto;}
- .priceChange .modify1{font-size:32upx;color:#312b2b;width:490upx;height:90upx;text-align:center;line-height:90upx;border-radius:45upx;background-color:#eee;margin:30upx auto 0 auto;}
- .priceChange .listChange textarea {
- border: 1px solid #eee;
- width: 100%;
- height: 200upx;
- margin-top: 50upx;
- border-radius: 10upx;
- color: #333;
- padding: 10rpx 14rpx;
- box-sizing: border-box;
- }
- </style>
- <script>
- export default {
- name: "PriceChange",
- components: {},
- props: {
- change: {
- type: Boolean,
- default: false
- },
- orderInfo: {
- type: Object,
- default: () => {}
- },
- status: {
- type:String,
- default:""
- },
- isRefund: {
- type:Number||String,
- default:0
- }
- },
- data: function() {
- return {
- focus: false,
- price: 0,
- refund_price: 0,
- remark: "",
- refuse_reason:''
- };
- },
- watch: {
- orderInfo: function(nVal) {
- this.price = this.orderInfo.pay_price;
- this.refund_price = this.orderInfo.pay_price;
- this.remark = this.orderInfo.remark;
- }
- },
- mounted: function() {
- },
- methods: {
- openRefund(){
- this.$emit('statusChange','8');
- },
- priceChange: function() {
- this.focus = true;
- },
- close: function() {
- this.price = this.orderInfo.pay_price;
- this.$emit("closechange", false);
- },
- save: function() {
- let that = this;
- that.$emit("savePrice", {
- price: that.price,
- refund_price: that.refund_price,
- type: 1,
- remark: that.remark
- });
- },
- refuse: function() {
- let that = this;
- that.$emit("savePrice", {
- price: that.price,
- refund_price: that.refund_price,
- type: 2,
- remark: that.remark,
- refuse_reason:that.refuse_reason
- });
- }
- }
- };
- </script>
|