Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
fk-spider-web
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周田
fk-spider-web
Commits
b36709fb
Commit
b36709fb
authored
Sep 18, 2025
by
yzh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:修改了枚举量
parent
e66e6c21
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
65 additions
and
63 deletions
+65
-63
enum.ts
src/components/Delete/enum.ts
+7
-0
index.vue
src/components/Delete/index.vue
+13
-24
addUserDialog.vue
src/views/os-system/components/addUserDialog.vue
+20
-21
enum.ts
src/views/os-system/components/enum.ts
+5
-0
index.vue
src/views/os-system/index.vue
+18
-15
index.vue
src/views/os-taskRecord/index.vue
+1
-2
tsconfig.node.json
tsconfig.node.json
+1
-1
No files found.
src/components/Delete/enum.ts
0 → 100644
View file @
b36709fb
/// @ts-ignore
export
enum
DeleteMode
{
BATCH_DELETE
=
0
,
SINGLE_DELETE
=
1
,
}
src/components/Delete/index.vue
View file @
b36709fb
...
@@ -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
}
}
}
}
// 关闭弹窗的方法
// 关闭弹窗的方法
...
...
src/views/os-system/components/addUserDialog.vue
View file @
b36709fb
<
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
;
...
...
src/views/os-system/components/enum.ts
0 → 100644
View file @
b36709fb
/// @ts-ignore
export
enum
AddMode
{
ADD_MODE
=
0
,
UPDATE_MODE
=
1
,
}
src/views/os-system/index.vue
View file @
b36709fb
...
@@ -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
()
=>
{
...
...
src/views/os-taskRecord/index.vue
View file @
b36709fb
...
@@ -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
()
=>
{
...
...
tsconfig.node.json
View file @
b36709fb
...
@@ -17,7 +17,7 @@
...
@@ -17,7 +17,7 @@
"strict"
:
true
,
"strict"
:
true
,
"noUnusedLocals"
:
true
,
"noUnusedLocals"
:
true
,
"noUnusedParameters"
:
true
,
"noUnusedParameters"
:
true
,
"erasableSyntaxOnly"
:
tru
e
,
"erasableSyntaxOnly"
:
fals
e
,
"noFallthroughCasesInSwitch"
:
true
,
"noFallthroughCasesInSwitch"
:
true
,
"noUncheckedSideEffectImports"
:
true
"noUncheckedSideEffectImports"
:
true
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment