Bladeren bron

新增修改结算协议

duy 1 jaar geleden
bovenliggende
commit
bd7dac5487
2 gewijzigde bestanden met toevoegingen van 93 en 35 verwijderingen
  1. 16 0
      src/api/modules/settle/index.js
  2. 77 35
      src/views/settle/index.vue

+ 16 - 0
src/api/modules/settle/index.js

@@ -16,6 +16,22 @@ export default {
                 data: form,
             }, msg)
         },
+        //分页查询结算
+        async getOutPage(form, msg = true) {
+            return httpApi({
+                url: '/api/blade-land/clearingAgreementInfo/page',
+                method: 'get',
+                params: form,
+            }, msg)
+        },
+        //新增或修改结算协议
+        async addOrUpdateAgree(form, msg = true) {
+            return httpApi({
+                url: '/api/blade-land/clearingAgreementInfo/addOrUpdate',
+                method: 'get',
+                params: form,
+            }, msg)
+        },
         //删除周期
         async delete(form, msg = true) {
             return httpApi({

+ 77 - 35
src/views/settle/index.vue

@@ -17,8 +17,8 @@
                     </el-select>
                 </div>
                 <div class="w-32 ml-2">
-                    <el-select v-model="searchForm.number" block clearable placeholder="计量期" size="large">
-                        <el-option v-for="item in numberOptions" :key="item.id" :label="item.number" :value="item.number" />
+                    <el-select v-model="searchForm.stageId" block clearable placeholder="计量期" size="large">
+                        <el-option v-for="item in numberOptions" :key="item.id" :label="item.number" :value="item.id" />
                     </el-select>
                 </div>
                 <div class="w-52 ml-2">
@@ -126,7 +126,7 @@
         </HcDrawer>
 
         <!-- 新增结算单 -->
-        <HcDialog is-to-body bg-color="white" is-table widths="80%" title="新增结算单" :padding="false" :show="rowModal" @save="rowModalSave" @close="rowModalClose">
+        <HcDialog is-to-body bg-color="white" is-table widths="80%" title="新增结算单" :padding="false" :show="rowModal" :loading="addLoaing" @save="rowModalSave" @close="rowModalClose">
             <div class="hc-settle-dialog-box">
                 <div id="settle-dialog-tree" class="hc-settle-dialog-tree">
                     <el-scrollbar>
@@ -135,22 +135,22 @@
                 </div>
                 <div id="settle-dialog-table" class="hc-settle-dialog-table">
                     <div class="dialog-table-header">
-                        <div class="w-32 ml-2">
+                        <div class="w-44">
+                            <el-select v-model="jqnumber" block clearable placeholder="请选择结算期数" size="large">
+                                <el-option v-for="item in numberOptions" :key="item.id" :label="item.number" :value="item.number" />
+                            </el-select>
+                        </div>
+                        <div class="w-32 ml-8" style="position: absolute; right: 320px;">
                             <el-select v-model="searchForm1.type" block clearable placeholder="补偿类型" size="large" @change="changType">
                                 <el-option label="征地补偿" value="1" />
                                 <el-option label="坟地补偿" value="2" />
                                 <el-option label="专项补偿" value="3" />
                             </el-select>
                         </div>
-                        <div class="w-32">
-                            <el-select v-model="searchForm1.number" block clearable placeholder="计量期" size="large">
-                                <el-option v-for="item in numberOptions" :key="item.id" :label="item.number" :value="item.number" />
-                            </el-select>
-                        </div>
-                        <div class="w-52 ml-2">
-                            <el-input v-model="searchForm1.name" clearable placeholder="请输入名称进行查询" size="large" />
+                        <div class="w-52 ml-2" style="position: absolute; right: 100px;">
+                            <el-input v-model="searchForm1.number" clearable placeholder="请输入协议编号进行查询" size="large" />
                         </div>
-                        <div class="ml-4">
+                        <div class="ml-4" style="position: absolute; right: 0;">
                             <el-button type="primary" size="large" @click="searchClick1">
                                 <HcIcon name="search-2" />
                                 <span>搜索</span>
@@ -225,13 +225,14 @@
 import { nextTick, onUnmounted, ref } from 'vue'
 import split from 'split.js'
 import settleApi from '~api/settle/index.js'
-import { getArrValue } from 'js-fast-way'
+import { arrToId, getArrValue } from 'js-fast-way'
 import { useAppStore } from '~src/store'
 const useAppState = useAppStore()
 const projectId = ref(useAppState.getProjectId)
 //树节点被点击
 const treeNodeTap = ({ node, data }) => {
-
+    searchForm.value.areaId = data.id
+    getTableData()
 }
 
 //搜索表单
@@ -259,25 +260,34 @@ const pageChange = ({ current, size }) => {
 //获取数据
 const tableLoading = ref(false)
 const tableColumn = [
-    { key: 'key1', name: '计量期' },
-    { key: 'key2', name: '结算协议书名称' },
-    { key: 'key3', name: '协议书类型' },
-    { key: 'key4', name: '协议书金额' },
+    { key: 'stage', name: '计量期' },
+    { key: 'name', name: '结算协议书名称' },
+    { key: 'type', name: '协议书类型' },
+    { key: 'agreementMoney', name: '协议书金额' },
     { key: 'action', name: '操作', width: '130', align: 'center' },
 ]
 const tableData = ref([
-    { id: 1, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
-    { id: 2, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
-    { id: 3, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
-    { id: 4, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
 ])
-const getTableData = () => {
-
+const getTableData = async () => {
+    tableLoading.value = true
+    const { error, code, data } = await settleApi.getOutPage({
+        projectId: projectId.value,
+        ...searchForm.value,
+    })
+    tableLoading.value = false
+    if (!error && code === 200) {
+        tableData.value = getArrValue(data['records'])
+      
+    } else {
+        tableData.value = []
+     
+    }
 }
 
 //多选事件
+const tableCheckedKeys = ref([])
 const tableSelectionChange = (rows) => {
-    console.log(rows)
+    tableCheckedKeys.value = rows
 }
 
 
@@ -319,19 +329,15 @@ const tableColumn1 = [
     { key: 'name', name: '结算协议书名称' },
     { key: 'allMoney', name: '协议书补偿金额(元)' },
 ]
-const tableData1 = ref([
-    { id: 1, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
-    { id: 2, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
-    { id: 3, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
-    { id: 4, key1: 'xxxx', key2: 'xxxx', key3: '征地补偿' },
-])
-const searchForm1 = ref({})
+const tableData1 = ref([])
+const searchForm1 = ref({ type:'1' })
 const tableLoading1 = ref(false)
 const getTableData1 = async () => {
     tableLoading1.value = true
     const { error, code, data } = await settleApi.getAgreementList({
         projectId: projectId.value,
         ...searchForm1.value,
+        agreementIds:rowagreementIds.value,
     })
     tableLoading1.value = false
     if (!error && code === 200) {
@@ -350,6 +356,9 @@ const treeNodeTap1 = ({ node, data }) => {
 const addRowClick = () => {
     formModel.value = {}
     rowModal.value = true
+    searchForm1.value.type = '1'
+    rowagreementIds.value = ''
+    changType('1')
     getTableData1()
     nextTick(() => {
         setSplitDom()
@@ -357,7 +366,12 @@ const addRowClick = () => {
 }
 
 //编辑
+const rowagreementIds = ref('')
 const editRowClick = (row) => {
+    rowagreementIds.value = row.agreementIds
+    searchForm1.value.type = row.type.toString()
+    changType( searchForm1.value.type)
+    jqnumber.value = row.stageId
     formModel.value = {}
     rowModal.value = true
     nextTick(() => {
@@ -366,8 +380,35 @@ const editRowClick = (row) => {
 }
 
 //保存
-const rowModalSave = () => {
-
+const addLoaing = ref(false)
+const rowModalSave = async () => {
+    const agreementIds = arrToId(tableCheckedKeys.value)
+    const stage = jqnumber.value
+    let stageId = ''
+    numberOptions.value.forEach((ele)=>{
+        if ( ele.number === stage) {
+            stageId = ele.id
+        }
+    })
+    if (stageId && stage) {
+        addLoaing.value = true
+        const { error, code, msg } = await settleApi.addOrUpdateAgree({
+            projectId: projectId.value,
+            type:searchForm1.value.type,
+            areaId:searchForm1.value.areaId,
+            stage:stage,
+            stageId:stageId,
+            agreementIds:agreementIds,
+        })
+        addLoaing.value = false
+        if (!error && code === 200) {
+            window.$message.success(msg)
+        
+        } 
+    } else {
+        window.$message.warning('请选择结算期数')
+    }
+ 
 }
 
 //关闭弹窗
@@ -406,8 +447,9 @@ const getTableData2 = async () => {
 }
 //获取期数
 const numberOptions = ref([])
+const jqnumber = ref('')//计量期
 const changType = async (val)=>{
-    searchForm.value.number = ''
+    jqnumber.value = ''
     const { error, code, data } = await settleApi.getPage({
         projectId: projectId.value,
         type:val,