Commit b36709fb by yzh

feat:修改了枚举量

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