|
@@ -5,17 +5,17 @@
|
|
<hc-card scrollbar>
|
|
<hc-card scrollbar>
|
|
<template #header>
|
|
<template #header>
|
|
<div class="w-full">
|
|
<div class="w-full">
|
|
- <el-select v-model="formModel.name" filterable block placeholder="请选择清表模板">
|
|
|
|
|
|
+ <el-select v-model="formModelName" filterable block placeholder="请选择清表模板">
|
|
<el-option v-for="item in excelData" :key="item.id" :label="item.wbsName" :value="item.id" />
|
|
<el-option v-for="item in excelData" :key="item.id" :label="item.wbsName" :value="item.id" />
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<template #search>
|
|
<template #search>
|
|
- <div v-if="formModel.name" class="w-full">
|
|
|
|
|
|
+ <div v-if="formModelName" class="w-full">
|
|
<hc-search-input v-model="filterText" placeholder="输入关键字搜索" @search="treeFilterClick" />
|
|
<hc-search-input v-model="filterText" placeholder="输入关键字搜索" @search="treeFilterClick" />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
- <template v-if="formModel.name">
|
|
|
|
|
|
+ <template v-if="formModelName">
|
|
<template v-if="isTreeMode === 1">
|
|
<template v-if="isTreeMode === 1">
|
|
<hc-lazy-tree
|
|
<hc-lazy-tree
|
|
v-if="isShow" ref="treeRef1" :h-props="treeProps" tree-key="id" :show-checkbox="tabsKey === '2'" check-strictly
|
|
v-if="isShow" ref="treeRef1" :h-props="treeProps" tree-key="id" :show-checkbox="tabsKey === '2'" check-strictly
|
|
@@ -49,7 +49,23 @@
|
|
</template>
|
|
</template>
|
|
</hc-table>
|
|
</hc-table>
|
|
</template>
|
|
</template>
|
|
- 内容区域
|
|
|
|
|
|
+ <div v-if="tabsKey === '2'">
|
|
|
|
+ <el-form ref="formRef" :model="formModel" :rules="formRules" label-position="top" label-width="auto" size="large">
|
|
|
|
+ <el-form-item label="元素表名:" prop="nodeName">
|
|
|
|
+ <el-input v-model="formModel.nodeName" type="textarea" placeholder="请输入元素表名" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="清表类型:" prop="tableType">
|
|
|
|
+ <el-select v-model="formModel.tableType" filterable block placeholder="请选择清表类型">
|
|
|
|
+ <el-option v-for="item in excelTypeData" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="所属方:" prop="tableOwner">
|
|
|
|
+ <el-select v-model="formModel.tableOwner" filterable block placeholder="请选择所属方">
|
|
|
|
+ <el-option v-for="item in ownerTypeList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </div>
|
|
</hc-tab-card>
|
|
</hc-tab-card>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -104,6 +120,7 @@ watch(isShow, (val) => {
|
|
|
|
|
|
//获取数据详情
|
|
//获取数据详情
|
|
const tableData = ref([])
|
|
const tableData = ref([])
|
|
|
|
+const formModelName = ref('')
|
|
const getInfoData = () => {
|
|
const getInfoData = () => {
|
|
getWbsTypeList()
|
|
getWbsTypeList()
|
|
//处理元素字段信息
|
|
//处理元素字段信息
|
|
@@ -159,7 +176,7 @@ const treeLoadNode = async ({ item, level }, resolve) => {
|
|
const parentId = level === 0 ? 0 : item.id
|
|
const parentId = level === 0 ? 0 : item.id
|
|
const { data } = await mainApi.getLazyTree({
|
|
const { data } = await mainApi.getLazyTree({
|
|
parentId: parentId,
|
|
parentId: parentId,
|
|
- wbsId: formModel.value.name,
|
|
|
|
|
|
+ wbsId: formModelName.value,
|
|
wbsType: '1',
|
|
wbsType: '1',
|
|
})
|
|
})
|
|
const res = getArrValue(data)
|
|
const res = getArrValue(data)
|
|
@@ -175,7 +192,7 @@ const getTreeAllData = async () => {
|
|
const { data } = await mainApi.getAllTree({
|
|
const { data } = await mainApi.getAllTree({
|
|
tenantId: '000000',
|
|
tenantId: '000000',
|
|
type: 1,
|
|
type: 1,
|
|
- wbsId: formModel.value.name,
|
|
|
|
|
|
+ wbsId: formModelName.value,
|
|
})
|
|
})
|
|
treeData.value = getArrValue(data)
|
|
treeData.value = getArrValue(data)
|
|
}
|
|
}
|
|
@@ -234,29 +251,102 @@ const tabsData = ref([
|
|
{ key: '1', name: '关联元素表' },
|
|
{ key: '1', name: '关联元素表' },
|
|
{ key: '2', name: '新增元素表' },
|
|
{ key: '2', name: '新增元素表' },
|
|
])
|
|
])
|
|
-const tabsChange = ({ key }) => {
|
|
|
|
|
|
+const tabsChange = async ({ key }) => {
|
|
tabsKey.value = key
|
|
tabsKey.value = key
|
|
|
|
+ const form = getObjValue(dataInfo.value)
|
|
|
|
+ const tree = getObjValue(nodeInfo.value)
|
|
|
|
+ //默认表单数据
|
|
|
|
+ formModel.value = {
|
|
|
|
+ wbsId: formModelName.value,
|
|
|
|
+ parentId: tree.id,
|
|
|
|
+ nodeName: form.name,
|
|
|
|
+ excelTabId: form.id,
|
|
|
|
+ elementList: tableData.value,
|
|
|
|
+ }
|
|
|
|
+ //判断当前选项卡
|
|
if (key === '1') {
|
|
if (key === '1') {
|
|
- getNodeTable(nodeInfo.value.id)
|
|
|
|
|
|
+ formModel.value.submitStatus = 1
|
|
|
|
+ getNodeTable(nodeInfo.value.id).then()
|
|
} else if (key === '2') {
|
|
} else if (key === '2') {
|
|
-
|
|
|
|
|
|
+ //默认表单数据
|
|
|
|
+ formModel.value.submitStatus = 2
|
|
|
|
+ //获取下拉数据
|
|
|
|
+ excelTypeData.value = await getDictionaryData('table_type')
|
|
|
|
+ ownerTypeList.value = await getDictionaryData('owner_type')
|
|
|
|
+ //设置默认类型
|
|
|
|
+ if (form.tabType > 0 && form.tabType < 100) {
|
|
|
|
+ formModel.value.tableType = form.tabType
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-//表单
|
|
|
|
|
|
+const excelTypeData = ref([])
|
|
|
|
+const ownerTypeList = ref([])
|
|
|
|
+
|
|
|
|
+//基础表单
|
|
|
|
+const formRef = ref(null)
|
|
const formModel = ref({})
|
|
const formModel = ref({})
|
|
|
|
+const formRules = {
|
|
|
|
+ nodeName: {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ message: '请输入元素表名',
|
|
|
|
+ },
|
|
|
|
+ tableType: {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ message: '请选择清表类型',
|
|
|
|
+ },
|
|
|
|
+ tableOwner: {
|
|
|
|
+ required: true,
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ message: '请选择所属方',
|
|
|
|
+ },
|
|
|
|
+}
|
|
|
|
|
|
//提交
|
|
//提交
|
|
const submitLoading = ref(false)
|
|
const submitLoading = ref(false)
|
|
const dialogSubmit = async () => {
|
|
const dialogSubmit = async () => {
|
|
- /*const isForm = await formValidate(formRef.value)
|
|
|
|
|
|
+ const isForm = await formValidate(formRef.value)
|
|
if (!isForm) return false
|
|
if (!isForm) return false
|
|
- submitLoading.value = true
|
|
|
|
- const { isRes } = await mainApi.submitExcelElement(formModel.value)
|
|
|
|
- submitLoading.value = false
|
|
|
|
- if (!isRes) return*/
|
|
|
|
- window.$message.success('操作成功')
|
|
|
|
- emit('finish')
|
|
|
|
|
|
+ if (tabsKey.value === '1') {
|
|
|
|
+ submitLoading.value = true
|
|
|
|
+ const { isRes } = await mainApi.submitExcelElement(formModel.value)
|
|
|
|
+ submitLoading.value = false
|
|
|
|
+ if (!isRes) return
|
|
|
|
+ window.$message.success('操作成功')
|
|
|
|
+ emit('finish')
|
|
|
|
+ } else {
|
|
|
|
+ submitLoading.value = true
|
|
|
|
+ let nodeIds1, nodeIds2
|
|
|
|
+ if (treeRef1.value) {
|
|
|
|
+ nodeIds1 = treeRef1.value?.treeRef?.getCheckedKeys()
|
|
|
|
+ }
|
|
|
|
+ if (treeRef1.value) {
|
|
|
|
+ nodeIds2 = treeRef2.value?.treeRef?.getCheckedKeys()
|
|
|
|
+ }
|
|
|
|
+ const selectNodeIds = uniqueArr(nodeIds1, nodeIds2)
|
|
|
|
+ if (selectNodeIds.length <= 0) {
|
|
|
|
+ window?.$message.warning('至少勾选一个节点')
|
|
|
|
+ submitLoading.value = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ formModel.value.nodeIds = selectNodeIds
|
|
|
|
+ const { isRes } = await mainApi.submitExcelElement(formModel.value)
|
|
|
|
+ submitLoading.value = false
|
|
|
|
+ if (!isRes) return
|
|
|
|
+ window.$message.success('操作成功')
|
|
|
|
+ dialogClose()
|
|
|
|
+ emit('finish')
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//数组去重
|
|
|
|
+const uniqueArr = (arr1, arr2) => {
|
|
|
|
+ //合并两个数组
|
|
|
|
+ arr1.push(...arr2)//或者arr1 = [...arr1,...arr2]
|
|
|
|
+ //去重
|
|
|
|
+ return Array.from(new Set(arr1))//let arr3 = [...new Set(arr1)]
|
|
}
|
|
}
|
|
|
|
|
|
//关闭弹窗
|
|
//关闭弹窗
|