Merge branch 'dev' into main

# Conflicts:
#	jeepay-ui-manager/src/views/order/pay/PayOrderList.vue
#	jeepay-ui-manager/src/views/order/refund/RefundOrderList.vue
#	jeepay-ui-manager/src/views/order/transfer/TransferOrderList.vue
#	jeepay-ui-merchant/src/views/order/pay/PayOrderList.vue
#	jeepay-ui-merchant/src/views/order/refund/RefundOrderList.vue
#	jeepay-ui-merchant/src/views/order/transfer/TransferOrderList.vue
This commit is contained in:
terrfly 2021-11-19 18:12:04 +08:00
commit 600210db9d
36 changed files with 310 additions and 151 deletions

View File

@ -1,6 +1,6 @@
{
"name": "jeepay-ui-cashier",
"version": "1.9.0",
"version": "1.10.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",

View File

@ -1,6 +1,6 @@
{
"name": "jeepay-ui-manager",
"version": "1.9.0",
"version": "1.10.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",

View File

@ -16,6 +16,12 @@
:row-selection="rowSelection"
:rowKey="rowKey"
:scroll="{ x: scrollX }"
:customRow="(record, index) => {
if(!tableRowCrossColor){
return {};
}
return { style: { 'background-color': index % 2 == 0 ? '#FCFCFC' : '#FFFFFF'} }
}"
>
<!-- 自定义列插槽 参考https://github.com/feseed/admin-antd-vue/blob/master/src/components/ShTable.vue -->
<!-- eslint-disable-next-line -->
@ -41,7 +47,8 @@ export default {
pageSize: { type: Number, default: 10 }, //
rowSelection: Object, // checkbox
rowKey: { type: [String, Function] }, // rowKey checkbox
scrollX: { type: Number, default: 800 } //
scrollX: { type: Number, default: 500 }, //
tableRowCrossColor: { type: Boolean, default: false } //
},
data () {
@ -117,3 +124,23 @@ export default {
}
}
</script>
<style lang="less">
// antdv tablepadding
.ant-table-fixed{
tr{
th{
padding: 8px 8px !important;
}
th:first-child{ // 16 8
padding-left: 16px !important;
}
td{
padding: 8px 8px !important;
}
td:first-child{
padding-left: 16px !important;
}
}
}
</style>

View File

@ -31,7 +31,7 @@ export default {
}
return <div style="display:flex; justify-content: space-evenly;"> {firstEL}
<a-dropdown>
<a-button class="ant-dropdown-link" type="link" style="line-height:32px">更多<a-icon type="down" /></a-button>
<a-button class="ant-dropdown-link" type="link" style="">更多<a-icon type="down" /></a-button>
<a-menu slot="overlay">
{menuEL}
</a-menu>
@ -41,3 +41,9 @@ export default {
}
}
</script>
<style lang="less" scoped>
// padding
button { padding: 8px !important;}
</style>

View File

@ -9,6 +9,7 @@
:i18nRender="false"
v-bind="settings"
:breadcrumbRender="handleBreadcrumbRender"
:siderWidth="210"
>
<!-- 1.0.0+ 版本 pro-layout 提供 API
我们推荐使用这种方式进行 LOGO title 自定义

View File

@ -32,7 +32,6 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
:searchData="searchData"
:scrollX="1100"
rowKey="isvNo"
>
<template slot="isvNameSlot" slot-scope="{record}"><b>{{ record.isvName }}</b></template> <!-- 自定义插槽 -->

View File

@ -40,7 +40,6 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
:searchData="searchData"
:scrollX="1200"
rowKey="mchNo"
>
<template slot="mchNameSlot" slot-scope="{record}">

View File

@ -34,7 +34,6 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
:searchData="searchData"
:scrollX="1200"
rowKey="appId"
>
<template slot="appIdSlot" slot-scope="{record}">

View File

@ -10,11 +10,6 @@
>
<a-form-model ref="infoFormModel" :model="saveObject" layout="vertical" :rules="rules">
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item label="支付接口费率" prop="ifRate">
<a-input v-model="saveObject.ifRate" placeholder="请输入" suffix="%" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="状态" prop="state">
<a-radio-group v-model="saveObject.state">
@ -102,8 +97,8 @@ export default {
ifParams: {}, //
rules: {
infoId: [{ required: true, trigger: 'blur' }],
ifCode: [{ required: true, trigger: 'blur' }],
ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '请输入0-100之间的数字最多四位小数', trigger: 'blur' }]
ifCode: [{ required: true, trigger: 'blur' }]
// ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '0-100', trigger: 'blur' }]
},
ifParamsRules: {}
}
@ -189,7 +184,7 @@ export default {
const reqParams = {}
reqParams.infoId = that.saveObject.infoId
reqParams.ifCode = that.saveObject.ifCode
reqParams.ifRate = that.saveObject.ifRate
// reqParams.ifRate = that.saveObject.ifRate
reqParams.state = that.saveObject.state
reqParams.remark = that.saveObject.remark
//

View File

@ -76,6 +76,7 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
:searchData="searchData2"
rowKey="wayCode"
>
<template slot="stateSlot" slot-scope="{record}">
<a-badge :status="record.passageState === 0?'error':'processing'" :text="record.passageState === 0?'禁用':'启用'" />
@ -171,7 +172,9 @@ export default {
},
// card
refCardList () {
if (this.$refs.infoCard) {
this.$refs.infoCard.refCardList()
}
},
//
reqTableDataFunc (params) {

View File

@ -10,11 +10,6 @@
>
<a-form-model ref="infoFormModel" :model="saveObject" layout="vertical" :rules="rules">
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item label="支付接口费率" prop="ifRate">
<a-input v-model="saveObject.ifRate" placeholder="请输入" suffix="%" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="状态" prop="state">
<a-radio-group v-model="saveObject.state">
@ -162,7 +157,7 @@ export default {
saveObject: {}, //
ifParams: {}, //
rules: {
ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '请输入0-100之间的数字最多四位小数', trigger: 'blur' }]
// ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '0-100', trigger: 'blur' }]
},
ifParamsRules: {
appId: [{ trigger: 'blur',
@ -284,7 +279,7 @@ export default {
const reqParams = {}
reqParams.infoId = that.saveObject.infoId
reqParams.ifCode = that.saveObject.ifCode
reqParams.ifRate = that.saveObject.ifRate
// reqParams.ifRate = that.saveObject.ifRate
reqParams.state = that.saveObject.state
reqParams.remark = that.saveObject.remark
//

View File

@ -10,11 +10,6 @@
>
<a-form-model ref="infoFormModel" :model="saveObject" layout="vertical" :rules="rules">
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item label="支付接口费率" prop="ifRate">
<a-input v-model="saveObject.ifRate" placeholder="请输入" suffix="%" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="状态" prop="state">
<a-radio-group v-model="saveObject.state">
@ -157,7 +152,7 @@ export default {
saveObject: {}, //
ifParams: { apiVersion: 'V2' }, //
rules: {
ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '请输入0-100之间的数字最多四位小数', trigger: 'blur' }]
// ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '0-100', trigger: 'blur' }]
},
ifParamsRules: {
mchId: [{ trigger: 'blur',
@ -290,7 +285,7 @@ export default {
const reqParams = {}
reqParams.infoId = that.saveObject.infoId
reqParams.ifCode = that.saveObject.ifCode
reqParams.ifRate = that.saveObject.ifRate
// reqParams.ifRate = that.saveObject.ifRate
reqParams.state = that.saveObject.state
reqParams.remark = that.saveObject.remark
//

View File

@ -55,7 +55,6 @@
:searchData="searchData"
:rowSelection="rowSelection"
rowKey="orderId"
:scrollX="1050"
>
<template slot="stateSlot" slot-scope="{record}">
<a-tag

View File

@ -20,6 +20,14 @@
<jeepay-text-up :placeholder="'商户号'" :msg="searchData.mchNo" v-model="searchData.mchNo" />
<jeepay-text-up :placeholder="'服务商号'" :msg="searchData.isvNo" v-model="searchData.isvNo" />
<jeepay-text-up :placeholder="'应用AppId'" :msg="searchData.appId" v-model="searchData.appId"/>
<a-form-item v-if="$access('ENT_PAY_ORDER_SEARCH_PAY_WAY')" label="" class="table-head-layout">
<a-select v-model="searchData.wayCode" placeholder="支付方式" default-value="">
<a-select-option value="">全部</a-select-option>
<a-select-option :key="item.wayCode" v-for="item in payWayList" :value="item.wayCode">
{{ item.wayName }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="" class="table-head-layout">
<a-select v-model="searchData.state" placeholder="支付状态" default-value="">
<a-select-option value="">全部</a-select-option>
@ -39,14 +47,6 @@
<a-select-option value="1">已发送</a-select-option>
</a-select>
</a-form-item>
<a-form-item v-if="$access('ENT_PAY_ORDER_SEARCH_PAY_WAY')" label="" class="table-head-layout">
<a-select v-model="searchData.wayCode" placeholder="支付方式" default-value="">
<a-select-option value="">全部</a-select-option>
<a-select-option :key="item.wayCode" v-for="item in payWayList" :value="item.wayCode">
{{ item.wayName }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="" class="table-head-layout">
<a-select v-model="searchData.divisionState" placeholder="分账状态" default-value="">
<a-select-option value="">全部</a-select-option>
@ -73,31 +73,24 @@
:tableColumns="tableColumns"
:searchData="searchData"
rowKey="payOrderId"
:scrollX="1350"
:tableRowCrossColor="true"
>
<template slot="amountSlot" slot-scope="{record}"><b>{{ record.amount/100 }}</b></template> <!-- 自定义插槽 -->
<template slot="refundAmountSlot" slot-scope="{record}">{{ record.refundAmount/100 }}</template> <!-- 自定义插槽 -->
<template slot="stateSlot" slot-scope="{record}">
<a-tag
:key="record.state"
:color="record.state === 0?'blue':record.state === 1?'orange':record.state === 2?'green':'volcano'"
:color="record.state === 0?'blue':record.state === 1?'orange':record.state === 2?'green':record.state === 6?'':'volcano'"
>
{{ record.state === 0?'订单生成':record.state === 1?'支付中':record.state === 2?'支付成功':record.state === 3?'支付失败':record.state === 4?'已撤销':record.state === 5?'已退款':record.state === 6?'订单关闭':'未知' }}
</a-tag>
</template>
<template slot="refundStateSlot" slot-scope="{record}">
<a-tag
:key="record.refundState"
:color="record.refundState === 0?'blue':record.refundState === 1?'orange':record.refundState === 2?'green':'volcano'"
>
{{ record.refundState === 0?'未发起':record.refundState === 1?'部分退款':record.refundState === 2?'全额退款':'未知' }}
</a-tag>
</template>
<template slot="divisionStateSlot" slot-scope="{record}">
<a-tag color="blue" v-if="record.divisionState == 0">未发生分账</a-tag>
<span v-if="record.divisionState == 0"> - </span>
<a-tag color="orange" v-else-if="record.divisionState == 1">待分账</a-tag>
<a-tag color="red" v-else-if="record.divisionState == 2">分账处理中</a-tag>
<a-tag color="green" v-else-if="record.divisionState == 3">任务已结束</a-tag>
<a-tag color="#f50" v-else>未知</a-tag>
<span v-else>未知</span>
</template>
<template slot="notifySlot" slot-scope="{record}">
<a-badge :status="record.notifyState === 1?'processing':'error'" :text="record.notifyState === 1?'已发送':'未发送'" />
@ -105,14 +98,31 @@
<template slot="orderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">支付</span>{{ record.payOrderId }}</p>
<p><span style="color:#56cf56;background:#d8eadf">商户</span>{{ record.mchOrderNo }}</p>
<p v-if="record.channelOrderNo"><span style="color:#fff;background:#E09C4D">渠道</span>{{ record.channelOrderNo }}</p>
<p style="margin-bottom: 0">
<span style="color:#56cf56;background:#d8eadf">商户</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.mchOrderNo.length > record.payOrderId.length">
<template slot="title">
<span>{{ record.mchOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.mchOrderNo, record.payOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.mchOrderNo }}</span>
</p>
<p v-if="record.channelOrderNo" style="margin-bottom: 0;margin-top: 10px">
<span style="color:#fff;background:#E09C4D;">渠道</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.channelOrderNo.length > record.payOrderId.length">
<template slot="title">
<span>{{ record.channelOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.channelOrderNo, record.payOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.channelOrderNo }}</span>
</p>
</div>
</template>
<template slot="opSlot" slot-scope="{record}"> <!-- 操作列插槽 -->
<JeepayTableColumns>
<a-button type="link" v-if="$access('ENT_PAY_ORDER_VIEW')" @click="detailFunc(record.payOrderId)">详情</a-button>
<a-button type="link" v-if="$access('ENT_PAY_ORDER_REFUND')" style="color: red" v-show="(record.state === 2 && record.refundState !== 2)" @click="openFunc(record, record.payOrderId)">退款</a-button>
</JeepayTableColumns>
</template>
@ -193,7 +203,7 @@
<a-col :sm="12">
<a-descriptions>
<a-descriptions-item label="订单状态">
<a-tag :color="detailData.state === 0?'blue':detailData.state === 1?'orange':detailData.state === 2?'green':'volcano'">
<a-tag :color="detailData.state === 0?'blue':detailData.state === 1?'orange':detailData.state === 2?'green':detailData.state === 6?'':'volcano'">
{{ detailData.state === 0?'订单生成':detailData.state === 1?'支付中':detailData.state === 2?'支付成功':detailData.state === 3?'支付失败':detailData.state === 4?'已撤销':detailData.state === 5?'已退款':detailData.state === 6?'订单关闭':'未知' }}
</a-tag>
</a-descriptions-item>
@ -402,19 +412,19 @@ import moment from 'moment'
// eslint-disable-next-line no-unused-vars
const tableColumns = [
{ key: 'amount', title: '支付金额', ellipsis: true, width: '130px', fixed: 'left', scopedSlots: { customRender: 'amountSlot' } },
{ key: 'mchFeeAmount', dataIndex: 'mchFeeAmount', title: '手续费', customRender: (text) => '¥' + (text / 100).toFixed(2) },
{ key: 'mchName', title: '商户名称', dataIndex: 'mchName', ellipsis: true, width: '100px' },
{ key: 'orderNo', title: '订单号', scopedSlots: { customRender: 'orderSlot' }, width: '260px' },
{ key: 'amount', title: '支付金额', ellipsis: true, width: 108, fixed: 'left', scopedSlots: { customRender: 'amountSlot' } },
{ key: 'refundAmount', title: '退款金额', width: 108, scopedSlots: { customRender: 'refundAmountSlot' } },
{ key: 'mchFeeAmount', dataIndex: 'mchFeeAmount', title: '手续费', customRender: (text) => '¥' + (text / 100).toFixed(2), width: 100 },
{ key: 'mchName', title: '商户名称', dataIndex: 'mchName', ellipsis: true, width: 100 },
{ key: 'orderNo', title: '订单号', scopedSlots: { customRender: 'orderSlot' }, width: 210 },
// { key: 'payOrderId', title: '', dataIndex: 'payOrderId' },
// { key: 'mchOrderNo', title: '', dataIndex: 'mchOrderNo' },
{ key: 'wayName', title: '支付方式', dataIndex: 'wayName', width: 150 },
{ key: 'wayName', title: '支付方式', dataIndex: 'wayName', width: 120 },
{ key: 'state', title: '支付状态', scopedSlots: { customRender: 'stateSlot' }, width: 100 },
{ key: 'refundState', title: '退款状态', scopedSlots: { customRender: 'refundStateSlot' }, width: 100 },
{ key: 'divisionState', title: '分账状态', scopedSlots: { customRender: 'divisionStateSlot' } },
{ key: 'notifyState', title: '回调状态', scopedSlots: { customRender: 'notifySlot' }, width: 100 },
{ key: 'createdAt', dataIndex: 'createdAt', title: '创建日期', width: 180 },
{ key: 'op', title: '操作', width: '160px', fixed: 'right', align: 'center', scopedSlots: { customRender: 'opSlot' } }
{ key: 'divisionState', title: '分账状态', scopedSlots: { customRender: 'divisionStateSlot' }, width: 100 },
{ key: 'createdAt', dataIndex: 'createdAt', title: '创建日期', width: 120 },
{ key: 'op', title: '操作', width: 120, fixed: 'right', align: 'center', scopedSlots: { customRender: 'opSlot' } }
]
export default {
@ -482,6 +492,10 @@ export default {
req.list(API_URL_PAYWAYS_LIST, { 'pageSize': -1 }).then(res => { //
that.payWayList = res.records
})
},
changeStr2ellipsis (orderNo, baseLength) {
const halfLengh = parseInt(baseLength / 2)
return orderNo.substring(0, halfLengh - 1) + '...' + orderNo.substring(orderNo.length - halfLengh, orderNo.length)
}
}
}

View File

@ -54,9 +54,8 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
:searchData="searchData"
:rowSelection="rowSelection"
rowKey="refundOrderId"
:scrollX="1350"
:tableRowCrossColor="true"
>
<template slot="payAmountSlot" slot-scope="{record}"><b>{{ record.payAmount/100 }}</b></template> <!-- 自定义插槽 -->
<template slot="refundAmountSlot" slot-scope="{record}"><b>{{ record.refundAmount/100 }}</b></template> <!-- 自定义插槽 -->
@ -72,14 +71,32 @@
<template slot="payOrderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">支付</span>{{ record.payOrderId }}</p>
<p v-if="record.channelPayOrderNo"><span style="color:#fff;background:#E09C4D">渠道</span>{{ record.channelPayOrderNo }}</p>
<p v-if="record.channelPayOrderNo" style="margin-bottom: 0;">
<span style="color:#fff;background:#E09C4D">渠道</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.channelPayOrderNo.length > record.payOrderId.length">
<template slot="title">
<span>{{ record.channelPayOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.channelPayOrderNo, record.payOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.channelPayOrderNo }}</span>
</p>
</div>
</template>
<template slot="refundOrderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">退款</span>{{ record.refundOrderId }}</p>
<p><span style="color:#56cf56;background:#d8eadf">商户</span>{{ record.mchRefundNo }}</p>
<p style="margin-bottom: 0;">
<span style="color:#56cf56;background:#d8eadf">商户</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.mchRefundNo.length > record.payOrderId.length">
<template slot="title">
<span>{{ record.mchRefundNo }}</span>
</template>
{{ changeStr2ellipsis(record.mchRefundNo, record.refundOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.mchRefundNo }}</span>
</p>
</div>
</template>
<template slot="opSlot" slot-scope="{record}"> <!-- 操作列插槽 -->
@ -309,16 +326,15 @@
// eslint-disable-next-line no-unused-vars
const tableColumns = [
{ key: 'payAmount', title: '支付金额', fixed: 'left', scopedSlots: { customRender: 'payAmountSlot' } },
{ key: 'refundAmount', title: '退款金额', scopedSlots: { customRender: 'refundAmountSlot' } },
{ key: 'pay', title: '退款订单号', scopedSlots: { customRender: 'refundOrderSlot' }, width: '260px' },
{ key: 'refund', title: '支付订单号', scopedSlots: { customRender: 'payOrderSlot' }, width: '260px' },
// { key: 'refundOrderId', title: '退', dataIndex: 'refundOrderId' },
{ key: 'payAmount', title: '支付金额', ellipsis: true, fixed: 'left', scopedSlots: { customRender: 'payAmountSlot' }, width: 100 },
{ key: 'refundAmount', title: '退款金额', ellipsis: true, scopedSlots: { customRender: 'refundAmountSlot' }, width: 100 },
{ key: 'pay', title: '退款订单号', scopedSlots: { customRender: 'refundOrderSlot' }, width: 220 },
{ key: 'refund', title: '支付订单号', scopedSlots: { customRender: 'payOrderSlot' }, width: 220 },
// { key: 'payOrderId', title: '', dataIndex: 'payOrderId' },
// { key: 'mchRefundNo', title: '退', dataIndex: 'mchRefundNo' },
{ key: 'state', title: '状态', scopedSlots: { customRender: 'stateSlot' }, width: 100 },
{ key: 'createdAt', dataIndex: 'createdAt', title: '创建日期' },
{ key: 'op', title: '操作', width: '100px', fixed: 'right', align: 'center', scopedSlots: { customRender: 'opSlot' } }
{ key: 'createdAt', dataIndex: 'createdAt', title: '创建日期', width: 120 },
{ key: 'op', title: '操作', width: 100, fixed: 'right', scopedSlots: { customRender: 'opSlot' } }
]
export default {
@ -337,17 +353,6 @@
}
},
computed: {
rowSelection () {
const that = this
return {
onChange: (selectedRowKeys, selectedRows) => {
that.selectedIds = [] //
selectedRows.forEach(function (data) { //
that.selectedIds.push(data.payOrderId)
})
}
}
}
},
mounted () {
},
@ -380,6 +385,10 @@
},
onClose () {
this.visible = false
},
changeStr2ellipsis (orderNo, baseLength) {
const halfLengh = parseInt(baseLength / 2)
return orderNo.substring(0, halfLengh - 1) + '...' + orderNo.substring(orderNo.length - halfLengh, orderNo.length)
}
}
}

View File

@ -46,7 +46,7 @@
:tableColumns="tableColumns"
:searchData="searchData"
rowKey="transferId"
:scrollX="1350"
:tableRowCrossColor="true"
>
<template slot="transferAmountSlot" slot-scope="{record}"><b>{{ record.amount/100 }}</b></template> <!-- 自定义插槽 -->
<template slot="stateSlot" slot-scope="{record}">
@ -60,8 +60,26 @@
<template slot="orderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">转账</span>{{ record.transferId }}</p>
<p><span style="color:#56cf56;background:#d8eadf">商户</span>{{ record.mchOrderNo }}</p>
<p v-if="record.channelOrderNo"><span style="color:#fff;background:#E09C4D">渠道</span>{{ record.channelOrderNo }}</p>
<p style="margin-bottom: 0;">
<span style="color:#56cf56;background:#d8eadf">商户</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.mchOrderNo.length > record.transferId.length">
<template slot="title">
<span>{{ record.mchOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.mchOrderNo, record.transferId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.mchOrderNo }}</span>
</p>
<p v-if="record.channelOrderNo" style="margin-bottom: 0;margin-top: 10px">
<span style="color:#fff;background:#E09C4D">渠道</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.channelOrderNo.length > record.transferId.length">
<template slot="title">
<span>{{ record.channelOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.channelOrderNo, record.transferId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.channelOrderNo }}</span>
</p>
</div>
</template>
<template slot="opSlot" slot-scope="{record}"> <!-- 操作列插槽 -->
@ -87,11 +105,9 @@
// eslint-disable-next-line no-unused-vars
const tableColumns = [
{ title: '转账金额', scopedSlots: { customRender: 'transferAmountSlot' } },
{ title: '转账金额', scopedSlots: { customRender: 'transferAmountSlot' }, width: 108 },
{ title: '商户名称', dataIndex: 'mchName' },
{ key: 'orderNo', title: '订单号', scopedSlots: { customRender: 'orderSlot' }, width: '260px' },
// { title: '', dataIndex: 'transferId' },
// { title: '', dataIndex: 'mchOrderNo' },
{ key: 'orderNo', title: '订单号', scopedSlots: { customRender: 'orderSlot' }, width: 210 },
// { title: '', dataIndex: 'channelOrderNo' },
{ title: '收款账号', dataIndex: 'accountNo' },
{ title: '收款人姓名', dataIndex: 'accountName' },
@ -135,6 +151,10 @@
},
disabledDate (current) { //
return current && current > moment().endOf('day')
},
changeStr2ellipsis (orderNo, baseLength) {
const halfLengh = parseInt(baseLength / 2)
return orderNo.substring(0, halfLengh - 1) + '...' + orderNo.substring(orderNo.length - halfLengh, orderNo.length)
}
}
}

View File

@ -24,7 +24,6 @@
:tableColumns="tableColumns"
:searchData="searchData"
rowKey="wayCode"
:scrollX="500"
>
<template slot="wayCodeSlot" slot-scope="{record}"><b>{{ record.wayCode }}</b></template> <!-- 自定义插槽 -->
<template slot="opSlot" slot-scope="{record}"> <!-- 操作列插槽 -->

View File

@ -25,7 +25,6 @@
:tableColumns="tableColumns"
:searchData="searchData"
@btnLoadClose="btnLoading=false"
:scrollX="500"
rowKey="roleName"
>
<template slot="roleIdSlot" slot-scope="{record}"><b>{{ record.roleId }}</b></template> <!-- 自定义插槽 -->

View File

@ -45,7 +45,6 @@
:searchData="searchData"
:rowSelection="rowSelection"
rowKey="sysLogId"
:scrollX="1200"
>
<template slot="userNameSlot" slot-scope="{record}"><b>{{ record.userName }}</b></template> <!-- 自定义插槽 -->
<template slot="sysTypeSlot" slot-scope="{record}">

View File

@ -27,7 +27,6 @@
:tableColumns="tableColumns"
:searchData="searchData"
rowKey="sysUserId"
:scrollX="1350"
>
<template slot="avatarSlot" slot-scope="{record}">

View File

@ -1,6 +1,6 @@
{
"name": "jeepay-ui-merchant",
"version": "1.9.0",
"version": "1.10.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",

View File

@ -16,6 +16,12 @@
:row-selection="rowSelection"
:rowKey="rowKey"
:scroll="{ x: scrollX }"
:customRow="(record, index) => {
if(!tableRowCrossColor){
return {};
}
return { style: { 'background-color': index % 2 == 0 ? '#FCFCFC' : '#FFFFFF'} }
}"
>
<!-- 自定义列插槽 参考https://github.com/feseed/admin-antd-vue/blob/master/src/components/ShTable.vue -->
<!-- eslint-disable-next-line -->
@ -41,7 +47,8 @@ export default {
pageSize: { type: Number, default: 10 }, //
rowSelection: Object, // checkbox
rowKey: { type: [String, Function] }, // rowKey checkbox
scrollX: { type: Number, default: 980 } //
scrollX: { type: Number, default: 800 }, //
tableRowCrossColor: { type: Boolean, default: false } //
},
data () {
@ -117,3 +124,24 @@ export default {
}
}
</script>
<style lang="less">
// antdv tablepadding
.ant-table-fixed{
tr{
th{
padding: 8px 8px !important;
}
th:first-child{ // 16 8
padding-left: 16px !important;
}
td{
padding: 8px 8px !important;
}
td:first-child{
padding-left: 16px !important;
}
}
}
</style>

View File

@ -30,7 +30,7 @@ export default {
}
return <div style="display:flex; justify-content: space-evenly;"> {firstEL}
<a-dropdown>
<a-button style="line-height:32px" type="link" class="ant-dropdown-link">更多<a-icon type="down" /></a-button>
<a-button style="" type="link" class="ant-dropdown-link">更多<a-icon type="down" /></a-button>
<a-menu slot="overlay">
{menuEL}
</a-menu>
@ -40,3 +40,9 @@ export default {
}
}
</script>
<style lang="less" scoped>
// padding
button { padding: 8px !important;}
</style>

View File

@ -9,6 +9,7 @@
:i18nRender="false"
v-bind="settings"
:breadcrumbRender="handleBreadcrumbRender"
:siderWidth="210"
>
<!-- 1.0.0+ 版本 pro-layout 提供 API
我们推荐使用这种方式进行 LOGO title 自定义

View File

@ -27,7 +27,6 @@
:tableColumns="tableColumns"
:searchData="searchData"
@btnLoadClose="btnLoading=false"
:scrollX="500"
rowKey="receiverGroupId"
>
<template slot="opSlot" slot-scope="{record}"> <!-- 操作列插槽 -->

View File

@ -45,7 +45,6 @@
:tableColumns="tableColumns"
:searchData="searchData"
@btnLoadClose="btnLoading=false"
:scrollX="500"
rowKey="receiverId"
>

View File

@ -33,8 +33,7 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
:searchData="searchData"
:scrollX="1200"
rowKey="mchName"
rowKey="appId"
>
<template slot="appIdSlot" slot-scope="{record}">
<b>{{ record.appId }}</b>

View File

@ -10,11 +10,6 @@
>
<a-form-model ref="infoFormModel" :model="saveObject" layout="vertical" :rules="rules">
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item label="支付接口费率" prop="ifRate">
<a-input v-model="saveObject.ifRate" placeholder="请输入" suffix="%" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="状态" prop="state">
<a-radio-group v-model="saveObject.state">
@ -102,8 +97,8 @@ export default {
ifParams: {}, //
rules: {
infoId: [{ required: true, trigger: 'blur' }],
ifCode: [{ required: true, trigger: 'blur' }],
ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '请输入0-100之间的数字最多四位小数', trigger: 'blur' }]
ifCode: [{ required: true, trigger: 'blur' }]
// ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '0-100', trigger: 'blur' }]
},
ifParamsRules: {}
}
@ -189,7 +184,7 @@ export default {
const reqParams = {}
reqParams.infoId = that.saveObject.infoId
reqParams.ifCode = that.saveObject.ifCode
reqParams.ifRate = that.saveObject.ifRate
// reqParams.ifRate = that.saveObject.ifRate
reqParams.state = that.saveObject.state
reqParams.remark = that.saveObject.remark
//

View File

@ -75,6 +75,7 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
:searchData="searchData2"
rowKey="wayCode"
>
<template slot="stateSlot" slot-scope="{record}">
<a-badge :status="record.passageState === 0?'error':'processing'" :text="record.passageState === 0?'禁用':'启用'" />
@ -169,7 +170,9 @@ export default {
},
// card
refCardList () {
if (this.$refs.infoCard) {
this.$refs.infoCard.refCardList()
}
},
//
reqTableDataFunc (params) {

View File

@ -10,11 +10,6 @@
>
<a-form-model ref="infoFormModel" :model="saveObject" layout="vertical" :rules="rules">
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item label="支付接口费率" prop="ifRate">
<a-input v-model="saveObject.ifRate" placeholder="请输入" suffix="%" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="状态" prop="state">
<a-radio-group v-model="saveObject.state">
@ -162,7 +157,7 @@ export default {
saveObject: {}, //
ifParams: {}, //
rules: {
ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '请输入0-100之间的数字最多四位小数', trigger: 'blur' }]
// ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '0-100', trigger: 'blur' }]
},
ifParamsRules: {
appId: [{ trigger: 'blur',
@ -284,7 +279,7 @@ export default {
const reqParams = {}
reqParams.infoId = that.saveObject.infoId
reqParams.ifCode = that.saveObject.ifCode
reqParams.ifRate = that.saveObject.ifRate
// reqParams.ifRate = that.saveObject.ifRate
reqParams.state = that.saveObject.state
reqParams.remark = that.saveObject.remark
//

View File

@ -10,11 +10,6 @@
>
<a-form-model ref="infoFormModel" :model="saveObject" layout="vertical" :rules="rules">
<a-row :gutter="16">
<a-col :span="12">
<a-form-model-item label="支付接口费率" prop="ifRate">
<a-input v-model="saveObject.ifRate" placeholder="请输入" suffix="%" />
</a-form-model-item>
</a-col>
<a-col :span="12">
<a-form-model-item label="状态" prop="state">
<a-radio-group v-model="saveObject.state">
@ -157,7 +152,7 @@ export default {
saveObject: {}, //
ifParams: { apiVersion: 'V2' }, //
rules: {
ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '请输入0-100之间的数字最多四位小数', trigger: 'blur' }]
// ifRate: [{ required: false, pattern: /^(([1-9]{1}\d{0,1})|(0{1}))(\.\d{1,4})?$/, message: '0-100', trigger: 'blur' }]
},
ifParamsRules: {
mchId: [{ trigger: 'blur',
@ -290,7 +285,7 @@ export default {
const reqParams = {}
reqParams.infoId = that.saveObject.infoId
reqParams.ifCode = that.saveObject.ifCode
reqParams.ifRate = that.saveObject.ifRate
// reqParams.ifRate = that.saveObject.ifRate
reqParams.state = that.saveObject.state
reqParams.remark = that.saveObject.remark
//

View File

@ -18,6 +18,14 @@
<!-- <jeepay-text-up :placeholder="'支付订单号'" :msg="searchData.payOrderId" v-model="searchData.payOrderId" />-->
<!-- <jeepay-text-up :placeholder="'商户订单号'" :msg="searchData.mchOrderNo" v-model="searchData.mchOrderNo" />-->
<jeepay-text-up :placeholder="'应用AppId'" :msg="searchData.appId" v-model="searchData.appId"/>
<a-form-item v-if="$access('ENT_PAY_ORDER_SEARCH_PAY_WAY')" label="" class="table-head-layout">
<a-select v-model="searchData.wayCode" placeholder="支付方式" default-value="">
<a-select-option value="">全部</a-select-option>
<a-select-option :key="item.wayCode" v-for="item in payWayList" :value="item.wayCode">
{{ item.wayName }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="" class="table-head-layout">
<a-select v-model="searchData.state" placeholder="支付状态" default-value="">
<a-select-option value="">全部</a-select-option>
@ -31,15 +39,6 @@
</a-select>
</a-form-item>
<a-form-item v-if="$access('ENT_PAY_ORDER_SEARCH_PAY_WAY')" label="" class="table-head-layout">
<a-select v-model="searchData.wayCode" placeholder="支付方式" default-value="">
<a-select-option value="">全部</a-select-option>
<a-select-option :key="item.wayCode" v-for="item in payWayList" :value="item.wayCode">
{{ item.wayName }}
</a-select-option>
</a-select>
</a-form-item>
<a-form-item label="" class="table-head-layout">
<a-select v-model="searchData.divisionState" placeholder="分账状态" default-value="">
<a-select-option value="">全部</a-select-option>
@ -67,24 +66,51 @@
:tableColumns="tableColumns"
:searchData="searchData"
rowKey="payOrderId"
:scrollX="1000"
:tableRowCrossColor="true"
>
<template slot="amountSlot" slot-scope="{record}"><b>{{ record.amount/100 }}</b></template> <!-- 自定义插槽 -->
<template slot="refundAmountSlot" slot-scope="{record}">{{ record.refundAmount/100 }}</template> <!-- 自定义插槽 -->
<template slot="stateSlot" slot-scope="{record}">
<a-tag
:key="record.state"
:color="record.state === 0?'blue':record.state === 1?'orange':record.state === 2?'green':'volcano'"
:color="record.state === 0?'blue':record.state === 1?'orange':record.state === 2?'green':record.state === 6?'':'volcano'"
>
{{ record.state === 0?'订单生成':record.state === 1?'支付中':record.state === 2?'支付成功':record.state === 3?'支付失败':record.state === 4?'已撤销':record.state === 5?'已退款':record.state === 6?'订单关闭':'未知' }}
</a-tag>
</template>
<template slot="divisionStateSlot" slot-scope="{record}">
<a-tag color="blue" v-if="record.divisionState == 0">未发生分账</a-tag>
<span v-if="record.divisionState == 0">-</span>
<a-tag color="orange" v-else-if="record.divisionState == 1">待分账</a-tag>
<a-tag color="red" v-else-if="record.divisionState == 2">分账处理中</a-tag>
<a-tag color="green" v-else-if="record.divisionState == 3">任务已结束</a-tag>
<a-tag color="#f50" v-else>未知</a-tag>
<span v-else>未知</span>
</template>
<template slot="orderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">支付</span>{{ record.payOrderId }}</p>
<p style="margin-bottom: 0">
<span style="color:#56cf56;background:#d8eadf">商户</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.mchOrderNo.length > record.payOrderId.length">
<template slot="title">
<span>{{ record.mchOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.mchOrderNo, record.payOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.mchOrderNo }}</span>
</p>
<p v-if="record.channelOrderNo" style="margin-bottom: 0;margin-top: 10px">
<span style="color:#fff;background:#E09C4D">渠道</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.channelOrderNo.length > record.payOrderId.length">
<template slot="title">
<span>{{ record.channelOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.channelOrderNo, record.payOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.channelOrderNo }}</span>
</p>
</div>
</template>
<template slot="orderSlot" slot-scope="{record}">
@ -163,7 +189,7 @@
<a-col :sm="12">
<a-descriptions>
<a-descriptions-item label="订单状态">
<a-tag :color="detailData.state === 0?'blue':detailData.state === 1?'orange':detailData.state === 2?'green':'volcano'">
<a-tag :color="detailData.state === 0?'blue':detailData.state === 1?'orange':detailData.state === 2?'green':detailData.state === 6?'':'volcano'">
{{ detailData.state === 0?'订单生成':detailData.state === 1?'支付中':detailData.state === 2?'支付成功':detailData.state === 3?'支付失败':detailData.state === 4?'已撤销':detailData.state === 5?'已退款':detailData.state === 6?'订单关闭':'未知' }}
</a-tag>
</a-descriptions-item>
@ -364,15 +390,16 @@ import moment from 'moment'
// eslint-disable-next-line no-unused-vars
const tableColumns = [
{ key: 'amount', title: '支付金额', scopedSlots: { customRender: 'amountSlot' } },
{ key: 'refundAmount', title: '退款金额', scopedSlots: { customRender: 'refundAmountSlot' } },
{ key: 'mchFeeAmount', dataIndex: 'mchFeeAmount', title: '手续费', customRender: (text) => '¥' + (text / 100).toFixed(2) },
{ key: 'orderNo', title: '订单号', scopedSlots: { customRender: 'orderSlot' }, width: '260px' },
// { key: 'payOrderId', title: '', dataIndex: 'payOrderId' },
// { key: 'mchOrderNo', title: '', dataIndex: 'mchOrderNo' },
{ key: 'wayName', title: '支付方式', dataIndex: 'wayName', width: 150 },
{ key: 'state', title: '支付状态', scopedSlots: { customRender: 'stateSlot' } },
{ key: 'divisionState', title: '分账状态', scopedSlots: { customRender: 'divisionStateSlot' } },
{ key: 'divisionState', title: '分账状态', scopedSlots: { customRender: 'divisionStateSlot' }, align: 'center' },
{ key: 'createdAt', dataIndex: 'createdAt', title: '创建日期' },
{ key: 'op', title: '操作', width: '100px', fixed: 'right', align: 'center', scopedSlots: { customRender: 'opSlot' } }
{ key: 'op', title: '操作', width: '120px', fixed: 'right', align: 'center', scopedSlots: { customRender: 'opSlot' } }
]
export default {
@ -439,11 +466,24 @@ export default {
req.list(API_URL_PAYWAYS_LIST, { 'pageSize': -1 }).then(res => { //
that.payWayList = res.records
})
},
changeStr2ellipsis (orderNo, baseLength) {
const halfLengh = parseInt(baseLength / 2)
return orderNo.substring(0, halfLengh - 1) + '...' + orderNo.substring(orderNo.length - halfLengh, orderNo.length)
}
}
}
</script>
<style lang="less" scoped>
///deep/ .ant-table-fixed{
// tr{
// th{
// padding: 0px 0px;
// }
// }
// }
.order-list {
-webkit-text-size-adjust:none;
font-size: 12px;

View File

@ -48,7 +48,7 @@
:reqTableDataFunc="reqTableDataFunc"
:tableColumns="tableColumns"
rowKey="refundOrderId"
:scrollX="1300"
:tableRowCrossColor="true"
>
<template slot="payAmountSlot" slot-scope="{record}"><b>{{ record.payAmount/100 }}</b></template> <!-- 自定义插槽 -->
<template slot="refundAmountSlot" slot-scope="{record}"><b>{{ record.refundAmount/100 }}</b></template> <!-- 自定义插槽 -->
@ -65,14 +65,32 @@
<template slot="payOrderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">支付</span>{{ record.payOrderId }}</p>
<p v-if="record.channelPayOrderNo"><span style="color:#fff;background:#E09C4D">渠道</span>{{ record.channelPayOrderNo }}</p>
<p v-if="record.channelPayOrderNo" style="margin-bottom: 0;">
<span style="color:#fff;background:#E09C4D">渠道</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.channelPayOrderNo.length > record.payOrderId.length">
<template slot="title">
<span>{{ record.channelPayOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.channelPayOrderNo, record.payOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.channelPayOrderNo }}</span>
</p>
</div>
</template>
<template slot="refundOrderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">退款</span>{{ record.refundOrderId }}</p>
<p><span style="color:#56cf56;background:#d8eadf">商户</span>{{ record.mchRefundNo }}</p>
<p style="margin-bottom: 0;">
<span style="color:#56cf56;background:#d8eadf">商户</span>
<a-tooltip placement="bottom" style="font-weight: normal;" v-if="record.mchRefundNo.length > record.refundOrderId.length">
<template slot="title">
<span>{{ record.mchRefundNo }}</span>
</template>
{{ changeStr2ellipsis(record.mchRefundNo, record.refundOrderId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.mchRefundNo }}</span>
</p>
</div>
</template>
<template slot="opSlot" slot-scope="{record}"> <!-- 操作列插槽 -->
@ -362,6 +380,10 @@
},
onClose () {
this.visible = false
},
changeStr2ellipsis (orderNo, baseLength) {
const halfLengh = parseInt(baseLength / 2)
return orderNo.substring(0, halfLengh - 1) + '...' + orderNo.substring(orderNo.length - halfLengh, orderNo.length)
}
}
}

View File

@ -45,7 +45,7 @@
:tableColumns="tableColumns"
:searchData="searchData"
rowKey="transferId"
:scrollX="1350"
:tableRowCrossColor="true"
>
<template slot="transferAmountSlot" slot-scope="{record}"><b>{{ record.amount/100 }}</b></template> <!-- 自定义插槽 -->
<template slot="stateSlot" slot-scope="{record}">
@ -59,8 +59,26 @@
<template slot="orderSlot" slot-scope="{record}">
<div class="order-list">
<p><span style="color:#729ED5;background:#e7f5f7">转账</span>{{ record.transferId }}</p>
<p><span style="color:#56cf56;background:#d8eadf">商户</span>{{ record.mchOrderNo }}</p>
<p v-if="record.channelOrderNo"><span style="color:#fff;background:#E09C4D">渠道</span>{{ record.channelOrderNo }}</p>
<p style="margin-bottom: 0">
<span style="color:#56cf56;background:#d8eadf">商户</span>
<a-tooltip v-if="record.mchOrderNo.length > record.transferId.length" placement="bottom" style="font-weight: normal;">
<template slot="title">
<span>{{ record.mchOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.mchOrderNo, record.transferId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.mchOrderNo }}</span>
</p>
<p v-if="record.channelOrderNo" style="margin-bottom: 0;margin-top: 10px">
<span style="color:#fff;background:#E09C4D">渠道</span>
<a-tooltip v-if="record.channelOrderNo.length > record.transferId.length" placement="bottom" style="font-weight: normal;">
<template slot="title">
<span>{{ record.channelOrderNo }}</span>
</template>
{{ changeStr2ellipsis(record.channelOrderNo, record.transferId.length) }}
</a-tooltip>
<span style="font-weight: normal;" v-else>{{ record.channelOrderNo }}</span>
</p>
</div>
</template>
<template slot="opSlot" slot-scope="{record}"> <!-- 操作列插槽 -->
@ -133,6 +151,10 @@
},
disabledDate (current) { //
return current && current > moment().endOf('day')
},
changeStr2ellipsis (orderNo, baseLength) {
const halfLengh = parseInt(baseLength / 2)
return orderNo.substring(0, halfLengh - 1) + '...' + orderNo.substring(orderNo.length - halfLengh, orderNo.length)
}
}
}

View File

@ -27,7 +27,6 @@
:tableColumns="tableColumns"
:searchData="searchData"
@btnLoadClose="btnLoading=false"
:scrollX="500"
rowKey="roleId"
>
<template slot="roleIdSlot" slot-scope="{record}"><b>{{ record.roleId }}</b></template> <!-- 自定义插槽 -->

View File

@ -30,7 +30,6 @@
:tableColumns="tableColumns"
:searchData="searchData"
rowKey="sysUserId"
:scrollX="1300"
>
<template slot="avatarSlot" slot-scope="{record}">