Commit b36709fb by yzh

feat:修改了枚举量

parent e66e6c21
/// @ts-ignore
export enum DeleteMode {
BATCH_DELETE = 0,
SINGLE_DELETE = 1,
}
......@@ -18,41 +18,30 @@
import { ref, watch } from 'vue'
import { defineProps } from 'vue';
import { getUserList, addUser, deleteUser, updateUser, batchDeleteUser } from '@/api/user.ts'
const props = defineProps({
dialogVisible: {
type: Boolean,
default: false
},
deleteMode: {
type: String,
default: '0'
},
id: {
type: Number,
default: '0'
},
ids: {
type: Array,
default: []
}
})
import { DeleteMode } from '@/components/Delete/enum.ts'
interface deleteDialogPropType {
dialogVisible: boolean,
deleteMode: DeleteMode,
id: number,
ids: number[]
}
const props = defineProps<deleteDialogPropType>()
const emit = defineEmits(['update:dialogVisible', 'confirm', 'getUserList', 'update:deleteMode'])
const deleteDialogVisible = ref(props.dialogVisible)
const deleteMode = ref(props.deleteMode)
// 删除方法
const handleDelelte = async () => {
if (props.deleteMode == '1') {
if (props.deleteMode == DeleteMode.SINGLE_DELETE) {
await deleteUser({ id: props.id })
emit('getUserList')
deleteDialogVisible.value = false
}
else if (props.deleteMode == '2') {
else if (props.deleteMode == DeleteMode.BATCH_DELETE) {
console.log(props.ids);
// await batchDeleteUser({ ids: props.ids })
// emit('getUserList')
// deleteDialogVisible.value = false
await batchDeleteUser({ ids: props.ids })
emit('getUserList')
deleteDialogVisible.value = false
}
}
// 关闭弹窗的方法
......
<template>
<el-dialog v-model="currentVisible" :title="currentMode === '1' ? '新增用户' : '编辑用户'" width="610" center align-center
<el-dialog v-model="currentVisible" :title="currentMode === AddMode.ADD_MODE ? '新增用户' : '编辑用户'" width="610" center align-center
@close="handleClose" draggable>
<div v-if="currentMode === '1'">
<div v-if="currentMode === AddMode.ADD_MODE">
<el-form :rules="firstFormRules" ref="firstRuleFormRef" :model="firstForm">
<el-form-item label="用户账号:" prop="userAccount">
<el-input v-model="firstForm.userAccount" />
......@@ -24,7 +24,7 @@
</el-form-item>
</el-form>
</div>
<div v-if="currentMode === '2'">
<div v-if="currentMode === AddMode.UPDATE_MODE">
<el-form :inline="true" :rules="secondFormRules" ref="secondRuleFormRef" :model="secondForm">
<el-form-item label="用户名称:" prop="userName">
<el-input v-model="secondForm.userName" />
......@@ -64,6 +64,19 @@ import { defineProps, defineEmits } from 'vue';
import { addUser, updateUser } from '@/api/user.ts'
import type { FormInstance, FormRules } from 'element-plus'
import { ElMessage } from 'element-plus';
import { AddMode } from './enum';
interface addDialogPropType {
dialogVisible: boolean,
mode: AddMode,
nickName: string,
userName: string,
id: number,
userPassword: string,
userRole: number,
userStatus: boolean
}
const props = defineProps<addDialogPropType>()
// 定义表单数据结构(与rules对应)
const firstForm = ref({
......@@ -125,19 +138,7 @@ const userRoleOptions = [
{ value: true, label: '普通用户' } // 统一值类型
]
// 属性定义
const props = defineProps({
dialogVisible: { type: Boolean, default: false },
mode: { type: String, default: '1' },
nickName: { type: String, default: '' },
userName: { type: String, default: '' },
id: { type: Number, default: 0 },
userPassword: { type: String, default: '' },
userStatus: { type: Boolean, default: true },
userRole: { type: Number, default: false }
})
// 事件发射
const emit = defineEmits(['update:dialogVisible', 'getUserList'])
// 组件状态
......@@ -152,7 +153,7 @@ const handleClose = () => {
// 确认操作
const handleConfirm = async () => {
try {
if (currentMode.value === '1') {
if (currentMode.value === AddMode.ADD_MODE) {
if (!firstRuleFormRef.value) {
return;
}
......@@ -171,7 +172,7 @@ const handleConfirm = async () => {
emit('getUserList');
currentVisible.value = false;
}
} else if (currentMode.value === '2') {
} else if (currentMode.value === AddMode.UPDATE_MODE) {
// 编辑模式逻辑(略,可参考新增模式调整)
if (!secondRuleFormRef.value) return;
const valid = await secondRuleFormRef.value.validate();
......@@ -195,12 +196,10 @@ const handleConfirm = async () => {
}
}
} catch (error) {
console.error('操作失败:', error);
// 验证失败时Element会自动提示,无需额外处理
console.error(error);
}
};
// 监听属性同步
watch(() => props.dialogVisible, (newVal) => {
currentVisible.value = newVal
})
......@@ -216,7 +215,7 @@ watch(() => props.mode, (newVal) => {
watch(
[() => props.dialogVisible, () => props.mode, () => props.nickName, () => props.userPassword, () => props.userStatus, () => props.userRole],
([newVisible, newMode, newNickName, newPwd, newStatus, newRole]) => {
if (newVisible && newMode === '2') {
if (newVisible && newMode === AddMode.UPDATE_MODE) {
secondForm.value.userName = newNickName;
editPasswordForm.value.userPassword = newPwd || '';
userStatusValue.value = newStatus;
......
/// @ts-ignore
export enum AddMode {
ADD_MODE = 0,
UPDATE_MODE = 1,
}
......@@ -35,10 +35,11 @@
</div>
<!-- 删除弹窗组件 -->
<deleteDialog v-model:dialogVisible="showDeleteDialog" @get-user-list="getUserListData"
:ids="userIds" v-model:deleteMode="deleteMode" />
:ids="userIds" :deleteMode="deleteMode" :id="userId" />
<!-- 创建用户弹窗组件 -->
<addUserDialog v-model:dialogVisible="dialogVisible" :mode="mode" :nick-name="nickName" :user-name="userName"
:id="userId" :user-role="userRole" :user-status="userStatus" :user-password="userPassword"
<!-- todo -->
<addUserDialog v-model:dialogVisible="dialogVisible" :mode="mode" :nickName="nickName" :userName="userName"
:id="userId" :userRole="userRole" :userStatus="userStatus" :userPassword="userPassword"
@get-user-list="getUserListData" />
</div>
</template>
......@@ -49,18 +50,20 @@ import Pagination from '@/components/pagination/index.vue'
import deleteDialog from '@/components/Delete/index.vue'
import addUserDialog from './components/addUserDialog.vue'
import { getUserList, addUser, deleteUser, updateUser, batchDeleteUser } from '@/api/user.ts'
import { DeleteMode } from '@/components/Delete/enum.ts'
import { AddMode } from './components/enum.ts';
const userId = ref<any>([])
const userIds = ref<any>()
const nickName = ref('')
const userName = ref('')
const userRole = ref(0)
const userStatus = ref(true)
const userPassword = ref('')
const nickName = ref<string>('')
const userName = ref<string>('')
const userRole = ref<number>(0)
const userStatus = ref<boolean>(true)
const userPassword = ref<string>('')
const showDeleteDialog = ref(false)
const deleteMode = ref('0')
const dialogVisible = ref(false)
const mode = ref('1')
const deleteMode = ref<DeleteMode>(DeleteMode.SINGLE_DELETE)
const dialogVisible = ref<boolean>(false)
const mode = ref<AddMode>(AddMode.ADD_MODE)
const tableData = ref()
const pageObj = ref({
total: 12,
......@@ -68,7 +71,7 @@ const pageObj = ref({
pageNo: 1
})
const handleEdit = async (row: any) => {
mode.value = '2'
mode.value = AddMode.UPDATE_MODE
nickName.value = row.nickname
userName.value = row.username
userRole.value = row.role
......@@ -81,12 +84,12 @@ const handleEdit = async (row: any) => {
const handleDelete = async (row: any) => {
showDeleteDialog.value = true
deleteMode.value = '1'
deleteMode.value = DeleteMode.SINGLE_DELETE
userId.value = row.id
console.log(userId.value);
}
const handleBatchDelete = async () => {
deleteMode.value = '2'
deleteMode.value = DeleteMode.BATCH_DELETE
showDeleteDialog.value = true
}
const handleSelectionChange = (data: any) => {
......@@ -100,7 +103,7 @@ const handleSelectionChange = (data: any) => {
}
const openAddUserDialog = () => {
mode.value = '1'
mode.value = AddMode.ADD_MODE
dialogVisible.value = true
}
const getUserListData = async () => {
......
......@@ -126,12 +126,11 @@ const goToStatus = () => {
}
// 获取任务执行记录列表
const getData = async () => {
console.log('getData');
const res = await getSpiderTaskRecord({ page: pageObj.value.pageNo, size: pageObj.value.pageSize, status: 'total' })
pageObj.value.total = res.data.total
tableData.value = res.data.list
console.log(res);
}
const searchData = async () => {
......
......@@ -17,7 +17,7 @@
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"erasableSyntaxOnly": true,
"erasableSyntaxOnly": false,
"noFallthroughCasesInSwitch": true,
"noUncheckedSideEffectImports": true
},
......
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