diff --git a/src/api/system/channel.js b/src/api/system/channel.js
new file mode 100644
index 0000000..57e9cf9
--- /dev/null
+++ b/src/api/system/channel.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询充值渠道列表
+export function listChannel(query) {
+ return request({
+ url: '/system/channel/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询充值渠道详细
+export function getChannel(channelId) {
+ return request({
+ url: '/system/channel/' + channelId,
+ method: 'get'
+ })
+}
+
+// 新增充值渠道
+export function addChannel(data) {
+ return request({
+ url: '/system/channel',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改充值渠道
+export function updateChannel(data) {
+ return request({
+ url: '/system/channel',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除充值渠道
+export function delChannel(channelId) {
+ return request({
+ url: '/system/channel/' + channelId,
+ method: 'delete'
+ })
+}
diff --git a/src/api/system/channelWithdraw.js b/src/api/system/channelWithdraw.js
new file mode 100644
index 0000000..045e258
--- /dev/null
+++ b/src/api/system/channelWithdraw.js
@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询提现渠道列表
+export function listChannelWithdraw(query) {
+ return request({
+ url: '/ss/channelWithdraw/list',
+ method: 'get',
+ params: query
+ })
+}
+
+// 查询提现渠道详细
+export function getChannelWithdraw(channelId) {
+ return request({
+ url: '/ss/channelWithdraw/' + channelId,
+ method: 'get'
+ })
+}
+
+// 新增提现渠道
+export function addChannelWithdraw(data) {
+ return request({
+ url: '/ss/channelWithdraw',
+ method: 'post',
+ data: data
+ })
+}
+
+// 修改提现渠道
+export function updateChannelWithdraw(data) {
+ return request({
+ url: '/ss/channelWithdraw',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除提现渠道
+export function delChannelWithdraw(channelId) {
+ return request({
+ url: '/ss/channelWithdraw/' + channelId,
+ method: 'delete'
+ })
+}
diff --git a/src/components/FormCol/index.vue b/src/components/FormCol/index.vue
new file mode 100644
index 0000000..2543509
--- /dev/null
+++ b/src/components/FormCol/index.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
index 55cc2df..8fb0758 100644
--- a/src/main.js
+++ b/src/main.js
@@ -37,6 +37,8 @@ import ImageUpload from "@/components/ImageUpload"
import ImagePreview from "@/components/ImagePreview"
// 字典标签组件
import DictTag from '@/components/DictTag'
+// 行内表单组件
+import FormCol from '@/components/FormCol/index.vue'
// 头部标签组件
import VueMeta from 'vue-meta'
// 字典数据组件
@@ -71,6 +73,7 @@ Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)
Vue.component('AreaMap', AreaMap)
Vue.component('Map', Map)
+Vue.component('FormCol', FormCol)
Vue.use(directive)
Vue.use(plugins)
diff --git a/src/router/index.js b/src/router/index.js
index 04f3952..0c115a8 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -134,6 +134,20 @@ export const dynamicRoutes = [
}
]
},
+ {
+ path: '/user/user/userName',
+ component: Layout,
+ hidden: true,
+ permissions: ['user:user:list'],
+ children: [
+ {
+ path: 'index/:userName',
+ component: () => import('@/views/user/user'),
+ name: 'Data',
+ meta: { title: 'APP用户信息', activeMenu: '/system/user' }
+ }
+ ]
+ },
{
path: '/system/device/sn',
component: Layout,
diff --git a/src/utils/mixins.js b/src/utils/mixins.js
new file mode 100644
index 0000000..32626fa
--- /dev/null
+++ b/src/utils/mixins.js
@@ -0,0 +1,53 @@
+
+// 充值服务费
+export const $serviceType = {
+ computed: {
+ // 服务费单位
+ serviceUnit() {
+ return (type) => {
+ return type === '2' ? '元' : '%';
+ }
+ }
+ }
+}
+
+// 提现服务费
+export const $withdrawServiceType = {
+ computed: {
+ // 提现服务费单位
+ withdrawServiceUnit() {
+ return (type) => {
+ return type === '2' ? '元' : '%';
+ }
+ }
+ }
+}
+
+
+/**
+ * 显隐列
+ **/
+export const $showColumns = {
+ data() {
+ return {
+ columns: []
+ }
+ },
+ computed: {
+ showColumns() {
+ if (this.columns == null) {
+ return [];
+ }
+ return this.columns.filter(item => item.visible);
+ },
+ isShow() {
+ return (key) => {
+ if (this.columns == null) {
+ return false;
+ }
+ let column = this.columns.find(item => item.key === key);
+ return column != null && column.visible;
+ }
+ }
+ },
+}
diff --git a/src/views/system/channel/index.vue b/src/views/system/channel/index.vue
new file mode 100644
index 0000000..ab16e5c
--- /dev/null
+++ b/src/views/system/channel/index.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {onChangeEnabled(d.row, nv)}"/>
+
+
+
+ {{d.row.costRate | money}} %
+
+
+
+ 修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/channelWithdraw/index.vue b/src/views/system/channelWithdraw/index.vue
new file mode 100644
index 0000000..d1cafab
--- /dev/null
+++ b/src/views/system/channelWithdraw/index.vue
@@ -0,0 +1,385 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 是
+ 否
+
+
+
+ 搜索
+ 重置
+
+
+
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+ {{d.row[column.key]}}
+
+
+
+
+
+ {onChangeEnabled(d.row, nv)}"/>
+
+
+
+
+
+ {{d.row.serviceRate | money}} {{withdrawServiceUnit(d.row.serviceType)}}
+
+
+ {{d.row.costRate | money}} %
+
+
+
+
+
+ {{d.row[column.key] | money}} 元
+
+
+ {{d.row[column.key]}}
+
+
+
+
+
+
+ 修改
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{withdrawServiceUnit(form.withdrawType)}}
+
+
+
+
+
+ %
+
+
+
+
+ 元
+
+
+
+
+ 元
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system/flow/index.vue b/src/views/system/flow/index.vue
index 462814d..2f4f793 100644
--- a/src/views/system/flow/index.vue
+++ b/src/views/system/flow/index.vue
@@ -2,7 +2,7 @@
-
+
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+ {{ scope.row.orderNo }}
+
+
+
+
@@ -120,22 +128,22 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -294,6 +302,19 @@ export default {
const key = column.property;
return parseFloat(row[key] || 0).toFixed(2);
},
+ formatAmount2(row) {
+ if (row.operatorDividend == null) return '';
+ // 将值转换为字符串,检查是否带有 "-"
+ let amount = parseFloat(row.operatorDividend).toFixed(2);
+
+ // 如果带有 "-",则直接返回原值
+ if (amount.startsWith('-')) {
+ return amount;
+ }
+
+ // 如果不带 "-",在前面加上 "+"
+ return `+${amount}`;
+ },
/** 查询资金流水列表 */
getList() {
this.loading = true;
diff --git a/src/views/system/order/index.vue b/src/views/system/order/index.vue
index 456afea..eabbfc9 100644
--- a/src/views/system/order/index.vue
+++ b/src/views/system/order/index.vue
@@ -87,56 +87,124 @@
-
-
-
+
-
- {{ scope.row.sn }}
-
+
+ {{ scope.row.orderNo }}
+
+
+ {{ scope.row.userName }}
+
+
-
+
+
+
+
+
+
+
+
+
-
- {{ scope.row.vehicleNum }}
-
+
+
+ SN: {{ scope.row.sn }}
+
+
+
+ 车牌号: {{ scope.row.vehicleNum }}
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
+
- {{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+ 创建时间:{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+ 开始骑行:{{ parseTime(scope.row.unlockTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+ 结束骑行:{{ parseTime(scope.row.returnTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+ 支付时间:{{ parseTime(scope.row.payTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{ parseTime(scope.row.unlockTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+ 总:{{ formatFee(scope.row.totalFee) }}
+ 预约费:{{ formatFee(scope.row.appointmentFee) }}
+ 骑行费:{{ formatFee(scope.row.ridingFee) }}
+ 运营区外调度费:{{ formatFee(scope.row.dispatchFee) }}
+ 停车点外调度费:{{ formatFee(scope.row.manageFee) }}
+
-
+
+
+
+
+
+
+
+
+
+
- {{ parseTime(scope.row.returnTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
+
+ 时长: {{ formatDuration(scope.row) }}
+ 距离: {{ formatDistance(scope.row) }}
+
-
-
- {{ parseTime(scope.row.payTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
-
-
-
-
-
-
-
-
-
-
-
+
{
diff --git a/src/views/user/user/index.vue b/src/views/user/user/index.vue
index 686d992..c55cd97 100644
--- a/src/views/user/user/index.vue
+++ b/src/views/user/user/index.vue
@@ -500,6 +500,10 @@ export default {
};
},
created() {
+ const userName = this.$route.params && this.$route.params.userName;
+ if (userName != null) {
+ this.queryParams.userName = userName;
+ }
this.getList();
this.getAreaList();
this.getConfigKey("sys.user.initPassword").then(response => {