123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889 |
- <template>
- <div class="data-fill-list-box">
- <el-collapse v-model="ActiveKey" accordion @change="CollapseChange">
- <template v-for="(item, index) in listDatas" :key="item?.id">
- <el-collapse-item :id="`item-${index}-${item?.id}`" :name="`item-${index}-${item?.id}`">
- <template #title>
- <div class="hc-collapse-item-header">
- <div class="text-lg truncate item-title">
- {{ item.tableName }}
- </div>
- <div class="hc-extra-text-box">
- <el-button :loading="copyClickLoading" plain type="primary" @click.stop="copyClick(item, index)">
- 复制本表
- </el-button>
- <el-button :disabled="!item?.pdfUrl" plain type="primary" @click.stop="previewClick(item)">
- 预览
- </el-button>
- <el-button plain type="primary" :loading="tableFormSaveLoading" @click="tableFormSaveClick(item, null, index)">
- 保存
- </el-button>
- </div>
- </div>
- </template>
-
- <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="item.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>
- <script setup>
- import { nextTick, onActivated, onDeactivated, onMounted, onUnmounted, ref, watch } from 'vue'
- 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 { getStoreValue, setStoreValue } from '~uti/storage'
- import {
- arrIndex, deepClone, getArrValue,
- getObjVal, getObjValue, isNullES, setPosRange,
- } from 'js-fast-way'
- //参数
- const props = defineProps({
- datas: {
- type: Array,
- default: () => ([]),
- },
- classify: {
- type: [String, Number],
- default: '',
- },
- status: {
- type: [String, Number],
- default: '',
- },
- primaryKeyId: {
- type: [String, Number],
- default: '',
- },
- contractId: {
- type: [String, Number],
- default: '',
- },
- drawType: {
- type: Boolean,
- default: false,
- },
- wbsTempId: {
- type: [String, Number],
- default: '',
- },
- tenantId: {
- type: [String, Number],
- default: '',
- },
- wbsType: {
- type: [String, Number],
- default: '',
- },
- areaId:{
- type: String,
- default: '',
- }, //当前树节点
- agreementId:{
- type: [String, Number],
- default: '',
- },
- })
- //事件
- const emit = defineEmits(['renew', 'offsetTop'])
- //初始变量
- const useAppState = useAppStore()
- //全局变量
- const projectId = ref(useAppState.projectId)
- const contract_id = ref(props.contractId)
- const treeId = ref(props.primaryKeyId)
- const classifys = ref(props.classify)
- const wbsTemp_id = ref(props.wbsTempId)
- const tenant_id = ref(props.tenantId)
- const wbs_type = ref(props.wbsType)
- const isStatus = ref(parseInt(props.status))
- const listDatas = ref([])
- const draw_type = ref(props.drawType)
- const areaId = ref(props.areaId)
- const agreementId = ref(props.agreementId)
- //表单变量
- const formDataList = ref([])
- const formKeyIds = ref('')
- const formparentId = ref('')
- //处理ref
- const itemRefs = ref([])
- const setItemRefs = (el, { id }) => {
- if (el) {
- let index = arrIndex(itemRefs.value, 'pKeyId', id)
- if (index !== -1) {
- itemRefs.value[index].ref = el
- } else {
- itemRefs.value.push({
- pKeyId: id,
- ref: el,
- })
- }
- }
- }
- //处理表单的ref
- const setSpliceItemRefs = async ({ pKeyId }) => {
- const refs = itemRefs.value
- let index = arrIndex(refs, 'pKeyId', pKeyId)
- if (index !== -1) {
- refs.splice(index, 1)
- itemRefs.value = refs
- }
- }
- const closeIconArr = [
- { key: 'reduction', icon: 'picture-in-picture-2', name: '还原到面板内,并自动展开面板' },
- ]
- //组件参数变量
- // const apis = ref({
- // dataInfo: wbsApi.getBussDataInfo,
- // bussCols: wbsApi.getHtmlBussCols,
- // excelHtml: wbsApi.getExcelHtml,
- // })
- //深度监听数据
- watch(() => [
- props.datas,
- ], ([datas]) => {
- console.log(datas, 'datas')
- setFormDataNum(datas)
- }, { deep: true })
- //监听变量值
- watch(() => [
- useAppState.projectId,
- props.contractId,
- props.wbsTempId,
- props.tenantId,
- props.wbsType,
- props.status,
- props.classify,
- props.primaryKeyId,
- props.areaId,
- props.agreementId,
- ], ([pid, cid, temp_id, tid, type, status, class_id, tree_id, area_id, agreement_id]) => {
- projectId.value = pid
- contract_id.value = cid
- wbsTemp_id.value = temp_id
- tenant_id.value = tid
- wbs_type.value = type
- isStatus.value = parseInt(status)
- classifys.value = class_id
- treeId.value = tree_id
- areaId.value = area_id
- agreementId.value = agreement_id
- })
- //渲染完成
- onMounted(() => {
- setFormDataNum(props.datas)
- setTableFormMenu(useAppState.projectInfo)
- const { offsetHeight } = document.body
- DragModalHeight.value = offsetHeight - 200
- setMountOnEventKey()
- })
- //处理变动的数据
- const changeFormData = ref({
- window: [],
- collapse: [],
- })
- const changeFormDatas = (pKeyId, type) => {
- const changeData = changeFormData.value[type]
- const index = arrIndex(changeData, 'linkId', pKeyId)
- if (index !== -1) {
- return changeData[index]
- } else {
- return {}
- }
- }
- //展开事件
- const ActiveKey = ref('')
- const CollapseChange = (name) => {
- ActiveKey.value = name
- let index = getCollapseItemIndex(name)
-
- if (index > -1) {
- getOffsetTop(name)
- const item = listDatas.value[index]
- formKeyIds.value = setToString(item.id)
- formparentId.value = setToString(item.parentId)
-
- nextTick(() => {
- if (!item.isTableRender) {
- item.isTableRender = true
- }
- })
- } else {
- getOffsetTop()
- formKeyIds.value = ''
- formparentId.value = ''
- }
- }
- const setCollapseKey = (key) => {
- CollapseChange(key)
- }
- //初始设置
- const setFormDataNum = (datas) => {
- itemRefs.value = []
- ActiveKey.value = ''
- let newArr = []
- for (let i = 0; i < datas.length; i++) {
- newArr.push({ isCollapseLoad: false })
- }
- formDataList.value = newArr
- listDatas.value = deepClone(datas)
- }
- //渲染完成
- const tableFormRender = (form, item, index) => {
- console.log(form)
- formDataList.value[index] = form
- formDataList.value[index].isCollapseLoad = form.isRenderForm
- item.isTableForm = form.isRenderForm
- }
- //菜单数据
- const contextMenuRef = ref(null)
- const tableFormMenu = ref([])
- const tableFormItemNode = ref({}) //临时信息
- //设置菜单权限数据
- const setTableFormMenu = (info) => {
- let newArr = [], infos = getObjValue(info)
- const isOpen = infos['isOpenRandomNumber'] ?? 0
- if (isOpen === 1 && isStatus.value !== 3) {
- newArr.push({ label: '插入设计值/频率', key: 'design' })
- }
- newArr.push({ label: '插入特殊字符', key: 'special' })
- newArr.push({ label: '关联试验数据', key: 'test' })
- newArr.push({ label: '关联试验文件', key: 'file' })
- newArr.push({ label: '公式参数', key: 'formula' })
- tableFormMenu.value = newArr
- }
- //鼠标右键事件
- const tableFormRightTap = ({ event, KeyName, startPos, endPos, pkeyId }, index) => {
- //存储临时信息
- tableFormItemNode.value = { KeyName, index, startPos, endPos, pkeyId }
- contextMenuRef.value?.showMenu(event, 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 {
- changeData.push(formData)
- }
- changeFormData.value[type] = changeData
- }
- //窗口化
- const DragModalTableForm = ref([])
- const DragModalHeight = ref(600)
- const windowClick = async (item, indexs) => {
- setStoreValue('activeKey', ActiveKey.value)
- const list = deepClone(DragModalTableForm.value)
- let index = arrIndex(list, 'pkeyId', item.id)
- if (!item.isWindow) {
- const formSize = getTableFormSize(item?.id)
- const newTableForm = {
- ...setInitDragModalTableForm(item, indexs),
- ...formSize,
- }
- await setChangeFormDatas(item?.id, 'window')
- item.isWindow = true
- //处理表单的ref
- await setSpliceItemRefs(item)
- //弹窗表单的排序
- if (index === -1) {
- list.push(newTableForm)
- } else if (index !== list.length - 1) {
- //检查是否在最上层,不在则置顶,可以解决多次点击时,频繁更改全局状态的问题
- list.splice(index, 1)
- list.push(newTableForm)
- }
- DragModalTableForm.value = list
-
- } else {
- await setChangeFormDatas(item?.id, 'collapse')
- //处理表单的ref
- await setSpliceItemRefs(item)
- if (index !== -1) {
- list.splice(index, 1)
- DragModalTableForm.value = list
- }
- item.isWindow = false
- }
- }
- //初始拖动表单的内容
- const setInitDragModalTableForm = (item, index) => {
- return {
- projectId: projectId.value,
- contractId: contract_id.value,
- wbsTempId: wbsTemp_id.value,
- tenantId: tenant_id.value,
- wbsType: wbs_type.value,
- classify: classifys.value,
- treeId: treeId.value,
- pkeyId: item.pkeyId,
- height: '100%',
- width: '100%',
- title: item.nodeName,
- isShow: true,
- index: index,
- item: item,
- id:item.id,
- tableId:item.tableId,
- }
- }
- //关闭窗口
- const TableFormClose = async ({ id, index }, indexs) => {
- const list = deepClone(DragModalTableForm.value)
- //取表单的数据
- await setChangeFormDatas(id, 'collapse')
- //关闭窗口
- list.splice(indexs, 1)
- DragModalTableForm.value = list
- listDatas.value[index].isWindow = false
- }
- const dragNodeMoreMenu = [
- { key: 'save', icon: 'save-2', name: '保存' },
- { key: 'preview', icon: 'eye', name: '预览' },
- ]
- //还原窗口
- const closeIconTap = async (event, item, indexs) => {
- console.log(item, 'item')
- const { index, id } = item
- let KeyId = `item-${index}-${id}`
- await TableFormClose(item, indexs)
- ActiveKey.value = KeyId
- }
- //菜单被点击
- const dragNodeMoreMenuTap = ({ key }, items) => {
- const { item } = items
- if (key === 'save') {
- if (item?.isTableForm) {
- tableFormSaveClick(item, items)
- } else {
- window.$message.warning('此表单暂无数据和文件')
- }
- } else if (key === 'preview') {
- if (item['isBussShow'] === 2 || item['isTabPdf'] === 1 || item['pdfUrl'] === '' || item['pdfUrl'] === null) {
- window.$message.warning('此表单暂无可预览文件')
- } else {
- previewClick(item, items)
- }
- }
- }
- //复制本表相关
- //复制本表
- const copyClickLoading = ref(false)
- const copyClick = async (items) => {
- items.isTableRender = true
- const { id, isTableRender, isTableForm } = items
- if (id) {
- if (isStatus.value !== 3) {
- if (!isTableRender) {
- await copeBussTab(id)
- } else if (!isTableForm) {
- window?.$message?.warning('暂无表单数据')
- } else if (isTableRender) {
- copyClickLoading.value = true
- const isSave = await saveExcelBussData(items, null, false)
- if (isSave) {
- await copeBussTab(id, isSave)
- } else {
- copyClickLoading.value = false
- window?.$message?.warning('复制本表操作失败')
- }
- } else {
- window?.$message?.warning(`数据异常了, isRenderTableForm: ${isTableRender}, isTableForm: ${isTableForm}, pkeyIds:${id}`)
- }
- } else {
- window?.$message?.warning('已上报的资料,不允许复制')
- }
- } else {
- window?.$message?.warning('')
- }
- }
- //复制表的请求
- const copeBussTab = async (pkeyId, aid) => {
- copyClickLoading.value = true
- const { error, code } = await landApi.copeTab({
- id: pkeyId,
- })
- copyClickLoading.value = false
- if (!error && code === 200) {
- window?.$message?.success('操作成功')
- renewData(aid)
- }
- }
- //预览本表
- const tableFormPreviewLoading = ref(false)
- const previewClick = async (item, dragItem = null) => {
- tableFormPreviewLoading.value = true
- await getBussPdfInfo(item, dragItem)
- tableFormPreviewLoading.value = false
- }
- //上传变量
- const uploadModal = ref(false)
- const fileListData = ref([])
- //单个保存
- const tableFormSaveLoading = ref(false)
- 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) {
-
- tableFormSaveLoading.value = false
- agreementId.value = agreementId
- renewData(isSave)
- // await getBussPdfInfo(item, dragItem)
- } else {
- tableFormSaveLoading.value = false
- }
- } else {
- window?.$message?.warning('已上报的资料,不允许保存。')
- }
- }
- //保存表单数据
- const saveExcelBussData = async ({ id }, dragItem = null, showTip = true) => {
- setDragModalLoading(dragItem, '保存中...', true)
- const refs = await getFormRef(id)
- const isRegExp = await refs?.isFormRegExp()
- if (isRegExp) {
- const formData = refs?.getFormData()
- const { error, code, data } = await landApi.saveBussData(formData)
-
- setDragModalLoading(dragItem)
- if (!error && code === 200) {
- if (showTip) {
- window?.$message?.success('保存成功')
- }
- return data
- } else {
- return false
- }
- } else {
- setDragModalLoading(dragItem)
- return false
- }
- }
- //预览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)
- setDragModalLoading(dragItem)
- if (!error && code === 200) {
- if (data) {
- window.open(data, '_blank')
- } else if (showTip) {
- window?.$message?.warning('PDF错误')
- }
- } else {
- if (showTip) {
- window?.$message?.warning(data.msg || '获取PDF失败')
- }
- }
- }
- //通知数据更新
- const renewData = (id) => {
- const activeKey = getStoreValue('activeKey')
- console.log(activeKey, 'activeKey111111')
- emit('renew', id, activeKey)
- ActiveKey.value = ''
-
- }
- //设置表单的加载状态
- const setDragModalLoading = (dragItem, text = '保存中...', show = false) => {
- if (dragItem && show) {
- dragItem.loading = true
- dragItem.loadingText = text
- }
- if (dragItem && !show) {
- dragItem.loading = false
- }
- }
- //获取表单的ref
- const getFormRef = async (pkeyId) => {
- const itemRef = itemRefs.value
- const index = arrIndex(itemRef, 'pKeyId', pkeyId)
- if (index !== -1) {
- return itemRef[index].ref
- }
-
- }
- //删除打开的窗口
- const delWindowRefs = (pkeyId) => {
- //判断是否存在窗口,如果存在,就删除窗口
- const list = DragModalTableForm.value
- const index = arrIndex(list, 'pkeyId', pkeyId)
- if (index !== -1) {
- list.splice(index, 1)
- DragModalTableForm.value = list
- }
- }
- //计算展开高度和滚动位置
- 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)
- } else {
- emit('offsetTop', dom?.offsetTop)
- }
- } else {
- if (dom?.offsetTop >= 424 && key) {
- emit('offsetTop', dom?.offsetTop - 424)
- } else {
- emit('offsetTop', dom?.offsetTop)
- }
- }
- } else {
- emit('offsetTop', 0)
- }
- ActiveKey.value = key
- }
- //获取折叠面板的索引
- const getCollapseItemIndex = (name) => {
- const keys = name.split('-')
- if (keys.length > 0) {
- return keys[1]
- } else {
- return -1
- }
- }
- //获取表单的大小
- const getTableFormSize = (pkeyId) => {
- let formId = `table-form-${pkeyId}`
- try {
- const { clientWidth, clientHeight } = document.getElementById(formId).children[0]
- return {
- width: (clientWidth + 40) + 'px',
- height: (clientHeight + 80) + 'px',
- }
- } catch {
- return {
- width: '100%',
- height: '100%',
- }
- }
- }
- //转字符串
- const setToString = (val) => {
- return val ? val + '' : ''
- }
- //表单被点击
- const presentId = ref('')
- const excelTableFormClick = (key) => {
- presentId.value = key
- }
- //缓存被激活时
- onActivated(() => {
- setMountOnEventKey()
- })
- //缓存时被移除
- onDeactivated(() => {
- HTableForm.unmountEventKey()
- })
- //页面被卸载
- onUnmounted(() => {
- HTableForm.unmountEventKey()
- })
- const setMountOnEventKey = () => {
- HTableForm.setOnEventKey({
- //按下ctrl键 或 control 键
- onCtrlDown: async () => {
- //window.$HcLog('全局按键', '按下ctrl键 或 control 键')
- const refs = await setOnFuncFormRef()
- refs?.setIsCtrlKey(true)
- },
- //按下复制快捷键
- onCtrlDownC: async (event) => {
- //window.$HcLog('全局按键', '按下复制快捷键')
- const refs = await setOnFuncFormRef()
- refs?.setCopyKeyList(event)
- },
- //按下粘贴快捷键
- onCtrlDownV: async (event) => {
- //window.$HcLog('全局按键', '按下粘贴快捷键')
- const refs = await setOnFuncFormRef()
- await refs?.setPasteKeyList(event)
- },
- //放开ctrl键 或 control 键
- onCtrlUp: async () => {
- //window.$HcLog('全局按键', '放开ctrl键 或 control 键')
- const refs = await setOnFuncFormRef()
- refs?.setIsCtrlKey(false)
- },
- })
- }
- //获取表单的ref
- const setOnFuncFormRef = async () => {
- const pkeyId = presentId.value
- if (!isNullES(pkeyId)) {
- return await getFormRef(pkeyId)
- } else {
- return
- }
- }
- //获取已渲染的表单
- const getFilterFormData = async () => {
- const formArr = formDataList.value
- return formArr.filter((item) => {
- return (item.linkId ?? '') !== '' && item.isCollapseLoad
- })
- }
- //获取表单数据
- const getFormData = async () => {
- const formArr = await getFilterFormData()
- //获取表单数据
- let newArr = []
- for (let i = 0; i < formArr.length; i++) {
- const pkeyId = formArr[i].linkId
- const refs = await getFormRef(pkeyId)
- const form = refs?.getFormData()
- newArr.push({ ...form })
- }
- console.log('表单数据1111', newArr)
- return newArr
- }
- //获取表单效验数据
- const getFormRegExpJson = async () => {
- const formArr = await getFilterFormData()
- const list = listDatas.value
- //获取表单数据
- let formRegExpJson = {}
- for (let i = 0; i < formArr.length; i++) {
- const pKeyId = formArr[i].linkId
- const refs = await getFormRef(pKeyId)
- const regExp = refs?.getRegExpJson()
- const nodeName = refs?.getNodeName()
- if (getObjVal(regExp)) {
- const index = arrIndex(list, 'pKeyId', pKeyId)
- formRegExpJson[pKeyId] = {
- ...regExp,
- itemId: `item-${index}-${pKeyId}`,
- nodeName: nodeName,
- }
- }
- }
- return formRegExpJson
- }
- //获取当前展开项
- const getActiveKey = () => {
- return ActiveKey.value
- }
- //设置当前展开项
- const setActiveKey = (key) => {
- return ActiveKey.value = key
- }
- // 暴露出去
- defineExpose({
- getFormData,
- getFormRegExpJson,
- getActiveKey,
- setActiveKey,
- setCollapseKey,
- })
- </script>
- <style lang="scss" scoped>
- @import "../../components/collapse-form.scoped.scss";
- </style>
- <style lang="scss">
- @import "../../components/collapse-form.scss";
- </style>
|