|
@@ -11,7 +11,10 @@
|
|
<hc-pages :pages="searchForm" @change="pageChange" />
|
|
<hc-pages :pages="searchForm" @change="pageChange" />
|
|
</template>
|
|
</template>
|
|
<!-- 计量期编辑 -->
|
|
<!-- 计量期编辑 -->
|
|
- <hc-new-dialog is-table widths="1200px" :show="editModalShow" title="计量期编辑" :loading="saveLoading" @save="editModalSave" @close="editModalClose">
|
|
|
|
|
|
+ <hc-new-dialog
|
|
|
|
+ is-table widths="1200px" :show="editModalShow" title="计量期编辑" :loading="saveLoading"
|
|
|
|
+ @save="editModalSave" @close="editModalClose"
|
|
|
|
+ >
|
|
<hc-card-item>
|
|
<hc-card-item>
|
|
<template #header>
|
|
<template #header>
|
|
<el-tooltip :visible="editVisible" effect="light" placement="bottom-start">
|
|
<el-tooltip :visible="editVisible" effect="light" placement="bottom-start">
|
|
@@ -41,31 +44,66 @@
|
|
<span>插入下一行</span>
|
|
<span>插入下一行</span>
|
|
</el-button>
|
|
</el-button>
|
|
</template>
|
|
</template>
|
|
- <hc-table is-new :index-style="{ width: 60 }" :column="tableEditColumn" :datas="tableEditData" :loading="tableEditLoading" is-current-row @row-click="hangeRow">
|
|
|
|
|
|
+ <hc-table
|
|
|
|
+ is-new :index-style="{ width: 60 }" :column="tableEditColumn" :datas="tableEditData"
|
|
|
|
+ :loading="tableEditLoading" is-current-row @row-click="hangeRow"
|
|
|
|
+ >
|
|
<template #periodNumber="{ row }">
|
|
<template #periodNumber="{ row }">
|
|
- <hc-table-input v-model="row.periodNumber" :disabled="row?.dataStatus === 1 || row?.citeStatus === 1" />
|
|
|
|
|
|
+ <hc-table-input
|
|
|
|
+ v-model="row.periodNumber"
|
|
|
|
+ :disabled="row?.dataStatus === 1 || row?.citeStatus === 1"
|
|
|
|
+ @blur="periodNumberBlur(row)"
|
|
|
|
+ />
|
|
|
|
+ </template>
|
|
|
|
+ <template #payNumber="{ row }">
|
|
|
|
+ <hc-table-input v-model="row.payNumber" disabled />
|
|
</template>
|
|
</template>
|
|
<template #periodYear="{ row }">
|
|
<template #periodYear="{ row }">
|
|
- <el-select v-model="row.periodYear" placeholder="选择年份" filterable block :disabled="row?.dataStatus === 1 || row?.citeStatus === 1">
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="row.periodYear" placeholder="选择年份" filterable block
|
|
|
|
+ :disabled="row?.dataStatus === 1 || row?.citeStatus === 1"
|
|
|
|
+ >
|
|
<el-option v-for="item in yearData" :key="item" :label="item" :value="item" />
|
|
<el-option v-for="item in yearData" :key="item" :label="item" :value="item" />
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
<template #periodMonth="{ row }">
|
|
<template #periodMonth="{ row }">
|
|
- <el-select v-model="row.periodMonth" placeholder="选择月份" filterable block :disabled="row?.dataStatus === 1 || row?.citeStatus === 1">
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="row.periodMonth" placeholder="选择月份" filterable block
|
|
|
|
+ :disabled="row?.dataStatus === 1 || row?.citeStatus === 1"
|
|
|
|
+ >
|
|
<el-option v-for="item in monthData" :key="item" :label="item" :value="item" />
|
|
<el-option v-for="item in monthData" :key="item" :label="item" :value="item" />
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
<template #startDate="{ row }">
|
|
<template #startDate="{ row }">
|
|
- <el-date-picker v-model="row.startDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" :disabled="row?.dataStatus === 1 || row?.citeStatus === 1" @change="changeStart($event, row)" />
|
|
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model="row.startDate" class="block" format="YYYY-MM-DD" type="date"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ :disabled="row?.dataStatus === 1 || row?.citeStatus === 1"
|
|
|
|
+ @change="changeStart($event, row)"
|
|
|
|
+ />
|
|
</template>
|
|
</template>
|
|
<template #endDate="{ row }">
|
|
<template #endDate="{ row }">
|
|
- <el-date-picker v-model="row.endDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" :disabled="row?.dataStatus === 1 || row?.citeStatus === 1" @change="changeEnd($event, row)" />
|
|
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model="row.endDate" class="block" format="YYYY-MM-DD" type="date"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ :disabled="row?.dataStatus === 1 || row?.citeStatus === 1"
|
|
|
|
+ @change="changeEnd($event, row)"
|
|
|
|
+ />
|
|
</template>
|
|
</template>
|
|
<template #formPrintDate="{ row }">
|
|
<template #formPrintDate="{ row }">
|
|
- <el-date-picker v-model="row.formPrintDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" :disabled="row?.dataStatus === 1 || row?.citeStatus === 1" />
|
|
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model="row.formPrintDate" class="block" format="YYYY-MM-DD" type="date"
|
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
|
+ :disabled="row?.dataStatus === 1 || row?.citeStatus === 1"
|
|
|
|
+ />
|
|
</template>
|
|
</template>
|
|
<template #action="{ row, index }">
|
|
<template #action="{ row, index }">
|
|
- <el-link type="danger" :disabled="row?.dataStatus === 1 || row?.citeStatus === 1" @click="delRow(row, index)">删除</el-link>
|
|
|
|
|
|
+ <el-link
|
|
|
|
+ type="danger" :disabled="row?.dataStatus === 1 || row?.citeStatus === 1"
|
|
|
|
+ @click="delRow(row, index)"
|
|
|
|
+ >
|
|
|
|
+ 删除
|
|
|
|
+ </el-link>
|
|
</template>
|
|
</template>
|
|
</hc-table>
|
|
</hc-table>
|
|
</hc-card-item>
|
|
</hc-card-item>
|
|
@@ -76,9 +114,10 @@
|
|
<script setup>
|
|
<script setup>
|
|
import { onActivated, ref } from 'vue'
|
|
import { onActivated, ref } from 'vue'
|
|
import dayjs from 'dayjs'
|
|
import dayjs from 'dayjs'
|
|
-import { getArrValue, getMonthList, getYearList } from 'js-fast-way'
|
|
|
|
|
|
+import { getArrValue, getMonthList, getYearList, isNullES } from 'js-fast-way'
|
|
import mainApi from '~api/debit-pay/admin/periods.js'
|
|
import mainApi from '~api/debit-pay/admin/periods.js'
|
|
import { useAppStore } from '~src/store'
|
|
import { useAppStore } from '~src/store'
|
|
|
|
+
|
|
const useAppState = useAppStore()
|
|
const useAppState = useAppStore()
|
|
const contractId = ref(useAppState.getContractId)
|
|
const contractId = ref(useAppState.getContractId)
|
|
const projectId = ref(useAppState.getProjectId)
|
|
const projectId = ref(useAppState.getProjectId)
|
|
@@ -111,7 +150,7 @@ const pageChange = ({ current, size }) => {
|
|
const tableLoading = ref(false)
|
|
const tableLoading = ref(false)
|
|
const tableColumn = ref([
|
|
const tableColumn = ref([
|
|
{ key: 'periodNumber', name: '期号' },
|
|
{ key: 'periodNumber', name: '期号' },
|
|
- { key: 'no-key', name: '支付期编号' },
|
|
|
|
|
|
+ { key: 'payNumber', name: '支付期编号' },
|
|
{ key: 'periodYear', name: '年份' },
|
|
{ key: 'periodYear', name: '年份' },
|
|
{ key: 'periodMonth', name: '月份' },
|
|
{ key: 'periodMonth', name: '月份' },
|
|
{ key: 'startDate', name: '开始日期' },
|
|
{ key: 'startDate', name: '开始日期' },
|
|
@@ -122,9 +161,9 @@ const tableData = ref([])
|
|
const getTableData = async () => {
|
|
const getTableData = async () => {
|
|
tableLoading.value = true
|
|
tableLoading.value = true
|
|
const { error, code, data } = await mainApi.getPage({
|
|
const { error, code, data } = await mainApi.getPage({
|
|
- ...searchForm.value,
|
|
|
|
- contractId:contractId.value,
|
|
|
|
- type:1,
|
|
|
|
|
|
+ ...searchForm.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ type: 1,
|
|
})
|
|
})
|
|
tableLoading.value = false
|
|
tableLoading.value = false
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
@@ -139,48 +178,64 @@ const editVisible = ref(false)
|
|
const editModalShow = ref(false)
|
|
const editModalShow = ref(false)
|
|
const editModalClick = () => {
|
|
const editModalClick = () => {
|
|
editModalShow.value = true
|
|
editModalShow.value = true
|
|
|
|
+ getContractNumber()
|
|
getTableEditData()
|
|
getTableEditData()
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+//获取合同编号
|
|
|
|
+const contractNumber = ref('')
|
|
|
|
+const getContractNumber = async () => {
|
|
|
|
+ const { data } = await mainApi.getContractNumber({
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ })
|
|
|
|
+ contractNumber.value = isNullES(data) ? '' : data
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//失去焦点
|
|
|
|
+const periodNumberBlur = (row) => {
|
|
|
|
+ row.payNumber = contractNumber.value + '-00' + row.periodNumber
|
|
|
|
+}
|
|
|
|
+
|
|
const curIndex = ref(0)
|
|
const curIndex = ref(0)
|
|
const curRow = ref({})
|
|
const curRow = ref({})
|
|
-const hangeRow = ({ row })=>{
|
|
|
|
- tableEditData.value.forEach((ele, index)=>{
|
|
|
|
|
|
+const hangeRow = ({ row }) => {
|
|
|
|
+ tableEditData.value.forEach((ele, index) => {
|
|
if (row.id === ele.id) {
|
|
if (row.id === ele.id) {
|
|
curIndex.value = index
|
|
curIndex.value = index
|
|
curRow.value = ele
|
|
curRow.value = ele
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
-const addPreRow = ()=>{
|
|
|
|
- tableEditData.value.splice( curIndex.value, 0, { isNew:true })
|
|
|
|
|
|
+const addPreRow = () => {
|
|
|
|
+ tableEditData.value.splice(curIndex.value, 0, { isNew: true })
|
|
}
|
|
}
|
|
-const addNextRow = ()=>{
|
|
|
|
- if (!curRow.value?.endDate) {
|
|
|
|
- curRow.value.endDate = tableEditData.value[tableEditData.value.length - 1].endDate
|
|
|
|
- }
|
|
|
|
- const netxtDay = getNextDate(curRow.value?.endDate)
|
|
|
|
- tableEditData.value.splice( curIndex.value + 1, 0, { isNew:true, startDate:netxtDay })
|
|
|
|
|
|
+const addNextRow = () => {
|
|
|
|
+ if (!curRow.value?.endDate) {
|
|
|
|
+ curRow.value.endDate = tableEditData.value[tableEditData.value.length - 1].endDate
|
|
|
|
+ }
|
|
|
|
+ const netxtDay = getNextDate(curRow.value?.endDate)
|
|
|
|
+ tableEditData.value.splice(curIndex.value + 1, 0, { isNew: true, startDate: netxtDay })
|
|
}
|
|
}
|
|
//获取连续的时间
|
|
//获取连续的时间
|
|
-const getNextDate = (data)=>{
|
|
|
|
|
|
+const getNextDate = (data) => {
|
|
let dateString = data
|
|
let dateString = data
|
|
- // 将日期字符串转换为 Date 对象
|
|
|
|
- let dateObject = new Date(dateString)
|
|
|
|
- // 将日期加一天
|
|
|
|
- dateObject.setDate(dateObject.getDate() + 1)
|
|
|
|
- // 获取新日期的年、月、日
|
|
|
|
- let year = dateObject.getFullYear()
|
|
|
|
- let month = dateObject.getMonth() + 1 // 注意:月份从0开始,所以要加1
|
|
|
|
- let day = dateObject.getDate()
|
|
|
|
|
|
+ // 将日期字符串转换为 Date 对象
|
|
|
|
+ let dateObject = new Date(dateString)
|
|
|
|
+ // 将日期加一天
|
|
|
|
+ dateObject.setDate(dateObject.getDate() + 1)
|
|
|
|
+ // 获取新日期的年、月、日
|
|
|
|
+ let year = dateObject.getFullYear()
|
|
|
|
+ let month = dateObject.getMonth() + 1 // 注意:月份从0开始,所以要加1
|
|
|
|
+ let day = dateObject.getDate()
|
|
|
|
|
|
- // 将年、月、日格式化为字符串
|
|
|
|
- let newDateString = `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`
|
|
|
|
|
|
+ // 将年、月、日格式化为字符串
|
|
|
|
+ let newDateString = `${year}-${month < 10 ? '0' + month : month}-${day < 10 ? '0' + day : day}`
|
|
|
|
|
|
- // 输出结果
|
|
|
|
- console.log(newDateString)
|
|
|
|
- return newDateString
|
|
|
|
|
|
+ // 输出结果
|
|
|
|
+ console.log(newDateString)
|
|
|
|
+ return newDateString
|
|
}
|
|
}
|
|
-const delRow = (row, index)=>{
|
|
|
|
|
|
+const delRow = (row, index) => {
|
|
console.log(index, 'index')
|
|
console.log(index, 'index')
|
|
tableEditData.value.splice(index, 1)
|
|
tableEditData.value.splice(index, 1)
|
|
// if ( tableEditData.value.length === 0) {
|
|
// if ( tableEditData.value.length === 0) {
|
|
@@ -190,7 +245,7 @@ const delRow = (row, index)=>{
|
|
//编辑的表格
|
|
//编辑的表格
|
|
const tableEditColumn = [
|
|
const tableEditColumn = [
|
|
{ key: 'periodNumber', name: '期号' },
|
|
{ key: 'periodNumber', name: '期号' },
|
|
- { key: 'no-key', name: '支付期编号' },
|
|
|
|
|
|
+ { key: 'payNumber', name: '支付期编号' },
|
|
{ key: 'periodYear', name: '年份' },
|
|
{ key: 'periodYear', name: '年份' },
|
|
{ key: 'periodMonth', name: '月份' },
|
|
{ key: 'periodMonth', name: '月份' },
|
|
{ key: 'startDate', name: '开始日期' },
|
|
{ key: 'startDate', name: '开始日期' },
|
|
@@ -203,16 +258,16 @@ const tableEditLoading = ref(false)
|
|
const getTableEditData = async () => {
|
|
const getTableEditData = async () => {
|
|
tableEditLoading.value = true
|
|
tableEditLoading.value = true
|
|
const { error, code, data } = await mainApi.allPeriod({
|
|
const { error, code, data } = await mainApi.allPeriod({
|
|
- ...searchForm.value,
|
|
|
|
- contractId:contractId.value,
|
|
|
|
- type:1,
|
|
|
|
|
|
+ ...searchForm.value,
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ type: 1,
|
|
})
|
|
})
|
|
tableEditLoading.value = false
|
|
tableEditLoading.value = false
|
|
if (!error && code === 200) {
|
|
if (!error && code === 200) {
|
|
tableEditData.value = getArrValue(data)
|
|
tableEditData.value = getArrValue(data)
|
|
curIndex.value = tableEditData.value.length
|
|
curIndex.value = tableEditData.value.length
|
|
if (tableEditData.value.length === 0) {
|
|
if (tableEditData.value.length === 0) {
|
|
- tableEditData.value.push({ isNew:true })
|
|
|
|
|
|
+ tableEditData.value.push({ isNew: true })
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
tableEditData.value = []
|
|
tableEditData.value = []
|
|
@@ -222,37 +277,36 @@ const saveLoading = ref(false)
|
|
const editModalSave = async () => {
|
|
const editModalSave = async () => {
|
|
saveLoading.value = true
|
|
saveLoading.value = true
|
|
tableEditData.value.forEach(ele => {
|
|
tableEditData.value.forEach(ele => {
|
|
- ele.contractId = contractId.value
|
|
|
|
- ele.projectId = projectId.value
|
|
|
|
|
|
+ ele.contractId = contractId.value
|
|
|
|
+ ele.projectId = projectId.value
|
|
})
|
|
})
|
|
const { error, code, msg } = await mainApi.edit({
|
|
const { error, code, msg } = await mainApi.edit({
|
|
list: tableEditData.value,
|
|
list: tableEditData.value,
|
|
- contractId:contractId.value,
|
|
|
|
- projectId:projectId.value,
|
|
|
|
- type:1,
|
|
|
|
-
|
|
|
|
- })
|
|
|
|
- //判断状态
|
|
|
|
- saveLoading.value = false
|
|
|
|
- if (!error && code === 200) {
|
|
|
|
- window?.$message?.success(msg)
|
|
|
|
- getTableData()
|
|
|
|
- editModalClose()
|
|
|
|
- } else {
|
|
|
|
- window.$message.error(msg)
|
|
|
|
- }
|
|
|
|
|
|
+ contractId: contractId.value,
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ type: 1,
|
|
|
|
+ })
|
|
|
|
+ //判断状态
|
|
|
|
+ saveLoading.value = false
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window?.$message?.success(msg)
|
|
|
|
+ getTableData()
|
|
|
|
+ editModalClose()
|
|
|
|
+ } else {
|
|
|
|
+ window.$message.error(msg)
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|
|
const editModalClose = () => {
|
|
const editModalClose = () => {
|
|
editModalShow.value = false
|
|
editModalShow.value = false
|
|
}
|
|
}
|
|
-const changeStart = (val, row)=>{
|
|
|
|
|
|
+const changeStart = (val, row) => {
|
|
if (val > row.endDate) {
|
|
if (val > row.endDate) {
|
|
window.$message.warning('开始时间不能晚于结束时间')
|
|
window.$message.warning('开始时间不能晚于结束时间')
|
|
row.startDate = ''
|
|
row.startDate = ''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-const changeEnd = (val, row)=>{
|
|
|
|
|
|
+const changeEnd = (val, row) => {
|
|
|
|
|
|
if (val < row.startDate) {
|
|
if (val < row.startDate) {
|
|
window.$message.warning('结束时间不能早于开始时间')
|
|
window.$message.warning('结束时间不能早于开始时间')
|