wangfei
78 分钟以前 71594bd2dc9201834aa533099e9e49a9b84506cd
UI-Project/src/views/User/rolelist.vue
@@ -1,6 +1,6 @@
<script setup>
import {Search} from "@element-plus/icons-vue";
import {reactive} from "vue";
import {reactive, computed} from "vue";
import {useRouter} from "vue-router"
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
@@ -38,7 +38,6 @@
     tableData.value = response.data
    // titleSelectJsona.value.processTypea = response.data.menuList;
    // options.value = response.data.menuList
    console.log(response.data);
    } else {  
      ElMessage.warning(response.data);  
    }  
@@ -46,6 +45,12 @@
    console.error('Error fetching options:', error);  
  }  
}; 
// 计算属性检查表单是否有效
const isFormValid = computed(() => {
  return name.value.trim() !== '' &&
         selectedOptions.value &&
         selectedOptions.value.length > 0;
});
// 添加
const getTableRow = async () => {
  try {  
@@ -73,11 +78,11 @@
          });  
        }  
      }  
    });
    });
    const dataToSend = {  
      name: name.value,
      menuList: menuList
    };
    };
    const response = await request.post('/loadGlass/sys/role/saveRole', dataToSend);
    if (response.code == 200) {
      ElMessage.success(response.message);
@@ -92,7 +97,7 @@
    console.error(error);
  }
};
function handleEdit(row) {
function handleEdit(row) {
  name.value = row.name;  
  adda.value = true;
  window.localStorage.setItem('ids', row.id);
@@ -132,8 +137,7 @@
  }  
  if (selectedOptions.value !== topLevelItems) {  
    selectedOptions.value = topLevelItems;  
  }
  console.log(topLevelItems);
  }
  // selectedOptions.value = topLevelItems;
const topLevelItemsWithChildren = topLevelItems; // 包含顶级菜单项及其子菜单项的数组  
 let selectedPath = [];
@@ -149,7 +153,6 @@
        }  
    }  
}
 console.log(selectedPath);
selectedOptions.value = selectedPath;
}
// 编辑
@@ -237,9 +240,7 @@
};
request.get("/loadGlass/sys/menu/nav").then((res) => {
 if (res.code == 200) {
 console.log(res.data);
 options.value = res.data.tree
 console.log( options.value);
 } else {
 ElMessage.warning(res.msg)
 }
@@ -247,7 +248,7 @@
</script>
<template>
  <div>
     <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  size="mini" id="searchButton" @click="add = true">{{ $t('delivery.addrole') }}</el-button>
     <el-button type="primary" style="margin-top: 10px;margin-left: 10px;"  id="searchButton" @click="add = true">{{ $t('delivery.addrole') }}</el-button>
    <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;">
      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
        <el-table height="750" ref="table"
@@ -255,8 +256,8 @@
          <el-table-column prop="name" align="center" :label="$t('delivery.role')" min-width="180" />
          <el-table-column fixed="right" :label="$t('delivery.operate')" align="center" width="200">
            <template #default="scope">
              <el-button size="mini" type="text" plain  @click="handleEdit(scope.row)">{{ $t('delivery.edit') }}</el-button>
              <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('delivery.delete') }}</el-button>
              <el-button type="text" plain  @click="handleEdit(scope.row)">{{ $t('delivery.edit') }}</el-button>
              <el-button type="text" plain @click="opena(scope.row)">{{ $t('delivery.delete') }}</el-button>
            </template>
        </el-table-column>
        </el-table>
@@ -265,14 +266,14 @@
  </div>
  <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusername')" >
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form ref="formRef" size="mini" label-width="150px">
            <el-form ref="formRef" 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('delivery.rolea')" :required="true" style="width: 25vw">
                <el-input :placeholder="$t('delivery.inrole')" v-model="name" autocomplete="off"  style="width: 350px"/>
                <el-input :placeholder="$t('delivery.inrole')" v-model="name" autocomplete="off" :class="{ 'is-required': !name }" style="width: 350px"/>
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -283,6 +284,7 @@
              <el-form-item :label="$t('delivery.choice')" :required="true" style="width: 25vw;">
        <el-cascader 
         v-model="selectedOptions" 
         :class="{ 'is-required': !selectedOptions || selectedOptions.length === 0 }"
         :placeholder="$t('delivery.inchoice')"
         :props="cascaderProps"  
         :options="options" 
@@ -296,7 +298,7 @@
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="getTableRow">
        <el-button type="primary" @click="getTableRow" :disabled="!isFormValid">
          {{ $t('delivery.sure') }}
        </el-button>
        <el-button @click="closeDialog"> {{ $t('delivery.cancel') }}</el-button>
@@ -305,14 +307,14 @@
  </el-dialog> 
  <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('delivery.editrole')">
    <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
            <el-form ref="formRef" size="mini" label-width="150px">
            <el-form ref="formRef" 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('delivery.rolea')" :required="true" style="width: 25vw">
                <el-input :placeholder="$t('delivery.inrole')" v-model="name" autocomplete="off"  style="width: 350px"/>
                <el-input :placeholder="$t('delivery.inrole')" v-model="name" autocomplete="off" :class="{ 'is-required': !name }" style="width: 350px"/>
              </el-form-item></div></div>
          </el-col>
        </el-row>
@@ -323,6 +325,7 @@
       <el-form-item :label="$t('delivery.choice')" :required="true" style="width: 25vw;">
        <el-cascader 
         v-model="selectedOptions"  
         :class="{ 'is-required': !selectedOptions || selectedOptions.length === 0 }"
         :placeholder="$t('delivery.inchoice')"
         :props="cascaderProps"  
         :options="options" 
@@ -336,7 +339,7 @@
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="getTableRowa">
        <el-button type="primary" @click="getTableRowa" :disabled="!isFormValid">
          {{ $t('delivery.sure') }}
        </el-button>
        <el-button @click="closeDialoga">{{ $t('delivery.cancel') }}</el-button>