|
@@ -1,647 +0,0 @@
|
|
-<template>
|
|
|
|
- <div class="flex column">
|
|
|
|
- <div
|
|
|
|
- style="padding-left: 10px;padding-bottom: 10px;position: fixed;z-index: 9;width: 100%;background-color: #f5f5f5;margin-left: 10px;">
|
|
|
|
- <el-page-header @back="backFn">
|
|
|
|
- <template #content>
|
|
|
|
- <span class="text-large font-600 mr-3">订单详情</span>
|
|
|
|
- </template>
|
|
|
|
- </el-page-header>
|
|
|
|
- </div>
|
|
|
|
- <div class="default-main flex column">
|
|
|
|
- <div class="mt-60">
|
|
|
|
- <el-steps align-center :active="datas.info.orderStatus+1" finish-status="success">
|
|
|
|
- <el-step :title="item.operateTypeName" :description="item.createTime"
|
|
|
|
- v-for="(item,index) in datas.info.operateList" :key="index" />
|
|
|
|
- </el-steps>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="mt-50">
|
|
|
|
- <el-card class="box-card" shadow="never" style="width:100%">
|
|
|
|
- <template #header>
|
|
|
|
- <div class="card-header">
|
|
|
|
- <span style=" font-weight:bold ">基本信息</span>
|
|
|
|
- <el-button class="button" type="primary" @click="onEditOrder">编辑</el-button>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <div>
|
|
|
|
- <el-descriptions direction="vertical" :column="6" border>
|
|
|
|
- <el-descriptions-item label="订单编号">{{datas.info.orderNumber}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="商品数量">{{datas.info.purchaseCountTotal}}件</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="优惠金额">{{datas.info.discountAmountTotal}} <span class="ml-5">
|
|
|
|
- <el-link type="primary" @click="onGetCouponDetail" v-if="datas.info.discountAmountTotal>0">查看
|
|
|
|
- </el-link>
|
|
|
|
- </span></el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="合计金额">{{datas.info.payableAmountTotal}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="实付金额">{{datas.info.actualAmountTotal}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="支付方式">{{datas.info.paymentChannelName}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="交易号">{{datas.info.paymentOrderNumber}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="用户账号">{{datas.info.memberName}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="联系电话">{{datas.info.memberMobile}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="收货人">{{datas.info.deliveryName}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="收货电话">{{datas.info.deliveryMobile}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="收货地址">{{datas.info.deliveryAddress}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="订单状态">
|
|
|
|
- <el-tag class="ml-2" v-if="datas.info.orderStatus===0"> {{datas.info.orderStatusName}}</el-tag>
|
|
|
|
- <el-tag class="ml-2" type="success" v-if="datas.info.orderStatus===1"> {{datas.info.orderStatusName}}
|
|
|
|
- </el-tag>
|
|
|
|
- <el-tag class="ml-2" type="warning" v-if="datas.info.orderStatus===2"> {{datas.info.orderStatusName}}
|
|
|
|
- </el-tag>
|
|
|
|
- <el-tag class="ml-2" type="info" v-if="datas.info.orderStatus===3"> {{datas.info.orderStatusName}}
|
|
|
|
- </el-tag>
|
|
|
|
- </el-descriptions-item>
|
|
|
|
- </el-descriptions>
|
|
|
|
- </div>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
- <div class="mt-20">
|
|
|
|
- <el-card class="box-card" shadow="never" style="width:100%">
|
|
|
|
- <template #header>
|
|
|
|
- <div class="card-header">
|
|
|
|
- <span style=" font-weight:bold ">商品详情</span>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <div>
|
|
|
|
- <el-table :data="datas.info.orderDetailList" border style="width: 100%">
|
|
|
|
- <el-table-column prop="productName" label="商品名称" />
|
|
|
|
- <el-table-column prop="purchaseCount" label="数量" />
|
|
|
|
- <el-table-column prop="sellingPrice" label="单价" />
|
|
|
|
- <el-table-column prop="discountAmount" label="特惠价" />
|
|
|
|
- <el-table-column prop="payableAmount" label="应付金额" />
|
|
|
|
- <el-table-column prop="actualAmount" label="实付金额" />
|
|
|
|
- </el-table>
|
|
|
|
- </div>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
- <div class="mt-20">
|
|
|
|
- <el-card class="box-card" shadow="never" style="width:100%">
|
|
|
|
- <template #header>
|
|
|
|
- <div class="card-header">
|
|
|
|
- <span style=" font-weight:bold ">发货记录</span>
|
|
|
|
- <el-button class="button" type="primary" @click="onSend(false)">发货</el-button>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <div>
|
|
|
|
- <el-table :data="datas.sandRecordList" border style="width: 100%">
|
|
|
|
- <el-table-column type="expand">
|
|
|
|
- <template #default="props">
|
|
|
|
- <div style="padding:20px">
|
|
|
|
- <el-table :data="props.row.detailList">
|
|
|
|
- <el-table-column label="产品名称" prop="productName" />
|
|
|
|
- <el-table-column label="产品序列号" prop="productId" />
|
|
|
|
- <el-table-column label="生产日期" prop="productDate" />
|
|
|
|
- </el-table>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="expressName" label="名称" width="180" />
|
|
|
|
- <el-table-column prop="expressNumber" label="快递单号" width="180" />
|
|
|
|
- <el-table-column prop="deliverTypeName" label="发货类型" width="180" />
|
|
|
|
- <el-table-column prop="expressFee" label="快递费用" />
|
|
|
|
- <el-table-column prop="expressStatusName" label="状态" />
|
|
|
|
- <el-table-column align="center" label="操作" width="180">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <el-button @click="onEditExpress(scope.row)" :disabled="scope.row.expressStatus===1">编辑</el-button>
|
|
|
|
- <el-popover :visible="datas.sandForm.popoverVisible" placement="top" :width="200">
|
|
|
|
- <span style="padding:10px">您确定客户已签收了吗?</span>
|
|
|
|
- <div class="mt-10" style="text-align: right;">
|
|
|
|
- <el-button size="small" text @click="datas.sandForm.popoverVisible = false">取消</el-button>
|
|
|
|
- <el-button size="small" type="primary" @click="onSignIn(scope.row.id)">确定</el-button>
|
|
|
|
- </div>
|
|
|
|
- <template #reference>
|
|
|
|
- <el-button @click="datas.sandForm.popoverVisible = true" type="danger"
|
|
|
|
- :disabled="scope.row.expressStatus===1">签收</el-button>
|
|
|
|
- </template>
|
|
|
|
- </el-popover>
|
|
|
|
-
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </div>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
- <!-- <div class="mt-20">
|
|
|
|
- <el-card class="box-card" shadow="never" style="width:100%">
|
|
|
|
- <template #header>
|
|
|
|
- <div class="card-header">
|
|
|
|
- <span style=" font-weight:bold ">换货申请</span>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <div>
|
|
|
|
- <el-table :data="datas.aftersaleList" border style="width: 100%">
|
|
|
|
- <el-table-column prop="name" label="原因" />
|
|
|
|
- <el-table-column prop="typeName" label="旧设备序列号" />
|
|
|
|
- <el-table-column prop="oddNumbers" label="新设备序列号" />
|
|
|
|
- <el-table-column prop="amount" label="快递" />
|
|
|
|
- <el-table-column prop="amount" label="单号" />
|
|
|
|
- <el-table-column align="center" label="操作" width="180">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <el-button @click="onSignIn(scope.row)">审核
|
|
|
|
- </el-button>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </div>
|
|
|
|
- </el-card>
|
|
|
|
- </div> -->
|
|
|
|
- <div class="mt-20">
|
|
|
|
- <el-card class="box-card" shadow="never" style="width:100%">
|
|
|
|
- <template #header>
|
|
|
|
- <div class="card-header">
|
|
|
|
- <span style=" font-weight:bold ">退款申请</span>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <div>
|
|
|
|
- <el-table :data="datas.refundList.list" border style="width: 100%">
|
|
|
|
- <el-table-column prop="refundReason" label="原因" />
|
|
|
|
- <el-table-column prop="auditStatusName" label="状态" />
|
|
|
|
- <el-table-column prop="createTime" label="创建日期" />
|
|
|
|
- </el-table>
|
|
|
|
- </div>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <el-dialog custom-class="ba-operate-dialog" :close-on-click-modal="false"
|
|
|
|
- :model-value="datas.sandForm.dialogVisibleSend" @close="datas.sandForm.dialogVisibleSend=false">
|
|
|
|
- <template #header>
|
|
|
|
- <div class="title" v-drag="['.ba-operate-dialog', '.el-dialog__header']" v-zoom="'.ba-operate-dialog'">
|
|
|
|
- 发货登记
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <el-scrollbar v-loading="datas.sandForm.loading">
|
|
|
|
- <div class="ba-operate-form" :class="'ba-' + datas.sandForm.operate + '-form'"
|
|
|
|
- style="width: calc(100% - 40px);margin-bottom: 40px;">
|
|
|
|
- <el-form ref="formRefSend" @keyup.enter="onSubmit(formRefSend,1)" :model="datas.sandForm.items"
|
|
|
|
- label-position="right" :label-width="'120px'" :rules="rulesSend" v-if="!datas.sandForm.loading">
|
|
|
|
- <el-form-item prop="deliverType" label="类型">
|
|
|
|
- <el-select v-model="datas.sandForm.items.deliverType" placeholder="请选择发货类型" style="width: 100%"
|
|
|
|
- clearable :disabled="datas.sandForm.isEdit">
|
|
|
|
- <el-option label="销售发货" value='0' />
|
|
|
|
- <el-option label="售后发货" value='1' />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="expressId" label="服务商">
|
|
|
|
- <el-select v-model="datas.sandForm.items.expressId" placeholder="请选择服务商" style="width: 100%" clearable>
|
|
|
|
- <el-option :label="item.expressName" :value='item.id' v-for="(item,index) in datas.sandForm.list"
|
|
|
|
- :key="index" />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="expressNumber" label="单号">
|
|
|
|
- <el-input v-model="datas.sandForm.items.expressNumber" placeholder="请输入单号"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="expressFee" label="费用">
|
|
|
|
- <el-input v-model="datas.sandForm.items.expressFee" placeholder="请输入费用" type="number"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="deliverDetail" label="产品">
|
|
|
|
- <div style="width: 100%;">
|
|
|
|
- <div class="flex justify-flex-end">
|
|
|
|
- <el-button size="small" class="mb-10" @click="datas.sandForm.innerVisible=true">添加
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- <el-table :data="datas.sandForm.items.deliverDetail" border stripe
|
|
|
|
- style="width: 100%;font-size: 10px;">
|
|
|
|
- <el-table-column prop="productName" label="产品" />
|
|
|
|
- <el-table-column prop="serialNumber" label="序列号" />
|
|
|
|
- <el-table-column prop="productDate" label="生产日期" />
|
|
|
|
- <el-table-column fixed="right" label="操作" align="center">
|
|
|
|
- <template #default="scope">
|
|
|
|
- <el-button link type="primary" size="small" @click="onDelProduct(scope.serialNumber)">删除
|
|
|
|
- </el-button>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </div>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
- </div>
|
|
|
|
- </el-scrollbar>
|
|
|
|
- <el-dialog v-model="datas.sandForm.innerVisible" width="30%" title="设备登记" append-to-body>
|
|
|
|
- <div>
|
|
|
|
- <el-form ref="formRefProduct" @keyup.enter="onSubmit(formRefProduct,2)" :model="datas.sandForm.productInfo"
|
|
|
|
- label-position="right" :label-width="'90px'" :rules="rulesProduct" v-if="!datas.sandForm.loading">
|
|
|
|
- <el-form-item prop="productId" label="产品名称">
|
|
|
|
- <el-select v-model="datas.sandForm.productInfo.productId" placeholder="请选择购买的产品" style="width: 100%"
|
|
|
|
- clearable @change="onSelectProduct">
|
|
|
|
- <el-option :label="item.productName" :value='item.productId'
|
|
|
|
- v-for="(item,index) in datas.info.orderDetailList" :key="index" />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="serialNumber" label="序列号">
|
|
|
|
- <el-input v-model="datas.sandForm.productInfo.serialNumber" placeholder="请输入序列号"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="productDate" label="生产日期">
|
|
|
|
- <el-date-picker v-model="datas.sandForm.productInfo.productDate" type="date" format="YYYY-MM-DD"
|
|
|
|
- value-format="YYYY-MM-DD" placeholder="选择生产日期" style="width:100%" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
- </div>
|
|
|
|
- <template #footer>
|
|
|
|
- <span class="dialog-footer">
|
|
|
|
- <el-button type="primary" @click="onSubmit(formRefProduct,2)">
|
|
|
|
- 确定
|
|
|
|
- </el-button>
|
|
|
|
- </span>
|
|
|
|
- </template>
|
|
|
|
- </el-dialog>
|
|
|
|
- <template #footer>
|
|
|
|
- <div :style="'width: calc(100% - ' + 90 / 1.8 + 'px)'">
|
|
|
|
- <el-button @click="datas.sandForm.dialogVisibleSend=false">取消</el-button>
|
|
|
|
- <el-button v-blur :loading="datas.sandForm.submitLoading" @click="onSubmit(formRefSend,1)" type="primary">
|
|
|
|
- 保存
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-dialog>
|
|
|
|
- <el-dialog custom-class="ba-operate-dialog" :close-on-click-modal="false"
|
|
|
|
- :model-value="datas.orderForm.dialogVisibleOrder" @close="datas.orderForm.dialogVisibleOrder=false">
|
|
|
|
- <template #header>
|
|
|
|
- <div class="title" v-drag="['.ba-operate-dialog', '.el-dialog__header']" v-zoom="'.ba-operate-dialog'">
|
|
|
|
- 编辑订单
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <el-scrollbar v-loading="datas.orderForm.loading">
|
|
|
|
- <div class="ba-operate-form" :class="'ba-' + datas.orderForm.operate + '-form'"
|
|
|
|
- style="width: calc(100% - 40px);margin-bottom: 40px;">
|
|
|
|
- <el-form ref="formRefOrder" @keyup.enter="onSubmit(formRefSend,3)" :model="datas.orderForm.items"
|
|
|
|
- label-position="right" :label-width="'120px'" :rules="rulesOrder" v-if="!datas.orderForm.loading">
|
|
|
|
- <el-form-item prop="deliveryName" label="收货人">
|
|
|
|
- <el-input v-model="datas.orderForm.items.deliveryName" placeholder="请输入收货人"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="deliveryMobile" label="收货电话">
|
|
|
|
- <el-input v-model="datas.orderForm.items.deliveryMobile" placeholder="请输入收货电话"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item prop="deliveryAddress" label="收货地址">
|
|
|
|
- <el-input v-model="datas.orderForm.items.deliveryAddress" placeholder="请输入收货地址"></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-form>
|
|
|
|
- </div>
|
|
|
|
- </el-scrollbar>
|
|
|
|
- <template #footer>
|
|
|
|
- <div :style="'width: calc(100% - ' + 90 / 1.8 + 'px)'">
|
|
|
|
- <el-button @click="datas.orderForm.dialogVisibleOrder=false">取消</el-button>
|
|
|
|
- <el-button v-blur :loading="datas.orderForm.submitLoading" @click="onSubmit(formRefOrder,3)" type="primary">
|
|
|
|
- 保存
|
|
|
|
- </el-button>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-dialog>
|
|
|
|
- <el-dialog v-model="datas.dialogVisibleCoupon" title="优惠券信息" width="30%">
|
|
|
|
- <div>
|
|
|
|
- <el-descriptions direction="vertical" :column="2" border>
|
|
|
|
- <el-descriptions-item label="名称">{{datas.couponInfo.couponName}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="金额">{{datas.couponInfo.discountAmount}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="获取场景" :span="2">{{datas.couponInfo.couponSourceName}}</el-descriptions-item>
|
|
|
|
- </el-descriptions>
|
|
|
|
- </div>
|
|
|
|
- <template #footer>
|
|
|
|
- <span class="dialog-footer">
|
|
|
|
- <el-button @click="datas.dialogVisibleCoupon = false">取消</el-button>
|
|
|
|
- </span>
|
|
|
|
- </template>
|
|
|
|
- </el-dialog>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
-</template>
|
|
|
|
-
|
|
|
|
-<script setup lang="ts">
|
|
|
|
-import { ElForm, ElNotification, FormItemRule } from 'element-plus'
|
|
|
|
-import { onMounted, reactive, ref } from 'vue'
|
|
|
|
-import { useRouter } from 'vue-router'
|
|
|
|
-import {
|
|
|
|
- detail,
|
|
|
|
- editExpressInPost,
|
|
|
|
- editOrderPost,
|
|
|
|
- expressPost,
|
|
|
|
- getAftersale,
|
|
|
|
- getCouponDetail,
|
|
|
|
- getExpressList,
|
|
|
|
- sendRecord,
|
|
|
|
- signInPost,
|
|
|
|
-} from '/@/api/backend/enterprise/order'
|
|
|
|
-import _ from 'lodash'
|
|
|
|
-import { info } from '/@/api/backend/enterprise/employee'
|
|
|
|
-const formRefSend = ref<InstanceType<typeof ElForm>>()
|
|
|
|
-const formRefOrder = ref<InstanceType<typeof ElForm>>()
|
|
|
|
-const formRefProduct = ref<InstanceType<typeof ElForm>>()
|
|
|
|
-
|
|
|
|
-let router = useRouter()
|
|
|
|
-let row = reactive(router.currentRoute.value.params)
|
|
|
|
-let datas = reactive({
|
|
|
|
- info: {},
|
|
|
|
- sandRecordList: [],
|
|
|
|
- aftersaleList: [],
|
|
|
|
- refundList: [],
|
|
|
|
- couponInfo: {},
|
|
|
|
- dialogVisibleCoupon: false,
|
|
|
|
- orderForm: {
|
|
|
|
- dialogVisibleOrder: false,
|
|
|
|
- loading: false,
|
|
|
|
- submitLoading:false,
|
|
|
|
- operate: 'edit',
|
|
|
|
- items: {
|
|
|
|
- id:'',
|
|
|
|
- deliveryAddress:'',
|
|
|
|
- deliveryName:'',
|
|
|
|
- deliveryMobile:''
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- sandForm: {
|
|
|
|
- dialogVisibleSend: false,
|
|
|
|
- innerVisible: false,
|
|
|
|
- loading: false,
|
|
|
|
- submitLoading: false,
|
|
|
|
- operate: 'add',
|
|
|
|
- productInfo: {},
|
|
|
|
- popoverVisible: false,
|
|
|
|
- isEdit: false,
|
|
|
|
- list: [],
|
|
|
|
- items: {
|
|
|
|
- id: '',
|
|
|
|
- expressId: '',
|
|
|
|
- expressNumber: '',
|
|
|
|
- expressFee: 0.0,
|
|
|
|
- deliverType: '0',
|
|
|
|
- deliverDetail: [],
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
-})
|
|
|
|
-
|
|
|
|
-const rulesSend: Partial<Record<string, FormItemRule[]>> = reactive({
|
|
|
|
- expressId: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请输入名称',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- expressNumber: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请输入单号',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- expressFee: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请输入运费',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- deliverType: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请选择发货类型',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- deliverDetail: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请添加发货设备',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
-})
|
|
|
|
-
|
|
|
|
-const rulesProduct: Partial<Record<string, FormItemRule[]>> = reactive({
|
|
|
|
- productId: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请选择产品',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- productDate: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请选择生产日期',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- serialNumber: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请输入序列号',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
-})
|
|
|
|
-
|
|
|
|
-const rulesOrder: Partial<Record<string, FormItemRule[]>> = reactive({
|
|
|
|
- deliveryAddress: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请输入收货地址',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- deliveryName: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请选择收货人',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
- deliveryMobile: [
|
|
|
|
- {
|
|
|
|
- required: true,
|
|
|
|
- message: '请输入收货人联系电话',
|
|
|
|
- trigger: 'blur',
|
|
|
|
- },
|
|
|
|
- ],
|
|
|
|
-})
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-const getDetail = () => {
|
|
|
|
- let param = {
|
|
|
|
- id: row.id,
|
|
|
|
- }
|
|
|
|
- detail(param).then((res) => {
|
|
|
|
- datas.info = res.data
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const getSendRecord = () => {
|
|
|
|
- let param = {
|
|
|
|
- id: row.id,
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- sendRecord(param).then((res) => {
|
|
|
|
- datas.sandRecordList = res.data
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const getAftersaleList = (listType: any) => {
|
|
|
|
- let param = {
|
|
|
|
- id: row.id,
|
|
|
|
- operateType: listType,
|
|
|
|
- }
|
|
|
|
- getAftersale(param).then((res) => {
|
|
|
|
- if (listType === 2) {
|
|
|
|
- datas.aftersaleList = res.data
|
|
|
|
- } else {
|
|
|
|
- datas.refundList = res.data
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const getExpressSelects = (operateType: boolean) => {
|
|
|
|
- getExpressList().then((res) => {
|
|
|
|
- datas.sandForm.isEdit = operateType
|
|
|
|
- datas.sandForm.list = res.data
|
|
|
|
- datas.sandForm.dialogVisibleSend = true
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onSelectProduct = (val: any) => {
|
|
|
|
- let product = datas.info.orderDetailList!.find((item: { productId: any }) => item.productId == val)
|
|
|
|
- datas.sandForm.productInfo!.productName = product.productName
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onDelProduct = (val: any) => {
|
|
|
|
- let index = datas.sandForm.items.deliverDetail.findIndex((item: { serialNumber: any }) => item.serialNumber == val)
|
|
|
|
- datas.sandForm.items.deliverDetail.splice(index, 1)
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const backFn = () => {
|
|
|
|
- router.go(-1)
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onGetCouponDetail = () => {
|
|
|
|
- let req = {
|
|
|
|
- id: datas.info.memberCouponId,
|
|
|
|
- }
|
|
|
|
- getCouponDetail(req).then((res) => {
|
|
|
|
- datas.couponInfo = res.data
|
|
|
|
- datas.dialogVisibleCoupon = true
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onSend = (operateType: boolean) => {
|
|
|
|
- getExpressSelects(operateType)
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onSignIn = (id: anyObj) => {
|
|
|
|
- let req = {
|
|
|
|
- id: id,
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- signInPost(req).then((res) => {
|
|
|
|
- getDetail()
|
|
|
|
- getSendRecord()
|
|
|
|
- datas.sandForm.popoverVisible = false
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onEditOrder=()=>{
|
|
|
|
- datas.orderForm.items.id=datas.info.id
|
|
|
|
- datas.orderForm.items.deliveryAddress=datas.info.deliveryAddress
|
|
|
|
- datas.orderForm.items.deliveryName=datas.info.deliveryName
|
|
|
|
- datas.orderForm.items.deliveryMobile=datas.info.deliveryMobile
|
|
|
|
- datas.orderForm.dialogVisibleOrder=true
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onEditExpress = (row: anyObj) => {
|
|
|
|
- datas.sandForm.items.expressId = row.expressId
|
|
|
|
- datas.sandForm.items.expressId = row.expressId
|
|
|
|
- datas.sandForm.items.expressNumber = row.expressNumber
|
|
|
|
- datas.sandForm.items.expressFee = row.expressFee
|
|
|
|
- datas.sandForm.items.deliverType = row.deliverType + ''
|
|
|
|
- datas.sandForm.items.deliverDetail = row.detailList
|
|
|
|
- datas.sandForm.items.expressId = row.expressId
|
|
|
|
- datas.sandForm.items.id = row.id
|
|
|
|
- getExpressSelects(true)
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-const onSubmit = (formEl: InstanceType<typeof ElForm> | undefined = undefined, formType: any) => {
|
|
|
|
- if (formEl) {
|
|
|
|
- formEl.validate((valid) => {
|
|
|
|
- if (valid) {
|
|
|
|
- if (formType === 2) {
|
|
|
|
- let dataClone = _.cloneDeep(datas.sandForm.productInfo)
|
|
|
|
- datas.sandForm.items.deliverDetail.push(dataClone)
|
|
|
|
- datas.sandForm.productInfo.productId = ''
|
|
|
|
- datas.sandForm.productInfo.serialNumber = ''
|
|
|
|
- datas.sandForm.productInfo.productDate = ''
|
|
|
|
- datas.sandForm.innerVisible = false
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if (formType === 1) {
|
|
|
|
- datas.sandForm.submitLoading = true
|
|
|
|
- let req = {
|
|
|
|
- id: row.id,
|
|
|
|
- entity: datas.sandForm.items,
|
|
|
|
- }
|
|
|
|
- if (datas.sandForm.isEdit) {
|
|
|
|
- let editReq = {
|
|
|
|
- id: datas.sandForm.items.id,
|
|
|
|
- entity: datas.sandForm.items,
|
|
|
|
- }
|
|
|
|
- editExpressInPost(editReq).then((res) => {
|
|
|
|
- datas.sandForm.submitLoading = false
|
|
|
|
- datas.sandForm.items.expressId = ''
|
|
|
|
- datas.sandForm.items.expressNumber = ''
|
|
|
|
- datas.sandForm.items.expressFee = 0.0
|
|
|
|
- datas.sandForm.items.deliverType = ''
|
|
|
|
- datas.sandForm.items.deliverDetail = []
|
|
|
|
- datas.sandForm.items.id = ''
|
|
|
|
- datas.sandForm.dialogVisibleSend = false
|
|
|
|
- getDetail()
|
|
|
|
- getSendRecord()
|
|
|
|
- })
|
|
|
|
- } else {
|
|
|
|
- expressPost(req)
|
|
|
|
- .then((res) => {
|
|
|
|
- datas.sandForm.submitLoading = false
|
|
|
|
- datas.sandForm.items.expressId = ''
|
|
|
|
- datas.sandForm.items.expressNumber = ''
|
|
|
|
- datas.sandForm.items.expressFee = 0.0
|
|
|
|
- datas.sandForm.items.deliverType = ''
|
|
|
|
- datas.sandForm.items.deliverDetail = []
|
|
|
|
- datas.sandForm.items.id = ''
|
|
|
|
- datas.sandForm.dialogVisibleSend = false
|
|
|
|
- getDetail()
|
|
|
|
- getSendRecord()
|
|
|
|
- })
|
|
|
|
- .catch((msg) => {
|
|
|
|
- datas.sandForm.submitLoading = false
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if(formType===3){
|
|
|
|
-
|
|
|
|
- datas.orderForm.submitLoading=true
|
|
|
|
- editOrderPost(datas.orderForm.items).then((res)=>{
|
|
|
|
-
|
|
|
|
- getDetail()
|
|
|
|
- datas.orderForm.submitLoading=false
|
|
|
|
-
|
|
|
|
- }).catch(()=>{
|
|
|
|
- datas.orderForm.submitLoading=false
|
|
|
|
- })
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-onMounted(() => {
|
|
|
|
- getDetail()
|
|
|
|
- getSendRecord()
|
|
|
|
- // getAftersaleList(2)
|
|
|
|
- getAftersaleList(0)
|
|
|
|
-})
|
|
|
|
-</script>
|
|
|
|
-
|
|
|
|
-<style scoped>
|
|
|
|
-.card-header {
|
|
|
|
- display: flex;
|
|
|
|
- justify-content: space-between;
|
|
|
|
- align-items: center;
|
|
|
|
-}
|
|
|
|
-</style>
|
|
|