From df3902e7eae5dd38a2d47aa63e5f27131f701db9 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 20 四月 2026 13:49:14 +0800
Subject: [PATCH] 绩效管理模块调整
---
src/views/system/user/index.vue | 63 ++++++++++++++++++++++++++++++-
1 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 3306ae7..f7f14d0 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -47,7 +47,7 @@
</div>
</div>
<el-col>
- <el-table v-loading="loading" :data="userList" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
+ <el-table row-id="userId" ref="dragTable" v-loading="loading" :data="userList" :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
<el-table-column label="搴忓彿" align="center" type="index" />
<el-table-column label="濮撳悕" align="center" key="nickName" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="璐﹀彿" align="center" key="userName" prop="userName" :show-overflow-tooltip="true" />
@@ -75,6 +75,7 @@
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
+ :page-sizes="[20,50,100,200,500]"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col>
</pane>
@@ -299,7 +300,8 @@
uploadFile,
selectRoleList,
selectCustomEnum,
- addDepartment
+ addDepartment,
+ updateUserSort
} from "@/api/system/user";
import {optionSelect} from '@/api/system/post'
import { getToken } from "@/utils/auth";
@@ -307,6 +309,7 @@
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { Splitpanes, Pane } from "splitpanes";
import "splitpanes/dist/splitpanes.css";
+import Sortable from "sortablejs";
export default {
nickName: "User",
@@ -378,7 +381,7 @@
// 鏌ヨ鍙傛暟
queryParams: {
pageNum: 1,
- pageSize: 10,
+ pageSize: 20,
nickName: undefined,
phonenumber: undefined,
status: undefined,
@@ -467,6 +470,7 @@
fatherId: 10001,
nickName: '',
},
+ sortTable: null,
};
},
watch: {
@@ -482,7 +486,52 @@
this.initPassword = response.msg;
});
},
+ mounted(){
+ // 鎸傝浇鍚庡垵濮嬪寲鎷栨嫿
+ this.initDrag()
+ },
methods: {
+ //琛ㄦ牸琛屾嫋鎷芥帓搴�
+ initDrag() {
+ // 鑾峰彇 el-table 鐨� tbody 鍏冪礌锛堟嫋鎷界殑鐩爣瀹瑰櫒锛�
+ const tbody = this.$refs.dragTable.$el.querySelector(
+ '.el-table__body-wrapper tbody'
+ )
+
+ // 鍒濆鍖� Sortable
+ this.sortable = Sortable.create(tbody, {
+ animation: 150, // 鎷栨嫿鍔ㄧ敾杩囨浮鏃堕暱
+ ghostClass: 'sortable-ghost', // 鎷栨嫿鍗犱綅绗︽牱寮�
+ chosenClass: 'sortable-chosen', // 閫変腑琛屾牱寮�
+ dragClass: 'sortable-drag', // 鎷栨嫿鍏冪礌鏍峰紡
+ // 鎷栨嫿缁撴潫瑙﹀彂锛堟牳蹇冮�昏緫锛�
+ onEnd: ({ oldIndex, newIndex }) => {
+ // oldIndex锛氬師绱㈠紩锛宯ewIndex锛氭柊绱㈠紩
+ const defNum = (this.queryParams.pageNum-1)*this.queryParams.pageSize
+ // const row = this.userList[oldIndex]
+ // let sort = newIndex+defNum;//鎺掑簭涓嬫爣
+ const row = this.userList.splice(oldIndex, 1)[0]
+ this.userList.splice(newIndex, 0, row)
+ const data = this.userList.map(item=>{return {userId:item.userId,userName:item.userName}})
+ console.log(data)
+ console.log(this.userList)
+ // 璋冪敤鎺ュ彛鏇存柊鎺掑簭
+ // let data = {
+ // userId:row.userId,
+ // sort: sort
+ // }
+ // updateUserSort(data).then(res=>{
+ // if(res.code===200){
+ // this.$message.success("鏇存柊鎴愬姛")
+ // this.$nextTick(()=>{
+ // this.getList()
+ // })
+ // }
+ // })
+
+ },
+ })
+ },
/** 鏌ヨ鐢ㄦ埛鍒楄〃 */
getList() {
this.loading = true;
@@ -909,6 +958,14 @@
</script>
<style scoped lang="scss">
+:deep(.sortable-ghost) {
+ opacity: 0.8;
+ background: #f0f9eb;
+}
+:deep(.sortable-chosen) {
+ cursor: move;
+ background: #e1f3d8;
+}
.search_form {
display: flex;
justify-content: space-between;
--
Gitblit v1.9.3