font-end/src/views/main/scrworktask/editForm.vue

150 lines
5.3 KiB
Vue
Raw Normal View History

2025-10-13 18:17:10 +08:00
<template>
<a-modal
2025-10-14 17:41:30 +08:00
title="编辑"
2025-10-13 18:17:10 +08:00
:width="900"
:visible="visible"
:confirmLoading="confirmLoading"
@ok="handleSubmit"
@cancel="handleCancel"
>
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
<a-form-item
2025-10-14 17:41:30 +08:00
label="作业票"
2025-10-13 18:17:10 +08:00
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
2025-10-14 17:41:30 +08:00
<a-select style="width: 100%" placeholder="请选择作业票" v-decorator="['name', {rules: [{ required: true, message: '请选择作业票!' }]}]">
2025-10-13 18:17:10 +08:00
<a-select-option v-for="(item,index) in nameData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label="月份"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
>
2025-10-14 17:41:30 +08:00
<a-month-picker show-time style="width: 100%" placeholder="请选择月份" v-decorator="['happenTime',{rules: [{ required: true, message: '请选择月份' }]}]" @change="happenTimeOnChange"/>
2025-10-13 18:17:10 +08:00
</a-form-item>
<a-form-item
label="数量"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
has-feedback
>
<a-input-number placeholder="请输入数量" style="width: 100%" v-decorator="['totalNum', {rules: [{required: true, message: '请输入数量'}]}]" />
</a-form-item>
2025-10-17 16:09:44 +08:00
<a-form-item
label="施工地点"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-select style="width: 100%" placeholder="请选择施工地点" v-decorator="['workPlace', {rules: [{ required: true, message: '请选择施工地点!' }]}]">
<a-select-option v-for="(item,index) in workPlaceData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item
label="级别"
:labelCol="labelCol"
:wrapperCol="wrapperCol"
>
<a-select style="width: 100%" placeholder="请选择级别" v-decorator="['level', {rules: [{ required: true, message: '请选择级别!' }]}]">
<a-select-option v-for="(item,index) in levelData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
2025-10-13 18:17:10 +08:00
</a-form>
</a-spin>
</a-modal>
</template>
<script>
import { scrWorkTaskEdit } from '@/api/modular/main/scrworktask/scrWorkTaskManage'
2025-10-14 17:41:30 +08:00
import moment from 'moment'
2025-10-13 18:17:10 +08:00
export default {
data () {
return {
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 15 }
},
nameData: [],
visible: false,
confirmLoading: false,
2025-10-17 16:09:44 +08:00
form: this.$form.createForm(this),
workPlaceData: [],
levelData: []
2025-10-13 18:17:10 +08:00
}
},
methods: {
2025-10-14 17:41:30 +08:00
moment,
2025-10-13 18:17:10 +08:00
// 初始化方法
edit (record) {
this.visible = true
const nameOption = this.$options
this.nameData = nameOption.filters['dictData']('work_task_type')
2025-10-17 16:09:44 +08:00
const workPlaceOption = this.$options
this.workPlaceData = workPlaceOption.filters['dictData']('work_place')
const levelOption = this.$options
this.levelData = levelOption.filters['dictData']('work_level')
2025-10-13 18:17:10 +08:00
setTimeout(() => {
this.form.setFieldsValue(
{
id: record.id,
name: record.name,
2025-10-17 16:09:44 +08:00
totalNum: record.totalNum,
workPlace: record.workPlace,
level: record.level
2025-10-13 18:17:10 +08:00
}
)
}, 100)
2025-10-14 17:41:30 +08:00
if (record.happenTime) {
this.form.getFieldDecorator('happenTime', { initialValue: moment(record.happenTime, 'YYYY-MM-DD') })
this.happenTimeDateString = moment(record.happenTime).format('YYYY-MM-DD')
}
2025-10-13 18:17:10 +08:00
},
handleSubmit () {
const { form: { validateFields } } = this
this.confirmLoading = true
validateFields((errors, values) => {
if (!errors) {
for (const key in values) {
if (typeof (values[key]) === 'object' && values[key] != null) {
values[key] = JSON.stringify(values[key])
}
}
2025-10-14 17:41:30 +08:00
values.happenTime = moment(this.happenTimeDateString).format('YYYY-MM-DD') || null
2025-10-13 18:17:10 +08:00
scrWorkTaskEdit(values).then((res) => {
if (res.success) {
this.$message.success('编辑成功')
this.confirmLoading = false
this.$emit('ok', values)
this.handleCancel()
} else {
2025-10-14 17:41:30 +08:00
this.$message.error('编辑失败:' + res.message)// + res.message
2025-10-13 18:17:10 +08:00
}
}).finally((res) => {
this.confirmLoading = false
})
} else {
this.confirmLoading = false
}
})
},
2025-10-14 17:41:30 +08:00
happenTimeOnChange(date, dateString) {
this.happenTimeDateString = dateString
},
2025-10-13 18:17:10 +08:00
handleCancel () {
2025-10-14 17:41:30 +08:00
this.happenTimeDateString = ''
this.form.getFieldDecorator('happenTime', { initialValue: null })
2025-10-13 18:17:10 +08:00
this.form.resetFields()
this.visible = false
}
}
}
</script>