feat: 完善手动派单后台操作
This commit is contained in:
@@ -355,7 +355,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, h, onMounted, onUpdated, reactive, ref } from 'vue';
|
||||
import { NButton, NSpace, useDialog, useMessage } from 'naive-ui';
|
||||
import { NButton, NSpace, NSwitch, useDialog, useMessage } from 'naive-ui';
|
||||
import { DeleteOutlined, EditOutlined } from '@vicons/antd';
|
||||
import { BasicTable, TableAction } from '@/components/Table';
|
||||
import { BasicForm, useForm } from '@/components/Form';
|
||||
@@ -384,12 +384,33 @@
|
||||
NoticeEdit,
|
||||
} from '@/api/appMember';
|
||||
import { List as MemberLevelList } from '@/api/memberLevel';
|
||||
import { columns, schemas, loadOptions, MemberRecord } from './model';
|
||||
import { columns as baseColumns, schemas, loadOptions, MemberRecord } from './model';
|
||||
|
||||
const message = useMessage(),
|
||||
dialog = useDialog(),
|
||||
dict = useDictStore();
|
||||
const { hasPermission } = usePermission();
|
||||
const dispatchUpdatingIds = ref(new Set<number>());
|
||||
const columns = baseColumns.map((column) =>
|
||||
column.key === 'autoDispatch'
|
||||
? {
|
||||
...column,
|
||||
render: (row: MemberRecord) =>
|
||||
h(
|
||||
NSwitch,
|
||||
{
|
||||
value: row.autoDispatch,
|
||||
checkedValue: 1,
|
||||
uncheckedValue: 2,
|
||||
loading: dispatchUpdatingIds.value.has(row.id),
|
||||
disabled: !hasPermission(['/appMember/autoDispatch']),
|
||||
'onUpdate:value': (value: number) => toggleDispatch(row, value),
|
||||
},
|
||||
{ checked: () => '自动', unchecked: () => '手动' }
|
||||
),
|
||||
}
|
||||
: column
|
||||
);
|
||||
const actionRef = ref(),
|
||||
searchFormRef = ref<any>({}),
|
||||
editFormRef = ref<any>(),
|
||||
@@ -642,10 +663,17 @@
|
||||
detailLoading.value = false;
|
||||
}
|
||||
}
|
||||
async function toggleDispatch(row) {
|
||||
await AutoDispatch({ id: row.id, autoDispatch: row.autoDispatch === 1 ? 2 : 1 });
|
||||
message.success('更新成功');
|
||||
reloadTable();
|
||||
async function toggleDispatch(row: MemberRecord, nextValue?: number) {
|
||||
if (dispatchUpdatingIds.value.has(row.id)) return;
|
||||
const autoDispatch = nextValue ?? (row.autoDispatch === 1 ? 2 : 1);
|
||||
dispatchUpdatingIds.value.add(row.id);
|
||||
try {
|
||||
await AutoDispatch({ id: row.id, autoDispatch });
|
||||
row.autoDispatch = autoDispatch;
|
||||
message.success(`已切换为${autoDispatch === 1 ? '自动' : '手动'}派单`);
|
||||
} finally {
|
||||
dispatchUpdatingIds.value.delete(row.id);
|
||||
}
|
||||
}
|
||||
function openStatus(row) {
|
||||
const action = row.memberStatus === 1 ? '禁用' : '启用';
|
||||
|
||||
Reference in New Issue
Block a user