diff --git a/package.json b/package.json
index 1832293..46f88af 100644
--- a/package.json
+++ b/package.json
@@ -43,6 +43,7 @@
"clipboard": "2.0.8",
"core-js": "3.37.1",
"decimal.js": "^10.4.3",
+ "driver.js": "^1.3.5",
"echarts": "5.4.0",
"element-ui": "2.15.14",
"file-saver": "2.0.5",
diff --git a/public/favicon.ico b/public/favicon.ico
index 05726a9..89f0042 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/src/api/system/user.js b/src/api/system/user.js
index 3ce258b..bab6628 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -152,3 +152,12 @@ export function deptTreeSelect() {
method: 'get'
})
}
+
+// 已读导览
+export function readGuide(key) {
+ return request({
+ url: '/system/user/guide',
+ method: 'put',
+ params: { key }
+ })
+}
diff --git a/src/assets/logo/logo.png b/src/assets/logo/logo.png
index 4856c70..13836f1 100644
Binary files a/src/assets/logo/logo.png and b/src/assets/logo/logo.png differ
diff --git a/src/components/Avatar/index.vue b/src/components/Avatar/index.vue
index 21c6031..4067106 100644
--- a/src/components/Avatar/index.vue
+++ b/src/components/Avatar/index.vue
@@ -72,13 +72,16 @@ export default {
align-items: center;
justify-content: center;
border-radius: 50%;
+ overflow: hidden;
+ vertical-align: middle;
::v-deep .el-avatar {
- display: flex;
+ display: inline-flex;
align-items: center;
justify-content: center;
background-color: inherit;
font-size: 16px;
+ vertical-align: middle;
}
}
\ No newline at end of file
diff --git a/src/components/Business/Area/AreaLink.vue b/src/components/Business/Area/AreaLink.vue
new file mode 100644
index 0000000..452554d
--- /dev/null
+++ b/src/components/Business/Area/AreaLink.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/router/index.js b/src/router/index.js
index 5b6b676..442ed66 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -121,6 +121,12 @@ export const constantRoutes = [
component: () => import('@/views/system/user/view/view.vue'),
name: 'UserView',
meta: { title: '用户详情' }
+ },
+ {
+ path: 'area/:id?',
+ component: () => import('@/views/bst/area/view/view.vue'),
+ name: 'AreaView',
+ meta: { title: '运营区详情' }
}
]
},
diff --git a/src/store/getters.js b/src/store/getters.js
index 74490a9..44b63b0 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -10,6 +10,7 @@ const getters = {
userId: state => state.user.id,
name: state => state.user.name,
nickName: state => state.user.nickName,
+ guides: state => state.user.guides,
introduction: state => state.user.introduction,
roles: state => state.user.roles,
permissions: state => state.user.permissions,
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 270b02b..90f6f4f 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,4 +1,5 @@
import { getInfo, login, logout } from '@/api/login';
+import { readGuide } from '@/api/system/user';
import { getToken, removeToken, setToken } from '@/utils/auth';
// import { Watermark } from '@pansy/watermark';
@@ -15,6 +16,7 @@ const user = {
permissions: [],
deptId: null,
userType: null,
+ guides: [],
},
mutations: {
@@ -41,31 +43,12 @@ const user = {
},
SET_NICK_NAME: (state, nickName) => {
state.nickName = nickName;
-
- // if (watermark) {
- // watermark.destroy();
- // }
- // // 创建水印
- // watermark = new Watermark({
- // // 水印文案,支持多行
- // text: nickName,
- // // 水印文案样式
- // font: {
- // fontSize: 16,
- // color: 'rgba(0, 0, 0)',
- // fontFamily: 'sans-serif'
- // },
- // // 水印之间的间距
- // gap: [300, 300],
- // // 旋转角度
- // rotate: -20,
- // // 设置水印层级
- // zIndex: 9999,
- // opacity: 0.1,
- // })
},
SET_USER_TYPE: (state, userType) => {
state.userType = userType;
+ },
+ SET_GUIDES: (state, guides) => {
+ state.guides = guides;
}
},
@@ -105,6 +88,7 @@ const user = {
commit('SET_AVATAR', avatar)
commit('SET_DEPT_ID', user.deptId)
commit('SET_USER_TYPE', user.userType)
+ commit('SET_GUIDES', user.guides)
resolve(res)
}).catch(error => {
reject(error)
@@ -134,6 +118,14 @@ const user = {
removeToken()
resolve()
})
+ },
+ // 添加导览
+ ADD_GUIDES({commit, state}, key) {
+ return new Promise((resolve, reject) => {
+ readGuide(key).then(() => {
+ commit('SET_GUIDES', [...state.guides, key])
+ });
+ });
}
}
}
diff --git a/src/utils/guide.js b/src/utils/guide.js
new file mode 100644
index 0000000..49d0dbb
--- /dev/null
+++ b/src/utils/guide.js
@@ -0,0 +1,161 @@
+/**
+ * 用户引导
+ */
+
+import store from "@/store";
+import { driver } from "driver.js";
+import "driver.js/dist/driver.css";
+export function startGuide(guideKey) {
+ let guides = store.getters.guides;
+ if (guides == null || !guides.includes(guideKey)) {
+ let guide = guideSet[guideKey];
+ if (guide) {
+ guide.start();
+ }
+ }
+}
+
+const guideSet = {
+ MchIndex: {
+ start() {
+ const driverObj = driver({
+ showProgress: true,
+ animate: true,
+ nextBtnText: '下一步',
+ prevBtnText: '上一步',
+ doneBtnText: '完成',
+ closeBtnText: '关闭',
+ allowClose: false,
+ onDestroyed: () => {
+ // 导览完成后调用接口
+ store.dispatch("ADD_GUIDES", "MchIndex");
+ },
+ steps: [
+ {
+ popover: {
+ title: '欢迎使用小鹿骑行管理系统',
+ description: '接下来我们将带您了解系统的主要功能区域',
+ side: "center",
+ align: 'center'
+ }
+ },
+ {
+ element: '#mch-stat',
+ popover: {
+ title: '运营统计',
+ description: '这里显示您的运营数据统计信息,包括订单数量、金额等关键指标。',
+ side: "bottom",
+ align: 'start'
+ }
+ },
+ {
+ element: '#device-stat',
+ popover: {
+ title: '车辆统计',
+ description: '这里展示设备相关的统计信息,包括设备总数、在线状态等。',
+ side: "bottom",
+ align: 'start'
+ }
+ },
+ {
+ element: '#order-daily-stat',
+ popover: {
+ title: '每日流水统计',
+ description: '这里展示每日的订单流水统计图表,帮助您了解业务趋势。',
+ side: "left",
+ align: 'start'
+ }
+ },
+ {
+ element: '#balance-panel',
+ popover: {
+ title: '账户信息',
+ description: '这里显示您的账户余额、待分润金额等信息,方便您随时查看收益情况。',
+ side: "right",
+ align: 'start'
+ }
+ },
+ {
+ popover: {
+ title: '小程序管理',
+ description: `
+
+
您还可以通过小鹿骑行小程序随时随地管理您的业务,扫码即可体验。
+

+
+ `,
+ side: "center",
+ align: 'center'
+ }
+ }
+ ]
+ });
+
+ driverObj.drive();
+ }
+ },
+ AreaSub: {
+ start() {
+ const driverObj = driver({
+ showProgress: true,
+ animate: true,
+ nextBtnText: '下一步',
+ prevBtnText: '上一步',
+ doneBtnText: '完成',
+ closeBtnText: '关闭',
+ allowClose: false,
+ onDestroyed: () => {
+ store.dispatch("ADD_GUIDES", "AreaSub");
+ },
+ steps: [
+ {
+ popover: {
+ title: '子区域管理',
+ description: '欢迎使用子区域管理功能,这里您可以管理运营区下的子区域和电子围栏。',
+ side: "center",
+ align: 'center'
+ }
+ },
+ {
+ element: '.sub-area-list',
+ popover: {
+ title: '子区域列表',
+ description: '左侧显示当前运营区下的所有子区域列表,您可以在这里查看和管理子区域。',
+ side: "right",
+ align: 'start'
+ }
+ },
+ {
+ element: '.map-container',
+ popover: {
+ title: '地图操作区',
+ description: '右侧地图区域是您的主要操作区域,您可以在这里进行以下操作:管理子区域、修改电子围栏、查看区域详情。',
+ side: "left",
+ align: 'start'
+ }
+ },
+ {
+ element: '#add-sub',
+ popover: {
+ title: '新增子区域',
+ description: '点击按钮,即可开始在地图上绘制区域(停车区、禁行区、禁停区)',
+ side: "left",
+ align: 'start'
+ }
+ },
+ {
+ element: '#area-edit',
+ popover: {
+ title: '电子围栏操作',
+ description: '点击此处可以编辑电子围栏',
+ side: "left",
+ align: 'start'
+ }
+ }
+ ]
+ });
+
+ driverObj.drive();
+ }
+ }
+}
diff --git a/src/views/bst/agreement/index.vue b/src/views/bst/agreement/index.vue
index 346225a..c537ab8 100644
--- a/src/views/bst/agreement/index.vue
+++ b/src/views/bst/agreement/index.vue
@@ -76,7 +76,11 @@
-
+
+
+
+
+
@@ -192,6 +196,7 @@ import Editor from "@/components/Editor/index.vue";
import AreaRemoteSelect from "@/components/Business/Area/AreaRemoteSelect.vue";
import UserLink from "@/components/Business/User/UserLink.vue";
import {isSysAdmin} from "@/utils/permission";
+import AreaLink from '@/components/Business/Area/AreaLink.vue'
// 默认排序字段
const defaultSort = {
@@ -203,7 +208,13 @@ export default {
name: "Agreement",
mixins: [$showColumns],
dicts: ['agreement_type', 'agreement_content_type'],
- components: {FormCol, Editor, AreaRemoteSelect, UserLink},
+ components: {FormCol, Editor, AreaRemoteSelect, UserLink, AreaLink},
+ props: {
+ query: {
+ type: Object,
+ default: () => ({})
+ },
+ },
data() {
return {
span: 24,
@@ -326,6 +337,7 @@ export default {
},
},
created() {
+ Object.assign(this.queryParams, this.query);
this.getList();
},
methods: {
diff --git a/src/views/bst/area/index.vue b/src/views/bst/area/index.vue
index 2a9fbe0..a18e895 100644
--- a/src/views/bst/area/index.vue
+++ b/src/views/bst/area/index.vue
@@ -104,7 +104,7 @@
{{d.row[column.key]}}
- {{d.row.name}}
+
@@ -131,6 +131,13 @@
+ 详情
+
+
+
+
+ {{ detail.name }}
+
+
+
+ {{ detail.areaTimeStart | dv }} - {{ detail.areaTimeEnd | dv }}
+
+
+
+
+
+
+
+ {{ detail.createTime | dv }}
+ {{ detail.remark | dv }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/bst/areaJoin/index.vue b/src/views/bst/areaJoin/index.vue
index 522a857..627a2df 100644
--- a/src/views/bst/areaJoin/index.vue
+++ b/src/views/bst/areaJoin/index.vue
@@ -12,7 +12,7 @@
+
+
+
{{d.row[column.key]}}
@@ -149,7 +152,7 @@
:id="editId"
:init-data="initData"
@success="getList"
- :types="types"
+ :types="queryParams.types"
/>
@@ -160,7 +163,8 @@ import { $showColumns } from '@/utils/mixins';
import AreaJoinEditDialog from './components/AreaJoinEditDialog';
import UserLink from '@/components/Business/User/UserLink.vue';
import AreaRemoteSelect from '@/components/Business/Area/AreaRemoteSelect.vue';
-
+import { isEmpty } from '@/utils';
+import AreaLink from '@/components/Business/Area/AreaLink.vue';
// 默认排序字段
const defaultSort = {
prop: "createTime",
@@ -171,7 +175,13 @@ export default {
name: "AreaJoin",
mixins: [$showColumns],
dicts: ['area_join_type', 'area_join_permission'],
- components: { AreaJoinEditDialog, UserLink, AreaRemoteSelect },
+ components: { AreaJoinEditDialog, UserLink, AreaRemoteSelect, AreaLink },
+ props: {
+ query: {
+ type: Object,
+ default: null
+ },
+ },
data() {
return {
// 字段列表
@@ -218,14 +228,18 @@ export default {
areaId: null,
userId: null,
remark: null,
- createId: null
+ createId: null,
+ types: []
},
- types: [], // 类型列表
};
},
created() {
this.types = this.$route.query?.types?.split(',') || [];
+ if (!isEmpty(this.propTypes)) {
+ this.types = this.propTypes;
+ }
this.queryParams.types = this.types;
+ Object.assign(this.queryParams, this.query);
this.getList();
},
methods: {
diff --git a/src/views/bst/areaSub/components/AreaMap.vue b/src/views/bst/areaSub/components/AreaMap.vue
index 1cc5412..5b1817f 100644
--- a/src/views/bst/areaSub/components/AreaMap.vue
+++ b/src/views/bst/areaSub/components/AreaMap.vue
@@ -9,8 +9,8 @@
-
+
@@ -64,6 +64,7 @@ import { listSimpleArea } from '@/api/bst/area'
import BalancePanel from '@/views/bst/index/components/BalancePanel'
import OrderStat from '@/views/bst/index/components/OrderStat'
import { mapGetters } from 'vuex'
+import {startGuide} from '@/utils/guide'
export default {
name: 'Index',
@@ -99,6 +100,9 @@ export default {
created() {
this.getUserInfo();
this.getAreaList();
+ this.$nextTick(()=> {
+ startGuide("MchIndex");
+ });
},
methods: {
getAreaList() {
diff --git a/src/views/bst/order/components/OrderRefundDialog.vue b/src/views/bst/order/components/OrderRefundDialog.vue
index ae8fb5b..089bd41 100644
--- a/src/views/bst/order/components/OrderRefundDialog.vue
+++ b/src/views/bst/order/components/OrderRefundDialog.vue
@@ -59,10 +59,10 @@ export default {
},
// 可退款金额
canRefundAmount() {
- let payAmount = this.detail.payAmount || 0;
+ let payedAmount = this.detail.payedAmount || 0;
let payRefunded = this.detail.payRefunded || 0;
let payRefunding = this.detail.payRefunding || 0;
- return payAmount - payRefunded - payRefunding;
+ return payedAmount - payRefunded - payRefunding;
}
},
methods: {
diff --git a/src/views/bst/order/index.vue b/src/views/bst/order/index.vue
index 3e96f5e..aca5f07 100644
--- a/src/views/bst/order/index.vue
+++ b/src/views/bst/order/index.vue
@@ -67,8 +67,8 @@
@keyup.enter.native="handleQuery"
/>
-
-
+
+
{{d.row.suitName | dv}}
-
+
@@ -162,13 +162,24 @@
- 实收:{{d.row.payedAmount - d.row.payRefunded - d.row.payRefunding | fix2 | dv}} 元
- 预存:{{d.row.depositFee | fix2 | dv}} 元
- 结算:{{d.row.totalFee | fix2 | dv}} 元
骑行:{{d.row.ridingFee | fix2 | dv}} 元
- 调度:{{d.row.dispatchFee | fix2 | dv}} 元
- 管理:{{d.row.manageFee | fix2 | dv}} 元
- 车损:{{d.row.deductionFee | fix2 | dv}} 元
+ 预存:{{d.row.depositFee | fix2 | dv}} 元
+
+
+
+
骑行费:{{d.row.ridingFee | fix2 | dv}} 元
+
调度费:{{d.row.dispatchFee | fix2 | dv}} 元
+
管理费:{{d.row.manageFee | fix2 | dv}} 元
+
车损费:{{d.row.deductionFee | fix2 | dv}} 元
+
+ 结算:{{d.row.totalFee | fix2 | dv}} 元
+
+
+ 实收:{{d.row.payedAmount - d.row.payRefunded - d.row.payRefunding | fix2 | dv}} 元
退款:{{d.row.payRefunded | fix2 | dv}} 元
(退款中:{{d.row.payRefunding | fix2 | dv}} 元)
@@ -212,7 +223,8 @@
-
{{d.row.areaName | dv}}
+
+
@@ -283,6 +295,7 @@ import { toDescriptionFromSecond } from '@/utils/date';
import UserLink from '@/components/Business/User/UserLink.vue';
import DeviceLink from '@/components/Business/Device/DeviceLink.vue'
import OrderLink from '@/components/Business/Order/OrderLink.vue'
+import AreaLink from '@/components/Business/Area/AreaLink.vue';
// 默认排序字段
const defaultSort = {
@@ -294,7 +307,7 @@ export default {
name: "Order",
mixins: [$showColumns],
dicts: ['order_status', 'suit_type', 'order_return_type', 'order_return_mode', 'suit_rental_unit', 'suit_riding_rule'],
- components: {FormCol, OrderRefundDialog, OrderVerifyDialog, UserLink, DeviceLink, OrderLink},
+ components: {FormCol, OrderRefundDialog, OrderVerifyDialog, UserLink, DeviceLink, OrderLink, AreaLink},
props: {
query: {
type: Object,
@@ -346,6 +359,7 @@ export default {
pageSize: 20,
orderByColumn: defaultSort.prop,
isAsc: defaultSort.order,
+ statusList: OrderStatus.valid(),
id: null,
no: null,
type: null,
diff --git a/src/views/bst/order/view/view.vue b/src/views/bst/order/view/view.vue
index 05299e4..6e38999 100644
--- a/src/views/bst/order/view/view.vue
+++ b/src/views/bst/order/view/view.vue
@@ -2,6 +2,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
骑行费:{{detail.ridingFee | fix2 | dv}} 元
+
调度费:{{detail.dispatchFee | fix2 | dv}} 元
+
管理费:{{detail.manageFee | fix2 | dv}} 元
+
车损费:{{detail.deductionFee | fix2 | dv}} 元
+
+
+
+
+
+
+ 结算金额
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ (退款中:{{ detail.payRefunding | fix2 | dv }} 元)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- {{ detail.no | dv}}
+
+ {{ detail.no | dv}}
+
+
- {{ detail.areaName | dv}}
+
+
+
{{ detail.createTime | dv}}
{{ detail.startTime | dv}}
{{ detail.endTime | dv}}
- {{ detail.maxTime | dv}}
{{ orderDuration | dv}}
{{ detail.distance / 1000 | fix2 | dv}} 公里
{{ detail.endReason | dv }}
@@ -50,27 +143,10 @@
-
-
- {{ detail.depositFee | fix2 | dv }} 元
- {{ detail.totalFee | fix2 | dv }} 元
- {{ detail.ridingFee | fix2 | dv }} 元
- {{ detail.dispatchFee | fix2 | dv }} 元
- {{ detail.manageFee | fix2 | dv }} 元
- {{ detail.deductionFee | fix2 | dv }} 元
-
- {{ detail.payRefunded | fix2 | dv }} 元
-
- (退款中:{{ detail.payRefunding | fix2 | dv }} 元)
-
-
- {{ detail.payedAmount - detail.payRefunded - detail.payRefunding | fix2 | dv }} 元
-
-
-
+
{{ detail.suitName }}
@@ -102,21 +178,6 @@
-
-
@@ -160,7 +221,7 @@
-
+
@@ -207,6 +268,7 @@ import CommandLog from '@/views/bst/commandLog/index.vue'
import DeviceLink from '@/components/Business/Device/DeviceLink.vue'
import UserLink from '@/components/Business/User/UserLink.vue'
import {getOrderDuration} from '@/views/bst/order/util'
+import AreaLink from '@/components/Business/Area/AreaLink.vue'
export default {
name: 'OrderView',
@@ -223,7 +285,8 @@ export default {
Operlog,
CommandLog,
DeviceLink,
- UserLink
+ UserLink,
+ AreaLink
},
data() {
return {
@@ -249,6 +312,9 @@ export default {
this.getDetail()
},
methods: {
+ handleCopySuccess() {
+ this.$message.success("复制成功");
+ },
toDescriptionFromSecond,
getDetail() {
this.loading = true
@@ -284,4 +350,15 @@ export default {
},
}
}
-
\ No newline at end of file
+
+
+
+
diff --git a/src/views/bst/refund/index.vue b/src/views/bst/refund/index.vue
index ee1d310..431811c 100644
--- a/src/views/bst/refund/index.vue
+++ b/src/views/bst/refund/index.vue
@@ -74,6 +74,7 @@
{{d.row.reason | dv}}
+
@@ -119,7 +120,7 @@ const defaultSort = {
export default {
name: "Refund",
mixins: [$showColumns],
- dicts: ['refund_status', 'pay_bst_type'],
+ dicts: ['refund_status', 'pay_bst_type', 'refund_type'],
components: {FormCol, UserLink, OrderLink},
props: {
query: {
diff --git a/src/views/login.vue b/src/views/login.vue
index 6a1ce8e..b5cc1c5 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -172,8 +172,8 @@ export default {
.bg-box {
flex: 1;
- background-image: url("../assets/images/login-background.png");
- -webkit-background-image: url("../assets/images/login-background.png");
+ background-image: url("https://api.ccttiot.com/fd7f9ab7c2bb4ddd816282cc91079230dbfd985b1092f-I7XJ3y-1745887744159.jpg");
+ -webkit-background-image: url("https://api.ccttiot.com/fd7f9ab7c2bb4ddd816282cc91079230dbfd985b1092f-I7XJ3y-1745887744159.jpg");
background-size: cover;
-webkit-background-size: cover;
background-position: center;
@@ -202,13 +202,18 @@ export default {
}
}
.login-form {
- position: relative;
+ position: absolute;
background: #ffffff;
- width: 480px;
- padding: 200px 64px 5px;
+ width: 420px;
+ padding: 48px 48px 24px ;
top: 0;
right: 0;
- height: calc(100vh - env(safe-area-inset-bottom));
+ left: 0;
+ bottom: 0;
+ margin: auto;
+ height: fit-content;
+ border-radius: 16px;
+ box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
.el-input {
height: 38px;
input {
diff --git a/src/views/monitor/operlog/index.vue b/src/views/monitor/operlog/index.vue
index 8c2e7e8..26e7a03 100644
--- a/src/views/monitor/operlog/index.vue
+++ b/src/views/monitor/operlog/index.vue
@@ -116,7 +116,11 @@
-
+
+
+
+
+
@@ -194,10 +198,14 @@
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 394e2a4..2b0adfa 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -119,12 +119,6 @@
{{d.row.dept == null ? '' : d.row.dept.deptName}}
-
-
-
-
-
-
{{ d.row.point | fix2 | dv }} %
@@ -145,8 +139,13 @@
{{role.roleName}}
-
-
+
+
+
+
+
+
+
@@ -239,6 +238,7 @@ import BooleanTag from '@/components/BooleanTag/index.vue'
import UserLink from '@/components/Business/User/UserLink.vue'
import RoleSelect from '@/components/Business/Role/RoleSelect.vue'
import UserShowPasswordDialog from '@/views/system/user/components/UserShowPasswordDialog.vue'
+import Avatar from '@/components/Avatar/index.vue'
// 默认排序字段
const defaultSort = {
@@ -250,7 +250,7 @@ export default {
name: "User",
mixins: [$showColumns],
dicts: ['user_status', 'sys_user_sex', 'user_employ_status', 'withdraw_service_type'],
- components: {UserFormDialog, FormCol, DeptSelect, BooleanTag, UserLink, RoleSelect, UserShowPasswordDialog},
+ components: {UserFormDialog, FormCol, DeptSelect, BooleanTag, UserLink, RoleSelect, UserShowPasswordDialog, Avatar},
data() {
return {
WithdrawServiceType,
@@ -300,15 +300,14 @@ export default {
// 列信息
columns: [
{key: 'userId', visible: false, label: 'ID', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
- {key: 'nickName', visible: true, label: '姓名', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
- {key: 'userName', visible: true, label: '账号', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
+ {key: 'nickName', visible: true, label: '姓名', minWidth: null, sortable: true, overflow: false, align: 'left', width: "250"},
{key: 'roles', visible: true, label: '角色', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'point', visible: true, label: '分成比例', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'withdrawServiceValue', visible: true, label: '提现服务费', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'bonusDelay', visible: true, label: '到账延迟', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'balance', visible: true, label: '余额', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
- {key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
- {key: 'isReal', visible: true, label: '实名状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
+ // {key: 'status', visible: true, label: '状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
+ // {key: 'isReal', visible: true, label: '实名状态', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'agentName', visible: true, label: '所属代理', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'deptName', visible: true, label: '归属部门', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
{key: 'email', visible: false, label: '邮箱', minWidth: null, sortable: true, overflow: false, align: 'center', width: null},
diff --git a/src/views/system/user/view/view.vue b/src/views/system/user/view/view.vue
index 99eaa40..d0661d4 100644
--- a/src/views/system/user/view/view.vue
+++ b/src/views/system/user/view/view.vue
@@ -15,7 +15,6 @@
{{ detail.roles.map(role => role.roleName).join(',') }}
-
{{ detail.point | fix2 | dv }} %
@@ -49,10 +48,10 @@
-
+
-
+
@@ -61,30 +60,45 @@
+
+
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -99,7 +113,7 @@ import UserStatistics from '@/views/system/user/view/components/UserStatistics'
import CollapsePanel from '@/components/CollapsePanel'
import BooleanTag from '@/components/BooleanTag'
import Bonus from '@/views/bst/bonus/index.vue'
-import { BonusArrivalType } from '@/utils/enums'
+import { BonusArrivalType, AreaJoinType, LogBizType } from '@/utils/enums'
import OrderDailyStat from '@/views/bst/index/components/OrderDailyStat.vue'
import Device from '@/views/bst/device/index.vue'
import AreaIndex from '@/views/bst/area/index.vue'
@@ -112,6 +126,8 @@ import Model from '@/views/bst/model/index.vue'
import OrderDevice from '@/views/bst/orderDevice/index.vue'
import Withdraw from '@/views/bst/withdraw/index.vue'
import RealName from '@/views/bst/realName/index.vue'
+import AreaJoin from '@/views/bst/areaJoin/index.vue'
+import OperLog from '@/views/monitor/operlog/index.vue'
export default {
name: 'UserView',
@@ -133,11 +149,15 @@ export default {
Model,
OrderDevice,
Withdraw,
- RealName
+ RealName,
+ AreaJoin,
+ OperLog
},
data() {
return {
BonusArrivalType,
+ AreaJoinType,
+ LogBizType,
detail: {
roles: []
},