duy 1 rok pred
rodič
commit
46ad3bdb99

+ 27 - 10
src/views/agree/land/collapse-form/index.vue

@@ -15,7 +15,7 @@
                                 <el-button :disabled="!item?.pdfUrl" plain type="primary" @click.stop="previewClick(item)">
                                     预览
                                 </el-button>
-                                <el-button plain type="primary" :loading="tableFormSaveLoading" @click="tableFormSaveClick(item)">
+                                <el-button plain type="primary" :loading="tableFormSaveLoading" @click="tableFormSaveClick(item, null, index)">
                                     保存
                                 </el-button>
                             </div>
@@ -106,6 +106,7 @@ import { useAppStore } from '~src/store'
 import landApi from '~api/agree/land.js'
 import TableFormItem from './form-item.vue'
 import NoDataSvg from '~src/assets/view/no-data.svg'
+import { getStoreValue, setStoreValue } from '~uti/storage'
 import {
     arrIndex, deepClone, getArrValue,
     getObjVal, getObjValue, isNullES, setPosRange,
@@ -226,6 +227,7 @@ const closeIconArr = [
 watch(() => [
     props.datas,
 ], ([datas]) => {
+    console.log(datas, 'datas')
     setFormDataNum(datas)
 }, { deep: true })
 
@@ -285,7 +287,9 @@ const changeFormDatas = (pKeyId, type) => {
 const ActiveKey = ref('')
 const CollapseChange = (name) => {
     ActiveKey.value = name
+    setStoreValue('activeKey', ActiveKey.value)
     let index = getCollapseItemIndex(name)
+  
     if (index > -1) {
         getOffsetTop(name)
         const item = listDatas.value[index]
@@ -303,7 +307,9 @@ const CollapseChange = (name) => {
         formparentId.value = ''
     }
 }
-
+const setCollapseKey = (key) => {
+    CollapseChange(key)
+}
 //初始设置
 const setFormDataNum = (datas) => {
     itemRefs.value = []
@@ -581,14 +587,17 @@ const fileListData = ref([])
 
 //单个保存
 const tableFormSaveLoading = ref(false)
-const tableFormSaveClick = async (item, dragItem = null) => {
+const tableFormSaveClick = async (item, dragItem = null, index) => {
     if (isStatus.value !== 3) {
+        setStoreValue('activeKey', ActiveKey.value)
         tableFormSaveLoading.value = true
         const isSave = await saveExcelBussData(item, dragItem)
         if (isSave) {
-            await getBussPdfInfo(item, dragItem)
+           
             tableFormSaveLoading.value = false
-            renewData()
+            agreementId.value = agreementId
+            renewData(isSave)
+            // await getBussPdfInfo(item, dragItem)
         } else {
             tableFormSaveLoading.value = false
         }
@@ -604,14 +613,14 @@ const saveExcelBussData = async ({ id }, dragItem = null, showTip = true) => {
     const isRegExp = await refs?.isFormRegExp()
     if (isRegExp) {
         const formData = refs?.getFormData()
-        const { error, code } = await landApi.saveBussData(formData)
+        const { error, code, data } = await landApi.saveBussData(formData)
      
         setDragModalLoading(dragItem)
         if (!error && code === 200) {
             if (showTip) {
                 window?.$message?.success('保存成功')
             }
-            return true
+            return data
         } else {
             return false
         }
@@ -624,6 +633,7 @@ const saveExcelBussData = async ({ id }, dragItem = null, showTip = true) => {
 //预览PDF
 const getBussPdfInfo = async ({ id }, dragItem = null, showTip = true) => {
     setDragModalLoading(dragItem, '获取pdf中...', true)
+    console.log(id, 'id')
     const { error, code, data } = await landApi.getSingleBussPdfInfo({
         id: id,
     }, false)
@@ -643,9 +653,13 @@ const getBussPdfInfo = async ({ id }, dragItem = null, showTip = true) => {
 
 
 //通知数据更新
-const renewData = () => {
-    emit('renew')
+const renewData = (id) => {
+
+    const activeKey = getStoreValue('activeKey')
+
+    emit('renew', id, activeKey)
     ActiveKey.value = ''
+  
 }
 
 //设置表单的加载状态
@@ -679,8 +693,10 @@ const delWindowRefs = (pkeyId) => {
 
 //计算展开高度和滚动位置
 const getOffsetTop = (key = '') => {
+    console.log(key, 'key')
     if (key) {
         const dom = document.getElementById(key)
+        console.log(dom, 'dom')
         if (!draw_type.value) {
             if (dom?.offsetTop >= 583 && key) {
                 emit('offsetTop', dom?.offsetTop - 583)
@@ -688,7 +704,7 @@ const getOffsetTop = (key = '') => {
                 emit('offsetTop', dom?.offsetTop)
             }
         } else {
-            if (dom.offsetTop >= 424 && key) {
+            if (dom?.offsetTop >= 424 && key) {
                 emit('offsetTop', dom?.offsetTop - 424)
             } else {
                 emit('offsetTop', dom?.offsetTop)
@@ -855,6 +871,7 @@ defineExpose({
     getFormRegExpJson,
     getActiveKey,
     setActiveKey,
+    setCollapseKey,
 })
 </script>
 

+ 17 - 6
src/views/agree/land/form.vue

@@ -13,7 +13,7 @@
                 :area-id="areaId"
                 :agreement-id="agreementId"
                 :draw-type="isDrawType"
-                @renew="updateGetTablesData(agreementId)"
+                @renew="updateGetTablesData"
             />
             <HcStatus v-else text="暂无表单" />
         </el-scrollbar>
@@ -46,12 +46,13 @@
 </template>
 
 <script setup>
-import { onActivated, ref } from 'vue'
+import { nextTick, onActivated, ref } from 'vue'
 import { useRoute, useRouter } from 'vue-router'
 import CollapseForm from './collapse-form/index.vue'
 import landApi from '~api/agree/land.js'
 import { useAppStore } from '~src/store'
-import { getArrValue, getObjVal } from 'js-fast-way'
+import { getArrValue, isNullES } from 'js-fast-way'
+import { getStoreValue } from '~uti/storage'
 import HcUpload from './components/HcUpload.vue'
 
 const useAppState = useAppStore()
@@ -117,7 +118,8 @@ const searchNodeAllTable = async () => {
     }
 }
 //编辑获取表单列表
-const updateGetTablesData = async (id) => {
+const updateGetTablesData = async (id, key) => {
+    console.log(key, 'key')
     ListItemDatas.value = []
     ListItemLoading.value = true
     const { error, code, data } = await landApi.updateGetTables({
@@ -131,6 +133,12 @@ const updateGetTablesData = async (id) => {
     } else {
         ListItemDatas.value = []
     }
+    //保存后自动展开到当前表单
+    if (!isNullES(key)) {
+        await nextTick(() => {
+            ListItemRef.value?.setCollapseKey(key)
+        })
+    }
 }
 
 //保存
@@ -151,12 +159,15 @@ const tableFormSaveClick = async () => {
         const { error, code, data } = await landApi.saveBussData({
             dataInfo: { orderList: FormData },
         })
+        agreementId.value = data
         tableFormSaveLoading.value = false
         if (!error && code === 200) {
             window?.$message?.success('保存成功')
             dataType.value = 2
-             await bussPdfsClick()
-             updateGetTablesData(agreementId.value)
+            //  await bussPdfsClick()
+            const activeKey = getStoreValue('activeKey')
+            await updateGetTablesData(agreementId.value, activeKey)
+            
         }
     } else {
         console.log('预览')