Merge branch 'main' of https://code.tiantongsl.com/bin/shop-many-admin-ui
# Conflicts: # .env.development
This commit is contained in:
commit
68b920a7bc
|
@ -1,5 +1,6 @@
|
|||
module.exports = {
|
||||
presets: [
|
||||
'@vue/app'
|
||||
]
|
||||
],
|
||||
plugins: ["@babel/plugin-proposal-optional-chaining"]
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.0.0",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
|
||||
"@babel/register": "7.0.0",
|
||||
"@vue/cli-plugin-babel": "3.5.3",
|
||||
"@vue/cli-plugin-eslint": "^3.9.1",
|
||||
|
|
|
@ -100,19 +100,19 @@ export function capitalFlowExportApi(data) {
|
|||
/**
|
||||
* @description 转账记录 -- 导出
|
||||
*/
|
||||
export function transferRecordsExportApi(data) {
|
||||
export function transferRecordsExportApi(data) {
|
||||
return request.get(`financial/export`, data)
|
||||
}
|
||||
/**
|
||||
* @description 资金记录 -- 导出
|
||||
*/
|
||||
export function fundingRecordsExportApi(data) {
|
||||
export function fundingRecordsExportApi(data) {
|
||||
return request.get(`bill/export`, data)
|
||||
}
|
||||
/**
|
||||
* @description 提现管理 -- 导出
|
||||
*/
|
||||
export function extractManageExportApi(data) {
|
||||
export function extractManageExportApi(data) {
|
||||
return request.get(`user/extract/export`, data)
|
||||
}
|
||||
/**
|
||||
|
@ -164,6 +164,24 @@ export function transferDetailApi(id) {
|
|||
export function transferReviewApi(id, data) {
|
||||
return request.post(`financial/status/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 申请转账 -- 第二步审核
|
||||
*/
|
||||
export function transferReviewFirstApi(id, data) {
|
||||
return request.post(`financial/status_first/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 申请转账 -- 最终审核
|
||||
*/
|
||||
export function transferReviewSecondApi(id, data) {
|
||||
return request.post(`financial/status_second/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 申请转账 -- 批量审核
|
||||
*/
|
||||
export function transferReviewBatchApi(data) {
|
||||
return request.post(`financial/status_batch`, data)
|
||||
}
|
||||
/**
|
||||
* @description 申请转账 -- 备注
|
||||
*/
|
||||
|
@ -204,7 +222,7 @@ export function downloadFinancialApi(type, data) {
|
|||
* @description 资金流水 -- 统计数据
|
||||
*/
|
||||
export function getStatisticsApi(data) {
|
||||
return request.get(`financial_record/count`,data)
|
||||
return request.get(`financial_record/count`, data)
|
||||
}
|
||||
/**
|
||||
* @description 发票 -- 获取发票说明
|
||||
|
@ -227,19 +245,19 @@ export function invoiceListApi(data) {
|
|||
/**
|
||||
* @description 发票 -- 详情
|
||||
*/
|
||||
export function invoiceDetailApi(id) {
|
||||
export function invoiceDetailApi(id) {
|
||||
return request.get(`receipt/detail/${id}`)
|
||||
}
|
||||
/**
|
||||
* @description 分账单 -- 获取配置
|
||||
*/
|
||||
export function getSettingApi() {
|
||||
export function getSettingApi() {
|
||||
return request.get(`profitsharing/config`)
|
||||
}
|
||||
/**
|
||||
* @description 分账单 -- 修改配置
|
||||
*/
|
||||
export function updateSettingApi(data) {
|
||||
export function updateSettingApi(data) {
|
||||
return request.post(`profitsharing/config`, data)
|
||||
}
|
||||
/**
|
||||
|
@ -251,24 +269,24 @@ export function merchantBillList(data) {
|
|||
/**
|
||||
* @description 单个商户账单 -- 列表
|
||||
*/
|
||||
export function singleMerBillList(id,data) {
|
||||
export function singleMerBillList(id, data) {
|
||||
return request.get(`financial_record/mer_list/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 单个商户账单 -- 详情
|
||||
*/
|
||||
export function singleMerBillDetail(type,data) {
|
||||
export function singleMerBillDetail(type, data) {
|
||||
return request.get(`financial_record/mer_detail/${type}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 单个商户账单 -- 导出
|
||||
*/
|
||||
export function singleMerBillExport(type,data) {
|
||||
export function singleMerBillExport(type, data) {
|
||||
return request.get(`financial_record/mer_excel/${type}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 单个商户账单 -- 统计
|
||||
*/
|
||||
export function singleMerBillHeader(id,data) {
|
||||
export function singleMerBillHeader(id, data) {
|
||||
return request.get(`financial_record/mer_title/${id}`, data)
|
||||
}
|
|
@ -67,8 +67,8 @@ export function merchantUpdateApi(id) {
|
|||
/**
|
||||
* @description 商户列表 -- 编辑
|
||||
*/
|
||||
export function merchantUpdate(id,data) {
|
||||
return request.post(`system/merchant/update/${id}`,data)
|
||||
export function merchantUpdate(id, data) {
|
||||
return request.post(`system/merchant/update/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 商户列表 -- 删除
|
||||
|
@ -198,12 +198,12 @@ export function intentionAgreeInfo() {
|
|||
* @description 申请管理 -- 入驻协议保存
|
||||
*/
|
||||
export function intentionAgreeUpdate(data) {
|
||||
return request.post(`agreement/sys_intention_agree`,data)
|
||||
return request.post(`agreement/sys_intention_agree`, data)
|
||||
}
|
||||
/**
|
||||
* @description 店铺类型 -- 获取说明
|
||||
*/
|
||||
export function getStoreTypeApi(key) {
|
||||
export function getStoreTypeApi(key) {
|
||||
return request.get(`agreement/${key}`)
|
||||
}
|
||||
/**
|
||||
|
@ -234,13 +234,13 @@ export function storeTypeCreateApi(data) {
|
|||
/**
|
||||
* @description 店铺类型 -- 列表
|
||||
*/
|
||||
export function storeTypeLstApi(data) {
|
||||
export function storeTypeLstApi(data) {
|
||||
return request.get(`merchant/type/lst`, data)
|
||||
}
|
||||
/**
|
||||
* @description 店铺类型 -- 店铺权限
|
||||
*/
|
||||
export function storeJurisdictionApi() {
|
||||
export function storeJurisdictionApi() {
|
||||
return request.get(`merchant/mer_auth`)
|
||||
}
|
||||
/**
|
||||
|
@ -264,7 +264,7 @@ export function merchantTypeMarkForm(id) {
|
|||
/**
|
||||
* @description 店铺类型列表 -- 详情
|
||||
*/
|
||||
export function merchantTypeDetailApi(id) {
|
||||
export function merchantTypeDetailApi(id) {
|
||||
return request.get(`/merchant/type/detail/${id}`)
|
||||
}
|
||||
/**
|
||||
|
@ -300,13 +300,13 @@ export function applymentDetailApi(id) {
|
|||
/**
|
||||
* @description 商户 -- 分账列表
|
||||
*/
|
||||
export function applymentLstApi(data) {
|
||||
export function applymentLstApi(data) {
|
||||
return request.get(`profitsharing/lst`, data)
|
||||
}
|
||||
/**
|
||||
* @description 商户 -- 分账(立即分账)
|
||||
*/
|
||||
export function splitAccountApi(id) {
|
||||
export function splitAccountApi(id) {
|
||||
return request.post(`profitsharing/again/${id}`)
|
||||
}
|
||||
/**
|
||||
|
@ -318,61 +318,97 @@ export function splitAccountMark(id) {
|
|||
/**
|
||||
* @description 分账管理 -- 导出
|
||||
*/
|
||||
export function ledgerManageExportApi(data) {
|
||||
export function ledgerManageExportApi(data) {
|
||||
return request.get(`profitsharing/export`, data)
|
||||
}
|
||||
/**
|
||||
* @description 缴存保证金 -- 列表
|
||||
*/
|
||||
export function marginLstApi(data) {
|
||||
export function marginLstApi(data) {
|
||||
return request.get(`margin/lst`, data)
|
||||
}
|
||||
/**
|
||||
* @description 缴存服务费 -- 列表
|
||||
*/
|
||||
export function marginServiceLstApi(data) {
|
||||
return request.get(`margin/service_lst`, data)
|
||||
}
|
||||
/**
|
||||
* @description 缴存上架费 -- 列表
|
||||
*/
|
||||
export function marginGoodsLstApi(data) {
|
||||
return request.get(`margin/goods_lst`, data)
|
||||
}
|
||||
/**
|
||||
* @description 待缴保证金 -- 列表
|
||||
*/
|
||||
export function marginDepositLstApi(data) {
|
||||
return request.get(`margin/make_up`, data)
|
||||
}
|
||||
/**
|
||||
* @description 待缴服务费 -- 列表
|
||||
*/
|
||||
export function marginServiceDepositLstApi(data) {
|
||||
return request.get(`margin/make_service_up`, data)
|
||||
}
|
||||
/**
|
||||
* @description 待缴上架费 -- 列表
|
||||
*/
|
||||
export function marginGoodsDepositLstApi(data) {
|
||||
return request.get(`margin/make_goods_up`, data)
|
||||
}
|
||||
/**
|
||||
* @description 待缴保证金 -- 线下付款
|
||||
*/
|
||||
export function marginPaymentApi(id) {
|
||||
return request.get(`margin/local/${id}/form`)
|
||||
}
|
||||
/**
|
||||
* @description 待缴服务费 -- 财务审核
|
||||
*/
|
||||
export function marginServicePaymentApi(id) {
|
||||
return request.get(`margin/local_service/${id}/form`)
|
||||
}
|
||||
/**
|
||||
* @description 待缴上架费 -- 财务审核
|
||||
*/
|
||||
export function marginGoodsPaymentApi(id) {
|
||||
return request.get(`margin/local_goods/${id}/form`)
|
||||
}
|
||||
/**
|
||||
* @description 退回保证金 -- 列表
|
||||
*/
|
||||
export function marginRefundLstApi(data) {
|
||||
export function marginRefundLstApi(data) {
|
||||
return request.get(`margin/refund/lst`, data)
|
||||
}
|
||||
/**
|
||||
* @description 退回保证金 -- 审核
|
||||
*/
|
||||
export function marginRefundStatus(id) {
|
||||
export function marginRefundStatus(id) {
|
||||
return request.get(`margin/refund/status/${id}/form`)
|
||||
}
|
||||
/**
|
||||
* @description 退回保证金 -- 备注
|
||||
*/
|
||||
export function marginRefundMark(id) {
|
||||
export function marginRefundMark(id) {
|
||||
return request.get(`margin/refund/mark/${id}/form`)
|
||||
}
|
||||
/**
|
||||
* @description 退回保证金 -- 退回信息
|
||||
*/
|
||||
export function marginRefundInfo(id) {
|
||||
export function marginRefundInfo(id) {
|
||||
return request.get(`margin/refund/show/${id}`)
|
||||
}
|
||||
/**
|
||||
* @description 退回保证金 -- 扣费记录
|
||||
*/
|
||||
export function marginDeductionRecord(id, data) {
|
||||
export function marginDeductionRecord(id, data) {
|
||||
return request.get(`margin/list/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 退回保证金 -- 保证金扣费
|
||||
*/
|
||||
export function marginDeductionForm(id) {
|
||||
export function marginDeductionForm(id) {
|
||||
return request.get(`margin/set/${id}/form`)
|
||||
}
|
||||
/**
|
||||
|
|
|
@ -15,6 +15,36 @@ import request from './request'
|
|||
export function orderListApi(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 开启强制退款订单 -- 审核from
|
||||
*/
|
||||
export function refundorderOpenApi(id) {
|
||||
return request.get(`order/refund/open/${id}/form`)
|
||||
}
|
||||
/**
|
||||
* @description 退款单获取物流信息
|
||||
*/
|
||||
export function refundorderExpressApi(id) {
|
||||
return request.get(`order/express/${id}`)
|
||||
}
|
||||
/**
|
||||
* @description 开启退款
|
||||
*/
|
||||
|
|
|
@ -114,31 +114,31 @@ export function brandStatusApi(id, status) {
|
|||
/**
|
||||
* @description 标签 -- 新增表单
|
||||
*/
|
||||
export function labelCreateApi() {
|
||||
export function labelCreateApi() {
|
||||
return request.get('product/label/create/form')
|
||||
}
|
||||
/**
|
||||
* @description 标签 -- 编辑表单
|
||||
*/
|
||||
export function labelUpdateApi(id) {
|
||||
export function labelUpdateApi(id) {
|
||||
return request.get(`product/label/update/${id}/form`)
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @description 标签 -- 列表
|
||||
*/
|
||||
export function labelListApi(data) {
|
||||
export function labelListApi(data) {
|
||||
return request.get('product/label/lst', data)
|
||||
}
|
||||
/**
|
||||
* @description 标签 -- 删除
|
||||
*/
|
||||
export function labelDeleteApi(id) {
|
||||
export function labelDeleteApi(id) {
|
||||
return request.delete(`product/label/delete/${id}`)
|
||||
}
|
||||
/**
|
||||
* @description 标签列表 -- 修改状态
|
||||
*/
|
||||
export function labelStatusApi(id, status) {
|
||||
export function labelStatusApi(id, status) {
|
||||
return request.post(`product/label/status/${id}`, { status })
|
||||
}
|
||||
/**
|
||||
|
@ -178,7 +178,19 @@ export function seckillProductDetailApi(id) {
|
|||
return request.get(`seckill/product/detail/${id}`)
|
||||
}
|
||||
/**
|
||||
* @description 商品审核 -- 表单提交
|
||||
* @description 商品审核 -- 初步审核
|
||||
*/
|
||||
export function productStatusFirstApi(data) {
|
||||
return request.post(`store/product/status_first`, data)
|
||||
}
|
||||
/**
|
||||
* @description 商品审核 -- 二次审核
|
||||
*/
|
||||
export function productStatusSecondApi(data) {
|
||||
return request.post(`store/product/status_second`, data)
|
||||
}
|
||||
/**
|
||||
* @description 商品审核 -- 最终审核
|
||||
*/
|
||||
export function productStatusApi(data) {
|
||||
return request.post(`store/product/status`, data)
|
||||
|
@ -300,8 +312,8 @@ export function presellProDetailApi(id) {
|
|||
/**
|
||||
* @description 预售商品 -- 编辑
|
||||
*/
|
||||
export function presellUpdateApi(id,data) {
|
||||
return request.post(`store/product/presell/update/${id}`,data)
|
||||
export function presellUpdateApi(id, data) {
|
||||
return request.post(`store/product/presell/update/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 预售商品审核 -- 表单提交
|
||||
|
@ -325,7 +337,7 @@ export function preSellAgreeInfo() {
|
|||
* @description 申请管理 -- 预售协议保存
|
||||
*/
|
||||
export function preSellAgreeUpdate(data) {
|
||||
return request.post(`agreement/sys_product_presell_agree`,data)
|
||||
return request.post(`agreement/sys_product_presell_agree`, data)
|
||||
}
|
||||
/**
|
||||
* @description 助力 -- 列表
|
||||
|
@ -386,8 +398,8 @@ export function assistReviewDetailApi(id) {
|
|||
/**
|
||||
* @description 助力商品 -- 详情(编辑和查看)
|
||||
*/
|
||||
export function assistProductUpdateApi(id,data) {
|
||||
return request.post(`store/product/assist/update/${id}`,data)
|
||||
export function assistProductUpdateApi(id, data) {
|
||||
return request.post(`store/product/assist/update/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 服务保障 -- 添加
|
||||
|
@ -399,19 +411,19 @@ export function guaranteeAddApi() {
|
|||
* @description 服务保障 -- 列表
|
||||
*/
|
||||
export function guaranteeLstApi(data) {
|
||||
return request.get(`guarantee/lst`,data)
|
||||
return request.get(`guarantee/lst`, data)
|
||||
}
|
||||
/**
|
||||
* @description 服务保障 -- 编辑排序
|
||||
*/
|
||||
export function guaranteeSortApi(id,data) {
|
||||
return request.post(`guarantee/sort/${id}`,data)
|
||||
export function guaranteeSortApi(id, data) {
|
||||
return request.post(`guarantee/sort/${id}`, data)
|
||||
}
|
||||
/**
|
||||
* @description 服务保障 -- 修改显示状态
|
||||
*/
|
||||
export function guaranteeStatusApi(id, status) {
|
||||
return request.post(`guarantee/status/${id}`, status )
|
||||
return request.post(`guarantee/status/${id}`, status)
|
||||
}
|
||||
/**
|
||||
* @description 服务保障 -- 编辑
|
||||
|
@ -429,7 +441,7 @@ export function guaranteeDeleteApi(id) {
|
|||
* @description 商品列表 -- 编辑排序
|
||||
*/
|
||||
export function productSort(id, data) {
|
||||
return request.post(`store/reply/sort/${id}`,data)
|
||||
return request.post(`store/reply/sort/${id}`, data)
|
||||
}
|
||||
/** 商品列表 -- 获取标签项 */
|
||||
export function getProductLabelApi() {
|
||||
|
@ -444,7 +456,7 @@ export function updatetSeckillLabel(id, data) {
|
|||
return request.post(`seckill/product/labels/${id}`, data)
|
||||
}
|
||||
/** 预售列表 -- 编辑标签 */
|
||||
export function updatetPresellLabel(id, data) {
|
||||
export function updatetPresellLabel(id, data) {
|
||||
return request.post(`store/product/presell/labels/${id}`, data)
|
||||
}
|
||||
/** 助力列表 -- 编辑标签 */
|
||||
|
@ -458,7 +470,7 @@ export function updatetCombinationLabel(id, data) {
|
|||
/**
|
||||
* @description 上传视频
|
||||
*/
|
||||
export function productGetTempKeysApi() {
|
||||
export function productGetTempKeysApi() {
|
||||
return request.get(`upload/temp_key`)
|
||||
}
|
||||
/** 商品列表 -- 批量设置标签 */
|
||||
|
@ -491,15 +503,15 @@ export function deletePriceRuleApi(id) {
|
|||
}
|
||||
/** 价格说明 -- 是否显示 */
|
||||
export function priceRuleStatusApi(id, status) {
|
||||
return request.post(`price_rule/status/${id}`,status)
|
||||
return request.post(`price_rule/status/${id}`, status)
|
||||
}
|
||||
/** 参数模板 -- 添加 */
|
||||
export function productSpecs(data) {
|
||||
return request.post(`store/params/temp/create`,data)
|
||||
return request.post(`store/params/temp/create`, data)
|
||||
}
|
||||
/** 参数模板 -- 编辑 */
|
||||
export function specsUpdate(id, data) {
|
||||
return request.post(`store/params/temp/update/${id}`,data)
|
||||
return request.post(`store/params/temp/update/${id}`, data)
|
||||
}
|
||||
/** 参数模板 -- 详情 */
|
||||
export function productSpecsInfo(id) {
|
||||
|
@ -525,6 +537,6 @@ export function merProductLstApi(data) {
|
|||
return request.get(`store/product/list`, data)
|
||||
}
|
||||
/** 商品列表 -- 商品操作记录 */
|
||||
export function operateRecordList(id,data) {
|
||||
return request.get(`store/product/get_operate_list/${id}`,data)
|
||||
export function operateRecordList(id, data) {
|
||||
return request.get(`store/product/get_operate_list/${id}`, data)
|
||||
}
|
|
@ -14,7 +14,12 @@ import request from './request'
|
|||
export function feedbackListApi(data) {
|
||||
return request.get(`user/feedback/lst`, data)
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 导出订单
|
||||
*/
|
||||
export function exportOrderApi(data) {
|
||||
return request.get(`user/feedback/export`, data)
|
||||
}
|
||||
/**
|
||||
* @description 备注
|
||||
*/
|
||||
|
@ -72,6 +77,6 @@ export function changeFeedbackStatus(id, status) {
|
|||
/**
|
||||
* @description 反馈回复
|
||||
*/
|
||||
export function replyFeedbackApi(id) {
|
||||
export function replyFeedbackApi(id) {
|
||||
return request.get(`user/feedback/reply/${id}/form`)
|
||||
}
|
|
@ -18,14 +18,14 @@ const uniqueId = () => ++unique
|
|||
export default function modalForm(formRequestPromise, config = {}) {
|
||||
const h = this.$createElement
|
||||
return new Promise((resolve) => {
|
||||
formRequestPromise.then(({data}) => {
|
||||
formRequestPromise.then(({ data }) => {
|
||||
data.config.submitBtn = false
|
||||
data.config.resetBtn = false
|
||||
if (!data.config.form) data.config.form = {}
|
||||
if (!data.config.formData) data.config.formData = {}
|
||||
data.config.formData = {...data.config.formData, ...config.formData}
|
||||
data.config.form.labelWidth = '110px'
|
||||
data.config.form.size="small"
|
||||
data.config.formData = { ...data.config.formData, ...config.formData }
|
||||
// data.config.form.labelWidth = '110px'
|
||||
data.config.form.size = "small"
|
||||
data.config.global = {
|
||||
upload: {
|
||||
props: {
|
||||
|
@ -41,7 +41,7 @@ export default function modalForm(formRequestPromise, config = {}) {
|
|||
this.$msgbox({
|
||||
title: data.title,
|
||||
customClass: config.class || 'modal-form',
|
||||
message: h('div', {class: 'common-form-create', key: uniqueId()}, [
|
||||
message: h('div', { class: 'common-form-create', key: uniqueId() }, [
|
||||
h('formCreate', {
|
||||
props: {
|
||||
rule: data.rule,
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
</el-form-item>
|
||||
<el-form-item prop="mer_lock_time" label="商户余额冻结期:">
|
||||
<el-input-number v-model="settingForm.mer_lock_time" :step="1" :min="0" class="selWidth"></el-input-number>
|
||||
<span>(单位: 天),冻结期:仅针对线下转账模式,指用户支付成功后多少天,商户余额可解冻;设置为0,即无冻结期。</span>
|
||||
<span>(单位: 天),冻结期:确认收货后多少天,商户余额可解冻;设置为0,即无冻结期。</span>
|
||||
</el-form-item>
|
||||
<el-form-item prop="open_wx_combine" required>
|
||||
<span slot="label">
|
||||
|
|
|
@ -108,6 +108,7 @@
|
|||
<el-card>
|
||||
<div class="mb20">
|
||||
<el-button size="small" type="primary" @click="exports">导出列表</el-button>
|
||||
<!-- <el-button size="small" :disabled="multipleSelection.length==0" @click="batch">批量审核</el-button> -->
|
||||
</div>
|
||||
<el-table
|
||||
v-loading="listLoading"
|
||||
|
@ -115,7 +116,10 @@
|
|||
:data="tableData.data"
|
||||
size="small"
|
||||
class="table"
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column key="2" type="selection" width="55" />
|
||||
<!-- <el-table-column key="2" :selectable="selectable" type="selection" width="55" /> -->
|
||||
<el-table-column label="序号" min-width="60">
|
||||
<template scope="scope">
|
||||
<span>{{ scope.$index+(tableFrom.page - 1) * tableFrom.limit + 1 }}</span>
|
||||
|
@ -157,7 +161,7 @@
|
|||
<el-table-column prop="mer_money" label="商户余额(元)" min-width="120"/>
|
||||
<el-table-column label="操作" min-width="180" fixed="right">
|
||||
<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 || scope.row.status == 10 || scope.row.status == 11)" 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,0)">转账信息</el-button>
|
||||
<el-button type="text" size="small" @click="transferMark(scope.row.financial_id)">备注</el-button>
|
||||
|
@ -180,7 +184,7 @@
|
|||
<el-dialog :title="transferData.status == 0 ? '审核' : '转账信息'" :visible.sync="dialogVisible" width="700px" v-if="dialogVisible">
|
||||
<div class="box-container">
|
||||
<el-form ref="ruleForm" size="small">
|
||||
<div class="section">
|
||||
<div class="section" v-if="isShow">
|
||||
<div class="title">商户信息</div>
|
||||
<div class="list">
|
||||
<div class="item"><label class="name">商户名称:</label>{{ transferData.merchant && transferData.merchant.mer_name }}</div>
|
||||
|
@ -194,17 +198,17 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="title">收款信息</div>
|
||||
<div class="title" v-if="isShow">收款信息</div>
|
||||
<div class="list">
|
||||
<div class="item" v-if="transferData.financial_type == 2"><label class="name">微信号:</label>{{ transferData.financial_account.wechat }}</div>
|
||||
<div class="item image" v-if="transferData.financial_type == 2"><label class="name">微信收款二维码:</label><img style="max-width: 150px; height: 80px;" @click="getPicture(transferData.financial_account.wechat_code);return false;" :src="transferData.financial_account.wechat_code"/></div>
|
||||
<div class="item" v-if="transferData.financial_type == 3"><label class="name">支付宝账号:</label>{{ transferData.financial_account.alipay }}</div>
|
||||
<div class="item image" v-if="transferData.financial_type == 3"><label class="name">支付宝收款二维码:</label><img style="max-width: 150px; height: 80px;" @click="getPicture(transferData.financial_account.alipay_code);return false;" :src="transferData.financial_account.alipay_code"/></div>
|
||||
<div class="item"><label class="name">本次申请转账金额:</label><span class="font-red">{{ transferData.extract_money }}</span></div>
|
||||
<div class="item" v-if="transferData.status != 0"><label class="name">审核状态:</label>{{ transferData.status == 0 ? '待审核' : transferData.status == 1 ? '已审核' : '审核失败' }}</div>
|
||||
<div class="item" v-if="isShow"><label class="name">本次申请转账金额:</label><span class="font-red">{{ transferData.extract_money }}</span></div>
|
||||
<div class="item" v-if="transferData.status != 0&&isShow"><label class="name">审核状态:</label>{{ getStatus(transferData.status) }}</div>
|
||||
<div class="item" v-if="transferData.status == 1"><label class="name">审核时间:</label>{{ transferData.status_time }}</div>
|
||||
<div class="item" v-if="transferData.status == -1"><label class="name">审核未通过原因:</label>{{ transferData.refusal }}</div>
|
||||
<el-form-item label="审核状态:" required v-if="transferData.status == 0" class="item">
|
||||
<div class="item" v-if="transferData.status == -1&&isShow"><label class="name">审核未通过原因:</label>{{ transferData.refusal }}</div>
|
||||
<el-form-item label="审核状态:" required v-if="transferData.status == 0 || transferData.status == 10 || transferData.status == 11 || !isShow" class="item">
|
||||
<el-radio-group v-model="formValidate.status">
|
||||
<el-radio :label="1" class="radio">通过</el-radio>
|
||||
<el-radio :label="-1">拒绝</el-radio>
|
||||
|
@ -232,7 +236,8 @@
|
|||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button size="small" @click="dialogVisible=false">取消</el-button>
|
||||
<el-button v-if="transferData.status == 0" type="primary" size="small" @click="transferReview(transferData.financial_id)">提交</el-button>
|
||||
<el-button v-if="(transferData.status == 0 || transferData.status == 10 || transferData.status == 11) && isShow" type="primary" size="small" @click="transferReview(transferData.financial_id,transferData.status)">提交</el-button>
|
||||
<el-button v-if="!isShow" type="primary" size="small" @click="transferReviewBatchApi()">提交</el-button>
|
||||
<el-button v-if="transferData.status == 1" type="primary" size="small" @click="onSubmit(transferData.financial_id)">提交</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
|
@ -255,7 +260,7 @@
|
|||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import { merSelectApi } from '@/api/product'
|
||||
import { transferRecordApi, transferDetailApi, transferReviewApi, transferEditApi, transferMarkApi, transferHeaderDataApi, transferRecordsExportApi } from '@/api/accounts'
|
||||
import { transferReviewBatchApi,transferReviewFirstApi,transferReviewSecondApi,transferRecordApi, transferDetailApi, transferReviewApi, transferEditApi, transferMarkApi, transferHeaderDataApi, transferRecordsExportApi } from '@/api/accounts'
|
||||
import cardsData from "@/components/cards/index";
|
||||
import createWorkBook from '@/utils/newToExcel.js';
|
||||
import fileList from '@/components/exportFile/fileList'
|
||||
|
@ -276,6 +281,7 @@ export default {
|
|||
{ label: "未到账", value: 0 }
|
||||
],
|
||||
listLoading: true,
|
||||
isShow:false,
|
||||
cardLists: [],
|
||||
voucher_image: [],
|
||||
formValidate: {
|
||||
|
@ -309,6 +315,8 @@ export default {
|
|||
]
|
||||
},
|
||||
merSelect: [],
|
||||
multipleSelection: [],
|
||||
OffId: [],
|
||||
tableFromLog: {
|
||||
page: 1,
|
||||
limit: 20
|
||||
|
@ -332,6 +340,28 @@ export default {
|
|||
this.getHeaderData();
|
||||
},
|
||||
methods: {
|
||||
getStatusName(val){
|
||||
switch (val) {
|
||||
case 0:
|
||||
return '初始审核';
|
||||
case 10:
|
||||
return '第二步审核';
|
||||
case 11:
|
||||
return '最终审核';
|
||||
}
|
||||
},
|
||||
getStatus(val){
|
||||
switch (val) {
|
||||
case 0:
|
||||
return '待审核';
|
||||
case 10:
|
||||
return '初步审核通过';
|
||||
case 11:
|
||||
return '二次审核通过';
|
||||
case -1:
|
||||
return '审核未通过';
|
||||
}
|
||||
},
|
||||
/**重置 */
|
||||
searchReset(){
|
||||
this.timeVal = []
|
||||
|
@ -339,6 +369,40 @@ export default {
|
|||
this.$refs.searchForm.resetFields()
|
||||
this.getList(1)
|
||||
},
|
||||
selectable(row, index){
|
||||
// return !row.status
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val
|
||||
const data = []
|
||||
this.multipleSelection.map((item) => {
|
||||
data.push(item.financial_id)
|
||||
})
|
||||
this.OffId = data
|
||||
console.log(this.OffId);
|
||||
},
|
||||
// 批量审核
|
||||
batch() {
|
||||
if(this.multipleSelection.length === 0) return this.$message.warning('请先选择记录')
|
||||
this.isShow = false
|
||||
this.dialogVisible = true
|
||||
},
|
||||
transferReviewBatchApi(){
|
||||
let parmas = {
|
||||
status: this.formValidate.status,
|
||||
refusal: this.formValidate.refusal,
|
||||
ids:this.OffId
|
||||
}
|
||||
transferReviewBatchApi(parmas).then(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.success(res.message);
|
||||
this.dialogVisible = false;
|
||||
this.getList(1);
|
||||
}).catch(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
// 商户列表
|
||||
getMerSelect() {
|
||||
merSelectApi()
|
||||
|
@ -363,6 +427,7 @@ export default {
|
|||
if(num) this.voucher_image = []
|
||||
transferDetailApi(id).then(res => {
|
||||
this.listLoading = false;
|
||||
this.isShow = true
|
||||
this.dialogVisible = true;
|
||||
this.transferData = res.data
|
||||
this.formValidate.status = res.data.status
|
||||
|
@ -383,10 +448,21 @@ export default {
|
|||
this.pictureUrl = url;
|
||||
},
|
||||
// 审核
|
||||
transferReview(id){
|
||||
transferReview(id,val){
|
||||
switch (val) {
|
||||
case 0:
|
||||
return this.transferReviewFirstApi(id)
|
||||
case 10:
|
||||
return this.transferReviewSecondApi(id)
|
||||
case 11:
|
||||
return this.transferReviewApi(id)
|
||||
}
|
||||
},
|
||||
// 最终审核
|
||||
transferReviewApi(id,val){
|
||||
let parmas = {
|
||||
status: this.formValidate.status,
|
||||
refusal: this.formValidate.refusal
|
||||
status: 1,
|
||||
refusal: this.formValidate.refusal,
|
||||
}
|
||||
transferReviewApi(id,parmas).then(res => {
|
||||
this.listLoading = false;
|
||||
|
@ -398,6 +474,38 @@ export default {
|
|||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
// 初次审核
|
||||
transferReviewFirstApi(id,val){
|
||||
let parmas = {
|
||||
status: 10,
|
||||
refusal: this.formValidate.refusal,
|
||||
}
|
||||
transferReviewFirstApi(id,parmas).then(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.success(res.message);
|
||||
this.dialogVisible = false;
|
||||
this.getList(1);
|
||||
}).catch(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
// 二次审核
|
||||
transferReviewSecondApi(id,val){
|
||||
let parmas = {
|
||||
status: 11,
|
||||
refusal: this.formValidate.refusal,
|
||||
}
|
||||
transferReviewSecondApi(id,parmas).then(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.success(res.message);
|
||||
this.dialogVisible = false;
|
||||
this.getList(1);
|
||||
}).catch(res => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
},
|
||||
// 备注
|
||||
transferMark(id){
|
||||
this.$modalForm(transferMarkApi(id)).then(() => this.getList('1'))
|
||||
|
|
|
@ -238,6 +238,26 @@
|
|||
<span>{{ scope.row.is_margin == 1 ? scope.row.margin : (scope.row.ot_margin-scope.row.margin).toFixed(2) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="type == 3"
|
||||
key="15"
|
||||
label="待缴金额"
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.is_service == 1 ? scope.row.service_cost : (scope.row.ot_service_cost-scope.row.service_cost).toFixed(2) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="type == 4"
|
||||
key="15"
|
||||
label="待缴金额"
|
||||
min-width="100"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.is_goods == 1 ? scope.row.goods_cost : (scope.row.ot_goods_cost-scope.row.goods_cost).toFixed(2) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
v-if="type == 2"
|
||||
key="18"
|
||||
|
@ -257,6 +277,7 @@
|
|||
label="操作"
|
||||
min-width="150"
|
||||
fixed="right"
|
||||
v-if="type != 5 && type !=6"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
|
@ -292,19 +313,18 @@
|
|||
>退回信息</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="type != 2"
|
||||
v-if="type != 2 && type != 3 && type != 4"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="handleRecord(scope.row.mer_id)"
|
||||
>操作记录</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="type == 2"
|
||||
v-if="type == 2 || type == 3 || type == 4"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="offline(scope.row.mer_id)"
|
||||
>线下付款</el-button
|
||||
>
|
||||
>财务审核</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -456,11 +476,17 @@
|
|||
// +----------------------------------------------------------------------
|
||||
import {
|
||||
marginLstApi,
|
||||
marginServiceLstApi,
|
||||
marginGoodsLstApi,
|
||||
marginRefundLstApi,
|
||||
marginRefundStatus,
|
||||
marginRefundMark,
|
||||
marginDepositLstApi,
|
||||
marginServiceDepositLstApi,
|
||||
marginGoodsDepositLstApi,
|
||||
marginPaymentApi,
|
||||
marginServicePaymentApi,
|
||||
marginGoodsPaymentApi,
|
||||
getstoreTypeApi,
|
||||
marginDeductionForm,
|
||||
getMerCateApi,
|
||||
|
@ -493,11 +519,31 @@ export default {
|
|||
type: "2",
|
||||
title: "待缴保证金",
|
||||
},
|
||||
{
|
||||
count: "",
|
||||
type: "3",
|
||||
title: "待缴服务费",
|
||||
},
|
||||
{
|
||||
count: "",
|
||||
type: "4",
|
||||
title: "待缴上架费",
|
||||
},
|
||||
{
|
||||
count: "",
|
||||
type: "1",
|
||||
title: "缴存保证金",
|
||||
},
|
||||
{
|
||||
count: "",
|
||||
type: "5",
|
||||
title: "缴存服务费",
|
||||
},
|
||||
{
|
||||
count: "",
|
||||
type: "6",
|
||||
title: "缴存上架费",
|
||||
},
|
||||
{
|
||||
count: "",
|
||||
type: "0",
|
||||
|
@ -599,6 +645,46 @@ export default {
|
|||
this.listLoading = false;
|
||||
this.$message.error(res.message);
|
||||
})
|
||||
: this.type == 3 ? marginServiceDepositLstApi(this.tableFrom) //待缴
|
||||
.then((res) => {
|
||||
this.tableData.data = res.data.list;
|
||||
this.tableData.total = res.data.count;
|
||||
this.listLoading = false;
|
||||
})
|
||||
.catch((res) => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message);
|
||||
})
|
||||
: this.type == 4 ? marginGoodsDepositLstApi(this.tableFrom) //待缴
|
||||
.then((res) => {
|
||||
this.tableData.data = res.data.list;
|
||||
this.tableData.total = res.data.count;
|
||||
this.listLoading = false;
|
||||
})
|
||||
.catch((res) => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message);
|
||||
})
|
||||
: this.type == 5 ? marginServiceLstApi(this.tableFrom) //缴存服务费
|
||||
.then((res) => {
|
||||
this.tableData.data = res.data.list;
|
||||
this.tableData.total = res.data.count;
|
||||
this.listLoading = false;
|
||||
})
|
||||
.catch((res) => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message);
|
||||
})
|
||||
: this.type == 6 ? marginGoodsLstApi(this.tableFrom) //缴存上架费
|
||||
.then((res) => {
|
||||
this.tableData.data = res.data.list;
|
||||
this.tableData.total = res.data.count;
|
||||
this.listLoading = false;
|
||||
})
|
||||
.catch((res) => {
|
||||
this.listLoading = false;
|
||||
this.$message.error(res.message);
|
||||
})
|
||||
: marginRefundLstApi(this.tableFrom) //退回
|
||||
.then((res) => {
|
||||
this.tableData.data = res.data.list;
|
||||
|
@ -667,7 +753,11 @@ export default {
|
|||
},
|
||||
// 线下付款
|
||||
offline(id) {
|
||||
this.$modalForm(marginPaymentApi(id)).then(() => this.getList(""));
|
||||
this.type == 2?
|
||||
this.$modalForm(marginPaymentApi(id)).then(() => this.getList(""))
|
||||
: this.type == 3 ?
|
||||
this.$modalForm(marginServicePaymentApi(id)).then(() => this.getList(""))
|
||||
:this.$modalForm(marginGoodsPaymentApi(id)).then(() => this.getList(""))
|
||||
},
|
||||
// 退回记录
|
||||
handleRecord(id) {
|
||||
|
|
|
@ -162,6 +162,14 @@ export default {
|
|||
this.loading = false;
|
||||
this.drawer = true;
|
||||
this.merData = res.data;
|
||||
let financial_bank = {
|
||||
name:'',
|
||||
bank:'',
|
||||
bank_code:'',
|
||||
}
|
||||
if(!res.data.financial_bank){
|
||||
this.merData.financial_bank = financial_bank;
|
||||
}
|
||||
if(!this.isEdit)this.$refs.merInfo.onOperateLog(this.merId);
|
||||
})
|
||||
.catch((res) => {
|
||||
|
@ -170,7 +178,12 @@ export default {
|
|||
},
|
||||
initData(){
|
||||
this.merData = {
|
||||
is_trader:0
|
||||
is_trader:0,
|
||||
financial_bank:{
|
||||
name:'',
|
||||
bank:'',
|
||||
bank_code:'',
|
||||
}
|
||||
}
|
||||
this.isEdit = false;
|
||||
this.isAdd = true;
|
||||
|
|
|
@ -129,6 +129,53 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
</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>
|
||||
<div class="title">银行卡信息</div>
|
||||
<el-row v-if="merData.financial_bank">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="姓名:" prop="financial_bank.name">
|
||||
<el-input
|
||||
size="small"
|
||||
v-model="merData.financial_bank.name"
|
||||
placeholder="请输入姓名"
|
||||
class="selWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="开户银行:" prop="financial_bank.bank">
|
||||
<el-input
|
||||
size="small"
|
||||
v-model="merData.financial_bank.bank"
|
||||
placeholder="请输入开户银行"
|
||||
class="selWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="merData.financial_bank">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="开户银行卡号:" prop="financial_bank.bank_code">
|
||||
<el-input
|
||||
size="small"
|
||||
oninput ="value=value.replace(/[^\d]/g,'')"
|
||||
v-model="merData.financial_bank.bank_code"
|
||||
placeholder="请输入开户银行卡号"
|
||||
class="selWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
|
|
|
@ -15,6 +15,14 @@
|
|||
<div>商户类型:</div>
|
||||
<div class="value">{{merData.is_trader == 1 ? "自营" : "非自营"}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>是否为惠美乡村:</div>
|
||||
<div class="value">{{merData.is_huimei == 1 ? "是" : "否"}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>是否为军人:</div>
|
||||
<div class="value">{{merData.is_soldier == 1 ? "是" : "否"}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>商户分类:</div>
|
||||
<div v-if="merData.merchantCategory" class="value">
|
||||
|
@ -42,10 +50,39 @@
|
|||
<div>更新时间:</div>
|
||||
<div class="value">{{merData.update_time}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>每日提现额度:</div>
|
||||
<div class="value">{{merData.exchange_limit}}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>备注:</div>
|
||||
<div class="value">{{merData.mark}}</div>
|
||||
</li>
|
||||
<li class="item" style="align-content: center;">
|
||||
<div>营业执照:</div>
|
||||
<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>
|
||||
</ul>
|
||||
</div>
|
||||
</el-tab-pane>
|
||||
|
@ -72,6 +109,18 @@
|
|||
{{merData.is_margin == 0 ? '无' : merData.ot_margin}}
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>上架费:</div>
|
||||
<div class="value">
|
||||
{{merData.is_goods == 0 ? '无' : merData.goods_cost}}
|
||||
</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>产品服务费:</div>
|
||||
<div class="value">
|
||||
{{merData.is_service == 0 ? '无' : merData.service_cost}}
|
||||
</div>
|
||||
</li>
|
||||
<li v-if="merData.is_margin != 0" class="item">
|
||||
<div>保证金支付状态:</div>
|
||||
<div class="value">{{merData.is_margin == 1 ? '待缴' : merData.is_margin == 0 ? '无' : '已缴' }}
|
||||
|
@ -294,6 +343,11 @@ export default {
|
|||
},
|
||||
filters: {
|
||||
},
|
||||
computed: {
|
||||
companyImage(){
|
||||
return this.merData.ext?.company_image
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
lookImg(item) {
|
||||
this.imageUrl = item;
|
||||
|
|
|
@ -105,7 +105,17 @@
|
|||
highlight-current-row
|
||||
>
|
||||
<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="status" label="推荐" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
|
|
|
@ -219,11 +219,11 @@
|
|||
<el-button type="text" size="small" @click.native="onUserDetails(scope.row.uid)">{{scope.row.user&&scope.row.user.nickname +'/'+ scope.row.uid}}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单类型" min-width="80">
|
||||
<!-- <el-table-column label="订单类型" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.is_virtual == 1 ? "虚拟订单" : scope.row.order_type == 0 ? "普通订单" : "核销订单" }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="real_name" label="收货人/订购人" min-width="120" />
|
||||
<el-table-column label="商户名称" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
|
@ -290,7 +290,7 @@
|
|||
<span>{{ scope.row.create_time }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="80" fixed="right">
|
||||
<el-table-column width="100px" label="操作" min-width="80" fixed="right" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span v-for="(val, i ) in scope.row.orderProduct" :key="i">
|
||||
<el-button
|
||||
|
@ -302,6 +302,7 @@
|
|||
</span>
|
||||
<el-button type="text" size="small" @click="onOrderDetails(scope.row.order_id)">详情</el-button>
|
||||
<!-- <el-button type="text" size="small" @click="onOrderOpenRefund(scope.row.order_id)">开启退款</el-button> -->
|
||||
<el-button type="text" size="small" @click="onOrderOpen(scope.row.order_id)">开启强制退款</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -346,7 +347,7 @@
|
|||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import { orderListApi, chartApi, cardListApi, exportOrderApi,openRefundApi } from "@/api/order";
|
||||
import { refundorderOpenApi,orderListApi, chartApi, cardListApi, exportOrderApi,openRefundApi } from "@/api/order";
|
||||
import { merSelectApi } from "@/api/product";
|
||||
import userDetails from '../../user/list/userDetails';
|
||||
import orderDetail from './orderDetails.vue';
|
||||
|
@ -564,6 +565,10 @@ export default {
|
|||
this.drawer = true;
|
||||
// this.$refs.orderDetail.onOrderDetails(id);
|
||||
// this.$refs.orderDetail.onOrderLog(id);
|
||||
},
|
||||
// 开启强制退款
|
||||
onOrderOpen(id) {
|
||||
this.$modalForm(refundorderOpenApi(id)).then(() => this.getList(''))
|
||||
},
|
||||
// 开启退款
|
||||
// onOrderOpenRefund(id) {
|
||||
|
|
|
@ -393,6 +393,10 @@
|
|||
<div>商户类别:</div>
|
||||
<div class="value">{{ orderDetailList.merchant.is_trader ? '自营' : '非自营' }}</div>
|
||||
</li>
|
||||
<li class="item">
|
||||
<div>店铺电话:</div>
|
||||
<div class="value">{{ orderDetailList.merchant.service_phone }}</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -0,0 +1,112 @@
|
|||
<template>
|
||||
<div>
|
||||
<div class="logistics acea-row row-top">
|
||||
<div class="logistics_img"><img src="@/assets/images/expressi.jpg"></div>
|
||||
<div class="logistics_cent">
|
||||
<span>物流公司:{{ logisticsName ? orderDatalist.delivery_type : orderDatalist.delivery_name }}</span>
|
||||
<span>物流单号:{{ orderDatalist.delivery_id }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="acea-row row-column-around trees-coadd">
|
||||
<div class="scollhide">
|
||||
<el-timeline v-if="result.length>0">
|
||||
<el-timeline-item v-for="(item,i) in result" :key="i">
|
||||
<p class="time" v-text="item.time" />
|
||||
<p class="content" v-text="item.status" />
|
||||
</el-timeline-item>
|
||||
</el-timeline>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
export default {
|
||||
name: 'Logistics',
|
||||
props: {
|
||||
orderDatalist: {
|
||||
type: Object,
|
||||
default: null
|
||||
},
|
||||
result: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
logisticsName: {
|
||||
type: String,
|
||||
default: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</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;
|
||||
}
|
||||
}
|
||||
.logistics{
|
||||
align-items: center;
|
||||
padding: 10px 0px;
|
||||
.logistics_img{
|
||||
width: 45px;
|
||||
height: 45px;
|
||||
margin-right: 12px;
|
||||
img{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.logistics_cent{
|
||||
span{
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.trees-coadd{
|
||||
width: 100%;
|
||||
height: 400px;
|
||||
border-radius: 4px;
|
||||
overflow: hidden;
|
||||
.scollhide{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
margin-left: 18px;
|
||||
padding: 10px 0 10px 0;
|
||||
box-sizing: border-box;
|
||||
.content{
|
||||
font-size: 12px;
|
||||
}
|
||||
.time{
|
||||
font-size: 12px;
|
||||
color: var(--prev-color-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
.scollhide::-webkit-scrollbar {
|
||||
display: none; /* Chrome Safari */
|
||||
}
|
||||
|
||||
</style>
|
|
@ -82,11 +82,11 @@
|
|||
<span v-show="scope.row.is_del > 0" style="color: #ED4014;display: block;">用户已删除</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单类型" min-width="100">
|
||||
<!-- <el-table-column label="订单类型" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.order_type == 0 ? "普通订单" : "核销订单" }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="商户名称" min-width="150">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.merchant">{{ scope.row.merchant.mer_name }}</span>
|
||||
|
|
|
@ -153,6 +153,8 @@
|
|||
size="small"
|
||||
@click="onOrderDetail(scope.row.order.order_sn)"
|
||||
>订单详情</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>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
@ -170,6 +172,22 @@
|
|||
</el-card>
|
||||
<!--导出订单列表-->
|
||||
<file-list ref="exportList" />
|
||||
<!--详情-->
|
||||
<details-from ref="orderDetail" :order-datalist="orderDatalist" @get-logistics="openLogistics" />
|
||||
<el-dialog
|
||||
v-if="dialogLogistics"
|
||||
title="物流查询"
|
||||
:visible.sync="dialogLogistics"
|
||||
width="350px"
|
||||
:before-close="handleClose"
|
||||
>
|
||||
<logistics-from
|
||||
v-if="orderDetails"
|
||||
:order-datalist="orderDetails"
|
||||
:result="result"
|
||||
:logistics-name="logisticsName"
|
||||
/>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -186,20 +204,26 @@
|
|||
import {
|
||||
refundorderListApi,
|
||||
orderUpdateApi,
|
||||
refundorderStatusApi,
|
||||
refundorderDetailApi,
|
||||
refundorderExpressApi,
|
||||
orderDeliveryApi, exportRefundOrderApi
|
||||
} from "@/api/order";
|
||||
import createWorkBook from '@/utils/newToExcel.js';
|
||||
import detailsFrom from './refundDetail'
|
||||
import logisticsFrom from '../logistics'
|
||||
import { fromList } from "@/libs/constants.js";
|
||||
import fileList from '@/components/exportFile/fileList'
|
||||
import { roterPre } from "@/settings";
|
||||
import timeOptions from '@/utils/timeOptions';
|
||||
export default {
|
||||
components: { fileList },
|
||||
components: { fileList,detailsFrom,logisticsFrom },
|
||||
name: "OrderRefund",
|
||||
data() {
|
||||
return {
|
||||
pickerOptions: timeOptions,
|
||||
orderId: 0,
|
||||
logisticsName: 'refund',
|
||||
roterPre: roterPre,
|
||||
tableData: {
|
||||
data: [],
|
||||
|
@ -232,6 +256,9 @@ export default {
|
|||
dialogVisible: false,
|
||||
cardLists: [],
|
||||
orderDatalist: null,
|
||||
orderDetails: {},
|
||||
result: [],
|
||||
dialogLogistics:false
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
|
@ -252,6 +279,45 @@ export default {
|
|||
this.getList('');
|
||||
},
|
||||
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(){
|
||||
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>
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="divBox">
|
||||
<div class="selCard">
|
||||
<el-form inline size="small" :model="tableFrom" ref="searchForm" label-width="85px">
|
||||
<el-form inline size="small" :model="tableFrom" ref="searchForm" label-width="103px">
|
||||
<el-form-item label="商品分类:" prop="pid">
|
||||
<el-cascader v-model="tableFrom.pid" class="selWidth" :options="merCateList" :props="{ checkStrictly: true, emitPath:false }" clearable @change="getList(1)" />
|
||||
</el-form-item>
|
||||
|
@ -43,8 +43,8 @@
|
|||
<el-option v-for="item in recommendList" :key="item.value" :label="item.name" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品类型:" prop="is_ficti">
|
||||
<el-select v-model="tableFrom.is_ficti" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
||||
<el-form-item label="商品类型:" prop="audit_type">
|
||||
<el-select v-model="tableFrom.audit_type" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
||||
<el-option v-for="item in productTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
@ -67,6 +67,19 @@
|
|||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否惠美乡村:" prop="is_huimei">
|
||||
<el-select v-model="tableFrom.is_huimei" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
||||
<el-option label="是" value="1" />
|
||||
<el-option label="否" value="0" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="审核状态:" prop="is_audited">
|
||||
<el-select v-model="tableFrom.is_audited" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
||||
<el-option label="首次提报" value="0" />
|
||||
<el-option label="非首次提报" value="1" />
|
||||
<el-option label="首次修改" value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
||||
<el-button size="small" @click="searchReset()">重置</el-button>
|
||||
|
@ -78,7 +91,7 @@
|
|||
<el-tab-pane v-for="(item,index) in headeNum" :key="index" :name="item.type.toString()" :label="item.name +'('+item.count +')' " />
|
||||
</el-tabs>
|
||||
<div class="mt5 mb20">
|
||||
<el-button v-show="tableFrom.type === '6'" size="small" :disabled="multipleSelection.length==0" @click="batch">批量审核</el-button>
|
||||
<!-- <el-button v-show="tableFrom.type === '6'" size="small" :disabled="multipleSelection.length==0" @click="batch">批量审核</el-button> -->
|
||||
<el-button size="small" :disabled="multipleSelection.length==0 " @click="batchOff">批量强制下架</el-button>
|
||||
<el-button size="small" :disabled="multipleSelection.length==0 " @click="batchShow(0)">批量不显示</el-button>
|
||||
<el-button size="small" :disabled="multipleSelection.length==0 " @click="batchShow(1)">批量显示</el-button>
|
||||
|
@ -118,6 +131,11 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="product_id" label="ID" min-width="80" />
|
||||
<el-table-column prop="audit_type" label="商品类型" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
{{ productTypeList[scope.row.audit_type].label }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="商品图" min-width="70">
|
||||
<template slot-scope="scope">
|
||||
<div class="demo-image__preview">
|
||||
|
@ -135,17 +153,27 @@
|
|||
<span>{{ scope.row.merchant ? scope.row.merchant.mer_name : '' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="remark" label="商家备注" min-width="100" />
|
||||
<el-table-column label="是否惠美乡村产品" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.is_huimei ? '是' : '否' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="price" label="商品售价" min-width="80" />
|
||||
<el-table-column prop="sales" label="销量" min-width="70" />
|
||||
<el-table-column prop="stock" label="库存" min-width="70" />
|
||||
<el-table-column prop="is_audited" label="待审核类型" min-width="80" />
|
||||
<el-table-column prop="is_audited" label="待审核类型" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
{{ auditedList[scope.row.is_audited] }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="推荐级别" min-width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-rate disabled v-model="scope.row.star" :colors="colors">
|
||||
</el-rate>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="storeCategory.cate_name" label="商品类型" min-width="70" />
|
||||
<el-table-column prop="storeCategory.cate_name" label="平台分类" min-width="80" />
|
||||
<el-table-column prop="rank" label="排序" min-width="60" />
|
||||
<el-table-column prop="status" label="是否显示" min-width="80">
|
||||
<template slot-scope="scope">
|
||||
|
@ -158,10 +186,10 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="创建时间" min-width="120" />
|
||||
<el-table-column v-if="Number(tableFrom.type) < 7" key="8" label="操作" min-width="180" fixed="right">
|
||||
<el-table-column v-if="Number(tableFrom.type) != 7" key="8" label="操作" min-width="210" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="onDetails(scope.row.product_id)">详情</el-button>
|
||||
<el-button v-if="tableFrom.type === '6'" type="text" size="small" @click.native="toExamine(scope.row.product_id)">审核</el-button>
|
||||
<el-button v-if="tableFrom.type === '6' || tableFrom.type === '10' || tableFrom.type === '11'" type="text" size="small" @click.native="toExamine(scope.row.product_id)">{{ getStatusName(scope.row.status) }}</el-button>
|
||||
<el-button type="text" size="small" class="mr10" @click="handlePreview(scope.row.product_id)">预览</el-button>
|
||||
<el-dropdown>
|
||||
<span class="el-dropdown-link">
|
||||
|
@ -192,6 +220,13 @@
|
|||
<el-form-item label="商品名称:" prop="store_name">
|
||||
<el-input v-model="formValidate.store_name" size="small" placeholder="请输入商品名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="商品关键字:" prop="keyword">
|
||||
<el-input
|
||||
v-model="formValidate.keyword"
|
||||
placeholder="请输入商品关键字"
|
||||
size="small"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="星级推荐:">
|
||||
<el-rate class="rate_star" v-model="formValidate.star" :colors="colors" style="margin-top: 4px;"></el-rate>
|
||||
<span style="margin-top: 4px; font-size: 12px;">备注:5星为最高推荐级别,1星为最低推荐级别,设置后会在商城商品列表、搜索商品列表中体现。</span>
|
||||
|
@ -204,6 +239,52 @@
|
|||
<el-form-item label="排序:">
|
||||
<el-input-number v-model="formValidate.rank" size="small" placeholder="请输入排序序号" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="平台商品分类:" prop="cate_id" label-width="100px">
|
||||
<el-cascader
|
||||
v-model="formValidate.cate_id"
|
||||
size="small"
|
||||
:options="merCateList"
|
||||
:props="props"
|
||||
filterable
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="商品轮播图:" prop="slider_image">
|
||||
<div class="acea-row">
|
||||
<div
|
||||
v-for="(item, index) in formValidate.slider_image"
|
||||
:key="index"
|
||||
class="pictrue"
|
||||
draggable="false"
|
||||
@dragstart="handleDragStart($event, item)"
|
||||
@dragover.prevent="handleDragOver($event, item)"
|
||||
@dragenter="handleDragEnter($event, item)"
|
||||
@dragend="handleDragEnd($event, item)"
|
||||
>
|
||||
<!-- <img :src="item"> -->
|
||||
<el-image
|
||||
style="width: 60px; height: 60px"
|
||||
:src="item"
|
||||
:preview-src-list="[item]"
|
||||
/>
|
||||
<i
|
||||
class="el-icon-error btndel"
|
||||
@click="handleRemove(index)"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="formValidate.slider_image.length < 10"
|
||||
class="uploadCont"
|
||||
title="750*750px"
|
||||
>
|
||||
<div class="upLoadPicBox" @click="modalPicTap('2')">
|
||||
<div class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="商品详情:">
|
||||
<ueditor-from v-model="formValidate.content" :content="formValidate.content" />
|
||||
|
@ -329,9 +410,7 @@ export default {
|
|||
},
|
||||
data() {
|
||||
return {
|
||||
props: {
|
||||
emitPath: false
|
||||
},
|
||||
props: { emitPath: false },
|
||||
pickerOptions: timeOptions,
|
||||
timeVal: [],
|
||||
ruleValidate: {
|
||||
|
@ -341,6 +420,7 @@ export default {
|
|||
trigger: "blur"
|
||||
},]
|
||||
},
|
||||
|
||||
dialogVisible: false,
|
||||
dialogRecommend: false,
|
||||
append: true,
|
||||
|
@ -355,6 +435,7 @@ export default {
|
|||
{ label: "2星", value: 2 },
|
||||
{ label: "1星", value: 1 }
|
||||
],
|
||||
auditedList:['首次提报','非首次提报','首次修改'],
|
||||
recommend: proOptions,
|
||||
recommendList: [{
|
||||
name: '热门榜单',
|
||||
|
@ -380,7 +461,10 @@ export default {
|
|||
store_name: '',
|
||||
rank: '',
|
||||
us_status: '',
|
||||
star: ''
|
||||
star: '',
|
||||
keyword:'',
|
||||
cate_id:0,
|
||||
slider_image: [],
|
||||
},
|
||||
productStatusList: [
|
||||
{ label: "上架显示", value: 1 },
|
||||
|
@ -388,9 +472,9 @@ export default {
|
|||
{ label: "平台关闭", value: -1 },
|
||||
],
|
||||
productTypeList: [
|
||||
{ label: '普通商品', value: 0 },
|
||||
{ label: '虚拟商品', value: 1 },
|
||||
{ label: '卡密商品', value: 2 }
|
||||
{ label: '食品及保健品', value: 0 },
|
||||
{ label: '化妆品及日化品', value: 1 },
|
||||
{ label: '其他品类', value: 2 }
|
||||
],
|
||||
fullscreenLoading: false,
|
||||
isShow: false,
|
||||
|
@ -408,6 +492,7 @@ export default {
|
|||
sys_labels: '',
|
||||
pid: '',
|
||||
store_name: '',
|
||||
audit_type:'',
|
||||
type: '6',
|
||||
mer_id: '',
|
||||
keyword: '',
|
||||
|
@ -415,6 +500,8 @@ export default {
|
|||
hot_type: '',
|
||||
star: '',
|
||||
svip_price_type: '',
|
||||
is_audited:'',
|
||||
is_huimei:'',
|
||||
product_id: this.$route.query.id ? this.$route.query.id : ""
|
||||
},
|
||||
categoryList: [],
|
||||
|
@ -445,6 +532,16 @@ export default {
|
|||
this.getLabelLst()
|
||||
},
|
||||
methods: {
|
||||
getStatusName(val){
|
||||
switch (val) {
|
||||
case 0:
|
||||
return '初始审核';
|
||||
case 10:
|
||||
return '二次审核';
|
||||
case 11:
|
||||
return '最终审核';
|
||||
}
|
||||
},
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e
|
||||
|
@ -462,6 +559,35 @@ export default {
|
|||
this.getList('')
|
||||
this.getLstFilterApi()
|
||||
},
|
||||
// 点击商品图
|
||||
modalPicTap(tit, num, i) {
|
||||
const _this = this;
|
||||
const attr = [];
|
||||
this.$modalUpload(function(img) {
|
||||
if (tit === "1" && !num) {
|
||||
_this.formValidate.image = img[0];
|
||||
_this.OneattrValue[0].image = img[0];
|
||||
}
|
||||
if (tit === "2" && !num) {
|
||||
img.map(item => {
|
||||
attr.push(item.attachment_src);
|
||||
_this.formValidate.slider_image.push(item);
|
||||
if (_this.formValidate.slider_image.length > 10) {
|
||||
_this.formValidate.slider_image.length = 10;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (tit === "1" && num === "dan") {
|
||||
_this.OneattrValue[0].image = img[0];
|
||||
}
|
||||
if (tit === "1" && num === "duo") {
|
||||
_this.ManyAttrValue[i].image = img[0];
|
||||
}
|
||||
if (tit === "1" && num === "pi") {
|
||||
_this.oneFormBatch[0].image = img[0];
|
||||
}
|
||||
}, tit);
|
||||
},
|
||||
onchangeIsShow(row) {
|
||||
changeApi(row.product_id, row.is_used).then(({
|
||||
message
|
||||
|
@ -498,12 +624,36 @@ export default {
|
|||
sys_labels: row.sys_labels
|
||||
}
|
||||
},
|
||||
handleRemove(i) {
|
||||
this.formValidate.slider_image.splice(i, 1);
|
||||
},
|
||||
// 查看详情
|
||||
onDetails(id) {
|
||||
this.product_id = id;
|
||||
this.drawer = true;
|
||||
this.$refs.proDetail.getInfo(id)
|
||||
},
|
||||
// 移动
|
||||
handleDragStart(e, item) {
|
||||
this.dragging = item;
|
||||
},
|
||||
handleDragEnd(e, item) {
|
||||
this.dragging = null;
|
||||
},
|
||||
handleDragOver(e) {
|
||||
e.dataTransfer.dropEffect = "move";
|
||||
},
|
||||
handleDragEnter(e, item) {
|
||||
e.dataTransfer.effectAllowed = "move";
|
||||
if (item === this.dragging) {
|
||||
return;
|
||||
}
|
||||
const newItems = [...this.formValidate.slider_image];
|
||||
const src = newItems.indexOf(this.dragging);
|
||||
const dst = newItems.indexOf(item);
|
||||
newItems.splice(dst, 0, ...newItems.splice(src, 1));
|
||||
this.formValidate.slider_image = newItems;
|
||||
},
|
||||
changeDrawer(v) {
|
||||
this.drawer = v;
|
||||
},
|
||||
|
@ -561,7 +711,10 @@ export default {
|
|||
content: info.content,
|
||||
store_name: info.store_name,
|
||||
rank: info.rank,
|
||||
star: info.star
|
||||
star: info.star,
|
||||
keyword:info.keyword,
|
||||
cate_id:info.cate_id,
|
||||
slider_image: info.slider_image
|
||||
}
|
||||
if(info.is_benefit === 1) this.checkboxGroup.push('is_benefit')
|
||||
if(info.is_hot === 1) this.checkboxGroup.push('is_hot')
|
||||
|
@ -699,8 +852,8 @@ export default {
|
|||
},
|
||||
batch() {
|
||||
if(this.multipleSelection.length === 0) return this.$message.warning('请先选择商品')
|
||||
this.$refs.infoFrom.dialogVisible = true
|
||||
this.isShow = false
|
||||
this.$refs.infoFrom.dialogVisible = true
|
||||
},
|
||||
handleSelectionChange(val) {
|
||||
this.multipleSelection = val
|
||||
|
@ -767,6 +920,26 @@ export default {
|
|||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.pictrue {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 1px dotted rgba(0, 0, 0, 0.1);
|
||||
margin-right: 10px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.btndel {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: 20px !important;
|
||||
height: 20px !important;
|
||||
left: 46px;
|
||||
top: -4px;
|
||||
}
|
||||
.tags_name{
|
||||
font-size: 10px;
|
||||
height: 16px;
|
||||
|
|
|
@ -4,28 +4,47 @@
|
|||
title="商品审核"
|
||||
:visible.sync="dialogVisible"
|
||||
:append-to-body='isAppend'
|
||||
width="860px"
|
||||
width="1260px"
|
||||
top="60px"
|
||||
:before-close="handleClose"
|
||||
class="projectInfo"
|
||||
>
|
||||
<el-tabs v-if="projectData && isShow" v-model="activeNames" v-loading="loading">
|
||||
<el-tab-pane label="商品信息" name="first">
|
||||
<div class="acea-row">
|
||||
<span class="sp">店铺名称:{{ projectData.merchant&&projectData.merchant.mer_name }}</span>
|
||||
<span class="sp">入住企业名称:</span>
|
||||
<span class="sp">店铺联系人: {{ projectData.merchant&&projectData.merchant.service_phone }}</span>
|
||||
<span class="sp">
|
||||
营业执照:
|
||||
<div class="demo-image__preview">
|
||||
<el-image
|
||||
style="width: 60px; height: 60px"
|
||||
:src="projectData.image"
|
||||
:preview-src-list="[projectData.image]"
|
||||
/>
|
||||
</div>
|
||||
</span>
|
||||
|
||||
<span class="sp">联系人电话:{{ projectData.unit_name }}</span>
|
||||
<span class="sp" v-if="projectData.refusal">上传拒绝原因:{{ projectData.refusal }}</span>
|
||||
|
||||
</div>
|
||||
<div class="acea-row">
|
||||
<span class="sp">商品id:{{ projectData.product_id }}</span>
|
||||
<span class="sp">商品名称:{{ projectData.store_name }}</span>
|
||||
<span class="sp">平台分类:{{ projectData.storeCategory?projectData.storeCategory.cate_name:'' }}</span>
|
||||
<span class="sp">品牌:{{ projectData.brand?projectData.brand.brand_name:'其他' }}</span>
|
||||
<span class="sp">商品关键字:{{ projectData.keyword }}</span>
|
||||
<span class="sp">商品单位:{{ projectData.unit_name }}</span>
|
||||
<span class="sp" v-if="projectData.temp && projectData.temp.name">运费模板:{{ projectData.temp?projectData.temp.name:'' }}</span>
|
||||
<span class="sp100" v-if="projectData.temp && projectData.temp.info">运费说明:{{ projectData.temp?projectData.temp.info:'' }}</span>
|
||||
<span class="sp100">
|
||||
<span class="sp">
|
||||
商品分类:
|
||||
<template v-if="projectData.merCateId">
|
||||
<span v-for="(item, index) in projectData.merCateId" :key="index" class="mr10">{{ item.category?item.category.cate_name:'' }}</span>
|
||||
</template>
|
||||
<span v-else>-</span>
|
||||
</span>
|
||||
<span class="sp100">商品简介:{{ projectData.store_info }}</span>
|
||||
<span class="sp">商品简介:{{ projectData.store_info }}</span>
|
||||
<span class="sp">商品备注:{{ projectData.remark }}</span>
|
||||
<span class="sp">是否惠美乡村:{{ projectData.is_huimei?'是':'否' }}</span>
|
||||
<span class="sp100">
|
||||
商品封面图:
|
||||
<div class="demo-image__preview">
|
||||
|
@ -36,6 +55,13 @@
|
|||
/>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<el-tabs v-if="projectData && isShow" v-model="activeNames" v-loading="loading">
|
||||
<el-tab-pane label="商品信息" name="first">
|
||||
<div class="acea-row">
|
||||
<span class="sp" v-if="projectData.temp && projectData.temp.name">运费模板:{{ projectData.temp?projectData.temp.name:'' }}</span>
|
||||
<span class="sp100" v-if="projectData.temp && projectData.temp.info">运费说明:{{ projectData.temp?projectData.temp.info:'' }}</span>
|
||||
|
||||
<span v-if="projectData.video_link" class="sp100">
|
||||
主图视频:
|
||||
<video style="width:40%;height: 180px;border-radius: 10px;" :src="projectData.video_link" controls="controls">
|
||||
|
@ -59,12 +85,12 @@
|
|||
</el-tab-pane>
|
||||
<el-tab-pane label="资质信息" name="aptitude">
|
||||
<span class="sp">商品名称:
|
||||
<el-radio-group v-model="aptitude">
|
||||
<el-radio :label="0" class="radio">国产</el-radio>
|
||||
<el-radio :label="1">进口</el-radio>
|
||||
<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="aptitude == 0">
|
||||
<div v-if="qualification.commodity_type == 0">
|
||||
<span class="sp">生产企业名称:{{ qualification.production_name }}</span>
|
||||
<span class="upload">
|
||||
<div class="upload_left">生产营业执照:</div>
|
||||
|
@ -78,7 +104,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.businessList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -96,7 +122,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.trademarkList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -114,7 +140,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.authorizedList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -132,7 +158,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.commodityList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -150,14 +176,14 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.otherList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="aptitude == 1">
|
||||
<div v-if="qualification.commodity_type == 1">
|
||||
<span class="sp">进口/企业境内总代企业名称: {{ qualification.import_name }}</span>
|
||||
<span class="upload">
|
||||
<div class="upload_left">生产营业执照:</div>
|
||||
|
@ -171,7 +197,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.importBusinessList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -189,7 +215,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.importAuthorizedList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -207,7 +233,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.customsList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -225,7 +251,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.packingList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -243,7 +269,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px;"
|
||||
:src="item.url"
|
||||
:preview-src-list="qualification.importOtherList"
|
||||
:preview-src-list="[item.url]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -283,6 +309,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px"
|
||||
:src="scope.row.image"
|
||||
:preview-src-list="[scope.row.image]"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -343,22 +370,6 @@
|
|||
</template>
|
||||
</span>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="店铺信息" name="shop">
|
||||
<span class="sp">店铺名称:{{ projectData.merchant&&projectData.merchant.mer_name }}</span>
|
||||
<span class="sp">入住企业名称:</span>
|
||||
<span class="sp100">
|
||||
营业执照:
|
||||
<div class="demo-image__preview">
|
||||
<el-image
|
||||
style="width: 60px; height: 60px"
|
||||
:src="projectData.image"
|
||||
:preview-src-list="[projectData.image]"
|
||||
/>
|
||||
</div>
|
||||
</span>
|
||||
<span class="sp">店铺联系人: {{ projectData.merchant&&projectData.merchant.service_phone }}</span>
|
||||
<span class="sp">联系人电话:{{ projectData.unit_name }}</span>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="80px" class="demo-ruleForm">
|
||||
<el-form-item label="审核状态" prop="status">
|
||||
|
@ -367,7 +378,43 @@
|
|||
<el-radio :label="-1">拒绝</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="佐证图片:" prop="status_img" label-width="90px">
|
||||
<el-form-item label="佐证图片" prop="status_img" label-width="80px">
|
||||
<div class="acea-row">
|
||||
<div
|
||||
v-for="(item, index) in ruleForm.status_img"
|
||||
:key="index"
|
||||
class="pictrue"
|
||||
draggable="false"
|
||||
@dragstart="handleDragStart($event, item)"
|
||||
@dragover.prevent="handleDragOver($event, item)"
|
||||
@dragenter="handleDragEnter($event, item)"
|
||||
@dragend="handleDragEnd($event, item)"
|
||||
>
|
||||
<!-- <img :src="item"> -->
|
||||
<el-image
|
||||
style="width: 60px; height: 60px"
|
||||
:src="item"
|
||||
:preview-src-list="[item]"
|
||||
/>
|
||||
<i
|
||||
class="el-icon-error btndel"
|
||||
@click="handleRemove(index)"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="ruleForm.status_img.length < 10"
|
||||
class="uploadCont"
|
||||
title="750*750px"
|
||||
>
|
||||
<div class="upLoadPicBox" @click="modalPicTap('2')">
|
||||
<div class="upLoad">
|
||||
<i class="el-icon-camera cameraIconfont" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="佐证图片:" prop="status_img" label-width="90px">
|
||||
<div
|
||||
class="upLoadPicBox"
|
||||
title="750*750px"
|
||||
|
@ -380,7 +427,7 @@
|
|||
<i class="el-icon-camera cameraIconfont" />
|
||||
</div>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form-item> -->
|
||||
<el-form-item v-if="ruleForm.status===-1" label="原因" prop="refusal">
|
||||
<el-input v-model="ruleForm.refusal" type="textarea" placeholder="请输入原因" />
|
||||
</el-form-item>
|
||||
|
@ -402,7 +449,7 @@
|
|||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
import { productDetailApi, productStatusApi } from '@/api/product'
|
||||
import { productDetailApi, productStatusApi,productStatusFirstApi,productStatusSecondApi } from '@/api/product'
|
||||
const defaultObj = {
|
||||
image: '',
|
||||
slider_image: [],
|
||||
|
@ -428,7 +475,8 @@ const defaultObj = {
|
|||
stock: null,
|
||||
bar_code: '',
|
||||
weight: null,
|
||||
volume: null
|
||||
volume: null,
|
||||
gist_url:null
|
||||
}],
|
||||
attr: [],
|
||||
selectRule: '',
|
||||
|
@ -460,6 +508,9 @@ const objTitle = {
|
|||
},
|
||||
volume: {
|
||||
title: '体积(m³)'
|
||||
},
|
||||
gist_url: {
|
||||
title: '依据链接'
|
||||
}
|
||||
}
|
||||
const proOptions = [{ name: '是否热卖', value: 'is_hot' }, { name: '优品推荐', value: 'is_good' }, { name: '促销单品', value: 'is_benefit' }, { name: '是否精品', value: 'is_best' }, { name: '是否新品', value: 'is_new' }]
|
||||
|
@ -484,9 +535,9 @@ export default {
|
|||
refusal: [
|
||||
{ required: true, message: '请填写拒绝原因', trigger: 'blur' }
|
||||
],
|
||||
status_img: [
|
||||
{ required: true, message: '请上传佐证图片', trigger: 'blur' }
|
||||
]
|
||||
// status_img: [
|
||||
// {type: 'array', required: true, message: '请上传佐证图片', trigger: 'blur' }
|
||||
// ]
|
||||
},
|
||||
isAppend: true,
|
||||
proId: 0,
|
||||
|
@ -512,7 +563,7 @@ export default {
|
|||
refusal: '',
|
||||
status: 1,
|
||||
id: '',
|
||||
status_img:''
|
||||
status_img:[]
|
||||
},
|
||||
formThead: Object.assign({}, objTitle),
|
||||
manyTabDate: {},
|
||||
|
@ -542,6 +593,30 @@ export default {
|
|||
}
|
||||
},
|
||||
methods: {
|
||||
handleRemove(i) {
|
||||
this.ruleForm.status_img.splice(i, 1);
|
||||
},
|
||||
handleDragEnd(e, item) {
|
||||
this.dragging = null;
|
||||
},
|
||||
handleDragEnter(e, item) {
|
||||
e.dataTransfer.effectAllowed = "move";
|
||||
if (item === this.dragging) {
|
||||
return;
|
||||
}
|
||||
const newItems = [...this.ruleForm.status_img];
|
||||
const src = newItems.indexOf(this.dragging);
|
||||
const dst = newItems.indexOf(item);
|
||||
newItems.splice(dst, 0, ...newItems.splice(src, 1));
|
||||
this.ruleForm.status_img = newItems;
|
||||
},
|
||||
handleDragOver(e) {
|
||||
e.dataTransfer.dropEffect = "move";
|
||||
},
|
||||
// 移动
|
||||
handleDragStart(e, item) {
|
||||
this.dragging = item;
|
||||
},
|
||||
getType(val){
|
||||
var regex = /(?:\.([^.]+))?$/;
|
||||
let suffix = regex.exec(val.url)[1]
|
||||
|
@ -552,14 +627,45 @@ export default {
|
|||
const _this = this;
|
||||
const attr = [];
|
||||
this.$modalUpload(function(img) {
|
||||
console.log(_this.ruleForm);
|
||||
if (tit === "1" && !num) {
|
||||
_this.ruleForm.status_img = img[0];
|
||||
}
|
||||
if (tit === "2" && !num) {
|
||||
img.map(item => {
|
||||
attr.push(item.attachment_src);
|
||||
_this.ruleForm.status_img.push(item);
|
||||
if (_this.ruleForm.status_img.length > 10) {
|
||||
_this.ruleForm.status_img.length = 10;
|
||||
}
|
||||
});
|
||||
}
|
||||
}, tit);
|
||||
},
|
||||
onSubmit() {
|
||||
console.log(this.projectData);
|
||||
let mode = {
|
||||
0: {
|
||||
'api': productStatusFirstApi,
|
||||
'status':10
|
||||
},
|
||||
10: {
|
||||
'api': productStatusSecondApi,
|
||||
'status':11
|
||||
},
|
||||
11: {
|
||||
'api': productStatusApi,
|
||||
'status':1
|
||||
}
|
||||
}
|
||||
this.$refs.ruleForm.validate(valid=>{
|
||||
if(valid){
|
||||
this.isShow ? this.ruleForm.id = this.proId : this.ruleForm.id = this.ids
|
||||
productStatusApi(this.ruleForm).then(res => {
|
||||
let params = {
|
||||
...this.ruleForm,
|
||||
status: this.ruleForm.status==-1?-1:mode[this.projectData.status].status,
|
||||
}
|
||||
mode[this.projectData.status].api(params).then(res => {
|
||||
this.$message.success(res.message)
|
||||
this.dialogVisible = false
|
||||
this.activeNames = 'first'
|
||||
|
@ -568,6 +674,8 @@ export default {
|
|||
this.listLoading = false
|
||||
this.$message.error(res.message)
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
handleClose() {
|
||||
this.dialogVisible = false
|
||||
|
@ -576,9 +684,30 @@ export default {
|
|||
getInfo(id) {
|
||||
this.proId = id
|
||||
this.loading = true
|
||||
this.ruleForm.status_img = []
|
||||
this.ruleForm.status = 1
|
||||
this.ruleForm.refusal = ''
|
||||
productDetailApi(id).then(res => {
|
||||
this.projectData = res.data
|
||||
this.qualification = res.data.qualification
|
||||
this.projectData = res.data,
|
||||
this.ruleForm.status_img = res.data.status_img
|
||||
let qualification={
|
||||
production_name: '',
|
||||
businessList: [],
|
||||
licenceList: [],
|
||||
trademarkList: [],
|
||||
authorizedList: [],
|
||||
commodityList: [],
|
||||
otherList: [],
|
||||
importBusinessList: [],
|
||||
importAuthorizedList: [],
|
||||
customsList: [],
|
||||
packingList: [],
|
||||
importOtherList: [],
|
||||
commodity_type: 0,
|
||||
brands_name: '',
|
||||
import_name: ''
|
||||
}
|
||||
this.qualification = res.data.qualification || qualification
|
||||
this.svip_type = res.data.svip_price_type
|
||||
|
||||
if (this.projectData.spec_type === 0) {
|
||||
|
@ -615,6 +744,26 @@ export default {
|
|||
.projectInfo ::v-deep .el-dialog__body{
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
.pictrue {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border: 1px dotted rgba(0, 0, 0, 0.1);
|
||||
margin-right: 10px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
.btndel {
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
width: 20px !important;
|
||||
height: 20px !important;
|
||||
left: 46px;
|
||||
top: -4px;
|
||||
}
|
||||
.upload{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
@ -676,6 +825,7 @@ export default {
|
|||
position: relative;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
|
|
@ -48,11 +48,23 @@
|
|||
<ul class="list">
|
||||
<li class="item item100">
|
||||
<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 class="item item100">
|
||||
<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>
|
||||
</ul>
|
||||
<li class="item item100">
|
||||
|
@ -133,6 +145,18 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section">
|
||||
<ul class="list">
|
||||
<li class="item" v-if="productData.refusal">
|
||||
<div class="item-title">审核拒绝原因:</div>
|
||||
<div class="value">{{productData.refusal || ''}}</div>
|
||||
</li>
|
||||
<li class="item item100" v-if="productData.status_img">
|
||||
<div class="item-title">佐证图片:</div>
|
||||
<el-image v-for="(item,index) in productData.status_img" :key="index" :src="item" style="width:40px;height:40px;margin-right:12px;" :preview-src-list="productData.status_img" />
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" style="margin-top: 50px;">
|
||||
<div class="title">规格列表:</div>
|
||||
<div class="list">
|
||||
|
@ -144,6 +168,7 @@
|
|||
<el-image
|
||||
style="width: 60px; height: 60px"
|
||||
:src="scope.row.image"
|
||||
:preview-src-list="[scope.row.image]"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -484,6 +509,200 @@
|
|||
<el-pagination :page-size="recordForm.limit" :current-page="recordForm.page" layout="prev, pager, next, jumper" :total="recordData.total" @size-change="handleSizeChange" @current-change="pageChange" />
|
||||
</div>
|
||||
</div>
|
||||
</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>
|
||||
</div>
|
||||
|
@ -575,6 +794,23 @@ export default {
|
|||
return {
|
||||
loading: true,
|
||||
productId: '',
|
||||
qualification:{
|
||||
production_name: '',
|
||||
businessList: [],
|
||||
licenceList: [],
|
||||
trademarkList: [],
|
||||
authorizedList: [],
|
||||
commodityList: [],
|
||||
otherList: [],
|
||||
importBusinessList: [],
|
||||
importAuthorizedList: [],
|
||||
customsList: [],
|
||||
packingList: [],
|
||||
importOtherList: [],
|
||||
commodity_type: 0,
|
||||
brands_name: '',
|
||||
import_name: ''
|
||||
},
|
||||
direction: 'rtl',
|
||||
activeName: 'basic',
|
||||
productData: {},
|
||||
|
@ -617,6 +853,11 @@ export default {
|
|||
filters: {
|
||||
},
|
||||
methods: {
|
||||
getType(val){
|
||||
var regex = /(?:\.([^.]+))?$/;
|
||||
let suffix = regex.exec(val.url)[1]
|
||||
return suffix == 'pdf'
|
||||
},
|
||||
handleClose() {
|
||||
this.activeName = 'basic';
|
||||
this.$emit('closeDrawer');
|
||||
|
@ -627,6 +868,24 @@ export default {
|
|||
productDetailApi(id).then(res => {
|
||||
this.loading = false;
|
||||
this.productData = res.data
|
||||
let qualification={
|
||||
production_name: '',
|
||||
businessList: [],
|
||||
licenceList: [],
|
||||
trademarkList: [],
|
||||
authorizedList: [],
|
||||
commodityList: [],
|
||||
otherList: [],
|
||||
importBusinessList: [],
|
||||
importAuthorizedList: [],
|
||||
customsList: [],
|
||||
packingList: [],
|
||||
importOtherList: [],
|
||||
commodity_type: 0,
|
||||
brands_name: '',
|
||||
import_name: ''
|
||||
}
|
||||
this.qualification = res.data.qualification || qualification
|
||||
this.mer_svip_status = res.data.mer_svip_status
|
||||
this.svip_type = res.data.svip_price_type
|
||||
if (this.productData.spec_type === 0) {
|
||||
|
@ -764,6 +1023,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{
|
||||
max-height: 350px;
|
||||
overflow-y: auto;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="divBox">
|
||||
<div class="selCard">
|
||||
<el-form :model="tableFrom" ref="searchForm" inline size="small" label-width="75px" @submit.native.prevent>
|
||||
<el-form :model="tableFrom" ref="searchForm" inline size="small" label-width="80px" @submit.native.prevent>
|
||||
<el-form-item label="关键字:" prop="keyword">
|
||||
<el-input
|
||||
v-model="tableFrom.keyword"
|
||||
|
@ -10,6 +10,28 @@
|
|||
class="selWidth"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="回复状态:" prop="status">
|
||||
<el-select v-model="tableFrom.status" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
||||
<el-option label="已回复" value="1" />
|
||||
<el-option label="未回复" value="0" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间选择:" prop="time">
|
||||
<el-date-picker
|
||||
v-model="timeVal"
|
||||
value-format="yyyy/MM/dd"
|
||||
format="yyyy/MM/dd"
|
||||
type="daterange"
|
||||
placement="bottom-end"
|
||||
placeholder="自定义时间"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
style="width: 280px;"
|
||||
:picker-options="pickerOptions"
|
||||
@change="onchangeTime"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
||||
<el-button size="small" @click="searchReset(1)">重置</el-button>
|
||||
|
@ -17,7 +39,7 @@
|
|||
</el-form>
|
||||
</div>
|
||||
<el-card class="mt14">
|
||||
|
||||
<el-button size="small" type="primary" class="mb20" @click="exports">导出记录</el-button>
|
||||
<el-table v-loading="listLoading" :data="tableData.data" size="small">
|
||||
<el-table-column prop="feedback_id" label="ID" min-width="60" />
|
||||
<el-table-column prop="uid" label="用户ID" min-width="100" />
|
||||
|
@ -47,6 +69,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="create_time" label="反馈时间" min-width="150" />
|
||||
<el-table-column prop="update_time" label="回复时间" min-width="150" />
|
||||
<el-table-column label="操作" min-width="100" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<!--<el-button type="text" size="small" @click="onEdit(scope.row.feedback_id)">备注</el-button>-->
|
||||
|
@ -56,7 +79,6 @@
|
|||
@click="handleDelete(scope.row.feedback_id, scope.$index)"
|
||||
>删除</el-button>
|
||||
<el-button
|
||||
v-if="scope.row.status != 1"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="handleReply(scope.row.feedback_id)"
|
||||
|
@ -93,9 +115,11 @@ import {
|
|||
feedbackListApi,
|
||||
feedbackReplyApi,
|
||||
feedbackDeleteApi,
|
||||
replyFeedbackApi
|
||||
replyFeedbackApi,
|
||||
exportOrderApi
|
||||
} from "@/api/userFeedback";
|
||||
|
||||
import createWorkBook from '@/utils/newToExcel.js';
|
||||
import timeOptions from '@/utils/timeOptions';
|
||||
export default {
|
||||
name: "Classify",
|
||||
data() {
|
||||
|
@ -104,10 +128,13 @@ export default {
|
|||
data: [],
|
||||
total: 0
|
||||
},
|
||||
pickerOptions: timeOptions,
|
||||
timeVal: [],
|
||||
tableFrom: {
|
||||
page: 1,
|
||||
limit: 20,
|
||||
keyword: ""
|
||||
keyword: "",
|
||||
status: ""
|
||||
},
|
||||
listLoading: true
|
||||
};
|
||||
|
@ -116,11 +143,43 @@ export default {
|
|||
this.getList();
|
||||
},
|
||||
methods: {
|
||||
// 具体日期
|
||||
onchangeTime(e) {
|
||||
this.timeVal = e
|
||||
this.tableFrom.time = e ? this.timeVal.join('-') : ''
|
||||
this.getList(1)
|
||||
},
|
||||
/**重置 */
|
||||
searchReset(){
|
||||
this.timeVal = []
|
||||
this.tableFrom.time = ""
|
||||
this.$refs.searchForm.resetFields()
|
||||
this.getList(1)
|
||||
},
|
||||
async exports() {
|
||||
let excelData = JSON.parse(JSON.stringify(this.tableFrom)), data = []
|
||||
excelData.page = 1
|
||||
let pageCount = 1
|
||||
let lebData = {};
|
||||
for (let i = 0; i < pageCount; i++) {
|
||||
lebData = await this.downData(excelData)
|
||||
pageCount = Math.ceil(lebData.count/excelData.limit)
|
||||
if (lebData.export.length) {
|
||||
data = data.concat(lebData.export)
|
||||
excelData.page++
|
||||
}
|
||||
}
|
||||
createWorkBook(lebData.header, lebData.title, data, lebData.foot,lebData.filename);
|
||||
return
|
||||
},
|
||||
/**订单列表 */
|
||||
downData(excelData) {
|
||||
return new Promise((resolve, reject) => {
|
||||
exportOrderApi(excelData).then((res) => {
|
||||
return resolve(res.data)
|
||||
})
|
||||
})
|
||||
},
|
||||
// 列表
|
||||
getList(num) {
|
||||
this.tableFrom.page = num || this.tableFrom.page;
|
||||
|
|
Loading…
Reference in New Issue