135 lines
4.0 KiB
TypeScript
135 lines
4.0 KiB
TypeScript
/**
|
|
* 用于获取表单组件路径
|
|
* @author luolin
|
|
*/
|
|
import { validateNull } from '/@/utils/validate';
|
|
import { DIC_PROP } from '/@/flow/support/dict-prop';
|
|
import { PROP_CONST } from '/@/flow/support/prop-const';
|
|
import { deepClone } from '/@/utils/other';
|
|
|
|
// 定制化工单Key
|
|
export const orderKeyMap = {
|
|
HandoverFlow: 'HandoverFlow',
|
|
AskLeave: 'AskLeave',
|
|
};
|
|
|
|
// 跳转页面路径
|
|
export const locationHash = {
|
|
TodoJobHash: '#/jsonflow/run-job/do-job',
|
|
RunApplicationHash: '#/order/run-application/index',
|
|
SignJobHash: '#/jsonflow/run-job/sign-job',
|
|
HiJobHash: '#/jsonflow/run-job/hi-job',
|
|
};
|
|
|
|
// Vue页面路径
|
|
export const vueKey = {
|
|
HandoverNodeRecordFlow: '/order/handover-node-record/flow',
|
|
RunApplicationForm: '/order/run-application/flow',
|
|
CommentFlow: '/jsonflow/comment/flow',
|
|
CommentFlowId: '1',
|
|
FlowDesignView: '/jsonflow/flow-design/view',
|
|
FlowDesignViewId: '2',
|
|
CommentTimeline: '/jsonflow/comment/timeline',
|
|
};
|
|
|
|
export const vueKeySys = {
|
|
sysPaths: [vueKey.CommentFlow, vueKey.CommentTimeline, vueKey.FlowDesignView],
|
|
sysPathIds: [vueKey.CommentFlowId, vueKey.FlowDesignViewId],
|
|
};
|
|
|
|
export function handleCustomForm(data, row) {
|
|
// TODO form为默认发起页面
|
|
let rowClone = deepClone(row);
|
|
rowClone.path = rowClone.path.replace('flow', 'form');
|
|
data.currFlowForm.currElTab = deepClone(rowClone);
|
|
}
|
|
|
|
/**
|
|
* 用于控制页面的显隐
|
|
* 显隐条件->工单path
|
|
*/
|
|
export function handleElTab(currJob) {
|
|
let order = currJob.order,
|
|
conditions: any = [];
|
|
// 业务任务页面无order信息
|
|
if (validateNull(order)) return conditions;
|
|
// 判断工作交接切换不同页面
|
|
if (currJob.flowKey === orderKeyMap.HandoverFlow) {
|
|
let handoverNode = order.type === '-1';
|
|
conditions.push({ isShow: handoverNode ? '1' : '0', path: vueKey.HandoverNodeRecordFlow });
|
|
}
|
|
return conditions;
|
|
}
|
|
|
|
export function compatibleAppHeight(isApp) {
|
|
if (!isApp) return;
|
|
// 兼容移动端 自适应页面高度
|
|
let app = document.getElementById('app');
|
|
if (app) app.style.overflow = 'auto';
|
|
}
|
|
|
|
export function validateFormTypeSave(form) {
|
|
// 设计表单默认表
|
|
let isDesign = form.type !== DIC_PROP.FORM_TYPE[1].value;
|
|
if (isDesign && !form.tableName) form.tableName = PROP_CONST.COMMON.tableName;
|
|
|
|
// 设计表单path
|
|
if (isDesign) {
|
|
form.path = vueKey.RunApplicationForm;
|
|
} else {
|
|
form.formInfo = null;
|
|
}
|
|
}
|
|
|
|
export function currElTabIsExist(currJob, elTabId) {
|
|
// 兼容移动端
|
|
let currElTab = currJob.elTabs.find((f) => f.id === elTabId);
|
|
// 查看则只读
|
|
if (currJob.hiJob) {
|
|
currElTab.isAutoAudit = '0';
|
|
currElTab.isFormEdit = '0';
|
|
}
|
|
return currElTab;
|
|
}
|
|
|
|
// 发起时只读或可编辑
|
|
export async function currFormIsView(_this, find, existRoleId, callback?, widgetList?) {
|
|
if (find.isFormEdit === '0' || !existRoleId) {
|
|
if (callback) await callback(_this);
|
|
if (_this && _this.disableForm) _this.disableForm(true);
|
|
if (_this && _this.disableSubmit) _this.disableSubmit();
|
|
return;
|
|
}
|
|
// 全部只读部分可编辑
|
|
if (find.defFormEdit === '0') {
|
|
if (_this && _this.disableForm) _this.disableForm(null, widgetList);
|
|
if (_this && _this.enableSubmit) _this.enableSubmit();
|
|
if (callback) await callback(_this);
|
|
} else {
|
|
if (callback) await callback(_this);
|
|
}
|
|
}
|
|
|
|
// 审批时只读或可编辑
|
|
export async function currElTabIsView(_this, currJob, elTabId, submitForm?, callback?, widgetList?) {
|
|
// 从elTabs中获取
|
|
let find = currElTabIsExist(currJob, elTabId);
|
|
if (find.isFormEdit !== '0' || find.isAutoAudit === '1') {
|
|
if (submitForm) currJob.resolveSaves?.push(submitForm);
|
|
}
|
|
await currFormIsView(_this, find, currJob.roleId, callback, widgetList);
|
|
// 重置保存按钮状态
|
|
currElTabIsSave(currJob, elTabId, false);
|
|
}
|
|
|
|
// 处理修改时保存状态
|
|
export function currElTabIsSave(currJob, elTabId, bool, emits?) {
|
|
// 从elTabs中获取
|
|
let find = currElTabIsExist(currJob, elTabId);
|
|
if (find.isFormEdit !== '0') find.isSave = bool;
|
|
// 提交时自动审批
|
|
if (emits && find.isAutoAudit === '1') {
|
|
emits('handleJob', DIC_PROP.JOB_BTNS[0].value);
|
|
}
|
|
}
|