init
This commit is contained in:
199
src/flow/index.ts
Normal file
199
src/flow/index.ts
Normal 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)
|
||||
}
|
||||
Reference in New Issue
Block a user