严智鑫
2024-09-09 006906bbe32308e013f4a886dd08cc443e43ced4
Merge branch 'master' of http://10.153.19.25:10105/r/JiuMuMES
8个文件已修改
371 ■■■■ 已修改文件
UI-Project/package-lock.json 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/package.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/lang/zh.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/main.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/User/menu.vue 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/User/page.vue 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/User/permissions.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/src/views/User/userlist.vue 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI-Project/package-lock.json
@@ -13,7 +13,7 @@
        "axios": "^1.6.8",
        "chart.js": "^4.4.3",
        "echarts": "^5.5.1",
        "element-plus": "^2.4.0",
        "element-plus": "^2.8.2",
        "moment": "^2.30.1",
        "pinia": "^2.1.6",
        "pinia-plugin-persistedstate": "^3.2.0",
@@ -847,12 +847,12 @@
      }
    },
    "node_modules/element-plus": {
      "version": "2.4.0",
      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.4.0.tgz",
      "integrity": "sha512-yJEa8LXkGOOgkfkeqMMEdeX/Dc8EH9qPcRuX91dlhSXxgCKKbp9tH3QFTOG99ibZsrN/Em62nh7ddvbc7I1frw==",
      "version": "2.8.2",
      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.2.tgz",
      "integrity": "sha512-pqoQlaUmzUFCjjTHyxGO7Cd0CizsQpIaad1ozV9PCaYjh2T4MIMnjfifqiYs2lWoZ/8GVwrRG1WTCfnZEjwfcg==",
      "dependencies": {
        "@ctrl/tinycolor": "^3.4.1",
        "@element-plus/icons-vue": "^2.0.6",
        "@element-plus/icons-vue": "^2.3.1",
        "@floating-ui/dom": "^1.0.1",
        "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
        "@types/lodash": "^4.14.182",
@@ -2779,12 +2779,12 @@
      }
    },
    "element-plus": {
      "version": "2.4.0",
      "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.4.0.tgz",
      "integrity": "sha512-yJEa8LXkGOOgkfkeqMMEdeX/Dc8EH9qPcRuX91dlhSXxgCKKbp9tH3QFTOG99ibZsrN/Em62nh7ddvbc7I1frw==",
      "version": "2.8.2",
      "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.8.2.tgz",
      "integrity": "sha512-pqoQlaUmzUFCjjTHyxGO7Cd0CizsQpIaad1ozV9PCaYjh2T4MIMnjfifqiYs2lWoZ/8GVwrRG1WTCfnZEjwfcg==",
      "requires": {
        "@ctrl/tinycolor": "^3.4.1",
        "@element-plus/icons-vue": "^2.0.6",
        "@element-plus/icons-vue": "^2.3.1",
        "@floating-ui/dom": "^1.0.1",
        "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
        "@types/lodash": "^4.14.182",
UI-Project/package.json
@@ -13,7 +13,7 @@
    "axios": "^1.6.8",
    "chart.js": "^4.4.3",
    "echarts": "^5.5.1",
    "element-plus": "^2.4.0",
    "element-plus": "^2.8.2",
    "moment": "^2.30.1",
    "pinia": "^2.1.6",
    "pinia-plugin-persistedstate": "^3.2.0",
UI-Project/src/lang/zh.js
@@ -67,7 +67,9 @@
        editmenu:'修改菜单',
        firstmenu:'菜单',
        firstmenua:'菜单:',
        remark:'备注:',
        infirstmenu:'请输入菜单',
        inremark:'请输入备注',
        sure :'确认',
        cancel :'取消',
        edit :'编辑',
UI-Project/src/main.js
@@ -1,5 +1,4 @@
import './assets/main.css'
import { createApp } from 'vue'
import { createPinia } from 'pinia'
import piniaPluginPersistedstate from 'pinia-plugin-persistedstate'
@@ -33,4 +32,4 @@
    locale: zhCn,
})
app.use(i18n)
app.mount('#app')
app.mount('#app')
UI-Project/src/views/User/menu.vue
@@ -12,48 +12,20 @@
  import { useI18n } from 'vue-i18n'
  const { t } = useI18n()
  let language = ref(localStorage.getItem('lang') || 'zh')
//  import LanguageMixin from './lang/LanguageMixin'
const selectedProjectNoa = ref(null); // 当前选中的角色
// const options = ref<any[]>([]); // 下拉选项列表
  const userName = ref('');
  const account = ref('');
  const password = ref('');
  const menuNumber = ref('');
  const remark = ref('');
  const menuName = ref('');
const tableData = ref([])
const slot = ref('')
request.post("/deviceInteraction/menu/findMenusAll").then((res) => {
          if (res.code == 200) {
          console.log(res.data);
          tableData.value = res.data
          } else {
          ElMessage.warning(res.msg)
          }
          });
const titleSelectJsona = ref({
  processType: [],
})
// const handleInputChangea = async (value: string) => {
//   if (value) {
//     await fetchOptionsa(value);
//   } else {
//     options.value = []; // 清空选项列表
//   }
// };
onMounted(() => {  
  // 在组件挂载后调用 fetchOptions('') 来加载初始数据(如果需要)
  fetchOptionsa('');
});
  // 角色下拉选
  const fetchOptionsa = async () => {
  list('');
});
const list = async () => {
  try {  
    // 发送请求到后端接口
    const response = await request.post('/deviceInteraction/role/findRolesAll');
    const response = await request.post('/deviceInteraction/menu/findMenusAll');
    if (response.code === 200) {  
    titleSelectJsona.value.processTypea = response.data;
    console.log(response.data);
      tableData.value = response.data
    } else {  
      ElMessage.warning(response.data);  
    }  
@@ -63,42 +35,40 @@
}; 
// 处理编辑按钮点击  
function handleEdit(row) {
  menuName.value = row.menuName;
  menuNumber.value = row.menuNumber;
  remark.value = row.remark;
  window.localStorage.setItem('ids', row.id);
  userName.value = row.userName;
  if (row.roleList && row.roleList.length > 0) {
    const firstRole = row.roleList[0];
    selectedProjectNoa.value = firstRole.id; // 设置为ID,而不是name
  }
  adda.value = true; // 显示对话框  
}
function closeDialog(row) {
     add.value = false;
     userName.value = '';
     nickName.value = '';
     password.value = '';
     selectedProjectNoa.value = '';
     menuName.value = '';
     menuNumber.value = '';
     remark.value = '';
}
function closeDialoga(row) {
     adda.value = false;
     userName.value = '';
     nickName.value = '';
     password.value = '';
     menuName.value = '';
     menuNumber.value = '';
     remark.value = '';
}
// 添加 
const getTableRow = async () => {
  try {
    const response = await request.post('/deviceInteraction/account/addAccount', {
    const response = await request.post('/deviceInteraction/menu/addMenu', {
      id: 0,
      menuName: menuName.value,
      menuNumber: menuNumber.value,
      remark: passwremarkord.value,
      menuNumber: '',
      remark: remark.value
    }); 
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      add.value = false;
     tableData.value = response.data;
        list()
        // tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -113,17 +83,18 @@
  let ids = window.localStorage.getItem('ids')
  try {
    const response = await request.post('/deviceInteraction/menu/updateMenu', {
      account: account.value,
      roleId: selectedProjectNoa.value,
      userName: userName.value,
      password: password.value,
      id: ids,
      menuName: menuName.value,
      menuNumber: menuNumber.value,
      remark: remark.value,
  }
  ); 
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      adda.value = false;
     tableData.value = response.data;
        list()
        // tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -152,6 +123,7 @@
      })
    if (response.code === 200) {
      ElMessage.success(response.message);
        list()
      } else {  
        // 删除失败,您可以处理错误或显示错误信息给用户  
      ElMessage.error(response.msg);
@@ -195,7 +167,17 @@
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('customer.firstmenua')" :required="true" style="width: 25vw">
                <el-input v-model="userName" autocomplete="off" :placeholder="$t('customer.infirstmenu')" />
                <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.infirstmenu')" />
              </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('customer.remark')"  style="width: 25vw">
                <el-input v-model="remark" autocomplete="off" :placeholder="$t('customer.inremark')" />
              </el-form-item></div></div>
          
          </el-col>
@@ -221,7 +203,17 @@
              <div id="dt" style="font-size: 15px;">
        <div>
          <el-form-item :label="$t('customer.firstmenua')" :required="true" style="width: 25vw">
                <el-input v-model="userName" autocomplete="off" :placeholder="$t('customer.infirstmenu')" />
                <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.infirstmenu')" />
              </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('customer.remark')"  style="width: 25vw">
                <el-input v-model="remark" autocomplete="off" :placeholder="$t('customer.inremark')" />
              </el-form-item></div></div>
          
          </el-col>
@@ -231,10 +223,10 @@
          </div>
    <template #footer>
      <div id="dialog-footer">
        <el-button type="primary" @click="getTableRow">
        <el-button type="primary" @click="getTableRowa">
          {{ $t('customer.sure') }}
        </el-button>
        <el-button @click="closeDialog">{{ $t('customer.cancel') }}</el-button>
        <el-button @click="closeDialoga">{{ $t('customer.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog> 
UI-Project/src/views/User/page.vue
@@ -12,47 +12,20 @@
  import { useI18n } from 'vue-i18n'
  const { t } = useI18n()
  let language = ref(localStorage.getItem('lang') || 'zh')
//  import LanguageMixin from './lang/LanguageMixin'
const selectedProjectNoa = ref(null); // 当前选中的角色
// const options = ref<any[]>([]); // 下拉选项列表
const selectedProjectNoa = ref(null);
  const pageName = ref('');
  const pageUrl = ref('');
  const pageNumber = ref('');
const tableData = ref([])
const slot = ref('')
request.post("/deviceInteraction/page/findPagesAll").then((res) => {
          if (res.code == 200) {
          console.log(res.data);
          tableData.value = res.data
          } else {
          ElMessage.warning(res.msg)
          }
          });
const titleSelectJsona = ref({
  processType: [],
})
// const handleInputChangea = async (value: string) => {
//   if (value) {
//     await fetchOptionsa(value);
//   } else {
//     options.value = []; // 清空选项列表
//   }
// };
onMounted(() => {  
  // 在组件挂载后调用 fetchOptions('') 来加载初始数据(如果需要)
  fetchOptionsa('');
  list('');
}); 
  // 角色下拉选
  const fetchOptionsa = async () => {
const list = async () => {
  try {  
    // 发送请求到后端接口
    const response = await request.post('/deviceInteraction/role/findRolesAll');
    const response = await request.post('/deviceInteraction/page/findPagesAll');
    if (response.code === 200) {  
    titleSelectJsona.value.processTypea = response.data;
    console.log(response.data);
      tableData.value = response.data
    } else {  
      ElMessage.warning(response.data);  
    }  
@@ -62,7 +35,9 @@
}; 
// 处理编辑按钮点击  
function handleEdit(row) {
  userName.value = row.userName;
  pageName.value = row.pageName;
  pageUrl.value = row.pageUrl;
  pageNumber.value = row.pageNumber;
  window.localStorage.setItem('ids', row.id);
  window.localStorage.setItem('pageNumber', row.pageNumber);
  if (row.roleList && row.roleList.length > 0) {
@@ -71,19 +46,17 @@
  }  
  adda.value = true; // 显示对话框  
}
function closeDialog(row) {
     add.value = false;
     userName.value = '';
     nickName.value = '';
     password.value = '';
     selectedProjectNoa.value = '';
     pageNumber.value = '';
     pageUrl.value = '';
     pageName.value = '';
}
function closeDialoga(row) {
     adda.value = false;
     userName.value = '';
     nickName.value = '';
     password.value = '';
     pageNumber.value = '';
     pageUrl.value = '';
     pageName.value = '';
}
// 添加 
const getTableRow = async () => {
@@ -95,38 +68,32 @@
      pageUrl: pageUrl.value,
    }); 
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      add.value = false;
     tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
        list()
      } else {
      ElMessage.error(response.message);
    }
  } catch (error) {
    // 处理错误
    console.error(error);
  }
};
// 编辑
const getTable = async () => {
  let ids = window.localStorage.getItem('ids')
  let pageNumber = window.localStorage.getItem('pageNumber')
  try {
    const response = await request.post('/deviceInteraction/page/updatePage', {
      id: ids,
      pageName: pageName.value,
      pageNumber: pageNumber,
      pageNumber: pageNumber.value,
      pageUrl: pageUrl.value,
  }
  ); 
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      adda.value = false;
     tableData.value = response.data;
        list()
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
  } catch (error) {
@@ -153,6 +120,7 @@
      })
    if (response.code === 200) {
      ElMessage.success(response.message);
        list()
      } else {  
        // 删除失败,您可以处理错误或显示错误信息给用户  
      ElMessage.error(response.msg);
@@ -256,7 +224,7 @@
        <el-button type="primary" @click="getTable">
          {{ $t('pagemenu.sure') }}
        </el-button>
        <el-button @click="closeDialog">{{ $t('pagemenu.cancel') }}</el-button>
        <el-button @click="closeDialoga">{{ $t('pagemenu.cancel') }}</el-button>
      </div>
    </template>
  </el-dialog> 
UI-Project/src/views/User/permissions.vue
@@ -24,14 +24,6 @@
const tableData = ref([])
const slot = ref('')
request.post("/deviceInteraction/roleMenu/findRoleMenusAll").then((res) => {
          if (res.code == 200) {
          console.log(res.data);
          tableData.value = res.data
          } else {
          ElMessage.warning(res.msg)
          }
          });
const titleSelectJsona = ref({
  processType: [],
})
@@ -42,10 +34,23 @@
  processType2: [],
})
onMounted(() => {  
  list('');
  fetchOptionsa('');
  fetchOptionsa1('');
  fetchOptionsa2('');
}); 
const list = async () => {
  try {
    const response = await request.post('/deviceInteraction/roleMenu/findRoleMenusAll');
    if (response.code === 200) {
      tableData.value = response.data
    } else {
      ElMessage.warning(response.data);
    }
  } catch (error) {
    console.error('Error fetching options:', error);
  }
};
  // 角色下拉选  
  const fetchOptionsa = async () => {  
  try {  
@@ -90,6 +95,9 @@
}; 
// 处理编辑按钮点击  
function handleEdit(row) {  
  selectedProjectNoa.value = row.role_name;
  selectedProjectNoa1.value = row.menu_name;
  selectedProjectNoa2.value = row.page_name;
  userName.value = row.userName;
  if (row.roleList && row.roleList.length > 0) {  
    const firstRole = row.roleList[0];  
@@ -126,7 +134,8 @@
    if (response.code === 200) {
      ElMessage.success(response.message);
      add.value = false;
     tableData.value = response.data;
        list()
        //  tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -147,8 +156,9 @@
    });
    if (response.code === 200) {
      ElMessage.success(response.message);
      add.value = false;
     tableData.value = response.data;
      add1.value = false;
        list()
        //  tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -162,21 +172,19 @@
const getTableRowa = async () => {
  let id = window.localStorage.getItem('id')
  try {
    const response = await request.post('/loadGlass/sys/user/updateUser', {
    const response = await request.post('/deviceInteraction/role/updateRole', {
      id: id,
      userName: userName.value,
      roleList: [
    {
      id: selectedProjectNoa.value,
      // roleKey: selectedProjectNoa.value.id,
    }]
      remark: selectedProjectNoa.value,
      roleName: selectedProjectNoa1.value,
      roleNumber: selectedProjectNoa2.value,
  }
  ); 
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      adda.value = false;
     tableData.value = response.data;
        list()
        // tableData.value = response.data;
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
@@ -205,6 +213,7 @@
      })
    if (response.code === 200) {
      ElMessage.success(response.message);
        list()
      } else {  
        // 删除失败,您可以处理错误或显示错误信息给用户  
      ElMessage.error(response.msg);
@@ -379,7 +388,7 @@
        <div>
              <el-form-item :label="$t('delivery.menu')" :required="true" style="width: 25vw;">
                <el-select
               v-model="selectedProjectNoa"
               v-model="selectedProjectNoa1"
               filterable
               clearable
               :placeholder="$t('delivery.menuchoice')"
@@ -401,7 +410,7 @@
        <div>
              <el-form-item :label="$t('delivery.page')" :required="true" style="width: 25vw;">
                <el-select
               v-model="selectedProjectNoa"
               v-model="selectedProjectNoa2"
               filterable
               clearable
               :placeholder="$t('delivery.pagechoice')"
UI-Project/src/views/User/userlist.vue
@@ -1,50 +1,41 @@
<script setup>
import {Search} from "@element-plus/icons-vue";
import {reactive} from "vue";
import {useRouter} from "vue-router"
const router = useRouter()
const add = ref(false)
const adda = ref(false)
import request from "@/utils/request"
import { ref, onMounted } from "vue";
// import { ref } from 'vue'
import { ref, onMounted,reactive } 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(null); // 当前选中的角色
// const options = ref<any[]>([]); // 下拉选项列表
  const userName = ref('');
  const account = ref('');
  const password = ref('');
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
let language = ref(localStorage.getItem('lang') || 'zh')
const selectedProjectNoa = ref(null);
const userName = ref('');
const account = ref('');
const password = ref('');
const tableData = ref([])
const slot = ref('')
request.post("/deviceInteraction/account/findAccounts").then((res) => {
          if (res.code == 200) {
          console.log(res.data);
          tableData.value = res.data
          } else {
          ElMessage.warning(res.msg)
          }
          });
onMounted(() => {
  list('');
  fetchOptionsa('');
});
const list = async () => {
  try {
    const response = await request.post('/deviceInteraction/account/findAccounts');
    if (response.code === 200) {
      tableData.value = response.data
    } else {
      ElMessage.warning(response.data);
    }
  } catch (error) {
    console.error('Error fetching options:', error);
  }
};
const titleSelectJsona = ref({
  processType: [],
 
})
// const handleInputChangea = async (value: string) => {
//   if (value) {
//     await fetchOptionsa(value);
//   } else {
//     options.value = []; // 清空选项列表
//   }
// };
onMounted(() => {
  // 在组件挂载后调用 fetchOptions('') 来加载初始数据(如果需要)
  fetchOptionsa('');
});
  // 角色下拉选  
  const fetchOptionsa = async () => {  
  try {  
@@ -63,31 +54,30 @@
}; 
// 处理编辑按钮点击  
function handleEdit(row) {
  account.value = row.account;
  selectedProjectNoa.value = row.role_name;
  userName.value = row.user_name;
  password.value = row.password;
  window.localStorage.setItem('ids', row.id);
  userName.value = row.userName;
  if (row.roleList && row.roleList.length > 0) {
    const firstRole = row.roleList[0];
    selectedProjectNoa.value = firstRole.id; // 设置为ID,而不是name
  }
  adda.value = true; // 显示对话框  
}
function closeDialog(row) {
     add.value = false;
     userName.value = '';
     nickName.value = '';
     password.value = '';
     selectedProjectNoa.value = '';
      account.value = '';
      selectedProjectNoa.value = '';
      userName.value = '';
      password.value = '';
}
function closeDialoga(row) {
     adda.value = false;
     userName.value = '';
     nickName.value = '';
     password.value = '';
      account.value = '';
      selectedProjectNoa.value = '';
      userName.value = '';
      password.value = '';
}
// 添加 
const getTableRow = async () => {
  try {
    try {
    const response = await request.post('/deviceInteraction/account/addAccount', {
      account: account.value,
      roleId: selectedProjectNoa.value,
@@ -95,19 +85,21 @@
      password: password.value,
    }); 
    if (response.code === 200) {
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      add.value = false;
     tableData.value = response.data;
      account.value = '';
      selectedProjectNoa.value = '';
      userName.value = '';
      password.value = '';
        list()
    } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
  } catch (error) {
    // 处理错误
    console.error(error);
  }
};
  } catch (error) {
      // 处理请求错误
    }
};
// 编辑
const getTableRowa = async () => {
  let ids = window.localStorage.getItem('ids')
@@ -124,8 +116,9 @@
      // 绑定成功,处理逻辑
      ElMessage.success(response.message);
      adda.value = false;
     tableData.value = response.data;
    } else {
    //  tableData.value = response.data;
        list()
      } else {
      // 请求失败,显示错误消息
      ElMessage.error(response.message);
    }
@@ -153,6 +146,7 @@
      })
    if (response.code === 200) {
      ElMessage.success(response.message);
        list()
      } else {  
        // 删除失败,您可以处理错误或显示错误信息给用户  
      ElMessage.error(response.msg);
@@ -164,7 +158,6 @@
    console.error('发生错误:', error);  
  }  
};   
</script>
<template>