123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- import { Detail } from "./interface";
- import { reactive, computed, toRefs } from "vue";
- import { useUserStore } from "@/stores/modules/user";
- /**
- * @description base 基础信息页面操作方法封装
- * @param {Function} api 获取表格数据 api 方法 (必传)
- * @param {Object} initParam 获取数据初始化参数 (非必传,默认为{})
- * @param {Function} dataCallBack 对后台返回的数据进行处理的方法 (非必传)
- * @param {Function} requestError 错误处理
- * */
- export const useBaseMsg = (
- api?: (params: any) => Promise<any>,
- initParam: object = {},
- dataCallBack?: (data: any) => any,
- requestError?: (error: any) => void
- ) => {
- const state = reactive<Detail.DetailStateProps>({
- baseData: {},
- // 查询参数(只包括查询)
- searchParam: {},
- // 初始化默认的查询参数
- searchInitParam: {},
- // 总参数(包含分页和查询参数)
- totalParam: {}
- });
- /**
- * @description 获取详情页,基础信息模块
- * @return void
- * */
- const getBamseMsg = async () => {
- if (!api) {
- state.searchParam = initParam;
- return;
- }
- try {
- // 先把初始化参数和分页参数放到总参数里面
- console.log("state.totalParam :>> ", state.totalParam);
- console.log("state.initParam :>> ", initParam);
- console.log("state.searchParam :>> ", state.searchParam);
- Object.assign(state.totalParam, initParam);
- console.log("state.totalParam :>> ", state.totalParam);
- let data = await api({ ...state.searchInitParam, ...state.totalParam });
- dataCallBack && (data = dataCallBack(data));
- state.baseData = data;
- console.log("getTableList data :>> ", data);
- // state.tableData = data[reqProp];
- // 解构后台返回的分页数据 (如果有分页更新分页信息)
- // const { pageNum, pageSize, total } = data;
- // isPageable && updatePageable({ pageNum, pageSize, total });
- } catch (error) {
- requestError && requestError(error);
- }
- };
- // /**
- // * @description 获取表格数据
- // * @return void
- // * */
- // const getTableList = async () => {
- // if (!apiBase) return;
- // try {
- // // 先把初始化参数和分页参数放到总参数里面
- // console.log("state.totalParam :>> ", state.totalParam);
- // console.log("state.initParam :>> ", initParam);
- // console.log("state.searchParam :>> ", state.searchParam);
- // Object.assign(state.totalParam, isPageable ? pageParam.value : {});
- // console.log("state.totalParam :>> ", state.totalParam);
- // let data = await apiBase({ ...state.searchInitParam, ...state.totalParam });
- // dataCallBack && (data = dataCallBack(data));
- // state.tableData = isPageable ? data.list : data;
- // console.log("getTableList data :>> ", data);
- // // state.tableData = data[reqProp];
- // // 解构后台返回的分页数据 (如果有分页更新分页信息)
- // const { pageNum, pageSize, total } = data;
- // isPageable && updatePageable({ pageNum, pageSize, total });
- // } catch (error) {
- // requestError && requestError(error);
- // }
- // };
- /**
- * @description 更新查询参数
- * @return void
- * */
- const updatedTotalParam = () => {
- state.totalParam = {};
- // 处理查询参数,可以给查询参数加自定义前缀操作
- let nowSearchParam: { [key: string]: any } = {};
- // 防止手动清空输入框携带参数(这里可以自定义查询参数前缀)
- for (let key in state.searchParam) {
- // * 某些情况下参数为 false/0 也应该携带参数
- if (state.searchParam[key] || state.searchParam[key] === false || state.searchParam[key] === 0) {
- nowSearchParam[key] = state.searchParam[key];
- }
- }
- Object.assign(state.totalParam, nowSearchParam);
- console.log("updatedTotalParam state.searchParam :>> ", state.searchParam);
- console.log("updatedTotalParam state.totalParam :>> ", state.totalParam);
- // if (dwname) {
- // const userStore = useUserStore();
- // userStore.setSearchQueryHabit(dwname, state.totalParam);
- // }
- };
- // /**
- // * @description 更新分页信息
- // * @param {Object} resPageable 后台返回的分页数据
- // * @return void
- // * */
- // const updatePageable = (resPageable: Table.Pageable) => {
- // Object.assign(state.pageable, resPageable);
- // };
- // /**
- // * @description 表格数据查询
- // * @return void
- // * */
- // const search = () => {
- // state.pageable.pageNum = 1;
- // updatedTotalParam();
- // getTableList();
- // };
- // /**
- // * @description 表格数据重置
- // * @return void
- // * */
- // const reset = () => {
- // state.pageable.pageNum = 1;
- // state.searchParam = {};
- // // 重置搜索表单的时,如果有默认搜索参数,则重置默认的搜索参数
- // Object.keys(state.searchInitParam).forEach(key => {
- // state.searchParam[key] = state.searchInitParam[key];
- // });
- // updatedTotalParam();
- // getTableList();
- // };
- // /**
- // * @description 每页条数改变
- // * @param {Number} val 当前条数
- // * @return void
- // * */
- // const handleSizeChange = (val: number) => {
- // state.pageable.pageNum = 1;
- // state.pageable.pageSize = val;
- // getTableList();
- // };
- // /**
- // * @description 当前页改变
- // * @param {Number} val 当前页
- // * @return void
- // * */
- // const handleCurrentChange = (val: number) => {
- // state.pageable.pageNum = val;
- // getTableList();
- // };
- return {
- ...toRefs(state),
- getBamseMsg,
- // search,
- // reset,
- // handleSizeChange,
- // handleCurrentChange,
- updatedTotalParam
- };
- };
|