ZaiZai 1 an în urmă
părinte
comite
6fd21d2eae

+ 8 - 0
src/api/modules/debit-pay/admin/periods.js

@@ -33,6 +33,14 @@ export default {
             params: form,
         })
     },
+    //获取合同编号
+    async getContractNumber(form) {
+        return HcApi({
+            url: '/api/blade-meter/contractMeterPeriod/getContractNumber',
+            method: 'get',
+            params: form,
+        })
+    },
     //锁定
     async locking(form) {
         return HcApi({

+ 2 - 1
src/config/index.json

@@ -1,7 +1,8 @@
 {
     "version": "20230607160059",
     "target1": "http://127.0.0.1:8090",
-    "target": "http://39.108.216.210:8090",
+    "target": "http://192.168.0.125:8095",
+    "target3": "http://39.108.216.210:8090",
     "smsPhone": "",
     "vite": {
         "port": 5180,

+ 116 - 62
src/views/debit-pay/admin/periods.vue

@@ -11,7 +11,10 @@
             <hc-pages :pages="searchForm" @change="pageChange" />
         </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>
                 <template #header>
                     <el-tooltip :visible="editVisible" effect="light" placement="bottom-start">
@@ -41,31 +44,66 @@
                         <span>插入下一行</span>
                     </el-button>
                 </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 }">
-                        <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 #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-select>
                     </template>
                     <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-select>
                     </template>
                     <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 #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 #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 #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>
                 </hc-table>
             </hc-card-item>
@@ -76,9 +114,10 @@
 <script setup>
 import { onActivated, ref } from 'vue'
 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 { useAppStore } from '~src/store'
+
 const useAppState = useAppStore()
 const contractId = ref(useAppState.getContractId)
 const projectId = ref(useAppState.getProjectId)
@@ -111,7 +150,7 @@ const pageChange = ({ current, size }) => {
 const tableLoading = ref(false)
 const tableColumn = ref([
     { key: 'periodNumber', name: '期号' },
-    { key: 'no-key', name: '支付期编号' },
+    { key: 'payNumber', name: '支付期编号' },
     { key: 'periodYear', name: '年份' },
     { key: 'periodMonth', name: '月份' },
     { key: 'startDate', name: '开始日期' },
@@ -122,9 +161,9 @@ const tableData = ref([])
 const getTableData = async () => {
     tableLoading.value = true
     const { error, code, data } = await mainApi.getPage({
-       ...searchForm.value,
-       contractId:contractId.value,
-       type:1,
+        ...searchForm.value,
+        contractId: contractId.value,
+        type: 1,
     })
     tableLoading.value = false
     if (!error && code === 200) {
@@ -139,48 +178,64 @@ const editVisible = ref(false)
 const editModalShow = ref(false)
 const editModalClick = () => {
     editModalShow.value = true
+    getContractNumber()
     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 curRow = ref({})
-const hangeRow = ({ row })=>{
-    tableEditData.value.forEach((ele, index)=>{
+const hangeRow = ({ row }) => {
+    tableEditData.value.forEach((ele, index) => {
         if (row.id === ele.id) {
             curIndex.value = index
             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
-        // 将日期字符串转换为 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')
     tableEditData.value.splice(index, 1)
     // if ( tableEditData.value.length === 0) {
@@ -190,7 +245,7 @@ const delRow = (row, index)=>{
 //编辑的表格
 const tableEditColumn = [
     { key: 'periodNumber', name: '期号' },
-    { key: 'no-key', name: '支付期编号' },
+    { key: 'payNumber', name: '支付期编号' },
     { key: 'periodYear', name: '年份' },
     { key: 'periodMonth', name: '月份' },
     { key: 'startDate', name: '开始日期' },
@@ -203,16 +258,16 @@ const tableEditLoading = ref(false)
 const getTableEditData = async () => {
     tableEditLoading.value = true
     const { error, code, data } = await mainApi.allPeriod({
-       ...searchForm.value,
-       contractId:contractId.value,
-       type:1,
+        ...searchForm.value,
+        contractId: contractId.value,
+        type: 1,
     })
     tableEditLoading.value = false
     if (!error && code === 200) {
         tableEditData.value = getArrValue(data)
         curIndex.value = tableEditData.value.length
         if (tableEditData.value.length === 0) {
-            tableEditData.value.push({ isNew:true })
+            tableEditData.value.push({ isNew: true })
         }
     } else {
         tableEditData.value = []
@@ -222,37 +277,36 @@ const saveLoading = ref(false)
 const editModalSave = async () => {
     saveLoading.value = true
     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({
         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 = () => {
     editModalShow.value = false
 }
-const changeStart = (val, row)=>{
+const changeStart = (val, row) => {
     if (val > row.endDate) {
         window.$message.warning('开始时间不能晚于结束时间')
         row.startDate = ''
     }
 }
-const changeEnd = (val, row)=>{
+const changeEnd = (val, row) => {
 
     if (val < row.startDate) {
         window.$message.warning('结束时间不能早于开始时间')