diff --git a/src/views/hr/workload/index.vue b/src/views/hr/workload/index.vue
index 6da7a5d..ebe496d 100644
--- a/src/views/hr/workload/index.vue
+++ b/src/views/hr/workload/index.vue
@@ -1,9 +1,9 @@
+
- >说明:任务具体分配给某个人,至少简单的任务分配,并非项目中的任务列表,暂时调用项目中的任务列表,并不完全,
- 目前需要新建一个任务表,表中的内容。。。。
+ 发布任务
-
{{ getTaskStatusText(record.status) }}
-
- 编辑
- 删除
+ 详情
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 删除
+ 确定
+
+
+
@@ -43,13 +88,13 @@
import { ref, reactive, onMounted } from 'vue'
import { Message } from '@arco-design/web-vue'
import type { TableColumnData } from '@arco-design/web-vue'
-import { listTask } from '@/apis/project/task'
+// import { listTask } from '@/apis/project/task' // 接口调用处注释
// 任务状态映射
-// status:0未开始,1进行中,2已完成,3已取消
+// 0未分配,1已分配,2已完成,3已取消
const statusOptions = [
- { label: '未开始', value: 0 },
- { label: '进行中', value: 1 },
+ { label: '未分配', value: 0 },
+ { label: '已分配', value: 1 },
{ label: '已完成', value: 2 },
{ label: '已取消', value: 3 }
]
@@ -64,14 +109,26 @@ const getTaskStatusColor = (status: number) => {
}
const getTaskStatusText = (status: number) => {
const textMap: Record = {
- 0: '未开始',
- 1: '进行中',
+ 0: '未分配',
+ 1: '已分配',
2: '已完成',
3: '已取消'
}
return textMap[status] || status
}
+// 示例岗位和人员
+const deptOptions = [
+ { label: '开发', value: '开发' },
+ { label: '测试', value: '测试' },
+ { label: '运维', value: '运维' }
+]
+const userOptions = [
+ { label: '张三', value: '张三' },
+ { label: '李四', value: '李四' },
+ { label: '王五', value: '王五' }
+]
+
// 搜索表单
let searchForm = reactive({
taskName: '',
@@ -137,28 +194,117 @@ const pagination = reactive({
showPageSize: true
})
-// 获取任务数据
+// 发布任务弹窗
+const showAddModal = ref(false)
+const addForm = reactive({
+ taskId: '',
+ remark: '',
+ createTime: ''
+})
+const openAddModal = () => {
+ addForm.taskId = Date.now().toString()
+ addForm.remark = ''
+ addForm.createTime = new Date().toLocaleString()
+ showAddModal.value = true
+}
+const handleAddTask = () => {
+ if (!addForm.remark) {
+ Message.warning('请输入任务描述')
+ return
+ }
+ const newTask = {
+ taskId: addForm.taskId,
+ taskName: addForm.remark,
+ mainUserId: '',
+ deptName: '',
+ remark: addForm.remark,
+ status: 0, // 未分配
+ createTime: addForm.createTime,
+ finishTime: ''
+ }
+ allData.value.unshift(newTask)
+ filterAndPaginate()
+ showAddModal.value = false
+ Message.success('任务发布成功')
+}
+
+// 任务详情弹窗
+const showDetailModal = ref(false)
+const detailForm = reactive({
+ taskId: '',
+ taskName: '',
+ mainUserId: '',
+ deptName: '',
+ remark: '',
+ status: 0,
+ createTime: '',
+ finishTime: ''
+})
+let detailIndex = -1
+const onRowClick = (record: any) => {
+ Object.assign(detailForm, record)
+ detailIndex = allData.value.findIndex(item => item.taskId === record.taskId)
+ showDetailModal.value = true
+}
+const handleUpdateTask = () => {
+ if (detailIndex !== -1) {
+ allData.value[detailIndex] = { ...detailForm }
+ filterAndPaginate()
+ showDetailModal.value = false
+ Message.success('任务更新成功')
+ }
+}
+const handleDeleteTask = () => {
+ if (detailIndex !== -1) {
+ allData.value.splice(detailIndex, 1)
+ filterAndPaginate()
+ showDetailModal.value = false
+ Message.success('任务已删除')
+ }
+}
+
+// 获取任务数据(用示例数据,接口调用处注释)
const fetchTaskList = async () => {
loading.value = true
try {
- const params: any = {
- page: searchForm.page,
- pageSize: searchForm.size,
- taskName: searchForm.taskName,
- mainUserId: searchForm.responsiblePerson,
- status: searchForm.status
- }
- // 移除空参数
- Object.keys(params).forEach(key => {
- if (params[key] === '' || params[key] === undefined) delete params[key]
- })
- const res = await listTask(params)
- // 兼容后端返回格式,优先rows,其次data
- const rows = res?.rows || res?.data?.rows || []
- console.log('后端返回数据:', res) // 只打印一次原始数据
- allData.value = rows
+ // const res = await listTask(params)
+ // const rows = res?.rows || res?.data?.rows || []
+ // allData.value = rows
+ // 示例数据:
+ allData.value = [
+ {
+ taskId: '1710000000000',
+ taskName: '示例任务A',
+ mainUserId: '张三',
+ deptName: '开发',
+ remark: '开发新功能',
+ status: 1,
+ createTime: '2024-05-01 10:00:00',
+ finishTime: ''
+ },
+ {
+ taskId: '1710000000001',
+ taskName: '示例任务B',
+ mainUserId: '',
+ deptName: '',
+ remark: '待分配任务',
+ status: 0,
+ createTime: '2024-05-02 11:00:00',
+ finishTime: ''
+ },
+ {
+ taskId: '1710000000002',
+ taskName: '示例任务C',
+ mainUserId: '李四',
+ deptName: '测试',
+ remark: '测试任务',
+ status: 2,
+ createTime: '2024-05-03 09:00:00',
+ finishTime: '2024-05-05 18:00:00'
+ }
+ ]
filterAndPaginate()
- pagination.total = rows.length
+ pagination.total = allData.value.length
} catch (e) {
Message.error('获取任务数据失败')
} finally {
@@ -192,7 +338,7 @@ const filterAndPaginate = () => {
// 搜索和重置
const search = async () => {
pagination.current = 1
- await fetchTaskList()
+ filterAndPaginate()
}
const reset = async () => {
@@ -204,7 +350,7 @@ const reset = async () => {
size: 10
})
pagination.current = 1
- await fetchTaskList()
+ filterAndPaginate()
}
// 分页处理
@@ -219,13 +365,14 @@ const onPageSizeChange = (size: number) => {
filterAndPaginate()
}
-// 操作方法
-const editRecord = (record: any) => {
- Message.info(`编辑任务: ${record.taskName}`)
-}
-
+// 删除操作(表格操作列)
const deleteRecord = (record: any) => {
- Message.info(`删除任务: ${record.taskName}`)
+ const idx = allData.value.findIndex(item => item.taskId === record.taskId)
+ if (idx !== -1) {
+ allData.value.splice(idx, 1)
+ filterAndPaginate()
+ Message.success('任务已删除')
+ }
}
onMounted(() => {