<template>
|
<a-spin :spinning="confirmLoading">
|
<j-form-container :disabled="formDisabled">
|
<a-form-model
|
ref="form"
|
:model="model"
|
:rules="validatorRules"
|
slot="detail"
|
>
|
<a-row>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="周期编码"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="code"
|
>
|
<a-input
|
v-model="model.code"
|
placeholder="请输入周期编码"
|
></a-input>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="周期"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="cycle"
|
>
|
<a-input-number
|
v-model="model.cycle"
|
placeholder="请输入周期"
|
:min=0
|
style="width: 100%"
|
/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
<a-row>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="周期单位"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="cycleUnit"
|
>
|
<j-dict-select-tag
|
placeholder="请选择周期单位"
|
:triggerChange="true"
|
dictCode="maintenance_cycle_unit"
|
v-model="model.cycleUnit"
|
/>
|
</a-form-model-item>
|
</a-col>
|
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="首次保养时间"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="firstMaintenanceTime"
|
>
|
<j-date
|
placeholder="请选择首次保养时间"
|
v-model="model.firstMaintenanceTime"
|
style="width: 100%"
|
:showTime="true"
|
dateFormat="YYYY-MM-DD HH:mm:ss"
|
/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
<a-row>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="提前时间"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="leadTime"
|
>
|
<a-input-number
|
v-model="model.leadTime"
|
placeholder="请输入提前时间"
|
:min=0
|
style="width: 100%"
|
/>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="计划时间"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="effectiveTime"
|
>
|
<a-input-number
|
v-model="model.effectiveTime"
|
placeholder="请输入计划时间"
|
:min=0
|
style="width: 100%"
|
/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
<a-row>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="时间单位"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="unit"
|
>
|
<j-dict-select-tag
|
placeholder="请选择时间单位"
|
:triggerChange="true"
|
dictCode="cycle_time_unit"
|
v-model="model.unit"
|
/>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="调整方式"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="arrangeWay"
|
>
|
<j-dict-select-tag
|
placeholder="请选择调整方式"
|
:triggerChange="true"
|
dictCode="arrange_way"
|
v-model="model.arrangeWay"
|
/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
<a-row>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="逾期处理方式"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="overdueDisposeMode"
|
>
|
<j-dict-select-tag
|
placeholder="请选择逾期处理方式"
|
:triggerChange="true"
|
dictCode="overdue_dispose_mode"
|
v-model="model.overdueDisposeMode"
|
/>
|
</a-form-model-item>
|
</a-col>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="依据日历"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="accordingCalendar"
|
>
|
<j-dict-select-tag
|
placeholder="请选择依据日历"
|
:triggerChange="true"
|
dictCode="according_calendar"
|
v-model="model.accordingCalendar"
|
/>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
<a-row>
|
<a-col :span="24/2">
|
<a-form-model-item
|
label="版本"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="version"
|
>
|
<a-input
|
v-model="model.version"
|
placeholder="请输入版本号"
|
:disabled=true
|
></a-input>
|
</a-form-model-item>
|
</a-col>
|
<a-col
|
v-if=" model.isRevise == true"
|
:span="24/2"
|
>
|
<a-form-model-item
|
label="历史版本"
|
:labelCol="labelCol"
|
:wrapperCol="wrapperCol"
|
prop="version"
|
>
|
<a-input
|
v-model="model.historyVersion"
|
placeholder="请输入历史版本"
|
:disabled=true
|
></a-input>
|
</a-form-model-item>
|
</a-col>
|
</a-row>
|
</a-form-model>
|
</j-form-container>
|
</a-spin>
|
</template>
|
|
<script>
|
import { httpAction, getAction, requestPut } from '@/api/manage'
|
import { validateDuplicateValue } from '@/utils/util'
|
import pick from 'lodash.pick'
|
|
export default {
|
name: 'MaintenanceCycleForm',
|
components: {},
|
props: {
|
//表单禁用
|
disabled: {
|
type: Boolean,
|
default: false,
|
required: false,
|
},
|
// enterpriseId: {
|
// type: String,
|
// default: '',
|
// required: false,
|
// },
|
// version: {
|
// type: Number,
|
// required: false,
|
// },
|
},
|
data() {
|
return {
|
model: {},
|
labelCol: {
|
xs: { span: 24 },
|
sm: { span: 5 },
|
},
|
wrapperCol: {
|
xs: { span: 24 },
|
sm: { span: 16 },
|
},
|
confirmLoading: false,
|
validatorRules: {
|
code: [
|
{ required: true, message: '请输入周期编码!' },
|
],
|
cycle: [
|
{ required: true, message: '请输入周期!' },
|
],
|
cycleUnit: [
|
{ required: true, message: '请输入周期单位!' },
|
],
|
firstMaintenanceTime: [
|
{ required: true, message: '请选择首次保养时间!' },
|
],
|
leadTime: [
|
{ required: true, message: '请输入提前时间!' },
|
],
|
effectiveTime: [
|
{ required: true, message: '请输入有效时间!' },
|
],
|
unit: [
|
{ required: true, message: '请选择时间单位!' },
|
],
|
arrangeWay: [
|
{ required: true, message: '请选择调整方式!' },
|
],
|
version: [
|
{ required: true, message: '请输入版本号!' },
|
],
|
overdueDisposeMode: [
|
{ required: true, message: '请选择逾期处理方式!' },
|
],
|
accordingCalendar: [
|
{ required: true, message: '请选择依据日历!' },
|
],
|
},
|
url: {
|
add: '/eam/maintenanceCycle/addNew',
|
edit: '/eam/maintenanceCycle/edit',
|
revise: '/eam/maintenanceCycle/revise',
|
getReviseVersion: "/eam/maintenanceCycle/getReviseVersion",
|
},
|
}
|
},
|
computed: {
|
formDisabled() {
|
return this.disabled
|
},
|
},
|
created() {
|
//备份model原始值
|
this.modelDefault = JSON.parse(JSON.stringify(this.model))
|
},
|
methods: {
|
add() {
|
this.edit(this.modelDefault)
|
},
|
edit(record) {
|
this.model = Object.assign({}, record)
|
this.visible = true
|
this.model.isRevise = false;
|
//修改时
|
if (record.id) {
|
|
//新增时
|
} else {
|
this.model.version = '1.0'
|
this.model.versionStatus = '1'
|
}
|
},
|
|
//升版
|
revise(record) {
|
let that = this;
|
that.visible = true;
|
that.model = Object.assign({}, record)
|
that.model.isRevise = true;
|
that.model.historyVersion = record.version
|
that.model.versionStatus = '1'
|
requestPut(that.url.getReviseVersion, record).then((res) => {
|
if (res.success) {
|
that.model.version = res.result;
|
}
|
})
|
},
|
|
submitForm() {
|
const that = this
|
// 触发表单验证
|
this.$refs.form.validate((valid) => {
|
if (valid) {
|
that.confirmLoading = true
|
let httpurl = ''
|
let method = ''
|
if (!this.model.id) {
|
httpurl += this.url.add
|
method = 'post'
|
} else {
|
if (this.model.isRevise) {
|
httpurl += this.url.revise
|
method = 'post'
|
} else {
|
httpurl += this.url.edit
|
method = 'put'
|
}
|
}
|
httpAction(httpurl, this.model, method)
|
.then((res) => {
|
if (res.success) {
|
that.$message.success(res.message)
|
that.$emit('ok')
|
} else {
|
that.$message.warning(res.message)
|
}
|
})
|
.finally(() => {
|
that.confirmLoading = false
|
})
|
}
|
})
|
},
|
},
|
}
|
</script>
|