add
This commit is contained in:
parent
39000c124b
commit
61242276f7
|
@ -1,5 +1,6 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
presets: [
|
presets: [
|
||||||
'@vue/app'
|
'@vue/app'
|
||||||
]
|
],
|
||||||
|
plugins: ["@babel/plugin-proposal-optional-chaining"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,6 +94,7 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "7.0.0",
|
"@babel/core": "7.0.0",
|
||||||
|
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
||||||
"@babel/register": "7.0.0",
|
"@babel/register": "7.0.0",
|
||||||
"@vue/cli-plugin-babel": "3.5.3",
|
"@vue/cli-plugin-babel": "3.5.3",
|
||||||
"@vue/cli-plugin-eslint": "^3.9.1",
|
"@vue/cli-plugin-eslint": "^3.9.1",
|
||||||
|
|
|
@ -15,6 +15,24 @@ import request from './request'
|
||||||
export function orderListApi(data) {
|
export function orderListApi(data) {
|
||||||
return request.get('order/lst', data)
|
return request.get('order/lst', data)
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @description 退款订单 -- 详情
|
||||||
|
*/
|
||||||
|
export function refundorderDetailApi(id) {
|
||||||
|
return request.get(`order/refund/detail/${id}`)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @description 退款订单 -- 记录from
|
||||||
|
*/
|
||||||
|
export function refundorderLogApi(id) {
|
||||||
|
return request.get(`order/refund/log/${id}`)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @description 退款订单 -- 审核from
|
||||||
|
*/
|
||||||
|
export function refundorderStatusApi(id) {
|
||||||
|
return request.get(`order/refund/status/${id}/form`)
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description 开启退款
|
* @description 开启退款
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -160,7 +160,7 @@
|
||||||
<el-table-column prop="mer_money" label="商户余额(元)" min-width="120"/>
|
<el-table-column prop="mer_money" label="商户余额(元)" min-width="120"/>
|
||||||
<el-table-column label="操作" min-width="180" fixed="right">
|
<el-table-column label="操作" min-width="180" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button v-if="scope.row.status == 0" type="text" size="small" @click="transferDetail(scope.row.financial_id)">审核</el-button>
|
<el-button v-if="scope.row.status == 0" type="text" size="small" @click="transferDetail(scope.row.financial_id)">{{ getStatusName(scope.row.status) }}</el-button>
|
||||||
<el-button v-if="scope.row.status == 1 && scope.row.financial_status != 1" type="text" size="small" @click="transferDetail(scope.row.financial_id,1)">转账</el-button>
|
<el-button v-if="scope.row.status == 1 && scope.row.financial_status != 1" type="text" size="small" @click="transferDetail(scope.row.financial_id,1)">转账</el-button>
|
||||||
<el-button v-if="scope.row.status == 1 && scope.row.financial_status == 1" type="text" size="small" @click="transferDetail(scope.row.financial_id,0)">转账信息</el-button>
|
<el-button v-if="scope.row.status == 1 && scope.row.financial_status == 1" type="text" size="small" @click="transferDetail(scope.row.financial_id,0)">转账信息</el-button>
|
||||||
<el-button type="text" size="small" @click="transferMark(scope.row.financial_id)">备注</el-button>
|
<el-button type="text" size="small" @click="transferMark(scope.row.financial_id)">备注</el-button>
|
||||||
|
@ -339,6 +339,16 @@ export default {
|
||||||
this.getHeaderData();
|
this.getHeaderData();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getStatusName(val){
|
||||||
|
switch (val) {
|
||||||
|
case 0:
|
||||||
|
return '初始审核';
|
||||||
|
case 10:
|
||||||
|
return '第二步审核';
|
||||||
|
case 11:
|
||||||
|
return '最终审核';
|
||||||
|
}
|
||||||
|
},
|
||||||
/**重置 */
|
/**重置 */
|
||||||
searchReset(){
|
searchReset(){
|
||||||
this.timeVal = []
|
this.timeVal = []
|
||||||
|
|
|
@ -170,7 +170,6 @@ export default {
|
||||||
if(!res.data.financial_bank){
|
if(!res.data.financial_bank){
|
||||||
this.merData.financial_bank = financial_bank;
|
this.merData.financial_bank = financial_bank;
|
||||||
}
|
}
|
||||||
console.log(this.merData);
|
|
||||||
if(!this.isEdit)this.$refs.merInfo.onOperateLog(this.merId);
|
if(!this.isEdit)this.$refs.merInfo.onOperateLog(this.merId);
|
||||||
})
|
})
|
||||||
.catch((res) => {
|
.catch((res) => {
|
||||||
|
@ -179,7 +178,12 @@ export default {
|
||||||
},
|
},
|
||||||
initData(){
|
initData(){
|
||||||
this.merData = {
|
this.merData = {
|
||||||
is_trader:0
|
is_trader:0,
|
||||||
|
financial_bank:{
|
||||||
|
name:'',
|
||||||
|
bank:'',
|
||||||
|
bank_code:'',
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.isEdit = false;
|
this.isEdit = false;
|
||||||
this.isAdd = true;
|
this.isAdd = true;
|
||||||
|
|
|
@ -129,6 +129,17 @@
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="每日提现额度:" prop="exchange_limit">
|
||||||
|
<el-input
|
||||||
|
size="small"
|
||||||
|
oninput ="value=value.replace(/[^\d]/g,'')"
|
||||||
|
v-model="merData.exchange_limit"
|
||||||
|
placeholder="请输入每日提现额度"
|
||||||
|
class="selWidth"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<div class="title">银行卡信息</div>
|
<div class="title">银行卡信息</div>
|
||||||
<el-row v-if="merData.financial_bank">
|
<el-row v-if="merData.financial_bank">
|
||||||
|
@ -158,6 +169,7 @@
|
||||||
<el-form-item label="开户银行卡号:" prop="financial_bank.bank_code">
|
<el-form-item label="开户银行卡号:" prop="financial_bank.bank_code">
|
||||||
<el-input
|
<el-input
|
||||||
size="small"
|
size="small"
|
||||||
|
oninput ="value=value.replace(/[^\d]/g,'')"
|
||||||
v-model="merData.financial_bank.bank_code"
|
v-model="merData.financial_bank.bank_code"
|
||||||
placeholder="请输入开户银行卡号"
|
placeholder="请输入开户银行卡号"
|
||||||
class="selWidth"
|
class="selWidth"
|
||||||
|
|
|
@ -50,13 +50,38 @@
|
||||||
<div>更新时间:</div>
|
<div>更新时间:</div>
|
||||||
<div class="value">{{merData.update_time}}</div>
|
<div class="value">{{merData.update_time}}</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="item">
|
||||||
|
<div>每日提现额度:</div>
|
||||||
|
<div class="value">{{merData.exchange_limit}}</div>
|
||||||
|
</li>
|
||||||
<li class="item">
|
<li class="item">
|
||||||
<div>备注:</div>
|
<div>备注:</div>
|
||||||
<div class="value">{{merData.mark}}</div>
|
<div class="value">{{merData.mark}}</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="item" style="align-content: center;">
|
<li class="item" style="align-content: center;">
|
||||||
<div>营业执照:</div>
|
<div>营业执照:</div>
|
||||||
<el-image style="width: 60px;height: 60px;" :src="merData.ext.company_image[0]" :preview-src-list="merData.ext.company_image" />
|
<el-image v-for="(item,index) in companyImage" :key="index" style="width: 60px;height: 60px;" :src="item" :preview-src-list="companyImage" />
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="title" style="margin-top: 10px;">银行卡信息</div>
|
||||||
|
<ul class="list">
|
||||||
|
<li class="item">
|
||||||
|
<div>名称:</div>
|
||||||
|
<div class="value">
|
||||||
|
{{merData.financial_bank&&merData.financial_bank.name}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="item">
|
||||||
|
<div>开户银行:</div>
|
||||||
|
<div class="value">
|
||||||
|
{{merData.financial_bank&&merData.financial_bank.bank}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="item">
|
||||||
|
<div>开户卡号:</div>
|
||||||
|
<div class="value">
|
||||||
|
{{merData.financial_bank&&merData.financial_bank.bank_code}}
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -318,6 +343,11 @@ export default {
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
companyImage(){
|
||||||
|
return this.merData.ext?.company_image
|
||||||
|
}
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
lookImg(item) {
|
lookImg(item) {
|
||||||
this.imageUrl = item;
|
this.imageUrl = item;
|
||||||
|
|
|
@ -106,6 +106,16 @@
|
||||||
>
|
>
|
||||||
<el-table-column prop="mer_id" label="ID" min-width="60" />
|
<el-table-column prop="mer_id" label="ID" min-width="60" />
|
||||||
<el-table-column prop="mer_name" label="商户名称" min-width="150" />
|
<el-table-column prop="mer_name" label="商户名称" min-width="150" />
|
||||||
|
<el-table-column prop="is_huimei" label="是否惠美乡村" min-width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{scope.row.is_huimei == 1 ? '是' : '否'}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="is_soldier" label="是否军人" min-width="80">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{scope.row.is_soldier == 1 ? '是' : '否'}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="real_name" label="商户姓名" min-width="150" />
|
<el-table-column prop="real_name" label="商户姓名" min-width="150" />
|
||||||
<el-table-column prop="status" label="推荐" min-width="100">
|
<el-table-column prop="status" label="推荐" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
|
@ -153,6 +153,8 @@
|
||||||
size="small"
|
size="small"
|
||||||
@click="onOrderDetail(scope.row.order.order_sn)"
|
@click="onOrderDetail(scope.row.order.order_sn)"
|
||||||
>订单详情</el-button>
|
>订单详情</el-button>
|
||||||
|
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="onOrderStatus(scope.row.refund_order_id)">退款</el-button>
|
||||||
|
<el-button type="text" size="small" @click="onRefundOrderDetail(scope.row.refund_order_id)">退款单详情</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -170,6 +172,8 @@
|
||||||
</el-card>
|
</el-card>
|
||||||
<!--导出订单列表-->
|
<!--导出订单列表-->
|
||||||
<file-list ref="exportList" />
|
<file-list ref="exportList" />
|
||||||
|
<!--详情-->
|
||||||
|
<details-from ref="orderDetail" :order-datalist="orderDatalist" @get-logistics="openLogistics" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -186,15 +190,18 @@
|
||||||
import {
|
import {
|
||||||
refundorderListApi,
|
refundorderListApi,
|
||||||
orderUpdateApi,
|
orderUpdateApi,
|
||||||
|
refundorderStatusApi,
|
||||||
|
refundorderDetailApi,
|
||||||
orderDeliveryApi, exportRefundOrderApi
|
orderDeliveryApi, exportRefundOrderApi
|
||||||
} from "@/api/order";
|
} from "@/api/order";
|
||||||
import createWorkBook from '@/utils/newToExcel.js';
|
import createWorkBook from '@/utils/newToExcel.js';
|
||||||
|
import detailsFrom from './refundDetail'
|
||||||
import { fromList } from "@/libs/constants.js";
|
import { fromList } from "@/libs/constants.js";
|
||||||
import fileList from '@/components/exportFile/fileList'
|
import fileList from '@/components/exportFile/fileList'
|
||||||
import { roterPre } from "@/settings";
|
import { roterPre } from "@/settings";
|
||||||
import timeOptions from '@/utils/timeOptions';
|
import timeOptions from '@/utils/timeOptions';
|
||||||
export default {
|
export default {
|
||||||
components: { fileList },
|
components: { fileList,detailsFrom },
|
||||||
name: "OrderRefund",
|
name: "OrderRefund",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
@ -232,6 +239,9 @@ export default {
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
cardLists: [],
|
cardLists: [],
|
||||||
orderDatalist: null,
|
orderDatalist: null,
|
||||||
|
orderDetails: {},
|
||||||
|
result: [],
|
||||||
|
dialogLogistics:false
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -252,6 +262,45 @@ export default {
|
||||||
this.getList('');
|
this.getList('');
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 退款
|
||||||
|
onOrderStatus(id) {
|
||||||
|
this.$modalForm(refundorderStatusApi(id)).then(() => this.getList(''))
|
||||||
|
},
|
||||||
|
// 详情
|
||||||
|
onRefundOrderDetail(id) {
|
||||||
|
this.orderId = id
|
||||||
|
this.$refs.orderDetail.dialogVisible = true
|
||||||
|
this.loading = true
|
||||||
|
refundorderDetailApi(id)
|
||||||
|
.then(res => {
|
||||||
|
this.orderDatalist = res.data
|
||||||
|
this.loading = false
|
||||||
|
this.$refs.orderDetail.onOrderLog(id)
|
||||||
|
})
|
||||||
|
.catch(({ message }) => {
|
||||||
|
this.loading = false
|
||||||
|
this.$message.error(message)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openLogistics(row) {
|
||||||
|
this.orderDetails = row
|
||||||
|
this.getOrderData(row.refund_order_id)
|
||||||
|
this.dialogLogistics = true
|
||||||
|
},
|
||||||
|
handleClose() {
|
||||||
|
this.dialogLogistics = false
|
||||||
|
this.dialogConfirm = false
|
||||||
|
},
|
||||||
|
// 获取订单物流信息
|
||||||
|
getOrderData(id) {
|
||||||
|
refundorderExpressApi(id)
|
||||||
|
.then(async res => {
|
||||||
|
this.result = res.data
|
||||||
|
})
|
||||||
|
.catch(res => {
|
||||||
|
this.$message.error(res.message)
|
||||||
|
})
|
||||||
|
},
|
||||||
/**重置 */
|
/**重置 */
|
||||||
searchReset(){
|
searchReset(){
|
||||||
this.timeVal = []
|
this.timeVal = []
|
||||||
|
|
|
@ -0,0 +1,192 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
v-if="orderDatalist"
|
||||||
|
v-loading="loading"
|
||||||
|
title="退款单信息"
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
width="700px"
|
||||||
|
>
|
||||||
|
<div class="description">
|
||||||
|
<div class="title">用户信息</div>
|
||||||
|
<div class="acea-row">
|
||||||
|
<div class="description-term">用户昵称:{{ orderDatalist.user.nickname }}</div>
|
||||||
|
<div class="description-term">退货人:{{ orderDatalist.order.real_name }}</div>
|
||||||
|
<div class="description-term">联系电话:{{ orderDatalist.order.user_phone }}</div>
|
||||||
|
<div class="description-term">退货地址:{{ orderDatalist.order.user_address }}</div>
|
||||||
|
<div class="description-term">备注:{{ orderDatalist.mark }}</div>
|
||||||
|
</div>
|
||||||
|
<el-divider />
|
||||||
|
<div class="title">{{orderDatalist.refund_type == 1 ? '退款信息' : '退回商品信息'}}</div>
|
||||||
|
<div class="acea-row">
|
||||||
|
<div class="description-term">订单编号:{{ orderDatalist.order.order_sn }}</div>
|
||||||
|
<div class="description-term">订单状态:{{ orderDatalist.status | orderRefundFilter }}</div>
|
||||||
|
<div class="description-term100">退款单号:{{ orderDatalist.refund_order_sn }}</div>
|
||||||
|
<div class="description-term100">退款商品名称:
|
||||||
|
<div class="product_name">
|
||||||
|
<div v-for="(item,index) in orderDatalist.refundProduct" :key="index">
|
||||||
|
<span v-if="item.product && item.product.cart_info && item.product.cart_info.product">{{item.product.cart_info.product.store_name}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="description-term">退款发起方:{{ orderDatalist.create_user }}</div>
|
||||||
|
<div class="description-term">退款商品件数:{{ orderDatalist.refund_num }}件</div>
|
||||||
|
<div class="description-term">退款总金额:{{ orderDatalist.refund_price }}元</div>
|
||||||
|
<div v-if="orderDatalist.delivery_id" class="description-term">退货快递单号:{{ orderDatalist.delivery_id }}</div>
|
||||||
|
<div class="description-term">创建时间:{{ orderDatalist.create_time }}</div>
|
||||||
|
<div class="description-term">商家备注:{{ orderDatalist.mer_mark }}</div>
|
||||||
|
<div class="description-term100">退款凭证:
|
||||||
|
<div class="product_name" style="margin-left: 70px;">
|
||||||
|
<div class="demo-image__preview">
|
||||||
|
<el-image
|
||||||
|
v-for="(item,index) in orderDatalist.pics"
|
||||||
|
:key="index"
|
||||||
|
:src="item"
|
||||||
|
class="mr5"
|
||||||
|
:preview-src-list="[item]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-divider />
|
||||||
|
<div class="title">订单记录</div>
|
||||||
|
<el-table v-loading="LogLoading" border :data="tableDataLog.data" style="width: 100%">
|
||||||
|
<el-table-column prop="order_id" align="center" label="退款单ID" min-width="80" />
|
||||||
|
<el-table-column prop="change_message" label="操作记录" align="center" min-width="280" />
|
||||||
|
<el-table-column prop="change_time" label="操作时间" align="center" min-width="280" />
|
||||||
|
</el-table>
|
||||||
|
<div class="block">
|
||||||
|
<el-pagination
|
||||||
|
:page-size="tableFromLog.limit"
|
||||||
|
:current-page="tableFromLog.page"
|
||||||
|
layout="prev, pager, next, jumper"
|
||||||
|
:total="tableDataLog.total"
|
||||||
|
@size-change="handleSizeChangeLog"
|
||||||
|
@current-change="pageChangeLog"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<el-divider />
|
||||||
|
<div v-if="(orderDatalist.status == 2 || orderDatalist.status == 3) && orderDatalist.refund_type == 2">
|
||||||
|
<div class="title">退货物流信息</div>
|
||||||
|
<div class="acea-row">
|
||||||
|
<div class="description-term">
|
||||||
|
快递公司:{{ orderDatalist.delivery_type }}
|
||||||
|
<el-button size="small" type="text" style="margin-left: 10px;" @click="getLoginstics">物流查询</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="description-term">快递单号:{{ orderDatalist.delivery_id }}</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
// | Author: CRMEB Team <admin@crmeb.com>
|
||||||
|
// +----------------------------------------------------------------------
|
||||||
|
import {
|
||||||
|
refundorderLogApi
|
||||||
|
} from '@/api/order'
|
||||||
|
export default {
|
||||||
|
name: 'OrderDetail',
|
||||||
|
props: {
|
||||||
|
orderDatalist: {
|
||||||
|
type: Object,
|
||||||
|
default: null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
LogLoading: false,
|
||||||
|
// orderDatalist: null,
|
||||||
|
loading: false,
|
||||||
|
listLoading: true,
|
||||||
|
order_id: '',
|
||||||
|
tableDataLog: {
|
||||||
|
data: [],
|
||||||
|
total: 0,
|
||||||
|
},
|
||||||
|
tableFromLog: {
|
||||||
|
page: 1,
|
||||||
|
limit: 5
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 订单记录
|
||||||
|
onOrderLog(id) {
|
||||||
|
this.LogLoading = true
|
||||||
|
this.order_id = id;
|
||||||
|
refundorderLogApi(id, this.tableFromLog)
|
||||||
|
.then(res => {
|
||||||
|
this.tableDataLog.data = res.data.list
|
||||||
|
this.tableDataLog.total = res.data.count
|
||||||
|
this.LogLoading = false
|
||||||
|
})
|
||||||
|
.catch(res => {
|
||||||
|
this.$message.error(res.message)
|
||||||
|
this.LogLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**查看物流 */
|
||||||
|
getLoginstics(){
|
||||||
|
this.$emit('get-logistics',this.orderDatalist)
|
||||||
|
},
|
||||||
|
pageChangeLog(page) {
|
||||||
|
this.tableFromLog.page = page
|
||||||
|
this.onOrderLog(this.order_id)
|
||||||
|
},
|
||||||
|
handleSizeChangeLog(val) {
|
||||||
|
this.tableFromLog.limit = val
|
||||||
|
this.onOrderLog(this.order_id)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.title{
|
||||||
|
margin-bottom: 16px;
|
||||||
|
color: #17233d;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.description{
|
||||||
|
&-term {
|
||||||
|
display: table-cell;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
line-height: 20px;
|
||||||
|
width: 50%;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.description-term100{
|
||||||
|
display: table-cell;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
line-height: 20px;
|
||||||
|
width: 100%;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
.product_name{
|
||||||
|
margin-left: 90px;
|
||||||
|
position: relative;
|
||||||
|
top: -20px;
|
||||||
|
}
|
||||||
|
.demo-image__preview {
|
||||||
|
.el-image,img{
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -135,6 +135,7 @@
|
||||||
<span>{{ scope.row.merchant ? scope.row.merchant.mer_name : '' }}</span>
|
<span>{{ scope.row.merchant ? scope.row.merchant.mer_name : '' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column prop="remark" label="商品备注" min-width="100" />
|
||||||
<el-table-column label="是否惠美乡村产品" min-width="100">
|
<el-table-column label="是否惠美乡村产品" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.is_soldier ? '是' : '否' }}</span>
|
<span>{{ scope.row.is_soldier ? '是' : '否' }}</span>
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.businessList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -121,7 +121,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.trademarkList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -139,7 +139,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.authorizedList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -157,7 +157,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.commodityList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -175,7 +175,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.otherList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -196,7 +196,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.importBusinessList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -214,7 +214,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.importAuthorizedList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -232,7 +232,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.customsList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -250,7 +250,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.packingList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -268,7 +268,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px;"
|
style="width: 60px; height: 60px;"
|
||||||
:src="item.url"
|
:src="item.url"
|
||||||
:preview-src-list="qualification.importOtherList"
|
:preview-src-list="[item.url]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -48,11 +48,23 @@
|
||||||
<ul class="list">
|
<ul class="list">
|
||||||
<li class="item item100">
|
<li class="item item100">
|
||||||
<div class="item-title">封面图:</div>
|
<div class="item-title">封面图:</div>
|
||||||
<img :src="productData.image" style="width:40px;height:40px;margin-right:12px;"/>
|
<!-- <img :src="productData.image" style="width:40px;height:40px;margin-right:12px;"/> -->
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px"
|
||||||
|
:src="productData.image"
|
||||||
|
:preview-src-list="[productData.image]"
|
||||||
|
/>
|
||||||
</li>
|
</li>
|
||||||
<li class="item item100">
|
<li class="item item100">
|
||||||
<div class="item-title">轮播图:</div>
|
<div class="item-title">轮播图:</div>
|
||||||
<img v-for="(pic,idx) in productData.slider_image" :key="idx" :src="pic" style="width:40px;height:40px;margin-right:12px;"/>
|
<el-image
|
||||||
|
v-for="(pic,idx) in productData.slider_image"
|
||||||
|
style="width: 60px; height: 60px"
|
||||||
|
:key="idx"
|
||||||
|
:src="pic"
|
||||||
|
:preview-src-list="productData.slider_image"
|
||||||
|
/>
|
||||||
|
<!-- <img v-for="(pic,idx) in productData.slider_image" :key="idx" :src="pic" style="width:40px;height:40px;margin-right:12px;"/> -->
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<li class="item item100">
|
<li class="item item100">
|
||||||
|
@ -144,6 +156,7 @@
|
||||||
<el-image
|
<el-image
|
||||||
style="width: 60px; height: 60px"
|
style="width: 60px; height: 60px"
|
||||||
:src="scope.row.image"
|
:src="scope.row.image"
|
||||||
|
:preview-src-list="[scope.row.image]"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -485,6 +498,200 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
<el-tab-pane label="资质信息" name="aptitude">
|
||||||
|
<span class="sp">商品名称:
|
||||||
|
<el-radio-group v-model="qualification.commodity_type">
|
||||||
|
<el-radio :label="0" class="radio" :disabled="qualification.commodity_type==1">国产</el-radio>
|
||||||
|
<el-radio :label="1" :disabled="qualification.commodity_type==0">进口</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</span>
|
||||||
|
<div v-if="qualification.commodity_type == 0">
|
||||||
|
<span class="sp">生产企业名称:{{ qualification.production_name }}</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">生产营业执照:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.businessList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">商标注册证:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.trademarkList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">销售授权及其他:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.authorizedList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">商品检测报告:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.commodityList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">其他资质:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.otherList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div v-if="qualification.commodity_type == 1">
|
||||||
|
<span class="sp">进口/企业境内总代企业名称: {{ qualification.import_name }}</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">生产营业执照:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.importBusinessList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">销售授权及其他:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.importAuthorizedList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">海关检验检疫证书及报关单:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.customsList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">产品外包装实物图:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.packingList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
<span class="upload">
|
||||||
|
<div class="upload_left">其他资质:</div>
|
||||||
|
<div class="upload_right">
|
||||||
|
<div
|
||||||
|
v-for="(item,index) in qualification.importOtherList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
|
<a class="txt" v-if="getType(item)" :href="item.url" target="downloadFile" download>{{ item.name }}</a>
|
||||||
|
<div class="pictrue" v-else>
|
||||||
|
<el-image
|
||||||
|
style="width: 60px; height: 60px;"
|
||||||
|
:src="item.url"
|
||||||
|
:preview-src-list="[item.url]"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</div>
|
</div>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
@ -575,6 +782,23 @@ export default {
|
||||||
return {
|
return {
|
||||||
loading: true,
|
loading: true,
|
||||||
productId: '',
|
productId: '',
|
||||||
|
qualification:{
|
||||||
|
production_name: '',
|
||||||
|
businessList: [],
|
||||||
|
licenceList: [],
|
||||||
|
trademarkList: [],
|
||||||
|
authorizedList: [],
|
||||||
|
commodityList: [],
|
||||||
|
otherList: [],
|
||||||
|
importBusinessList: [],
|
||||||
|
importAuthorizedList: [],
|
||||||
|
customsList: [],
|
||||||
|
packingList: [],
|
||||||
|
importOtherList: [],
|
||||||
|
commodity_type: 0,
|
||||||
|
brands_name: '',
|
||||||
|
import_name: ''
|
||||||
|
},
|
||||||
direction: 'rtl',
|
direction: 'rtl',
|
||||||
activeName: 'basic',
|
activeName: 'basic',
|
||||||
productData: {},
|
productData: {},
|
||||||
|
@ -617,6 +841,11 @@ export default {
|
||||||
filters: {
|
filters: {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
getType(val){
|
||||||
|
var regex = /(?:\.([^.]+))?$/;
|
||||||
|
let suffix = regex.exec(val.url)[1]
|
||||||
|
return suffix == 'pdf'
|
||||||
|
},
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.activeName = 'basic';
|
this.activeName = 'basic';
|
||||||
this.$emit('closeDrawer');
|
this.$emit('closeDrawer');
|
||||||
|
@ -627,6 +856,7 @@ export default {
|
||||||
productDetailApi(id).then(res => {
|
productDetailApi(id).then(res => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.productData = res.data
|
this.productData = res.data
|
||||||
|
this.qualification = res.data.qualification
|
||||||
this.mer_svip_status = res.data.mer_svip_status
|
this.mer_svip_status = res.data.mer_svip_status
|
||||||
this.svip_type = res.data.svip_price_type
|
this.svip_type = res.data.svip_price_type
|
||||||
if (this.productData.spec_type === 0) {
|
if (this.productData.spec_type === 0) {
|
||||||
|
@ -764,6 +994,40 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.sp {
|
||||||
|
display: block;
|
||||||
|
// width: 33%;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
.upload{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
// align-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 60px;
|
||||||
|
// line-height: 60px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
&_right{
|
||||||
|
display: flex;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
&_left{
|
||||||
|
width: 115px;
|
||||||
|
}
|
||||||
|
.txt{
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
line-height: 60px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: inline-block;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
border: 1px solid #DCDFE6;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin-right: 10px;
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
}
|
||||||
.tabNumWidth{
|
.tabNumWidth{
|
||||||
max-height: 350px;
|
max-height: 350px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
Loading…
Reference in New Issue