| | |
| | | width="500" |
| | | :close-on-click-modal="false" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-form |
| | | > <el-form |
| | | ref="formRef" |
| | | style="max-width: 600px; margin: 0 auto" |
| | | :model="formData" |
| | | :rules="rules" |
| | | label-width="auto" |
| | | label-width="120px" |
| | | > |
| | | <el-form-item label="煤种名称" prop="coal"> |
| | | <el-input |
| | | v-model="formData.coal" |
| | | placeholder="请输入煤种名称" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="维护人姓名" prop="maintainerId"> |
| | | </el-form-item> <el-form-item label="维护人姓名" prop="maintainerId"> |
| | | <el-input |
| | | v-model="formData.maintainerId" |
| | | placeholder="请输入维护人姓名" |
| | | :value="userStore.name || ''" |
| | | placeholder="维护人姓名" |
| | | disabled |
| | | /> |
| | | </el-form-item> <el-form-item label="维护日期" prop="maintenanceDate"> |
| | | <el-input |
| | | :value="getCurrentDate()" |
| | | placeholder="维护日期" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="维护日期" prop="maintenanceDate"> |
| | | <el-input v-model="formData.maintenanceDate" placeholder="请输入银行账户" /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button type="primary" @click="submitForm"> |
| | | 确定 |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { ref, watch ,defineProps } from 'vue' |
| | | import { ref, watch, defineProps, reactive, onMounted } from 'vue' |
| | | import { addOrEditCoalInfo } from '@/api/basicInformation/coal' |
| | | import useUserStore from '@/store/modules/user' |
| | | |
| | | const userStore = useUserStore() |
| | | |
| | | const props = defineProps({ |
| | | beforeClose: { |
| | |
| | | }, |
| | | }) |
| | | |
| | | const emit = defineEmits(['submit', 'handleBeforeClose','update:coalDialogFormVisible']) |
| | | // 在组件挂载时获取用户信息 |
| | | onMounted(async () => { |
| | | // 如果store中没有用户信息,则获取用户信息 |
| | | if (!userStore.name) { |
| | | try { |
| | | await userStore.getInfo() |
| | | console.log('用户信息:', { |
| | | id: userStore.id, |
| | | name: userStore.name, |
| | | nickName: userStore.nickName |
| | | }) |
| | | // 自动填充维护人ID |
| | | if (props.addOrEdit === 'add') { |
| | | formData.value.maintainerId = userStore.id |
| | | } |
| | | } catch (error) { |
| | | console.error('获取用户信息失败:', error) |
| | | } |
| | | } else { |
| | | console.log('用户信息:', { |
| | | id: userStore.id, |
| | | name: userStore.name, |
| | | nickName: userStore.nickName |
| | | }) |
| | | // 自动填充维护人ID |
| | | if (props.addOrEdit === 'add') { |
| | | formData.value.maintainerId = userStore.id |
| | | } |
| | | } |
| | | }) |
| | | |
| | | const emit = defineEmits(['submit', 'handleBeforeClose','update:coalDialogFormVisible']) |
| | | // 表单引用 |
| | | const formRef = ref(null) |
| | | // 表单数据 |
| | |
| | | // 监听外部传入的表单数据变化 |
| | | watch(() => props.form, (newVal) => { |
| | | formData.value = { ...newVal } |
| | | // 如果是新增模式,设置维护人 |
| | | if (props.addOrEdit === 'add' && userStore.id) { |
| | | formData.value.maintainerId = userStore.id |
| | | } |
| | | }, { deep: true }) |
| | | |
| | | // 监听内部弹窗状态变化 |
| | |
| | | if (!formRef.value) return |
| | | await formRef.value.validate(async (valid, fields) => { |
| | | if (valid) { |
| | | formData.value.maintenanceDate = "2023-10-01" // 示例日期 |
| | | delete formData.value.createTime |
| | | delete formData.value.updateTime |
| | | delete formData.value.maintainerName // 删除显示用的字段,只保留ID |
| | | |
| | | // 确保maintainerId有值 |
| | | if (!formData.value.maintainerId) { |
| | | formData.value.maintainerId = userStore.id |
| | | } |
| | | |
| | | // 设置维护日期 |
| | | formData.value.maintenanceDate = getCurrentDate() |
| | | |
| | | let result = await addOrEditCoalInfo({ |
| | | ...formData.value, |
| | | }) |
| | |
| | | { required: true, message: "请正确输入纳税人识别号", trigger: "blur" }, |
| | | { min: 17, max: 20, message: "请输入17-20位纳税人识别号", trigger: "blur" }, |
| | | ], |
| | | address: [ |
| | | { |
| | | required: true, |
| | | message: "请选择经营地址", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | bankAccount: [{ required: true, message: "请输入银行账户", trigger: "blur" }], |
| | | bank: [{ required: true, message: "请输入开户行", trigger: "blur" }], |
| | | contacts: [{ required: true, message: "请输入开户行", trigger: "blur" }], |
| | | contactsPhone: [ |
| | | { required: true, message: "请输入联系人", trigger: "blur" }, |
| | | { min: 11, max: 11, message: "请输入11位联系人电话", trigger: "blur" }, |
| | | ], |
| | | }); |
| | | // 获取当前日期并格式化为 YYYY-MM-DD |
| | | function getCurrentDate() { |
| | | const today = new Date(); |
| | | const year = today.getFullYear(); |
| | | const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从0开始 |
| | | const day = String(today.getDate()).padStart(2, '0'); |
| | | return `${year}-${month}-${day}`; |
| | | } |
| | | </script> |
| | | |
| | | <style lang="sass" scoped> |