|
@@ -1907,56 +1907,75 @@ const GetDedhVisible = ref(false);
|
|
|
const table_fplb = ref(null); // el-tree 的 ref
|
|
const table_fplb = ref(null); // el-tree 的 ref
|
|
|
const defaultExpandedKey = ref(null); // 默认展开的节点 key
|
|
const defaultExpandedKey = ref(null); // 默认展开的节点 key
|
|
|
const selectIndex = ref(0); // 当前选中的索引
|
|
const selectIndex = ref(0); // 当前选中的索引
|
|
|
-
|
|
|
|
|
-const getDedhsubmit = async () => {
|
|
|
|
|
- try {
|
|
|
|
|
- const response = await productionDedh({
|
|
|
|
|
- sczl_jtbh: formData.value.sczl_jtbh,
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- if (response.code === 0) {
|
|
|
|
|
- if (formData.value.sczl_jtbh === "") {
|
|
|
|
|
- const data = [response.data];
|
|
|
|
|
-
|
|
|
|
|
- const buildTree = (node) => {
|
|
|
|
|
- const treeNode = {
|
|
|
|
|
- id: node.sys_bh, // 确保有 id 属性,供 node-key 使用
|
|
|
|
|
- label: node.sys_bh + "【" + node.sys_mc + "】",
|
|
|
|
|
- children: [],
|
|
|
|
|
- key: node.sys_bh, //保留 key 属性,便于自定义操作
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- if (node.bh_mc && Array.isArray(node.bh_mc)) {
|
|
|
|
|
- node.bh_mc.forEach((childNode) => {
|
|
|
|
|
- treeNode.children.push(buildTree(childNode));
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- return treeNode;
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
- // 更新树形数据
|
|
|
|
|
- GetDedhtreeData.splice(0, GetDedhtreeData.length, ...data.map(buildTree));
|
|
|
|
|
- // 显示树形选择框
|
|
|
|
|
- GetDedhVisible.value = true;
|
|
|
|
|
- // 使用 nextTick 确保树形组件渲染完成
|
|
|
|
|
- nextTick(() => {
|
|
|
|
|
- const tree = table_fplb.value;
|
|
|
|
|
- if (tree) {
|
|
|
|
|
- const firstNode = tree.getNode(0); // 获取树形的第一个节点
|
|
|
|
|
- if (firstNode) {
|
|
|
|
|
- firstNode.el.focus(); // 聚焦第一个节点
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
- } else {
|
|
|
|
|
- // 如果 sczl_jtbh 有值,则直接填充数据
|
|
|
|
|
- formData.value.sczl_dedh = response.data.sys_bh;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- } catch (error) {
|
|
|
|
|
- console.error(error);
|
|
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
|
|
+
|
|
|
|
|
+const getDedhsubmit = async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const response = await productionDedh({
|
|
|
|
|
+ sczl_jtbh: formData.value.sczl_jtbh, // 请求参数
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ if (response.code === 0) {
|
|
|
|
|
+ const data = response.data;
|
|
|
|
|
+
|
|
|
|
|
+ // 处理单条记录的情况,直接赋值
|
|
|
|
|
+ if (!Array.isArray(data) && !data.bh_mc) {
|
|
|
|
|
+ formData.value.sczl_dedh = data.sys_bh;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 定义递归函数,用于构造树形结构
|
|
|
|
|
+ const buildTree = (node) => {
|
|
|
|
|
+ const treeNode = {
|
|
|
|
|
+ id: node.sys_bh,
|
|
|
|
|
+ label: node.sys_bh + (node.sys_mc ? `【${node.sys_mc}】` : ""), // 显示内容
|
|
|
|
|
+ children: [],
|
|
|
|
|
+ key: node.Key_ || node.sys_bh, // 保留 key 属性,用于操作
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ // 如果有子节点,递归处理
|
|
|
|
|
+ if (node.bh_mc && Array.isArray(node.bh_mc)) {
|
|
|
|
|
+ treeNode.children = node.bh_mc.map((childNode) => buildTree(childNode));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return treeNode;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ // 处理数组数据结构,生成树形结构并展示弹窗
|
|
|
|
|
+ if (Array.isArray(data)) {
|
|
|
|
|
+ GetDedhtreeData.splice(
|
|
|
|
|
+ 0,
|
|
|
|
|
+ GetDedhtreeData.length,
|
|
|
|
|
+ ...data.map((item) => ({
|
|
|
|
|
+ id: item.sys_bh,
|
|
|
|
|
+ label: item.sys_bh,
|
|
|
|
|
+ children: [],
|
|
|
|
|
+ key: item.sys_bh,
|
|
|
|
|
+ }))
|
|
|
|
|
+ );
|
|
|
|
|
+ GetDedhVisible.value = true; // 展示弹窗
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 处理嵌套的树形结构数据
|
|
|
|
|
+ if (!Array.isArray(data) && data.bh_mc) {
|
|
|
|
|
+ GetDedhtreeData.splice(0, GetDedhtreeData.length, buildTree(data));
|
|
|
|
|
+ GetDedhVisible.value = true; // 展示弹窗
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 使用 nextTick 确保树形组件渲染完成后执行操作
|
|
|
|
|
+ nextTick(() => {
|
|
|
|
|
+ const tree = table_fplb.value; // 获取树形组件实例
|
|
|
|
|
+ if (tree) {
|
|
|
|
|
+ const firstNode = tree.getNode(0); // 获取树形的第一个节点
|
|
|
|
|
+ if (firstNode) {
|
|
|
|
|
+ firstNode.el.focus(); // 聚焦到第一个节点
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error("获取数据失败:", error);
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
//键盘事件
|
|
//键盘事件
|
|
|
const handleTreeKeydown = (event) => {
|
|
const handleTreeKeydown = (event) => {
|