明树Git Lab

Commit 189a486f authored by zhanghan's avatar zhanghan

1\

parent 43436c6b
Pipeline #108215 passed with stage
in 20 seconds
...@@ -40,7 +40,11 @@ ...@@ -40,7 +40,11 @@
<span>{{ formatDate(row.updatedAt) }}</span> <span>{{ formatDate(row.updatedAt) }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="size" label="大小" /> <el-table-column prop="size" label="大小">
<template #default="{ row }">
<span>{{ row.size }} MB</span>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="100"> <el-table-column fixed="right" label="操作" width="100">
<template #default="{ row, $index }"> <template #default="{ row, $index }">
<span class="download-btn" @click="handleDownload(row)">下载</span> <span class="download-btn" @click="handleDownload(row)">下载</span>
...@@ -207,6 +211,7 @@ const formatDate = (date) => { ...@@ -207,6 +211,7 @@ const formatDate = (date) => {
const handleUploadSuccess = (res) => { const handleUploadSuccess = (res) => {
if (res && res.data) { if (res && res.data) {
fileList.value = [...fileList.value, res.data]; fileList.value = [...fileList.value, res.data];
console.log("上传成功:", res.data);
ElMessage.success("文件上传成功"); ElMessage.success("文件上传成功");
popoverVisible.value = false; popoverVisible.value = false;
} }
......
...@@ -53,6 +53,7 @@ import LeftMenu from "./leftMenu.vue"; ...@@ -53,6 +53,7 @@ import LeftMenu from "./leftMenu.vue";
import axios from "axios"; // watch中使用proxy会有warning import axios from "axios"; // watch中使用proxy会有warning
const userStore = useUserStore(); const userStore = useUserStore();
const proxyRef = ref(null); const proxyRef = ref(null);
const { proxy } = getCurrentInstance();
// 在 setup 中设置 // 在 setup 中设置
const instance = getCurrentInstance(); const instance = getCurrentInstance();
...@@ -69,29 +70,36 @@ const route = useRoute(); ...@@ -69,29 +70,36 @@ const route = useRoute();
// 获取资源库数据 // 获取资源库数据
const getResourceData = () => { const getResourceData = () => {
axios.post(windowConfig.baseUrl + "/api/resource/listResourceAll", {}).then((res) => { axios
.post(windowConfig.baseUrl + "/api/resource/listResourceAll", {})
.then((res) => {
sessionStorage.setItem("resourceData", JSON.stringify(res.data)); sessionStorage.setItem("resourceData", JSON.stringify(res.data));
}) });
}; };
// 获取未读消息数量 // 获取未读消息数量
let messageCount = ref(0); let messageCount = ref(0);
const getMessageCount = () => { const getMessageCount = () => {
axios.post(windowConfig.baseUrl + "/api/message/getMesCount", {}).then((res) => { axios
.post(windowConfig.baseUrl + "/api/message/getMesCount", {})
.then((res) => {
messageCount.value = res.data.count; messageCount.value = res.data.count;
}) });
}; };
// 跳转消息列表页 // 跳转消息列表页
const toMessagePage = () => { const toMessagePage = () => {
router.push("/message"); router.push("/message");
} };
onMounted(() => { onMounted(() => {
getResourceData(); getResourceData();
getMessageCount(); getMessageCount();
}); });
watch(() => route.path, () => { watch(
() => route.path,
() => {
getMessageCount(); getMessageCount();
}) },
);
// 处理退出登录 // 处理退出登录
const handleLogout = () => { const handleLogout = () => {
// 清除登录状态 // 清除登录状态
...@@ -182,11 +190,11 @@ const handleLogout = () => { ...@@ -182,11 +190,11 @@ const handleLogout = () => {
.header-right { .header-right {
display: flex; display: flex;
align-items: center; align-items: center;
.message-wrap{ .message-wrap {
position: relative; position: relative;
margin-right: 10px; margin-right: 10px;
cursor: pointer; cursor: pointer;
.count{ .count {
position: absolute; position: absolute;
top: -5px; top: -5px;
right: -5px; right: -5px;
......
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
:rules="departRules" :rules="departRules"
label-width="100" label-width="100"
> >
<el-form-item label="项目名称" prop="name"> <el-form-item label="部门名称" prop="name">
<el-input v-model="departFormData.name" /> <el-input v-model="departFormData.name" />
</el-form-item> </el-form-item>
</el-form> </el-form>
......
...@@ -4,7 +4,11 @@ ...@@ -4,7 +4,11 @@
<div class="header-left"> <div class="header-left">
<el-form :inline="true" :model="searchForm"> <el-form :inline="true" :model="searchForm">
<el-form-item label="关键字查询"> <el-form-item label="关键字查询">
<el-input v-model="searchForm.name" clearable @keydown.enter="handleSearch"/> <el-input
v-model="searchForm.name"
clearable
@keydown.enter="handleSearch"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleSearch">查询</el-button> <el-button type="primary" @click="handleSearch">查询</el-button>
...@@ -34,13 +38,13 @@ ...@@ -34,13 +38,13 @@
@current-page-change="handleCurrentPageChange" @current-page-change="handleCurrentPageChange"
> >
<template #departs="{ row }"> <template #departs="{ row }">
<div>{{ row.departs?.map(item => item.name).join(",") }}</div> <div>{{ row.departs?.map((item) => item.name).join(",") }}</div>
</template> </template>
<template #positions="{ row }"> <template #positions="{ row }">
<div>{{ row.positions?.map(item => item.name).join(",") }}</div> <div>{{ row.positions?.map((item) => item.name).join(",") }}</div>
</template> </template>
<template #roles="{ row }"> <template #roles="{ row }">
<div>{{ row.roles?.map(item => item.name).join(",") }}</div> <div>{{ row.roles?.map((item) => item.name).join(",") }}</div>
</template> </template>
<template #enable="{ row }"> <template #enable="{ row }">
<el-switch <el-switch
...@@ -52,10 +56,20 @@ ...@@ -52,10 +56,20 @@
</template> </template>
<template #operations="{ row, index }"> <template #operations="{ row, index }">
<el-button link type="primary" size="small" @click="handleEdit(row, index)"> <el-button
link
type="primary"
size="small"
@click="handleEdit(row, index)"
>
编辑 编辑
</el-button> </el-button>
<el-button link type="danger" size="small" @click="handleDelete(row, index)"> <el-button
link
type="danger"
size="small"
@click="handleDelete(row, index)"
>
删除 删除
</el-button> </el-button>
</template> </template>
...@@ -67,23 +81,32 @@ ...@@ -67,23 +81,32 @@
:title="dialogTitle" :title="dialogTitle"
width="600px" width="600px"
@close="cancelUserForm" @close="cancelUserForm"
:close-on-click-modal="false" :close-on-press-escape="false" :close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="userFormData"
ref="userForm"
:rules="userRules"
label-width="100"
> >
<el-form :model="userFormData" ref="userForm" :rules="userRules" label-width="100">
<el-form-item label="用户姓名" prop="name"> <el-form-item label="用户姓名" prop="name">
<el-input v-model="userFormData.name" placeholder="请输入用户姓名" /> <el-input v-model="userFormData.name" placeholder="请输入用户姓名" />
</el-form-item> </el-form-item>
<el-form-item label="手机号码" prop="mobile"> <el-form-item label="手机号码" prop="mobile">
<el-input v-model="userFormData.mobile" placeholder="请输入手机号码" /> <el-input
v-model="userFormData.mobile"
placeholder="请输入手机号码"
/>
</el-form-item> </el-form-item>
<el-form-item label="所属部门"> <el-form-item label="所属部门">
<el-tree-select <el-tree-select
v-model="userFormData.departs" v-model="userFormData.departs"
:data="departmentData" :data="departmentData"
node-key="id" node-key="id"
:props="{label: 'name'}" :props="{ label: 'name' }"
placeholder="请选择所属部门" placeholder="请选择所属部门"
multiple showCheckbox multiple
:render-after-expand="false" :render-after-expand="false"
/> />
</el-form-item> </el-form-item>
...@@ -98,12 +121,17 @@ ...@@ -98,12 +121,17 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="角色"> <el-form-item label="角色">
<el-select v-model="userFormData.roles" <el-select
v-model="userFormData.roles"
multiple multiple
placeholder="请选择角色" no-data-text="暂无数据" placeholder="请选择角色"
no-data-text="暂无数据"
> >
<el-option v-for="item in rolesData" :key="item.id" <el-option
:label="item.name" :value="item.id" v-for="item in rolesData"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -233,12 +261,8 @@ const loadRolesData = () => { ...@@ -233,12 +261,8 @@ const loadRolesData = () => {
}; };
// 表单验证规则 // 表单验证规则
const userRules = { const userRules = {
name: [ name: [{ required: true, message: "请输入用户姓名", trigger: "blur" }],
{ required: true, message: "请输入用户姓名", trigger: "blur" } mobile: [{ required: true, message: "请输入手机号码", trigger: "blur" }],
],
mobile: [
{ required: true, message: "请输入手机号码", trigger: "blur" }
]
}; };
// 事件处理函数 // 事件处理函数
...@@ -271,8 +295,8 @@ const handleEdit = (row, index) => { ...@@ -271,8 +295,8 @@ const handleEdit = (row, index) => {
data: { id: row.id }, data: { id: row.id },
callback: (data) => { callback: (data) => {
userFormData.value = { ...data }; userFormData.value = { ...data };
userFormData.value.departs = data.departs.map(item => item.id) userFormData.value.departs = data.departs.map((item) => item.id);
userFormData.value.roles = data.roles.map(item => item.id) userFormData.value.roles = data.roles.map((item) => item.id);
}, },
error: (err) => { error: (err) => {
ElMessage.error("编辑失败:", err); ElMessage.error("编辑失败:", err);
...@@ -304,7 +328,7 @@ const handleDelete = async (row, index) => { ...@@ -304,7 +328,7 @@ const handleDelete = async (row, index) => {
}; };
const saveUserForm = () => { const saveUserForm = () => {
userForm.value.validate(valid => { userForm.value.validate((valid) => {
if (valid) { if (valid) {
let url = userFormData.value.id ? "updateUser" : "createUser"; let url = userFormData.value.id ? "updateUser" : "createUser";
proxy.$post({ proxy.$post({
...@@ -320,7 +344,7 @@ const saveUserForm = () => { ...@@ -320,7 +344,7 @@ const saveUserForm = () => {
}, },
}); });
} }
}) });
}; };
const cancelUserForm = () => { const cancelUserForm = () => {
userFormData.value = {}; userFormData.value = {};
...@@ -341,7 +365,7 @@ const handleStatusChange = (newValue, row) => { ...@@ -341,7 +365,7 @@ const handleStatusChange = (newValue, row) => {
callback: (data) => { callback: (data) => {
loadTableData(); loadTableData();
ElMessage.success( ElMessage.success(
`用户状态已${newEnableValue === "0" ? "启用" : "停用"}` `用户状态已${newEnableValue === "0" ? "启用" : "停用"}`,
); );
}, },
error: (err) => { error: (err) => {
...@@ -381,5 +405,5 @@ onMounted(() => { ...@@ -381,5 +405,5 @@ onMounted(() => {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@import "@/styles/manage.less"; @import "@/styles/manage.less";
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment