123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- import Vue from "vue";
- import { i18n } from "@/lang";
- import { navigationSave, initialSet } from "@/api";
- import { $waiting } from "@/components/shared/loading";
- let vue = new Vue();
- export default {
- namespaced: true,
- state() {
- return {
- isSave: false,
- catalogTopology: [],
- currentSecondId: null,
- currentRootId: null,
- saveFristScene: false, //是否可以保存初始场景
- // currentCatalogRoot: {},
- // //当前二级分组
- // currentSecondary: {},
- // //二级分组
- // secondaryList: {},
- // //当前场景分组
- // currentScenesList: {},
- navigationTrees: [],
- };
- },
- getters: {
- isSave: (state) => state.isSave,
- saveFristScene: (state) => state.saveFristScene,
- currentRootId: (state) => state.currentRootId,
- currentSecondId: (state) => state.currentSecondId,
- },
- mutations: {
- setData(state, payload) {
- for (let key in payload) {
- state[key] = payload[key];
- }
- },
- },
- actions: {
- save({ commit, state, rootState }) {
- let list = JSON.parse(JSON.stringify(rootState.base.baseInfo.navigationTrees));
- // console.error(rootState.base.baseInfo.navigationTrees);
- list.forEach((item, index) => {
- item.sort = index;
- if (typeof item.id != "number" && item.id.indexOf("add_") != -1) {
- delete item.id;
- }
- item = item.children.forEach((s_item, s_index) => {
- s_item.sort = s_index;
- if (typeof s_item.id != "number" && s_item.id.indexOf("add_") != -1) {
- delete s_item.id;
- }
- // console.error(s_item);
- s_item = s_item.children.forEach((t_item, t_index) => {
- t_item.sort = t_index;
- if (typeof t_item.id != "number" && t_item.id.indexOf("add_") != -1) {
- delete t_item.id;
- }
- });
- });
- });
- // console.error(rootState.base.baseInfo.navigationTrees, list);
- // $waiting.hide();
- // return;
- return new Promise((resolve, reject) => {
- navigationSave(
- { list },
- (res) => {
- $waiting.hide();
- if (res.code == 0) {
- // vue.$msg.success(i18n.t("gather.save_done"));
- // this.commit("TakeInfoSnapShotAtSave");
- this.commit("base/updateBaseInfo", { navigationTrees: res.data });
- if (rootState.scene.currentScene) {
- setTimeout(() => {
- // console.error("有当前场景", rootState.scene.currentScene);
- let curreentScene = rootState.base.sceneList.find((item) => item.sid && item.sid == rootState.scene.currentScene.sid);
- if (curreentScene) {
- this.commit("scene/setCurrentScene", curreentScene);
- }
- }, 0);
- if (rootState.base.baseInfo.firstScene) {
- //如果初始场景是新增的,则需要更新id
- setTimeout(() => {
- let firstScene = rootState.base.sceneList.find((item) => item.sid && item.sid == rootState.base.baseInfo.firstScene.sid);
- if (firstScene) {
- rootState.base.baseInfo.firstScene.id = firstScene.id;
- }
- }, 0);
- }
- }
- this.commit("base/initDefaultData");
- state.isSave = true;
- setTimeout(() => {
- resolve();
- if (state.saveFristScene) {
- let data = {};
- // console.error("有当前场景", rootState.base.baseInfo.firstScene);
- if (rootState.base.baseInfo.firstScene) {
- let firstScene = rootState.base.sceneList.find((item) => item.sceneCode == rootState.base.baseInfo.firstScene.sceneCode);
- if (firstScene) {
- data = { navigationId: firstScene.id, operType: "add" };
- }
- } else {
- data = { navigationId: null, operType: "delete" };
- }
- initialSet(data, (res) => {
- commit("setData", { saveFristScene: false });
- });
- }
- }, 0);
- }
- },
- (err) => {
- $waiting.hide();
- reject();
- }
- );
- });
- },
- },
- };
|