wujingjing
2025-01-02 69e3c92ff6048338e8807c552d7cd5615adca7a2
src/views/project/yw/systemManage/userMgr/UserMgr.vue
@@ -22,8 +22,9 @@
               :data="displayTableData"
               highlight-current-row
            >
               <el-table-column prop="user_name" label="用户名" width="120" fixed="left" show-overflow-tooltip> </el-table-column>
               <el-table-column label="中文名" prop="real_name" width="90" show-overflow-tooltip> </el-table-column>
               <el-table-column type="index" label="序号" width="55" fixed="left" align="center"></el-table-column>
               <el-table-column prop="user_name" label="用户ID" width="120" fixed="left" show-overflow-tooltip> </el-table-column>
               <el-table-column label="姓名" prop="real_name" width="90" show-overflow-tooltip> </el-table-column>
               <el-table-column label="性别" prop="sex" width="70" show-overflow-tooltip> </el-table-column>
               <el-table-column label="角色" prop="user_roles" width="250" show-overflow-tooltip>
                  <template #default="{ row }">
@@ -32,11 +33,16 @@
                     }}</el-tag>
                  </template>
               </el-table-column>
               <el-table-column label="部门" prop="part" width="100" show-overflow-tooltip> </el-table-column>
               <el-table-column label="部门" prop="part_id" width="100" show-overflow-tooltip>
                     <template #default="scope">
                        {{ departmentMap[scope.row.part_id]?.name }}
                     </template>
               </el-table-column>
               <el-table-column label="手机号" prop="phone" width="120" show-overflow-tooltip> </el-table-column>
               <el-table-column label="邮件" prop="email" width="190" show-overflow-tooltip> </el-table-column>
               <el-table-column label="创建时间" prop="create_time" width="105" show-overflow-tooltip> </el-table-column>
               <el-table-column prop="note" label="说明" show-overflow-tooltip />
               <el-table-column label="操作" width="180" fixed="right" show-overflow-tooltip>
@@ -57,6 +63,12 @@
                              @click="openOptRoleDlg(scope.row)"
                           ></i>
                        </el-tooltip>
                        <el-tooltip effect="dark" content="提问示例" placement="top">
                           <i
                              class="ywifont ywicon-lizi !text-[15px] text-blue-400 cursor-pointer font-bold"
                              @click="openUserSampleDrawer(scope.row)"
                           ></i>
                        </el-tooltip>
                        <el-tooltip effect="dark" content="删除" placement="top">
                           <i class="ywifont ywicon-shanchu !text-[17px] text-red-400 cursor-pointer" @click="deleteCurrentRow(scope.row)"></i>
                        </el-tooltip>
@@ -67,15 +79,15 @@
         </div>
      </template>
      <OptDlg v-model="optDlgIsShow" :item="optDlgMapRow" @insert="insertOpt" @update="updateOpt" :roleList="roleList"></OptDlg>
      <OptDlg v-model="optDlgIsShow" :item="optDlgMapRow" @insert="insertOpt" @update="updateOpt" :roleList="roleList" :departmentList="departmentList"></OptDlg>
      <OptPasswordDlg
         v-model="optPasswordDlgIsShow"
         :item="optPasswordDlgMapRow"
         @update="updatePasswordOpt"
         :roleList="roleList"
      ></OptPasswordDlg>
      <OptRoleDlg v-model="optRoleDlgIsShow" :item="optRoleDlgMapRow" @update="updateRoleOpt" :roleList="roleList"></OptRoleDlg>
      <OptRoleDlg v-model="optRoleDlgIsShow" :item="optRoleDlgMapRow" @update="updateRoleOpt" :roleList="roleList"  ></OptRoleDlg>
      <OptSampleDrawer v-model:isShow="sampleDrawerIsShow" :user="sampleMapUser"/>
      <!-- <MetricPrompt v-model="infoDlgIsShow" :metricItem="infoDlgMapRow"></MetricPrompt>
      <MetricName v-model="metricNameIsShow" :metricItem="metricNameMapRow"></MetricName> -->
   </HMContainer>
@@ -95,11 +107,12 @@
import * as userApi from '/@/api/auth/user';
import { ElMessage, ElMessageBox } from 'element-plus';
import { computed } from 'vue';
import OptSampleDrawer from './optDlg/OptSampleDrawer.vue';
import { getRoleInfoListByPost } from '/@/api/auth/role';
import HMContainer from '/@/components/layout/HMContainer.vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { computed } from 'vue';
import { get_department_list } from '/@/api/department';
//#region ====================== 表格数据,table init ======================
const tableLoading = ref(false);
const tableData = ref([]);
@@ -117,6 +130,7 @@
      email: item.email,
      note: item.note,
      user_roles: item.roles,
      create_time: item.create_time?.slice(0, 10),
   }));
};
//#endregion
@@ -227,7 +241,6 @@
//#endregion
const roleList = ref([]);
const roleMap = computed(() => getItemMap(roleList.value, 'id'));
const getRoleList = async () => {
@@ -235,8 +248,31 @@
   roleList.value = res?.values ?? [];
};
//#region ====================== 查看用户例子 ======================
const sampleDrawerIsShow = ref(false);
const sampleMapUser = ref(null);
const openUserSampleDrawer = (row) => {
   sampleDrawerIsShow.value = true;
   sampleMapUser.value = row;
};
//#endregion
//#region ====================== 获取不么列表 ======================
const departmentList = ref([]);
const getDepartmentList = async () => {
   const res = await get_department_list();
   departmentList.value = res?.values ?? [];
};
const departmentMap = computed(() => getItemMap(departmentList.value, 'id'));
//#endregion
onMounted(async () => {
   await getRoleList();
   await getDepartmentList();
   getTableData();
});