فهرست منبع

坟地补偿协议窗口化

duy 1 سال پیش
والد
کامیت
da97eca8d2

+ 1 - 1
src/views/agree/special/collapse-form/form-item.vue

@@ -4,12 +4,12 @@
         :cols="colsKeys"
         :form="tableFormInfo"
         :height="heights"
+        :width="widths"
         :html="excelHtml"
         :loading="loading"
         :pid="activeKey"
         :pkey="keyId"
         :scroll="scroll"
-        :width="widths"
         @excelBodyTap="excelTableFormClick"
         @render="tableFormRender"
         @rightTap="tableFormRightTap"

+ 149 - 381
src/views/agree/special/collapse-form/index.vue

@@ -21,28 +21,81 @@
                             </div>
                         </div>
                     </template>
-                    <div class="data-fill-list-item-content">
-                        <TableFormItem
-                            v-if="item.isTableRender"
-                            :ref="(el) => setItemRefs(el, item)"
-                            :classify="classifys"
-                            :datas="changeFormDatas(item?.id, 'collapse')"
-                            :kid="item?.id"
-                            :node-name="item.nodeName"
-                            :node-type="item.nodeType"
-                            :pid="`table-form-${item?.id}`"
-                            :area-id="areaId"
-                            :table-id="item.tableId"
-                            :agreement-id="agreementId"
-                            style="width: 100%;"
-                            @excelBodyTap="excelTableFormClick($event)"
-                            @render="tableFormRender($event, item, index)"
-                            @rightTap="tableFormRightTap($event, index)"
-                        />
+                
+                    <div :style="`height: calc(100vh - ${draw_type ? '555px' : '222px'});`" class="data-fill-list-item-content">
+                        <div v-if="item?.isWindow" class="data-fill-table-form-box is-window">
+                            <div class="hc-window-tip">
+                                <div class="table-form-no">
+                                    <img :src="NoDataSvg" alt="">
+                                    <div class="desc">
+                                        当前表单处于窗口模式,关闭相关窗口后恢复
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <div v-else class="data-fill-table-form-box">
+                            <TableFormItem
+                                v-if="item.isTableRender"
+                                :ref="(el) => setItemRefs(el, item)"
+                                :classify="classifys"
+                                :datas="changeFormDatas(item?.id, 'collapse')"
+                                :kid="item?.id"
+                                :node-name="item.nodeName"
+                                :node-type="item.nodeType"
+                                :pid="`table-form-${item?.id}`"
+                                :area-id="areaId"
+                                :table-id="item.tableId"
+                                :agreement-id="agreementId"
+                                style="width: 100%;"
+                                @excelBodyTap="excelTableFormClick($event)"
+                                @render="tableFormRender($event, item, index)"
+                                @rightTap="tableFormRightTap($event, index)"
+                            />
+                            <el-tooltip :content="item.isWindow ? '关闭窗口并恢复' : '当前表单窗口化'" :hide-after="0" placement="top">
+                                <div class="form-window-icon" @click.stop="windowClick(item, index)">
+                                    <template v-if="item.isWindow">
+                                        <HcIcon name="fullscreen-exit" />
+                                    </template>
+                                    <template v-else>
+                                        <HcIcon name="fullscreen" />
+                                    </template>
+                                </div>
+                            </el-tooltip>
+                        </div>
                     </div>
                 </el-collapse-item>
             </template>
         </el-collapse>
+        <!-- 查看表单 -->
+        <template v-for="(item, index) in DragModalTableForm" :key="index">
+            <HcDragModal
+                :close-icon-arr="closeIconArr" :eid="item.pkeyId" :height="DragModalHeight" :is-show="item.isShow"
+                :loading="item.loading" :loading-text="item.loadingText" :title="item.title"
+                is-sort-top
+                @close="TableFormClose(item, index)" @closeIconTap="closeIconTap($event, item, index)"
+            >
+                <HcDragNode :more-menu="dragNodeMoreMenu" @menuTap="dragNodeMoreMenuTap($event, item)">
+                    <TableFormItem
+                        :ref="(el) => setItemRefs(el, item)"
+                        :classify="classifys"
+                        :datas="changeFormDatas(item?.id, 'window')"
+                        :kid="item?.id"
+                        :height="item.height"
+                        :width="item.width"
+                        :node-name="item.nodeName"
+                        :node-type="item.nodeType"
+                        :pid="`table-form-${item?.id}`"
+                        :area-id="areaId"
+                        :table-id="item.tableId"
+                        :agreement-id="agreementId"
+               
+                        @excelBodyTap="excelTableFormClick($event)"
+                        @render="tableFormRender($event, item, index)"
+                        @rightTap="tableFormRightTap($event, index)"
+                    />
+                </HcDragNode>
+            </HcDragModal>
+        </template>
     </div>
 </template>
 
@@ -52,6 +105,7 @@ import HTableForm from '~src/plugins/HTableForm'
 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 {
     arrIndex, deepClone, getArrValue,
     getObjVal, getObjValue, isNullES, setPosRange,
@@ -216,7 +270,7 @@ const changeFormData = ref({
 })
 const changeFormDatas = (pKeyId, type) => {
     const changeData = changeFormData.value[type]
-    const index = arrIndex(changeData, 'pKeyId', pKeyId)
+    const index = arrIndex(changeData, 'linkId', pKeyId)
     if (index !== -1) {
         return changeData[index]
     } else {
@@ -224,19 +278,7 @@ const changeFormDatas = (pKeyId, type) => {
     }
 }
 
-//设置变动的数据
-const setChangeFormDatas = async (pKeyId, type) => {
-    const refs = await getFormRef(pKeyId)
-    const formData = refs?.getFormData()
-    const changeData = changeFormData.value[type]
-    const index = arrIndex(changeData, 'pKeyId', pKeyId)
-    if (index !== -1) {
-        changeData[index] = formData
-    } else {
-        changeData.push(formData)
-    }
-    changeFormData.value[type] = changeData
-}
+
 
 //展开事件
 
@@ -308,237 +350,32 @@ const tableFormRightTap = ({ event, KeyName, startPos, endPos, pkeyId }, index)
     tableFormItemNode.value = { KeyName, index, startPos, endPos, pkeyId }
     contextMenuRef.value?.showMenu(event, false) //展开菜单
 }
-
-//鼠标右键菜单被点击
-const handleMenuSelect = ({ key }) => {
-    if (key === 'design') {
-        setInitDesignForm()
-        designModalLoading.value = false
-        designModal.value = true
-    } else if (key === 'special') {
-        specialModalShow()
-    } else if (key === 'test') {
-        testModalLoading.value = false
-        testModal.value = true
-    } else if (key === 'file') {
-        fileModalLoading.value = false
-        fileModal.value = true
-    } else if (key === 'formula') {
-        formulaModalLoading.value = false
-        formulaModal.value = true
-    }
-}
-
-//插入设计值
-const designModal = ref(false)
-const formDesignRef = ref(null)
-const formDesignModel = ref()
-
-//初始设计值/频率表单
-const setInitDesignForm = () => {
-    formDesignModel.value = {
-        type: 1, design: '', size: '',
-        dev: '', key: '', capacity: '',
-        pass: '', pkId: '',
-    }
-}
-
-//设计值频率计算
-const designModalLoading = ref(false)
-const designModalSave = async () => {
-    const { pkeyId, KeyName } = tableFormItemNode.value
-    if (pkeyId) {
-        designModalLoading.value = true
-        //const {design, size} = formDesignModel.value
-        const { error, code, data } = await wbsApi.queryFormulaRange({
-            ...formDesignModel.value,
-            // dev: (!design && !size) ? '±5': '',
-            key: KeyName,
-            pkId: pkeyId,
-        })
-        //处理数据
-        const res = getObjVal(data)
-        if (!error && code === 200 && res) {
-            try {
-                const refs = await getFormRef(pkeyId)
-                const itemFormData = refs?.getFormData()
-                Object.keys(data).forEach(key => {
-                    itemFormData[key] = data[key]
-                })
-                refs?.setFormData(itemFormData)
-            } catch {
-            }
-            designModalLoading.value = false
-            designModal.value = false
-        } else {
-            designModalLoading.value = false
-        }
+//设置变动的数据
+const setChangeFormDatas = async (pkeyId, type) => {
+    const refs = await getFormRef(pkeyId)
+    const formData = refs?.getFormData()
+    const changeData = changeFormData.value[type]
+    const index = arrIndex(changeData, 'linkId', pkeyId)
+    if (index !== -1) {
+        changeData[index] = formData
     } else {
-        window?.$message?.warning('pkeyId为空')
-    }
-}
-//关闭设计值/频率弹窗
-const closeDesignModal = () => {
-    designModal.value = false
-    setInitDesignForm()
-}
-
-
-//插入特殊字符
-const specialModal = ref(false)
-const specialModalLoading = ref(false)
-const specialModalShow = () => {
-    specialFormValue.value = ''
-    specialModalLoading.value = false
-    specialModal.value = true
-}
-
-//监听特殊符号输入框的内容
-const specialFormValue = ref('')
-const specialDiaolgChange = (val) => {
-    specialFormValue.value = val
-}
-
-//确认插入
-const specialRef = ref(null)
-const specialNodeClick = async () => {
-    specialModalLoading.value = true
-    const itemNode = tableFormItemNode.value
-    const { KeyName, pkeyId } = itemNode
-    try {
-        const refs = await getFormRef(pkeyId)
-        const itemFormData = refs?.getFormData()
-        const { code, val, posVal } = await specialRef.value?.getSpecialNode(itemNode, itemFormData[KeyName])
-        if (code === 200 && val) {
-            itemFormData[KeyName] = val
-            refs?.setFormData(itemFormData)
-            specialModalLoading.value = false
-            specialModal.value = false
-            await nextTick(() => {
-                setPosRange(KeyName, posVal)
-            })
-        } else {
-            specialModalLoading.value = false
-        }
-    } catch (e) {
-        specialModalLoading.value = false
-    }
-}
-
-//关闭插入特殊字符
-const specialModalClose = () => {
-    specialModalLoading.value = false
-    specialModal.value = false
-}
-
-//关联试验数据
-const testModal = ref(false)
-const testModalLoading = ref(false)
-
-//关联试验数据被点击
-const itinsertTableId = ref('')
-const itinsertTreeId = ref('')
-const testTableRowName = ({ row, treeId }) => {
-    itinsertTableId.value = row.id
-    itinsertTreeId.value = treeId
-    insertDataLoading.value = false
-    insertDataShow.value = true
-}
-
-//关闭弹窗
-const testModalClose = () => {
-    testModal.value = false
-    testModalLoading.value = false
-}
-
-//选择要插入的实验数据
-const insertDataShow = ref(false)
-const insertDataLoading = ref(false)
-
-//确定关联试验数据数据
-const insertDataRef = ref(null)
-const submitinsertData = async () => {
-    insertDataLoading.value = true
-    const itemNode = tableFormItemNode.value
-    const { KeyName, pkeyId } = itemNode
-    try {
-        const refs = await getFormRef(pkeyId)
-        const itemFormData = refs?.getFormData()
-        const { code, val, posVal } = await insertDataRef.value?.submitinsertData(itemNode, itemFormData[KeyName])
-        if (code === 200 && val) {
-            itemFormData[KeyName] = val
-            refs?.setFormData(itemFormData)
-            insertDataLoading.value = false
-            insertDataShow.value = false
-            testModal.value = false
-            await nextTick(() => {
-                setPosRange(KeyName, posVal)
-            })
-        }
-    } catch {
-        insertDataLoading.value = false
+        changeData.push(formData)
     }
+    changeFormData.value[type] = changeData
 }
-
-//取消关联数据
-const cancelinsertData = async () => {
-    insertDataShow.value = false
-    insertDataLoading.value = false
-}
-
-
-//关联试验文件
-const fileModal = ref(false)
-const testFileRefs = ref(null)
-//确认关联文件
-const fileModalLoading = ref(false)
-const savefileModal = async () => {
-    fileModalLoading.value = true
-    await testFileRefs.value?.savefileSubmit()
-    fileModalLoading.value = false
-    fileModal.value = false
-}
-
-//关闭弹窗
-const fileModalClose = () => {
-    fileModal.value = false
-    fileModalLoading.value = false
-}
-
-//公式参数配置
-const formulaModal = ref(false)
-const formulaRefs = ref(null)
-
-//保存
-const formulaModalLoading = ref(false)
-const formulaSaveClick = async () => {
-    formulaModalLoading.value = true
-    await formulaRefs.value?.panelSave()
-    formulaModalLoading.value = false
-    formulaModal.value = false
-}
-
-
-//关闭
-const formulaModalClose = () => {
-    formulaModal.value = false
-    formulaModalLoading.value = false
-}
-
-
 //窗口化
 const DragModalTableForm = ref([])
 const DragModalHeight = ref(600)
 const windowClick = async (item, indexs) => {
     const list = deepClone(DragModalTableForm.value)
-    let index = arrIndex(list, 'pkeyId', item.pkeyId)
+    let index = arrIndex(list, 'pkeyId', item.id)
     if (!item.isWindow) {
-        const formSize = getTableFormSize(item?.pkeyId)
+        const formSize = getTableFormSize(item?.id)
         const newTableForm = {
             ...setInitDragModalTableForm(item, indexs),
             ...formSize,
         }
-        await setChangeFormDatas(item?.pkeyId, 'window')
+        await setChangeFormDatas(item?.id, 'window')
         item.isWindow = true
         //处理表单的ref
         await setSpliceItemRefs(item)
@@ -553,7 +390,7 @@ const windowClick = async (item, indexs) => {
         DragModalTableForm.value = list
         ActiveKey.value = ''
     } else {
-        await setChangeFormDatas(item?.pkeyId, 'collapse')
+        await setChangeFormDatas(item?.id, 'collapse')
         //处理表单的ref
         await setSpliceItemRefs(item)
         if (index !== -1) {
@@ -581,14 +418,15 @@ const setInitDragModalTableForm = (item, index) => {
         isShow: true,
         index: index,
         item: item,
+        id:item.id,
     }
 }
 
 //关闭窗口
-const TableFormClose = async ({ pkeyId, index }, indexs) => {
+const TableFormClose = async ({ id, index }, indexs) => {
     const list = deepClone(DragModalTableForm.value)
     //取表单的数据
-    await setChangeFormDatas(pkeyId, 'collapse')
+    await setChangeFormDatas(id, 'collapse')
     //关闭窗口
     list.splice(indexs, 1)
     DragModalTableForm.value = list
@@ -602,8 +440,9 @@ const dragNodeMoreMenu = [
 
 //还原窗口
 const closeIconTap = async (event, item, indexs) => {
-    const { index, pkeyId } = item
-    let KeyId = `item-${index}-${pkeyId}`
+    console.log(item, 'item')
+    const { index, id } = item
+    let KeyId = `item-${index}-${id}`
     await TableFormClose(item, indexs)
     ActiveKey.value = KeyId
 }
@@ -618,7 +457,7 @@ const dragNodeMoreMenuTap = ({ key }, items) => {
             window.$message.warning('此表单暂无数据和文件')
         }
     } else if (key === 'preview') {
-        if (item['isBussShow'] === 2 || item['isTabPdf'] === 1 || item['pdfUrl'] === '') {
+        if (item['isBussShow'] === 2 || item['isTabPdf'] === 1 || item['pdfUrl'] === '' || item['pdfUrl'] === null) {
             window.$message.warning('此表单暂无可预览文件')
         } else {
             previewClick(item, items)
@@ -626,72 +465,57 @@ const dragNodeMoreMenuTap = ({ key }, items) => {
     }
 }
 
-//删除本表
-const tableFormDelLoading = ref(false)
-const delClick = async ({ pkeyId }) => {
-    if (pkeyId) {
-        if (isStatus.value !== 3) {
-            tableFormDelLoading.value = true
-            const { error, code } = await wbsApi.removeBussTabInfo({
-                pkeyid: pkeyId,
-                classify: classifys.value,
-            })
-            tableFormDelLoading.value = false
-            if (!error && code === 200) {
-                window?.$message?.success('操作成功')
-                //判断是否存在窗口,如果存在,就删除窗口
-                delWindowRefs(pkeyId)
-                renewData()
-            }
-        } else {
-            window?.$message?.warning('已上报的资料,不允许删除')
-        }
-    } else {
-        window?.$message?.warning('pkeyId为空')
-    }
-}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 //复制本表相关
-const showcopyModal = ref(false)
-const copyRefs = ref(null)
-const copyModalClose = ()=>{
-    // copyModal.value=false
-}
-const CopyModalType = ref('1')
-
-const copySaveClick = async ()=>{
-    //本节点复制
-   if (CopyModalType.value === '2') {
-        const { pkeyId, isTableRender, isTableForm } = copyItems.value
-        if (pkeyId) {
-            if (isStatus.value !== 3) {
-                if (!isTableRender) {
-                    await copeBussTab(pkeyId)
-                } else if (!isTableForm) {
-                    window?.$message?.warning('暂无表单数据')
-                } else if (isTableRender) {
-                    copyClickLoading.value = true
-                    const isSave = await saveExcelBussData(items, null, false)
-                    if (isSave) {
-                        await copeBussTab(pkeyId)
-                    } else {
-                        copyClickLoading.value = false
-                        window?.$message?.warning('复制本表操作失败')
-                    }
-                } else {
-                    window?.$message?.warning(`数据异常了, isRenderTableForm: ${isTableRender}, isTableForm: ${isTableForm}, pkeyIds:${pkeyId}`)
-                }
-            } else {
-                window?.$message?.warning('已上报的资料,不允许复制')
-            }
-        } else {
-            window?.$message?.warning('pkeyId为空')
-    }
-   } else {
-    window?.$message?.warning('暂无相关接口')
-   }
-}
+
+
+
 //复制本表
-const copyClickModalLoading = ref(false)
+
 const copyClickLoading = ref(false)
 const copyClick = async (items) => {
     const { id, isTableRender, isTableForm } = items
@@ -717,16 +541,9 @@ const copyClick = async (items) => {
             window?.$message?.warning('已上报的资料,不允许复制')
         }
     } else {
-        window?.$message?.warning('pkeyId为空')
+        window?.$message?.warning('')
     }
  }
-const copyItems = ref([])
-//跨节点复制弹窗
-// const copyClick =  (items) => {
-//     showcopyModal.value=true
-//     copyItems.value=items
-
-// }
 
 //复制表的请求
 const copeBussTab = async (pkeyId) => {
@@ -753,62 +570,13 @@ const previewClick = async (item, dragItem = null) => {
 //上传变量
 const uploadModal = ref(false)
 const fileListData = ref([])
-const uploadData = ref({})
-//上传附件
-const uploadClick = (items, index) => {
-    const { pkeyId, isTableForm, isTableRender } = items
-    const keyName = `item-${index}-${pkeyId}`
-    if (pkeyId) {
-        if (isStatus.value !== 3 && isTableForm) {
-            uploadModal.value = true
-            uploadData.value = {
-                projectId: projectId.value,
-                contractId: contract_id.value,
-                classify: classifys.value,
-                pkeyId: pkeyId,
-                nodeId: treeId.value,
-            }
-            //获取文件列表
-            getBussFileList(pkeyId)
-        } else if (!isTableRender) {
-            CollapseChange(keyName)
-            window?.$message?.warning('请再次点击上传')
-        } else if (!isTableForm) {
-            window?.$message?.warning('暂无表单数据')
-        } else {
-            window?.$message?.warning('已上报的资料,不允许上传')
-        }
-    } else {
-        window?.$message?.warning('pkeyId为空')
-    }
-}
 
-//获取文件列表
-const getBussFileList = async (pkeyId) => {
-    const { error, code, data } = await wbsApi.getBussFileList({
-        pkeyid: pkeyId,
-    })
-    if (!error && code === 200) {
-        fileListData.value = getArrValue(data)
-    } else {
-        fileListData.value = []
-    }
-}
 
-//上传文件
-const uploadChange = async ({ type }) => {
-    if (type === 'success') {
-        uploadModal.value = false
-        renewData()
-    } else if (type === 'del') {
-        renewData()
-    }
-}
 
-//关闭上传附件窗口
-const uploadModalClose = () => {
-    uploadModal.value = false
-}
+
+
+
+
 
 //单个保存
 const tableFormSaveLoading = ref(false)

+ 2 - 0
src/views/agree/special/form.vue

@@ -12,6 +12,7 @@
                 :status="0"
                 :area-id="areaId"
                 :agreement-id="agreementId"
+                :draw-type="isDrawType"
                 @renew="updateGetTablesData(agreementId)"
             />
             <HcStatus v-else text="暂无表单" />
@@ -62,6 +63,7 @@ const useRoutes = useRoute()
 const dataType = ref(useRoutes?.query?.type ?? 'view')
 const agreementId = ref(useRoutes?.query?.id ?? '')
 const areaId = ref(useRoutes?.query?.areaId ?? '')
+const isDrawType = ref(true)
 
 //缓存页面被激活时
 onActivated(() => {