From 772190e7b2e3f6ef0695ba54d9209324acdcb30a Mon Sep 17 00:00:00 2001
From: 艺术家 <10819716+q100102@user.noreply.gitee.com>
Date: 星期三, 04 六月 2025 13:57:17 +0800
Subject: [PATCH] 伸缩杆代码提交
---
项目代码/伸缩杆/client/src/views/tts/UserManagement/Usermanagement.vue | 1151 ++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 1,018 insertions(+), 133 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue"
index 3e9ce22..3b86e55 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue"
@@ -14,6 +14,18 @@
>
鐢ㄦ埛瑙掕壊
</div>
+ <div
+ :class="['item', isactive == 3 ? 'isactive' : '']"
+ @click="changeactive(3)"
+ >
+ 鐢ㄦ埛鐝粍
+ </div>
+ <div
+ :class="['item', isactive == 4 ? 'isactive' : '']"
+ @click="changeactive(4)"
+ >
+ 鐢ㄦ埛鍗曚綅
+ </div>
</div>
<div class="serch">
<div class="time_box">
@@ -31,6 +43,7 @@
height: 2rem;
border-left: 0;
"
+ class="time_picker"
format="YYYY-MM-DD HH:mm:ss"
type="datetimerange"
range-separator="~"
@@ -46,6 +59,7 @@
placeholder="璇烽�夋嫨"
size="small"
style="width: 100%; font-size: 0.15rem"
+ class="select"
>
<el-option
v-for="item in selectoptions"
@@ -65,10 +79,15 @@
@click="handleQuery"
type="primary"
size="small"
- style="margin-left: 0.98rem; height: 2rem"
+ style="margin-left: 0.98rem; height: 2.5rem"
+ class="text_btn"
>鏌ヨ</el-button
>
- <el-button size="small" style="height: 2rem" @click="resetQuery"
+ <el-button
+ size="small"
+ style="height: 2.5rem"
+ class="text_btn"
+ @click="resetQuery"
>閲嶇疆</el-button
>
</div>
@@ -87,6 +106,7 @@
display: flex;
align-items: center;
"
+ class="text_btn"
><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
>鏂板缓</el-button
>
@@ -103,6 +123,41 @@
display: flex;
align-items: center;
"
+ class="text_btn"
+ ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
+ >鏂板缓</el-button
+ >
+ <!-- 鐢ㄦ埛鐝粍鏂板缓 -->
+ <el-button
+ v-if="isactive == 3"
+ type="primary"
+ size="small"
+ @click="AddGroup"
+ style="
+ width: 5.5rem;
+ height: 2rem;
+ font-size: 0.88rem;
+ display: flex;
+ align-items: center;
+ "
+ class="text_btn"
+ ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
+ >鏂板缓</el-button
+ >
+ <!-- 鐢ㄦ埛鍗曚綅鏂板缓 -->
+ <el-button
+ v-if="isactive == 4"
+ type="primary"
+ size="small"
+ @click="AddUnit"
+ style="
+ width: 5.5rem;
+ height: 2rem;
+ font-size: 0.88rem;
+ display: flex;
+ align-items: center;
+ "
+ class="text_btn"
><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
>鏂板缓</el-button
>
@@ -110,12 +165,14 @@
size="small"
style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
@click="printExcel"
+ class="text_btn"
>鎵归噺瀵煎嚭</el-button
>
<el-button
@click="deleteAll"
size="small"
style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
+ class="text_btn"
>鎵归噺鍒犻櫎</el-button
>
</div>
@@ -124,22 +181,40 @@
<!-- 鐢ㄦ埛鍒楄〃 -->
<el-table
empty-text="鏆傛棤鏁版嵁"
- height="450"
+ :height="isMin ? '950' : '450'"
v-if="isactive == 1"
:data="tableData"
style="width: 100%"
- :header-cell-style="{
- background: 'rgba(250,250,250,1)',
- color: '#101010',
- fontSize: '0.88rem',
- height: '3rem',
- border: 'none',
- }"
- :row-style="{
- color: '#101010',
- fontSize: '0.88rem',
- height: '3rem',
- }"
+ :header-cell-style="
+ isMin
+ ? {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '1.5rem',
+ height: '3rem',
+ border: 'none',
+ }
+ : {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ border: 'none',
+ }
+ "
+ :row-style="
+ isMin
+ ? {
+ color: '#101010',
+ fontSize: '2rem',
+ height: '3rem',
+ }
+ : {
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ }
+ "
@selection-change="UserSelectionChange"
>
<el-table-column type="selection" align="center" min-width="1%" />
@@ -162,14 +237,25 @@
min-width="3%"
/>
<el-table-column
- prop="role_Id"
- label="鐢ㄦ埛鍒嗙粍"
+ prop="isLeader"
+ label="鐢ㄦ埛绫诲瀷"
align="center"
min-width="2%"
+ >
+ <template #default="scope">
+ <span v-if="scope.row.isLeader == 0">缁勫憳</span>
+ <span v-else-if="scope.row.isLeader == 1">缁勯暱</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="unit"
+ label="鍗曚綅"
+ align="center"
+ min-width="3%"
/>
<el-table-column
- prop="roleName"
- label="鐢ㄦ埛瑙掕壊"
+ prop="userteam"
+ label="鐝粍"
align="center"
min-width="3%"
/>
@@ -182,7 +268,7 @@
<template #default="scope">
<el-image
style="width: 5rem; height: 5rem"
- :src="'http://192.168.0.80:1598' + scope.row.headImageUrl"
+ :src="'http://192.168.1.103:9093' + scope.row.headImageUrl"
show-progress
:initial-index="4"
fit="cover"
@@ -242,22 +328,40 @@
<!-- 鐢ㄦ埛瑙掕壊 -->
<el-table
empty-text="鏆傛棤鏁版嵁"
- height="450"
+ :height="isMin ? '950' : '450'"
v-if="isactive == 2"
:data="grideData"
style="width: 100%"
- :header-cell-style="{
- background: 'rgba(250,250,250,1)',
- color: '#101010',
- fontSize: '0.88rem',
- height: '3rem',
- border: 'none',
- }"
- :row-style="{
- color: '#101010',
- fontSize: '0.88rem',
- height: '3rem',
- }"
+ :header-cell-style="
+ isMin
+ ? {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '1.5rem',
+ height: '3rem',
+ border: 'none',
+ }
+ : {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ border: 'none',
+ }
+ "
+ :row-style="
+ isMin
+ ? {
+ color: '#101010',
+ fontSize: '1.88rem',
+ height: '3rem',
+ }
+ : {
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ }
+ "
@selection-change="RoleSelectionChange"
>
<el-table-column type="selection" align="center" />
@@ -276,6 +380,12 @@
style="color: #4386ff; cursor: pointer"
>绠$悊</span
>
+ </template>
+ </el-table-column>
+ <el-table-column prop="isLeader" label="缁勫憳绫诲瀷" align="center">
+ <template #default="scope">
+ <span v-if="scope.row.isLeader == 0">缁勫憳</span>
+ <span v-else-if="scope.row.isLeader == 1">缁勯暱</span>
</template>
</el-table-column>
<el-table-column prop="deptName" label="澶囨敞" align="center" />
@@ -303,8 +413,142 @@
scope.row.user_Id == '1' ||
scope.row.userName != userInfo.userName)
"
- style="color: blue; font-size: 0.88rem; cursor: pointer"
+ :style="{
+ color: 'blue',
+ fontSize: isMin ? '1.88rem' : '0.88rem',
+ cursor: 'pointer',
+ }"
@click="EditRole(scope.row)"
+ >缂栬緫</span
+ >
+ </template></el-table-column
+ >
+ </el-table>
+
+ <!-- 鐢ㄦ埛鐝粍 -->
+ <el-table
+ empty-text="鏆傛棤鏁版嵁"
+ :height="isMin ? '950' : '450'"
+ v-if="isactive == 3"
+ :data="departmentData"
+ style="width: 100%"
+ :header-cell-style="
+ isMin
+ ? {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '1.5rem',
+ height: '3rem',
+ border: 'none',
+ }
+ : {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ border: 'none',
+ }
+ "
+ :row-style="
+ isMin
+ ? {
+ color: '#101010',
+ fontSize: '1.88rem',
+ height: '3rem',
+ }
+ : {
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ }
+ "
+ @selection-change="TreamSelectionChange"
+ >
+ <el-table-column type="selection" align="center" />
+ <el-table-column prop="teamName" label="鐝粍鍚嶇О" align="center" />
+ <el-table-column prop="creater" label="鍒涘缓鑰�" align="center" />
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" />
+ <el-table-column label="鎿嶄綔" align="center">
+ <template #default="scope">
+ <span
+ v-if="
+ !(userInfo.userName == 'admin' || userInfo.roleId == '1'
+ ? scope.row.userName == 'admin' || scope.row.user_Id == '1'
+ : scope.row.userName == 'admin' ||
+ scope.row.user_Id == '1' ||
+ scope.row.userName != userInfo.userName)
+ "
+ :style="{
+ color: 'blue',
+ fontSize: isMin ? '1.88rem' : '0.88rem',
+ cursor: 'pointer',
+ }"
+ @click="EditTream(scope.row)"
+ >缂栬緫</span
+ >
+ </template></el-table-column
+ >
+ </el-table>
+
+ <!-- 鐢ㄦ埛鍗曚綅 -->
+ <el-table
+ empty-text="鏆傛棤鏁版嵁"
+ :height="isMin ? '950' : '450'"
+ v-if="isactive == 4"
+ :data="unitData"
+ style="width: 100%"
+ :header-cell-style="
+ isMin
+ ? {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '1.5rem',
+ height: '3rem',
+ border: 'none',
+ }
+ : {
+ background: 'rgba(250,250,250,1)',
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ border: 'none',
+ }
+ "
+ :row-style="
+ isMin
+ ? {
+ color: '#101010',
+ fontSize: '1.88rem',
+ height: '3rem',
+ }
+ : {
+ color: '#101010',
+ fontSize: '0.88rem',
+ height: '3rem',
+ }
+ "
+ @selection-change="UnitSelectionChange"
+ >
+ <el-table-column type="selection" align="center" />
+ <el-table-column prop="unitName" label="鍗曚綅鍚嶇О" align="center" />
+ <el-table-column prop="creater" label="鍒涘缓鑰�" align="center" />
+ <el-table-column prop="createDate" label="鍒涘缓鏃ユ湡" align="center" />
+ <el-table-column label="鎿嶄綔" align="center">
+ <template #default="scope">
+ <span
+ v-if="
+ !(userInfo.userName == 'admin' || userInfo.roleId == '1'
+ ? scope.row.userName == 'admin' || scope.row.user_Id == '1'
+ : scope.row.userName == 'admin' ||
+ scope.row.user_Id == '1' ||
+ scope.row.userName != userInfo.userName)
+ "
+ :style="{
+ color: 'blue',
+ fontSize: isMin ? '1.88rem' : '0.88rem',
+ cursor: 'pointer',
+ }"
+ @click="EditUnit(scope.row)"
>缂栬緫</span
>
</template></el-table-column
@@ -354,6 +598,7 @@
>
<span
style="color: rgb(16, 16, 16); font-size: 1rem; font-weight: bold"
+ class="font-title"
>鐢ㄦ埛淇℃伅</span
>
</div>
@@ -374,6 +619,7 @@
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
+ class="from_title"
>鐧诲綍璐﹀彿</span
>
</div>
@@ -392,6 +638,7 @@
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
+ class="from_title"
>鐪熷疄濮撳悕</span
>
</div>
@@ -410,6 +657,7 @@
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
+ class="from_title"
>鑱旂郴鐢佃瘽</span
>
</div>
@@ -430,6 +678,7 @@
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
+ class="from_title"
>鐢ㄦ埛瑙掕壊
</span>
</div>
@@ -438,6 +687,7 @@
v-model="formUser.roleid"
placeholder="璇烽�夋嫨"
size="small"
+ @change="handleRoleChange"
>
<el-option
:disabled="item.roleId == 1"
@@ -450,26 +700,27 @@
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item prop="rolename">
+ <el-form-item prop="userunit">
<template #label>
<div style="display: flex; align-items: flex-end">
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
- >鐢ㄦ埛绫诲瀷
- </span>
+ class="from_title"
+ >鍗曚綅</span
+ >
</div>
</template>
<el-select
- v-model="formUser.rolename"
+ v-model="formUser.userunit"
placeholder="璇烽�夋嫨"
size="small"
>
<el-option
- v-for="item in roleNameList"
- :key="item.value"
- :label="item.label"
- :value="item.value"
+ v-for="item in unitData"
+ :key="item.id"
+ :label="item.unitName"
+ :value="item.unitName"
/>
</el-select>
</el-form-item>
@@ -481,6 +732,7 @@
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
+ class="from_title"
>鏄惁鍚敤</span
>
</div>
@@ -502,26 +754,27 @@
</el-row>
<el-row :gutter="20">
<el-col :span="8">
- <el-form-item prop="dept_Id">
+ <el-form-item prop="userteam">
<template #label>
<div style="display: flex; align-items: flex-end">
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
- >閮ㄩ棬</span
+ class="from_title"
+ >鐝粍</span
>
</div>
</template>
<el-select
- v-model="formUser.dept_Id"
+ v-model="formUser.userteam"
placeholder="璇烽�夋嫨"
size="small"
>
<el-option
- v-for="item in departmentOptions"
+ v-for="item in departmentData"
:key="item.id"
- :label="item.departmentName"
- :value="item.id"
+ :label="item.teamName"
+ :value="item.teamName"
/>
</el-select>
</el-form-item>
@@ -533,23 +786,16 @@
<span style="color: red; margin-right: 0.2rem">*</span>
<span
style="font-size: 0.88rem; color: black; font-weight: bold"
+ class="from_title"
>浜鸿劯鍥剧墖</span
>
- <!-- <span
- style="
- color: rgba(255, 0, 0, 1);
- font-size: 0.75rem;
- margin-left: 0.5rem;
- "
- >娉細鏈�澶氬彲涓婁紶涓夊紶锛屽浘鐗囬渶瑕佹瑙勭殑浜哄儚璇佷欢鐓�</span
- > -->
</div>
</template>
<el-upload
ref="uploadRef"
name="files"
class="avatar-uploader"
- action="http://192.168.0.80:1598/api/User/SaveFiles"
+ action="http://192.168.1.103:9093/api/User/SaveFiles"
list-type="picture-card"
limit="1"
:auto-upload="true"
@@ -622,7 +868,7 @@
</template>
</el-dialog>
- <!-- 鐢ㄦ埛淇℃伅淇敼瀵嗙爜寮瑰嚭妗� -->
+ <!-- 鐢ㄦ埛淇敼瀵嗙爜寮瑰嚭妗� -->
<el-dialog
v-model="dialogVisible1"
title=""
@@ -665,9 +911,11 @@
border-radius: 0.25rem;
"
>
- <span style="color: #51b820; font-size: 1rem"
+ <span style="color: #51b820; font-size: 1rem" class="formpassword"
>璐﹀彿锛歿{ formpassword.userName }}</span
- ><span style="color: #51b820; font-size: 1rem; margin-left: 2rem"
+ ><span
+ style="color: #51b820; font-size: 1rem; margin-left: 2rem"
+ class="formpassword"
>鐢ㄦ埛锛歿{ formpassword.roleName }}</span
>
</div>
@@ -722,7 +970,11 @@
"
>
<span
- style="color: rgb(16, 16, 16); font-size: 1rem; font-weight: bold"
+ :style="{
+ color: 'rgb(16, 16, 16)',
+ fontSize: isMin ? '2rem' : '1rem',
+ fontWeight: 'bold',
+ }"
>鐢ㄦ埛瑙掕壊</span
>
</div>
@@ -738,8 +990,20 @@
<el-form-item prop="roleName">
<template #label>
<div style="display: flex; align-items: flex-end">
- <span style="color: red; margin-right: 0.2rem">*</span>
- <span style="font-size: 0.88rem; color: black; font-weight: bold"
+ <span
+ :style="{
+ color: 'red',
+ marginRight: '0.2rem',
+ fontSize: '2rem',
+ }"
+ >*</span
+ >
+ <span
+ :style="{
+ fontSize: isMin ? '2rem' : '0.88rem',
+ color: 'black',
+ fontWeight: bold,
+ }"
>瑙掕壊鍚嶇О</span
>
</div>
@@ -751,10 +1015,49 @@
placeholder="璇疯緭鍏�"
/>
</el-form-item>
+ <el-form-item prop="isLeader">
+ <template #label>
+ <div style="display: flex; align-items: flex-end">
+ <span
+ :style="{
+ color: 'red',
+ marginRight: '0.2rem',
+ fontSize: '2rem',
+ }"
+ >*</span
+ >
+ <span
+ :style="{
+ fontSize: isMin ? '2rem' : '0.88rem',
+ color: 'black',
+ fontWeight: bold,
+ }"
+ >缁勫憳绫诲瀷</span
+ >
+ </div>
+ </template>
+ <el-select
+ v-model="formRole.isLeader"
+ placeholder="璇烽�夋嫨"
+ size="small"
+ >
+ <el-option
+ v-for="item in rolekey"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
<el-form-item>
<template #label>
<div style="display: flex; align-items: flex-end">
- <span style="font-size: 0.88rem; color: black; font-weight: bold"
+ <span
+ :style="{
+ fontSize: isMin ? '2rem' : '0.88rem',
+ color: 'black',
+ fontWeight: 'bold',
+ }"
>澶囨敞</span
>
</div>
@@ -780,6 +1083,178 @@
size="small"
type="primary"
@click="saveRole(formRoleRef)"
+ style="height: 2rem; font-size: 0.88rem"
+ >
+ 淇濆瓨
+ </el-button>
+ </div>
+ </template>
+ </el-dialog>
+
+ <!-- 鐢ㄦ埛鐝粍鏂板缓/缂栬緫 -->
+ <el-dialog
+ v-model="TreamdialogVisible"
+ title=""
+ width="20%"
+ :before-close="handleClose"
+ :show-close="false"
+ :align-center="true"
+ @close="resetForm2(formTreamdRef)"
+ >
+ <template #title>
+ <div
+ style="
+ height: 3.63rem;
+ display: flex;
+ border-bottom: 1px solid #e6e6e6;
+ "
+ >
+ <span
+ :style="{
+ color: 'rgb(16, 16, 16)',
+ fontSize: isMin ? '2rem' : '1rem',
+ fontWeight: 'bold',
+ }"
+ >鐢ㄦ埛鐝粍</span
+ >
+ </div>
+ </template>
+ <el-form
+ :model="formTeam"
+ label-width="auto"
+ label-position="top"
+ ref="formTreamdRef"
+ :rules="roleRules"
+ :hide-required-asterisk="true"
+ >
+ <el-form-item prop="teamName">
+ <template #label>
+ <div style="display: flex; align-items: flex-end">
+ <span
+ :style="{
+ color: 'red',
+ marginRight: '0.2rem',
+ fontSize: '2rem',
+ }"
+ >*</span
+ >
+ <span
+ :style="{
+ fontSize: isMin ? '2rem' : '0.88rem',
+ color: 'black',
+ fontWeight: bold,
+ }"
+ >鐝粍鍚嶇О</span
+ >
+ </div>
+ </template>
+ <el-input
+ style="height: 2rem"
+ size="small"
+ v-model="formTeam.teamName"
+ placeholder="璇疯緭鍏�"
+ />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer" style="text-align: center">
+ <el-button
+ size="small"
+ @click="TreamdialogVisible = false"
+ style="height: 2rem; font-size: 0.88rem"
+ >鍙栨秷</el-button
+ >
+
+ <el-button
+ size="small"
+ type="primary"
+ @click="saveTream(formTreamdRef)"
+ style="height: 2rem; font-size: 0.88rem"
+ >
+ 淇濆瓨
+ </el-button>
+ </div>
+ </template>
+ </el-dialog>
+
+ <!-- 鐢ㄦ埛鍗曚綅鏂板缓/缂栬緫 -->
+ <el-dialog
+ v-model="UnitdialogVisible"
+ title=""
+ width="20%"
+ :before-close="handleClose"
+ :show-close="false"
+ :align-center="true"
+ @close="resetForm3(formUnitRef)"
+ >
+ <template #title>
+ <div
+ style="
+ height: 3.63rem;
+ display: flex;
+ border-bottom: 1px solid #e6e6e6;
+ "
+ >
+ <span
+ :style="{
+ color: 'rgb(16, 16, 16)',
+ fontSize: isMin ? '2rem' : '1rem',
+ fontWeight: 'bold',
+ }"
+ >鐢ㄦ埛鍗曚綅</span
+ >
+ </div>
+ </template>
+ <el-form
+ :model="formUnit"
+ label-width="auto"
+ label-position="top"
+ ref="formUnitRef"
+ :rules="roleRules"
+ :hide-required-asterisk="true"
+ >
+ <el-form-item prop="unitName">
+ <template #label>
+ <div style="display: flex; align-items: flex-end">
+ <span
+ :style="{
+ color: 'red',
+ marginRight: '0.2rem',
+ fontSize: '2rem',
+ }"
+ >*</span
+ >
+ <span
+ :style="{
+ fontSize: isMin ? '2rem' : '0.88rem',
+ color: 'black',
+ fontWeight: bold,
+ }"
+ >鍗曚綅鍚嶇О</span
+ >
+ </div>
+ </template>
+ <el-input
+ style="height: 2rem"
+ size="small"
+ v-model="formUnit.unitName"
+ placeholder="璇疯緭鍏�"
+ />
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <div class="dialog-footer" style="text-align: center">
+ <el-button
+ size="small"
+ @click="UnitdialogVisible = false"
+ style="height: 2rem; font-size: 0.88rem"
+ >鍙栨秷</el-button
+ >
+
+ <el-button
+ size="small"
+ type="primary"
+ @click="saveUnit(formUnitRef)"
style="height: 2rem; font-size: 0.88rem"
>
淇濆瓨
@@ -820,6 +1295,15 @@
ExportApi1,
UpdatePwd,
DeleteUserData,
+ GetDepartment,
+ GetUserTeam,
+ AddUserTeam,
+ EditUserTeam,
+ DeleteUserTeam,
+ GetUserUnit,
+ AddUserUnit,
+ EditUserUnit,
+ DeleteUserUnit,
} from "@/api/user";
import { useRouter } from "vue-router";
import { formatTime } from "@/utils/index.js";
@@ -830,7 +1314,6 @@
UpdateRoleApi,
DeleteRoleApi,
} from "@/api/role";
-import { GetDepartment } from "@/api/user";
let obj = {
selectName: "",
selectTime: [], // 鏃堕棿鑼冨洿
@@ -842,10 +1325,12 @@
const tableData = ref([]);
const grideData = ref([]);
+//鐢ㄦ埛鐝粍
+const departmentData = ref([]);
+//鐢ㄦ埛鍗曚綅
+const unitData = ref([]);
//鏂板缓鐢ㄦ埛ref
const formUserRef = ref();
-const options = ref([]);
-const props = { multiple: true };
const userInfo = ref();
const isoptins = ref([
{
@@ -854,26 +1339,30 @@
},
{ value: 1, label: "鏄�" },
]);
-//鍒嗙粍
+//瑙掕壊
const groupOptions = ref([]);
const formUser = ref({
id: undefined,
username: "",
phoneno: "",
- roleid: 2,
+ roleid: null,
rolename: "",
enable: 1,
path: "",
usertruename: "",
dept_Id: 1,
+ carnuber: null,
+ userteam: "",
+ isLeader: 0,
+ userunit: "",
});
const rules = reactive({
- userName: {
+ username: {
required: true,
message: "璇疯緭鍏ョ敤鎴峰悕",
trigger: "blur",
},
- role_Id: {
+ roleid: {
required: true,
message: "璇烽�夋嫨瑙掕壊",
trigger: "change",
@@ -890,18 +1379,27 @@
message: "璇疯緭鍏ュ鍚�",
trigger: "blur",
},
- phoneNo: {
+ phoneno: {
required: true,
message: "璇疯緭鍏ユ墜鏈哄彿",
trigger: "blur",
},
- userTrueName: {
+ usertruename: {
required: true,
message: "璇疯緭鍏ョ湡瀹炲鍚�",
trigger: "blur",
},
+ userteam: {
+ required: true,
+ message: "璇疯緭鍏ョ粍",
+ trigger: "blur",
+ },
+ userunit: {
+ required: true,
+ message: "璇烽�夋嫨鍗曚綅",
+ trigger: "blur",
+ },
});
-
const formpasswordRef = ref();
const isactive = ref(1);
const dialogVisible = ref(false);
@@ -927,21 +1425,26 @@
},
];
const fileList = ref([]);
-const roleNameList = ref([
- { value: "鐢垫皵璐ㄦ", label: "鐢垫皵璐ㄦ" },
- { value: "鏈烘璐ㄦ", label: "鏈烘璐ㄦ" },
- { value: "鍦版矡璐ㄦ", label: "鍦版矡璐ㄦ" },
- { value: "鐢垫皵鍔涚煩", label: "鐢垫皵鍔涚煩" },
- { value: "鐢垫皵杈呭姪", label: "鐢垫皵杈呭姪" },
- { value: "鏈烘鍔涚煩", label: "鏈烘鍔涚煩" },
- { value: "鏈烘杈呭姪", label: "鏈烘杈呭姪" },
- { value: "鍦版矡鍔涚煩", label: "鍦版矡鍔涚煩" },
- { value: "鍦版矡杈呭姪", label: "鍦版矡杈呭姪" },
+const rolekey = ref([
+ { value: 1, label: "缁勯暱" },
+ { value: 0, label: "缁勫憳" },
]);
const roleOptions = [
{
value: "roleName",
label: "瑙掕壊鍚嶇О",
+ },
+];
+const treamOptions = [
+ {
+ value: "teamName",
+ label: "鐝粍鍚嶇О",
+ },
+];
+const unitOptions = [
+ {
+ value: "unitName",
+ label: "鍗曚綅鍚嶇О",
},
];
const selectoptions = ref([]);
@@ -966,12 +1469,53 @@
},
],
});
-
const uploadRef = ref();
const showUpload = ref(false);
const pageTotal = ref(0);
+const isMin = ref(false);
+const newRole = ref({});
//鑾峰彇閮ㄩ棬
const departmentOptions = ref([]);
+
+const initData = () => {
+ // 鏌ヨ鏉′欢
+ const startTime = formatTime(queryForm.value.selectTime[0]);
+ const endTime = formatTime(queryForm.value.selectTime[1]);
+ const filter = [
+ {
+ name: queryForm.value.selectType,
+ value: queryForm.value.selectInput,
+ displayType: "like",
+ },
+ { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
+ { name: "createDate", value: endTime, displayType: "LessOrEqual" },
+ ];
+ GetUserList({
+ pageIndex: 1,
+ pageSize: 10,
+ searchKeyword: "",
+ startDate: formatTime(queryForm.value.selectTime[0]),
+ endDate: formatTime(queryForm.value.selectTime[1]),
+ status: 0,
+ sortField: "",
+ sortOrder: "",
+ account: "",
+ }).then((res) => {
+ tableData.value = res.data.items.map((item) => {
+ return {
+ ...item,
+ isdisabled:
+ userInfo.value.userName == "admin" || userInfo.value.roleId == "1"
+ ? item.userName == "admin" || item.user_Id == "1"
+ : item.userName == "admin" ||
+ item.user_Id == "1" ||
+ item.userName != userInfo.value.userName,
+ };
+ });
+ pageTotal.value = res.data.totalCount;
+ });
+ getDepartment();
+};
const getDepartment = () => {
GetDepartment({
page: 1,
@@ -993,40 +1537,6 @@
}).then((res) => {
departmentOptions.value = res.rows;
});
-};
-
-//鐧诲綍璁板綍
-const initData = () => {
- // 鏌ヨ鏉′欢
- const startTime = formatTime(queryForm.value.selectTime[0]);
- const endTime = formatTime(queryForm.value.selectTime[1]);
- const filter = [
- {
- name: queryForm.value.selectType,
- value: queryForm.value.selectInput,
- displayType: "like",
- },
- { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
- { name: "createDate", value: endTime, displayType: "LessOrEqual" },
- ];
- GetUserList({
- ...pageQuery.value,
- filter,
- }).then((res) => {
- tableData.value = res.rows.map((item) => {
- return {
- ...item,
- isdisabled:
- userInfo.value.userName == "admin" || userInfo.value.roleId == "1"
- ? item.userName == "admin" || item.user_Id == "1"
- : item.userName == "admin" ||
- item.user_Id == "1" ||
- item.userName != userInfo.value.userName,
- };
- });
- pageTotal.value = res.total;
- });
- getDepartment();
};
//鍒嗛〉璇锋眰鍙傛暟
const pageQuery = ref({
@@ -1088,11 +1598,14 @@
formUser.value = {
username: "",
phoneno: "",
- roleid: 20,
+ roleid: null,
rolename: "",
enable: 1,
path: "",
user_Id: undefined,
+ userteam: "",
+ carnuber: null,
+ isLeader: 0,
};
fileList.value = [];
};
@@ -1102,6 +1615,20 @@
formRole.value = {
roleName: "",
description: "",
+ };
+};
+const resetForm2 = (formEl) => {
+ if (!formEl) return;
+ formEl.resetFields();
+ formTeam.value = {
+ teamName: "",
+ };
+};
+const resetForm3 = (formEl) => {
+ if (!formEl) return;
+ formEl.resetFields();
+ formUnit.value = {
+ unitName: "",
};
};
@@ -1120,19 +1647,33 @@
const beforeAvatarUpload = (val) => {
console.log(val);
};
+const handleRoleChange = (val) => {
+ groupOptions.value.find((item) => {
+ if (item.roleId == val) {
+ newRole.value = item;
+ }
+ });
+};
//鏂板缓鐢ㄦ埛璐﹀彿
const saveObj = async (formEl) => {
- // submitUpload();
if (!formEl) return;
await formEl.validate((valid, fields) => {
if (valid) {
if (formUser.value.id != undefined) {
+ // if (!formUser.value.userteam.includes("缁�")) {
+ // formUser.value.userteam = formUser.value.userteam + "缁�";
+ // }
+ formUser.value.isLeader = newRole.value.isLeader;
UpdateUser(formUser.value).then((res) => {
ElMessage({ message: "淇敼鎴愬姛", type: "success" });
dialogVisible.value = false;
initData();
});
} else {
+ // if (!formUser.value.userteam.includes("缁�")) {
+ // formUser.value.userteam = formUser.value.userteam + "缁�";
+ // }
+ formUser.value.isLeader = newRole.value.isLeader;
AddUser(formUser.value).then((res) => {
ElMessage({ message: "鎻愪氦鎴愬姛", type: "success" });
dialogVisible.value = false;
@@ -1180,6 +1721,10 @@
enable: val.enable,
path: val.headImageUrl,
usertruename: val.userTrueName,
+ cardNumber: val.cardNumber,
+ userteam: val.userteam,
+ userunit: val.unit,
+ dept_Id: val.dept_Id,
};
UpdateUser(data).then((res) => {
ElMessage({ message: "淇敼鎴愬姛", type: "success" });
@@ -1209,15 +1754,20 @@
enable: val.enable,
path: val.headImageUrl,
usertruename: val.userTrueName,
+ carnuber: val.cardNumber,
+ userteam: val.userteam,
+ dept_Id: val.dept_Id,
+ isLeader: val.isLeader,
+ userunit: val.unit,
};
formUser.value = {
...obj,
};
- if (obj.headImageUrl != "") {
+ if (obj.headImageUrl != null) {
fileList.value = [
{
name: "1",
- url: "http://115.159.85.185:9098" + obj.headImageUrl,
+ url: "http://192.168.1.103:9093" + obj.headImageUrl,
},
];
}
@@ -1230,21 +1780,17 @@
let obj = Object.assign({}, val);
formUser.value = obj;
formpassword.value = val;
- newobj.value = Object.assign({}, val);
- console.log(newobj.value);
-
dialogVisible1.value = true;
};
//淇濆瓨淇敼瀵嗙爜
const savePassword = async (formEl) => {
let obj = Object.assign({}, newobj);
// obj.password = formpassword.value.password;
- console.log(formUser.value);
let formdata = {
id: formUser.value.user_Id,
oldPwd: formUser.value.userPwd,
- newPwd: formUser.value.newPwd,
+ newPwd: newobj.value.newPwd,
};
if (!formEl) return;
await formEl.validate((valid, fields) => {
@@ -1269,6 +1815,16 @@
description: {
required: true,
message: "璇疯緭鍏ヨ鑹叉弿杩�",
+ trigger: "blur",
+ },
+ teamName: {
+ required: true,
+ message: "璇疯緭鍏ョ彮缁勫悕绉�",
+ trigger: "blur",
+ },
+ unitName: {
+ required: true,
+ message: "璇疯緭鍏ュ崟浣嶅悕绉�",
trigger: "blur",
},
});
@@ -1314,6 +1870,20 @@
let obj = Object.assign({}, val);
formRole.value = obj;
dialogVisible2.value = true;
+};
+//缂栬緫鐝粍
+const EditTream = (val) => {
+ Treamtype.value = "淇敼";
+ let obj = Object.assign({}, val);
+ formTeam.value = obj;
+ TreamdialogVisible.value = true;
+};
+//缂栬緫鍗曚綅
+const EditUnit = (val) => {
+ Unittype.value = "淇敼";
+ let obj = Object.assign({}, val);
+ formUnit.value = obj;
+ UnitdialogVisible.value = true;
};
//鑾峰彇瑙掕壊
const getRole = () => {
@@ -1366,15 +1936,119 @@
});
}
};
+//鑾峰彇鐢ㄦ埛鐝粍
+const getGroup = () => {
+ const startTime = formatTime(queryForm.value.selectTime[0]);
+ const endTime = formatTime(queryForm.value.selectTime[1]);
+ const filter = [
+ {
+ name: queryForm.value.selectType,
+ value: queryForm.value.selectInput,
+ displayType: "like",
+ },
+ { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
+ { name: "createDate", value: endTime, displayType: "LessOrEqual" },
+ ];
+ GetUserTeam({ ...pageQuery.value, filter }).then((res) => {
+ departmentData.value = res.rows;
+ pageTotal.value = res.total;
+ });
+};
+const formTeam = ref({});
+const TreamdialogVisible = ref(false);
+//鏂板缓鐢ㄦ埛鐝粍
+const AddGroup = () => {
+ Treamtype.value = "鏂板缓";
+ TreamdialogVisible.value = true;
+};
+const Treamtype = ref("鏂板缓");
+const formTreamdRef = ref(null);
+const saveTream = async (formEl) => {
+ if (!formEl) return;
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ if (Treamtype.value == "淇敼") {
+ EditUserTeam(formTeam.value).then((res) => {
+ ElMessage({ message: "淇敼鎴愬姛", type: "success" });
+ TreamdialogVisible.value = false;
+ getGroup();
+ });
+ } else {
+ AddUserTeam(formTeam.value).then((res) => {
+ ElMessage({ message: "娣诲姞鎴愬姛", type: "success" });
+ TreamdialogVisible.value = false;
+ getGroup();
+ });
+ }
+ } else {
+ console.log("error submit!", fields);
+ }
+ });
+};
+const formUnit = ref({});
+const UnitdialogVisible = ref(false);
+const Unittype = ref("鏂板缓");
+const formUnitRef = ref(null);
+const AddUnit = () => {
+ Unittype.value = "鏂板缓";
+ UnitdialogVisible.value = true;
+};
+//鑾峰彇鐢ㄦ埛鍗曚綅
+const getUnit = () => {
+ const startTime = formatTime(queryForm.value.selectTime[0]);
+ const endTime = formatTime(queryForm.value.selectTime[1]);
+ const filter = [
+ {
+ name: queryForm.value.selectType,
+ value: queryForm.value.selectInput,
+ displayType: "like",
+ },
+ { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
+ { name: "createDate", value: endTime, displayType: "LessOrEqual" },
+ ];
+ GetUserUnit({ ...pageQuery.value, filter }).then((res) => {
+ unitData.value = res.rows;
+ pageTotal.value = res.total;
+ });
+};
+//淇濆瓨鍗曚綅
+const saveUnit = async (formEl) => {
+ if (!formEl) return;
+ await formEl.validate((valid, fields) => {
+ if (valid) {
+ if (Unittype.value == "淇敼") {
+ EditUserUnit(formUnit.value).then((res) => {
+ ElMessage({ message: "淇敼鎴愬姛", type: "success" });
+ UnitdialogVisible.value = false;
+ getUnit();
+ });
+ } else {
+ AddUserUnit(formUnit.value).then((res) => {
+ ElMessage({ message: "娣诲姞鎴愬姛", type: "success" });
+ UnitdialogVisible.value = false;
+ getUnit();
+ });
+ }
+ } else {
+ console.log("error submit!", fields);
+ }
+ });
+};
//鍒囨崲椤甸潰
const changeactive = (index) => {
isactive.value = index;
if (isactive.value == 1) {
selectoptions.value = userOptions;
initData();
- } else {
+ } else if (isactive.value == 2) {
selectoptions.value = roleOptions;
getRole();
+ } else if (isactive.value == 3) {
+ selectoptions.value = treamOptions;
+ getGroup();
+ } else if (isactive.value == 4) {
+ selectoptions.value = unitOptions;
+ getUnit();
}
};
@@ -1388,6 +2062,14 @@
const RoleSelectionChange = (val) => {
ids.value = [];
ids.value = val.map((item) => item.roleId);
+};
+const TreamSelectionChange = (val) => {
+ ids.value = [];
+ ids.value = val.map((item) => item.id);
+};
+const UnitSelectionChange = (val) => {
+ ids.value = [];
+ ids.value = val.map((item) => item.id);
};
const deleteAll = () => {
if (ids.value.includes(1)) {
@@ -1403,22 +2085,37 @@
ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
initData();
});
- } else {
+ } else if (isactive.value == 2) {
DeleteRoleApi(ids.value).then((res) => {
ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
getRole();
});
+ } else if (isactive.value == 3) {
+ DeleteUserTeam(ids.value).then((res) => {
+ ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
+ getGroup();
+ });
+ } else if (isactive.value == 4) {
+ DeleteUserUnit(ids.value).then((res) => {
+ ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
+ getUnit();
+ });
}
};
-//绠$悊
-//璺敱璺宠浆
+// 绠$悊 璺敱璺宠浆
const toDetail = (row) => {
router.push({ name: "permission", state: { info: JSON.stringify(row) } });
};
onMounted(() => {
+ if (window.innerWidth <= 1080) {
+ isMin.value = true;
+ }
+ //鎵撳嵃褰撳墠灞忓箷瀹藉害
initData();
getRole();
+ getUnit();
+ getGroup();
userInfo.value = JSON.parse(localStorage.getItem("user"));
});
</script>
@@ -1433,7 +2130,7 @@
flex-direction: column;
.checkbox {
- width: 11rem;
+ width: 25rem;
display: flex;
justify-content: space-between;
margin-top: 1rem;
@@ -1565,6 +2262,194 @@
text-align: center;
}
}
+@media screen and (max-width: 1080px) {
+ .Usermanagement {
+ display: flex;
+ background-color: #fff;
+
+ .content {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+
+ .checkbox {
+ width: 35rem;
+ display: flex;
+ justify-content: space-between;
+ margin-top: 1rem;
+ margin-left: 1.31rem;
+
+ .item {
+ width: 8rem;
+ height: 2.88rem;
+ border-radius: 0.25rem;
+ background-color: rgba(190, 199, 209, 1);
+ color: rgba(255, 255, 255, 1);
+ font-size: 1.25rem;
+ text-align: center;
+ line-height: 2.88rem;
+ cursor: pointer;
+ }
+
+ .isactive {
+ background-color: rgba(16, 16, 16, 1);
+ color: rgba(255, 255, 255, 1);
+ }
+ }
+
+ .serch {
+ display: flex;
+ margin-top: 1.31rem;
+ align-items: center;
+
+ .time_box {
+ display: flex;
+ align-items: center;
+ text-align: center;
+ margin-left: 0.98rem;
+
+ .time {
+ box-sizing: border-box;
+ width: 6.88rem;
+ height: 3rem;
+ text-align: center;
+ border: 0.06rem solid rgba(222, 222, 222, 1);
+ border-radius: 0.25rem 0 0 0.25rem;
+ font-size: 1.25rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ :deep(.el-input__wrapper) {
+ height: 3rem !important;
+ font-size: 1.25rem !important;
+ }
+ }
+
+ .serch_box {
+ display: flex;
+ align-items: center;
+ text-align: center;
+ margin-left: 0.98rem;
+ border-radius: 0.38rem;
+
+ .serchb {
+ box-sizing: border-box;
+ width: 9rem;
+ height: 3rem !important;
+ text-align: center;
+ font-size: 2rem !important;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ .select {
+ height: 3rem !important;
+ :deep(.el-select__wrapper) {
+ height: 3rem !important;
+ font-size: 1.5rem !important;
+ }
+ }
+ }
+
+ input {
+ box-sizing: border-box;
+ outline: none;
+ width: 19rem;
+ height: 3rem;
+ border: 0.06rem solid rgba(222, 222, 222, 1);
+ border-radius: 0 0.25rem 0.25rem 0;
+ padding-left: 0.3125rem;
+ font-size: 2rem;
+ }
+ }
+ .text_btn {
+ width: 10rem !important;
+ height: 3.5rem !important;
+ font-size: 2rem !important;
+ display: flex;
+ align-items: center;
+ }
+ }
+
+ .btns {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-top: 1.31rem;
+ margin-left: 1.13rem;
+ padding-right: 2rem;
+ box-sizing: border-box;
+ .text_btn {
+ width: 10rem !important;
+ height: 3.5rem !important;
+ font-size: 2rem !important;
+ display: flex;
+ align-items: center;
+ }
+ }
+ }
+ .formpassword {
+ font-size: 1.5rem !important;
+ }
+ .my-header {
+ height: 3.84rem;
+ display: flex;
+ justify-content: space-between;
+ border-bottom: 0.06rem solid rgba(233, 233, 233, 1);
+ }
+
+ .avatar-uploader .avatar {
+ width: 7rem;
+ height: 7rem;
+ display: block;
+ }
+
+ :deep(.avatar-uploader .el-upload) {
+ width: 7rem;
+ height: 7rem;
+ border: 0.0625rem dashed var(--el-border-color);
+ border-radius: 0.0375rem;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+ transition: var(--el-transition-duration-fast);
+ }
+
+ :deep(.el-upload-list__item) {
+ width: 7rem;
+ height: 7rem;
+ }
+
+ .avatar-uploader .el-upload:hover {
+ border-color: var(--el-color-primary);
+ }
+
+ .el-icon .avatar-uploader-icon {
+ font-size: 0.5rem;
+ color: #8c939d;
+ width: 0.81rem;
+ height: 0.81rem;
+ text-align: center;
+ }
+ .font-title {
+ font-size: 2rem !important;
+ }
+ .from_title {
+ font-size: 2rem !important;
+ }
+ .el-form-item__content {
+ .el-input {
+ height: 3rem !important;
+ font-size: 2rem !important;
+ }
+ .el-select--small :deep(.el-select__wrapper) {
+ font-size: 2rem;
+ line-height: 3rem;
+ min-height: 3rem;
+ }
+ }
+ }
+}
</style>
<style>
.confirmButtonClass {
--
Gitblit v1.9.3