zhoushihao
2024-06-26 5a84728f49a5c708d21212b1a395bd62684efd48
UI-Project/src/views/User/userlist.vue
@@ -10,6 +10,9 @@
import { ref, onMounted } from "vue";
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
  import { useI18n } from 'vue-i18n'
  const { t } = useI18n()
  let language = ref(localStorage.getItem('lang') || 'zh')
//  import LanguageMixin from './lang/LanguageMixin'
const selectedProjectNoa = ref(''); // 当前选中的角色 
// const options = ref<any[]>([]); // 下拉选项列表  
@@ -31,16 +34,16 @@
          });
// 重置密码
 const open = async(row) => {  
  try {
  try {
    const confirmResult = await ElMessageBox.confirm(  
      '是否重置用户密码?',
      '提示',
      t('productStock.repassword'),
      t('productStock.prompt'),
      {  
        confirmButtonText: '是',
        cancelButtonText: '取消',
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',  
      }
    );
      }
    );
    if (confirmResult === 'confirm') {  
      // 用户点击了“是”,现在调用删除接口  
      var url="/loadGlass/sys/user/resetPassword?userId="+row.id;
@@ -148,16 +151,16 @@
};
// 删除 
 const opena = async(row) => {  
  try {
  try {
    const confirmResult = await ElMessageBox.confirm(  
      '是否删除该用户?',
      '提示',
      t('productStock.deusername'),
      t('productStock.prompt'),
      {  
        confirmButtonText: '是',
        cancelButtonText: '取消',
        confirmButtonText: t('productStock.yes'),
        cancelButtonText: t('productStock.cancel'),
        type: 'warning',  
      }
    );
      }
    );
    if (confirmResult === 'confirm') {  
      // 用户点击了“是”,现在调用删除接口  
      const response = await request.post("/loadGlass/sys/user/deleteUser", {
@@ -219,32 +222,32 @@
<template>
  <div>
     <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  size="mini" id="searchButton" @click="add = true">添加用户</el-button>
     <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  size="mini" id="searchButton" @click="add = true">{{ $t('productStock.addusers') }}</el-button>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
        <el-table height="240" ref="table" 
        @selection-change="handleSelectionChange"
        :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
          <el-table-column prop="userName" align="center" label="用户名" min-width="180" />
          <el-table-column align="center" label="角色" min-width="80">
          <el-table-column prop="userName" align="center" :label="$t('productStock.username')" min-width="180" />
          <el-table-column align="center" :label="$t('productStock.role')" min-width="80">
            <template #default="scope">  
             <el-tag v-for="role in scope.row.roleList">  
            {{role.name}}  
           </el-tag>   
         </template> 
            </el-table-column>
          <el-table-column fixed="right" label="操作" align="center" width="200">
          <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
            <template #default="scope">
              <el-button size="mini" type="text" plain @click="open(scope.row)">重置密码</el-button>
              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">编辑</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">删除</el-button>
              <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('productStock.resetpassword') }}</el-button>
              <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
      </div>
    </el-card>
  </div>
  <el-dialog v-model="add" top="23vh" width="37%" title="添加用户" >
  <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusers')">
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form  size="mini" label-width="150px">
      <el-form label-width="100px" label-position="right">
@@ -252,8 +255,8 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item label="用户名:" :required="true" style="width: 25vw">
                <el-input v-model="userName" autocomplete="off" />
          <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw">
                <el-input v-model="userName" autocomplete="off" :placeholder="$t('productStock.inusername')" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -261,12 +264,12 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="角色:" :required="true" style="width: 25vw;">
              <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;">
                <el-select
               v-model="selectedProjectNoa"
               filterable
               clearable
               placeholder="请选择角色"
               :placeholder="$t('productStock.inrole')"
               style="width: 330px"
             >
               <el-option
@@ -283,9 +286,10 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="密码:" :required="true" style="width: 25vw;">
              <el-form-item :label="$t('productStock.password')" :required="true" style="width: 25vw;">
                <el-input style="width: 340px;"
                        v-model="password"
                        :placeholder="$t('productStock.inpassword')"
                        autocomplete="off"
                        :prefix-icon="Lock"
                        show-password/>
@@ -298,13 +302,13 @@
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="getTableRow">
          确认
          {{ $t('productStock.sure') }}
        </el-button>
        <el-button @click="add = false">取消</el-button>
        <el-button @click="add = false">{{ $t('productStock.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog> 
  <el-dialog v-model="adda" top="23vh" width="37%" title="修改用户" >
  <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('productStock.reusername')" >
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form :model="editingUser" ref="formRef" size="mini" label-width="150px">
      <el-form label-width="100px" label-position="right">
@@ -312,8 +316,8 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item label="用户名:" :required="true" style="width: 25vw">
                <el-input v-model="editingUser.userName" autocomplete="off" />
          <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw">
                <el-input :placeholder="$t('productStock.inusername')" v-model="editingUser.userName" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -328,12 +332,12 @@
           </el-tag>   
         </template> 
            </el-table-column> -->
              <el-form-item label="角色:" :required="true" style="width: 25vw;">
              <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;">
                <el-select
               v-model="selectedProjectNoa"
               filterable
               clearable
               placeholder="请选择角色"
               :placeholder="$t('productStock.inrole')"
               style="width: 330px"
             >
               <el-option
@@ -350,9 +354,10 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <el-form-item label="密码:" :required="true" style="width: 25vw;">
              <el-form-item :label="$t('productStock.password')" :required="true" style="width: 25vw;">
                <el-input style="width: 340px;"
                        v-model="editingUser.password"
                        :placeholder="$t('productStock.inpassword')"
                        autocomplete="off"
                        :prefix-icon="Lock"
                        show-password/>
@@ -365,9 +370,9 @@
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="getTableRowa">
          确认
          {{ $t('productStock.sure') }}
        </el-button>
        <el-button @click="adda = false">取消</el-button>
        <el-button @click="adda = false">{{ $t('productStock.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog>