|
@@ -308,11 +308,29 @@
|
|
|
<el-form :model="logisticsForm" ref="logisticsForm" label-width="100px" label-position="left">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="6">
|
|
|
+ <el-form-item label="发货方式" prop="pickType" v-if="logisticsType === 'add'">
|
|
|
+ <el-radio-group v-model="logisticsForm.pickType">
|
|
|
+ <el-radio label="YES">自提/自送</el-radio>
|
|
|
+ <el-radio label="NO">快递物流</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" v-if="logisticsForm.pickType == 'YES'">
|
|
|
+ <el-form-item label="提货人" prop="pickName" :rules="[{ required: true, message: '提货人不能为空', trigger: 'blur' }]">
|
|
|
+ <el-input v-model="logisticsForm.pickName" placeholder="请输入提货人"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" v-if="logisticsForm.pickType == 'YES'">
|
|
|
+ <el-form-item label="提货人电话" prop="pickPhone" :rules="[{ required: true, message: '提货人电话不能为空', trigger: 'blur' },{ pattern:/^((1[3456789]\d{9}))$/, message: '电话号码格式不正确', trigger: 'blur' }]">
|
|
|
+ <el-input v-model="logisticsForm.pickPhone" placeholder="请输入提货人电话"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6" v-if="logisticsForm.pickType == 'NO'">
|
|
|
<el-form-item label="快递单号" prop="logisticsNo" :rules="[{ required: true, message: '快递单号不能为空', trigger: 'blur' }]">
|
|
|
<el-input v-model="logisticsForm.logisticsNo" placeholder="请输入快递单号"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="6">
|
|
|
+ <el-col :span="6" v-if="logisticsForm.pickType == 'NO'">
|
|
|
<el-form-item label="物流公司" prop="companyCode"
|
|
|
:rules="[{ required: true, message: '请选择物流公司', trigger: 'change' }]">
|
|
|
<el-select v-model="logisticsForm.companyCode" placeholder="请选择物流公司" style="width: 100%;">
|
|
@@ -346,10 +364,167 @@
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-card class="box-card">
|
|
|
+ <el-tabs v-model="typeIndex">
|
|
|
+ <el-tab-pane label="发货数量" name="1"></el-tab-pane>
|
|
|
+ <el-tab-pane label="发货条码" name="2"></el-tab-pane>
|
|
|
+ </el-tabs>
|
|
|
+ <el-button size="small" v-show="typeIndex == 2" type="primary" @click="addCode()">新增</el-button>
|
|
|
+ <div class="table">
|
|
|
+ <!-- 发货数量 -->
|
|
|
+ <el-form v-show="typeIndex == 1" ref="formData1" :model="formData1" label-width="0" size="small" label-position="left">
|
|
|
+ <el-table :data="formData1.list" element-loading-text="Loading" border fit highlight-current-row stripe>
|
|
|
+ <el-table-column prop="brandName" align="center" label="品牌"></el-table-column>
|
|
|
+ <el-table-column prop="mainName" align="center" label="大类"></el-table-column>
|
|
|
+ <el-table-column prop="smallName" align="center" label="小类"></el-table-column>
|
|
|
+ <el-table-column prop="goodsName" align="center" label="商品名称"></el-table-column>
|
|
|
+ <el-table-column prop="goodsMaterialSpecsName" align="center" label="规格型号"></el-table-column>
|
|
|
+ <el-table-column prop="goodsMaterialUnit" align="center" label="单位"></el-table-column>
|
|
|
+ <el-table-column prop="num" align="center" label="数量"></el-table-column>
|
|
|
+ <el-table-column prop="insideNum" align="center" label="内机数量"></el-table-column>
|
|
|
+ <el-table-column prop="outNum" align="center" label="外机数量"></el-table-column>
|
|
|
+ <el-table-column prop="partNum" align="center" label="配件数量"></el-table-column>
|
|
|
+ <el-table-column prop="insideCodeQty" align="center" label="导入内机条码数量" width="140"></el-table-column>
|
|
|
+ <el-table-column prop="outCodeQty" align="center" label="导入外机条码数量" width="140"></el-table-column>
|
|
|
+ <el-table-column prop="partsCodeQty" align="center" label="导入配件条码数量" width="140"></el-table-column>
|
|
|
+ <el-table-column label="操作" align="center" width="140" fixed="right">
|
|
|
+ <template slot-scope="scope" v-if="formType != 2 && joinCode">
|
|
|
+ <el-upload
|
|
|
+ action='_'
|
|
|
+ :show-file-list='false'
|
|
|
+ :http-request="importCode"
|
|
|
+ >
|
|
|
+ <el-button size="mini" type="text">导入条码</el-button>
|
|
|
+ </el-upload>
|
|
|
+ <el-button size="mini" type="text" @click="handleDownload('导入条码')">模板下载</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-form>
|
|
|
+ <!-- 发货条码 -->
|
|
|
+ <el-form ref="formData2" :model="formData2">
|
|
|
+ <el-table v-show="typeIndex == 2" :data="formData2.list" element-loading-text="Loading" border fit highlight-current-row stripe>
|
|
|
+ <el-table-column label="品牌" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input type="text" v-model="scope.row.brandName" :disabled="true" placeholder="请输入"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="商品大类" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input type="text" v-model="scope.row.mainName" :disabled="true" placeholder="请输入"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="商品小类" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input type="text" v-model="scope.row.smallName" :disabled="true" placeholder="请输入"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="" align="center" label="商品名称">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item>
|
|
|
+ <el-input type="text" v-model="scope.row.goodsMaterialName" :disabled="true" placeholder="请输入"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="规格型号" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item :prop="'list.' + scope.$index + '.specs'" :rules="[{ required: true, message: `请选择规格型号`, trigger: 'blur' }]">
|
|
|
+ <el-select v-model="scope.row.specs" @change="(e)=>{changeSpecs(e,scope.row)}" value-key="goodsMaterialSpecsName" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
|
|
|
+ <el-option
|
|
|
+ v-for="(item,ind) in formData1.list"
|
|
|
+ :key="ind"
|
|
|
+ :label="item.goodsMaterialSpecsName"
|
|
|
+ :value="item">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="物料类型" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item :prop="'list.' + scope.$index + '.goodsMaterialItemType'" :rules="[{ required: true, message: `请选择物料类型`, trigger: 'blur' }]">
|
|
|
+ <el-select v-model="scope.row.goodsMaterialItemType" @change="(e)=>{changeMaterial(e,scope.row)}"
|
|
|
+ :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
|
|
|
+ <el-option
|
|
|
+ v-for="(item,ind) in [{name: '内机',id: 'INSIDE'},{name: '外机',id: 'OUT'},{name: '配件',id: 'PARTS'}]"
|
|
|
+ :key="ind"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="物料名称" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item :prop="'list.' + scope.$index + '.material'" :rules="[{ required: true, message: `请选择物料名称`, trigger: 'blur' }]">
|
|
|
+ <el-select v-model="scope.row.material" @focus="(e)=>{
|
|
|
+ if(!scope.row.goodsMaterialItemType){
|
|
|
+ return this.$message.warning('请先选择物料类型!');
|
|
|
+ }
|
|
|
+ }" @change="(e)=>{
|
|
|
+ scope.row.materialName = e.name
|
|
|
+ scope.row.stockQty = e.stockQty
|
|
|
+ scope.row.uniqueCode = e.uniqueCode
|
|
|
+
|
|
|
+ }" value-key="name" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请选择" style="width: 100%;">
|
|
|
+ <el-option
|
|
|
+ v-for="(item,ind) in scope.row.materialList"
|
|
|
+ :key="ind"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="" align="center" label="是否一物一码" >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item>
|
|
|
+ {{scope.row.uniqueCode=='YES'?'是':scope.row.uniqueCode=='NO'?'否':''}}
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="" align="center" label="条码" >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item :prop="'list.' + scope.$index + '.materialCode'" :rules="[{ required: true, message: `请输入条码`, trigger: 'blur' }]">
|
|
|
+ <el-input type="number" v-model="scope.row.materialCode" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请输入"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="" align="center" label="数量">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-form-item :prop="'list.' + scope.$index + '.stockQty'" :rules="[{ required: true, message: `请输入数量`, trigger: 'blur' }]">
|
|
|
+ <el-input type="number" v-model="scope.row.stockQty" :disabled="isEdit2 != scope.$index || formType == 2" placeholder="请输入"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="right" width="140" fixed="right">
|
|
|
+ <template slot-scope="scope" v-if="formType != 2">
|
|
|
+ <el-button size="mini" type="primary" v-if="scope.$index == isEdit2" @click="saveCode(scope.row)">保存</el-button>
|
|
|
+ <el-button size="mini" type="primary" v-if="scope.$index != isEdit2" @click="isEdit2 = scope.$index">编辑</el-button>
|
|
|
+ <el-popconfirm title="确定删除吗?" @confirm="delCode(scope.row.orderDetailCodeId,scope.$index)">
|
|
|
+ <el-button slot="reference" size="mini" type="danger">删除</el-button>
|
|
|
+ </el-popconfirm>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
+ <br/>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="saveLogistics(data.removeTab)">保 存</el-button>
|
|
|
+ <el-button type="primary" @click="saveLogistics(data.removeTab)">{{logisticsType === 'add'?'发 货':'保 存'}}</el-button>
|
|
|
<el-button @click="cancelLogistics;data.removeTab()">取 消</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -437,14 +612,17 @@
|
|
|
|
|
|
<script>
|
|
|
import { getToken } from '@/utils/auth'
|
|
|
-import { cancelOrder, getList, goodsDeliver, saveRemark, batchShipment, batchRemark, getWebsiteList, editLogistics, getRegion, editAddress } from "@/api/order";
|
|
|
+import { cancelOrder, getList, goodsDeliver, saveRemark, batchShipment, batchRemark, getWebsiteList, editLogistics, getRegion, editAddress, getOrderDetail, getCodeDetail, getMaterialList, listImport, saveCode, delCode } from "@/api/order";
|
|
|
import { getExpress, getCompanyList } from "@/api/common";
|
|
|
import { downloadFiles, handleImport } from '@/utils/util'
|
|
|
+import { commonTemplateDownload } from '@/api/common.js'
|
|
|
+import import_mixin from '@/components/template/import_mixin.js'
|
|
|
import * as Storage from "@/api/storage";
|
|
|
import '@/styles/order-list.scss'
|
|
|
|
|
|
export default {
|
|
|
name: "order_list",
|
|
|
+ mixins: [import_mixin],
|
|
|
data() {
|
|
|
return {
|
|
|
baseURL: process.env.VUE_APP_BASE_API,
|
|
@@ -490,6 +668,9 @@ export default {
|
|
|
companyCode: '',
|
|
|
workOrder: true,
|
|
|
exchange: false,
|
|
|
+ pickType: 'YES',
|
|
|
+ pickName: '',
|
|
|
+ pickPhone: ''
|
|
|
},
|
|
|
storageList: [],
|
|
|
companyList: [],
|
|
@@ -523,8 +704,18 @@ export default {
|
|
|
cityList: [],
|
|
|
areaList: [],
|
|
|
streetList: [],
|
|
|
- formType: 'add',
|
|
|
- formVisible: false,
|
|
|
+ formType: 'add',
|
|
|
+ formVisible: false,
|
|
|
+ typeIndex: '1',
|
|
|
+ formData1: {
|
|
|
+ list: [],
|
|
|
+ },
|
|
|
+ formData2: {
|
|
|
+ list: [],
|
|
|
+ },
|
|
|
+ isEdit1: 0,
|
|
|
+ isEdit2: 0,
|
|
|
+ joinCode: JSON.parse(localStorage.getItem('greemall_user')).joinCode,
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -597,6 +788,117 @@ export default {
|
|
|
// this.listLoading = false;
|
|
|
})
|
|
|
},
|
|
|
+ getOrderDetail(){
|
|
|
+ getOrderDetail({orderId: this.editOrderId}).then(res => {
|
|
|
+ this.formData1.list = res.data.orderDetails
|
|
|
+ })
|
|
|
+ },
|
|
|
+ async getCodeDetail(){
|
|
|
+ getCodeDetail({orderId: this.editOrderId}).then(async res => {
|
|
|
+ for(var item of res.data){
|
|
|
+ item.specs = {goodsMaterialSpecsName: item.specsName}
|
|
|
+ item.material = {name: item.materialName}
|
|
|
+ item.materialList = await this.getMaterialList(item.specsName,item.goodsMaterialItemType)
|
|
|
+ }
|
|
|
+ this.formData2.list = res.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ async getMaterialList(specsName,type){
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ getMaterialList({
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: -1,
|
|
|
+ specsName,
|
|
|
+ type
|
|
|
+ }).then(async res => {
|
|
|
+ resolve(res.data.records)
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ },
|
|
|
+ async changeSpecs(e,row){
|
|
|
+ row.brandName = e.brandName
|
|
|
+ row.brandId = e.brandId
|
|
|
+ row.mainName = e.mainName
|
|
|
+ row.mainId = e.mainNumber
|
|
|
+ row.smallName = e.smallName
|
|
|
+ row.smallId = e.smallNumber
|
|
|
+ row.specsName = e.goodsMaterialSpecsName
|
|
|
+ row.goodsMaterialName = e.goodsName
|
|
|
+ row.goodsMaterialId = e.goodsMaterialId
|
|
|
+ row.material = null
|
|
|
+ row.materialName = ''
|
|
|
+ row.stockQty = ''
|
|
|
+ row.uniqueCode = ''
|
|
|
+ row.materialList = await this.getMaterialList(row.specsName,row.goodsMaterialItemType)
|
|
|
+ },
|
|
|
+ async changeMaterial(e,row){
|
|
|
+ row.material = null
|
|
|
+ row.materialName = ''
|
|
|
+ row.stockQty = ''
|
|
|
+ row.uniqueCode = ''
|
|
|
+ row.materialList = await this.getMaterialList(row.specsName,row.goodsMaterialItemType)
|
|
|
+ },
|
|
|
+ //发货新增条码
|
|
|
+ addCode(){
|
|
|
+ this.isEdit2 = 0
|
|
|
+ this.formData2.list.push({
|
|
|
+ brandId: '',
|
|
|
+ brandName: '',
|
|
|
+ mainId: '',
|
|
|
+ mainName: '',
|
|
|
+ stockQty: '',
|
|
|
+ smallId: '',
|
|
|
+ smallName: '',
|
|
|
+ goodsMaterialItemType: '',
|
|
|
+ goodsMaterialName: '',
|
|
|
+ goodsMaterialId: '',
|
|
|
+ materialCode: '',
|
|
|
+ uniqueCode: '',
|
|
|
+ specs: null,
|
|
|
+ specsName: '',
|
|
|
+ materialName: '',
|
|
|
+ material: null,
|
|
|
+ materialList: []
|
|
|
+ })
|
|
|
+ },
|
|
|
+ delCode(orderDetailCodeId,index){
|
|
|
+ if(orderDetailCodeId){
|
|
|
+ delCode({
|
|
|
+ orderDetailCodeId
|
|
|
+ }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message({ type: 'success', message: '删除成功!' })
|
|
|
+ this.getOrderDetail()
|
|
|
+ this.getCodeDetail()
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ this.formData2.list.splice(index,1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ saveCode(orderDetailCodes){
|
|
|
+ const that = this
|
|
|
+ let params = [{
|
|
|
+ ...orderDetailCodes,
|
|
|
+ orderId: this.editOrderId,
|
|
|
+ }]
|
|
|
+ delete params[0].material;
|
|
|
+ delete params[0].specs;
|
|
|
+ this.$refs.formData2.validate((valid, invalidFields, errLabels) => {
|
|
|
+ if (valid) {
|
|
|
+ saveCode(params).then(res=>{
|
|
|
+ if(res.code == 200){
|
|
|
+ that.$message.success('保存成功!')
|
|
|
+ this.getOrderDetail()
|
|
|
+ this.getCodeDetail()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
// 查看详情
|
|
|
queryDetail(orderId) {
|
|
|
// let {href} = this.$router.resolve({path: `/order/detail?orderId=${orderId}`});
|
|
@@ -708,18 +1010,20 @@ export default {
|
|
|
queryLogistics(order) {
|
|
|
this.logisticsVisible = true
|
|
|
this.logisticsLoading = true
|
|
|
- this.openForm('materialDetail',order)
|
|
|
+ this.openForm('materialDetail',order)
|
|
|
},
|
|
|
// 显示快递信息填写
|
|
|
showLogistics(item, type) {
|
|
|
- this.logisticsType = type;
|
|
|
- this.logisticsIdVisible = true;
|
|
|
- this.editOrderId = item.orderId;
|
|
|
- if(type == 'add'){
|
|
|
- this.openForm('deliverGoods',item)
|
|
|
- }else{
|
|
|
- this.openForm('editExpressage',item)
|
|
|
- }
|
|
|
+ this.logisticsType = type;
|
|
|
+ this.logisticsIdVisible = true;
|
|
|
+ this.editOrderId = item.orderId;
|
|
|
+ if(type == 'add'){
|
|
|
+ this.getOrderDetail()
|
|
|
+ this.getCodeDetail()
|
|
|
+ this.openForm('deliverGoods',item)
|
|
|
+ }else{
|
|
|
+ this.openForm('editExpressage',item)
|
|
|
+ }
|
|
|
},
|
|
|
// 取消快递信息填写
|
|
|
cancelLogistics() {
|
|
@@ -740,6 +1044,9 @@ export default {
|
|
|
companyCode: this.logisticsForm.companyCode,
|
|
|
workOrder: this.logisticsForm.workOrder,
|
|
|
exchange: this.logisticsForm.exchange,
|
|
|
+ pickName: this.logisticsForm.pickName,
|
|
|
+ pickPhone: this.logisticsForm.pickPhone,
|
|
|
+ pickType: this.logisticsForm.pickType,
|
|
|
}).then(() => {
|
|
|
cancel('list')
|
|
|
this.cancelLogistics();
|
|
@@ -1054,6 +1361,53 @@ export default {
|
|
|
})
|
|
|
|
|
|
},
|
|
|
+
|
|
|
+ importCode(data){
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '正在导入',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ })
|
|
|
+ var formdata = new FormData()
|
|
|
+ formdata.append('file', data.file)
|
|
|
+ let params = {}
|
|
|
+ if (!!params) {
|
|
|
+ for (const key in params) {
|
|
|
+ if (Object.hasOwnProperty.call(params, key)) {
|
|
|
+ formdata.append(key, params[key])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ listImport({ formdata })
|
|
|
+ .then(res => {
|
|
|
+ this.$refs.pageRef.refreshList()
|
|
|
+ loading.close()
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: '导入成功!'
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ loading.close()
|
|
|
+ this.$message({
|
|
|
+ type: 'error',
|
|
|
+ message: err.message || '导入失败'
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ // 下载导入模版
|
|
|
+ handleDownload(title) {
|
|
|
+ commonTemplateDownload({ name: '导入条码.xlsx' }, title).then(res => {
|
|
|
+ this.$message({
|
|
|
+ message: '下载成功',
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ }).catch(err => {
|
|
|
+ this.$message.error('下载失败')
|
|
|
+ })
|
|
|
+ },
|
|
|
|
|
|
}
|
|
|
}
|