edit
This commit is contained in:
parent
929407342b
commit
28b1955a3f
|
@ -228,6 +228,12 @@ export function updateStoreTypeApi(type, data) {
|
||||||
export function merchantIsCloseApi(id, status) {
|
export function merchantIsCloseApi(id, status) {
|
||||||
return request.post(`system/merchant/close/${id}`, { status })
|
return request.post(`system/merchant/close/${id}`, { status })
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @description 商户列表 -- 退店开关
|
||||||
|
*/
|
||||||
|
export function merchantIsLockApi(id, lock) {
|
||||||
|
return request.post(`system/merchant/lock/${id}`, { lock })
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description 商户列表 -- 开启商户数
|
* @description 商户列表 -- 开启商户数
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -157,6 +157,12 @@ export function categoryListApi(data) {
|
||||||
export function exportProductApi(data) {
|
export function exportProductApi(data) {
|
||||||
return request.get(`store/product/export`, data)
|
return request.get(`store/product/export`, data)
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @description 导出用户操作记录
|
||||||
|
*/
|
||||||
|
export function exportOperate(id = '0', data) {
|
||||||
|
return request.get(`store/product/export_operate/${id}`, data)
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description 商户分类 -- 列表
|
* @description 商户分类 -- 列表
|
||||||
*/
|
*/
|
||||||
|
@ -185,6 +191,12 @@ export function seckillProductDetailApi(id) {
|
||||||
export function productStatusFirstApi(data) {
|
export function productStatusFirstApi(data) {
|
||||||
return request.post(`store/product/status_first`, data)
|
return request.post(`store/product/status_first`, data)
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @description 商品审核 -- 初步审核
|
||||||
|
*/
|
||||||
|
export function productStatusFirstTwoApi(data) {
|
||||||
|
return request.post(`store/product/status_first2`, data)
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description 商品审核 -- 二次审核
|
* @description 商品审核 -- 二次审核
|
||||||
*/
|
*/
|
||||||
|
@ -299,6 +311,18 @@ export function seckillChangeApi(id, status) {
|
||||||
export function toVirtualSalesApi(id) {
|
export function toVirtualSalesApi(id) {
|
||||||
return request.get(`store/product/ficti/form/${id}`)
|
return request.get(`store/product/ficti/form/${id}`)
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @description 商品列表 -- 锁定/解锁
|
||||||
|
*/
|
||||||
|
export function productLockApi(id) {
|
||||||
|
return request.get(`store/product/lock/form/${id}`)
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @description 商品列表 -- 返回
|
||||||
|
*/
|
||||||
|
export function productBackApi(id) {
|
||||||
|
return request.get(`store/product/back/form/${id}`)
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @description 商品列表 -- 标记标记
|
* @description 商品列表 -- 标记标记
|
||||||
*/
|
*/
|
||||||
|
@ -491,6 +515,10 @@ export function productGetTempKeysApi() {
|
||||||
export function batchesLabelsApi(data) {
|
export function batchesLabelsApi(data) {
|
||||||
return request.post(`store/product/batch_labels`, data)
|
return request.post(`store/product/batch_labels`, data)
|
||||||
}
|
}
|
||||||
|
/** 商品列表 -- 批量设置标记 */
|
||||||
|
export function batchesTagNameApi(data) {
|
||||||
|
return request.post(`store/product/batch_tag_name`, data)
|
||||||
|
}
|
||||||
/** 商品列表 -- 批量设置推荐 */
|
/** 商品列表 -- 批量设置推荐 */
|
||||||
export function batchesRecommendApi(data) {
|
export function batchesRecommendApi(data) {
|
||||||
return request.post(`store/product/batch_hot`, data)
|
return request.post(`store/product/batch_hot`, data)
|
||||||
|
|
|
@ -1,78 +1,83 @@
|
||||||
|
import { startDrag } from './drags.js'
|
||||||
export default {
|
export default {
|
||||||
bind(el, binding, vnode) {
|
bind(el, binding, vnode) {
|
||||||
const dialogHeaderEl = el.querySelector('.el-dialog__header')
|
startDrag(el.querySelector('.el-dialog__header'), el.querySelector('.el-dialog'), binding.value);
|
||||||
const dragDom = el.querySelector('.el-dialog')
|
// const dialogHeaderEl = el.querySelector('.el-dialog__header')
|
||||||
dialogHeaderEl.style.cssText += ';cursor:move;'
|
// var dialogBodyEl = ''
|
||||||
dragDom.style.cssText += ';top:0px;'
|
// const dragDom = el.querySelector('.el-dialog')
|
||||||
|
// dialogHeaderEl.style.cssText += ';cursor:move;'
|
||||||
|
// dragDom.style.cssText += ';top:0px;'
|
||||||
|
|
||||||
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
|
// // 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
|
||||||
const getStyle = (function () {
|
// const getStyle = (function () {
|
||||||
if (window.document.currentStyle) {
|
// if (window.document.currentStyle) {
|
||||||
return (dom, attr) => dom.currentStyle[attr]
|
// return (dom, attr) => dom.currentStyle[attr]
|
||||||
} else {
|
// } else {
|
||||||
return (dom, attr) => getComputedStyle(dom, false)[attr]
|
// return (dom, attr) => getComputedStyle(dom, false)[attr]
|
||||||
}
|
// }
|
||||||
})()
|
// })()
|
||||||
|
|
||||||
dialogHeaderEl.onmousedown = (e) => {
|
// dialogHeaderEl.onmousedown = (e) => {
|
||||||
// 鼠标按下,计算当前元素距离可视区的距离
|
// dialogBodyEl = el.querySelector('.el-dialog__body')
|
||||||
const disX = e.clientX - dialogHeaderEl.offsetLeft
|
// dialogBodyEl.style.cssText += '-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;'
|
||||||
const disY = e.clientY - dialogHeaderEl.offsetTop
|
// // 鼠标按下,计算当前元素距离可视区的距离
|
||||||
|
// const disX = e.clientX - dialogHeaderEl.offsetLeft
|
||||||
|
// const disY = e.clientY - dialogHeaderEl.offsetTop
|
||||||
|
|
||||||
const dragDomWidth = dragDom.offsetWidth
|
// const dragDomWidth = dragDom.offsetWidth
|
||||||
const dragDomHeight = dragDom.offsetHeight
|
// const dragDomHeight = dragDom.offsetHeight
|
||||||
|
|
||||||
const screenWidth = document.body.clientWidth
|
// const screenWidth = document.body.clientWidth
|
||||||
const screenHeight = document.body.clientHeight
|
// const screenHeight = document.body.clientHeight
|
||||||
|
|
||||||
const minDragDomLeft = dragDom.offsetLeft
|
// const minDragDomLeft = dragDom.offsetLeft
|
||||||
const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth
|
// const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth
|
||||||
|
|
||||||
const minDragDomTop = dragDom.offsetTop
|
// const minDragDomTop = dragDom.offsetTop
|
||||||
const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight
|
// const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight
|
||||||
|
|
||||||
// 获取到的值带px 正则匹配替换
|
// // 获取到的值带px 正则匹配替换
|
||||||
let styL = getStyle(dragDom, 'left')
|
// let styL = getStyle(dragDom, 'left')
|
||||||
let styT = getStyle(dragDom, 'top')
|
// let styT = getStyle(dragDom, 'top')
|
||||||
|
|
||||||
if (styL.includes('%')) {
|
// if (styL.includes('%')) {
|
||||||
styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100)
|
// styL = +document.body.clientWidth * (+styL.replace(/\%/g, '') / 100)
|
||||||
styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100)
|
// styT = +document.body.clientHeight * (+styT.replace(/\%/g, '') / 100)
|
||||||
} else {
|
// } else {
|
||||||
styL = +styL.replace(/\px/g, '')
|
// styL = +styL.replace(/\px/g, '')
|
||||||
styT = +styT.replace(/\px/g, '')
|
// styT = +styT.replace(/\px/g, '')
|
||||||
}
|
// }
|
||||||
|
|
||||||
document.onmousemove = function (e) {
|
// document.onmousemove = function (e) {
|
||||||
// 通过事件委托,计算移动的距离
|
// // 通过事件委托,计算移动的距离
|
||||||
let left = e.clientX - disX
|
// let left = e.clientX - disX
|
||||||
let top = e.clientY - disY
|
// let top = e.clientY - disY
|
||||||
|
|
||||||
// 边界处理
|
// // 边界处理
|
||||||
if (-(left) > minDragDomLeft) {
|
// if (-(left) > minDragDomLeft) {
|
||||||
left = -minDragDomLeft
|
// left = -minDragDomLeft
|
||||||
} else if (left > maxDragDomLeft) {
|
// } else if (left > maxDragDomLeft) {
|
||||||
left = maxDragDomLeft
|
// left = maxDragDomLeft
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (-(top) > minDragDomTop) {
|
// if (-(top) > minDragDomTop) {
|
||||||
top = -minDragDomTop
|
// top = -minDragDomTop
|
||||||
} else if (top > maxDragDomTop) {
|
// } else if (top > maxDragDomTop) {
|
||||||
top = maxDragDomTop
|
// top = maxDragDomTop
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 移动当前元素
|
// // 移动当前元素
|
||||||
dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
|
// dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
|
||||||
|
|
||||||
// emit onDrag event
|
// // emit onDrag event
|
||||||
vnode.child.$emit('dragDialog')
|
// vnode.child.$emit('dragDialog')
|
||||||
}
|
// }
|
||||||
|
|
||||||
document.onmouseup = function (e) {
|
// document.onmouseup = function (e) {
|
||||||
document.onmousemove = null
|
// dialogBodyEl.style.cssText = ''
|
||||||
document.onmouseup = null
|
// document.onmousemove = null
|
||||||
}
|
// document.onmouseup = null
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
/**
|
||||||
|
* 拖拽移动
|
||||||
|
* @param {elementObjct} bar 鼠标点击控制拖拽的元素
|
||||||
|
* @param {elementObjct} target 移动的元素
|
||||||
|
* @param {function} callback 移动后的回调
|
||||||
|
*/
|
||||||
|
export function startDrag(bar, target, callback) {
|
||||||
|
var params = {
|
||||||
|
top: 0,
|
||||||
|
left: 0,
|
||||||
|
currentX: 0,
|
||||||
|
currentY: 0,
|
||||||
|
flag: false,
|
||||||
|
cWidth: 0,
|
||||||
|
cHeight: 0,
|
||||||
|
tWidth: 0,
|
||||||
|
tHeight: 0
|
||||||
|
};
|
||||||
|
|
||||||
|
// 给拖动块添加样式
|
||||||
|
bar.style.cursor = 'move';
|
||||||
|
|
||||||
|
// 获取相关CSS属性
|
||||||
|
// o是移动对象
|
||||||
|
// var getCss = function (o, key) {
|
||||||
|
// return o.currentStyle ? o.currentStyle[key] : document.defaultView.getComputedStyle(o, false)[key];
|
||||||
|
// };
|
||||||
|
|
||||||
|
bar.onmousedown = function (event) {
|
||||||
|
// 按下时初始化params
|
||||||
|
var e = event ? event : window.event;
|
||||||
|
params = {
|
||||||
|
top: target.offsetTop,
|
||||||
|
left: target.offsetLeft,
|
||||||
|
currentX: e.clientX,
|
||||||
|
currentY: e.clientY,
|
||||||
|
flag: true,
|
||||||
|
cWidth: document.body.clientWidth,
|
||||||
|
cHeight: document.body.clientHeight,
|
||||||
|
tWidth: target.offsetWidth,
|
||||||
|
tHeight: target.offsetHeight
|
||||||
|
};
|
||||||
|
|
||||||
|
// 给被拖动块初始化样式
|
||||||
|
target.style.margin = 0;
|
||||||
|
target.style.top = params.top + 'px';
|
||||||
|
target.style.left = params.left + 'px';
|
||||||
|
|
||||||
|
if (!event) {
|
||||||
|
// 防止IE文字选中
|
||||||
|
bar.onselectstart = function () {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.onmousemove = function (event) {
|
||||||
|
// 防止文字选中
|
||||||
|
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
|
||||||
|
|
||||||
|
var e = event ? event : window.event;
|
||||||
|
if (params.flag) {
|
||||||
|
var nowX = e.clientX;
|
||||||
|
var nowY = e.clientY;
|
||||||
|
// 差异距离
|
||||||
|
var disX = nowX - params.currentX;
|
||||||
|
var disY = nowY - params.currentY;
|
||||||
|
// 最终移动位置
|
||||||
|
var zLeft = 0;
|
||||||
|
var zTop = 0;
|
||||||
|
|
||||||
|
zLeft = parseInt(params.left) + disX;
|
||||||
|
// 限制X轴范围
|
||||||
|
if (zLeft <= -parseInt(params.tWidth / 2)) {
|
||||||
|
zLeft = -parseInt(params.tWidth / 2);
|
||||||
|
}
|
||||||
|
if (zLeft >= params.cWidth - parseInt(params.tWidth * 0.5)) {
|
||||||
|
zLeft = params.cWidth - parseInt(params.tWidth * 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
zTop = parseInt(params.top) + disY;
|
||||||
|
// 限制Y轴范围
|
||||||
|
if (zTop <= 0) {
|
||||||
|
zTop = 0;
|
||||||
|
}
|
||||||
|
if (zTop >= params.cHeight - parseInt(params.tHeight * 0.5)) {
|
||||||
|
zTop = params.cHeight - parseInt(params.tHeight * 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 执行移动
|
||||||
|
target.style.left = zLeft + 'px';
|
||||||
|
target.style.top = zTop + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof callback == "function") {
|
||||||
|
callback(zLeft, zTop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.onmouseup = function () {
|
||||||
|
params.flag = false;
|
||||||
|
document.onmousemove = null;
|
||||||
|
document.onmouseup = null;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -166,7 +166,7 @@ export function cancelOrderStatusFilter(status) {
|
||||||
|
|
||||||
export function orderPayType(type) {
|
export function orderPayType(type) {
|
||||||
const typeMap = {
|
const typeMap = {
|
||||||
'0': '消费券支付',
|
'0': '余额支付',
|
||||||
'1': '微信支付',
|
'1': '微信支付',
|
||||||
'2': '小程序',
|
'2': '小程序',
|
||||||
'3': '微信支付',
|
'3': '微信支付',
|
||||||
|
|
|
@ -87,6 +87,15 @@ const productRouter =
|
||||||
},
|
},
|
||||||
component: () => import('@/views/product/priceDescription/index.vue')
|
component: () => import('@/views/product/priceDescription/index.vue')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'operate',
|
||||||
|
name: 'operate',
|
||||||
|
meta: {
|
||||||
|
title: '商品操作日志',
|
||||||
|
noCache: true
|
||||||
|
},
|
||||||
|
component: () => import('@/views/product/operate/index.vue')
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'band',
|
path: 'band',
|
||||||
name: 'ProductBand',
|
name: 'ProductBand',
|
||||||
|
|
|
@ -1,9 +1,19 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="divBox">
|
<div class="divBox">
|
||||||
<div class="selCard">
|
<div class="selCard">
|
||||||
<el-form :model="tableFrom" ref="searchForm" size="small" inline label-width="85px">
|
<el-form
|
||||||
|
:model="tableFrom"
|
||||||
|
ref="searchForm"
|
||||||
|
size="small"
|
||||||
|
inline
|
||||||
|
label-width="85px"
|
||||||
|
>
|
||||||
<el-form-item label="订单状态:" class="width100" prop="order_type">
|
<el-form-item label="订单状态:" class="width100" prop="order_type">
|
||||||
<el-radio-group v-model="tableFrom.order_type" type="button" @change="getList(1)">
|
<el-radio-group
|
||||||
|
v-model="tableFrom.order_type"
|
||||||
|
type="button"
|
||||||
|
@change="getList(1)"
|
||||||
|
>
|
||||||
<el-radio-button label="">全部 </el-radio-button>
|
<el-radio-button label="">全部 </el-radio-button>
|
||||||
<el-radio-button label="1">待付款</el-radio-button>
|
<el-radio-button label="1">待付款</el-radio-button>
|
||||||
<el-radio-button label="2">待发货</el-radio-button>
|
<el-radio-button label="2">待发货</el-radio-button>
|
||||||
|
@ -22,7 +32,7 @@
|
||||||
type="daterange"
|
type="daterange"
|
||||||
placement="bottom-end"
|
placement="bottom-end"
|
||||||
placeholder="自定义时间"
|
placeholder="自定义时间"
|
||||||
style="width: 280px;"
|
style="width: 280px"
|
||||||
clearable
|
clearable
|
||||||
:picker-options="pickerOptions"
|
:picker-options="pickerOptions"
|
||||||
@change="onchangeTime"
|
@change="onchangeTime"
|
||||||
|
@ -80,7 +90,9 @@
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
<el-button type="primary" size="small" @click="getList(1)"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
<el-button size="small" @click="searchReset()">重置</el-button>
|
<el-button size="small" @click="searchReset()">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
@ -93,49 +105,87 @@
|
||||||
size="small"
|
size="small"
|
||||||
class="table"
|
class="table"
|
||||||
>
|
>
|
||||||
<el-table-column prop="storeOrder.order_sn" label="订单号" min-width="170"/>
|
<el-table-column
|
||||||
<el-table-column prop="merchant.mer_name" label="商户名称" min-width="160" />
|
prop="storeOrder.order_sn"
|
||||||
|
label="订单号"
|
||||||
|
min-width="170"
|
||||||
|
/>
|
||||||
|
<el-table-column
|
||||||
|
prop="merchant.mer_name"
|
||||||
|
label="商户名称"
|
||||||
|
min-width="160"
|
||||||
|
/>
|
||||||
<el-table-column prop="user.nickname" label="用户昵称" min-width="90" />
|
<el-table-column prop="user.nickname" label="用户昵称" min-width="90" />
|
||||||
<el-table-column prop="order_price" label="订单金额" min-width="90" />
|
<el-table-column prop="order_price" label="订单金额" min-width="90" />
|
||||||
<el-table-column label="订单状态" min-width="90">
|
<el-table-column label="订单状态" min-width="90">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.storeOrder && scope.row.storeOrder.paid === 0 && scope.row.storeOrder.status === 0">待付款</span>
|
<span
|
||||||
<span v-else>{{ scope.row.storeOrder && scope.row.storeOrder.status | orderStatusFilter }}</span>
|
v-if="
|
||||||
|
scope.row.storeOrder &&
|
||||||
|
scope.row.storeOrder.paid === 0 &&
|
||||||
|
scope.row.storeOrder.status === 0
|
||||||
|
"
|
||||||
|
>待付款</span
|
||||||
|
>
|
||||||
|
<span v-else>{{
|
||||||
|
scope.row.storeOrder &&
|
||||||
|
scope.row.storeOrder.status | orderStatusFilter
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="receipt_price" label="发票金额" min-width="90" />
|
<el-table-column prop="receipt_price" label="发票金额" min-width="90" />
|
||||||
<el-table-column prop="receipt_sn" label="发票单号" min-width="120"/>
|
<el-table-column prop="receipt_sn" label="申请单号" min-width="120" />
|
||||||
<el-table-column label="发票类型" min-width="100">
|
<el-table-column label="发票类型" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.receipt_info">{{scope.row.receipt_info.receipt_type == 1 ? '普通发票' : '专用发票' }}</span>
|
<span v-if="scope.row.receipt_info">{{
|
||||||
|
scope.row.receipt_info.receipt_type == 1 ? "普通发票" : "专用发票"
|
||||||
|
}}</span>
|
||||||
<span v-else>--</span>
|
<span v-else>--</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="发票抬头" min-width="90">
|
<el-table-column label="发票抬头" min-width="90">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.receipt_info.receipt_title_type === '1' ? "个人" : "企业" }}</span>
|
<span>{{
|
||||||
|
scope.row.receipt_info.receipt_title_type === "1"
|
||||||
|
? "个人"
|
||||||
|
: "企业"
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="发票联系人" min-width="100">
|
<el-table-column label="发票联系人" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.storeOrder && scope.row.storeOrder.real_name }}</span>
|
<span>{{
|
||||||
|
scope.row.storeOrder && scope.row.storeOrder.real_name
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="发票联系信息" min-width="150">
|
<el-table-column label="发票联系信息" min-width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.delivery_info.email ? scope.row.delivery_info.email : scope.row.delivery_info.user_address && scope.row.delivery_info.user_address + scope.row.delivery_info.user_phone && scope.row.delivery_info.user_phone}}</span>
|
<span>{{
|
||||||
|
scope.row.delivery_info.email
|
||||||
|
? scope.row.delivery_info.email
|
||||||
|
: scope.row.delivery_info.user_address &&
|
||||||
|
scope.row.delivery_info.user_address +
|
||||||
|
scope.row.delivery_info.user_phone &&
|
||||||
|
scope.row.delivery_info.user_phone
|
||||||
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="create_time" label="下单时间" min-width="150" />
|
<el-table-column prop="create_time" label="下单时间" min-width="150" />
|
||||||
<el-table-column label="开票状态" min-width="100">
|
<el-table-column label="开票状态" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{ scope.row.status == 1 ? '已开' : '未开' }}</span>
|
<span>{{ scope.row.status == 1 ? "已开" : "未开" }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="mer_mark" label="发票备注" min-width="100" />
|
<el-table-column prop="mer_mark" label="发票备注" min-width="100" />
|
||||||
<el-table-column label="操作" min-width="100" fixed="right">
|
<el-table-column label="操作" min-width="100" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button type="text" size="small" @click="getInvoiceInfo(scope.row.order_receipt_id)">详情</el-button>
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
@click="getInvoiceInfo(scope.row.order_receipt_id)"
|
||||||
|
>详情</el-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -152,38 +202,118 @@
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<!--开票-->
|
<!--开票-->
|
||||||
<el-dialog v-if="dialogVisible" :title="invoiceInfo.title" :visible.sync="dialogVisible" width="600px">
|
<el-dialog
|
||||||
|
v-if="dialogVisible"
|
||||||
|
:title="invoiceInfo.title"
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
width="600px"
|
||||||
|
>
|
||||||
<div v-loading="loading">
|
<div v-loading="loading">
|
||||||
<div class="box-container">
|
<div class="box-container">
|
||||||
<div class="title">发票详情</div>
|
<div class="title">发票详情</div>
|
||||||
<div class="acea-row">
|
<div class="acea-row">
|
||||||
<div class="list sp"><label class="name" style="color: #333;">发票申请单号:</label>{{ invoiceInfo.receipt_sn }}</div>
|
<div class="list sp">
|
||||||
|
<label class="name" style="color: #333">发票申请单号:</label
|
||||||
|
>{{ invoiceInfo.receipt_sn }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="title">发票信息</div>
|
<div class="title">发票信息</div>
|
||||||
<div class="acea-row">
|
<div class="acea-row">
|
||||||
<div class="list sp"><label class="name">发票抬头:</label>{{ invoiceInfo.receipt_info.receipt_title }}</div>
|
<div class="list sp">
|
||||||
<div class="list sp"><label class="name">发票类型:</label>{{ invoiceInfo.receipt_info.receipt_type == 1 ? '普通发票' : '专用发票' }}</div>
|
<label class="name">发票抬头:</label
|
||||||
<div class="list sp"><label class="name">发票抬头类型:</label>{{ invoiceInfo.receipt_info.receipt_title_type == '1' ? '个人' : '企业' }}</div>
|
>{{ invoiceInfo.receipt_info.receipt_title }}
|
||||||
<div class="list sp"><label class="name">发票金额:</label>{{ invoiceInfo.receipt_price }}</div>
|
</div>
|
||||||
<div v-if="invoiceInfo.receipt_info.receipt_title_type == '2'" class="list sp"><label class="name">企业税号:</label>{{ invoiceInfo.receipt_info.duty_paragraph }}</div>
|
<div class="list sp">
|
||||||
<div v-if="invoiceInfo.receipt_info.receipt_type == 2" class="list sp"><label class="name">开户银行:</label>{{ invoiceInfo.receipt_info.bank_name }}</div>
|
<label class="name">发票类型:</label
|
||||||
<div v-if="invoiceInfo.receipt_info.receipt_type == 2" class="list sp"><label class="name">银行账号:</label>{{ invoiceInfo.receipt_info.bank_code }}</div>
|
>{{
|
||||||
<div v-if="invoiceInfo.receipt_info.receipt_type == 2" class="list sp"><label class="name">企业地址:</label>{{ invoiceInfo.receipt_info.address }}</div>
|
invoiceInfo.receipt_info.receipt_type == 1
|
||||||
<div v-if="invoiceInfo.receipt_info.receipt_type == 2" class="list sp"><label class="name">企业电话:</label>{{ invoiceInfo.receipt_info.tel }}</div>
|
? "普通发票"
|
||||||
|
: "专用发票"
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div class="list sp">
|
||||||
|
<label class="name">发票抬头类型:</label
|
||||||
|
>{{
|
||||||
|
invoiceInfo.receipt_info.receipt_title_type == "1"
|
||||||
|
? "个人"
|
||||||
|
: "企业"
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
<div class="list sp">
|
||||||
|
<label class="name">发票金额:</label
|
||||||
|
>{{ invoiceInfo.receipt_price }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="invoiceInfo.receipt_info.receipt_title_type == '2'"
|
||||||
|
class="list sp"
|
||||||
|
>
|
||||||
|
<label class="name">企业税号:</label
|
||||||
|
>{{ invoiceInfo.receipt_info.duty_paragraph }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="invoiceInfo.receipt_info.receipt_type == 2"
|
||||||
|
class="list sp"
|
||||||
|
>
|
||||||
|
<label class="name">开户银行:</label
|
||||||
|
>{{ invoiceInfo.receipt_info.bank_name }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="invoiceInfo.receipt_info.receipt_type == 2"
|
||||||
|
class="list sp"
|
||||||
|
>
|
||||||
|
<label class="name">银行账号:</label
|
||||||
|
>{{ invoiceInfo.receipt_info.bank_code }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="invoiceInfo.receipt_info.receipt_type == 2"
|
||||||
|
class="list sp"
|
||||||
|
>
|
||||||
|
<label class="name">企业地址:</label
|
||||||
|
>{{ invoiceInfo.receipt_info.address }}
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="invoiceInfo.receipt_info.receipt_type == 2"
|
||||||
|
class="list sp"
|
||||||
|
>
|
||||||
|
<label class="name">企业电话:</label
|
||||||
|
>{{ invoiceInfo.receipt_info.tel }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="title">联系信息:</div>
|
<div class="title">联系信息:</div>
|
||||||
<div v-if="invoiceInfo.receipt_info.receipt_type == 1" class="acea-row">
|
<div
|
||||||
<div class="list sp"><label class="name">联系邮箱:</label>{{ invoiceInfo.delivery_info.email }}</div>
|
v-if="invoiceInfo.receipt_info.receipt_type == 1"
|
||||||
|
class="acea-row"
|
||||||
|
>
|
||||||
|
<div class="list sp">
|
||||||
|
<label class="name">联系邮箱:</label
|
||||||
|
>{{ invoiceInfo.delivery_info.email }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="acea-row">
|
<div v-else class="acea-row">
|
||||||
<div class="list sp"><label class="name">联系人姓名:</label>{{ invoiceInfo.delivery_info.user_name }}</div>
|
<div class="list sp">
|
||||||
<div class="list sp"><label class="name">联系人电话:</label>{{ invoiceInfo.delivery_info.user_phone }}</div>
|
<label class="name">联系人姓名:</label
|
||||||
<div class="list sp"><label class="name">联系人地址:</label>{{ invoiceInfo.delivery_info.user_address }}</div>
|
>{{ invoiceInfo.delivery_info.user_name }}
|
||||||
|
</div>
|
||||||
|
<div class="list sp">
|
||||||
|
<label class="name">联系人电话:</label
|
||||||
|
>{{ invoiceInfo.delivery_info.user_phone }}
|
||||||
|
</div>
|
||||||
|
<div class="list sp">
|
||||||
|
<label class="name">联系人地址:</label
|
||||||
|
>{{ invoiceInfo.delivery_info.user_address }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="acea-row">
|
<div class="acea-row">
|
||||||
<div class="list sp"><label class="name">开票状态:</label>{{ invoiceInfo.status == 1 ? '已开' : '未开' }}</div>
|
<div class="list sp">
|
||||||
<div v-if="invoiceInfo.status == 1" class="list sp100"><label class="name">发票号码:</label>{{ invoiceInfo.receipt_no }}</div>
|
<label class="name">开票状态:</label
|
||||||
<div class="list sp100"><label class="name">发票备注:</label>{{ invoiceInfo.mer_mark }}</div>
|
>{{ invoiceInfo.status == 1 ? "已开" : "未开" }}
|
||||||
|
</div>
|
||||||
|
<div v-if="invoiceInfo.status == 1" class="list sp100">
|
||||||
|
<label class="name">发票号码:</label>{{ invoiceInfo.receipt_no }}
|
||||||
|
</div>
|
||||||
|
<div class="list sp100">
|
||||||
|
<label class="name">发票备注:</label>{{ invoiceInfo.mer_mark }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -192,78 +322,77 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { invoiceListApi, invoiceDetailApi } from "@/api/accounts";
|
||||||
import { invoiceListApi, invoiceDetailApi } from '@/api/accounts'
|
import { merSelectApi } from "@/api/product";
|
||||||
import { merSelectApi } from '@/api/product'
|
import timeOptions from "@/utils/timeOptions";
|
||||||
import timeOptions from '@/utils/timeOptions';
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AccountsReceipt',
|
name: "AccountsReceipt",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pickerOptions: timeOptions,
|
pickerOptions: timeOptions,
|
||||||
logisticsName: 'refund',
|
logisticsName: "refund",
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
id: 0,
|
id: 0,
|
||||||
type: '',
|
type: "",
|
||||||
tableData: {
|
tableData: {
|
||||||
data: [],
|
data: [],
|
||||||
total: 0
|
total: 0,
|
||||||
},
|
},
|
||||||
merSelect: [],
|
merSelect: [],
|
||||||
invoiceStatusList: [
|
invoiceStatusList: [
|
||||||
{ label: "已开票", value: 1 },
|
{ label: "已开票", value: 1 },
|
||||||
{ label: "未开票", value: 0 }
|
{ label: "未开票", value: 0 },
|
||||||
],
|
],
|
||||||
listLoading: true,
|
listLoading: true,
|
||||||
tableFrom: {
|
tableFrom: {
|
||||||
username: '',
|
username: "",
|
||||||
type: '',
|
type: "",
|
||||||
date: '',
|
date: "",
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: 20,
|
limit: 20,
|
||||||
receipt_sn: '',
|
receipt_sn: "",
|
||||||
order_type: '',
|
order_type: "",
|
||||||
keyword: '',
|
keyword: "",
|
||||||
status: '',
|
status: "",
|
||||||
mer_id: ''
|
mer_id: "",
|
||||||
},
|
},
|
||||||
orderChartType: {},
|
orderChartType: {},
|
||||||
timeVal: [],
|
timeVal: [],
|
||||||
fromList: {
|
fromList: {
|
||||||
title: '选择时间',
|
title: "选择时间",
|
||||||
custom: true,
|
custom: true,
|
||||||
fromTxt: [
|
fromTxt: [
|
||||||
{ text: '全部', val: '' },
|
{ text: "全部", val: "" },
|
||||||
{ text: '今天', val: 'today' },
|
{ text: "今天", val: "today" },
|
||||||
{ text: '昨天', val: 'yesterday' },
|
{ text: "昨天", val: "yesterday" },
|
||||||
{ text: '最近7天', val: 'lately7' },
|
{ text: "最近7天", val: "lately7" },
|
||||||
{ text: '最近30天', val: 'lately30' },
|
{ text: "最近30天", val: "lately30" },
|
||||||
{ text: '本月', val: 'month' },
|
{ text: "本月", val: "month" },
|
||||||
{ text: '本年', val: 'year' }
|
{ text: "本年", val: "year" },
|
||||||
]
|
],
|
||||||
},
|
},
|
||||||
loading: false,
|
loading: false,
|
||||||
invoiceInfo: {},
|
invoiceInfo: {},
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.getList(1)
|
this.getList(1);
|
||||||
this.getMerSelect();
|
this.getMerSelect();
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
/**重置 */
|
/**重置 */
|
||||||
searchReset() {
|
searchReset() {
|
||||||
this.timeVal = []
|
this.timeVal = [];
|
||||||
this.tableFrom.date = ""
|
this.tableFrom.date = "";
|
||||||
this.$refs.searchForm.resetFields()
|
this.$refs.searchForm.resetFields();
|
||||||
this.getList(1)
|
this.getList(1);
|
||||||
},
|
},
|
||||||
// 具体日期
|
// 具体日期
|
||||||
onchangeTime(e) {
|
onchangeTime(e) {
|
||||||
this.timeVal = e
|
this.timeVal = e;
|
||||||
this.tableFrom.date = e ? this.timeVal.join('-') : ''
|
this.tableFrom.date = e ? this.timeVal.join("-") : "";
|
||||||
this.getList(1)
|
this.getList(1);
|
||||||
},
|
},
|
||||||
// 商户列表;
|
// 商户列表;
|
||||||
getMerSelect() {
|
getMerSelect() {
|
||||||
|
@ -277,49 +406,49 @@ export default {
|
||||||
},
|
},
|
||||||
//详情
|
//详情
|
||||||
getInvoiceInfo(id) {
|
getInvoiceInfo(id) {
|
||||||
this.loading = true
|
this.loading = true;
|
||||||
invoiceDetailApi(id)
|
invoiceDetailApi(id)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
this.invoiceInfo = res.data
|
this.invoiceInfo = res.data;
|
||||||
this.dialogVisible = true
|
this.dialogVisible = true;
|
||||||
this.loading = false
|
this.loading = false;
|
||||||
})
|
|
||||||
.catch(res => {
|
|
||||||
this.$message.error(res.message)
|
|
||||||
this.loading = false
|
|
||||||
this.dialogVisible = false
|
|
||||||
})
|
})
|
||||||
|
.catch((res) => {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
this.loading = false;
|
||||||
|
this.dialogVisible = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 列表
|
// 列表
|
||||||
getList(num) {
|
getList(num) {
|
||||||
this.listLoading = true
|
this.listLoading = true;
|
||||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||||
invoiceListApi(this.tableFrom)
|
invoiceListApi(this.tableFrom)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
this.orderChartType = res.data.stat
|
this.orderChartType = res.data.stat;
|
||||||
this.tableData.data = res.data.list
|
this.tableData.data = res.data.list;
|
||||||
this.tableData.total = res.data.count
|
this.tableData.total = res.data.count;
|
||||||
this.listLoading = false
|
this.listLoading = false;
|
||||||
})
|
|
||||||
.catch(res => {
|
|
||||||
this.$message.error(res.message)
|
|
||||||
this.listLoading = false
|
|
||||||
})
|
})
|
||||||
|
.catch((res) => {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
this.listLoading = false;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
pageChange(page) {
|
pageChange(page) {
|
||||||
this.tableFrom.page = page
|
this.tableFrom.page = page;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
handleSizeChange(val) {
|
handleSizeChange(val) {
|
||||||
this.tableFrom.limit = val
|
this.tableFrom.limit = val;
|
||||||
this.getList()
|
this.getList();
|
||||||
},
|
},
|
||||||
|
|
||||||
handleClose() {
|
handleClose() {
|
||||||
this.dialogLogistics = false
|
this.dialogLogistics = false;
|
||||||
},
|
},
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -362,5 +491,4 @@ export default {
|
||||||
width: 100px;
|
width: 100px;
|
||||||
color: #606266;
|
color: #606266;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<el-option label="审核未通过" value="2"/>
|
<el-option label="审核未通过" value="2"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="选择时间:">
|
<el-form-item label="申请时间:">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="timeVal"
|
v-model="timeVal"
|
||||||
type="daterange"
|
type="daterange"
|
||||||
|
@ -28,22 +28,6 @@
|
||||||
style="width: 280px"
|
style="width: 280px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="商户分类:" prop="category_id">
|
|
||||||
<el-select
|
|
||||||
v-model="tableFrom.category_id"
|
|
||||||
clearable
|
|
||||||
placeholder="请选择"
|
|
||||||
class="selWidth"
|
|
||||||
@change="getList(1)"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in merCateList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item> -->
|
|
||||||
<el-form-item label="店铺类型:" prop="type_id">
|
<el-form-item label="店铺类型:" prop="type_id">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="tableFrom.type_id"
|
v-model="tableFrom.type_id"
|
||||||
|
@ -61,17 +45,13 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属城市:" prop="city_code">
|
<el-form-item label="所属城市:" prop="city_code">
|
||||||
<el-cascader
|
<el-input
|
||||||
ref="cascader"
|
|
||||||
v-model="tableFrom.city_code"
|
v-model="tableFrom.city_code"
|
||||||
:options="cityOptions"
|
@keyup.enter.native="getList(1)"
|
||||||
:show-all-levels="false"
|
placeholder="请输入所属城市"
|
||||||
:props="{ emitPath: false }"
|
|
||||||
class="selWidth"
|
class="selWidth"
|
||||||
@change="handleCascader"
|
|
||||||
clearable
|
clearable
|
||||||
>
|
/>
|
||||||
</el-cascader>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="商户关键字:" prop="keyword">
|
<el-form-item label="商户关键字:" prop="keyword">
|
||||||
<el-input
|
<el-input
|
||||||
|
@ -82,6 +62,15 @@
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="备注:" prop="mark">
|
||||||
|
<el-input
|
||||||
|
v-model="tableFrom.mark"
|
||||||
|
@keyup.enter.native="getList(1)"
|
||||||
|
placeholder="请输入备注"
|
||||||
|
class="selWidth"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
||||||
<el-button size="small" @click="searchReset()">重置</el-button>
|
<el-button size="small" @click="searchReset()">重置</el-button>
|
||||||
|
|
|
@ -1,7 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="divBox">
|
<div class="divBox">
|
||||||
<div class="selCard">
|
<div class="selCard">
|
||||||
<el-form :model="tableFrom" ref="searchForm" size="small" label-width="105px" :inline="true">
|
<el-form
|
||||||
|
:model="tableFrom"
|
||||||
|
ref="searchForm"
|
||||||
|
size="small"
|
||||||
|
label-width="105px"
|
||||||
|
:inline="true"
|
||||||
|
>
|
||||||
<el-form-item label="选择时间:">
|
<el-form-item label="选择时间:">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="timeVal"
|
v-model="timeVal"
|
||||||
|
@ -10,7 +16,7 @@
|
||||||
format="yyyy/MM/dd"
|
format="yyyy/MM/dd"
|
||||||
value-format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
||||||
range-separator="-"
|
range-separator="-"
|
||||||
style="width:280px;"
|
style="width: 280px"
|
||||||
:picker-options="pickerOptions"
|
:picker-options="pickerOptions"
|
||||||
@change="onchangeTime"
|
@change="onchangeTime"
|
||||||
/>
|
/>
|
||||||
|
@ -27,46 +33,38 @@
|
||||||
<el-option label="非自营" value="0" />
|
<el-option label="非自营" value="0" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="商户分类:" prop="category_id">
|
<el-form-item label="是否惠美乡村:" prop="is_huimei">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="tableFrom.category_id"
|
v-model="tableFrom.is_huimei"
|
||||||
clearable
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
class="selWidth"
|
class="filter-item selWidth"
|
||||||
|
clearable
|
||||||
@change="getList(1)"
|
@change="getList(1)"
|
||||||
>
|
>
|
||||||
<el-option
|
|
||||||
v-for="item in merCateList"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</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="1" />
|
||||||
<el-option label="否" value="0" />
|
<el-option label="否" value="0" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否退伍军人:" prop="is_soldier">
|
<el-form-item label="是否退伍军人:" prop="is_soldier">
|
||||||
<el-select v-model="tableFrom.is_soldier" placeholder="请选择" class="filter-item selWidth" clearable @change="getList(1)">
|
<el-select
|
||||||
|
v-model="tableFrom.is_soldier"
|
||||||
|
placeholder="请选择"
|
||||||
|
class="filter-item selWidth"
|
||||||
|
clearable
|
||||||
|
@change="getList(1)"
|
||||||
|
>
|
||||||
<el-option label="是" value="1" />
|
<el-option label="是" value="1" />
|
||||||
<el-option label="否" value="0" />
|
<el-option label="否" value="0" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属城市:" prop="city_code">
|
<el-form-item label="所属城市:" prop="city_code">
|
||||||
<el-cascader
|
<el-input
|
||||||
ref="cascader"
|
|
||||||
v-model="tableFrom.city_code"
|
v-model="tableFrom.city_code"
|
||||||
:options="cityOptions"
|
@keyup.enter.native="getList(1)"
|
||||||
:show-all-levels="false"
|
placeholder="请输入所属城市"
|
||||||
:props="{ emitPath: false,label:'label' }"
|
|
||||||
class="selWidth"
|
class="selWidth"
|
||||||
@change="handleCascader"
|
|
||||||
clearable
|
clearable
|
||||||
>
|
/>
|
||||||
</el-cascader>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="店铺类型:" prop="type_id">
|
<el-form-item label="店铺类型:" prop="type_id">
|
||||||
<el-select
|
<el-select
|
||||||
|
@ -96,24 +94,78 @@
|
||||||
<el-option key="0" label="否" value="0" />
|
<el-option key="0" label="否" value="0" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="关键字:" prop="keyword">
|
<el-form-item label="企业关键字:" prop="keyword">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="tableFrom.keyword"
|
v-model="tableFrom.keyword"
|
||||||
@keyup.enter.native="getList(1)"
|
@keyup.enter.native="getList(1)"
|
||||||
placeholder="请输入店铺关键字/店铺名/联系电话"
|
placeholder="请输入店铺/企业名称关键字"
|
||||||
|
class="selWidth"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="姓名关键字:" prop="keyword">
|
||||||
|
<el-input
|
||||||
|
v-model="tableFrom.keyword"
|
||||||
|
@keyup.enter.native="getList(1)"
|
||||||
|
placeholder="请输入法人/对接人姓名"
|
||||||
|
class="selWidth"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="对接人电话:" prop="keyword">
|
||||||
|
<el-input
|
||||||
|
v-model="tableFrom.keyword"
|
||||||
|
@keyup.enter.native="getList(1)"
|
||||||
|
placeholder="请输入对接人电话"
|
||||||
|
class="selWidth"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="对接人身份证:" prop="keyword">
|
||||||
|
<el-input
|
||||||
|
v-model="tableFrom.keyword"
|
||||||
|
@keyup.enter.native="getList(1)"
|
||||||
|
placeholder="请输入对接人身份证"
|
||||||
|
class="selWidth"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="是否店长店:" prop="is_store_mgr">
|
||||||
|
<el-select
|
||||||
|
v-model="tableFrom.is_store_mgr"
|
||||||
|
clearable
|
||||||
|
placeholder="请选择"
|
||||||
|
class="selWidth"
|
||||||
|
@change="getList(1)"
|
||||||
|
>
|
||||||
|
<el-option key="1" label="是" value="1" />
|
||||||
|
<el-option key="0" label="否" value="0" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注:" prop="mark">
|
||||||
|
<el-input
|
||||||
|
v-model="tableFrom.mark"
|
||||||
|
@keyup.enter.native="getList(1)"
|
||||||
|
placeholder="请输入备注"
|
||||||
class="selWidth"
|
class="selWidth"
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" size="small" @click="getList(1)">搜索</el-button>
|
<el-button type="primary" size="small" @click="getList(1)"
|
||||||
|
>搜索</el-button
|
||||||
|
>
|
||||||
<el-button size="small" @click="searchReset()">重置</el-button>
|
<el-button size="small" @click="searchReset()">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<el-card class="mt14">
|
<el-card class="mt14">
|
||||||
<div class="mb20">
|
<div class="mb20">
|
||||||
<el-tabs v-if="headeNum.length > 0" v-model="tableFrom.status" @tab-click="getList(1),getHeadNum()">
|
<el-tabs
|
||||||
|
v-if="headeNum.length > 0"
|
||||||
|
v-model="tableFrom.status"
|
||||||
|
@tab-click="getList(1), getHeadNum()"
|
||||||
|
>
|
||||||
<el-tab-pane
|
<el-tab-pane
|
||||||
v-for="(item, index) in headeNum"
|
v-for="(item, index) in headeNum"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
@ -121,8 +173,12 @@
|
||||||
:label="item.title + '(' + item.count + ')'"
|
:label="item.title + '(' + item.count + ')'"
|
||||||
/>
|
/>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
<el-button size="small" type="primary" class="mt5" @click="onAdd">添加商户</el-button>
|
<el-button size="small" type="primary" class="mt5" @click="onAdd"
|
||||||
<el-button size="small" type="primary" class="mt5" @click="exports">导出列表</el-button>
|
>添加商户</el-button
|
||||||
|
>
|
||||||
|
<el-button size="small" type="primary" class="mt5" @click="exports"
|
||||||
|
>导出列表</el-button
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<el-table
|
<el-table
|
||||||
v-loading="listLoading"
|
v-loading="listLoading"
|
||||||
|
@ -133,23 +189,31 @@
|
||||||
<el-table-column prop="mer_id" label="ID" min-width="60" />
|
<el-table-column prop="mer_id" label="ID" min-width="60" />
|
||||||
<el-table-column prop="mer_name" label="店铺名称" min-width="150" />
|
<el-table-column prop="mer_name" label="店铺名称" min-width="150" />
|
||||||
<el-table-column prop="ext.com.name" label="企业名称" min-width="150" />
|
<el-table-column prop="ext.com.name" label="企业名称" min-width="150" />
|
||||||
<el-table-column prop="merchantType.type_name" label="店铺类型" min-width="150" />
|
<el-table-column
|
||||||
|
prop="merchantType.type_name"
|
||||||
|
label="店铺类型"
|
||||||
|
min-width="150"
|
||||||
|
/>
|
||||||
<el-table-column prop="is_huimei" label="是否惠美乡村" min-width="100">
|
<el-table-column prop="is_huimei" label="是否惠美乡村" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{scope.row.is_huimei == 1 ? '是' : '否'}}</span>
|
<span>{{ scope.row.is_huimei == 1 ? "是" : "否" }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="is_soldier" label="是否军人" min-width="80">
|
<el-table-column prop="is_soldier" label="是否军人" min-width="80">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{scope.row.is_soldier == 1 ? '是' : '否'}}</span>
|
<span>{{ scope.row.is_soldier == 1 ? "是" : "否" }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="is_soldier" label="是否店长店" min-width="90">
|
<el-table-column prop="is_store_mgr" label="是否店长店" min-width="90">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{scope.row.is_store_mgr == 1 ? '是' : '否'}}</span>
|
<span>{{ scope.row.is_store_mgr == 1 ? "是" : "否" }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="ext.idcard.name" label="法人姓名" min-width="150" />
|
<el-table-column
|
||||||
|
prop="ext.idcard.name"
|
||||||
|
label="法人姓名"
|
||||||
|
min-width="150"
|
||||||
|
/>
|
||||||
<el-table-column prop="status" label="推荐" min-width="100">
|
<el-table-column prop="status" label="推荐" min-width="100">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-switch
|
<el-switch
|
||||||
|
@ -176,27 +240,48 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<!-- <el-table-column prop="lock" label="退店(开启/关闭)" min-width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-switch
|
||||||
|
v-model="scope.row.lock"
|
||||||
|
:active-value="1"
|
||||||
|
:inactive-value="0"
|
||||||
|
active-text="开启"
|
||||||
|
inactive-text="关闭"
|
||||||
|
:width="55"
|
||||||
|
@click.native="onchangeIsClose(scope.row, 'lock')"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</el-table-column> -->
|
||||||
<el-table-column prop="real_name" label="对接人姓名" min-width="100" />
|
<el-table-column prop="real_name" label="对接人姓名" min-width="100" />
|
||||||
<el-table-column prop="mer_phone" label="对接人电话" min-width="100" />
|
<el-table-column prop="mer_phone" label="对接人电话" min-width="100" />
|
||||||
<el-table-column prop="ext.com.number" label="对接人身份证号" min-width="120" />
|
<el-table-column
|
||||||
|
prop="ext.com.number"
|
||||||
|
label="对接人身份证号"
|
||||||
|
min-width="120"
|
||||||
|
/>
|
||||||
<!-- <el-table-column prop="ext.com.initiator" label="发起人姓名" min-width="100" />
|
<!-- <el-table-column prop="ext.com.initiator" label="发起人姓名" min-width="100" />
|
||||||
<el-table-column prop="ext.com.inti_number" label="发起人编号" min-width="100" />
|
<el-table-column prop="ext.com.inti_number" label="发起人编号" min-width="100" />
|
||||||
<el-table-column prop="ext.com.inti_mobile" label="发起人电话" min-width="100" /> -->
|
<el-table-column prop="ext.com.inti_mobile" label="发起人电话" min-width="100" /> -->
|
||||||
<el-table-column prop="ext.biz.cityInfo" label="所属城市" min-width="100" />
|
<el-table-column
|
||||||
|
prop="ext.biz.cityInfo"
|
||||||
|
label="所属城市"
|
||||||
|
min-width="100"
|
||||||
|
/>
|
||||||
<el-table-column prop="create_time" label="创建时间" min-width="150" />
|
<el-table-column prop="create_time" label="创建时间" min-width="150" />
|
||||||
<el-table-column prop="margin" label="保证金" min-width="150">
|
<el-table-column prop="margin" label="保证金" min-width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{getNumber(scope.row,'margin')}}</span>
|
<span>{{ getNumber(scope.row, "margin") }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="service" label="技术服务费" min-width="150">
|
<el-table-column prop="service" label="技术服务费" min-width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{getNumber(scope.row,'service')}}</span>
|
<span>{{ getNumber(scope.row, "service") }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="goods" label="上架费" min-width="150">
|
<el-table-column prop="goods" label="上架费" min-width="150">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{getNumber(scope.row,'goods')}}</span>
|
<span>{{ getNumber(scope.row, "goods") }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="sort" label="排序" min-width="100" />
|
<el-table-column prop="sort" label="排序" min-width="100" />
|
||||||
|
@ -209,16 +294,33 @@
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="onLogo(scope.row.mer_id)"
|
@click="onLogo(scope.row.mer_id)"
|
||||||
>登录</el-button>
|
>登录</el-button
|
||||||
<el-button type="text" size="small" @click="onEdit(scope.row.mer_id)">编辑</el-button>
|
>
|
||||||
<el-button type="text" size="small" @click="setPayment(scope.row.mer_id)">缴费</el-button>
|
<el-button
|
||||||
<el-button type="text" size="small" @click="onDetails(scope.row.mer_id)">详情</el-button>
|
type="text"
|
||||||
|
size="small"
|
||||||
|
@click="onEdit(scope.row.mer_id)"
|
||||||
|
>编辑</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
@click="setPayment(scope.row.mer_id)"
|
||||||
|
>缴费</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
@click="onDetails(scope.row.mer_id)"
|
||||||
|
>详情</el-button
|
||||||
|
>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="tableFrom.status === '0'"
|
v-if="tableFrom.status === '0'"
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleDelete(scope.row.mer_id, scope.$index)"
|
@click="handleDelete(scope.row.mer_id, scope.$index)"
|
||||||
>删除</el-button>
|
>删除</el-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -250,7 +352,6 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import {
|
import {
|
||||||
merchantListApi,
|
merchantListApi,
|
||||||
merchantDeleteForm,
|
merchantDeleteForm,
|
||||||
|
@ -260,19 +361,21 @@ import {
|
||||||
changeCopyApi,
|
changeCopyApi,
|
||||||
merchantCountApi,
|
merchantCountApi,
|
||||||
merchantIsCloseApi,
|
merchantIsCloseApi,
|
||||||
|
merchantIsLockApi,
|
||||||
getstoreTypeApi,
|
getstoreTypeApi,
|
||||||
merchantPayForm,
|
merchantPayForm,
|
||||||
exportMerchantApi,
|
exportMerchantApi,
|
||||||
getMerCateApi, marginDeductionForm
|
getMerCateApi,
|
||||||
|
marginDeductionForm,
|
||||||
} from "@/api/merchant";
|
} from "@/api/merchant";
|
||||||
import merDetail from './handle/merDetails.vue';
|
import merDetail from "./handle/merDetails.vue";
|
||||||
import { fromList } from "@/libs/constants.js";
|
import { fromList } from "@/libs/constants.js";
|
||||||
import { roterPre } from "@/settings";
|
import { roterPre } from "@/settings";
|
||||||
import SettingMer from "@/libs/settingMer";
|
import SettingMer from "@/libs/settingMer";
|
||||||
import createWorkBook from '@/utils/newToExcel.js';
|
import createWorkBook from "@/utils/newToExcel.js";
|
||||||
import Cookies from "js-cookie";
|
import Cookies from "js-cookie";
|
||||||
import timeOptions from '@/utils/timeOptions';
|
import timeOptions from "@/utils/timeOptions";
|
||||||
import cityOptions from '@/utils/city';
|
import cityOptions from "@/utils/city";
|
||||||
export default {
|
export default {
|
||||||
name: "MerchantList",
|
name: "MerchantList",
|
||||||
components: { merDetail },
|
components: { merDetail },
|
||||||
|
@ -288,19 +391,24 @@ export default {
|
||||||
storeType: [],
|
storeType: [],
|
||||||
headeNum: [
|
headeNum: [
|
||||||
{
|
{
|
||||||
count: '',
|
count: "",
|
||||||
type: "1",
|
type: "1",
|
||||||
title: "正常开启的商户"
|
title: "正常开启的商户",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
count: '',
|
count: "",
|
||||||
type: "0",
|
type: "0",
|
||||||
title: "已关闭商户"
|
title: "已关闭商户",
|
||||||
}
|
},
|
||||||
|
// {
|
||||||
|
// count: "",
|
||||||
|
// type: "2",
|
||||||
|
// title: "已退店商户",
|
||||||
|
// },
|
||||||
],
|
],
|
||||||
tableData: {
|
tableData: {
|
||||||
data: [],
|
data: [],
|
||||||
total: 0
|
total: 0,
|
||||||
},
|
},
|
||||||
tableFrom: {
|
tableFrom: {
|
||||||
page: 1,
|
page: 1,
|
||||||
|
@ -310,15 +418,15 @@ export default {
|
||||||
keyword: "",
|
keyword: "",
|
||||||
is_trader: "",
|
is_trader: "",
|
||||||
is_best: "",
|
is_best: "",
|
||||||
category_id: '',
|
category_id: "",
|
||||||
type_id: "",
|
type_id: "",
|
||||||
city_code:'',
|
city_code: "",
|
||||||
city:'',
|
city: "",
|
||||||
},
|
},
|
||||||
autoUpdate: true,
|
autoUpdate: true,
|
||||||
merId: "",
|
merId: "",
|
||||||
drawer: false,
|
drawer: false,
|
||||||
timeVal: []
|
timeVal: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -329,55 +437,69 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getNumber(row, name) {
|
getNumber(row, name) {
|
||||||
if(name=='margin'){
|
if (name == "margin") {
|
||||||
return row[`is_${name}`] == 0?'无':row[`ot_${name}`]-row[`${name}`]>0 ? '待缴' : '已缴'
|
return row[`is_${name}`] == 0
|
||||||
|
? "无"
|
||||||
|
: row[`ot_${name}`] - row[`${name}`] > 0
|
||||||
|
? "待缴"
|
||||||
|
: "已缴";
|
||||||
} else {
|
} else {
|
||||||
return row[`is_${name}`] == 0?'无':row[`ot_${name}_cost`]-row[`${name}_cost`]>0 ? '待缴' : '已缴'
|
return row[`is_${name}`] == 0
|
||||||
|
? "无"
|
||||||
|
: row[`ot_${name}_cost`] - row[`${name}_cost`] > 0
|
||||||
|
? "待缴"
|
||||||
|
: "已缴";
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
handleCascader() {
|
handleCascader() {
|
||||||
this.tableFrom.city = this.$refs["cascader"]?.getCheckedNodes()[0]?.label
|
this.tableFrom.city = this.$refs["cascader"]?.getCheckedNodes()[0]?.label;
|
||||||
this.getList(1)
|
this.getList(1);
|
||||||
},
|
},
|
||||||
async exports() {
|
async exports() {
|
||||||
let excelData = JSON.parse(JSON.stringify(this.tableFrom)), data = []
|
let excelData = JSON.parse(JSON.stringify(this.tableFrom)),
|
||||||
excelData.page = 1
|
data = [];
|
||||||
let pageCount = 1
|
excelData.page = 1;
|
||||||
|
let pageCount = 1;
|
||||||
let lebData = {};
|
let lebData = {};
|
||||||
for (let i = 0; i < pageCount; i++) {
|
for (let i = 0; i < pageCount; i++) {
|
||||||
lebData = await this.downData(excelData)
|
lebData = await this.downData(excelData);
|
||||||
pageCount = Math.ceil(lebData.count/excelData.limit)
|
pageCount = Math.ceil(lebData.count / excelData.limit);
|
||||||
if (lebData.export.length) {
|
if (lebData.export.length) {
|
||||||
data = data.concat(lebData.export)
|
data = data.concat(lebData.export);
|
||||||
excelData.page++
|
excelData.page++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
createWorkBook(lebData.header, lebData.title, data, lebData.foot,lebData.filename);
|
createWorkBook(
|
||||||
return
|
lebData.header,
|
||||||
|
lebData.title,
|
||||||
|
data,
|
||||||
|
lebData.foot,
|
||||||
|
lebData.filename
|
||||||
|
);
|
||||||
|
return;
|
||||||
},
|
},
|
||||||
/**订单列表 */
|
/**订单列表 */
|
||||||
downData(excelData) {
|
downData(excelData) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
exportMerchantApi(excelData).then((res) => {
|
exportMerchantApi(excelData).then((res) => {
|
||||||
return resolve(res.data)
|
return resolve(res.data);
|
||||||
})
|
});
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
/**重置 */
|
/**重置 */
|
||||||
searchReset() {
|
searchReset() {
|
||||||
this.timeVal = []
|
this.timeVal = [];
|
||||||
this.tableFrom.date = ""
|
this.tableFrom.date = "";
|
||||||
this.$refs.searchForm.resetFields()
|
this.$refs.searchForm.resetFields();
|
||||||
this.getList(1)
|
this.getList(1);
|
||||||
},
|
},
|
||||||
onLogo(id) {
|
onLogo(id) {
|
||||||
merchantLoginApi(id)
|
merchantLoginApi(id)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
Cookies.set("merchantToken", res.data.token);
|
Cookies.set("merchantToken", res.data.token);
|
||||||
window.open(`${location.origin}${res.data.url}`);
|
window.open(`${location.origin}${res.data.url}`);
|
||||||
})
|
})
|
||||||
.catch(res => {
|
.catch((res) => {
|
||||||
this.$message.error(res.message);
|
this.$message.error(res.message);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -391,38 +513,42 @@ export default {
|
||||||
// 获取开启商户数
|
// 获取开启商户数
|
||||||
getHeadNum() {
|
getHeadNum() {
|
||||||
merchantCountApi()
|
merchantCountApi()
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
this.headeNum[0]["count"] = res.data.valid;
|
this.headeNum[0]["count"] = res.data.valid;
|
||||||
this.headeNum[1]["count"] = res.data.invalid;
|
this.headeNum[1]["count"] = res.data.invalid;
|
||||||
})
|
})
|
||||||
.catch(res => {});
|
.catch((res) => {});
|
||||||
},
|
},
|
||||||
// 商户分类;
|
// 商户分类;
|
||||||
getMerCategory() {
|
getMerCategory() {
|
||||||
getMerCateApi().then(res => {
|
getMerCateApi()
|
||||||
this.merCateList = res.data
|
.then((res) => {
|
||||||
}).catch(res => {
|
this.merCateList = res.data;
|
||||||
this.$message.error(res.message)
|
|
||||||
})
|
})
|
||||||
|
.catch((res) => {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
getStoreType() {
|
getStoreType() {
|
||||||
getstoreTypeApi().then(res => {
|
getstoreTypeApi()
|
||||||
this.storeType = res.data
|
.then((res) => {
|
||||||
}).catch(res => {
|
this.storeType = res.data;
|
||||||
this.$message.error(res.message)
|
|
||||||
})
|
})
|
||||||
|
.catch((res) => {
|
||||||
|
this.$message.error(res.message);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
// 列表
|
// 列表
|
||||||
getList(num) {
|
getList(num) {
|
||||||
this.listLoading = true;
|
this.listLoading = true;
|
||||||
this.tableFrom.page = num ? num : this.tableFrom.page;
|
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||||
merchantListApi(this.tableFrom)
|
merchantListApi(this.tableFrom)
|
||||||
.then(res => {
|
.then((res) => {
|
||||||
this.tableData.data = res.data.list;
|
this.tableData.data = res.data.list;
|
||||||
this.tableData.total = res.data.count;
|
this.tableData.total = res.data.count;
|
||||||
this.listLoading = false;
|
this.listLoading = false;
|
||||||
})
|
})
|
||||||
.catch(res => {
|
.catch((res) => {
|
||||||
this.listLoading = false;
|
this.listLoading = false;
|
||||||
this.$message.error(res.message);
|
this.$message.error(res.message);
|
||||||
});
|
});
|
||||||
|
@ -450,9 +576,19 @@ export default {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 开启关闭
|
// 开启关闭退店
|
||||||
onchangeIsClose(row) {
|
onchangeIsClose(row, type) {
|
||||||
merchantIsCloseApi(row.mer_id, row.status)
|
type == "lock"
|
||||||
|
? merchantIsLockApi(row.mer_id, row.lock)
|
||||||
|
.then(({ message }) => {
|
||||||
|
this.$message.success(message);
|
||||||
|
this.getList("");
|
||||||
|
this.getHeadNum();
|
||||||
|
})
|
||||||
|
.catch(({ message }) => {
|
||||||
|
this.$message.error(message);
|
||||||
|
})
|
||||||
|
: merchantIsCloseApi(row.mer_id, row.status)
|
||||||
.then(({ message }) => {
|
.then(({ message }) => {
|
||||||
this.$message.success(message);
|
this.$message.success(message);
|
||||||
this.getList("");
|
this.getList("");
|
||||||
|
@ -474,7 +610,6 @@ export default {
|
||||||
this.$refs.merDetail.isEdit = true;
|
this.$refs.merDetail.isEdit = true;
|
||||||
this.$refs.merDetail.getInfo(id);
|
this.$refs.merDetail.getInfo(id);
|
||||||
this.drawer = true;
|
this.drawer = true;
|
||||||
|
|
||||||
},
|
},
|
||||||
// 详情
|
// 详情
|
||||||
onDetails(id) {
|
onDetails(id) {
|
||||||
|
@ -509,10 +644,9 @@ export default {
|
||||||
// 修改密码表单
|
// 修改密码表单
|
||||||
onPassword(id) {
|
onPassword(id) {
|
||||||
this.$modalForm(merchantPasswordApi(id));
|
this.$modalForm(merchantPasswordApi(id));
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss"></style>
|
||||||
</style>
|
|
||||||
|
|
|
@ -105,7 +105,7 @@
|
||||||
class="selWidth"
|
class="selWidth"
|
||||||
@change="getList(1),getCardList()"
|
@change="getList(1),getCardList()"
|
||||||
>
|
>
|
||||||
<el-option label="消费券" value="0" />
|
<el-option label="余额" value="0" />
|
||||||
<el-option label="微信" value="1" />
|
<el-option label="微信" value="1" />
|
||||||
<el-option label="支付宝" value="2" />
|
<el-option label="支付宝" value="2" />
|
||||||
<el-option label="铸源星" value="7" />
|
<el-option label="铸源星" value="7" />
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
class="selWidth"
|
class="selWidth"
|
||||||
@change="getList(1)"
|
@change="getList(1)"
|
||||||
>
|
>
|
||||||
<el-option label="消费券" value="0" />
|
<el-option label="余额" value="0" />
|
||||||
<el-option label="微信" value="1" />
|
<el-option label="微信" value="1" />
|
||||||
<el-option label="支付宝" value="2" />
|
<el-option label="支付宝" value="2" />
|
||||||
<el-option label="铸源星" value="7" />
|
<el-option label="铸源星" value="7" />
|
||||||
|
|
|
@ -0,0 +1,237 @@
|
||||||
|
<template>
|
||||||
|
<div class="divBox">
|
||||||
|
<div class="selCard">
|
||||||
|
<el-form
|
||||||
|
size="small"
|
||||||
|
:model="tableFrom"
|
||||||
|
ref="searchForm"
|
||||||
|
label-width="85px"
|
||||||
|
inline
|
||||||
|
>
|
||||||
|
<el-form-item label="时间选择:" prop="date">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="timeVal"
|
||||||
|
value-format="yyyy/MM/dd"
|
||||||
|
format="yyyy/MM/dd"
|
||||||
|
type="daterange"
|
||||||
|
placement="bottom-end"
|
||||||
|
placeholder="自定义时间"
|
||||||
|
:picker-options="pickerOptions"
|
||||||
|
style="width: 280px"
|
||||||
|
@change="onchangeTime"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="操作端:">
|
||||||
|
<el-select
|
||||||
|
v-model="tableFrom.type"
|
||||||
|
placeholder="请选择"
|
||||||
|
class="selWidth mr10"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
@change="getList(1)"
|
||||||
|
>
|
||||||
|
<el-option label="平台端" value="1" />
|
||||||
|
<el-option label="商户端" value="2" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="商品id:" prop="nickname">
|
||||||
|
<el-input
|
||||||
|
v-model="tableFrom.id"
|
||||||
|
@keyup.enter.native="getList(1)"
|
||||||
|
placeholder="请输入id"
|
||||||
|
class="selWidth"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="操作人:" prop="nickname">
|
||||||
|
<el-input
|
||||||
|
v-model="tableFrom.operator_nickname"
|
||||||
|
@keyup.enter.native="getList(1)"
|
||||||
|
placeholder="请输入操作人"
|
||||||
|
class="selWidth"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</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>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<el-card class="mt14">
|
||||||
|
<el-button class="mb20" type="primary" size="small" @click="exports"
|
||||||
|
>导出列表</el-button
|
||||||
|
>
|
||||||
|
<el-table
|
||||||
|
border
|
||||||
|
ref="productRecords"
|
||||||
|
:data="tableData.data"
|
||||||
|
row-key="operate_log_id"
|
||||||
|
size="small"
|
||||||
|
v-loading="listLoading"
|
||||||
|
class="ones"
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="序号"
|
||||||
|
min-width="60"
|
||||||
|
prop="operate_log_id"
|
||||||
|
/>
|
||||||
|
<el-table-column align="center" label="操作记录" min-width="120">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.category_name }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="操作端" min-width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.type }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="操作角色" min-width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.operator_role_nickname }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" label="操作人" min-width="100">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<span>{{ scope.row.operator_nickname }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
align="center"
|
||||||
|
label="操作时间"
|
||||||
|
min-width="100"
|
||||||
|
prop="create_time"
|
||||||
|
/>
|
||||||
|
</el-table>
|
||||||
|
<div class="block">
|
||||||
|
<el-pagination
|
||||||
|
background
|
||||||
|
:page-size="tableFrom.limit"
|
||||||
|
:current-page="tableFrom.page"
|
||||||
|
layout="total, prev, pager, next, jumper"
|
||||||
|
:total="tableData.total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
@current-change="pageChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { operateRecordList, exportOperate } from "@/api/product";
|
||||||
|
import timeOptions from "@/utils/timeOptions";
|
||||||
|
import createWorkBook from "@/utils/newToExcel.js";
|
||||||
|
export default {
|
||||||
|
name: "ProductComment",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pickerOptions: timeOptions,
|
||||||
|
tableData: {
|
||||||
|
data: [],
|
||||||
|
total: 0,
|
||||||
|
},
|
||||||
|
timeVal: [],
|
||||||
|
listLoading: true,
|
||||||
|
tableFrom: {
|
||||||
|
page: 1,
|
||||||
|
limit: 20,
|
||||||
|
type: "",
|
||||||
|
date: "",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getList(1);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
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) => {
|
||||||
|
let id = this.tableFrom.id;
|
||||||
|
exportOperate(id ? id : "0", excelData).then((res) => {
|
||||||
|
return resolve(res.data);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/**重置 */
|
||||||
|
searchReset() {
|
||||||
|
this.timeVal = [];
|
||||||
|
this.tableFrom.date = "";
|
||||||
|
this.$refs.searchForm.resetFields();
|
||||||
|
this.getList(1);
|
||||||
|
},
|
||||||
|
// 选择时间
|
||||||
|
selectChange(tab) {
|
||||||
|
this.tableFrom.date = tab;
|
||||||
|
this.timeVal = [];
|
||||||
|
// this.tableFrom.page = 1;
|
||||||
|
this.getList(1);
|
||||||
|
},
|
||||||
|
// 具体日期
|
||||||
|
onchangeTime(e) {
|
||||||
|
this.timeVal = e;
|
||||||
|
// this.tableFrom.date = this.timeVal ? this.timeVal.join("-") : "";
|
||||||
|
this.tableFrom.date = e ? this.timeVal.join("-") : "";
|
||||||
|
// this.tableFrom.page = 1;
|
||||||
|
this.getList(1);
|
||||||
|
},
|
||||||
|
// 列表
|
||||||
|
getList(num) {
|
||||||
|
this.listLoading = true;
|
||||||
|
this.tableFrom.page = num ? num : this.tableFrom.page;
|
||||||
|
let id = this.tableFrom.id;
|
||||||
|
operateRecordList(id ? id : "0", 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);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
pageChange(page) {
|
||||||
|
this.tableFrom.page = page;
|
||||||
|
this.getList("");
|
||||||
|
},
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.tableFrom.limit = val;
|
||||||
|
this.getList("");
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep .el-rate {
|
||||||
|
margin-top: 9px;
|
||||||
|
}
|
||||||
|
</style>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -250,7 +250,7 @@
|
||||||
<span>{{ row.user_type === 'routine' ? '小程序' : row.user_type === 'wechat' ? '公众号' : row.user_type === 'app' || row.user_type === 'App' ? 'App' : row.user_type === 'pc' ? 'PC' : 'H5' }}</span>
|
<span>{{ row.user_type === 'routine' ? '小程序' : row.user_type === 'wechat' ? '公众号' : row.user_type === 'app' || row.user_type === 'App' ? 'App' : row.user_type === 'pc' ? 'PC' : 'H5' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="now_money" label="消费卷" sortable min-width="100" :sort-method="(a,b)=>{return a.now_money - b.now_money}"/>
|
<el-table-column prop="now_money" label="余额" sortable min-width="100" :sort-method="(a,b)=>{return a.now_money - b.now_money}"/>
|
||||||
<el-table-column prop="integral" label="铸源星" min-width="100" />
|
<el-table-column prop="integral" label="铸源星" min-width="100" />
|
||||||
<el-table-column label="操作" min-width="150" fixed="right">
|
<el-table-column label="操作" min-width="150" fixed="right">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
@ -264,7 +264,7 @@
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<!-- <el-dropdown-item @click.native="onEdit(scope.row.uid)">编辑信息</el-dropdown-item> -->
|
<!-- <el-dropdown-item @click.native="onEdit(scope.row.uid)">编辑信息</el-dropdown-item> -->
|
||||||
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="setMoney(scope.row)">设置余额</el-dropdown-item>
|
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="setMoney(scope.row)">设置余额</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="changeIntegral(scope.row)">设置积分</el-dropdown-item>
|
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="changeIntegral(scope.row)">设置铸源星</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="scope.row.vip_name && !scope.row.cancel_time">清除等级</el-dropdown-item>
|
<el-dropdown-item v-if="scope.row.vip_name && !scope.row.cancel_time">清除等级</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="setGroup(scope.row)">设置分组</el-dropdown-item>
|
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="setGroup(scope.row)">设置分组</el-dropdown-item>
|
||||||
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="setLabel(scope.row)">设置标签</el-dropdown-item>
|
<el-dropdown-item v-if="!scope.row.cancel_time" @click.native="setLabel(scope.row)">设置标签</el-dropdown-item>
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<el-dropdown @command="handleCommand" class="ml10">
|
<el-dropdown @command="handleCommand" class="ml10">
|
||||||
<el-button icon="el-icon-more" size="small"></el-button>
|
<el-button icon="el-icon-more" size="small"></el-button>
|
||||||
<el-dropdown-menu slot="dropdown">
|
<el-dropdown-menu slot="dropdown">
|
||||||
<el-dropdown-item command="integral">设置积分</el-dropdown-item>
|
<el-dropdown-item command="integral">设置铸源星</el-dropdown-item>
|
||||||
<el-dropdown-item command="balance">设置余额</el-dropdown-item>
|
<el-dropdown-item command="balance">设置余额</el-dropdown-item>
|
||||||
<el-dropdown-item command="group">设置分组</el-dropdown-item>
|
<el-dropdown-item command="group">设置分组</el-dropdown-item>
|
||||||
<el-dropdown-item command="label">设置标签</el-dropdown-item>
|
<el-dropdown-item command="label">设置标签</el-dropdown-item>
|
||||||
|
@ -75,7 +75,7 @@
|
||||||
<div>{{psInfo.pay_price}}元</div>
|
<div>{{psInfo.pay_price}}元</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="item">
|
<li class="item">
|
||||||
<div class="title">积分</div>
|
<div class="title">铸源星余额</div>
|
||||||
<div>{{psInfo.integral}}</div>
|
<div>{{psInfo.integral}}</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="item">
|
<li class="item">
|
||||||
|
@ -451,7 +451,7 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="积分明细" name="detailed">
|
<el-tab-pane label="铸源星明细" name="detailed">
|
||||||
<template v-if="activeName == 'detailed'">
|
<template v-if="activeName == 'detailed'">
|
||||||
<el-table :data="tableData.data" size="small">
|
<el-table :data="tableData.data" size="small">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
Loading…
Reference in New Issue