CaiYuanYiTiHua/src/views/demo/onlineform/formCall/utils.ts

173 lines
4.6 KiB
TypeScript

import { useMessage } from '@/hooks/web/useMessage';
import { useUserStore } from '@/store/modules/user';
// utils.ts
let c_formModalVisible: Boolean = false;
let c_isUpdate = true;
let c_isDetail = true;
let c_getTitle = '';
let c_primaryQuery = '';
let c_addQuery: any = [];
let c_formColumns: any = [];
let c_tabsColumns: any = [];
let c_flowCode = '';
let c_formData = {};
let c_subTableId = null;
let c_subTableColumns: any = [];
let c_subTableData: any = [];
let c_subTableList: any = [];
let c_scrollValue = '';
let c_cardLayout: any = [];
let c_createOrModifyList: any = [];
let c_buttonLayout: any = [];
const { createMessage } = useMessage();
const userStore = useUserStore();
const userInfo: any = userStore.getUserInfo;
// 通过field获取组件
function getComponentByFiled(data: string): any {
return c_formColumns.find(item => item.field === data);
};
export const utils = {
setCallModalData: function setCallModalData(data: any) {
c_formModalVisible = data.formModalVisible.value;
c_isUpdate = data.isUpdate.value;
c_isDetail = data.isDetail.value;
c_getTitle = data.getTitle.value;
c_primaryQuery = data.primaryQuery.value;
c_addQuery = data.addQuery.value;
c_formColumns = data.formColumns.value;
c_tabsColumns = data.tabsColumns.value;
c_flowCode = data.flowCode.value;
c_formData = data.formData;
c_subTableId = data.subTableId.value;
c_subTableColumns = data.subTableColumns.value;
c_subTableData = data.subTableData.value;
c_subTableList = data.subTableList.value;
c_scrollValue = data.scrollValue.value;
c_cardLayout = data.cardLayout.value;
c_createOrModifyList = data.createOrModifyList.value;
c_buttonLayout = data.buttonLayout.value;
},
formModalVisible: (): Boolean => {
return c_formModalVisible;
},
isUpdate: (): Boolean => {
return c_isUpdate;
},
isDetail: (): Boolean => {
return c_isDetail;
},
getTitle: (): string => {
return c_getTitle;
},
primaryQuery: (): string => {
return c_primaryQuery;
},
addQuery: (): any => {
return c_addQuery;
},
formColumns: (): any => {
return c_formColumns;
},
tabsColumns: (): any => {
return c_tabsColumns;
},
flowCode: (): string => {
return c_flowCode;
},
formData: (): {} => {
return c_formData;
},
subTableId: (): any => {
return c_subTableId;
},
subTableColumns: (): any => {
return c_subTableColumns;
},
subTableData: (): any => {
return c_subTableData;
},
subTableList: (): any => {
return c_subTableList;
},
scrollValue: (): string => {
return c_scrollValue;
},
cardLayout: (): any => {
return c_cardLayout;
},
createOrModifyList: (): any => {
return c_createOrModifyList;
},
buttonLayout: (): any => {
return c_buttonLayout;
},
// 数据-----------------------------
// 获取数据
// 组件-----------------------------
// 获取组件
getComponent: (field: any): any => {
return getComponentByFiled(field);
},
// 隐藏与否
setHide: (field: any, hideStatus: Boolean): any => {
const componet: any = getComponentByFiled(field);
if (componet) {
componet.ifShow = hideStatus;
c_formColumns.forEach((item, index) => {
if (item.filed == field) {
c_formColumns[index] = componet;
}
});
}
return c_formColumns;
},
// 禁用与否
setDisabled: (field: any, disabledStatus: Boolean): any => {
const componet: any = getComponentByFiled(field);
if (componet) {
componet.dynamicDisabled = disabledStatus;
c_formColumns.forEach((item, index) => {
if (item.filed == field) {
c_formColumns[index] = componet;
}
});
}
return c_formColumns;
},
// 必填与否
setRequired: (field: any, requiredStatus: Boolean): any => {
const componet: any = getComponentByFiled(field);
if (componet) {
componet.required = requiredStatus;
c_formColumns.forEach((item, index) => {
if (item.filed == field) {
c_formColumns[index] = componet;
}
});
}
return c_formColumns;
},
// 功能-----------------------------
// 提示消息
message: (message: string, type: string = 'info') => {
if (type == 'success') {
createMessage.success(message);
} else if (type == 'error') {
createMessage.error(message);
} else if (type == 'warn') {
createMessage.warn(message);
} else {
createMessage.info(message);
}
},
// 获取登录者信息
loginUser: () => {
return { account: userInfo.account, name: userInfo.name };
},
};