明树Git Lab

Commit 327efb71 authored by zhanghan's avatar zhanghan

1

parent 3b68760b
Pipeline #108284 passed with stage
in 20 seconds
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文件类别" required> <el-form-item label="问题类别" required>
<CommonSelector <CommonSelector
v-model="formData.issueCategory" v-model="formData.issueCategory"
dictName="xxhwtlb" dictName="xxhwtlb"
...@@ -80,7 +80,7 @@ const formData = reactive({ ...@@ -80,7 +80,7 @@ const formData = reactive({
wjmc: "", // 文件名称 wjmc: "", // 文件名称
bbsj: "", // 颁布时间 bbsj: "", // 颁布时间
wjcj: "", // 文件层级 wjcj: "", // 文件层级
wjlb: "", // 文件类别 wjlb: "", // 问题类别
fjsc: [], // 附件上传 fjsc: [], // 附件上传
}); });
......
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
labelPosition="top" labelPosition="top"
@keydown.enter="handleLogin" @keydown.enter="handleLogin"
> >
<el-form-item label="用户名" prop="mobile"> <el-form-item label="手机号" prop="mobile">
<el-input <el-input
:prefix-icon="User" :prefix-icon="User"
v-model="loginForm.mobile" v-model="loginForm.mobile"
placeholder="请输入用户名" placeholder="请输入手机号"
prefix-icon="el-icon-user" prefix-icon="el-icon-user"
></el-input> ></el-input>
</el-form-item> </el-form-item>
...@@ -60,35 +60,34 @@ const loading = ref(false); ...@@ -60,35 +60,34 @@ const loading = ref(false);
// 登录表单数据 // 登录表单数据
const loginForm = ref({ const loginForm = ref({
mobile: "", mobile: "",
password: "" password: "",
}); });
// 表单验证规则 // 表单验证规则
const loginRules = ref({ const loginRules = ref({
mobile: [ mobile: [{ required: true, message: "请输入手机号", trigger: "blur" }],
{ required: true, message: "请输入用户名", trigger: "blur" } password: [{ required: true, message: "请输入密码", trigger: "blur" }],
],
password: [
{ required: true, message: "请输入密码", trigger: "blur" }
],
}); });
// 处理登录 // 处理登录
const handleLogin = async () => { const handleLogin = async () => {
loginFormRef.value?.validate(valid => { loginFormRef.value?.validate((valid) => {
if (valid) { if (valid) {
proxy.$post({ proxy.$post({
url: "/api/user/login", url: "/api/user/login",
data: { data: {
encryptLogStr: CryptoJS.AES.encrypt(`${loginForm.value.mobile},${loginForm.value.password}`, "GFG5w5AP0Ja2rNaa").toString() encryptLogStr: CryptoJS.AES.encrypt(
}, `${loginForm.value.mobile},${loginForm.value.password}`,
callback: (data) => { "GFG5w5AP0Ja2rNaa",
userStore.setUseInfo(data); ).toString(),
router.replace("/"); },
} callback: (data) => {
}) userStore.setUseInfo(data);
router.replace("/");
},
});
} }
}) });
}; };
</script> </script>
...@@ -136,7 +135,7 @@ const handleLogin = async () => { ...@@ -136,7 +135,7 @@ const handleLogin = async () => {
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
border-radius: 8px; border-radius: 8px;
:deep(.el-form-item) { :deep(.el-form-item) {
margin-bottom: 10px; margin-bottom: 16px;
.el-form-item__content { .el-form-item__content {
.el-input { .el-input {
height: 48px; height: 48px;
......
...@@ -22,11 +22,29 @@ ...@@ -22,11 +22,29 @@
default-expand-all default-expand-all
> >
<template #operations="{ row, index }"> <template #operations="{ row, index }">
<el-button v-if="!row.url" link type="primary" size="small" @click="addChildMenu(row, index)"> 新增子菜单 </el-button> <el-button
<el-button link type="primary" size="small" @click="handleEdit(row, index)"> v-if="!row.url"
link
type="primary"
size="small"
@click="addChildMenu(row, index)"
>
新增子菜单
</el-button>
<el-button
link
type="primary"
size="small"
@click="handleEdit(row, index)"
>
编辑 编辑
</el-button> </el-button>
<el-button link type="primary" size="small" @click="handleDelete(row, index)"> <el-button
link
type="primary"
size="small"
@click="handleDelete(row, index)"
>
删除 删除
</el-button> </el-button>
</template> </template>
...@@ -38,26 +56,36 @@ ...@@ -38,26 +56,36 @@
:title="dialogTitle" :title="dialogTitle"
width="500px" width="500px"
@close="cancelMenuForm" @close="cancelMenuForm"
:close-on-click-modal="false" :close-on-press-escape="false" :close-on-click-modal="false"
:close-on-press-escape="false"
> >
<el-form :model="menuFormData" ref="menuForm" :rules="menuRules" label-width="100"> <el-form
<el-form-item label="项目名称" prop="name"> :model="menuFormData"
<el-input v-model="menuFormData.name" /> ref="menuForm"
:rules="menuRules"
label-width="100"
>
<el-form-item label="菜单名称" prop="name">
<el-input v-model="menuFormData.name" />
</el-form-item> </el-form-item>
<el-form-item label="排序"> <el-form-item label="排序">
<el-input-number v-model="menuFormData.order" :min="0" :precision="0" :max="99999999999" <el-input-number
controls-position="right" v-model="menuFormData.order"
/> :min="0"
:precision="0"
:max="99999999999"
controls-position="right"
/>
</el-form-item> </el-form-item>
<el-form-item label="路由地址"> <el-form-item label="路由地址">
<el-input v-model="menuFormData.url" /> <el-input v-model="menuFormData.url" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="cancelMenuForm">取消</el-button> <el-button @click="cancelMenuForm">取消</el-button>
<el-button type="primary" @click="saveMenuForm">保存</el-button> <el-button type="primary" @click="saveMenuForm">保存</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
</div> </div>
...@@ -73,9 +101,7 @@ const loading = ref(false); ...@@ -73,9 +101,7 @@ const loading = ref(false);
const menuForm = ref(); const menuForm = ref();
const menuRules = ref({ const menuRules = ref({
name: [ name: [{ required: true, message: "请输入菜单名称", trigger: "blur" }],
{ required: true, message: "请输入菜单名称", trigger: "blur" }
]
}); });
// 表格数据 // 表格数据
...@@ -99,7 +125,7 @@ const tableColumns = [ ...@@ -99,7 +125,7 @@ const tableColumns = [
width: 180, width: 180,
slot: "operations", slot: "operations",
fixed: "right", fixed: "right",
align: "right" align: "right",
}, },
]; ];
// 表格数据 // 表格数据
...@@ -134,7 +160,7 @@ const addChildMenu = (row, index) => { ...@@ -134,7 +160,7 @@ const addChildMenu = (row, index) => {
dialogTitle.value = "新增菜单"; dialogTitle.value = "新增菜单";
menuFormData.value.parentId = row.id; menuFormData.value.parentId = row.id;
dialogVisible.value = true; dialogVisible.value = true;
} };
// 编辑 // 编辑
const handleEdit = (row, index) => { const handleEdit = (row, index) => {
menuFormData.value = { ...row }; menuFormData.value = { ...row };
...@@ -144,39 +170,38 @@ const handleEdit = (row, index) => { ...@@ -144,39 +170,38 @@ const handleEdit = (row, index) => {
// 删除 // 删除
const handleDelete = async (row, index) => { const handleDelete = async (row, index) => {
ElMessageBox.confirm(`确定删除${row.name}?`, "提示", { ElMessageBox.confirm(`确定删除${row.name}?`, "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning",
}).then(() => { }).then(() => {
proxy.$post({ proxy.$post({
url: "/api/user/menu/deleteMenu", url: "/api/user/menu/deleteMenu",
data: { id: row.id }, data: { id: row.id },
callback: (data) => { callback: (data) => {
ElMessage.success("删除成功"); ElMessage.success("删除成功");
loadTableData(); loadTableData();
}, },
error: (err) => { error: (err) => {
ElMessage.error("删除失败:", err); ElMessage.error("删除失败:", err);
}, },
});
}); });
});
}; };
const saveMenuForm = () => { const saveMenuForm = () => {
menuForm.value.validate(valid => { menuForm.value.validate((valid) => {
if (valid) { if (valid) {
let url = menuFormData.value.id ? "updateMenu" : "createMenu" let url = menuFormData.value.id ? "updateMenu" : "createMenu";
proxy.$post({ proxy.$post({
url: "/api/user/menu/" + url, url: "/api/user/menu/" + url,
data: menuFormData.value, data: menuFormData.value,
callback: (data) => { callback: (data) => {
ElMessage.success(dialogTitle.value + "成功"); ElMessage.success(dialogTitle.value + "成功");
loadTableData(); loadTableData();
cancelMenuForm(); cancelMenuForm();
} },
}) });
} }
}); });
}; };
...@@ -192,5 +217,5 @@ onMounted(() => { ...@@ -192,5 +217,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