diff --git a/src/enums/EsEnum.js b/src/enums/EsEnum.js new file mode 100644 index 0000000..90f7f54 --- /dev/null +++ b/src/enums/EsEnum.js @@ -0,0 +1,154 @@ +export default class EsEnum { + constructor (val) { + if (!val) { + return + } + Object.keys(val).forEach(key => { + const item = val[key] + this.addAll(key, item) + }) + return this + } + + /** + * 添加枚举 + * @param key + * @param item + */ + addAll (key, item) { + this[key] = item + } + + /** + * 获取所有枚举值列表 + * @params decend --是否是降序输出 + * @returns {Array} + */ + getItemList (decend) { + const optionList = [] + for (const i in this) { + const item = this[i] + const option = {} + Object.assign(option, item) + option.key = i + optionList.push(option) + } + optionList.sort((a, b) => { + const value1 = a['index'] + const value2 = b['index'] + return decend && (value2 - value1) || (value1 - value2) + }) + return optionList + } + + /** + * 获取需要排除的枚举值后的所有枚举值列表 + * @param val 需要排除的枚举值或枚举值数组 + */ + getItemListExcept (val) { + let valueArr = [] + if (val) { + if (Array.isArray(val)) { + valueArr = val + } else { + valueArr.push(val) + } + } + const optionList = [] + for (const i in this) { + const item = this[i] + if (!valueArr.includes(item.name)) { + const option = {} + Object.assign(option, item) + option.key = i + optionList.push(option) + } + } + return optionList + } + + /** + * 根据name获取index + * @param name + */ + indexOfName (name) { + if (name) { + for (const i in this) { + const e = this[i] + if (e.name.toString() === name.toString()) { + return (e.index) + } + } + } + return null + } + + /** + * 根据index获取name + * @param index + * @returns {*} + */ + nameOfIndex (index) { + if (index === null) { + return '--' + } + for (const i in this) { + const e = this[i] + if (e.value !== undefined && e.value !== null && e.value.toString() === index.toString()) { + return e.text + } + } + return '--' + } + + /** + * 通过value获取其他属性 + * @param key + * @param value + * @returns {*|null} + */ + propertyOfValue (key, value) { + if (!value && value !== 0) { + return null + } + for (const i in this) { + const e = this[i] + if (e[key] !== undefined && e[key] !== null && e.value.toString() === value.toString()) { + return e[key] + } + } + return null + } + + /** + * 根据value模糊获取key + */ + keyOfValueByLike (value) { + if (!value && value !== 0) { + return null + } + for (const i in this) { + const e = this[i] + if (e.value !== undefined && e.value !== null && value.toString().indexOf(e.value.toString()) !== -1) { + return i + } + } + return null + } + + /** + * 根据value获取key + */ + keyOfValue (value) { + if (!value && value !== 0) { + return null + } + for (const i in this) { + const e = this[i] + if (e.value !== undefined && e.value !== null && value.toString() === e.value.toString()) { + return i + } + } + return null + } +} diff --git a/src/enums/commonEnums.js b/src/enums/commonEnums.js new file mode 100644 index 0000000..dd59fc6 --- /dev/null +++ b/src/enums/commonEnums.js @@ -0,0 +1,87 @@ +import EsEnums from './EsEnum' + +export const YesOrNoEnum = new EsEnums({ + NO: { name: '否', value: '0' }, + YES: { name: '是', value: '1' } +}) + +// 既可以使用EsEnums 也可以单独写明 +export const FieldType = { + DATE_SINGLE: { text: '单日期选择', value: '1' }, + USER_SINGLE: { text: '单选用户弹框', value: '2' }, + ORGAN_SINGLE: { text: '单选组织机构弹框', value: '3' }, + DATE_MORE: { text: '多日期选择', value: '4' }, + TEXTAREA: { text: '多行文本', value: '5' }, + STANDARD_MORE: { text: '多选标准弹框', value: '6' }, + ORGAN_MORE: { text: '多选组织机构弹框', value: '7' }, + FILE_UP: { text: '上传文件', value: '8' }, + TEXT_BOX: { text: '文本框', value: '9' }, + OPTION_SINGLE: { text: '下拉单选', value: '10' }, + OPTION_MORE: { text: '下拉多选', value: '11' }, + TREE: { text: '树形结构(多选)', value: '12' }, + // TEXT_LINK: { text: '输入框(链接)', value: '13' }, + YEAR_PICKER: { text: '年份选择', value: '14' }, + TREE_SINGLE: { text: '树形结构(单选)', value: '15' }, + TREE_MODAL_SELECT: { text: '树形弹框', value: '16' } +} + + +// 标准来源 +export const StandardSource = { + DOMESTIC: { text: '国内', value: '1' }, + OVERSEAS: { text: '海外', value: '2' }, + ENTERPRISE: { text: '企标', value: '3' } +} + +// 流程key,获取人员信息前需要获取流程定义id,传这里的名字到WorkCenterMixin的getFlowDefinition方法中 +export const ProcessKey = { + // 企标立项/变更计划 + ES_INIT_CHANGE: { text: 'es-init-change', value: 'es-init-change' }, + // 年度制修订-各部门主动上报 + ES_ANNUAL_REPORT: { text: 'es-annual-report', value: 'es-annual-report' }, + // 年度制修订-标准化部门主动发起 + ES_ANNUAL_INIT: { text: 'es-annual-init', value: 'es-annual-init' }, + // 企标制修订流程 + ES_EDIT: { text: '', value: '' }, + // 企标更改流程 + ES_CHANGE: { text: 'es-change', value: 'es-change' }, + // 企标复审流程 + ES_RECHECK: { text: 'es-recheck', value: 'es-recheck' }, + // 企标废止流程 + ES_ABOLISH: { text: 'es-abolish', value: 'es-abolish' }, + // 企标封存流程 + ES_ARCHIVE: { text: 'es-archive', value: 'es-archive' }, + // 已封存企标启用流程 + ES_ENABLE: { text: 'es-enable', value: 'es-enable' }, + // 标准法规入库/变更流程 + FB_ENTRY_CHANGE: { text: 'fb-entry-change', value: 'fb-entry-change' }, + // 征求意见流程 + CONSULTATION: { text: 'fb-standard-consultation', value: 'fb-standard-consultation' }, + // 项目合规评估流程 + PROJECT_COMPLIANCE_EVALUATION: { text: '', value: '' }, + // 未符合项跟踪流程 + NO_MATCH_TRACKING: { text: '', value: '' }, + // 法规合规评估流程 + REGULATORY_COMPLIANCE_ASSESSMENT: { text: 'fb-standard-compliance-assessment', value: 'fb-standard-compliance-assessment' }, + // 法规采购流程 + LEGAL_PROCUREMENT: { text: 'fb-standard-purchase', value: 'fb-standard-purchase' }, + // 企标稽查计划 + ES_INSPECTION_PLAN: { text: 'inspect_plan', value: 'inspect_plan' }, + // 企标稽查流程 + ES_INSPECTION_PROCESS: { text: 'inspect_process', value: 'inspect_process' }, + // 稽查延期申请流程 + INSPECTION_EXTENSION_REQUEST_PROCESS: { text: 'inspect_delay_apply_process', value: 'inspect_delay_apply_process' }, + // 企标稽查整改 + ES_INSPECTION_RECTIFICATION: { text: 'inspect_plan', value: 'inspect_process' } +} + +// 标准法规入库/变更流程 +export const FGEntryChangeProcessNode = new EsEnums({ + initiate: { text: '法规工程师发起', value: 'Activity_16zkjpn', btn: ['save', 'submit'], disabled: false }, + approve: { + text: '法规工程师主管级领导审批', + value: 'Activity_084um6e', + btn: ['return', 'save', 'agree', 'reject'], + disabled: true + } +})