import { reactive, onMounted, ref, ElMessage, ElMessageBox, http, getGroupUrl, RegularVerification, verification, PaginationProps } from "@/utils/importUsed"; import { useRoute } from "vue-router"; import router from "@/router"; // 表单实例 const ruleFormRef = ref() export function usePriRecord() { // 接口列表实例 let UrlList = reactive(null) // 获取当前板块接口列表 onMounted(async () => { const route = useRoute(); form.listId = Number(route.query.listId); UrlList = await getGroupUrl(["prizeSet"]); onSearch(ruleFormRef.value); listIdQuery(); }); let form = reactive({ listId: null, //配置ID batchNo: "", //批次号 }); const dataList = ref([]); const loading = ref(false); const dialogAddVisible = ref(false); const pagination = reactive({ total: 0, pageSize: 10, currentPage: 1, background: true }); const columns: TableColumnList = [ { type: "selection", width: 55, align: "left", hide: ({ checkList }) => !checkList.includes("勾选列") }, { label: "序号", type: "index", width: 70, hide: ({ checkList }) => !checkList.includes("序号列") }, { label: "ID", prop: "id", minWidth: 200 }, { label: "配置ID", prop: "listId", minWidth: 200, formatter: ({ listId }) => { return listIdOptionList.value.find(item => item.id == listId).label }, }, { label: "发放金额", prop: "prizeAmount", minWidth: 200 }, { label: "发放对象", prop: "prizeObjId", minWidth: 200 }, { label: "批次号", prop: "batchNo", minWidth: 200 }, { label: "入参字段", prop: "requestParamField", minWidth: 200 }, { label: "操作", fixed: "right", width: 200, slot: "operation" } ]; // 当前页数量切换 function handleSizeChange(val: number) { if (typeof val === "number") { pagination.pageSize = val; onSearch(ruleFormRef.value); } } // 当前页码切换 function handleCurrentChange(val: number) { console.log(`current page: ${val}`); if (typeof val === "number") { pagination.currentPage = val; onSearch(ruleFormRef.value); } } // 选择表格项 function handleSelectionChange(val) { console.log(`SelectionChange: ${val}`); onSearch(ruleFormRef.value); } // 搜索列表 async function onSearch(formEl) { // 表单校验拦截 if (!formEl) return await formEl.validate(async (valid, fields) => { if (valid) { //表单校验成功回调 console.log('submit!') // 状态调整为加载中 loading.value = true; // 调用接口(需动态生成接口) const { status, msg, data }: any = await http.Request({ method: UrlList.prizeSet.prigetPriRecordList.method, url: UrlList.prizeSet.prigetPriRecordList.url, params: { ...form, pageSize: pagination.pageSize, pageNum: pagination.currentPage } }); dataList.value = data.records; pagination.total = data.total; setTimeout(() => { loading.value = false; }, 500); } else { //表单校验失败回调 ElMessage({ message: "请输入完整信息", type: "error" }); } }) } // 配置ID选项数据 const listIdOptionList = ref([]); //获取配置ID数据 async function listIdQuery() { const { status, data }: any = await http.Request({ method: UrlList.prizeSet.prigetPriListDic.method, url: UrlList.prizeSet.prigetPriListDic.url, params: {} }); if (status === 1) { listIdOptionList.value = data.records; } } // 删除 function handleDelete(row) { ElMessageBox.confirm( `是否删除该奖励记录? `, "提示", { confirmButtonText: "删除", cancelButtonText: "取消", type: "warning" } ).then(async () => { const { status, msg }: any = await http.Request({ method: UrlList.prizeSet.prideletePriRecord.method, url: UrlList.prizeSet.prideletePriRecord.url, params: String(row.id) }); if (status === 1) { ElMessage({ message: "删除成功", type: "success" }); onSearch(ruleFormRef.value); } else { ElMessageBox.alert(msg, "提示", { confirmButtonText: "关闭", type: "warning" }); }; }) } // 新增 const addVisible = ref(false); function handleAdd() { addVisible.value = true; }; // 修改 const editUpdatePriRecordVisible = ref(false); const editUpdatePriRecordFormData = ref({}); function handleUpdatePriRecord(row) { editUpdatePriRecordVisible.value = true; // 表格数据赋值 editUpdatePriRecordFormData.value = row; }; return { form, loading, columns, dataList, pagination, onSearch, handleSizeChange, handleCurrentChange, handleSelectionChange, ruleFormRef, listIdQuery, listIdOptionList, handleAdd, addVisible, handleUpdatePriRecord, editUpdatePriRecordVisible, editUpdatePriRecordFormData, handleDelete, }; }