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