|
@@ -21,6 +21,7 @@
|
|
|
v-model:radio="tableRadio"
|
|
|
@current-change="handleSelectionChange"
|
|
|
row-key="userId"
|
|
|
+ max-height="500px"
|
|
|
>
|
|
|
</ProTable>
|
|
|
<template #footer>
|
|
@@ -36,7 +37,7 @@
|
|
|
import { reactive, ref } from 'vue';
|
|
|
import { ElMessage, FormInstance } from 'element-plus';
|
|
|
import { throttle } from '@/utils/tools';
|
|
|
-import { migrationOrder, migrationOrderChange } from '@/api/todo/center';
|
|
|
+import { migrationOrder, migrationOrderChange, migrationOrderList, migrationOrderPublish, migrationOrderVisit } from '@/api/todo/center';
|
|
|
|
|
|
// 定义子组件向父组件传值/事件
|
|
|
const emit = defineEmits(['updateList']);
|
|
@@ -56,7 +57,7 @@ const state = reactive<any>({
|
|
|
const proTableRef = ref<RefType>(); // 表格ref
|
|
|
// 表格配置项
|
|
|
const columns = ref<any[]>([
|
|
|
- { type: 'radio', fixed: 'left', width: 80, label: '请选择' },
|
|
|
+ { type: 'radio', fixed: 'left', width: 80, label: '请选择', align: 'center' },
|
|
|
{ prop: 'username', label: '用户名称' },
|
|
|
{ prop: 'orgName', label: '任职部门' },
|
|
|
{ prop: 'roleNames', label: '用户职位' },
|
|
@@ -67,7 +68,7 @@ const queryList = async () => {
|
|
|
state.dialogVisible = true;
|
|
|
loading.value = true;
|
|
|
switch (migrationType.value) {
|
|
|
- case '中心待办':
|
|
|
+ case 'centerTodo':
|
|
|
const { result } = await migrationOrder(dataRow.value.id);
|
|
|
stepId.value = result.stepId;
|
|
|
state.tableData = result.handlers;
|
|
@@ -78,7 +79,16 @@ const queryList = async () => {
|
|
|
}
|
|
|
loading.value = false;
|
|
|
break;
|
|
|
- case '发布待办':
|
|
|
+ case 'publishTodo':
|
|
|
+ case 'visitTodo':
|
|
|
+ const response = await migrationOrderList();
|
|
|
+ state.tableData = response.result;
|
|
|
+ if (state.queryParams.name) {
|
|
|
+ state.tableData = state.tableData.filter((data: any) => {
|
|
|
+ return String(data['username']).toLowerCase().indexOf(state.queryParams.name) > -1;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ loading.value = false;
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
@@ -108,9 +118,19 @@ const ruleFormRef = ref<RefType>();
|
|
|
const migrationType = ref<string>(''); // 移动类型
|
|
|
const stepId = ref<string>(''); // 平移ID
|
|
|
const dataRow = ref<EmptyObjectType>({}); // 当前数据
|
|
|
-const openDialog = async (type: string, row: any) => {
|
|
|
+const orderIds = ref<string[]>([]); // 工单ID
|
|
|
+const openDialog = async (type: string, formData: any) => {
|
|
|
migrationType.value = type;
|
|
|
- dataRow.value = row;
|
|
|
+ switch (type) {
|
|
|
+ case 'centerTodo':
|
|
|
+ dataRow.value = formData;
|
|
|
+ break;
|
|
|
+ case 'publishTodo' || 'visitTodo':
|
|
|
+ orderIds.value = formData;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
try {
|
|
|
await queryList();
|
|
|
} catch (error) {
|
|
@@ -124,9 +144,8 @@ const closeDialog = () => {
|
|
|
// 保存
|
|
|
const onSubmit = throttle(async () => {
|
|
|
loading.value = true;
|
|
|
-
|
|
|
switch (migrationType.value) {
|
|
|
- case '中心待办':
|
|
|
+ case 'centerTodo': // 中心待办
|
|
|
const request = {
|
|
|
stepId: stepId.value,
|
|
|
handler: selectRow.value,
|
|
@@ -146,7 +165,45 @@ const onSubmit = throttle(async () => {
|
|
|
loading.value = false;
|
|
|
});
|
|
|
break;
|
|
|
- case '发布待办':
|
|
|
+ case 'publishTodo': // 发布待办
|
|
|
+ const publishRequest = {
|
|
|
+ orderIds: orderIds.value,
|
|
|
+ userId: tableRadio.value,
|
|
|
+ };
|
|
|
+ migrationOrderPublish(publishRequest)
|
|
|
+ .then(() => {
|
|
|
+ ElMessage({
|
|
|
+ message: '平移成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ closeDialog();
|
|
|
+ emit('updateList');
|
|
|
+ loading.value = false;
|
|
|
+ })
|
|
|
+ .catch((err: any) => {
|
|
|
+ console.log(err);
|
|
|
+ loading.value = false;
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case 'visitTodo': // 回访待办
|
|
|
+ const visitRequest = {
|
|
|
+ orderIds: orderIds.value,
|
|
|
+ userId: tableRadio.value,
|
|
|
+ };
|
|
|
+ migrationOrderVisit(visitRequest)
|
|
|
+ .then(() => {
|
|
|
+ ElMessage({
|
|
|
+ message: '平移成功',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ closeDialog();
|
|
|
+ emit('updateList');
|
|
|
+ loading.value = false;
|
|
|
+ })
|
|
|
+ .catch((err: any) => {
|
|
|
+ console.log(err);
|
|
|
+ loading.value = false;
|
|
|
+ });
|
|
|
break;
|
|
|
default:
|
|
|
break;
|