validityDate.vue 2.12 KB
<template>
  <el-dialog
    v-model="show" width="600" title="有效期" append-to-body
    align-center
  >
    <el-form
      ref="infoRef" label-width="120px" :model="form" :rules="rules" label-suffix=":"
    >
      <el-form-item label="开始日期" prop="beginTime">
        <el-date-picker
          v-model="form.beginTime"
          clearable
          type="date"
          value-format="YYYY-MM-DD"
          placeholder="请选择"
          style="width: 100%;"
        />
      </el-form-item>
      <el-form-item label="结束日期" prop="endTime">
        <el-date-picker
          v-model="form.endTime"
          clearable
          type="date"
          value-format="YYYY-MM-DD"
          placeholder="请选择"
          style="width: 100%;"
        />
      </el-form-item>
    </el-form>
    <template #footer>
      <div class="dialog-footer text-center">
        <el-button type="primary" @click="submitForm">保 存</el-button>
      </div>
    </template>
  </el-dialog>
</template>

<script setup>
import { reactive, ref, toRefs } from 'vue'
import { getCurrentInstance } from '@vue/runtime-core'
import { editValiDate } from '@/api/storehouse/addStorehouse'
import dayjs from 'dayjs'
const { proxy } = getCurrentInstance()
const emit = defineEmits(['submit'])

const data = reactive({
  form: {},
  rules: {
    endTime: { required: true, message: '请选择', trigger: 'blur' },
    beginTime: { required: true, message: '请选择', trigger: 'blur' }
  }
})
const { form, rules } = toRefs(data)

const show = ref(false)

function open(row) {
  console.log(row)
  show.value = true
  form.value.beginTime = dayjs(row.beginTime).format('YYYY-MM-DD')
  form.value.endTime = dayjs(row.validityDate).format('YYYY-MM-DD')
  form.value.perId = row.perId
}


async function submitForm() {
  await proxy.$refs['infoRef'].validate()
  await editValiDate({
    perId: form.value.perId,
    beginTime: form.value.beginTime,
    endTime: form.value.endTime
  }).then(res => {
    proxy.$modal.msgSuccess('操作成功!')
    emit('submit')
    show.value = false
  })
}


defineExpose({
  open
})
</script>

<style scoped lang="scss">
</style>