zhoushihao
2024-07-04 5322ebe732e1cfb1abaf459edec03a6eab949cde
UI-Project/src/views/User/userlist.vue
@@ -5,7 +5,6 @@
const router = useRouter()
const add = ref(false)
const adda = ref(false)
const editingUser = ref({}); // 用于存储当前编辑的用户数据
import request from "@/utils/request"
import { ref, onMounted } from "vue";
// import { ref } from 'vue'
@@ -86,7 +85,7 @@
    const response = await request.post('/loadGlass/sys/role/queryRole',{
  key: ''
});  
    if (response.code == 200) {
    if (response.code === 200) {
    titleSelectJsona.value.processTypea = response.data;
    console.log(response.data);
 
@@ -99,23 +98,33 @@
}; 
// 处理编辑按钮点击  
function handleEdit(row) {  
  editingUser.value = { ...row }; // 使用展开运算符复制当前行数据
  userName.value = row.userName;
  adda.value = true; // 显示对话框  
  window.localStorage.setItem('id', row.id)
// 添加 
const getTableRow = async () => {
  try {
    const response = await request.post('/loadGlass/sys/user/saveUser', {
      userName: userName.value,
      nickName: userName.value,
      password: password.value,
      name: selectedProjectNoa.value,
      roleList: [
    {
      id: selectedProjectNoa.value,
      // name: selectedProjectNoa.value.name,
    }]
      // roleList: selectedProjectNoa.value.map(item => ({
      //   id: item.id,
      //   name: item.name
      // }))
    }); 
    if (response.code == 200) {
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      add.value = false;
    //  tableData.value = response.data;
     tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
@@ -127,22 +136,26 @@
};
// 编辑
const getTableRowa = async () => {
  let id = window.localStorage.getItem('id')
  try {
    const response = await request.post('/loadGlass/sys/user/updateUser', {
      id: id,
      userName: userName.value,
      password: password.value,
      name: selectedProjectNoa.value,
    });
    if (response.code == 200) {
      roleList: [
    {
      id: selectedProjectNoa.value,
      // roleKey: selectedProjectNoa.value.id,
    }]
  }
  );
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      editingUser.value = {};
      adda.value = false;
     tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.msg);
      ElMessage.error(response.message);
    }
  } catch (error) {
    // 处理错误
@@ -163,9 +176,7 @@
    );
    if (confirmResult === 'confirm') {  
      // 用户点击了“是”,现在调用删除接口  
      const response = await request.post("/loadGlass/sys/user/deleteUser", {
        ids: [row.id],
    })
      const response = await request.post("/loadGlass/sys/user/deleteUser",  [row.id])
    if (response.code === 200) {
      ElMessage.success(response.message);
      } else {  
@@ -180,44 +191,6 @@
  }  
};   
const gridOptions = reactive({
  border:  "full",//表格加边框
  keepSource: true,//保持源数据
  align: 'center',//文字居中
  stripe:true,//斑马纹
  rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮
  id: 'OrderList',
  showFooter: true,//显示脚
  printConfig: {},
  importConfig: {},
  exportConfig: {},
  scrollY:{ enabled: true },//开启虚拟滚动
  showOverflow:true,
  columnConfig: {
    resizable: true,
    useKey: true
  },
  filterConfig: {   //筛选配置项
    remote: true
  },
  customConfig: {
    storage: true
  },
  editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },
  data:  [
    {
      'id': '1',
      'long': '5',
      'wide': '1005',
      'thick': '183.6',
    }
  ]
})
</script>
<template>
@@ -276,7 +249,7 @@
         v-for="item in titleSelectJsona['processTypea']"  
            :key="item.id"
            :label="item.name"
            :value="item.name"
            :value="item.id"
          />
        </el-select>
              </el-form-item></div></div>
@@ -310,14 +283,14 @@
  </el-dialog> 
  <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 ref="formRef" size="mini" label-width="150px">
      <el-form label-width="100px" label-position="right">
        <el-row style="margin-top: -15px;margin-bottom: -2px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <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-input :placeholder="$t('productStock.inusername')" v-model="userName" autocomplete="off" />
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -325,13 +298,6 @@
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
          <!-- <el-table-column align="center" label="角色" min-width="80">
            <template #default="scope">
             <el-tag v-for="role in scope.row.roleList">
            {{role.name}}
           </el-tag>
         </template>
            </el-table-column> -->
              <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;">
                <el-select
               v-model="selectedProjectNoa"
@@ -341,26 +307,12 @@
               style="width: 330px"
             >
               <el-option
         v-for="item in titleSelectJsona['processTypea']"
         v-for="item in titleSelectJsona['processTypea']"
            :key="item.id"
            :label="item.name"
            :value="item.name"
            :value="item.id"
          />
        </el-select>
              </el-form-item></div></div>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px;">
          <el-col :span="6">
              <div id="dt" style="font-size: 15px;">
        <div>
              <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/>
              </el-form-item></div></div>
          </el-col>
        </el-row>