179 lines
4.9 KiB
JavaScript
179 lines
4.9 KiB
JavaScript
/* ******************* 丰田纺织流程代码块 可选择流程中的字段配置流程标题生成规则******************* */
|
|
|
|
class ConfigWorkflowTitle {
|
|
|
|
constructor(config) {
|
|
this.config = config
|
|
}
|
|
|
|
|
|
/**
|
|
* 初始化参数
|
|
*/
|
|
init = () => {
|
|
let baseInfo = WfForm.getBaseInfo();
|
|
if (baseInfo.workflowid != this.config.workflowId) {
|
|
return
|
|
}
|
|
let filedArr = []
|
|
this.config.rules.filter(item => item.type === RulesType.FIELD_VALUE
|
|
|| item.type === RulesType.SELECT_VALUE
|
|
|| item.type === RulesType.RADIO_VALUE).forEach(item => filedArr.push(item.fieldName))
|
|
this.addListenerEvent(filedArr)
|
|
this.addListenerSubmitEvent()
|
|
}
|
|
|
|
|
|
/**
|
|
* 监听提交流程动作
|
|
*/
|
|
addListenerSubmitEvent = () => {
|
|
Utils.registerAction(WfForm.OPER_SAVE + "," + WfForm.OPER_SUBMIT, callback => {
|
|
this.changeWorkflowTitle()
|
|
callback()
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 修改流程标题字段值
|
|
*/
|
|
changeWorkflowTitle = () => {
|
|
let workflowTitle = []
|
|
this.config.rules.forEach(item => {
|
|
workflowTitle.push(item.type.run(item))
|
|
})
|
|
WfForm.changeFieldValue(this.config.titleFieldName === 'field-1' ? 'field-1' :
|
|
Utils.convertNameToIdUtil(this.config.titleFieldName), {
|
|
value: workflowTitle.join("")
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 添加监听方法
|
|
* @param fileNameArr 需要监听的字段数组
|
|
*/
|
|
addListenerEvent = (fileNameArr) => {
|
|
console.log(Utils.convertNameToIdUtil(fileNameArr))
|
|
WfForm.bindFieldChangeEvent(Utils.convertNameToIdUtil(fileNameArr), (obj, id, value) => {
|
|
this.changeWorkflowTitle()
|
|
})
|
|
}
|
|
|
|
}
|
|
|
|
class RulesType {
|
|
// 固定值
|
|
static FIX_STRING = {
|
|
value: 0,
|
|
run: item => item.value
|
|
}
|
|
// 字段值
|
|
static FIELD_VALUE = {
|
|
value: 1,
|
|
run: item => Utils.getFiledValueByName(item.fieldName)
|
|
}
|
|
// 下拉框显示值
|
|
static SELECT_VALUE = {
|
|
value: 2,
|
|
run: item => $(`div[data-fieldname='${item.fieldName}'] .ant-select-selection-selected-value`).text()
|
|
}
|
|
// 单选按钮
|
|
static RADIO_VALUE = {
|
|
value: 3,
|
|
run: item => $(`div[data-fieldname='${item.fieldName}'] .ant-radio.ant-radio.ant-radio-checked.ant-radio-checked`).next().text()
|
|
}
|
|
// 当前日期 yyyy-mm-dd
|
|
static CURRENT_DATE = {
|
|
value: 4,
|
|
run: () => {
|
|
const date = new Date();
|
|
let year = date.getFullYear();
|
|
let month = date.getMonth() + 1;
|
|
let day = date.getDay();
|
|
if (month < 10) {
|
|
month = '0' + month
|
|
}
|
|
if (day < 10) {
|
|
day = '0' + day
|
|
}
|
|
return year + "-" + month + "-" + day
|
|
}
|
|
}
|
|
// 当前时间 HH:mm:ss
|
|
static CURRENT_TIME = {
|
|
value: 5,
|
|
run: () => {
|
|
const date = new Date();
|
|
let hours = date.getHours();
|
|
let minutes = date.getMinutes();
|
|
let seconds = date.getSeconds();
|
|
return hours + ":" + minutes + ":" + seconds
|
|
}
|
|
}
|
|
// 当前年份
|
|
static CURRENT_YEAR = {
|
|
value: 6,
|
|
run: () => new Date().getFullYear()
|
|
|
|
}
|
|
// 当前月份
|
|
static CURRENT_MONTH = {
|
|
value: 7,
|
|
run: () => new Date().getMonth() + 1 < 10 ? new Date().getMonth() + 1 : '0' + new Date().getMonth() + 1
|
|
|
|
}
|
|
// 当前天数
|
|
static CURRENT_DAY = {
|
|
value: 8,
|
|
run: () => new Date().getDay() < 10 ? new Date().getDay() : '0' + new Date().getDay()
|
|
|
|
}
|
|
// 当前小时
|
|
static CURRENT_HOUR = {
|
|
value: 9,
|
|
run: () => new Date().getHours()
|
|
|
|
}
|
|
// 当前分钟
|
|
static CURRENT_MINUTE = {
|
|
value: 10,
|
|
run: () => new Date().getMinutes()
|
|
|
|
}
|
|
// 当前秒数
|
|
static CURRENT_SECOND = {
|
|
value: 11,
|
|
run: () => new Date().getSeconds()
|
|
}
|
|
// 当前时间戳
|
|
static CURRENT_TIME_STAMP = {
|
|
value: 12,
|
|
run: () => new Date().getTime()
|
|
}
|
|
// 流水号
|
|
static RANDOM = {
|
|
value: 13,
|
|
run: item => {
|
|
let result = []
|
|
let range = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
|
|
for (let i = 0; i < item.length; i++) {
|
|
let index = parseInt(Math.random(0, 10) * 10)
|
|
result.push(range[index])
|
|
}
|
|
return result.join("")
|
|
}
|
|
}
|
|
static BROWSER_SHOW_NAME = {
|
|
value: 14,
|
|
run: item => {
|
|
let fieldId = Utils.convertNameObjToId(item.fieldName)
|
|
return WfForm.getBrowserShowName(fieldId)
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
window.RulesType = RulesType
|
|
window.ConfigWorkflowTitle = ConfigWorkflowTitle
|
|
|
|
/* ******************* 可选择流程中的字段配置流程标题生成规则 end ******************* */ |