Browse Source

’增加倒计时刷新

git commit -m ’增加倒计时刷新
master
j1ack 2 years ago
parent
commit
04630ac18f
  1. 7
      src/App.vue
  2. 42
      src/layout/components/Navbar.vue
  3. 40
      src/main.js
  4. 129
      src/plugins/auto-refresh.js
  5. 2
      src/store/getters.js
  6. 42
      src/store/modules/app.js
  7. 16
      src/views/carddealer/carddealer/index.vue
  8. 52
      src/views/carddealer/carddealerCard/index.vue
  9. 15
      src/views/carddealer/carddealerDev/index.vue
  10. 15
      src/views/carddealer/carddealerSms/index.vue
  11. 15
      src/views/carddealer/carddealerSms/indexIdentify.vue
  12. 15
      src/views/carddealer/carddealerSms/indexSuccess.vue
  13. 15
      src/views/carddealer/carddealerSmsTemp/index.vue
  14. 15
      src/views/dashboard/PanelGroup.vue
  15. 15
      src/views/merchant/merchant/index.vue
  16. 15
      src/views/order/TransferOrder/daifuSonOrder.vue
  17. 29
      src/views/order/TransferOrder/index.vue
  18. 42
      src/views/order/TransferOrder/readyOrder.vue
  19. 15
      src/views/order/carddealerOrder/carddealerSonOrder.vue
  20. 17
      src/views/order/carddealerOrder/index.vue
  21. 15
      src/views/order/carddealerOrder/readyOrder.vue
  22. 28
      src/views/order/payOrder/csOrder.vue
  23. 39
      src/views/order/payOrder/index.vue
  24. 30
      src/views/order/payOrder/wwc.vue
  25. 15
      src/views/payTest/dfTest.vue
  26. 15
      src/views/payTest/dsTest.vue
  27. 15
      src/views/platform/bank/index.vue
  28. 15
      src/views/platform/platformChannel/index.vue
  29. 15
      src/views/staticsRecord/cardTimeStatistics.vue
  30. 15
      src/views/staticsRecord/dayEndStatistics.vue
  31. 15
      src/views/staticsRecord/dayStatistics.vue
  32. 15
      src/views/staticsRecord/mechantTimeStatistics.vue
  33. 15
      src/views/staticsRecord/merchantCardStat.vue
  34. BIN
      正式kakapay.zip
  35. BIN
      测试kakapay.zip

7
src/App.vue

@ -39,6 +39,8 @@ export default {
<style>
@import "./font-style/font.css";
/* #app .sidebar-container .nest-menu .el-submenu>.el-submenu__title,
#app .sidebar-container .el-submenu .el-menu-item {
width: 203px !important;
@ -462,6 +464,11 @@ body {
.tCenter {
text-align: center;
}
.el-table__body tr.hover-row > td.el-table__cell, .el-table__body tr.hover-row.current-row > td.el-table__cell, .el-table__body tr.hover-row.el-table__row--striped > td.el-table__cell, .el-table__body tr.hover-row.el-table__row--striped.current-row > td.el-table__cell {
background-color: rgba(0, 0, 0, 0) !important
}
</style>
<style scoped>
#app .theme-picker {

42
src/layout/components/Navbar.vue

@ -1,12 +1,16 @@
<template>
<div class="navbar">
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
@toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/>
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/>
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav" />
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" />
<div class="right-menu">
<template v-if="device!=='mobile'">
<template v-if="device !== 'mobile'">
<el-switch :value="autoRefresh" :inactive-text="autoRefresh ? `自动刷新: (${autoRefreshCountdown}S)` : '自动刷新: '"
@change="onAutoRefreshChanged" style="margin-right: 14px;" />
<!-- <search id="header-search" class="right-menu-item" />
<el-tooltip content="源码地址" effect="dark" placement="bottom">
@ -29,7 +33,7 @@
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper flex">
<img :src="avatar" class="user-avatar">
<span class="nickName">{{user.nickName}}</span>
<span class="nickName">{{ user.nickName }}</span>
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
@ -80,8 +84,18 @@ export default {
...mapGetters([
'sidebar',
'avatar',
'device'
'name',
'device',
'autoRefresh',
'autoRefreshCountdown',
]),
// autoRefresh: {
// get() {
// console.log(this.$store.getters.autoRefresh)
// this.refresh = this.$store.getters.autoRefresh
// }
// },
setting: {
get() {
return this.$store.state.settings.showSettings
@ -103,6 +117,10 @@ export default {
this.getUser();
},
methods: {
//
onAutoRefreshChanged(value) {
this.$store.commit('app/SET_AUTO_REFRESH', value)
},
getUser() {
getUserProfile().then(response => {
this.user = response.data;
@ -120,7 +138,7 @@ export default {
this.$store.dispatch('LogOut').then(() => {
location.href = '/login';
})
}).catch(() => {});
}).catch(() => { });
}
}
}
@ -132,7 +150,7 @@ export default {
overflow: hidden;
position: relative;
background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08);
box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
.hamburger-container {
line-height: 46px;
@ -140,7 +158,7 @@ export default {
float: left;
cursor: pointer;
transition: background .3s;
-webkit-tap-highlight-color:transparent;
-webkit-tap-highlight-color: transparent;
&:hover {
background: rgba(0, 0, 0, .025)
@ -165,6 +183,8 @@ export default {
float: right;
height: 100%;
line-height: 50px;
display: flex;
align-items: center;
&:focus {
outline: none;
@ -190,10 +210,12 @@ export default {
.avatar-container {
margin-right: 30px;
.nickName{
.nickName {
font-size: 13px;
margin-left: 8px;
}
.avatar-wrapper {
margin-top: 5px;
position: relative;

40
src/main.js

@ -12,13 +12,29 @@ import store from './store'
import router from './router'
import directive from './directive' // directive
import plugins from './plugins' // plugins
import AutoRefresh from "./plugins/auto-refresh";
// import { download } from '@/utils/request'
import './assets/icons' // icon
import './permission' // permission control
import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/system/config";
import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree, addSESDateRange, calcRange,download,today } from "@/utils/ruoyi";
import {
getDicts
} from "@/api/system/dict/data";
import {
getConfigKey
} from "@/api/system/config";
import {
parseTime,
resetForm,
addDateRange,
selectDictLabel,
selectDictLabels,
handleTree,
addSESDateRange,
calcRange,
download,
today
} from "@/utils/ruoyi";
@ -59,13 +75,17 @@ Vue.prototype.today = today
Vue.prototype.$md5 = md5;
Vue.prototype.handleTree = handleTree
Vue.prototype.msgSuccess = function (msg) {
this.$message({ showClose: true, message: msg, type: "success" });
this.$message({
showClose: true,
message: msg,
type: "success"
});
}
Vue.prototype.$appVariant = appVariant
// 表格的高度
Vue.prototype.tableHeight = document.documentElement.scrollHeight - 245 + "px",
// 全局组件挂载
Vue.component('DictTag', DictTag)
// 全局组件挂载
Vue.component('DictTag', DictTag)
Vue.component('Pagination', Pagination)
Vue.component('RightToolbar', RightToolbar)
Vue.component('Editor', Editor)
@ -76,8 +96,10 @@ Vue.component('ImagePreview', ImagePreview)
Vue.use(directive)
Vue.use(plugins)
Vue.use(VueMeta)
Vue.use(AutoRefresh)
// 精度计算乘法
Vue.prototype.NumberMul = function(arg1, arg2) {
Vue.prototype.NumberMul = function (arg1, arg2) {
var m = 0;
var s1 = arg1.toString();
var s2 = arg2.toString();
@ -92,7 +114,7 @@ Vue.prototype.NumberMul = function(arg1, arg2) {
}
// 精度计算除法
// 除数,被除数, 保留的小数点后的位数
Vue.prototype.NumberDiv = function (arg1, arg2){
Vue.prototype.NumberDiv = function (arg1, arg2) {
arg1 = parseFloat(arg1);
arg2 = parseFloat(arg2);
var t1 = 0,
@ -109,7 +131,7 @@ Vue.prototype.NumberDiv = function (arg1, arg2){
return this.Mul(r1 / r2, Math.pow(10, t2 - t1));
}
Vue.prototype.Mul= function(arg1, arg2) {
Vue.prototype.Mul = function (arg1, arg2) {
arg1 = parseFloat(arg1);
arg2 = parseFloat(arg2);
var m = 0,

129
src/plugins/auto-refresh.js

@ -0,0 +1,129 @@
// 监听标签页是否是活跃状态
let isActive = true;
document.addEventListener('visibilitychange', () => {
isActive = !document.hidden;
})
/**
* 刷新间隔时间
* interval: 1000 * 5
* 立即执行一次
* immediate: false
* 全局化的, 如果这个参数为 true, 则会影响到 vuex 中的 autoRefreshCountdown
* globalized: true
* 回调的函数, 不保证顺序执行
* handles: ["getList"]
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
* callbacks: []
* debug: true
*
* @param Vue
* @return {{autoRefreshStates: {timer: null, stop: autoRefreshStates.stop, enable: autoRefreshStates.enable, maxExecuteTimes: number, currentExecuteTimes: number, interval: number, execute: autoRefreshStates.execute}}}
*/
export default function (Vue) {
Vue.mixin({
data () {
return {
autoRefreshStates: {
// 默认的刷新间隔
interval: 1000 * 10,
// 最多执行的次数, 超出后停止
maxExecuteTimes: 100,
// 当前执行的次数
currentExecuteTimes: 0,
// 倒计时的定时器
countdownTimer: null,
timer: null,
execute: () => {
this.$options.$autoRefresh.handles.forEach(async (methodName, index) => {
// 如果离开页面
if (!isActive) {
return false;
}
// 如果 vuex 中的 autoRefresh 为 false 则不执行
if (!this.$store.getters.autoRefresh) {
return false;
}
// 如果超出最大执行次数
if (this.autoRefreshStates.currentExecuteTimes > this.autoRefreshStates.maxExecuteTimes) {
console.log(`[auto-refresh] ${methodName} is stopped because of maxExecuteTimes`)
this.autoRefreshStates.stop();
return false;
}
// 如果是调试模式
if (this.$options.$autoRefresh.debug) {
console.log(`[auto-refresh] ${methodName} is executing...`)
}
const res = await Promise.resolve(this[methodName]());
// 如果是调试模式
if (this.$options.$autoRefresh.debug) {
console.log(`[auto-refresh] ${methodName} is executed. result => `, res)
}
if (this.$options.$autoRefresh.callbacks && this.$options.$autoRefresh.callbacks[index]) {
this.$options.$autoRefresh.callbacks[index](res)
}
}, null)
},
stop: () => {
if (!this.$options.$autoRefresh) {
return
}
// 如果是调试模式
if (this.$options.$autoRefresh.debug) {
console.log("[auto-refresh] stop")
}
if (this.autoRefreshStates.timer) {
clearInterval(this.autoRefreshStates.timer)
}
this.autoRefreshStates.countdownTimer = 0;
this.$store.commit("app/SET_AUTO_REFRESH_COUNTDOWN", this.autoRefreshStates.countdownTimer)
},
enable: () => {
if (!this.$options.$autoRefresh) {
return
}
// 如果是调试模式
if (this.$options.$autoRefresh.debug) {
console.log("[auto-refresh] enable")
}
const interval = this.$options.$autoRefresh.interval || this.autoRefreshStates.interval;
this.autoRefreshStates.countdownTimer = interval / 1000;
this.$store.commit("app/SET_AUTO_REFRESH_COUNTDOWN", this.autoRefreshStates.countdownTimer)
this.autoRefreshStates.timer = setInterval(
() => {
this.autoRefreshStates.currentExecuteTimes++;
this.autoRefreshStates.countdownTimer = interval / 1000;
this.autoRefreshStates.execute();
},
interval
)
setInterval(() => {
if (!isActive) {
return
}
this.autoRefreshStates.countdownTimer = (this.autoRefreshStates.countdownTimer - 1) > 0 ? (this.autoRefreshStates.countdownTimer - 1) : 0;
this.$store.commit("app/SET_AUTO_REFRESH_COUNTDOWN", this.autoRefreshStates.countdownTimer)
}, 1000)
},
},
}
},
mounted () {
// 如果组件传递了自动刷新的配置项 并且 vuex 中的 autoRefresh 为 true
if (this.$options.$autoRefresh && this.$store.getters.autoRefresh) {
if (this.$options.$autoRefresh.immediate) {
this.autoRefreshStates.execute();
}
this.autoRefreshStates.enable();
}
},
// 取消挂载
beforeDestroy () {
this.autoRefreshStates.stop()
},
})
}

2
src/store/getters.js

@ -15,5 +15,7 @@ const getters = {
topbarRouters:state => state.permission.topbarRouters,
defaultRoutes:state => state.permission.defaultRoutes,
sidebarRouters:state => state.permission.sidebarRouters,
autoRefresh:state => state.app.autoRefresh,
autoRefreshCountdown:state => state.app.autoRefreshCountdown,
}
export default getters

42
src/store/modules/app.js

@ -6,10 +6,12 @@ const state = {
withoutAnimation: false,
hide: false
},
// 是否自动刷新
autoRefresh: Cookies.get("autoRefresh") === "true" || true,
autoRefreshCountdown: 0,
device: 'desktop',
size: Cookies.get('size') || 'medium'
}
const mutations = {
TOGGLE_SIDEBAR: state => {
if (state.sidebar.hide) {
@ -37,23 +39,49 @@ const mutations = {
},
SET_SIDEBAR_HIDE: (state, status) => {
state.sidebar.hide = status
}
},
/**
*
* @param state
* @param autoRefresh {boolean}
* @constructor
*/
SET_AUTO_REFRESH: (state, autoRefresh) => {
state.autoRefresh = autoRefresh
// 保存到 cookie 中
Cookies.set("autoRefresh", autoRefresh)
},
SET_AUTO_REFRESH_COUNTDOWN: (state, countdown) => {
state.autoRefreshCountdown = countdown
},
}
const actions = {
toggleSideBar({ commit }) {
toggleSideBar({
commit
}) {
commit('TOGGLE_SIDEBAR')
},
closeSideBar({ commit }, { withoutAnimation }) {
closeSideBar({
commit
}, {
withoutAnimation
}) {
commit('CLOSE_SIDEBAR', withoutAnimation)
},
toggleDevice({ commit }, device) {
toggleDevice({
commit
}, device) {
commit('TOGGLE_DEVICE', device)
},
setSize({ commit }, size) {
setSize({
commit
}, size) {
commit('SET_SIZE', size)
},
toggleSideBarHide({ commit }, status) {
toggleSideBarHide({
commit
}, status) {
commit('SET_SIDEBAR_HIDE', status)
}
}

16
src/views/carddealer/carddealer/index.vue

@ -621,8 +621,20 @@ export default {
this.getList();
this.init();
},
watch: {
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
sortNum(a, b) {//

52
src/views/carddealer/carddealerCard/index.vue

@ -57,7 +57,7 @@
<el-table-column label="状态" align="center" prop="status" width="140px">
<template slot-scope="scope">
<el-switch v-model="scope.row.status" active-text="" inactive-text="" :active-value="1" :inactive-value="2"
@change="switchStatusChange(scope.row)">
@change="switchStatusChange(scope.row)" :disabled="scope.row.auditStatus != 1">
</el-switch>
</template>
</el-table-column>
@ -325,17 +325,42 @@ export default {
created() {
this.getList();
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
changeChannel(e) {
this.$forceUpdate()
},
tableRowClassName({ row, rowIndex }) {
if (row.dayReceiveMax == row.todayReceived) {
return "greenOrder";
// {{ scope.row.auditStatus == 0 ? '' : scope.row.auditStatus == 1 ? '' : '' }}
if (row.auditStatus == 0) {
return "yellowCard";
}
if (row.auditStatus == 1) {
return "greenCard";
}
if (row.singleReceiveMax == row.singleMax) {
return "redOrder";
if (row.auditStatus == 2) {
return "redCard";
}
// if (row.dayReceiveMax == row.todayReceived) {
// return "greenOrder";
// }
// if (row.singleReceiveMax == row.singleMax) {
// return "redOrder";
// }
},
timerHandler(queryParams) {
listCarddealerCard(this.queryParams).then(response => {
@ -365,6 +390,7 @@ export default {
payShouCard.updateInfo(this.form).then((res) => {
if (res.code === 200) {
this.$message.success("编辑成功");
this.getList()
}
});
@ -411,8 +437,8 @@ export default {
/** 分配通道操作 */
handleChannel(row) {
this.reset();
if(row.channelIds.length){
this.form.ids=row.channelIds
if (row.channelIds.length) {
this.form.ids = row.channelIds
}
this.form.cardId = row.id
common_api.findChannelListAll({
@ -533,12 +559,16 @@ export default {
};
</script>
<style>
.greenOrder {
background: #E9FEEA !important;
.yellowCard {
background: #f1d4d4 !important;
}
.greenCard {
background: #b0e5d6 !important;
}
.redOrder {
background: #FDF2F2 !important;
.redCard {
background: #f6ecd4 !important;
}
</style>
<style scoped>

15
src/views/carddealer/carddealerDev/index.vue

@ -134,6 +134,21 @@ export default {
created() {
this.getList();
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
//
switchStatusChange(row, type) {

15
src/views/carddealer/carddealerSms/index.vue

@ -177,6 +177,21 @@ export default {
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();
},

15
src/views/carddealer/carddealerSms/indexIdentify.vue

@ -175,6 +175,21 @@ import cardMerchantOrderRefreshMixin from "@/api/cardMerchantOrderRefresh.mixin"
],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();

15
src/views/carddealer/carddealerSms/indexSuccess.vue

@ -175,6 +175,21 @@ import cardMerchantOrderRefreshMixin from "@/api/cardMerchantOrderRefresh.mixin"
],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();

15
src/views/carddealer/carddealerSmsTemp/index.vue

@ -185,6 +185,21 @@ export default {
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();
},

15
src/views/dashboard/PanelGroup.vue

@ -468,6 +468,21 @@ export default {
components: {
CountTo,
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
//

15
src/views/merchant/merchant/index.vue

@ -473,6 +473,21 @@ export default {
created() {
this.getList();
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
//
handleControl(row) {

15
src/views/order/TransferOrder/daifuSonOrder.vue

@ -428,6 +428,21 @@ export default {
created() {
this.getList();
this.init();
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
getReadableText(data) {

29
src/views/order/TransferOrder/index.vue

@ -9,7 +9,7 @@
</div>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="106px" class="flex form"
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="116px" class="flex form"
style="position: relative">
<el-form-item label="平台订单号" prop="orderNo">
<el-input size="medium" v-model="queryParams.orderNo" placeholder="请输入平台订单号" @keyup.enter.native="handleQuery"
@ -19,6 +19,10 @@
<el-input size="medium" v-model="queryParams.merchantOrderNo" placeholder="请输入商户订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="商户下游订单号" prop="downstreamMerchantOrderNo">
<el-input size="medium" v-model="queryParams.downstreamMerchantOrderNo" placeholder="请输入商户下游订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="收款卡号" prop="cardNumber">
<el-input size="medium" v-model="queryParams.cardNumber" placeholder="请输入收款卡号" @keyup.enter.native="handleQuery"
style="width: 180px; border-color: #e6f1ff" />
@ -101,6 +105,7 @@
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="商户" align="center" prop="merchantName" />
<el-table-column label="商户订单号" align="center" prop="merchantOrderNo" />
<el-table-column label="商户下游订单号" align="center" prop="downstreamMerchantOrderNo" min-width="120" />
<el-table-column :label="'类型'" align="center" prop="securityDepositAmount">
<template slot-scope="scope">
@ -180,6 +185,9 @@
<el-form-item label="商户订单号">
{{ detailInfoList.merchantOrderNo }}
</el-form-item>
<el-form-item label="商户下游订单号">
{{ detailInfoList.downstreamMerchantOrderNo }}
</el-form-item>
<el-form-item label="商户名称">
{{ detailInfoList.merchantName }}
</el-form-item>
@ -361,6 +369,8 @@ export default {
orderSource: null,
orderStatus: null,
platformChannelId: null,
downstreamMerchantOrderNo:null
},
showAll: [
{
@ -513,6 +523,21 @@ export default {
this.getList();
this.init();
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
tableRowClassName({ row, rowIndex }) {
if (row.payeeRealAmount != row.reqAmount && row.orderStatus == 2) {
@ -623,6 +648,8 @@ export default {
orderSource: this.queryParams.orderSource,
orderStatus: this.queryParams.orderStatus,
platformChannelId: this.queryParams.platformChannelId,
downstreamMerchantOrderNo:this.queryParams.downstreamMerchantOrderNo
}
listTransferOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
this.infoList = response.rows;

42
src/views/order/TransferOrder/readyOrder.vue

@ -8,7 +8,7 @@
</div>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="106px"
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="116px"
class="flex form" style="position: relative">
<el-form-item label="平台订单号" prop="orderNo">
<el-input size="medium" v-model="queryParams.orderNo" placeholder="请输入平台订单号"
@ -18,6 +18,10 @@
<el-input size="medium" v-model="queryParams.merchantOrderNo" placeholder="请输入商户订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="商户下游订单号" prop="downstreamMerchantOrderNo">
<el-input size="medium" v-model="queryParams.downstreamMerchantOrderNo" placeholder="请输入商户下游订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="收款卡号" prop="cardNumber">
<el-input size="medium" v-model="queryParams.cardNumber" placeholder="请输入收款卡号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
@ -102,6 +106,7 @@
<el-table-column label="订单号" align="center" prop="orderNo" />
<el-table-column label="商户" align="center" prop="merchantName" />
<el-table-column label="商户订单号" align="center" prop="merchantOrderNo" />
<el-table-column label="商户下游订单号" align="center" prop="downstreamMerchantOrderNo" min-width="120" />
<el-table-column :label="'类型'" align="center" prop="securityDepositAmount">
<template slot-scope="scope">
@ -193,6 +198,9 @@
<el-form-item label="商户订单号">
{{ detailInfoList.merchantOrderNo }}
</el-form-item>
<el-form-item label="商户下游订单号">
{{ detailInfoList.downstreamMerchantOrderNo }}
</el-form-item>
<el-form-item label="商户名称">
{{ detailInfoList.merchantName }}
</el-form-item>
@ -360,8 +368,8 @@ export default {
orderSource: null,
platformChannelId: null,
orderStatus: 1,
downstreamMerchantOrderNo: null
},
showAll: [
{
label: '全部',
@ -522,8 +530,26 @@ export default {
this.getList();
this.init()
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
tableRowClassName({ row, rowIndex }) {
if (row.sameMark == 1) {
return "e17777";
}
if (row.autoConfirm == 2 && row.payeeRealAmount == row.reqAmount) {
return "greyOrder";
}
@ -664,6 +690,7 @@ export default {
orderSource: this.queryParams.orderSource,
orderStatus: this.queryParams.orderStatus,
platformChannelId: this.queryParams.platformChannelId,
downstreamMerchantOrderNo: this.queryParams.downstreamMerchantOrderNo
}
listTransferOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
this.infoList = response.rows;
@ -808,14 +835,14 @@ export default {
if (this.dateRange[0]) {
this.queryParams.beginTime = this.dateRange[0][0]
this.queryParams.endTime = this.dateRange[0][1]
}else{
} else {
this.queryParams.beginTime = null
this.queryParams.endTime = null
}
if (this.dateRange[1]) {
this.queryParams.updateBeginTime = this.dateRange[1][0]
this.queryParams.updateEndTime = this.dateRange[1][1]
}else{
} else {
this.queryParams.updateBeginTime = null
this.queryParams.updateEndTime = null
}
@ -840,6 +867,10 @@ export default {
};
</script>
<style>
.e17777 {
background: #e79696 !important;
}
.greyOrder {
background: #F4F4F5 !important;
}
@ -875,4 +906,5 @@ export default {
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
background: none !important;
}</style>
}
</style>

15
src/views/order/carddealerOrder/carddealerSonOrder.vue

@ -386,6 +386,21 @@ export default {
remarks: [{ required: true, message: "请输入原因", trigger: "blur" }],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();

17
src/views/order/carddealerOrder/index.vue

@ -420,9 +420,26 @@ export default {
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();
},
methods: {
tableRowClassName({ row, rowIndex }) {
if (row.orderStatus == 3) {

15
src/views/order/carddealerOrder/readyOrder.vue

@ -440,6 +440,21 @@ export default {
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();
this.init()

28
src/views/order/payOrder/csOrder.vue

@ -8,7 +8,7 @@
</div>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px" class="flex form"
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="116px" class="flex form"
style="position: relative">
<el-form-item label="平台订单号" prop="orderNo">
<el-input size="medium" v-model="queryParams.orderNo" placeholder="请输入平台订单号" @keyup.enter.native="handleQuery"
@ -18,6 +18,10 @@
<el-input size="medium" v-model="queryParams.merchantOrderNo" placeholder="请输入商户订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="商户下游订单号" prop="downstreamMerchantOrderNo">
<el-input size="medium" v-model="queryParams.downstreamMerchantOrderNo" placeholder="请输入商户下游订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="卡号" prop="carddealerCardNumber">
<el-input size="medium" v-model="queryParams.carddealerCardNumber" placeholder="请输入卡号"
@ -101,6 +105,8 @@
<el-table stripe :data="infoList" v-loading="loading" :row-class-name="tableRowClassName">
<el-table-column label="平台订单号" align="center" prop="orderNo" />
<el-table-column label="商户订单号" align="center" prop="merchantOrderNo" />
<el-table-column label="商户下游订单号" align="center" prop="downstreamMerchantOrderNo" min-width="120" />
<el-table-column label="商户" align="center" prop="merchantName" />
<el-table-column :label="'订单金额'" align="center" prop="securityDepositAmount">
@ -168,6 +174,9 @@
<el-form-item label="商户订单号">
{{ detailInfoList.merchantOrderNo }}
</el-form-item>
<el-form-item label="商户下游订单号">
{{ detailInfoList.downstreamMerchantOrderNo }}
</el-form-item>
<el-form-item label="商户名称">
{{ detailInfoList.merchantName }}
</el-form-item>
@ -330,6 +339,7 @@ export default {
carddealerCardHolder: null,
reqAmount: null,
platformChannelId: null,
downstreamMerchantOrderNo:null
},
//
isShowDetail: false,
@ -457,6 +467,21 @@ export default {
this.getList();
this.init()
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
tableRowClassName({ row, rowIndex }) {
if (row.orderStatus == 3) {
@ -535,6 +560,7 @@ export default {
carddealerCardHolder: this.queryParams.carddealerCardHolder,
reqAmount: typeof (this.reqAmount) == 'object' ? null : !reqAmount ? null : parseFloat(this.reqAmount),
platformChannelId: this.queryParams.platformChannelId,
downstreamMerchantOrderNo:this.queryParams.downstreamMerchantOrderNo
}
listPayOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
this.infoList = response.rows;

39
src/views/order/payOrder/index.vue

@ -8,7 +8,7 @@
</div>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px" class="flex form"
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="116px" class="flex form"
style="position: relative">
<el-form-item label="平台订单号" prop="orderNo">
<el-input size="medium" v-model="queryParams.orderNo" placeholder="请输入平台订单号" @keyup.enter.native="handleQuery"
@ -19,6 +19,11 @@
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="商户下游订单号" prop="downstreamMerchantOrderNo">
<el-input size="medium" v-model="queryParams.downstreamMerchantOrderNo" placeholder="请输入商户下游订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="卡号" prop="carddealerCardNumber">
<el-input size="medium" v-model="queryParams.carddealerCardNumber" placeholder="请输入卡号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
@ -88,6 +93,9 @@
<el-table stripe :data="infoList" v-loading="loading" :row-class-name="tableRowClassName">
<el-table-column label="平台订单号" align="center" prop="orderNo" />
<el-table-column label="商户订单号" align="center" prop="merchantOrderNo" />
<el-table-column label="商户下游订单号" align="center" prop="downstreamMerchantOrderNo" min-width="120" />
<el-table-column label="商户" align="center" prop="merchantName" />
<el-table-column :label="'订单金额'" align="center" prop="securityDepositAmount">
@ -155,6 +163,13 @@
<el-form-item label="商户订单号">
{{ detailInfoList.merchantOrderNo }}
</el-form-item>
<el-form-item label="商户下游订单号">
{{ detailInfoList.downstreamMerchantOrderNo }}
</el-form-item>
<el-form-item label="商户名称">
{{ detailInfoList.merchantName }}
</el-form-item>
@ -244,7 +259,6 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -316,6 +330,7 @@ export default {
carddealerCardHolder: null,
reqAmount: null,
platformChannelId: null,
downstreamMerchantOrderNo: null
},
//
isShowDetail: false,
@ -438,6 +453,21 @@ export default {
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();
this.init()
@ -503,6 +533,7 @@ export default {
carddealerCardHolder: this.queryParams.carddealerCardHolder,
reqAmount: typeof (reqAmount) == 'object' ? null : !reqAmount ? null : parseFloat(reqAmount),
platformChannelId: this.queryParams.platformChannelId,
downstreamMerchantOrderNo: this.queryParams.downstreamMerchantOrderNo
}
listPayOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
this.infoList = response.rows;
@ -631,14 +662,14 @@ export default {
if (this.dateRange[0]) {
this.queryParams.beginTime = this.dateRange[0][0]
this.queryParams.endTime = this.dateRange[0][1]
}else{
} else {
this.queryParams.beginTime = null
this.queryParams.endTime = null
}
if (this.dateRange[1]) {
this.queryParams.updateBeginTime = this.dateRange[1][0]
this.queryParams.updateEndTime = this.dateRange[1][1]
}else{
} else {
this.queryParams.updateBeginTime = null
this.queryParams.updateEndTime = null
}

30
src/views/order/payOrder/wwc.vue

@ -8,7 +8,7 @@
</div>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px" class="flex form"
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="116px" class="flex form"
style="position: relative">
<el-form-item label="平台订单号" prop="orderNo">
<el-input size="medium" v-model="queryParams.orderNo" placeholder="请输入平台订单号" @keyup.enter.native="handleQuery"
@ -19,6 +19,11 @@
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="商户下游订单号" prop="downstreamMerchantOrderNo">
<el-input size="medium" v-model="queryParams.downstreamMerchantOrderNo" placeholder="请输入商户下游订单号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
</el-form-item>
<el-form-item label="卡号" prop="carddealerCardNumber">
<el-input size="medium" v-model="queryParams.carddealerCardNumber" placeholder="请输入卡号"
@keyup.enter.native="handleQuery" style="width: 180px; border-color: #e6f1ff" />
@ -101,6 +106,8 @@
<el-table stripe :data="infoList" v-loading="loading" :row-class-name="tableRowClassName">
<el-table-column label="平台订单号" align="center" prop="orderNo" />
<el-table-column label="商户订单号" align="center" prop="merchantOrderNo" />
<el-table-column label="商户下游订单号" align="center" prop="downstreamMerchantOrderNo" min-width="120" />
<el-table-column label="商户" align="center" prop="merchantName" />
<el-table-column :label="'订单金额'" align="center" prop="securityDepositAmount">
@ -166,6 +173,9 @@
<el-form-item label="商户订单号">
{{ detailInfoList.merchantOrderNo }}
</el-form-item>
<el-form-item label="商户下游订单号">
{{ detailInfoList.downstreamMerchantOrderNo }}
</el-form-item>
<el-form-item label="商户名称">
{{ detailInfoList.merchantName }}
</el-form-item>
@ -329,6 +339,7 @@ export default {
carddealerCardHolder: null,
reqAmount: null,
platformChannelId: null,
downstreamMerchantOrderNo:null
},
//
isShowDetail: false,
@ -456,6 +467,21 @@ export default {
this.getList();
this.init()
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
methods: {
tableRowClassName({ row, rowIndex }) {
if (row.orderStatus == 3) {
@ -509,6 +535,7 @@ export default {
carddealerCardHolder: this.queryParams.carddealerCardHolder,
reqAmount: typeof (this.reqAmount) == 'object' ? null : !this.reqAmount ? null : parseFloat(this.reqAmount),
platformChannelId: this.queryParams.platformChannelId,
downstreamMerchantOrderNo:this.queryParams.downstreamMerchantOrderNo
}
listPayOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
this.infoList = response.rows;
@ -533,6 +560,7 @@ export default {
carddealerCardHolder: this.queryParams.carddealerCardHolder,
reqAmount: typeof (reqAmount) == 'object' ? null : !reqAmount ? null : parseFloat(reqAmount),
platformChannelId: this.queryParams.platformChannelId,
downstreamMerchantOrderNo:this.queryParams.downstreamMerchantOrderNo
}
listPayOrder(this.addSESDateRange(queryParams, this.dateRange, 'type')).then(response => {
this.infoList = response.rows;

15
src/views/payTest/dfTest.vue

@ -422,6 +422,21 @@ export default {
]
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();

15
src/views/payTest/dsTest.vue

@ -436,6 +436,21 @@ export default {
]
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();

15
src/views/platform/bank/index.vue

@ -146,6 +146,21 @@ export default {
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();
},

15
src/views/platform/platformChannel/index.vue

@ -253,6 +253,21 @@ export default {
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.getList();
},

15
src/views/staticsRecord/cardTimeStatistics.vue

@ -163,6 +163,21 @@ export default {
],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.addDate()

15
src/views/staticsRecord/dayEndStatistics.vue

@ -172,6 +172,21 @@ export default {
],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.addDate()

15
src/views/staticsRecord/dayStatistics.vue

@ -148,6 +148,21 @@ export default {
],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.addDate()

15
src/views/staticsRecord/mechantTimeStatistics.vue

@ -207,6 +207,21 @@ export default {
],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.addDate()

15
src/views/staticsRecord/merchantCardStat.vue

@ -162,6 +162,21 @@ export default {
],
}
};
},
$autoRefresh: {
//
interval: 1000 * 15,
//
immediate: false,
// ,
handles: ["getList"],
/**
* 调用 handles 后的回调函数
* 这个字段为数组类型, 数组中的每个元素都是一个函数, 在对应索引的 handle 执行后被调用
*/
callbacks: [],
//
debug: true,
},
created() {
this.addDate()

BIN
正式kakapay.zip

Binary file not shown.

BIN
测试kakapay.zip

Binary file not shown.
Loading…
Cancel
Save