|
|
|
|
@ -108,25 +108,101 @@ export default { |
|
|
|
|
defaults: {}, |
|
|
|
|
form: {}, |
|
|
|
|
option: { |
|
|
|
|
column: [{ |
|
|
|
|
label: '请假时间', |
|
|
|
|
prop: 'datetime', |
|
|
|
|
column: [ |
|
|
|
|
{ |
|
|
|
|
type: 'input', |
|
|
|
|
label: '创建人', |
|
|
|
|
span: 12, |
|
|
|
|
display: true, |
|
|
|
|
prop: 'creator', |
|
|
|
|
value: '${this.$store.getters.userInfo.nick_name}', |
|
|
|
|
readonly: true |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
type: 'input', |
|
|
|
|
label: '创建部门', |
|
|
|
|
span: 12, |
|
|
|
|
display: true, |
|
|
|
|
prop: 'createDept', |
|
|
|
|
value: '${this.$store.getters.userInfo.dept_name}', |
|
|
|
|
readonly: true |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
type: 'datetimerange', |
|
|
|
|
label: '请假时间', |
|
|
|
|
span: 12, |
|
|
|
|
display: true, |
|
|
|
|
format: 'yyyy-MM-dd HH:mm:ss', |
|
|
|
|
valueFormat: 'yyyy-MM-dd HH:mm:ss', |
|
|
|
|
rules: [{ required: true, message: '请选择请假时间' }] |
|
|
|
|
}, { |
|
|
|
|
prop: 'datetime', |
|
|
|
|
required: true, |
|
|
|
|
rules: [ |
|
|
|
|
{ |
|
|
|
|
required: true, |
|
|
|
|
message: '开始时间必须填写' |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
change: ({ value }) => { |
|
|
|
|
if (!value || value.length == 0) { |
|
|
|
|
this.$set(this.form, 'days', undefined) |
|
|
|
|
} else { |
|
|
|
|
const d1 = Date.parse(value[0]) |
|
|
|
|
const d2 = Date.parse(value[1]) |
|
|
|
|
const day = (d2 - d1) / (1 * 24 * 60 * 60 * 1000) |
|
|
|
|
this.$set(this.form, 'days', Number(day.toFixed(2))) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
type: 'number', |
|
|
|
|
label: '请假天数', |
|
|
|
|
span: 12, |
|
|
|
|
display: true, |
|
|
|
|
prop: 'days', |
|
|
|
|
type: 'number', |
|
|
|
|
rules: [{ required: true, message: '请输入请假天数' }] |
|
|
|
|
}, { |
|
|
|
|
required: true, |
|
|
|
|
rules: [ |
|
|
|
|
{ |
|
|
|
|
required: true, |
|
|
|
|
message: '请假天数必须填写' |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
controls: true, |
|
|
|
|
controlsPosition: 'right', |
|
|
|
|
change: ({ value }) => { |
|
|
|
|
this.$set(this.form, 'reason', '请假' + value + '天') |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
type: 'textarea', |
|
|
|
|
label: '请假理由', |
|
|
|
|
span: 24, |
|
|
|
|
display: true, |
|
|
|
|
prop: 'reason', |
|
|
|
|
type: 'textarea', |
|
|
|
|
required: true, |
|
|
|
|
rules: [ |
|
|
|
|
{ |
|
|
|
|
required: true, |
|
|
|
|
message: '请假理由必须填写' |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
label: '附件', |
|
|
|
|
type: 'upload', |
|
|
|
|
propsHttp: { |
|
|
|
|
res: 'data', |
|
|
|
|
url: 'link', |
|
|
|
|
name: 'originalName' |
|
|
|
|
}, |
|
|
|
|
action: '/api/blade-resource/oss/endpoint/put-file', |
|
|
|
|
display: true, |
|
|
|
|
span: 24, |
|
|
|
|
rules: [{ required: true, message: '请输入请假理由' }] |
|
|
|
|
}] |
|
|
|
|
showFileList: true, |
|
|
|
|
multiple: true, |
|
|
|
|
limit: 10, |
|
|
|
|
prop: 'attachment' |
|
|
|
|
}, |
|
|
|
|
] |
|
|
|
|
}, |
|
|
|
|
vars: [], // 需要提交的字段 |
|
|
|
|
submitLoading: false, // 提交时按钮loading |
|
|
|
|
@ -144,20 +220,13 @@ export default { |
|
|
|
|
option.menuBtn = false |
|
|
|
|
const { column, group } = option |
|
|
|
|
if (status != 'todo') { // 已办,删除字段默认值 |
|
|
|
|
let event = ['change', 'blur', 'click', 'focus'] |
|
|
|
|
option.detail = true |
|
|
|
|
if (column && column.length > 0) { // 处理column |
|
|
|
|
column.forEach(col => { |
|
|
|
|
if (col.type == 'dynamic') col.children.column.forEach(cc => { |
|
|
|
|
delete cc.value |
|
|
|
|
delete cc.event |
|
|
|
|
event.forEach(e => delete cc[e]) |
|
|
|
|
}) |
|
|
|
|
else { |
|
|
|
|
delete col.value |
|
|
|
|
delete col.event |
|
|
|
|
event.forEach(e => delete col[e]) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -167,41 +236,26 @@ export default { |
|
|
|
|
gro.column.forEach(col => { |
|
|
|
|
if (col.type == 'dynamic') col.children.column.forEach(cc => { |
|
|
|
|
delete cc.value |
|
|
|
|
delete cc.event |
|
|
|
|
event.forEach(e => delete cc[e]) |
|
|
|
|
}) |
|
|
|
|
else { |
|
|
|
|
delete col.value |
|
|
|
|
delete col.event |
|
|
|
|
event.forEach(e => delete col[e]) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
const columnFilter = this.filterAvueColumn(column, taskForm) |
|
|
|
|
const columnFilter = this.filterAvueColumn(column, taskForm, true) |
|
|
|
|
const columnArr = columnFilter.column |
|
|
|
|
let vars = columnFilter.vars || [] |
|
|
|
|
|
|
|
|
|
const groupArr = [] |
|
|
|
|
if (group && group.length > 0) { // 处理group |
|
|
|
|
group.forEach(gro => { |
|
|
|
|
const groupFilter = this.filterAvueColumn(gro.column, taskForm) |
|
|
|
|
const groupFilter = this.filterAvueColumn(gro.column, taskForm, true) |
|
|
|
|
gro.column = groupFilter.column |
|
|
|
|
vars = vars.concat(groupFilter.vars) |
|
|
|
|
if (gro.column.length > 0) groupArr.push(gro) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (process.variables && process.variables.serialNumber) { |
|
|
|
|
columnArr.unshift({ |
|
|
|
|
label: '流水号', |
|
|
|
|
prop: 'serialNumber', |
|
|
|
|
span: 24, |
|
|
|
|
detail: true, |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
option.column = columnArr |
|
|
|
|
option.group = groupArr |
|
|
|
|
this.vars = vars |
|
|
|
|
@ -210,6 +264,15 @@ export default { |
|
|
|
|
if (!variables[key]) delete variables[key] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (option.column && process.variables && process.variables.serialNumber) { |
|
|
|
|
option.column.unshift({ |
|
|
|
|
label: '流水号', |
|
|
|
|
prop: 'serialNumber', |
|
|
|
|
span: 24, |
|
|
|
|
detail: true, |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.option = option |
|
|
|
|
this.form = variables |
|
|
|
|
this.waiting = false |
|
|
|
|
|