add 车型项目库:增删改查

This commit is contained in:
赵霄
2023-09-11 17:34:05 +08:00
parent 9240f9fa55
commit 30f9260fff
11 changed files with 439 additions and 8 deletions
@@ -0,0 +1,175 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
:maskClosable="false"
:confirmLoading="confirmLoading"
:ok-text="$t('preservation')"
:cancel-text="$t('cancel')"
@ok="handleOk"
@cancel="handleCancel">
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-row :gutter="30">
<!--项目来源-->
<a-col :span="12">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('projectLibrary.vehicleItemLibrary.projectSource')">
<j-dict-select-tag v-decorator="['projectSource', validatorRules.projectSource]" dictCode="project_source" disabled
:placeholder="$t('pleaseSelect') + $t('projectLibrary.vehicleItemLibrary.projectSource')" />
</a-form-item>
</a-col>
<!--项目名称-->
<a-col :span="12">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('projectLibrary.projectName')">
<a-input :placeholder="$t('pleaseEnter') + $t('projectLibrary.projectName')"
@change="event => event.target.value = event.target.value.trim()"
:maxLength="50"
v-decorator="['projectName', validatorRules.projectName]" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="30">
<!--工作令编号-->
<a-col :span="12">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('projectLibrary.workOrderNumber')">
<a-input :placeholder="$t('pleaseEnter') + $t('projectLibrary.workOrderNumber')"
@change="event => event.target.value = event.target.value.trim()"
:maxLength="50"
v-decorator="['workNumber', validatorRules.workNumber]" />
</a-form-item>
</a-col>
<!--项目负责人-->
<a-col :span="12">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('projectLibrary.vehicleItemLibrary.projectLeader')">
<user-selection v-decorator="['projectLeader', validatorRules.projectLeader]"
:placeholder="$t('pleaseSelect') + $t('projectLibrary.vehicleItemLibrary.projectLeader')" />
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="30">
<!--项目健康度-->
<a-col :span="12">
<a-form-item :labelCol="labelCol" :wrapperCol="wrapperCol" :label="$t('projectLibrary.projectHealthStatus')">
<j-dict-select-tag v-decorator="['projectHealth', validatorRules.projectHealth]" dictCode="project_health"
:placeholder="$t('pleaseSelect') + $t('projectLibrary.projectHealthStatus')" />
</a-form-item>
</a-col>
</a-row>
</a-form>
</a-spin>
</j-modal>
</template>
<script>
import UserSelection from '../../../../components/selection/UserSelection.vue'
import { addVehicleItemLibrary, editVehicleItemLibrary } from '../../../../api/projectLibraryApi.js'
import { ProjectSource } from '../../../../enums/commonEnums.js'
export default {
name: 'VehicleItemLibraryModal',
components: { UserSelection },
data () {
return {
title: this.$t('newlyAdded'),
width: 800,
visible: false,
confirmLoading: false,
model: {},
form: this.$form.createForm(this),
labelCol: {
xs: { span: 24 },
sm: { span: 8 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
},
validatorRules: {
// 项目来源
projectSource: {
rules: [{ required: false, message: this.$t('pleaseSelect') + this.$t('standardRegulationLibrary.nodeName') }],
validateTrigger: 'change'
},
// 项目名称
projectName: {
rules: [{ required: true, message: this.$t('pleaseEnter') + this.$t('projectLibrary.projectName') }],
validateTrigger: 'blur'
},
// 工作令编号
workNumber: {
rules: [{ required: false, message: this.$t('pleaseEnter') + this.$t('projectLibrary.workOrderNumber') }],
validateTrigger: 'blur'
},
// 项目负责人
projectLeader: {
rules: [{ required: false, message: this.$t('pleaseSelect') + this.$t('projectLibrary.vehicleItemLibrary.projectLeader') }],
validateTrigger: 'change'
},
// 项目健康度
projectHealth: {
rules: [{ required: false, message: this.$t('pleaseSelect') + this.$t('projectLibrary.projectHealthStatus') }],
validateTrigger: 'change'
}
}
}
},
methods: {
add () {
this.form.resetFields()
this.visible = true
this.model.projectSource = ProjectSource.ADD.value
this.$nextTick(() => {
this.form.setFieldsValue(this.model)
})
},
edit (record) {
this.form.resetFields()
this.model = Object.assign({}, record)
this.visible = true
this.$nextTick(() => {
this.form.setFieldsValue(this.model)
})
},
handleOk () {
this.form.validateFields((errors, values) => {
if (!errors) {
this.confirmLoading = true
const formData = Object.assign(this.model, values)
let submitFunc
if (this.model.id) {
submitFunc = editVehicleItemLibrary
} else {
submitFunc = addVehicleItemLibrary
}
submitFunc(formData).then(res => {
if (res.success) {
this.$message.success(res.message)
this.close()
this.$emit('ok')
} else {
this.$message.warn(res.message)
}
}).finally(() => {
this.confirmLoading = false
})
}
})
},
handleCancel () {
this.close()
},
close () {
this.visible = false
this.form.resetFields()
}
}
}
</script>
<style scoped lang="less">
</style>