|
@@ -1,5 +1,4 @@
|
|
<template>
|
|
<template>
|
|
- <!-- 树节点调整排序 -->
|
|
|
|
<hc-dialog
|
|
<hc-dialog
|
|
v-model="isShow"
|
|
v-model="isShow"
|
|
title="分配WBS"
|
|
title="分配WBS"
|
|
@@ -18,6 +17,7 @@
|
|
accordion
|
|
accordion
|
|
highlight-current
|
|
highlight-current
|
|
@node-click="treeClick"
|
|
@node-click="treeClick"
|
|
|
|
+ :default-checked-keys="checkedLinkNodesKeys"
|
|
>
|
|
>
|
|
<template #default="{ node, data }">
|
|
<template #default="{ node, data }">
|
|
<span
|
|
<span
|
|
@@ -70,6 +70,10 @@ const props = defineProps({
|
|
type: Object,
|
|
type: Object,
|
|
default: () => ({}),
|
|
default: () => ({}),
|
|
},
|
|
},
|
|
|
|
+ type: {
|
|
|
|
+ type: [String, Number],
|
|
|
|
+ default: "0", //私有wbs为1,独立表单库为0
|
|
|
|
+ },
|
|
});
|
|
});
|
|
const store = useAppStore();
|
|
const store = useAppStore();
|
|
const userInfo = ref(store.getUserInfo);
|
|
const userInfo = ref(store.getUserInfo);
|
|
@@ -83,15 +87,17 @@ watch(
|
|
const projectId = ref(props.projectId);
|
|
const projectId = ref(props.projectId);
|
|
const wbsId = ref(props.wbsId);
|
|
const wbsId = ref(props.wbsId);
|
|
const wbsType = ref(props.wbsType);
|
|
const wbsType = ref(props.wbsType);
|
|
-const data = ref(props.data);
|
|
|
|
|
|
+const dataInfo = ref(props.data);
|
|
|
|
+const type = ref(props.type);
|
|
//监听数据
|
|
//监听数据
|
|
watch(
|
|
watch(
|
|
- () => [props.projectId, props.wbsId, props.wbsType, props.data],
|
|
|
|
- ([pid, wid, wtype, info]) => {
|
|
|
|
|
|
+ () => [props.projectId, props.wbsId, props.wbsType, props.data, props.type],
|
|
|
|
+ ([pid, wid, wtype, info, tpe]) => {
|
|
projectId.value = pid;
|
|
projectId.value = pid;
|
|
wbsId.value = wid;
|
|
wbsId.value = wid;
|
|
wbsType.value = wtype;
|
|
wbsType.value = wtype;
|
|
- data.value = info;
|
|
|
|
|
|
+ dataInfo.value = info;
|
|
|
|
+ type.value = tpe;
|
|
},
|
|
},
|
|
{ deep: true }
|
|
{ deep: true }
|
|
);
|
|
);
|
|
@@ -99,11 +105,21 @@ watch(
|
|
watch(isShow, (val) => {
|
|
watch(isShow, (val) => {
|
|
selectData.value = [];
|
|
selectData.value = [];
|
|
if (val) {
|
|
if (val) {
|
|
|
|
+ if (type.value === 1) {
|
|
|
|
+ getLinekNodeTreelistData();
|
|
|
|
+ }
|
|
} else {
|
|
} else {
|
|
emit("close");
|
|
emit("close");
|
|
}
|
|
}
|
|
});
|
|
});
|
|
-
|
|
|
|
|
|
+//获取关联的节点
|
|
|
|
+const checkedLinkNodesKeys = ref([]);
|
|
|
|
+const getLinekNodeTreelistData = async () => {
|
|
|
|
+ const { data } = await privateApi.LinekNodeTreelist({
|
|
|
|
+ pkeyid: dataInfo.value.pkeyId,
|
|
|
|
+ });
|
|
|
|
+ checkedLinkNodesKeys.value = getArrValue(data);
|
|
|
|
+};
|
|
//关闭弹窗
|
|
//关闭弹窗
|
|
const dialogClose = () => {
|
|
const dialogClose = () => {
|
|
selectData.value = [];
|
|
selectData.value = [];
|
|
@@ -154,16 +170,30 @@ const submitLoading = ref(false);
|
|
const submitClick = async () => {
|
|
const submitClick = async () => {
|
|
const nodesIdArray = selectData.value.map((obj) => obj.primaryKeyId);
|
|
const nodesIdArray = selectData.value.map((obj) => obj.primaryKeyId);
|
|
const commaSeparatedIds = nodesIdArray.join(","); // 使用逗号连接数组中的所有元素
|
|
const commaSeparatedIds = nodesIdArray.join(","); // 使用逗号连接数组中的所有元素
|
|
- submitLoading.value = true;
|
|
|
|
- const { code, error, msg } = await privateApi.syncFormToContractNode({
|
|
|
|
- nodeIds: commaSeparatedIds,
|
|
|
|
- projectId: projectId.value,
|
|
|
|
- primaryKeyId: data.value.id,
|
|
|
|
- });
|
|
|
|
- submitLoading.value = false;
|
|
|
|
- if (!error && code === 200) {
|
|
|
|
- window.$message.success(msg);
|
|
|
|
- dialogClose();
|
|
|
|
|
|
+
|
|
|
|
+ if (type.value === 1) {
|
|
|
|
+ submitLoading.value = true;
|
|
|
|
+ const { code, error, msg } = await privateApi.LinekNodeTree({
|
|
|
|
+ nodeids: commaSeparatedIds,
|
|
|
|
+ pkeyid: dataInfo.value.id,
|
|
|
|
+ });
|
|
|
|
+ submitLoading.value = false;
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window.$message.success(msg);
|
|
|
|
+ dialogClose();
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ submitLoading.value = true;
|
|
|
|
+ const { code, error, msg } = await privateApi.syncFormToContractNode({
|
|
|
|
+ nodeIds: commaSeparatedIds,
|
|
|
|
+ projectId: projectId.value,
|
|
|
|
+ primaryKeyId: dataInfo.value.id,
|
|
|
|
+ });
|
|
|
|
+ submitLoading.value = false;
|
|
|
|
+ if (!error && code === 200) {
|
|
|
|
+ window.$message.success(msg);
|
|
|
|
+ dialogClose();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|