|
@@ -20,13 +20,13 @@
|
|
v-model="pushfileTap"
|
|
v-model="pushfileTap"
|
|
@close="pushFileClose"
|
|
@close="pushFileClose"
|
|
>
|
|
>
|
|
- <div style="width: 100%; overflow-x: auto" v-loading="rightTreeLoading">
|
|
|
|
|
|
+ <div style="width: 100%; overflow-x: auto">
|
|
<hc-data-tree
|
|
<hc-data-tree
|
|
:h-props="dialogProps"
|
|
:h-props="dialogProps"
|
|
show-checkbox
|
|
show-checkbox
|
|
:datas="dialogData"
|
|
:datas="dialogData"
|
|
tree-key="id"
|
|
tree-key="id"
|
|
- ref="treeRef"
|
|
|
|
|
|
+ ref="entryTreeRef"
|
|
>
|
|
>
|
|
</hc-data-tree>
|
|
</hc-data-tree>
|
|
</div>
|
|
</div>
|
|
@@ -37,24 +37,36 @@
|
|
</hc-dialog>
|
|
</hc-dialog>
|
|
</template>
|
|
</template>
|
|
<script setup>
|
|
<script setup>
|
|
|
|
+import { getArrValue } from "js-fast-way";
|
|
import { ref, watch } from "vue";
|
|
import { ref, watch } from "vue";
|
|
import archiveApi from "~api/desk/archiveTree";
|
|
import archiveApi from "~api/desk/archiveTree";
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
rightData: {
|
|
rightData: {
|
|
- type: Object,
|
|
|
|
|
|
+ type: Array,
|
|
default: () => [],
|
|
default: () => [],
|
|
},
|
|
},
|
|
|
|
+ wbsId: {
|
|
|
|
+ type: String,
|
|
|
|
+ default: "",
|
|
|
|
+ },
|
|
});
|
|
});
|
|
const rightData = ref(props.rightData);
|
|
const rightData = ref(props.rightData);
|
|
|
|
+const wbsId = ref(props.wbsId);
|
|
|
|
|
|
watch(
|
|
watch(
|
|
- () => props.rightData,
|
|
|
|
- (data) => {
|
|
|
|
|
|
+ () => [props.rightData, props.wbsId],
|
|
|
|
+ ([data, wid]) => {
|
|
rightData.value = data;
|
|
rightData.value = data;
|
|
|
|
+ wbsId.value = wid;
|
|
},
|
|
},
|
|
{ immediate: true, deep: true }
|
|
{ immediate: true, deep: true }
|
|
);
|
|
);
|
|
|
|
+const pushfileTap = ref(false);
|
|
|
|
+//监听显示
|
|
|
|
+watch(pushfileTap, (val) => {
|
|
|
|
+ if (val) getDialogData();
|
|
|
|
+});
|
|
//数据格式
|
|
//数据格式
|
|
const rightprops = ref({ label: "title" });
|
|
const rightprops = ref({ label: "title" });
|
|
|
|
|
|
@@ -63,10 +75,72 @@ const rightPushTree = () => {
|
|
};
|
|
};
|
|
|
|
|
|
// 入口配置弹窗
|
|
// 入口配置弹窗
|
|
-const pushfileTap = ref(false);
|
|
|
|
|
|
+
|
|
const pushFileClose = () => {};
|
|
const pushFileClose = () => {};
|
|
-const treeRef = ref(null);
|
|
|
|
|
|
+const entryTreeRef = ref(null);
|
|
const dialogProps = ref({ label: "title" });
|
|
const dialogProps = ref({ label: "title" });
|
|
const dialogData = ref([]);
|
|
const dialogData = ref([]);
|
|
-const saveFile = () => {};
|
|
|
|
|
|
+const getDialogData = async () => {
|
|
|
|
+ const { data, code } = await archiveApi.archiveTreetree({
|
|
|
|
+ type: 2,
|
|
|
|
+ });
|
|
|
|
+ if (code == 200) {
|
|
|
|
+ dialogData.value = getArrValue(data);
|
|
|
|
+ saixuan(dialogData.value);
|
|
|
|
+ console.log(checkXuan.value);
|
|
|
|
+ entryTreeRef.value.treeRef.setCheckedKeys(checkXuan.value);
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+//设置选中
|
|
|
|
+const checkXuan = ref([]);
|
|
|
|
+const saixuan = (da) => {
|
|
|
|
+ //赛选
|
|
|
|
+ if (da.length > 0) {
|
|
|
|
+ let tag = true;
|
|
|
|
+ da.forEach((val) => {
|
|
|
|
+ if (val.isDisplayTree == 1 && val.hasChildren) {
|
|
|
|
+ let ks = saixuan(val.children);
|
|
|
|
+ if (ks) {
|
|
|
|
+ checkXuan.value.push(val.id);
|
|
|
|
+ }
|
|
|
|
+ } else if (val.isDisplayTree == 1 && !val.hasChildren) {
|
|
|
|
+ checkXuan.value.push(val.id);
|
|
|
|
+ } else {
|
|
|
|
+ tag = false;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ return tag;
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+//保存入口配置
|
|
|
|
+const saveFile = async () => {
|
|
|
|
+ //保存按钮
|
|
|
|
+ let zi = entryTreeRef.value.treeRef.getCheckedKeys(); //返回选中子节点的key
|
|
|
|
+ let fu = entryTreeRef.value.treeRef.getHalfCheckedKeys(); //返回选中子节点的父节点的key
|
|
|
|
+ let arr = [...zi, ...fu];
|
|
|
|
+ if (arr.length > 0) {
|
|
|
|
+ let ids = "";
|
|
|
|
+ arr.forEach((val, key) => {
|
|
|
|
+ ids += val;
|
|
|
|
+ if (key != arr.length - 1) {
|
|
|
|
+ ids += ",";
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ const { code } = await archiveApi.submitDisplayConfigTree({ ids });
|
|
|
|
+
|
|
|
|
+ if (code == 200) {
|
|
|
|
+ window.$message({
|
|
|
|
+ type: "success",
|
|
|
|
+ message: "设置成功",
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ pushfileTap.value = false;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ window.$message({
|
|
|
|
+ type: "error",
|
|
|
|
+ message: "请先设置配置文件",
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+};
|
|
</script>
|
|
</script>
|