|
@@ -1,58 +1,103 @@
|
|
|
<template>
|
|
|
<hc-new-dialog widths="30rem" :show="isShow" title="新增中期支付证书" @save="addModalSave" @close="addModalClose">
|
|
|
<el-form ref="formRef" class="p-2" label-position="top" :model="formModel" :rules="formRules" size="large">
|
|
|
- <el-form-item label="计量期:" prop="key1">
|
|
|
- <el-select v-model="formModel.key1" block>
|
|
|
- <el-option label="第一期" :value="1" />
|
|
|
+ <el-form-item label="计量期:" prop="contractPeriodId">
|
|
|
+ <el-select v-model="formModel.contractPeriodId" block>
|
|
|
+ <el-option v-for="item in allPeriodData" :key="item.id" :label="item.periodNumber" :value="item.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="证书编号:" prop="key2">
|
|
|
- <el-input v-model="formModel.key2" />
|
|
|
+ <el-form-item label="证书编号:" prop="certificateNumber">
|
|
|
+ <el-input v-model="formModel.certificateNumber" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="材料计量期:" prop="key3">
|
|
|
- <div class="form-item-div">
|
|
|
- <el-radio-group v-model="formModel.key3">
|
|
|
- <el-radio :label="3">第一期</el-radio>
|
|
|
- <el-radio :label="6">第二期</el-radio>
|
|
|
- <el-radio :label="9">第三期</el-radio>
|
|
|
+ <el-form-item label="材料计量期:" prop="materialPeriodIds">
|
|
|
+ <div v-if="meterPeriodData.length > 0" class="form-item-div">
|
|
|
+ <el-radio-group v-model="formModel.materialPeriodIds">
|
|
|
+ <template v-for="item in meterPeriodData" :key="item.id">
|
|
|
+ <el-radio v-if="item.periodNumber" :label="item.periodNumber">{{ item.periodName }}</el-radio>
|
|
|
+ </template>
|
|
|
</el-radio-group>
|
|
|
</div>
|
|
|
+ <div v-else class="form-item-div text-orange">无材料计量期可进行关联</div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="开工预付计量期:" prop="key4">
|
|
|
- <div class="form-item-div text-orange">无开工计量期可进行关联</div>
|
|
|
+ <el-form-item label="开工预付计量期:" prop="startPeriodIds">
|
|
|
+ <div v-if="startPeriodData.length > 0" class="form-item-div">
|
|
|
+ <el-radio-group v-model="formModel.startPeriodIds">
|
|
|
+ <template v-for="item in startPeriodData" :key="item.id">
|
|
|
+ <el-radio v-if="item.periodNumber" :label="item.periodNumber">{{ item.periodName }}</el-radio>
|
|
|
+ </template>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <div v-else class="form-item-div text-orange">无开工计量期可进行关联</div>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="打印日期:">
|
|
|
- <el-date-picker v-model="formModel.key5" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
|
|
|
+ <el-date-picker v-model="formModel.printDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</hc-new-dialog>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
-import { ref, watch } from 'vue'
|
|
|
-
|
|
|
-const props = defineProps({
|
|
|
- ids: {
|
|
|
- type: [String, Number],
|
|
|
- default: '',
|
|
|
- },
|
|
|
-})
|
|
|
+import { getArrValue } from 'js-fast-way'
|
|
|
+import { onMounted, ref, watch } from 'vue'
|
|
|
+import { useAppStore } from '~src/store'
|
|
|
+import mainApi from '~api/debit-pay/admin/certificate'
|
|
|
|
|
|
//事件
|
|
|
const emit = defineEmits(['finish', 'close'])
|
|
|
|
|
|
+//变量
|
|
|
+const useAppState = useAppStore()
|
|
|
+const projectId = ref(useAppState.getProjectId || '')
|
|
|
+const contractId = ref(useAppState.getContractId || '')
|
|
|
+
|
|
|
//双向绑定
|
|
|
// eslint-disable-next-line no-undef
|
|
|
const isShow = defineModel('modelValue', {
|
|
|
default: false,
|
|
|
})
|
|
|
|
|
|
-//监听
|
|
|
-watch(() => [
|
|
|
- props.ids,
|
|
|
-], ([ids]) => {
|
|
|
- console.log('ids', ids)
|
|
|
-}, { immediate: true })
|
|
|
+//渲染完成
|
|
|
+onMounted(() => {
|
|
|
+ getAllPeriod()
|
|
|
+ getMeterPeriod()
|
|
|
+ getStartPeriod()
|
|
|
+})
|
|
|
+
|
|
|
+//获取合同计量期
|
|
|
+const allPeriodData = ref([])
|
|
|
+const getAllPeriod = async () => {
|
|
|
+ const { data } = await mainApi.getAllPeriod({
|
|
|
+ projectId: projectId.value,
|
|
|
+ contractId: contractId.value,
|
|
|
+ })
|
|
|
+ allPeriodData.value = getArrValue(data)
|
|
|
+ formModel.value.contractPeriodId = allPeriodData.value[ allPeriodData.value.length - 1].id
|
|
|
+}
|
|
|
+
|
|
|
+//获取材料计量期
|
|
|
+const meterPeriodData = ref([])
|
|
|
+const getMeterPeriod = async () => {
|
|
|
+ const { data } = await mainApi.getMeterPeriod({
|
|
|
+ projectId: projectId.value,
|
|
|
+ contractId: contractId.value,
|
|
|
+ type: 1,
|
|
|
+ })
|
|
|
+ meterPeriodData.value = getArrValue(data)
|
|
|
+ //formModel.value.materialPeriodIds = meterPeriodData.value[ meterPeriodData.value.length - 1].id
|
|
|
+}
|
|
|
+
|
|
|
+//获取开工计量期
|
|
|
+const startPeriodData = ref([])
|
|
|
+const getStartPeriod = async () => {
|
|
|
+ const { data } = await mainApi.getMeterPeriod({
|
|
|
+ projectId: projectId.value,
|
|
|
+ contractId: contractId.value,
|
|
|
+ type: 2,
|
|
|
+ })
|
|
|
+ startPeriodData.value = getArrValue(data)
|
|
|
+ //formModel.value.startPeriodIds = startPeriodData.value[ startPeriodData.value.length - 1].id
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
//监听
|
|
|
watch(isShow, (val) => {
|
|
@@ -78,7 +123,3 @@ const addModalClose = () => {
|
|
|
emit('close')
|
|
|
}
|
|
|
</script>
|
|
|
-
|
|
|
-<style scoped lang="scss">
|
|
|
-
|
|
|
-</style>
|