This commit is contained in:
吴红兵
2025-12-02 10:37:49 +08:00
commit 1f645dad3e
1183 changed files with 147673 additions and 0 deletions

199
src/flow/index.ts Normal file
View File

@@ -0,0 +1,199 @@
import {validateNull} from "/@/utils/validate";
import {ElNotification} from 'element-plus'
import printJS from 'print-js'
import {DIC_PROP} from "/@/flow/support/dict-prop";
import {Local} from "/@/utils/storage";
import FcDesigner from 'form-create-designer';
import {validateFormTypeSave} from "/@/api/order/order-key-vue";
// 判断是否为实例
export const validateRunFlow = (props) => {
if (props.currFlowForm) return props.currFlowForm.flowInstId
else {
if (props.flowData.attrs.orderId) return props.flowData.attrs.id
}
return null
}
// 判断是否为实例
export const validateRunFlowId = (props, form) => {
if (!props.currFlowForm) return form
let flowInstId = validateRunFlow(props);
let id = props.currFlowForm.id;
if (flowInstId) {
let tableName = props.currFlowForm.tableName;
// 判断是否为低代码
form.formId = tableName ? props.currFlowForm.formId: id
form.flowInstId = props.currFlowForm.flowInstId
} else {
form.formId = id
}
return form
}
// 初始化流程表单参数
export const initDefFlowFromAttrs = (props, form) => {
if (!props.currFlowForm) return
// 流程比表单先保存
validateFormTypeSave(props.currFlowForm)
validateRunFlowId(props, form)
// 表单权限主表单首次未入库
form.formName = props.currFlowForm.formName
form.formType = props.currFlowForm.type
form.formPath = props.currFlowForm.path
// 判断是否为低代码
let tableName = props.currFlowForm.tableName;
form.fromType = tableName ? '0' : '1'
}
// 初始化表单必要参数
export const initFromSomeAttrs = (props, form) => {
if (!props.currFlowForm) return
// 字段定义比表单先保存在initDefFlowFromAttrs之后
validateRunFlowId(props, form) // 可能会升版本
form.formName = props.currFlowForm.formName
form.formType = props.currFlowForm.type
form.path = props.currFlowForm.path
}
export function getLabelByLanguage(item) {
let language = Local.get('themeConfig').globalI18n;
return language === 'en' && item.labelEn ? item.labelEn : item.label
}
export function getJobBtnName(jobBtn) {
let item = DIC_PROP.JOB_BTNS.find((f) => f.value === jobBtn);
return getLabelByLanguage(item)
}
export function handleChangeJobType(dicData, item) {
let exist
if (item.jobType === DIC_PROP.JOB_USER_TYPE[0].value) {
exist = !dicData.users ? null : dicData.users.find(f => f.userId === item.roleId);
} else if (item.jobType === DIC_PROP.JOB_USER_TYPE[1].value) {
exist = !dicData.roles ? null : dicData.roles.find(f => f.roleId === item.roleId);
} else if (item.jobType === DIC_PROP.JOB_USER_TYPE[2].value) {
exist = !dicData.posts ? null : dicData.posts.find(f => f.postId === item.roleId);
} else if (item.jobType === DIC_PROP.JOB_USER_TYPE[3].value) {
exist = !dicData.depts ? null : dicData.depts.find(f => f.deptId === item.roleId);
}
// 当不存在情况已选值
if (!exist) item.roleId = null
}
export function handleShowRoleNameByJobType(role, isJobType){
let name = '';
if (isJobType === '0') {
name = role.roleName ? role.roleName.substring(0, role.roleName.indexOf('(')) : ''
} else {
name = role.roleName ? role.roleName + (isJobType ? '(' + getLabelByLanguage(DIC_PROP.JOB_USER_TYPE[1]) + ')' : '') : ''
}
return name
}
export function handleShowNameByJobType(role, isJobType){
let name = '';
if (role.jobType === DIC_PROP.JOB_USER_TYPE[0].value) {
if (isJobType === '0') {
name = role.name ? role.name.substring(0, role.name.indexOf('(')) : ''
} else {
name = role.name ? role.name + (isJobType ? '(' + getLabelByLanguage(DIC_PROP.JOB_USER_TYPE[0]) + ')' : '') : ''
}
} else if (role.jobType === DIC_PROP.JOB_USER_TYPE[1].value) {
name = handleShowRoleNameByJobType(role, isJobType)
} else if (role.jobType === DIC_PROP.JOB_USER_TYPE[2].value) {
if (isJobType === '0') {
name = role.postName ? role.postName.substring(0, role.postName.indexOf('(')) : ''
} else {
name = role.postName ? role.postName + (isJobType ? '(' + getLabelByLanguage(DIC_PROP.JOB_USER_TYPE[2]) + ')' : '') : ''
}
} else if (role.jobType === DIC_PROP.JOB_USER_TYPE[3].value) {
if (isJobType === '0') {
name = role.name ? role.name.substring(0, role.name.indexOf('(')) : ''
} else {
name = role.name ? role.name + (isJobType ? '(' + getLabelByLanguage(DIC_PROP.JOB_USER_TYPE[3]) + ')' : '') : ''
}
}
return name
}
/**
* 请求参数去重,并去掉$与空值
*/
export function paramsFilter(params) {
if (validateNull(params)) return null
let res = {}
let map = new Map(Object.entries(params))
map.forEach((value, key) => {
if (key.includes("$") || validateNull(value)) return
res[key] = value
})
return res
}
export function notifyLeft(msg, type = 'success', time = 2000) {
ElNotification({
title: '提示',
message: msg,
// @ts-ignore
type: type,
// @ts-ignore
position: 'top-left',
duration: time
})
}
export function parseRemoveNullKey(jsonStr) {
const obj = JSON.parse(jsonStr);
return JSON.stringify(obj, (key, value) => {
if (validateNull(value)) {
return undefined; // 返回undefined跳过属性
}
return value;
});
}
export function stringifyRemoveNullKey(object) {
return JSON.stringify(object, (key, value) => {
if (validateNull(value)) {
return undefined; // 返回undefined跳过属性
}
return value;
})
}
export function stringifyWithFunctions(object) {
return FcDesigner.formCreate.toJson(object)
}
export const parseWithFunctions = (obj, func?) => {
if (!func) {
return parseWithString(obj)
}
if (typeof obj === "string") {
return FcDesigner.formCreate.parseJson(obj)
}
return obj;
}
export const parseWithString = (obj) => {
if (typeof obj === "string") {
return JSON.parse(obj);
} else {
return obj;
}
}
export const printHtml = (id, header, data) => {
setTimeout(() => {
printJS({
type: 'html',
printable: id,
header: header,
targetStyles: ["*"],
scanStyles: true,
maxWidth: 1100,
})
if (data) data.width = "-"
}, 100)
}