|
@@ -1,7 +1,23 @@
|
|
|
<template>
|
|
|
- <hc-dialog v-model="isShow" widths="800px" is-footer-center is-table title="关联试验划分树" @close="dialogClose">
|
|
|
+ <hc-dialog v-model="isShow" widths="500px" is-footer-center is-table title="关联试验划分树" @close="dialogClose">
|
|
|
<el-alert :closable="false" title="勾选试验划分节点,被勾选的节点数据将会汇总到当前台账分类中" type="warning" />
|
|
|
- 11111
|
|
|
+ <el-form ref="formRef" :model="formModel" :rules="formRules" label-position="top" label-width="auto" class="mt-14px">
|
|
|
+ <el-form-item label="项目名称:" prop="pid">
|
|
|
+ <el-select v-model="formModel.pid" filterable block placeholder="请选择项目" @change="formNameChange">
|
|
|
+ <el-option v-for="item in projectData" :key="item.id" :label="item.projectName" :value="item.id" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="树搜索关键词:">
|
|
|
+ <hc-search-input v-model="filterText" placeholder="输入关键字搜索" @search="treeFilterClick" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="树数据:" prop="tree">
|
|
|
+ <hc-data-tree ref="treeRef" :h-props="treeProps" show-checkbox :datas="treeData">
|
|
|
+ <template #name="{ data }">
|
|
|
+ <span class="text-16px font-400">{{ data.title }}</span>
|
|
|
+ </template>
|
|
|
+ </hc-data-tree>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
<template #footer>
|
|
|
<el-button hc-btn @click="dialogClose">取消</el-button>
|
|
|
<el-button hc-btn type="primary" :loading="submitLoading" @click="dialogSubmit">提交</el-button>
|
|
@@ -11,7 +27,8 @@
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, watch } from 'vue'
|
|
|
-import { formValidate, getArrValue } from 'js-fast-way'
|
|
|
+import { formValidate, getArrValue, isNullES } from 'js-fast-way'
|
|
|
+import projectApi from '~api/project/project'
|
|
|
import mainApi from '~api/desk/test-collect'
|
|
|
|
|
|
const props = defineProps({
|
|
@@ -40,8 +57,62 @@ watch(() => props.data, (data) => {
|
|
|
watch(isShow, () => getDataApi())
|
|
|
const getDataApi = () => {
|
|
|
console.log(dataInfo.value)
|
|
|
+ getProjectData()
|
|
|
}
|
|
|
|
|
|
+//项目列表
|
|
|
+const projectData = ref([])
|
|
|
+const getProjectData = async () => {
|
|
|
+ const { data } = await projectApi.page({
|
|
|
+ current: 1, size: 9999,
|
|
|
+ })
|
|
|
+ projectData.value = getArrValue(data?.records)
|
|
|
+}
|
|
|
+
|
|
|
+//项目列表被选择
|
|
|
+const formNameChange = () => {
|
|
|
+ const item = projectData.value.find(item=>item.id === formModel.value?.pid)
|
|
|
+ const pid = !isNullES(item) ? item.referenceWbsTemplateIdTrial : null
|
|
|
+ getTreeData(formModel.value?.pid, pid)
|
|
|
+}
|
|
|
+
|
|
|
+//表单
|
|
|
+const formRef = ref(null)
|
|
|
+const formModel = ref({})
|
|
|
+const formRules = {
|
|
|
+ pid: { required: true, trigger: 'blur', message: '请选择项目' },
|
|
|
+}
|
|
|
+
|
|
|
+//搜索筛选
|
|
|
+const filterText = ref('')
|
|
|
+const treeFilterClick = () => {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//获取树数据
|
|
|
+const treeData = ref([])
|
|
|
+const getTreeData = async (id, pid) => {
|
|
|
+ console.log('111')
|
|
|
+}
|
|
|
+
|
|
|
+//树配置
|
|
|
+const treeRef = ref(null)
|
|
|
+const treeProps = {
|
|
|
+ label: 'title',
|
|
|
+ children: 'children',
|
|
|
+ isLeaf: (item) => {
|
|
|
+ let tag = false
|
|
|
+ if (!item.hasChildren) {
|
|
|
+ tag = true
|
|
|
+ }
|
|
|
+ if (Number(item.isExistForm) === 1) {
|
|
|
+ tag = true
|
|
|
+ }
|
|
|
+ return tag
|
|
|
+ },
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
//提交表单
|
|
|
const submitLoading = ref(false)
|
|
|
const dialogSubmit = async () => {
|