Browse Source

修改添加功能

master
j1ack 2 years ago
parent
commit
ba52b62894
  1. 1
      package.json
  2. 71
      src/api/form.js
  3. 2
      src/main.js
  4. 3
      src/utils/request.js
  5. 15
      src/utils/ruoyi.js
  6. 77
      src/views/monitor/job/index.vue
  7. 99
      src/views/monitor/logininfor/index.vue
  8. 167
      src/views/monitor/operlog/index.vue
  9. 217
      src/views/pay/payAgentUser/payAgentUserList.vue
  10. 124
      src/views/pay/payAgentUser/rate.vue
  11. 31
      src/views/pay/payBank/payBankManual.vue
  12. 45
      src/views/pay/payBank/payBankPayment.vue
  13. 23
      src/views/pay/payBank/payBankPaymentFormList.vue
  14. 16
      src/views/pay/payOrder/manyNeiChong.vue
  15. 236
      src/views/pay/payOrder/payBalanceRecord.vue
  16. 33
      src/views/pay/payOrder/payDaiFuWater.vue
  17. 39
      src/views/pay/payOrder/payLineDownTranferWater.vue
  18. 2
      src/views/pay/payOrder/payMoneyCalcu.vue
  19. 15
      src/views/pay/payOrder/payMoneyTransfer.vue
  20. 14
      src/views/pay/payOrder/payMoneyWater.vue
  21. 26
      src/views/pay/payOrder/payNeiChongWater.vue
  22. 315
      src/views/pay/payOrder/payOrderWater.vue
  23. 172
      src/views/pay/payOrder/pkCouponScopeRangeStoreList.vue
  24. 14
      src/views/pay/payOrder/singleNeiChong.vue
  25. 44
      src/views/pay/payTest/payCode.vue
  26. 6
      src/views/pay/payTest/payDai.vue
  27. 19
      src/views/pay/payType/payBankManualUser.vue
  28. 2
      src/views/pay/payType/payChannelDefult.vue
  29. 19
      src/views/pay/payType/payChannelOut.vue
  30. 43
      src/views/pay/payType/payTypeChannel.vue
  31. 28
      src/views/pay/payType/payTypeChannelManage.vue
  32. 26
      src/views/pay/payType/payTypeManage.vue
  33. 19
      src/views/pay/payType/payTypeSettleConfig.vue
  34. 99
      src/views/system/config/index.vue
  35. 110
      src/views/system/dept/index.vue
  36. 117
      src/views/system/dict/index.vue
  37. 139
      src/views/system/menu/index.vue
  38. 73
      src/views/system/notice/index.vue
  39. 45
      src/views/system/post/index.vue
  40. 67
      src/views/system/role/index.vue
  41. 6
      src/views/system/user/index.vue
  42. 2
      src/views/tool/build/index.vue
  43. 2
      src/views/tool/gen/editTable.vue
  44. 5
      src/views/tool/gen/importTable.vue
  45. 203
      src/views/tool/gen/index.vue
  46. BIN
      测试.zip

1
package.json

@ -55,6 +55,7 @@
"screenfull": "5.0.2", "screenfull": "5.0.2",
"sortablejs": "1.10.2", "sortablejs": "1.10.2",
"vue": "2.6.12", "vue": "2.6.12",
"vue-clipboard2": "^0.3.3",
"vue-count-to": "1.0.13", "vue-count-to": "1.0.13",
"vue-cropper": "0.5.5", "vue-cropper": "0.5.5",
"vue-meta": "2.4.0", "vue-meta": "2.4.0",

71
src/api/form.js

@ -11,6 +11,20 @@ import {
* *
*/ */
export const common_api = { export const common_api = {
// 查询所有代理商
selectAgentListAll: () => {
return request({
url: '/system/user/selectAgentListAll',
method: 'get',
})
},
// 所有国家
getAllNation: () => {
return request({
url: '/pay/getAllNation',
method: 'get',
})
},
// 查询支付类型列表 // 查询支付类型列表
payTypeAll: () => { payTypeAll: () => {
return request({ return request({
@ -238,6 +252,17 @@ export const payAgentUser = {
}) })
}, },
// 分配用户代理商
assignAgents: (data) => {
return request({
url: '/system/user/assignAgents?'+qs.stringify(data),
method: 'post',
headers: {
Authorization: "Bearer " + getToken(),
},
})
},
} }
@ -276,7 +301,6 @@ export const card_order_list = {
}, },
}) })
}, },
// 补发异步通知 // 补发异步通知
reissueNotice: (data) => { reissueNotice: (data) => {
return request({ return request({
@ -522,6 +546,13 @@ export const platform_payment_list = {
* 资金清算模块 * 资金清算模块
*/ */
export const payMoneyCalcu = { export const payMoneyCalcu = {
// 人工修改余额接口
updateBalance: (data) => {
return request({
url: '/order/updateBalance?' + qs.stringify(data),
method: 'post',
})
},
// 获取资金管理金额 // 获取资金管理金额
amountCount: (query) => { amountCount: (query) => {
return request({ return request({
@ -1295,45 +1326,15 @@ export const payBankPaymentFormList = {
/** /**
* 用户列表 * 余额修改记录
*/ */
export const pkUserInfo = { export const pkUpdateBalanceRecord = {
// 获取用户列表 // 获取余额修改记录列表
listInfo: (query) => { listInfo: (query) => {
return request({ return request({
url: '/test/user/list', url: '/order/getUpdateBalanceRecord',
method: 'get', method: 'get',
params: query params: query
}) })
}, },
// 更新用户
updateInfo: (data) => {
return request({
url: '/test/user/update',
method: 'put',
data: data
})
},
// 获取用户详细
getInfo: (id) => {
return request({
url: '/test/user/' + id,
method: 'get'
})
},
// 新增用户
addInfo: (data) => {
return request({
url: '/test/user/save',
method: 'post',
data: data
})
},
// 删除用户信息
delInfo: (id) => {
return request({
url: '/test/user/' + id,
method: 'delete'
})
},
} }

2
src/main.js

@ -37,7 +37,9 @@ import DictTag from '@/components/DictTag'
import VueMeta from 'vue-meta' import VueMeta from 'vue-meta'
// 字典数据组件 // 字典数据组件
import DictData from '@/components/DictData' import DictData from '@/components/DictData'
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)
// 全局方法挂载 // 全局方法挂载
Vue.prototype.getDicts = getDicts Vue.prototype.getDicts = getDicts
Vue.prototype.getConfigKey = getConfigKey Vue.prototype.getConfigKey = getConfigKey

3
src/utils/request.js

@ -67,7 +67,8 @@ service.interceptors.request.use(config => {
if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) { if (s_data === requestObj.data && requestObj.time - s_time < interval && s_url === requestObj.url) {
const message = '数据正在处理,请勿重复提交'; const message = '数据正在处理,请勿重复提交';
console.warn(`[${s_url}]: ` + message) console.warn(`[${s_url}]: ` + message)
// return Promise.reject(new Error(message)) // new Error(message)
return Promise.reject()
} else { } else {
cache.session.setJSON('sessionObj', requestObj) cache.session.setJSON('sessionObj', requestObj)
} }

15
src/utils/ruoyi.js

@ -1,6 +1,21 @@
/** /**
* 通用js方法封装处理 * 通用js方法封装处理
* Copyright (c) 2019 ruoyi * Copyright (c) 2019 ruoyi
*
*
*
*
*
* pay_channel_namekey_id, user_id, store_id, order_no, out_trade_no,
* transaction_id, tran_amt, pay_amt, pay_type, channel_type, pay_time, order_status,
* rate, channel_rate, mch_id, mch_name, notify_url, back_url, store_no, bank_code,
* bank_id, card_type, product_name, product_desc, qrcode_img, qrcode_url, user_key, source_type, attach,
* version, charset, sign_type, create_time, update_time, order_msg, media_type
* name, mobile,store_settle_time,store_settle,
real_amt,rate_amt,poundage_rate,poundage_amt,
store_name,store_type,type_name pay_type_name,
channel_name pay_channel_name
*
*/ */
const baseURL = process.env.VUE_APP_BASE_API const baseURL = process.env.VUE_APP_BASE_API

77
src/views/monitor/job/index.vue

@ -6,6 +6,49 @@
<div class="text">定时任务</div> <div class="text">定时任务</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px">
<el-form-item label="任务名称" prop="jobName">
<el-input
v-model="queryParams.jobName"
placeholder="请输入任务名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="任务组名" prop="jobGroup">
<el-select v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable>
<el-option
v-for="dict in dict.type.sys_job_group"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable>
<el-option
v-for="dict in dict.type.sys_job_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@ -58,43 +101,9 @@
v-hasPermi="['monitor:job:query']" v-hasPermi="['monitor:job:query']"
>日志</el-button> >日志</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px">
<el-form-item label="任务名称" prop="jobName">
<el-input
v-model="queryParams.jobName"
placeholder="请输入任务名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="任务组名" prop="jobGroup">
<el-select v-model="queryParams.jobGroup" placeholder="请选择任务组名" clearable>
<el-option
v-for="dict in dict.type.sys_job_group"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择任务状态" clearable>
<el-option
v-for="dict in dict.type.sys_job_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="loading" :data="jobList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="jobList" @selection-change="handleSelectionChange">

99
src/views/monitor/logininfor/index.vue

@ -7,54 +7,13 @@
<div class="text">登陆日志</div> <div class="text">登陆日志</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['monitor:logininfor:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
@click="handleClean"
v-hasPermi="['monitor:logininfor:remove']"
>清空</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-unlock"
size="medium"
:disabled="single"
@click="handleUnlock"
v-hasPermi="['monitor:logininfor:unlock']"
>解锁</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="medium"
@click="handleExport"
v-hasPermi="['monitor:logininfor:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg"> <div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px"> <el-form :model="queryParams" ref="queryForm" size="medium" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px">
<el-form-item label="登录地址" prop="ipaddr"> <el-form-item label="登录地址" prop="ipaddr">
<el-input <el-input
v-model="queryParams.ipaddr" v-model="queryParams.ipaddr"
@ -100,8 +59,58 @@
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['monitor:logininfor:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
@click="handleClean"
v-hasPermi="['monitor:logininfor:remove']"
>清空</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-unlock"
size="medium"
:disabled="single"
@click="handleUnlock"
v-hasPermi="['monitor:logininfor:unlock']"
>解锁</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="medium"
@click="handleExport"
v-hasPermi="['monitor:logininfor:export']"
>导出</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>

167
src/views/monitor/operlog/index.vue

@ -7,159 +7,106 @@
<div class="text">操作日志</div> <div class="text">操作日志</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['monitor:operlog:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
@click="handleClean"
v-hasPermi="['monitor:operlog:remove']"
>清空</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="medium"
@click="handleExport"
v-hasPermi="['monitor:operlog:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg"> <div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"
class="flex form" style="padding:0 20px">
<el-form-item label="系统模块" prop="title"> <el-form-item label="系统模块" prop="title">
<el-input <el-input v-model="queryParams.title" size="medium" placeholder="请输入系统模块" clearable style="width: 240px;"
v-model="queryParams.title" @keyup.enter.native="handleQuery" />
placeholder="请输入系统模块"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="操作人员" prop="operName"> <el-form-item label="操作人员" prop="operName">
<el-input <el-input v-model="queryParams.operName" size="medium" placeholder="请输入操作人员" clearable style="width: 240px;"
v-model="queryParams.operName" @keyup.enter.native="handleQuery" />
placeholder="请输入操作人员"
clearable
style="width: 240px;"
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="businessType"> <el-form-item label="类型" prop="businessType">
<el-select <el-select v-model="queryParams.businessType" size="medium" placeholder="操作类型" clearable style="width: 240px">
v-model="queryParams.businessType" <el-option v-for="dict in dict.type.sys_oper_type" :key="dict.value" :label="dict.label"
placeholder="操作类型" :value="dict.value" />
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_oper_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select <el-select v-model="queryParams.status" size="medium" placeholder="操作状态" clearable style="width: 240px">
v-model="queryParams.status" <el-option v-for="dict in dict.type.sys_common_status" :key="dict.value" :label="dict.label"
placeholder="操作状态" :value="dict.value" />
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.sys_common_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</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="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
v-model="dateRange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="medium" :disabled="multiple"
@click="handleDelete" v-hasPermi="['monitor:operlog:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="medium" @click="handleClean"
v-hasPermi="['monitor:operlog:remove']">清空</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="medium" @click="handleExport"
v-hasPermi="['monitor:operlog:export']">导出</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange"> <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange"
:default-sort="defaultSort" @sort-change="handleSortChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="日志编号" align="center" prop="operId" /> <el-table-column label="日志编号" align="center" prop="operId" />
<el-table-column label="系统模块" align="center" prop="title" /> <el-table-column label="系统模块" align="center" prop="title" />
<el-table-column label="操作类型" align="center" prop="businessType"> <el-table-column label="操作类型" align="center" prop="businessType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_oper_type" :value="scope.row.businessType"/> <dict-tag :options="dict.type.sys_oper_type" :value="scope.row.businessType" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="请求方式" align="center" prop="requestMethod" /> <el-table-column label="请求方式" align="center" prop="requestMethod" />
<el-table-column label="操作人员" align="center" prop="operName" width="100" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" /> <el-table-column label="操作人员" align="center" prop="operName" width="100" :show-overflow-tooltip="true"
sortable="custom" :sort-orders="['descending', 'ascending']" />
<el-table-column label="操作地址" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" /> <el-table-column label="操作地址" align="center" prop="operIp" width="130" :show-overflow-tooltip="true" />
<el-table-column label="操作地点" align="center" prop="operLocation" :show-overflow-tooltip="true" /> <el-table-column label="操作地点" align="center" prop="operLocation" :show-overflow-tooltip="true" />
<el-table-column label="操作状态" align="center" prop="status"> <el-table-column label="操作状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/> <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作日期" align="center" prop="operTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180"> <el-table-column label="操作日期" align="center" prop="operTime" sortable="custom"
:sort-orders="['descending', 'ascending']" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.operTime) }}</span> <span>{{ parseTime(scope.row.operTime) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row, scope.index)"
size="mini" v-hasPermi="['monitor:operlog:query']">详细</el-button>
type="text"
icon="el-icon-view"
@click="handleView(scope.row,scope.index)"
v-hasPermi="['monitor:operlog:query']"
>详细</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total>0" @pagination="getList" />
:total="total" </div>
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
<!-- 操作日志详细 --> <!-- 操作日志详细 -->
<el-dialog title="操作日志详细" :visible.sync="open" width="700px" append-to-body> <el-dialog title="操作日志详细" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" label-width="100px" size="mini"> <el-form ref="form" :model="form" label-width="100px" size="mini">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="操作模块:">{{ form.title }} / {{ typeFormat(form) }}</el-form-item> <el-form-item label="操作模块:">{{ form.title }} / {{ typeFormat(form) }}</el-form-item>
<el-form-item <el-form-item label="登录信息:">{{ form.operName }} / {{ form.operIp }} / {{ form.operLocation }}</el-form-item>
label="登录信息:"
>{{ form.operName }} / {{ form.operIp }} / {{ form.operLocation }}</el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="请求地址:">{{ form.operUrl }}</el-form-item> <el-form-item label="请求地址:">{{ form.operUrl }}</el-form-item>
@ -220,7 +167,7 @@ export default {
// //
dateRange: [], dateRange: [],
// //
defaultSort: {prop: 'operTime', order: 'descending'}, defaultSort: { prop: 'operTime', order: 'descending' },
// //
form: {}, form: {},
// //
@ -241,7 +188,7 @@ export default {
/** 查询登录日志 */ /** 查询登录日志 */
getList() { getList() {
this.loading = true; this.loading = true;
list(this.addDateRange(this.queryParams, this.dateRange)).then( response => { list(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.list = response.rows; this.list = response.rows;
this.total = response.total; this.total = response.total;
this.loading = false; this.loading = false;
@ -283,21 +230,21 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const operIds = row.operId || this.ids; const operIds = row.operId || this.ids;
this.$modal.confirm('是否确认删除日志编号为"' + operIds + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除日志编号为"' + operIds + '"的数据项?').then(function () {
return delOperlog(operIds); return delOperlog(operIds);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => { });
}, },
/** 清空按钮操作 */ /** 清空按钮操作 */
handleClean() { handleClean() {
this.$modal.confirm('是否确认清空所有操作日志数据项?').then(function() { this.$modal.confirm('是否确认清空所有操作日志数据项?').then(function () {
return cleanOperlog(); return cleanOperlog();
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("清空成功"); this.$modal.msgSuccess("清空成功");
}).catch(() => {}); }).catch(() => { });
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {

217
src/views/pay/payAgentUser/payAgentUserList.vue

@ -6,12 +6,8 @@
<div class="text">商户代理管理</div> <div class="text">商户代理管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd('新增代理', 'agent')">新增代理</el-button> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-col> <el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd('新增商户', 'store')">新增商户</el-button>
</el-col>
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row> </el-row>
</div> </div>
@ -44,8 +40,23 @@
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :unlink-panels="true"></el-date-picker> range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :unlink-panels="true"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button v-hasPermi="['system:user:saveStoreOragent']" type="primary" plain icon="" size="medium"
@click="handleAdd('新增代理', 'agent')">新增代理</el-button>
</el-col> <el-col :span="1.5">
<el-button v-hasPermi="['system:user:saveStoreOragent']" type="primary" plain icon="" size="medium"
@click="handleAdd('新增商户', 'store')">新增商户</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
<div class="rig flex m20"> <div class="rig flex m20">
<div> <div>
@ -60,12 +71,8 @@
<el-table stripe :data="infoList" v-loading="loading"> <el-table stripe :data="infoList" v-loading="loading">
<!-- <el-table-column :label="'用户编号\n商户号'" align="center" prop="storeNo" min-width="150"> <!-- <el-table-column label='商户Id' align="center" prop="storeId" min-width="160" /> -->
<template slot-scope="scope">
{{ scope.row.userId }}<br />
{{ scope.row.storeNo }}
</template>
</el-table-column> -->
<!-- <el-table-column label="用户姓名" align="center" prop="nickName" min-width="150" /> --> <!-- <el-table-column label="用户姓名" align="center" prop="nickName" min-width="150" /> -->
<el-table-column label="登陆账号" align="center" prop="userName" min-width="150"> <el-table-column label="登陆账号" align="center" prop="userName" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
@ -119,6 +126,9 @@
</el-table-column> </el-table-column>
<el-table-column label="上级用户" align="center" prop="parentName" /> <el-table-column label="上级用户" align="center" prop="parentName" />
<el-table-column label="国家代码" align="center" prop="nationCode" />
<el-table-column label="国家名称" align="center" prop="nationName" />
<el-table-column label="国家货币符号" align="center" prop="nationSymbol" min-width="100" />
@ -141,16 +151,25 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="200"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" @click="handleAdd('新增代理', 'agent', scope.row)" <el-button size="small" type="text" icon="el-icon-edit" @click="handleAdd('新增代理', 'agent', scope.row)"
style="color: #006EFF;" v-if="scope.row.userType != 'store'">新增下级代理</el-button> style="color: #006EFF;" v-if="scope.row.userType != 'store'"
v-hasPermi="['system:user:saveStoreOragent']">新增下级代理</el-button>
<el-button size="small" type="text" icon="el-icon-edit" style="color: #006EFF;" <el-button size="small" type="text" icon="el-icon-edit" style="color: #006EFF;"
@click="handleAdd('新增商户', 'store', scope.row)" v-if="scope.row.userType != 'store'">新增下级商户</el-button> @click="handleAdd('新增商户', 'store', scope.row)" v-if="scope.row.userType != 'store'"
v-hasPermi="['system:user:saveStoreOragent']">新增下级商户</el-button>
<!-- 商户 -->
<el-button size="small" v-if="scope.row.userType == 'store'" type="text"
@click="handleAgent('分配代理商', 'divide', scope.row)" style="color: #006EFF;">分配代理商</el-button>
<el-button size="small" type="text" style="color: #006EFF;" <el-button size="small" type="text" style="color: #006EFF;" @click="handleCode('身份验证', scope.row)"
@click="handleCode('身份验证', scope.row)">查看密钥</el-button> v-hasPermi="['system:user:getGoogleCaptcha']">查看密钥</el-button>
<el-button size="small" type="text" style="color: #006EFF;" @click="handleViewMy(scope.row)">详情</el-button> <el-button size="small" type="text" style="color: #006EFF;" @click="handleViewMy(scope.row)"
v-hasPermi="['store:store:query']" v-if="scope.row.userType == 'store'">详情</el-button>
<el-button size="small" type="text" style="color: #006EFF;" @click="go('/add', scope.row.storeId)" <el-button size="small" type="text" style="color: #006EFF;" @click="go('/add', scope.row.storeId)"
v-if="scope.row.userType == 'store'">通道</el-button> v-if="scope.row.userType == 'store'">通道</el-button>
<el-button size="small" type="text" style="color: #006EFF;" @click="go('/rate', scope.row.storeId)" <el-button size="small" type="text" style="color: #006EFF;" @click="go('/rate', scope.row.storeId)"
@ -181,6 +200,13 @@
<el-input v-model="form.userName" placeholder="请输入账号" /> <el-input v-model="form.userName" placeholder="请输入账号" />
</el-form-item> </el-form-item>
<el-form-item label="国家" prop="nationCode">
<el-select v-model="form.nationCode" placeholder="请选择国家" clearable size="medium">
<el-option v-for="(item, i) in nation" :key="i" :label="item.name" :value="item.code"></el-option>
</el-select>
</el-form-item>
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="password">
<el-input type="password" v-model="form.password" placeholder="请输入密码" /> <el-input type="password" v-model="form.password" placeholder="请输入密码" />
</el-form-item> </el-form-item>
@ -219,16 +245,15 @@
<div v-else> <div v-else>
<el-form-item label="Google安全秘钥" prop="code"> <el-form-item label="Google安全秘钥" prop="code">
<el-input v-model="form.googleCaptcha" :disabled="true" placeholder="" /> <el-input v-model="form.googleCaptcha" :disabled="true" placeholder="" />
<span class="updatePassword" @click="updateKey">更新密钥</span> <span class="updatePassword" @click="updateKey" v-hasPermi="['system:user:upGoogleCaptcha']">更新密钥</span>
</el-form-item> </el-form-item>
<el-form-item label="密码" prop="password"> <el-form-item label="密码" prop="">
<el-input v-model="form.password" type="password" placeholder="请输入密码" /> <el-input v-model="form.password" type="password" placeholder="请输入密码" />
</el-form-item> </el-form-item>
<el-form-item label="提现密码" prop="withdrawalsPwd"> <el-form-item label="提现密码" prop="withdrawalsPwd">
<el-input v-model="form.withdrawalsPwd" type="password" placeholder="请输入提现密码" /> <el-input v-model="form.withdrawalsPwd" type="password" placeholder="请输入提现密码" />
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm()"> </el-button> <el-button type="primary" @click="submitForm()"> </el-button>
@ -237,20 +262,20 @@
</el-dialog> </el-dialog>
<!-- 详情 --> <!-- 详情 -->
<el-dialog v-dialogDrag :close-on-click-modal="false" :title="detailTitle" :visible.sync="isShowDetail" width="53%" <el-dialog v-dialogDrag :close-on-click-modal="false" :title="detailTitle" :visible.sync="isShowDetail" width="50%"
append-to-body> append-to-body>
<el-form label-width="142px" :label-suffix="':'"> <el-form label-width="142px" :label-suffix="':'">
<div class="card-detail flex"> <div class="card-detail" style="display: flex;justify-content: space-around;">
<div> <div>
<el-form-item label="用户编号"> <el-form-item label="用户编号">
{{ detailInfoList.userId }} {{ detailInfoList.userId }}
</el-form-item> </el-form-item>
<el-form-item label="商户号">
{{ detailInfoList.storeNo }}
</el-form-item>
<el-form-item label="用户姓名"> <el-form-item label="用户姓名">
{{ detailInfoList.nickName }} {{ detailInfoList.nickName }}
</el-form-item> </el-form-item>
<el-form-item label="商户id">
{{ detailInfoList.storeId }}
</el-form-item>
<el-form-item label="登陆账号"> <el-form-item label="登陆账号">
{{ detailInfoList.userName }} {{ detailInfoList.userName }}
</el-form-item> </el-form-item>
@ -270,9 +295,21 @@
<el-form-item label="用户等级"> <el-form-item label="用户等级">
{{ detailInfoList.userLevel }} {{ detailInfoList.userLevel }}
</el-form-item> </el-form-item>
<el-form-item label="国家名称">
{{ detailInfoList.nationName }}
</el-form-item>
<el-form-item label="国家货币符号">
{{ detailInfoList.nationSymbol }}
</el-form-item>
</div> </div>
<div> <div>
<el-form-item label="商户号">
{{ detailInfoList.storeNo }} <span v-if="detailInfoList.storeNo" @click="copy(detailInfoList.storeNo)" style="cursor: pointer;color:#006EFF;margin-left: 10px;">复制</span>
</el-form-item>
<el-form-item label="签名Key">
{{ detailInfoList.storeKey }} <span v-if="detailInfoList.storeKey" @click="copy(detailInfoList.storeKey)" style="cursor: pointer;color:#006EFF;margin-left: 10px;">复制</span>
</el-form-item>
<el-form-item label="代理数"> <el-form-item label="代理数">
{{ detailInfoList.agentCount }} {{ detailInfoList.agentCount }}
</el-form-item> </el-form-item>
@ -302,9 +339,7 @@
<el-form-item label="上级用户"> <el-form-item label="上级用户">
{{ detailInfoList.parentName }} {{ detailInfoList.parentName }}
</el-form-item> </el-form-item>
<el-form-item label="签名Key">
{{ detailInfoList.storeKey }}
</el-form-item>
</div> </div>
<div> <div>
<el-form-item label="商户名称"> <el-form-item label="商户名称">
@ -329,7 +364,9 @@
inactive-value="close" @change="switchStatusChange('statusOut', detailInfoList)"> inactive-value="close" @change="switchStatusChange('statusOut', detailInfoList)">
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item label="国家代码">
{{ detailInfoList.nationCode }}
</el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
@ -340,6 +377,23 @@
</el-form> </el-form>
</el-dialog> </el-dialog>
<!-- 分配用户代理商 -->
<el-dialog v-dialogDrag :title="title" :visible.sync="openAgent" width="600px" append-to-body
:close-on-click-modal="false" :before-close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="代理商" prop="parentId">
<el-select v-model="form.parentId" placeholder="请选择代理商" clearable size="medium" @change="change">
<el-option v-for="(item, i) in allAgent" :key="i" :label="item.userName" :value="item.userId"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFormDivide()"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -369,13 +423,17 @@ export default {
}; };
var checkPhone = (rule, value, callback) => { var checkPhone = (rule, value, callback) => {
let reg = /^1[345789]\d{9}$/ let reg = /^1[345789]\d{9}$/
if (!reg.test(value)) { if (!reg.test(value) && value) {
callback(new Error('请输入11位手机号')) callback(new Error('请输入正确手机号'))
} else { } else {
callback() callback()
} }
} }
return { return {
//
allAgent: [],
//
nation: [],
pkCouponScopeRangeParkingStoreOpen: false, pkCouponScopeRangeParkingStoreOpen: false,
// //
isShowDetail: false, isShowDetail: false,
@ -403,6 +461,7 @@ export default {
// //
open: false, open: false,
openCode: false, openCode: false,
openAgent: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -417,13 +476,16 @@ export default {
form: {}, form: {},
// //
rules: { rules: {
nationCode: [
{ required: true, message: "请选择国家", trigger: "blur" },
],
// nickName: [ // nickName: [
// { required: true, message: "", trigger: "blur" }, // { required: true, message: "", trigger: "blur" },
// ], // ],
// phonenumber: [ phonenumber: [
// { required: true, type: 'number', validator: checkPhone, message: '', trigger: 'blur' }, { type: 'number', validator: checkPhone, message: '请输入正确的手机号', trigger: 'blur' },
// ], ],
userName: [ userName: [
{ required: true, message: "请输入账号", trigger: "blur" }, { required: true, message: "请输入账号", trigger: "blur" },
], ],
@ -435,12 +497,16 @@ export default {
{ required: true, validator: checkConfirmPassword, trigger: 'blur' } { required: true, validator: checkConfirmPassword, trigger: 'blur' }
// { min: 3, max: 5, message: ' 3 5 ', trigger: 'blur' } // { min: 3, max: 5, message: ' 3 5 ', trigger: 'blur' }
], ],
// storeName: [ storeName: [
// { required: true, message: "", trigger: "blur" }, { required: true, message: "请输入商户名称", trigger: "blur" },
// ], ],
// storeTelephone: [ // storeTelephone: [
// { required: true, message: "", trigger: "blur" }, // { required: true, message: "", trigger: "blur" },
// ], // ],
storeTelephone: [
{ type: 'number', validator: checkPhone, message: '请输入正确的手机号', trigger: 'blur' },
],
// organizationCode: [ // organizationCode: [
// { required: true, message: "", trigger: "blur" }, // { required: true, message: "", trigger: "blur" },
// ], // ],
@ -497,6 +563,16 @@ export default {
}, },
}, },
methods: { methods: {
copy(value){
this.$copyText(value).then(message => {
this.$message.success('Copied!')
}).catch(err => {
this.$message.error('Copy failed!')
})
},
change() {
this.$forceUpdate()
},
// //
switchStatusChange(val, row) { switchStatusChange(val, row) {
const id = row.storeId; const id = row.storeId;
@ -546,10 +622,10 @@ export default {
this.detailInfoList.storeKey = response.data.storePay.storeKey this.detailInfoList.storeKey = response.data.storePay.storeKey
this.detailInfoList.statusOut = response.data.storePay.statusOut this.detailInfoList.statusOut = response.data.storePay.statusOut
this.detailInfoList.statusIn = response.data.storePay.statusIn this.detailInfoList.statusIn = response.data.storePay.statusIn
this.detailInfoList.storeId = response.data.storePay.storeId this.detailInfoList.storeId = response.data.store.id
this.loading = false; this.loading = false;
}).catch(()=>{ }).catch(() => {
this.loading=false this.loading = false
}) })
}, },
go(url, val) { go(url, val) {
@ -581,11 +657,24 @@ export default {
.then((response) => { .then((response) => {
this.sum = response.data this.sum = response.data
}); });
//
common_api
.getAllNation()
.then((response) => {
this.nation = response.data
});
//
common_api
.selectAgentListAll()
.then((response) => {
this.allAgent = response.data
});
}, },
// //
cancel() { cancel() {
this.open = false; this.open = false;
this.openCode = false; this.openCode = false;
this.openAgent = false
this.reset(); this.reset();
}, },
// //
@ -613,6 +702,17 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
/** 代理商分配操作 */
handleAgent(title, type, val) {
this.reset();
this.openAgent = true;
// userid
if (val) {
this.form.userId = val.userId
}
this.form.parentId = this.allAgent[0].userId
this.title = title;
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd(title, type, val) { handleAdd(title, type, val) {
this.reset(); this.reset();
@ -634,8 +734,38 @@ export default {
this.title = title; this.title = title;
this.openCode = true; this.openCode = true;
}, },
//
submitFormDivide() {
this.$refs["form"].validate((valid) => {
const loading = this.$loading({
lock: true,
// text: `${this.form.userId ? "" : ""}${this.title}`,
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
payAgentUser
.assignAgents({
userId: this.form.userId,
parentId: this.form.parentId,
})
.then((response) => {
if (response.code == 200) {
this.$message.success(response.msg)
this.openAgent = false
this.getList()
}
loading.close();
})
.catch(() => {
loading.close();
});
});
},
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm(type) {
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
const loading = this.$loading({ const loading = this.$loading({
@ -644,6 +774,7 @@ export default {
spinner: "el-icon-loading", spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)", background: "rgba(0, 0, 0, 0.7)",
}); });
if (this.form.userId != null) { if (this.form.userId != null) {
payAgentUser payAgentUser
.getGoogleCaptcha(this.form) .getGoogleCaptcha(this.form)

124
src/views/pay/payAgentUser/rate.vue

@ -18,14 +18,6 @@
</div> </div>
</div> </div>
<!-- <div class="flex item m20">
<div class="label">
当前入金通道成本
</div>
<div class="cred" v-if="item.payConfig">
{{ item.payConfig.poundageRate }}%
</div>
</div> -->
<div class="flex item m20"> <div class="flex item m20">
@ -50,16 +42,13 @@
</div> </div>
<div class="flex item m20" v-for="val, i in item.parentList" :key="i"> <div class="flex item m20" v-for="val, i in item.parentList" :key="i">
<div class="label"> <div class="label">
{{ val.name }} {{ val.name }}
</div> </div>
<div class="flex" style="position:relative"> <div class="flex" style="position:relative">
<el-input v-model="input[item.payType+val.name]" placeholder="" size="mini" @input="getInput" :ref="'refName' + index"></el-input> <el-input v-model="input[item.payType + val.name]" placeholder="" size="mini" @input="getInput"
:ref="'refName' + index"></el-input>
<span style="font-size:14px;position:absolute;right: -15px;top: 50%;transform: translateY(-50%);">%</span> <span style="font-size:14px;position:absolute;right: -15px;top: 50%;transform: translateY(-50%);">%</span>
</div> </div>
</div> </div>
@ -91,8 +80,8 @@
{{ item.outConfig.poundageAmt }} {{ item.outConfig.poundageAmt }}
</div> </div>
</div> </div>
</div> </div>
<div class="flex item m20"> <div class="flex item m20">
<div class="label m20"> <div class="label m20">
出金费率类型 出金费率类型
@ -105,6 +94,43 @@
</el-radio-group> </el-radio-group>
</div> </div>
</div> </div>
<div class="flex item m20" v-for="val, i in item.parentOutList" :key="val.parentUserId">
<div class="label">
{{ val.name }}
</div>
<div class="flex">
<div class="flex" style="position:relative" v-show="radio[index] == 'rate'">
<el-input v-model="inputOutRate[item.payType + val.name]" placeholder="" size="mini" @input="getInput"
:ref="'inputOutRate' + i"></el-input>
<span style="font-size:14px;position:absolute;right: -15px;top: 50%;transform: translateY(-50%);">%</span>
</div>
<div class="flex" style="position:relative" v-show="radio[index] == 'single'">
<el-input v-model="inputOutMoney[item.payType + val.name]" placeholder="" size="mini" @input="getInput"
:ref="'inputOutMoney' + i"></el-input>
<span style="font-size:14px;position:absolute;right: -15px;top: 50%;transform: translateY(-50%);"></span>
</div>
<div v-show="radio[index] == 'combo'" class="flex">
<div class="flex" style="position:relative">
<el-input v-model="inputOutMoneyCombo[item.payType + val.name]" placeholder="" size="mini"
style="width:100px" @input="getInput" :ref="'inputOutMoneyCombo' + i"></el-input>
<span style="font-size:14px;position:absolute;right: -15px;top: 50%;transform: translateY(-50%);"></span>
</div>
<div class="" style="margin:0 30px">
+
</div>
<div class="flex" style="position:relative">
<el-input v-model="inputOutRateCombo[item.payType + val.name]" placeholder="" size="mini"
style="width:100px" @input="getInput" :ref="'inputOutRateCombo' + i"></el-input>
<span style="font-size:14px;position:absolute;right: -15px;top: 50%;transform: translateY(-50%);">%</span>
</div>
</div>
</div>
</div>
<div class="flex item m20"> <div class="flex item m20">
<div class="label"> <div class="label">
出金费率 出金费率
@ -164,6 +190,11 @@ export default {
radio: {}, radio: {},
// 2(1) // 2(1)
input: {}, input: {},
//
inputOutRate: {},
inputOutMoney: {},
inputOutMoneyCombo: {},
inputOutRateCombo: {},
// //
rateInput: {}, rateInput: {},
// //
@ -172,6 +203,7 @@ export default {
singleRate: {}, singleRate: {},
singleMoneyCombo: {}, singleMoneyCombo: {},
singleRateCombo: {}, singleRateCombo: {},
infoList: [], infoList: [],
val: '', val: '',
}; };
@ -191,8 +223,51 @@ export default {
var dataIns = []; var dataIns = [];
var dataOuts = []; var dataOuts = [];
var dataAgents = []; var dataAgents = [];
var agentOuts = [];
// //
for (var i = 0; i < this.infoList.length; i++) { for (var i = 0; i < this.infoList.length; i++) {
//
for (var j = 0; j < this.infoList[i].parentOutList.length; j++) {
if (eval('this.$refs.radio' + i)[0].value == 'combo') {
agentOuts.push({
id: this.infoList[i].parentOutList[j].parentStorePayOutId?this.infoList[i].parentOutList[j].parentStorePayOutId:0,
storeRate: this.inputOutMoneyCombo[this.infoList[i].payType + this.infoList[i].parentOutList[j].name],
storeRate1: this.NumberDiv(this.inputOutRateCombo[this.infoList[i].payType + this.infoList[i].parentOutList[j].name], 100),
type: eval('this.$refs.radio' + i)[0].value,
userId: this.infoList[i].parentOutList[j].parentUserId,
storeId: this.infoList[i].storeId < 0 ? null : this.infoList[i].storeId,
storeNo: !this.infoList[i].storeNo ? '' : this.infoList[i].storeNo,
payType: !this.infoList[i].payConfig.payType ? '' : this.infoList[i].payConfig.payType,
});
}
if (eval('this.$refs.radio' + i)[0].value == 'single') {
agentOuts.push({
id: this.infoList[i].parentOutList[j].parentStorePayOutId?this.infoList[i].parentOutList[j].parentStorePayOutId:0,
storeRate: this.inputOutMoney[this.infoList[i].payType + this.infoList[i].parentOutList[j].name],
type: eval('this.$refs.radio' + i)[0].value,
userId: this.infoList[i].parentOutList[j].parentUserId,
storeId: this.infoList[i].storeId < 0 ? null : this.infoList[i].storeId,
storeNo: !this.infoList[i].storeNo ? '' : this.infoList[i].storeNo,
payType: !this.infoList[i].payConfig.payType ? '' : this.infoList[i].payConfig.payType,
});
}
if (eval('this.$refs.radio' + i)[0].value == 'rate') {
agentOuts.push({
id: this.infoList[i].parentOutList[j].parentStorePayOutId?this.infoList[i].parentOutList[j].parentStorePayOutId:0,
storeRate: this.inputOutRate[this.infoList[i].payType + this.infoList[i].parentOutList[j].name],
type: eval('this.$refs.radio' + i)[0].value,
userId: this.infoList[i].parentOutList[j].parentUserId,
storeId: this.infoList[i].storeId < 0 ? null : this.infoList[i].storeId,
storeNo: !this.infoList[i].storeNo ? '' : this.infoList[i].storeNo,
payType: !this.infoList[i].payConfig.payType ? '' : this.infoList[i].payConfig.payType,
});
}
}
if (eval('this.$refs.radio' + i)[0].value == 'combo') { if (eval('this.$refs.radio' + i)[0].value == 'combo') {
var storeRateOut1 = this.NumberDiv(eval('this.$refs.singleRateCombo' + i)[0].value, 100) var storeRateOut1 = this.NumberDiv(eval('this.$refs.singleRateCombo' + i)[0].value, 100)
dataOuts.push({ dataOuts.push({
@ -205,6 +280,7 @@ export default {
storeNo: !this.infoList[i].storeNo ? '' : this.infoList[i].storeNo, storeNo: !this.infoList[i].storeNo ? '' : this.infoList[i].storeNo,
payType: !this.infoList[i].payConfig.payType ? '' : this.infoList[i].payConfig.payType, payType: !this.infoList[i].payConfig.payType ? '' : this.infoList[i].payConfig.payType,
}); });
} }
if (eval('this.$refs.radio' + i)[0].value == 'single') { if (eval('this.$refs.radio' + i)[0].value == 'single') {
dataOuts.push({ dataOuts.push({
@ -238,13 +314,15 @@ export default {
dataAgents.push({ dataAgents.push({
id: parent.parentStorePayInId < 1 ? null : parent.parentStorePayInId, id: parent.parentStorePayInId < 1 ? null : parent.parentStorePayInId,
userId: parent.parentUserId, userId: parent.parentUserId,
storeRate: eval('this.$refs.refName' + i)[o].value, storeRate: this.input[this.infoList[i].payType + this.infoList[i].parentList[o].name],
storeId: this.infoList[i].storeId < 0 ? null : this.infoList[i].storeId, storeId: this.infoList[i].storeId < 0 ? null : this.infoList[i].storeId,
storeNo: !this.infoList[i].storeNo ? '' : this.infoList[i].storeNo, storeNo: !this.infoList[i].storeNo ? '' : this.infoList[i].storeNo,
payType: !this.infoList[i].payConfig.payType ? '' : this.infoList[i].payConfig.payType, payType: !this.infoList[i].payConfig.payType ? '' : this.infoList[i].payConfig.payType,
}); });
} }
} }
// console.log(agentOuts)
// console.log(dataAgents)
payAgentUser payAgentUser
.updateRate({ .updateRate({
// //
@ -253,6 +331,8 @@ export default {
spos: JSON.stringify(dataOuts), spos: JSON.stringify(dataOuts),
// //
agents: JSON.stringify(dataAgents), agents: JSON.stringify(dataAgents),
//
agentOuts: JSON.stringify(agentOuts)
}) })
.then((response) => { .then((response) => {
this.msgSuccess("编辑成功"); this.msgSuccess("编辑成功");
@ -294,10 +374,20 @@ export default {
} }
if (this.infoList[i].parentList.length > 0) { if (this.infoList[i].parentList.length > 0) {
for (var j = 0; j < this.infoList[i].parentList.length; j++) { for (var j = 0; j < this.infoList[i].parentList.length; j++) {
this.input[this.infoList[i].payType+this.infoList[i].parentList[j].name] = this.NumberMul(this.infoList[i].parentList[j].storeRateIn, 100) this.input[this.infoList[i].payType + this.infoList[i].parentList[j].name] = this.NumberMul(this.infoList[i].parentList[j].storeRateIn, 100)
} }
// //
} else if (!this.infoList[i].parentList.length) { }
if (this.infoList[i].parentOutList.length > 0) {
for (var j = 0; j < this.infoList[i].parentOutList.length; j++) {
// this.infoList[i].payType + this.infoList[i].parentOutList[j].name
this.inputOutRate[this.infoList[i].payType + this.infoList[i].parentOutList[j].name] = this.NumberMul(this.infoList[i].parentOutList[j].storeRateOut, 100)
this.inputOutMoney[this.infoList[i].payType + this.infoList[i].parentOutList[j].name] = this.infoList[i].parentOutList[j].storeRateOut
this.inputOutMoneyCombo[this.infoList[i].payType + this.infoList[i].parentOutList[j].name] = this.infoList[i].parentOutList[j].storeRateOut
this.inputOutRateCombo[this.infoList[i].payType + this.infoList[i].parentOutList[j].name] = this.NumberMul(this.infoList[i].parentOutList[j].storeRateOut1, 100)
}
}
else if (!this.infoList[i].parentList.length) {
// this.infoList[i].parentList[0] = { // this.infoList[i].parentList[0] = {
// parentStorePayInId: -1 // parentStorePayInId: -1
// } // }

31
src/views/pay/payBank/payBankManual.vue

@ -6,9 +6,7 @@
<div class="text">内充银行</div> <div class="text">内充银行</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -31,8 +29,20 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd"
v-hasPermi="['bank:bankManual:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
@ -55,7 +65,8 @@
<el-table-column label="状态" align="center" prop="dataStatus" width="140px"> <el-table-column label="状态" align="center" prop="dataStatus" width="140px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open" <el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open"
inactive-value="close" @change="switchStatusChange(scope.row)"> inactive-value="close" @change="switchStatusChange(scope.row)"
v-hasPermi="['bank:bankManual:edit']">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
@ -63,8 +74,8 @@
<el-table-column label="更新时间" align="center" prop="updateTime" min-width="150" /> <el-table-column label="更新时间" align="center" prop="updateTime" min-width="150" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" <el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
@click="handleUpdate(scope.row)">编辑</el-button> v-hasPermi="['bank:bankManual:edit']">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -195,10 +206,10 @@ export default {
this.init() this.init()
}, },
methods: { methods: {
change(e){ change(e) {
for(var i=0;i<this.sortLevType.length;i++){ for (var i = 0; i < this.sortLevType.length; i++) {
if(this.sortLevType[i].bankName==e){ if (this.sortLevType[i].bankName == e) {
this.form.bankCode=this.sortLevType[i].bankSegment this.form.bankCode = this.sortLevType[i].bankSegment
} }
} }
}, },

45
src/views/pay/payBank/payBankPayment.vue

@ -6,9 +6,7 @@
<div class="text">代付银行</div> <div class="text">代付银行</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -20,7 +18,8 @@
</div> </div>
<el-upload class="upload-demo" action="#" v-model="fileList" accept=".xls, .xlsx" :show-file-list="false" <el-upload class="upload-demo" action="#" v-model="fileList" accept=".xls, .xlsx" :show-file-list="false"
:multiple="false" :on-change="onChange" :auto-upload="false"> :multiple="false" :on-change="onChange" :auto-upload="false">
<el-button slot="trigger" size="medium" type="primary" :loading="loadingBtn">批量导入</el-button> <span style="margin-left:5px">{{fileName}}</span> <el-button slot="trigger" size="medium" type="primary" :loading="loadingBtn">批量导入</el-button> <span
style="margin-left:5px">{{ fileName }}</span>
</el-upload> </el-upload>
</div> </div>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px" <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px"
@ -50,8 +49,20 @@
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd"
v-hasPermi="['bank:bankPayment:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
@ -85,7 +96,8 @@
<el-table-column label="状态" align="center" prop="dataStatus" width="140px"> <el-table-column label="状态" align="center" prop="dataStatus" width="140px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.status" active-text="启用" inactive-text="停用" active-value="open" <el-switch v-model="scope.row.status" active-text="启用" inactive-text="停用" active-value="open"
inactive-value="close" @change="switchStatusChange(scope.row)"> inactive-value="close" @change="switchStatusChange(scope.row)"
v-hasPermi="['bank:bankPayment:edit']">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
@ -96,8 +108,8 @@
<el-table-column label="更新时间" align="center" prop="updateTime" min-width="150" /> <el-table-column label="更新时间" align="center" prop="updateTime" min-width="150" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" <el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
@click="handleUpdate(scope.row)">编辑</el-button> v-hasPermi="['bank:bankPayment:edit']">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -135,10 +147,8 @@
</el-form-item> </el-form-item>
<el-form-item label="对公对私标识" prop="flagCard"> <el-form-item label="对公对私标识" prop="flagCard">
<el-select v-model="form.flagCard" placeholder="请选择对公对私标识" clearable size="medium"> <el-select v-model="form.flagCard" placeholder="请选择对公对私标识" clearable size="medium">
<el-option v-for="(item, i) in statusNoCon" :key="i" :label="item.label" <el-option v-for="(item, i) in statusNoCon" :key="i" :label="item.label" :value="item.value"
:value="item.value" :disabled="item.disabled"></el-option>
:disabled="item.disabled"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="单笔限额" prop="singleLimit"> <el-form-item label="单笔限额" prop="singleLimit">
@ -164,8 +174,8 @@
</el-form-item> </el-form-item>
<el-form-item label="银行编号" prop="bankSegment"> <el-form-item label="银行编号" prop="bankSegment">
<el-select v-model="form.bankSegment" placeholder="请选择银行编号" clearable size="medium"> <el-select v-model="form.bankSegment" placeholder="请选择银行编号" clearable size="medium">
<el-option v-for="(item, i) in sortLevType" :key="i" <el-option v-for="(item, i) in sortLevType" :key="i" :label="item.bankSegment"
:label="item.bankSegment" :value="item.bankSegment"></el-option> :value="item.bankSegment"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -190,7 +200,7 @@ export default {
return { return {
url: '', url: '',
fileName:'', fileName: '',
loadingBtn: false, loadingBtn: false,
bankTypeCon: [ bankTypeCon: [
{ {
@ -297,7 +307,6 @@ export default {
], ],
}, },
payTypeCon: [], payTypeCon: [],
payChannelCon: [],
// //
form: { form: {
@ -314,7 +323,7 @@ export default {
onChange(file, fileList) { onChange(file, fileList) {
if (fileList.length > 0) { if (fileList.length > 0) {
this.fileList = [fileList[fileList.length - 1]]// this.fileList = [fileList[fileList.length - 1]]//
this.fileName=this.fileList[0].name this.fileName = this.fileList[0].name
this.loadingBtn = true; this.loadingBtn = true;
let formData = new FormData(); let formData = new FormData();
formData.append("file", this.fileList[0].raw); formData.append("file", this.fileList[0].raw);
@ -359,7 +368,7 @@ export default {
this.infoList = response.rows; this.infoList = response.rows;
this.total = Number(response.total); this.total = Number(response.total);
this.loading = false; this.loading = false;
this.form.flagCard='' this.form.flagCard = ''
}); });
// //
payBankPayment payBankPayment
@ -396,7 +405,7 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "新增代付银行"; this.title = "新增代付银行";
this.form.flagCard='private_account' this.form.flagCard = 'private_account'
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {

23
src/views/pay/payBank/payBankPaymentFormList.vue

@ -6,9 +6,7 @@
<div class="text">代付银行配置</div> <div class="text">代付银行配置</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -39,8 +37,20 @@
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd"
v-hasPermi="['bank:bankPaymentForm:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
@ -50,7 +60,8 @@
<el-table-column label="状态" align="center" prop="status"> <el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open" <el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open"
inactive-value="close" @change="switchStatusChange(scope.row)"> inactive-value="close" @change="switchStatusChange(scope.row)"
v-hasPermi="['bank:bankPaymentForm:edit']">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
@ -58,8 +69,8 @@
<el-table-column label="更新时间" align="center" prop="updateTime" min-width="100" /> <el-table-column label="更新时间" align="center" prop="updateTime" min-width="100" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" <el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
@click="handleUpdate(scope.row)">编辑</el-button> v-hasPermi="['bank:bankPaymentForm:edit']">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

16
src/views/pay/payOrder/manyNeiChong.vue

@ -42,7 +42,8 @@
<div class="bottom" style="width:25%"> <div class="bottom" style="width:25%">
<el-form ref="form" :model="form" :rules="rules" label-width="130px"> <el-form ref="form" :model="form" :rules="rules" label-width="130px">
<el-form-item label="内充渠道" prop="channelContent"> <el-form-item label="内充渠道" prop="channelContent">
<span style="color:red" v-if="form.channelContent">{{ form.channelContent }}</span> <span style="color:red" v-if="form.channelContent" v-hasPermi="['record:manual_query_channel']">{{
form.channelContent }}</span>
</el-form-item> </el-form-item>
<el-form-item label="上传批量内充文件" prop="channelContent"> <el-form-item label="上传批量内充文件" prop="channelContent">
@ -56,14 +57,15 @@
<el-form-item label="收款账号" prop="acctName"> <el-form-item label="收款账号" prop="acctName">
<el-select v-model="form.acctName" placeholder="请选择收款账号" size="medium" v-if="bankAccount.length" <el-select v-model="form.acctName" placeholder="请选择收款账号" size="medium" v-if="bankAccount.length"
@change="getValue"> @change="getValue" v-hasPermi="['record:manual_query_bank']">
<el-option v-for="dict in bankAccount" :key="dict.acctName" :label="dict.acctName" <el-option v-for="dict in bankAccount" :key="dict.acctName" :label="dict.acctName"
:value="dict.acctName" /> :value="dict.acctName" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<div class="footer" style="margin-left:100px"> <div class="footer" style="margin-left:100px">
<el-button type="primary" icon="" size="small" @click="submitForm">提交</el-button> <el-button type="primary" icon="" size="small" @click="submitForm"
v-hasPermi="['record:manual_batch_save']">提交</el-button>
<el-button plain size="small" @click="back">取消</el-button> <el-button plain size="small" @click="back">取消</el-button>
</div> </div>
</el-form> </el-form>
@ -290,10 +292,11 @@ export default {
}; };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
::v-deep .el-table__header-wrapper .el-checkbox{ ::v-deep .el-table__header-wrapper .el-checkbox {
// //
display:none display: none
} }
.center { .center {
padding: 8px 15px; padding: 8px 15px;
border-radius: 15px; border-radius: 15px;
@ -320,5 +323,4 @@ export default {
::v-deep .el-dialog:not(.is-fullscreen) { ::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 35vh !important; margin-top: 35vh !important;
} }</style>
</style>

236
src/views/pay/payOrder/payBalanceRecord.vue

@ -0,0 +1,236 @@
<template>
<div class="app-container">
<div class="flexBet searchTop">
<div class="title flex m20">
<div class="bar"></div>
<div class="text">后台修改余额记录</div>
</div>
<el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px"
class="flex form" style="padding:0 20px">
<el-form-item label="用户名称" prop="userName">
<el-input size="medium" v-model="queryParams.userName" placeholder="请输入用户名称"
@keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" />
</el-form-item>
<el-form-item label="账号编号" prop="accountNo">
<el-input size="medium" v-model="queryParams.accountNo" placeholder="请输入账号编号"
@keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" />
</el-form-item>
<el-form-item label="业务编号" prop="witNo">
<el-input size="medium" v-model="queryParams.witNo" placeholder="请输入业务编号"
@keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" />
</el-form-item>
<el-form-item label="渠道类型" prop="channelType">
<el-select v-model="queryParams.channelType" placeholder="请选择渠道类型" clearable size="medium">
<el-option v-for="(item, i) in payChannelCon" :key="i" :label="item.channelName"
:value="item.payChannel"></el-option>
</el-select>
</el-form-item>
<el-form-item label="支付类型" prop="payType">
<el-select v-model="queryParams.payType" placeholder="请选择支付类型" clearable size="medium">
<el-option v-for="(item, i) in sortLevType" :key="i" :label="item.typeName" :value="item.payType"></el-option>
</el-select>
</el-form-item>
<el-form-item label="业务类型" prop="isIncome">
<el-select v-model="queryParams.isIncome" placeholder="请选择业务类型" clearable size="medium">
<el-option v-for="(item, i) in userLevType" :key="i" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="创建时间">
<el-date-picker v-model="dateRange" size="small" style="width: 240px" value-format="yyyy-MM-dd"
type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
:unlink-panels="true"></el-date-picker>
</el-form-item> -->
<el-form-item>
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table stripe v-loading="loading" :data="infoList">
<el-table-column label="账号编号" align="center" prop="accountNo" />
<el-table-column label="渠道类型" align="center" prop="channelType" />
<el-table-column label="支付类型" align="center" prop="payType" />
<el-table-column label="用户名称" align="center" prop="userName" />
<el-table-column label="业务编号" align="center" prop="witNo" />
<el-table-column label="变动前金额" align="center" prop="beforeAmt" />
<el-table-column label="变动金额" align="center" prop="tranAmt" />
<el-table-column label="变动后金额" align="center" prop="afterAmt" />
<el-table-column label="业务类型" align="center" prop="userType" min-width="120">
<template slot-scope="scope">
<el-tag :type="
scope.row.isIncome == 'yes'
? 'success' : 'primary'
">
{{ scope.row.isIncome == 'yes' ? '增加' : '减少' }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remarks" />
<el-table-column label="修改时间" align="center" prop="updateTime" min-width="180" />
<el-table-column label="创建时间" align="center" prop="createTime" min-width="180" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</div>
</div>
</template>
<script>
import { common_api, pkUpdateBalanceRecord } from "@/api/form";
export default {
name: "PkAdWeiList",
dicts: ['pay_status'],
data() {
return {
payChannelCon: [],
sortLevType: [],
userLevType: [
{
label: '增加',
value: 'yes',
},
{
label: '减少',
value: 'no',
},
],
//
ids: [],
//
single: true,
//
multiple: true,
dateRange: [],
// 广
imageUrl: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// 广
infoList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 20,
isIncome: null,
witNo: null,
userName:null,
accountNo:null,
channelType:null,
payType:null
},
//
form: {},
//
rules: {
positionName: [
{ required: true, message: "请输入广告名称", trigger: "blur" },
]
}
};
},
created() {
this.getList();
this.init();
},
methods: {
init() {
common_api.payChannelAll().then((response) => {
this.payChannelCon = response.data
});
common_api.payTypeAll().then((response) => {
this.sortLevType = response.data
});
},
getList() {
this.loading = true;
pkUpdateBalanceRecord
.listInfo(this.addSESDateRange(this.queryParams, this.dateRange))
.then((response) => {
this.infoList = response.data.rows;
this.total = Number(response.data.total);
this.loading = false;
}).catch(() => {
this.loading = false;
})
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加广告位信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
pkUserInfo.getInfo(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改广告位信息";
});
},
},
};
</script>
<style scoped>
.font {
padding: 10px;
border-radius: 10px;
background: #808080;
font-size: 12px;
margin-left: 20px;
color: #fff;
margin-bottom: 10px;
width: 50%;
}
</style>

33
src/views/pay/payOrder/payDaiFuWater.vue

@ -6,12 +6,7 @@
<div class="text">代付流水</div> <div class="text">代付流水</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleSay">审核</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -85,10 +80,30 @@
value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期"
end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker> end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport"
v-hasPermi="['record:platform_payment_export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleSay"
v-hasPermi="['record:platform_payment_audit_save']">审核</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange"> <el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" :selectable="selectable" /> <el-table-column type="selection" width="55" align="center" :selectable="selectable" />
@ -162,8 +177,8 @@
min-width="80"> min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.orderStatus == 'processing' || scope.row.orderStatus == 'processreview'" <el-button v-if="scope.row.orderStatus == 'processing' || scope.row.orderStatus == 'processreview'"
size="small" type="text" style="color: #006EFF;" size="small" type="text" style="color: #006EFF;" @click="handleOrder(scope.row)"
@click="handleOrder(scope.row)">手工处理</el-button> v-hasPermi="['record:platform_payment_handle']">手工处理</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -215,7 +230,7 @@ import { common_api, platform_payment_list } from "@/api/form";
export default { export default {
name: "PkAdWeiList", name: "PkAdWeiList",
dicts: ['pay_status', 'source_type', 'yes_no','payment_status'], dicts: ['pay_status', 'source_type', 'yes_no', 'payment_status'],
data() { data() {
return { return {
statusOptions: [ statusOptions: [

39
src/views/pay/payOrder/payLineDownTranferWater.vue

@ -6,10 +6,6 @@
<div class="text">线下转卡流水</div> <div class="text">线下转卡流水</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleOrders"
:disabled="single">批量处理</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -65,8 +61,23 @@
end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker> end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleOrders"
:disabled="single" v-hasPermi="['record:card_order_batch_handle']">批量处理</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleSay" :disabled="single"
v-hasPermi="['record:reissueNotice']">补发通知</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange"> <el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
@ -96,7 +107,8 @@
"> ">
{{ scope.row.storeSettle == 'yes' {{ scope.row.storeSettle == 'yes'
? '已结算' ? '已结算'
: scope.row.storeSettle == 'no' || !scope.row.storeSettle ? '未结算' : scope.row.storeSettle == 'error' ? '结算失败' : scope.row.storeSettle == 'no' || !scope.row.storeSettle ? '未结算' : scope.row.storeSettle ==
'error' ? '结算失败'
: '部分结算' }} : '部分结算' }}
</el-tag> </el-tag>
</template> </template>
@ -150,7 +162,8 @@
min-width="80"> min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.orderStatus != 'pay_success'" size="small" type="text" <el-button v-if="scope.row.orderStatus != 'pay_success'" size="small" type="text"
style="color: #006EFF;" @click="handleOrder(scope.row)">手工处理</el-button> style="color: #006EFF;" @click="handleOrder(scope.row)"
v-hasPermi="['record:card_order_handle']">手工处理</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -281,8 +294,6 @@ export default {
loading: true, loading: true,
// //
exportLoading: false, exportLoading: false,
//
ids: [],
// //
single: true, single: true,
// //
@ -331,6 +342,18 @@ export default {
this.init(); this.init();
}, },
methods: { methods: {
//
handleSay() {
this.loading = true;
card_order_list.reissueNotice(this.ids[0]).then((response) => {
if (response.code == 200) {
this.$message.success('补发成功')
this.loading = false;
}
}).catch(() => {
this.loading = false;
});
},
/** 手工处理 */ /** 手工处理 */
handleOrder(row) { handleOrder(row) {
this.reset() this.reset()

2
src/views/pay/payOrder/payMoneyCalcu.vue

@ -54,7 +54,7 @@
min-width="100"> min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" style="color: #006EFF;" <el-button size="small" type="text" style="color: #006EFF;"
@click="handleView(scope.row)">商户渠道资金明细</el-button> @click="handleView(scope.row)" v-hasPermi="['order:rechargeRecord:capitalList']">商户渠道资金明细</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

15
src/views/pay/payOrder/payMoneyTransfer.vue

@ -6,9 +6,7 @@
<div class="text">资金划转流水</div> <div class="text">资金划转流水</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -61,8 +59,19 @@
end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker> end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport">导出</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">

14
src/views/pay/payOrder/payMoneyWater.vue

@ -72,10 +72,16 @@
</el-table-column> </el-table-column>
<el-table-column :label="'业务类型'" align="center" prop="storeNo" min-width="150"> <el-table-column :label="'业务类型'" align="center" prop="storeNo" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.witType == 'recharge' ? '充值' : scope.row.witType == 'manual' ? '手工内充' : scope.row.witType {{ scope.row.witType == 'recharge' ? '充值' :
== 'withdrawals' ? '提现' scope.row.witType == 'manual' ? '内充' :
: scope.row.witType == 'withdrawals_reject' ? '提现返还' : scope.row.witType == scope.row.witType == 'withdrawals' ? '提现' :
'frozen' ? '资金冻结' : scope.row.witType == 'transfer' ? '资金划转' : '资金解冻' scope.row.witType == 'withdrawals_reject' ? '提现返还' :
scope.row.witType == 'frozen' ? '冻结' :
scope.row.witType == 'transfer' ? '资金划转' :
scope.row.witType == 'unfrozen' ? '解冻' :
scope.row.witType == 'withdrawals_frozen' ? '冻结出款' :
scope.row.witType == 'agent_divide' ? '代理分成'
:'后台修改'
}} }}
</template> </template>
</el-table-column> </el-table-column>

26
src/views/pay/payOrder/payNeiChongWater.vue

@ -6,13 +6,7 @@
<div class="text">内充流水</div> <div class="text">内充流水</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleSay"
:disabled="single">审核</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -80,10 +74,28 @@
value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期"
end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker> end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport"
v-hasPermi="['record:manual_recharge_list_export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleSay" :disabled="single"
v-hasPermi="['record:manual_recharge_audit_save']">审核</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange"> <el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" :selectable="selectable" /> <el-table-column type="selection" width="55" align="center" :selectable="selectable" />

315
src/views/pay/payOrder/payOrderWater.vue

@ -6,13 +6,6 @@
<div class="text">订单流水</div> <div class="text">订单流水</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleSay"
:disabled="single">补发通知</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -39,8 +32,8 @@
<el-input size="medium" v-model="queryParams.mchName" placeholder="请输入支付商户名" <el-input size="medium" v-model="queryParams.mchName" placeholder="请输入支付商户名"
@keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" /> @keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" />
</el-form-item> --> </el-form-item> -->
<el-form-item label="商户名称" prop="name"> <el-form-item label="商户名称" prop="storeName">
<el-input size="medium" v-model="queryParams.name" placeholder="请输入商户名称" <el-input size="medium" v-model="queryParams.storeName" placeholder="请输入商户名称"
@keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" /> @keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="商户编号" prop="storeNo"> <!-- <el-form-item label="商户编号" prop="storeNo">
@ -79,11 +72,25 @@
end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker> end-placeholder="结束日期" :picker-options="pickerOptions" :unlink-panels="true"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleExport"
v-hasPermi="['order:rechargeRecord:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleSay" :disabled="single"
v-hasPermi="['order:rechargeRecord:reissueNotice']">补发通知</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange"> <el-table stripe v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
@ -110,7 +117,8 @@
scope.row.storeSettle == 'yes' ? 'success' : scope.row.storeSettle == 'no' || !scope.row.storeSettle ? 'danger' : scope.row.storeSettle == 'yes' ? 'success' : scope.row.storeSettle == 'no' || !scope.row.storeSettle ? 'danger' :
scope.row.storeSettle == 'error' ? 'warning' : 'primary' scope.row.storeSettle == 'error' ? 'warning' : 'primary'
"> ">
{{ scope.row.storeSettle == 'yes' ? '已结算' : scope.row.storeSettle == 'no' || !scope.row.storeSettle ? '未结算' : {{ scope.row.storeSettle == 'yes' ? '已结算' : scope.row.storeSettle == 'no' ||
!scope.row.storeSettle ? '未结算' :
scope.row.storeSettle == 'error' ? '结算失败' : '部分结算' }} scope.row.storeSettle == 'error' ? '结算失败' : '部分结算' }}
</el-tag> </el-tag>
</template> </template>
@ -134,12 +142,12 @@
{{ scope.row.mchId }} {{ scope.row.mchId }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="'商户姓名\n商户手机'" align="center" prop="storeNo" min-width="150"> <!-- <el-table-column :label="'商户姓名\n商户手机'" align="center" prop="storeNo" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.name }}<br /> {{ scope.row.name }}<br />
{{ scope.row.mobile }} {{ scope.row.mobile }}
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column :label="'交易金额\n实付金额\n到账金额'" align="center" prop="storeNo" min-width="150"> <el-table-column :label="'交易金额\n实付金额\n到账金额'" align="center" prop="storeNo" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.tranAmt }}<br /> {{ scope.row.tranAmt }}<br />
@ -149,8 +157,8 @@
</el-table-column> </el-table-column>
<el-table-column :label="'手续费率(%)\n通道费率(%)'" align="center" prop="storeNo" min-width="150"> <el-table-column :label="'手续费率(%)\n通道费率(%)'" align="center" prop="storeNo" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.rate }}<br /> {{ NumberMul(scope.row.rate, 100) }}%<br />
{{ scope.row.channelRate }} {{ NumberMul(scope.row.channelRate, 100) }}%
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="'渠道类型\n支付类型'" align="center" prop="storeNo" min-width="150"> <el-table-column :label="'渠道类型\n支付类型'" align="center" prop="storeNo" min-width="150">
@ -159,14 +167,17 @@
{{ scope.row.cardType == 0 ? '借记卡' : '贷记卡' }} {{ scope.row.cardType == 0 ? '借记卡' : '贷记卡' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="商户类型" align="center" prop="divideType" /> <!-- <el-table-column label="商户类型" align="center" prop="divideType" /> -->
<el-table-column label="订单描述" align="center" prop="orderMsg" /> <!-- <el-table-column label="订单描述" align="center" prop="orderMsg" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"
min-width="80"> min-width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" style="color: #006EFF;"
@click="handleViewMy(scope.row)">详情</el-button>
<el-button v-if="scope.row.orderStatus == 'pay_unpaid' || scope.row.orderStatus == 'pay_processing'" <el-button v-if="scope.row.orderStatus == 'pay_unpaid' || scope.row.orderStatus == 'pay_processing'"
size="small" type="text" style="color: #006EFF;" size="small" type="text" style="color: #006EFF;" @click="handleOrder(scope.row)"
@click="handleOrder(scope.row)">手工处理</el-button> v-hasPermi="['order:rechargeRecord:payHandle']">手工处理</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -188,6 +199,214 @@
<el-button plain size="small" @click="cancel">取消</el-button> <el-button plain size="small" @click="cancel">取消</el-button>
</el-dialog> </el-dialog>
<!-- 详情 -->
<el-dialog v-dialogDrag :close-on-click-modal="false" :title="detailTitle" :visible.sync="isShowDetailMy"
width="73%" append-to-body>
<el-form label-width="142px" :label-suffix="':'">
<div class="card-detail flex">
<div>
<el-form-item label="平台订单号">
{{ detailInfoList.orderNo }}
</el-form-item>
<el-form-item label='交易状态'>
<el-tag v-if="detailInfoList.orderStatus" :type="
detailInfoList.orderStatus == 'pay_unpaid' ? 'warning' : detailInfoList.orderStatus == 'pay_success' ? 'success' :
detailInfoList.orderStatus == 'pay_failure' ? 'danger' : detailInfoList.orderStatus == 'pay_processing' ? 'warning' : 'primary'
">
{{ detailInfoList.orderStatus == 'pay_unpaid' ? '未支付' : detailInfoList.orderStatus ==
'pay_success' ?
'支付成功' :
detailInfoList.orderStatus == 'pay_failure' ? '支付失败' : detailInfoList.orderStatus ==
'pay_processing' ? '支付处理中' : '已关闭' }}
</el-tag>
</el-form-item>
<el-form-item v-if="detailInfoList.sourceType" :label="'订单来源'">
{{ detailInfoList.sourceType == 's_manual' ? '手工提单' : 'API下发' }}
</el-form-item>
<el-form-item label="商户id">
{{ detailInfoList.storeId }}
</el-form-item>
<el-form-item label="商户订单号">
{{ detailInfoList.outTradeNo }}
</el-form-item>
<el-form-item label="成功交易金额">
{{ detailInfoList.payAmt }}
</el-form-item>
<el-form-item label="内充渠道">
{{ detailInfoList.payChannelName }}
</el-form-item>
<el-form-item label="支付时间">
{{ detailInfoList.payTime }}
</el-form-item>
<el-form-item label="支付类型">
{{ detailInfoList.payTypeName }}
</el-form-item>
<!-- <el-form-item label="备注">
{{ detailInfoList.attach }}
</el-form-item> -->
<el-form-item label="订单描述">
{{ detailInfoList.orderMsg }}
</el-form-item>
<!-- <el-form-item label="keyId">
{{ detailInfoList.keyId }}
</el-form-item> -->
</div>
<div>
<el-form-item label="通道手续费金额">
{{ detailInfoList.poundageAmt }}
</el-form-item>
<el-form-item label="通道手续费率">
{{ NumberMul(detailInfoList.poundageRate, 100) }}%
</el-form-item>
<el-form-item label="商户名称">
{{ detailInfoList.storeName }}
</el-form-item>
<el-form-item label="商户编号">
{{ detailInfoList.storeNo }}
</el-form-item>
<el-form-item :label="'结算状态'">
<el-tag v-if="detailInfoList.storeSettle" :type="
detailInfoList.storeSettle == 'yes' ? 'success' : detailInfoList.storeSettle == 'no' || !detailInfoList.storeSettle ? 'danger' :
detailInfoList.storeSettle == 'error' ? 'warning' : 'primary'
">
{{ detailInfoList.storeSettle == 'yes' ? '已结算' : detailInfoList.storeSettle == 'no' ||
!detailInfoList.storeSettle ? '未结算' :
detailInfoList.storeSettle == 'error' ? '结算失败' : '部分结算' }}
</el-tag>
</el-form-item>
<el-form-item label="结算时间">
{{ detailInfoList.storeSettleTime }}
</el-form-item>
<el-form-item label="商户类型">
<el-tag v-if="detailInfoList.storeType" :type="
detailInfoList.storeType == 'my_store'
? 'success'
: detailInfoList.storeType == 'directly_under' ? 'primary' : 'danger'
">
{{ detailInfoList.storeType == 'my_store'
? '代理自己商户'
: detailInfoList.storeType == 'directly_under' ? '平台直属商户' : '代理下级商户' }}
</el-tag>
</el-form-item>
<el-form-item label="变动金额">
{{ detailInfoList.tranAmt }}
</el-form-item>
<el-form-item label="渠道订单号">
{{ detailInfoList.transactionId }}
</el-form-item>
<el-form-item label="用户id">
{{ detailInfoList.userId }}
</el-form-item>
<!-- <el-form-item label="version">
{{ detailInfoList.version }}
</el-form-item> -->
</div>
<div>
<el-form-item label="修改时间">
{{ detailInfoList.updateTime }}
</el-form-item>
<el-form-item label="创建时间">
{{ detailInfoList.createTime }}
</el-form-item>
<el-form-item label="商品名称">
{{ detailInfoList.productName }}
</el-form-item>
<el-form-item label="手续费">
{{ detailInfoList.rateAmt }}
</el-form-item>
<el-form-item label="充值金额">
{{ detailInfoList.realAmt }}
</el-form-item>
<el-form-item label="签名方式">
{{ detailInfoList.signType }}
</el-form-item>
<el-form-item label="银行编号">
{{ detailInfoList.bankCode }}
</el-form-item>
<el-form-item label="银行ID">
{{ detailInfoList.bankId }}
</el-form-item>
<el-form-item label="银行卡类型">
<el-tag v-if="detailInfoList.cardType" :type="
detailInfoList.cardType == 'debit_card' ? 'success' : 'primary'
">
{{ detailInfoList.cardType == 'debit_card' ? '借记卡' : '贷记卡' }}
</el-tag>
</el-form-item>
<el-form-item label="渠道类型">
{{ detailInfoList.channelType }}
</el-form-item>
<!-- <el-form-item label="charset">
{{ detailInfoList.charset }}
</el-form-item> -->
</div>
<div>
<el-form-item label="商品描述">
{{ detailInfoList.productDesc }}
</el-form-item>
<el-form-item label="费率">
{{ NumberMul(detailInfoList.rate, 100) }}%
</el-form-item>
<el-form-item label="商户返回地址">
{{ detailInfoList.backUrl }}
</el-form-item>
<el-form-item label="商户号">
{{ detailInfoList.mchId }}
</el-form-item>
<el-form-item label="支付商户名">
{{ detailInfoList.mchName }}
</el-form-item>
<el-form-item label="请求类型">
{{ detailInfoList.mediaType }}
</el-form-item>
<el-form-item label="手机号码">
{{ detailInfoList.mobile }}
</el-form-item>
<el-form-item label="用户名">
{{ detailInfoList.name }}
</el-form-item>
<el-form-item label="二维码图片">
<el-image style="width: 100px; height: 100px" v-if="detailInfoList.qrcodeImg"
:src="detailInfoList.qrcodeImg" @click="previewImage(detailInfoList.qrcodeImg)"
:preview-src-list="srcList">
<div slot="placeholder">
<div style="margin-top: 40px">
加载中<i class="el-icon-loading" />
</div>
</div>
</el-image>
<el-image
v-if="!detailInfoList.qrcodeImg" class="image-slot">
<div slot="error">
</div>
</el-image>
</el-form-item>
<!-- <el-form-item label="二维码地址">
{{ detailInfoList.qrcodeUrl }}
</el-form-item> -->
<el-form-item label="回调地址">
{{ detailInfoList.notifyUrl }}
</el-form-item>
</div>
</div>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
@ -199,6 +418,12 @@ export default {
dicts: ['pay_status'], dicts: ['pay_status'],
data() { data() {
return { return {
//
detailInfoList: {
rate: '',
poundageRate: '',
agentRate: '',
},
pickerOptions: { pickerOptions: {
shortcuts: [ shortcuts: [
{ {
@ -302,8 +527,6 @@ export default {
value: 'part', value: 'part',
}, },
], ],
//
ids: [],
// //
single: true, single: true,
// //
@ -344,7 +567,7 @@ export default {
mchId: null, mchId: null,
mchName: null, mchName: null,
orderStatus: null, orderStatus: null,
name: null, storeName: null,
settleStatus: null, settleStatus: null,
payType: null, payType: null,
channelType: null, channelType: null,
@ -354,12 +577,14 @@ export default {
form: {}, form: {},
// //
rules: { rules: {
positionName: [
{ required: true, message: "请输入广告名称", trigger: "blur" },
]
}, },
detailData: {}, detailData: {},
isShowDetail: false, isShowDetail: false,
//
isShowDetailMy: false,
detailTitle: '',
//
srcList: ['https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg'],
}; };
}, },
created() { created() {
@ -367,6 +592,17 @@ export default {
this.init(); this.init();
}, },
methods: { methods: {
//
previewImage(abUrl) {
this.srcList[0] = abUrl;
},
//
handleViewMy(row) {
this.reset();
this.detailInfoList = row;
this.isShowDetailMy = true;
this.detailTitle = "订单流水详情";
},
/** 手工处理 */ /** 手工处理 */
handleOrder(row) { handleOrder(row) {
this.reset() this.reset()
@ -412,7 +648,7 @@ export default {
}, },
// //
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.storeId) this.ids = selection.map(item => item.keyId)
this.single = selection.length != 1 this.single = selection.length != 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
@ -429,6 +665,7 @@ export default {
// //
cancel() { cancel() {
this.open = false; this.open = false;
this.isShowDetail=false
this.reset(); this.reset();
}, },
// //
@ -479,32 +716,12 @@ export default {
} }
}); });
}, },
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm(
'是否确认删除广告位名称为"' + row.positionName + '"的数据项?',
"警告",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(function () {
return pkUserInfo.delInfo(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => { });
}
}, },
}; };
</script> </script>
<style scoped> <style scoped>
::v-deep .el-dialog:not(.is-fullscreen) { ::v-deep .el-dialog:not(.is-fullscreen) {
margin-top: 33vh !important; margin-top: 10vh !important;
} }
</style> </style>

172
src/views/pay/payOrder/pkCouponScopeRangeStoreList.vue

@ -2,7 +2,7 @@
<div class="app-container"> <div class="app-container">
<div class="bg"> <div class="bg">
<div class="rig flex m20"> <div class="rig flex m20" v-hasPermi="['order:rechargeRecord:amountCount']">
<div> <div>
在途总金额()<span class="#197CFE">{{ sum.onRouteAmount }}</span> 在途总金额()<span class="#197CFE">{{ sum.onRouteAmount }}</span>
</div> </div>
@ -50,13 +50,15 @@
<el-table-column label="账户冻结金额(元)" align="center" prop="frozenCapital" /> <el-table-column label="账户冻结金额(元)" align="center" prop="frozenCapital" />
<el-table-column label="账户在途金额(元)" align="center" prop="transitCapital" /> <el-table-column label="账户在途金额(元)" align="center" prop="transitCapital" />
<el-table-column label="账户可提余额(元)" align="center" prop="useCapital" /> <el-table-column label="账户可提余额(元)" align="center" prop="useCapital" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="100"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" style="color: #006EFF;" <el-button size="small" type="text" style="color: #006EFF;" @click="updateBalance(scope.row,'formUpdate')">修改余额</el-button>
@click="handlePrivateTransfer(scope.row)">私户转入</el-button> <el-button size="small" type="text" style="color: #006EFF;" @click="handlePrivateTransfer(scope.row,'formDai')"
<el-button size="small" type="text" style="color: #006EFF;" @click="handleFrozen(scope.row)">资金冻结</el-button> v-hasPermi="['order:rechargeRecord:storePaymentSave']">私户转入</el-button>
<el-button size="small" type="text" style="color: #006EFF;" <el-button size="small" type="text" style="color: #006EFF;" @click="handleFrozen(scope.row,'formFro')"
@click="handleTransfer(scope.row)">资金划转</el-button> v-hasPermi="['order:rechargeRecord:frozenCapitalSave']">资金冻结</el-button>
<el-button size="small" type="text" style="color: #006EFF;" @click="handleTransfer(scope.row,'formTrans')"
v-hasPermi="['order:rechargeRecord:transferCapitalSave']">资金划转</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -68,7 +70,7 @@
<!-- 资金冻结 --> <!-- 资金冻结 -->
<el-dialog v-dialogDrag :title="title" :visible.sync="open" width="600px" append-to-body :close-on-click-modal="false" <el-dialog v-dialogDrag :title="title" :visible.sync="open" width="600px" append-to-body :close-on-click-modal="false"
:before-close="cancel"> :before-close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="formFro" :model="form" :rules="rules" label-width="120px">
<el-form-item label="账户编号" prop="accountNo"> <el-form-item label="账户编号" prop="accountNo">
<span style="color:red">{{ detailData.accountNo }}</span> <span style="color:red">{{ detailData.accountNo }}</span>
</el-form-item> </el-form-item>
@ -91,8 +93,8 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('frozen')"> </el-button> <el-button type="primary" @click="submitForm('frozen','formFro')"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel('formFro')"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -100,7 +102,7 @@
<!-- 资金划转 --> <!-- 资金划转 -->
<el-dialog v-dialogDrag title="资金划转" :visible.sync="openTransfer" width="600px" append-to-body <el-dialog v-dialogDrag title="资金划转" :visible.sync="openTransfer" width="600px" append-to-body
:close-on-click-modal="false" :before-close="cancel"> :close-on-click-modal="false" :before-close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="formTrans" :model="form" :rules="rules" label-width="120px">
<el-form-item label="转出账户编号" prop="accountNo"> <el-form-item label="转出账户编号" prop="accountNo">
<span style="color:red">{{ detailData.accountNo }}</span> <span style="color:red">{{ detailData.accountNo }}</span>
</el-form-item> </el-form-item>
@ -122,7 +124,8 @@
<span style="color:red">{{ detailData.useCapital }}</span> <span style="color:red">{{ detailData.useCapital }}</span>
</el-form-item> </el-form-item>
<el-form-item label="划转金额(元)" prop="transferCapital"> <el-form-item label="划转金额(元)" prop="transferCapital">
<el-input v-model="form.transferCapital" placeholder="请输入划转金额" oninput="value=value.replace(/[^\d.]/g,'').replace(/^\./g, '').replace(/\.{2,}/g, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').match(/^\d*(\.?\d{0,4})/g)[0] || null" /> <el-input v-model="form.transferCapital" placeholder="请输入划转金额"
oninput="value=value.replace(/[^\d.]/g,'').replace(/^\./g, '').replace(/\.{2,}/g, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').match(/^\d*(\.?\d{0,4})/g)[0] || null" />
</el-form-item> </el-form-item>
<el-form-item label="支付密码" prop="pwd"> <el-form-item label="支付密码" prop="pwd">
<el-input type="password" v-model="form.pwd" placeholder="请输入密码" /> <el-input type="password" v-model="form.pwd" placeholder="请输入密码" />
@ -132,7 +135,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('transfer')"> </el-button> <el-button type="primary" @click="submitForm('transfer','formTrans')"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -141,7 +144,7 @@
<!-- 私户转入 --> <!-- 私户转入 -->
<el-dialog v-dialogDrag title="代付" :visible.sync="openBank" width="600px" append-to-body :close-on-click-modal="false" <el-dialog v-dialogDrag title="代付" :visible.sync="openBank" width="600px" append-to-body :close-on-click-modal="false"
:before-close="cancel"> :before-close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="formDai" :model="form" :rules="rules" label-width="120px">
<div> <div>
<span style="font-size:19px">代付银行卡</span> <span style="font-size:19px">代付银行卡</span>
<el-divider></el-divider> <el-divider></el-divider>
@ -176,7 +179,8 @@
<span>{{ detailData.useCapital }}</span> <span>{{ detailData.useCapital }}</span>
</el-form-item> </el-form-item>
<el-form-item label="本次代付金额" prop="paymentAmount"> <el-form-item label="本次代付金额" prop="paymentAmount">
<el-input v-model="form.paymentAmount" placeholder="请输入本次代付金额" oninput="value=value.replace(/[^\d.]/g,'').replace(/^\./g, '').replace(/\.{2,}/g, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').match(/^\d*(\.?\d{0,4})/g)[0] || null" /> <el-input v-model="form.paymentAmount" placeholder="请输入本次代付金额"
oninput="value=value.replace(/[^\d.]/g,'').replace(/^\./g, '').replace(/\.{2,}/g, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').match(/^\d*(\.?\d{0,4})/g)[0] || null" />
</el-form-item> </el-form-item>
<el-form-item label="支付密码" prop="pwd"> <el-form-item label="支付密码" prop="pwd">
<el-input type="password" v-model="form.pwd" placeholder="请输入密码" /> <el-input type="password" v-model="form.pwd" placeholder="请输入密码" />
@ -186,10 +190,43 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm('private')"> </el-button> <el-button type="primary" @click="submitForm('private','formDai')"> </el-button>
<el-button @click="cancel('formDai')"> </el-button>
</div>
</el-dialog>
<!-- 余额修改 -->
<el-dialog v-dialogDrag title="余额修改" :visible.sync="openBalance" width="600px" append-to-body
:close-on-click-modal="false" :before-close="cancel">
<el-form ref="formUpdate" :model="form" :rules="rules" label-width="120px">
<el-form-item label="账户号">
{{ detailData.accountNo }}
</el-form-item>
<el-form-item label="余额" prop="useCapital">
<span>{{ detailData.useCapital }}</span>
</el-form-item>
<el-form-item label="类型" prop="isIncome">
<el-radio-group v-model="form.isIncome" @change="change">
<el-radio v-for="dict in type" :key="dict.value" :label="dict.value">{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="金额(元)" prop="afterAmt">
<el-input v-model="form.afterAmt" placeholder="请输入金额"
oninput="value=value.replace(/[^\d.]/g,'').replace(/^\./g, '').replace(/\.{2,}/g, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').match(/^\d*(\.?\d{0,4})/g)[0] || null" />
</el-form-item>
<el-form-item label="谷歌动态验证码" prop="googleCode">
<el-input v-model="form.googleCode" placeholder="请输入谷歌动态验证码" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="subUpdateBalance('balance','formUpdate')"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -219,6 +256,16 @@ export default {
} }
} }
return { return {
type: [
{
label: '增加',
value: 'yes'
},
{
label: '减少',
value: 'no'
},
],
// //
userWithdrawalChannel: {}, userWithdrawalChannel: {},
accountCon: [], accountCon: [],
@ -246,7 +293,7 @@ export default {
open: false, open: false,
openTransfer: false, openTransfer: false,
openBank: false, openBank: false,
openBalance: false,
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -267,6 +314,9 @@ export default {
}, },
// //
rules: { rules: {
afterAmt: [
{ required: true, message: "请输入本次修改金额", trigger: "blur" },
],
paymentAmount: [ paymentAmount: [
{ required: true, message: "请输入本次代付金额", trigger: "blur" }, { required: true, message: "请输入本次代付金额", trigger: "blur" },
], ],
@ -343,12 +393,11 @@ export default {
}) })
}, },
// //
handlePrivateTransfer(row) { handlePrivateTransfer(row,v) {
this.reset(); this.reset(v);
this.loading = true; this.loading = true;
// //
this.getUserWithdrawalChannel(); this.getUserWithdrawalChannel();
payMoneyCalcu.getWithdrawalChannel({ payMoneyCalcu.getWithdrawalChannel({
channelType: row.channelType, channelType: row.channelType,
flagCard: 'private_account' flagCard: 'private_account'
@ -363,15 +412,14 @@ export default {
storeId: this.queryParams.storeId storeId: this.queryParams.storeId
}) })
.then((response) => { .then((response) => {
this.form.accountNo=row.accountNo
this.detailData = response.data this.detailData = response.data
}); });
}); });
}, },
// //
handleTransfer(row) { handleTransfer(row,v) {
this.reset(); this.reset(v);
this.form.storeId = this.pkCouponStore.storeId this.form.storeId = this.pkCouponStore.storeId
this.loading = true; this.loading = true;
// //
@ -393,15 +441,48 @@ export default {
}); });
}, },
//
subUpdateBalance(a,v){
var googleCode=this.form.googleCode
this.$refs[v].validate((valid) => {
if (valid) {
const loading = this.$loading({
lock: true,
text: `正在修改`,
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
payMoneyCalcu
.updateBalance({
accountNo:this.form.accountNo,
googleCode:googleCode,
updateUserId:this.form.updateUserId,
isIncome:this.form.isIncome,
tranAmt:this.form.afterAmt,
})
.then((response) => {
loading.close();
if (response.code == 200) {
this.$message.success('修改成功')
this.getList();
}
this.openBalance = false
})
.catch(() => {
loading.close();
});
}
});
},
/** 提交按钮 */ /** 提交按钮 */
submitForm(type) { submitForm(type,val) {
if (type == 'private') { if (type == 'private') {
this.form.storeId = this.pkCouponStore.storeId this.form.storeId = this.pkCouponStore.storeId
if (this.form.paymentAmount > this.detailData.useCapital) { if (this.form.paymentAmount > this.detailData.useCapital) {
this.$message.error('余额不足') this.$message.error('余额不足')
return; return;
} }
this.$refs["form"].validate((valid) => { this.$refs[val].validate((valid) => {
if (valid) { if (valid) {
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
@ -430,7 +511,7 @@ export default {
return; return;
} }
this.$refs["form"].validate((valid) => { this.$refs[val].validate((valid) => {
if (valid) { if (valid) {
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
@ -438,7 +519,7 @@ export default {
spinner: "el-icon-loading", spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)", background: "rgba(0, 0, 0, 0.7)",
}); });
this.form.accountNo=this.detailData.accountNo this.form.accountNo = this.detailData.accountNo
payMoneyCalcu payMoneyCalcu
.transferCapitalSave(this.form) .transferCapitalSave(this.form)
.then((response) => { .then((response) => {
@ -458,7 +539,7 @@ export default {
this.$message.error('余额不足') this.$message.error('余额不足')
return; return;
} }
this.$refs["form"].validate((valid) => { this.$refs[val].validate((valid) => {
if (valid) { if (valid) {
const loading = this.$loading({ const loading = this.$loading({
lock: true, lock: true,
@ -483,9 +564,18 @@ export default {
} }
}, },
//
updateBalance(row,v) {
this.reset(v);
this.detailData = row
this.form.accountNo = row.accountNo
this.form.updateUserId = row.userId
this.form.isIncome = 'yes'
this.openBalance = true;
},
// //
handleFrozen(row) { handleFrozen(row,v) {
this.reset(); this.reset(v);
this.detailData = row this.detailData = row
this.form.storeId = this.pkCouponStore.storeId this.form.storeId = this.pkCouponStore.storeId
this.form.accountNo = this.detailData.accountNo this.form.accountNo = this.detailData.accountNo
@ -503,12 +593,12 @@ export default {
this.loading = false; this.loading = false;
}); });
payMoneyCalcu.amountCount({ payMoneyCalcu.amountCount({
storeId:this.pkCouponStore.storeId, storeId: this.pkCouponStore.storeId,
channelType:'', channelType: '',
payType:'', payType: '',
}) })
.then((response) => { .then((response) => {
this.sum=response.data this.sum = response.data
}); });
}, },
init() { init() {
@ -520,17 +610,18 @@ export default {
}); });
}, },
// //
cancel() { cancel(type) {
this.open = false; this.open = false;
this.openTransfer = false; this.openTransfer = false;
this.openBank = false this.openBank = false
this.reset(); this.openBalance = false
this.reset(type);
}, },
// //
reset() { reset(type) {
this.form = {}; this.form = {};
this.detailData = {}; this.detailData = {};
this.resetForm("form"); this.resetForm(type);
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
@ -549,6 +640,9 @@ export default {
this.open = true; this.open = true;
this.title = "添加适用商家"; this.title = "添加适用商家";
}, },
change() {
this.$forceUpdate()
},
selectChange(data) { selectChange(data) {
this.$set(this.form, 'storeName', data.storeName) this.$set(this.form, 'storeName', data.storeName)
this.form.pkStoreId = data.id; this.form.pkStoreId = data.id;

14
src/views/pay/payOrder/singleNeiChong.vue

@ -15,7 +15,7 @@
@keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" /> @keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery" v-hasPermi="['record:manual_query_store']">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -33,12 +33,12 @@
<div class="bottom" style="width:25%"> <div class="bottom" style="width:25%">
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="内充渠道" prop="channelContent"> <el-form-item label="内充渠道" prop="channelContent" >
<span style="color:red">{{ form.channelContent }}</span> <span style="color:red" v-hasPermi="['record:manual_query_channel']">{{ form.channelContent }}</span>
</el-form-item> </el-form-item>
<el-form-item label="收款账号" prop="acctName"> <el-form-item label="收款账号" prop="acctName">
<el-select v-model="form.acctName" placeholder="请选择收款账号" size="medium" v-if="bankAccount.length" <el-select v-model="form.acctName" placeholder="请选择收款账号" size="medium" v-if="bankAccount.length"
@change="getValue"> @change="getValue" v-hasPermi="['record:manual_query_bank']">
<el-option v-for="dict in bankAccount" :key="dict.acctName" :label="dict.acctName" <el-option v-for="dict in bankAccount" :key="dict.acctName" :label="dict.acctName"
:value="dict.acctName" /> :value="dict.acctName" />
</el-select> </el-select>
@ -56,9 +56,9 @@
</el-form-item> </el-form-item>
<!-- 选择 --> <!-- 选择 -->
<el-form-item label="打款人" prop="payeeAcctName" v-show="concurrent == 0"> <el-form-item label="打款人" prop="payeeAcctName" v-show="concurrent == 0" >
<el-select v-model="form.payeeAcctName" placeholder="请选择打款人" size="medium" v-if="bankUser.length" <el-select v-model="form.payeeAcctName" placeholder="请选择打款人" size="medium" v-if="bankUser.length"
@change="change"> @change="change" v-hasPermi="['record:manual_query_bank_user']">
<el-option v-for="dict in bankUser" :key="dict.payeeAcctName" :label="dict.payeeAcctName" <el-option v-for="dict in bankUser" :key="dict.payeeAcctName" :label="dict.payeeAcctName"
:value="dict.payeeAcctName" /> :value="dict.payeeAcctName" />
</el-select> </el-select>
@ -86,7 +86,7 @@
oninput="value=value.replace(/[^\d.]/g,'').replace(/^\./g, '').replace(/\.{2,}/g, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').match(/^\d*(\.?\d{0,4})/g)[0] || null" /> oninput="value=value.replace(/[^\d.]/g,'').replace(/^\./g, '').replace(/\.{2,}/g, '').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').match(/^\d*(\.?\d{0,4})/g)[0] || null" />
</el-form-item> </el-form-item>
<div class="footer" style="margin-left:100px"> <div class="footer" style="margin-left:100px">
<el-button type="primary" icon="" size="small" @click="submitForm">提交</el-button> <el-button type="primary" icon="" size="small" @click="submitForm" v-hasPermi="['record:manual_recharge_save']">提交</el-button>
<el-button plain size="small" @click="back">取消</el-button> <el-button plain size="small" @click="back">取消</el-button>
</div> </div>
</el-form> </el-form>

44
src/views/pay/payTest/payCode.vue

@ -17,10 +17,10 @@
<el-input v-model="form.charset" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.charset" placeholder="" style="width: 315px;border-color: #E6F1FF;" />
</el-form-item> </el-form-item>
<el-form-item label="商户号" prop="spid"> <el-form-item label="商户号" prop="spid">
<el-input v-model="form.spid" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.spid" placeholder="" style="width: 315px;border-color: #E6F1FF;" v-hasPermi="['pay:test:query']" />
</el-form-item> </el-form-item>
<el-form-item label="签名key" prop="payKey"> <el-form-item label="签名key" prop="payKey">
<el-input v-model="form.payKey" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.payKey" placeholder="" style="width: 315px;border-color: #E6F1FF;" v-hasPermi="['pay:test:query']" />
</el-form-item> </el-form-item>
<el-form-item label="交易金额" prop="tranAmt"> <el-form-item label="交易金额" prop="tranAmt">
<el-input v-model="form.tranAmt" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.tranAmt" placeholder="" style="width: 315px;border-color: #E6F1FF;" />
@ -66,7 +66,7 @@
<el-input v-model="form.req_data" type="textarea" :disabled="true" placeholder="" <el-input v-model="form.req_data" type="textarea" :disabled="true" placeholder=""
style="width: 315px;border-color: #E6F1FF;" /> style="width: 315px;border-color: #E6F1FF;" />
<el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px" <el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px"
@click="handleSay">获取签名</el-button> @click="handleSay" v-hasPermi="['pay:test:paySign']">获取签名</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px" <el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px"
@ -261,26 +261,26 @@ export default {
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
savePayConfig() { // savePayConfig() {
if (!this.infoList.googleCode) { // if (!this.infoList.googleCode) {
this.$message.error("请填写谷歌动态验证码"); // this.$message.error("");
return; // return;
} // }
this.loading = true // this.loading = true
this.infoList.storeId = this.val; // this.infoList.storeId = this.val;
this.infoList.id = this.infoList.id < 1 ? null : this.infoList.id; // this.infoList.id = this.infoList.id < 1 ? null : this.infoList.id;
payAgentUser // payAgentUser
.updateStoreConfig(this.infoList) // .updateStoreConfig(this.infoList)
.then((response) => { // .then((response) => {
this.msgSuccess("编辑成功"); // this.msgSuccess("");
this.getList(this.val) // this.getList(this.val)
this.loading = false; // this.loading = false;
}) // })
.catch((err) => { // .catch((err) => {
this.loading = false; // this.loading = false;
}); // });
}, // },
}, },
}; };

6
src/views/pay/payTest/payDai.vue

@ -17,10 +17,10 @@
<el-input v-model="form.charset" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.charset" placeholder="" style="width: 315px;border-color: #E6F1FF;" />
</el-form-item> </el-form-item>
<el-form-item label="商户号" prop="spid"> <el-form-item label="商户号" prop="spid">
<el-input v-model="form.spid" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.spid" placeholder="" style="width: 315px;border-color: #E6F1FF;" v-hasPermi="['pay:test:query']" />
</el-form-item> </el-form-item>
<el-form-item label="签名key" prop="payKey"> <el-form-item label="签名key" prop="payKey">
<el-input v-model="form.payKey" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.payKey" placeholder="" style="width: 315px;border-color: #E6F1FF;" v-hasPermi="['pay:test:query']" />
</el-form-item> </el-form-item>
<el-form-item label="交易金额" prop="tranAmt"> <el-form-item label="交易金额" prop="tranAmt">
<el-input v-model="form.tranAmt" placeholder="" style="width: 315px;border-color: #E6F1FF;" /> <el-input v-model="form.tranAmt" placeholder="" style="width: 315px;border-color: #E6F1FF;" />
@ -64,7 +64,7 @@
<el-input v-model="form.req_data" type="textarea" :disabled="true" placeholder="" <el-input v-model="form.req_data" type="textarea" :disabled="true" placeholder=""
style="width: 315px;border-color: #E6F1FF;" /> style="width: 315px;border-color: #E6F1FF;" />
<el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px" <el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px"
@click="handleSay">获取签名</el-button> @click="handleSay" v-hasPermi="['pay:test:paymentSign']">获取签名</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px" <el-button type="primary" plain icon="" size="medium" style="color:#fff;margin-left:10px"

19
src/views/pay/payType/payBankManualUser.vue

@ -6,9 +6,7 @@
<div class="text">内充银行配置</div> <div class="text">内充银行配置</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -35,8 +33,19 @@
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd" v-hasPermi="['pay:bankManualUser:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
@ -70,7 +79,7 @@
<el-table-column label="状态" align="center" prop="dataStatus" width="140px"> <el-table-column label="状态" align="center" prop="dataStatus" width="140px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open" <el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open"
inactive-value="close" @change="switchStatusChange(scope.row)"> inactive-value="close" @change="switchStatusChange(scope.row)" v-hasPermi="['pay:bankManualUser:edit']">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
@ -79,7 +88,7 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" <el-button size="small" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)">编辑</el-button> @click="handleUpdate(scope.row)" v-hasPermi="['pay:bankManualUser:edit']">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

2
src/views/pay/payType/payChannelDefult.vue

@ -23,7 +23,7 @@
</div> </div>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="savePayConfig"> </el-button> <el-button type="primary" @click="savePayConfig" v-hasPermi="['pay:channelDefault:edit']"> </el-button>
<el-button type="plain" @click="back"> </el-button> <el-button type="plain" @click="back"> </el-button>
</div> </div>
</div> </div>

19
src/views/pay/payType/payChannelOut.vue

@ -6,9 +6,7 @@
<div class="text">出金渠道配置</div> <div class="text">出金渠道配置</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -33,8 +31,19 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd" v-hasPermi="['pay:channelOut:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
@ -62,9 +71,9 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" <el-button size="small" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)">编辑</el-button> @click="handleUpdate(scope.row)" v-hasPermi="['pay:channelOut:edit']">编辑</el-button>
<el-button size="small" type="text" icon="el-icon-delete" <el-button size="small" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)">删除</el-button> @click="handleDelete(scope.row)" v-hasPermi="['pay:channelOut:remove']">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

43
src/views/pay/payType/payTypeChannel.vue

@ -6,9 +6,7 @@
<div class="text">渠道类型管理</div> <div class="text">渠道类型管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -20,19 +18,37 @@
@keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" /> @keyup.enter.native="handleQuery" style="width: 215px;border-color: #E6F1FF;" />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd"
v-hasPermi="['pay:payChannel:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
<el-table-column label="渠道类型" align="center" prop="payChannel" /> <el-table-column label="渠道类型" align="center" prop="payChannel" />
<el-table-column label="渠道名称" align="center" prop="channelName" /> <el-table-column label="渠道名称" align="center" prop="channelName" />
<el-table-column label="国家代码" align="center" prop="nationCode" />
<el-table-column label="国家名称" align="center" prop="nationName" />
<el-table-column label="国家货币符号" align="center" prop="nationSymbol" />
<el-table-column label="添加日期" align="center" prop="createTime" /> <el-table-column label="添加日期" align="center" prop="createTime" />
<el-table-column label="更新日期" align="center" prop="updateTime" /> <el-table-column label="更新日期" align="center" prop="updateTime" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button> <el-button v-hasPermi="['pay:payChannel:edit']" size="small" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -49,6 +65,14 @@
<el-form-item label="渠道名称" prop="channelName"> <el-form-item label="渠道名称" prop="channelName">
<el-input v-model="form.channelName" placeholder="请输入渠道名称" /> <el-input v-model="form.channelName" placeholder="请输入渠道名称" />
</el-form-item> </el-form-item>
<el-form-item label="国家" prop="nationCode" v-if="form.id!=0">
<el-select v-model="form.nationCode" placeholder="请选择国家" clearable size="medium">
<el-option v-for="(item, i) in nation" :key="i" :label="item.name"
:value="item.code"></el-option>
</el-select>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -68,7 +92,7 @@ export default {
name: "PkAdWeiList", name: "PkAdWeiList",
data() { data() {
return { return {
nation:[],
dateRange: [], dateRange: [],
// 广 // 广
imageUrl: "", imageUrl: "",
@ -100,7 +124,9 @@ export default {
}, },
// //
rules: { rules: {
nationCode: [
{ required: true, message: "请选择国家", trigger: "blur" },
],
channelName: [ channelName: [
{ required: true, message: "请输入渠道名称", trigger: "blur" }, { required: true, message: "请输入渠道名称", trigger: "blur" },
], ],
@ -128,6 +154,11 @@ export default {
this.total = Number(response.total); this.total = Number(response.total);
this.loading = false; this.loading = false;
}); });
common_api
.getAllNation()
.then((response) => {
this.nation= response.data
});
}, },
// //
cancel() { cancel() {

28
src/views/pay/payType/payTypeChannelManage.vue

@ -6,9 +6,7 @@
<div class="text">通道配置管理</div> <div class="text">通道配置管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -42,8 +40,20 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd"
v-hasPermi="['pay:payConfig:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
@ -78,14 +88,14 @@
{{ NumberMul(scope.row.poundageRate, 100) }}% {{ NumberMul(scope.row.poundageRate, 100) }}%
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="国家代码" align="center" prop="nationCode" />
<el-table-column label="国家名称" align="center" prop="nationName" />
<el-table-column label="国家货币符号" align="center" prop="nationSymbol" />
<el-table-column label="签名方式" align="center" prop="signType" /> <el-table-column label="签名方式" align="center" prop="signType" />
<el-table-column label="状态" align="center" prop="dataStatus" width="140px"> <el-table-column label="状态" align="center" prop="dataStatus" width="140px">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open" <el-switch v-model="scope.row.status" active-text="" inactive-text="" active-value="open"
inactive-value="close" @change="switchStatusChange(scope.row)"> inactive-value="close" @change="switchStatusChange(scope.row)" v-hasPermi="['pay:payConfig:edit']">
</el-switch> </el-switch>
</template> </template>
</el-table-column> </el-table-column>
@ -95,7 +105,8 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button> <el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['pay:payConfig:edit']">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -200,6 +211,7 @@
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="form.status" placeholder="请选择状态" clearable size="medium"> <el-select v-model="form.status" placeholder="请选择状态" clearable size="medium">
<el-option v-for="(item, i) in statusCon" :key="i" :label="item.label" :value="item.value"></el-option> <el-option v-for="(item, i) in statusCon" :key="i" :label="item.label" :value="item.value"></el-option>

26
src/views/pay/payType/payTypeManage.vue

@ -6,31 +6,33 @@
<div class="text">支付类型管理</div> <div class="text">支付类型管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg"> <div class="bg">
<!-- <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px" <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="86px"
class="flex form" style="padding:0 20px"> class="flex form" style="padding:0 20px">
<el-form-item label="渠道名称" prop="channelName">
<el-input size="medium" v-model="queryParams.channelName" placeholder="请输入渠道名称" @keyup.enter.native="handleQuery"
style="width: 315px;border-color: #E6F1FF;" />
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-button icon="el-icon-refresh" size="small" @click="resetQuery">重置</el-button> <el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd"
v-hasPermi="['pay:payType:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> --> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
<el-table-column label="支付类型" align="center" prop="payType" /> <el-table-column label="支付类型" align="center" prop="payType" />
<el-table-column label="支付类型名称" align="center" prop="typeName" /> <el-table-column label="支付类型名称" align="center" prop="typeName" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button> <el-button size="small" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['pay:payType:edit']">编辑</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

19
src/views/pay/payType/payTypeSettleConfig.vue

@ -6,9 +6,7 @@
<div class="text">结算配置管理</div> <div class="text">结算配置管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -33,8 +31,19 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="" size="medium" @click="handleAdd" v-hasPermi="['pay:settleConfig:add']">新增</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table stripe v-loading="loading" :data="infoList"> <el-table stripe v-loading="loading" :data="infoList">
@ -72,9 +81,9 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="small" type="text" icon="el-icon-edit" <el-button size="small" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)">编辑</el-button> @click="handleUpdate(scope.row)" v-hasPermi="['pay:settleConfig:edit']">编辑</el-button>
<el-button size="small" type="text" icon="el-icon-delete" <el-button size="small" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)">删除</el-button> @click="handleDelete(scope.row)" v-hasPermi="['pay:settleConfig:remove']">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

99
src/views/system/config/index.vue

@ -6,6 +6,59 @@
<div class="text">参数设置</div> <div class="text">参数设置</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px">
<el-form-item label="参数名称" prop="configName">
<el-input
v-model="queryParams.configName"
placeholder="请输入参数名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参数键名" prop="configKey">
<el-input
v-model="queryParams.configKey"
placeholder="请输入参数键名"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="系统内置" prop="configType">
<el-select v-model="queryParams.configType" placeholder="系统内置" clearable>
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@ -58,53 +111,9 @@
v-hasPermi="['system:config:remove']" v-hasPermi="['system:config:remove']"
>刷新缓存</el-button> >刷新缓存</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px">
<el-form-item label="参数名称" prop="configName">
<el-input
v-model="queryParams.configName"
placeholder="请输入参数名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="参数键名" prop="configKey">
<el-input
v-model="queryParams.configKey"
placeholder="请输入参数键名"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="系统内置" prop="configType">
<el-select v-model="queryParams.configType" placeholder="系统内置" clearable>
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="loading" :data="configList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="configList" @selection-change="handleSelectionChange">

110
src/views/system/dept/index.vue

@ -6,66 +6,49 @@
<div class="text">部门管理</div> <div class="text">部门管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="medium"
@click="handleAdd"
v-hasPermi="['system:dept:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-sort"
size="medium"
@click="toggleExpandAll"
>展开/折叠</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg"> <div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" class="flex form" style="padding:0 20px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" class="flex form"
style="padding:0 20px">
<el-form-item label="部门名称" prop="deptName"> <el-form-item label="部门名称" prop="deptName">
<el-input <el-input v-model="queryParams.deptName" placeholder="请输入部门名称" clearable @keyup.enter.native="handleQuery" />
v-model="queryParams.deptName"
placeholder="请输入部门名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="部门状态" clearable> <el-select v-model="queryParams.status" placeholder="部门状态" clearable>
<el-option <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
v-for="dict in dict.type.sys_normal_disable" :value="dict.value" />
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="medium" @click="handleAdd"
v-hasPermi="['system:dept:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-sort" size="medium" @click="toggleExpandAll">展开/折叠</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table v-if="refreshTable" v-loading="loading" :data="deptList" row-key="deptId"
v-if="refreshTable" :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
v-loading="loading"
:data="deptList"
row-key="deptId"
:default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column prop="deptName" label="部门名称" width="260"></el-table-column> <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
<el-table-column prop="orderNum" label="排序" width="200"></el-table-column> <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
<el-table-column prop="status" label="状态" width="100"> <el-table-column prop="status" label="状态" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="200"> <el-table-column label="创建时间" align="center" prop="createTime" width="200">
@ -75,28 +58,12 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
size="mini" v-hasPermi="['system:dept:edit']">修改</el-button>
type="text" <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)"
icon="el-icon-edit" v-hasPermi="['system:dept:add']">新增</el-button>
@click="handleUpdate(scope.row)" <el-button v-if="scope.row.parentId != 0" size="mini" type="text" icon="el-icon-delete"
v-hasPermi="['system:dept:edit']" @click="handleDelete(scope.row)" v-hasPermi="['system:dept:remove']">删除</el-button>
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['system:dept:add']"
>新增</el-button>
<el-button
v-if="scope.row.parentId != 0"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:dept:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -145,11 +112,8 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="部门状态"> <el-form-item label="部门状态">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value"
v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{ dict.label }}</el-radio>
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -313,7 +277,7 @@ export default {
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.deptId != undefined) { if (this.form.deptId != undefined) {
@ -334,12 +298,12 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除名称为"' + row.deptName + '"的数据项?').then(function () {
return delDept(row.deptId); return delDept(row.deptId);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => { });
} }
} }
}; };

117
src/views/system/dict/index.vue

@ -6,58 +6,7 @@
<div class="text">字典管理</div> <div class="text">字典管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="medium"
@click="handleAdd"
v-hasPermi="['system:dict:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="medium"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:dict:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="medium"
@click="handleExport"
v-hasPermi="['system:dict:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-refresh"
size="medium"
@click="handleRefreshCache"
v-hasPermi="['system:dict:remove']"
>刷新缓存</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -111,8 +60,68 @@
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="medium" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="medium"
@click="handleAdd"
v-hasPermi="['system:dict:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="medium"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:dict:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:dict:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="medium"
@click="handleExport"
v-hasPermi="['system:dict:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-refresh"
size="medium"
@click="handleRefreshCache"
v-hasPermi="['system:dict:remove']"
>刷新缓存</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -272,7 +281,7 @@ export default {
this.loading = true; this.loading = true;
listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => { listType(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.typeList = response.rows; this.typeList = response.rows;
this.total = response.total; this.total = Number(response.total);
this.loading = false; this.loading = false;
} }
); );

139
src/views/system/menu/index.vue

@ -7,65 +7,48 @@
<div class="text">菜单管理</div> <div class="text">菜单管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:menu:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-sort"
size="mini"
@click="toggleExpandAll"
>展开/折叠</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg"> <div class="bg">
<el-form class="flex form" :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" style="padding:0 20px"> <el-form class="flex form" :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
style="padding:0 20px">
<el-form-item label="菜单名称" prop="menuName"> <el-form-item label="菜单名称" prop="menuName">
<el-input <el-input v-model="queryParams.menuName" placeholder="请输入菜单名称" clearable @keyup.enter.native="handleQuery" />
v-model="queryParams.menuName"
placeholder="请输入菜单名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="菜单状态" clearable> <el-select v-model="queryParams.status" placeholder="菜单状态" clearable>
<el-option <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
v-for="dict in dict.type.sys_normal_disable" :value="dict.value" />
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="medium" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:menu:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-sort" size="mini" @click="toggleExpandAll">展开/折叠</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table v-if="refreshTable" v-loading="loading" :data="menuList" row-key="menuId"
v-if="refreshTable" :default-expand-all="isExpandAll" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
v-loading="loading"
:data="menuList"
row-key="menuId"
:default-expand-all="isExpandAll"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column> <el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column>
<el-table-column prop="icon" label="图标" align="center" width="100"> <el-table-column prop="icon" label="图标" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
@ -77,7 +60,7 @@
<el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column> <el-table-column prop="component" label="组件路径" :show-overflow-tooltip="true"></el-table-column>
<el-table-column prop="status" label="状态" width="80"> <el-table-column prop="status" label="状态" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/> <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime"> <el-table-column label="创建时间" align="center" prop="createTime">
@ -87,27 +70,12 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
size="mini" v-hasPermi="['system:menu:edit']">修改</el-button>
type="text" <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)"
icon="el-icon-edit" v-hasPermi="['system:menu:add']">新增</el-button>
@click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:menu:edit']" v-hasPermi="['system:menu:remove']">删除</el-button>
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-plus"
@click="handleAdd(scope.row)"
v-hasPermi="['system:menu:add']"
>新增</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:menu:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -119,13 +87,8 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="上级菜单" prop="parentId"> <el-form-item label="上级菜单" prop="parentId">
<treeselect <treeselect v-model="form.parentId" :options="menuOptions" :normalizer="normalizer" :show-count="true"
v-model="form.parentId" placeholder="选择上级菜单" />
:options="menuOptions"
:normalizer="normalizer"
:show-count="true"
placeholder="选择上级菜单"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
@ -139,21 +102,11 @@
</el-col> </el-col>
<el-col :span="24" v-if="form.menuType != 'F'"> <el-col :span="24" v-if="form.menuType != 'F'">
<el-form-item label="菜单图标" prop="icon"> <el-form-item label="菜单图标" prop="icon">
<el-popover <el-popover placement="bottom-start" width="460" trigger="click" @show="$refs['iconSelect'].reset()">
placement="bottom-start"
width="460"
trigger="click"
@show="$refs['iconSelect'].reset()"
>
<IconSelect ref="iconSelect" @selected="selected" /> <IconSelect ref="iconSelect" @selected="selected" />
<el-input slot="reference" v-model="form.icon" placeholder="点击选择图标" readonly> <el-input slot="reference" v-model="form.icon" placeholder="点击选择图标" readonly>
<svg-icon <svg-icon v-if="form.icon" slot="prefix" :icon-class="form.icon" class="el-input__icon"
v-if="form.icon" style="height: 32px;width: 16px;" />
slot="prefix"
:icon-class="form.icon"
class="el-input__icon"
style="height: 32px;width: 16px;"
/>
<i v-else slot="prefix" class="el-icon-search el-input__icon" /> <i v-else slot="prefix" class="el-icon-search el-input__icon" />
</el-input> </el-input>
</el-popover> </el-popover>
@ -250,11 +203,8 @@
显示状态 显示状态
</span> </span>
<el-radio-group v-model="form.visible"> <el-radio-group v-model="form.visible">
<el-radio <el-radio v-for="dict in dict.type.sys_show_hide" :key="dict.value"
v-for="dict in dict.type.sys_show_hide" :label="dict.value">{{ dict.label }}</el-radio>
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -267,11 +217,8 @@
菜单状态 菜单状态
</span> </span>
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value"
v-for="dict in dict.type.sys_normal_disable" :label="dict.value">{{ dict.label }}</el-radio>
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -431,7 +378,7 @@ export default {
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function () {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.menuId != undefined) { if (this.form.menuId != undefined) {
@ -452,12 +399,12 @@ export default {
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.$modal.confirm('是否确认删除名称为"' + row.menuName + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除名称为"' + row.menuName + '"的数据项?').then(function () {
return delMenu(row.menuId); return delMenu(row.menuId);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => { });
} }
} }
}; };

73
src/views/system/notice/index.vue

@ -7,6 +7,46 @@
<div class="text">通知公告</div> <div class="text">通知公告</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px">
<el-form-item label="公告标题" prop="noticeTitle">
<el-input
v-model="queryParams.noticeTitle"
placeholder="请输入公告标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="操作人员" prop="createBy">
<el-input
v-model="queryParams.createBy"
placeholder="请输入操作人员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类型" prop="noticeType">
<el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable>
<el-option
v-for="dict in dict.type.sys_notice_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<div class="searchTop flexBet" style="align-items: center;">
<el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@ -39,40 +79,9 @@
v-hasPermi="['system:notice:remove']" v-hasPermi="['system:notice:remove']"
>删除</el-button> >删除</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px">
<el-form-item label="公告标题" prop="noticeTitle">
<el-input
v-model="queryParams.noticeTitle"
placeholder="请输入公告标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="操作人员" prop="createBy">
<el-input
v-model="queryParams.createBy"
placeholder="请输入操作人员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="类型" prop="noticeType">
<el-select v-model="queryParams.noticeType" placeholder="公告类型" clearable>
<el-option
v-for="dict in dict.type.sys_notice_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="noticeList" @selection-change="handleSelectionChange">

45
src/views/system/post/index.vue

@ -6,22 +6,7 @@
<div class="text">岗位管理</div> <div class="text">岗位管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="medium" @click="handleAdd"
v-hasPermi="['system:post:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="medium" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:post:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="medium" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:post:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="medium" @click="handleExport"
v-hasPermi="['system:post:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
@ -40,8 +25,32 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="medium" @click="handleAdd"
v-hasPermi="['system:post:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="medium" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:post:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="medium" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:post:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="medium" @click="handleExport"
v-hasPermi="['system:post:export']">导出</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>

67
src/views/system/role/index.vue

@ -7,50 +7,61 @@
<div class="text">角色管理</div> <div class="text">角色管理</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:role:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:role:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:role:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:role:export']">导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg"> <div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" class="flex form" style="padding:0 20px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" class="flex form"
style="padding:0 20px">
<el-form-item label="角色名称" prop="roleName"> <el-form-item label="角色名称" prop="roleName">
<el-input v-model="queryParams.roleName" placeholder="请输入角色名称" clearable style="width: 240px;border-color: #E6F1FF;" <el-input v-model="queryParams.roleName" placeholder="请输入角色名称" clearable
@keyup.enter.native="handleQuery" /> style="width: 240px;border-color: #E6F1FF;" @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="权限字符" prop="roleKey"> <el-form-item label="权限字符" prop="roleKey">
<el-input v-model="queryParams.roleKey" placeholder="请输入权限字符" clearable style="width: 240px;border-color: #E6F1FF;" <el-input v-model="queryParams.roleKey" placeholder="请输入权限字符" clearable
@keyup.enter.native="handleQuery" /> style="width: 240px;border-color: #E6F1FF;" @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="角色状态" clearable style="width: 240px;border-color: #E6F1FF;"> <el-select v-model="queryParams.status" placeholder="角色状态" clearable
style="width: 240px;border-color: #E6F1FF;">
<el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label" <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" /> :value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker v-model="dateRange" style="width: 240px;border-color: #E6F1FF;" value-format="yyyy-MM-dd" type="daterange" <el-date-picker v-model="dateRange" style="width: 240px;border-color: #E6F1FF;" value-format="yyyy-MM-dd"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:role:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:role:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple"
@click="handleDelete" v-hasPermi="['system:role:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:role:export']">导出</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
@ -114,8 +125,8 @@
</el-form-item> </el-form-item>
<el-form-item label="状态"> <el-form-item label="状态">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label
:label="dict.value">{{ dict.label }}</el-radio> }}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="菜单权限"> <el-form-item label="菜单权限">

6
src/views/system/user/index.vue

@ -73,7 +73,7 @@
<el-table-column label="用户名称" :show-overflow-tooltip="true" align="center" prop="userName" <el-table-column label="用户名称" :show-overflow-tooltip="true" align="center" prop="userName"
v-if="columns[1].visible"> v-if="columns[1].visible">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="arl" @click="handleCode('身份验证', scope.row)">{{ scope.row.userName }}</div> {{ scope.row.userName }}
</template> </template>
</el-table-column> </el-table-column>
@ -83,7 +83,7 @@
:show-overflow-tooltip="true" /> :show-overflow-tooltip="true" />
<!-- <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" <!-- <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible"
:show-overflow-tooltip="true" /> --> :show-overflow-tooltip="true" /> -->
<el-table-column label="显示角色" align="center" key="userType" prop="userType" v-if="columns[4].visible" <el-table-column label="显示角色" align="center" key="roleNames" prop="roleNames" v-if="columns[4].visible"
width="120" /> width="120" />
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible"> <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<template slot-scope="scope"> <template slot-scope="scope">
@ -98,6 +98,8 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="90" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="90" class-name="small-padding fixed-width">
<template slot-scope="scope" v-if="scope.row.userId !== 1"> <template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleCode('身份验证', scope.row)"
>查看谷歌密钥</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']">修改</el-button> v-hasPermi="['system:user:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"

2
src/views/tool/build/index.vue

@ -1,5 +1,5 @@
<template> <template>
<div class="container"> <div class="container" style="margin-top:50px">
<div class="left-board"> <div class="left-board">
<div class="logo-wrapper"> <div class="logo-wrapper">
<div class="logo"> <div class="logo">

2
src/views/tool/gen/editTable.vue

@ -1,5 +1,5 @@
<template> <template>
<el-card> <el-card style="margin-top:66px">
<el-tabs v-model="activeName"> <el-tabs v-model="activeName">
<el-tab-pane label="基本信息" name="basic"> <el-tab-pane label="基本信息" name="basic">
<basic-info-form ref="basicInfo" :info="info" /> <basic-info-form ref="basicInfo" :info="info" />

5
src/views/tool/gen/importTable.vue

@ -84,9 +84,10 @@ export default {
// //
getList() { getList() {
listDbTable(this.queryParams).then(res => { listDbTable(this.queryParams).then(res => {
if (res.code === 200) { if (res.rows) {
this.dbTableList = res.rows; this.dbTableList = res.rows;
this.total = res.total; this.total = Number(res.total);
this.$forceUpdate()
} }
}); });
}, },

203
src/views/tool/gen/index.vue

@ -6,174 +6,91 @@
<div class="text">代码生成</div> <div class="text">代码生成</div>
</div> </div>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-download"
size="medium"
@click="handleGenTable"
v-hasPermi="['tool:gen:code']"
>生成</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-upload"
size="medium"
@click="openImportTable"
v-hasPermi="['tool:gen:import']"
>导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="medium"
:disabled="single"
@click="handleEditTable"
v-hasPermi="['tool:gen:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="medium"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tool:gen:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </el-row>
</div> </div>
<div class="bg"> <div class="bg">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" class="flex form" style="padding:0 20px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"
class="flex form" style="padding:0 20px">
<el-form-item label="表名称" prop="tableName"> <el-form-item label="表名称" prop="tableName">
<el-input <el-input v-model="queryParams.tableName" placeholder="请输入表名称" clearable @keyup.enter.native="handleQuery" />
v-model="queryParams.tableName"
placeholder="请输入表名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="表描述" prop="tableComment"> <el-form-item label="表描述" prop="tableComment">
<el-input <el-input v-model="queryParams.tableComment" placeholder="请输入表描述" clearable @keyup.enter.native="handleQuery" />
v-model="queryParams.tableComment"
placeholder="请输入表描述"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
v-model="dateRange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <div class="searchTop flexBet" style="align-items: center;">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-row :gutter="10" class="mb8">
<el-button type="primary" icon="" size="medium" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="medium" @click="resetQuery">重置</el-button>
</el-row>
<el-row :gutter="10" class="mb8" style="margin-left:20px">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-download" size="medium" @click="handleGenTable"
v-hasPermi="['tool:gen:code']">生成</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-upload" size="medium" @click="openImportTable"
v-hasPermi="['tool:gen:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="medium" :disabled="single"
@click="handleEditTable" v-hasPermi="['tool:gen:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="medium" :disabled="multiple"
@click="handleDelete" v-hasPermi="['tool:gen:remove']">删除</el-button>
</el-col>
</el-row>
</div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="55"></el-table-column> <el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="50" align="center"> <el-table-column label="序号" type="index" width="50" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span> <span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="表名称" align="center" prop="tableName" :show-overflow-tooltip="true" width="120" />
label="表名称" <el-table-column label="表描述" align="center" prop="tableComment" :show-overflow-tooltip="true" width="120" />
align="center" <el-table-column label="实体" align="center" prop="className" :show-overflow-tooltip="true" width="120" />
prop="tableName"
:show-overflow-tooltip="true"
width="120"
/>
<el-table-column
label="表描述"
align="center"
prop="tableComment"
:show-overflow-tooltip="true"
width="120"
/>
<el-table-column
label="实体"
align="center"
prop="className"
:show-overflow-tooltip="true"
width="120"
/>
<el-table-column label="创建时间" align="center" prop="createTime" width="160" /> <el-table-column label="创建时间" align="center" prop="createTime" width="160" />
<el-table-column label="更新时间" align="center" prop="updateTime" width="160" /> <el-table-column label="更新时间" align="center" prop="updateTime" width="160" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small" icon="el-icon-view" @click="handlePreview(scope.row)"
type="text" v-hasPermi="['tool:gen:preview']">预览</el-button>
size="small" <el-button type="text" size="small" icon="el-icon-edit" @click="handleEditTable(scope.row)"
icon="el-icon-view" v-hasPermi="['tool:gen:edit']">编辑</el-button>
@click="handlePreview(scope.row)" <el-button type="text" size="small" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['tool:gen:preview']" v-hasPermi="['tool:gen:remove']">删除</el-button>
>预览</el-button> <el-button type="text" size="small" icon="el-icon-refresh" @click="handleSynchDb(scope.row)"
<el-button v-hasPermi="['tool:gen:edit']">同步</el-button>
type="text" <el-button type="text" size="small" icon="el-icon-download" @click="handleGenTable(scope.row)"
size="small" v-hasPermi="['tool:gen:code']">生成代码</el-button>
icon="el-icon-edit"
@click="handleEditTable(scope.row)"
v-hasPermi="['tool:gen:edit']"
>编辑</el-button>
<el-button
type="text"
size="small"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['tool:gen:remove']"
>删除</el-button>
<el-button
type="text"
size="small"
icon="el-icon-refresh"
@click="handleSynchDb(scope.row)"
v-hasPermi="['tool:gen:edit']"
>同步</el-button>
<el-button
type="text"
size="small"
icon="el-icon-download"
@click="handleGenTable(scope.row)"
v-hasPermi="['tool:gen:code']"
>生成代码</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total>0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div> </div>
<!-- 预览界面 --> <!-- 预览界面 -->
<el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body class="scrollbar"> <el-dialog :title="preview.title" :visible.sync="preview.open" width="80%" top="5vh" append-to-body class="scrollbar">
<el-tabs v-model="preview.activeName"> <el-tabs v-model="preview.activeName">
<el-tab-pane <el-tab-pane v-for="(value, key) in preview.data"
v-for="(value, key) in preview.data" :label="key.substring(key.lastIndexOf('/') + 1, key.indexOf('.vm'))"
:label="key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))" :name="key.substring(key.lastIndexOf('/') + 1, key.indexOf('.vm'))" :key="key">
:name="key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))" <el-link :underline="false" icon="el-icon-document-copy" v-clipboard:copy="value"
:key="key" v-clipboard:success="clipboardSuccess" style="float:right">复制</el-link>
>
<el-link :underline="false" icon="el-icon-document-copy" v-clipboard:copy="value" v-clipboard:success="clipboardSuccess" style="float:right">复制</el-link>
<pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre> <pre><code class="hljs" v-html="highlightedCode(value, key)"></code></pre>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -252,7 +169,7 @@ export default {
this.loading = true; this.loading = true;
listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => { listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.tableList = response.rows; this.tableList = response.rows;
this.total = response.total; this.total = Number(response.total);
this.loading = false; this.loading = false;
} }
); );
@ -269,7 +186,7 @@ export default {
this.$modal.msgError("请选择要生成的数据"); this.$modal.msgError("请选择要生成的数据");
return; return;
} }
if(row.genType === "1") { if (row.genType === "1") {
genCode(row.tableName).then(response => { genCode(row.tableName).then(response => {
this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath); this.$modal.msgSuccess("成功生成到自定义路径:" + row.genPath);
}); });
@ -280,11 +197,11 @@ export default {
/** 同步数据库操作 */ /** 同步数据库操作 */
handleSynchDb(row) { handleSynchDb(row) {
const tableName = row.tableName; const tableName = row.tableName;
this.$modal.confirm('确认要强制同步"' + tableName + '"表结构吗?').then(function() { this.$modal.confirm('确认要强制同步"' + tableName + '"表结构吗?').then(function () {
return synchDb(tableName); return synchDb(tableName);
}).then(() => { }).then(() => {
this.$modal.msgSuccess("同步成功"); this.$modal.msgSuccess("同步成功");
}).catch(() => {}); }).catch(() => { });
}, },
/** 打开导入表弹窗 */ /** 打开导入表弹窗 */
openImportTable() { openImportTable() {
@ -332,12 +249,12 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const tableIds = row.tableId || this.ids; const tableIds = row.tableId || this.ids;
this.$modal.confirm('是否确认删除表编号为"' + tableIds + '"的数据项?').then(function() { this.$modal.confirm('是否确认删除表编号为"' + tableIds + '"的数据项?').then(function () {
return delTable(tableIds); return delTable(tableIds);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$modal.msgSuccess("删除成功"); this.$modal.msgSuccess("删除成功");
}).catch(() => {}); }).catch(() => { });
} }
} }
}; };

BIN
测试.zip

Binary file not shown.
Loading…
Cancel
Save