|
@@ -12,6 +12,12 @@
|
|
|
<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)">
|
|
|
+ 保存
|
|
|
+ </el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -198,8 +204,7 @@ watch(() => [
|
|
|
onMounted(() => {
|
|
|
setFormDataNum(props.datas)
|
|
|
setTableFormMenu(useAppState.projectInfo)
|
|
|
- const { offsetHeight } = document.body
|
|
|
- DragModalHeight.value = offsetHeight - 200
|
|
|
+
|
|
|
setMountOnEventKey()
|
|
|
})
|
|
|
|
|
@@ -303,322 +308,48 @@ const tableFormRightTap = ({ event, KeyName, startPos, endPos, pkeyId }, index)
|
|
|
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
|
|
|
- }
|
|
|
- } 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
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
-//取消关联数据
|
|
|
-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)
|
|
|
- if (!item.isWindow) {
|
|
|
- const formSize = getTableFormSize(item?.pkeyId)
|
|
|
- const newTableForm = {
|
|
|
- ...setInitDragModalTableForm(item, indexs),
|
|
|
- ...formSize,
|
|
|
- }
|
|
|
- await setChangeFormDatas(item?.pkeyId, '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
|
|
|
- ActiveKey.value = ''
|
|
|
- } else {
|
|
|
- await setChangeFormDatas(item?.pkeyId, '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,
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
-//关闭窗口
|
|
|
-const TableFormClose = async ({ pkeyId, index }, indexs) => {
|
|
|
- const list = deepClone(DragModalTableForm.value)
|
|
|
- //取表单的数据
|
|
|
- await setChangeFormDatas(pkeyId, '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) => {
|
|
|
- const { index, pkeyId } = item
|
|
|
- let KeyId = `item-${index}-${pkeyId}`
|
|
|
- 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'] === '') {
|
|
|
- window.$message.warning('此表单暂无可预览文件')
|
|
|
- } else {
|
|
|
- previewClick(item, items)
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
//删除本表
|
|
|
const tableFormDelLoading = ref(false)
|
|
@@ -645,47 +376,11 @@ const delClick = async ({ 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
|
|
@@ -714,13 +409,6 @@ const copyClick = async (items) => {
|
|
|
window?.$message?.warning('pkeyId为空')
|
|
|
}
|
|
|
}
|
|
|
-const copyItems = ref([])
|
|
|
-//跨节点复制弹窗
|
|
|
-// const copyClick = (items) => {
|
|
|
-// showcopyModal.value=true
|
|
|
-// copyItems.value=items
|
|
|
-
|
|
|
-// }
|
|
|
|
|
|
//复制表的请求
|
|
|
const copeBussTab = async (pkeyId) => {
|
|
@@ -747,62 +435,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)
|
|
@@ -848,7 +487,7 @@ const saveExcelBussData = async ({ id }, dragItem = null, showTip = true) => {
|
|
|
//预览PDF
|
|
|
const getBussPdfInfo = async ({ id }, dragItem = null, showTip = true) => {
|
|
|
setDragModalLoading(dragItem, '获取pdf中...', true)
|
|
|
- const { error, code, data } = await landApi.getBussPdfInfo({
|
|
|
+ const { error, code, data } = await landApi.getSingleBussPdfInfo({
|
|
|
id: id,
|
|
|
}, false)
|
|
|
setDragModalLoading(dragItem)
|