Files
zyplayer-doc/zyplayer-doc-ui/api-ui/src/store/index.js
2022-01-30 10:24:03 +08:00

149 lines
4.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {createStore} from 'vuex'
export default createStore({
state() {
return {
// 文档改变事件供其他页面watch
docChangedNum: 1,
customRequestChange: {},
// 用户信息
userInfo: {},
// tab多标签的标签名map{xxx: 'val'}
pageTabNameMap: {},
// 数据库存储的文档信息
apiDoc: {},
// 全局参数
globalParam: [],
// 当前文档全局参数
docGlobalParam: [],
// 左侧菜单栏宽度
leftAsideWidth: 0,
// swagger原始文档
swaggerDoc: {},
// swagger原始definitions
swaggerDefinitions: {},
// url对应的map信息 {'url + "." + method': {swagger.paths.url.method对象信息}}
swaggerUrlMethodMap: {},
// 方法统计{post: 10, total: 20}
swaggerMethodStatistic: {},
// openApi原始文档
openApiDoc: {},
// openApi原始definitions
openApiComponents: {},
// url对应的map信息 {'url + "." + method': {swagger.paths.url.method对象信息}}
openApiUrlMethodMap: {},
// 方法统计{post: 10, total: 20}
openApiMethodStatistic: {},
// 自建API原始文档
customRequestDoc: {},
// 当前选中的Tab页面
activePage: {},
}
},
getters: {
getCustomRequestChange: (state) => () => {
return state.customRequestChange;
},
getDocChangedNum: (state) => () => {
return state.docChangedNum;
},
getLeftAsideWidth: (state) => () => {
return state.leftAsideWidth;
},
getApiDoc: (state) => () => {
return state.apiDoc;
},
getActivePage: (state) => () => {
return state.activePage;
},
},
mutations: {
setUserInfo(state, userInfo) {
state.userInfo = userInfo;
},
setGlobalParam(state, globalParam) {
state.globalParam = globalParam;
},
setDocGlobalParam(state, globalParam) {
state.docGlobalParam = globalParam;
},
setGlobalParamOnChange(state, globalParam, docId) {
if (docId && docId > 0) {
// 当前选中的文档是修改的文档才更新
if (state.apiDoc.id === docId) {
state.docGlobalParam = globalParam;
}
} else {
state.globalParam = globalParam;
}
},
setApiDoc(state, apiDoc) {
state.apiDoc = apiDoc;
},
addDocChangedNum(state) {
state.docChangedNum++;
},
setLeftAsideWidth(state, leftAsideWidth) {
state.leftAsideWidth = leftAsideWidth;
},
// swagger
setSwaggerDoc(state, swaggerDoc) {
state.swaggerDoc = swaggerDoc;
state.swaggerDefinitions = swaggerDoc.definitions || {};
},
setSwaggerUrlMethodMap(state, swaggerUrlMethodMap) {
state.swaggerUrlMethodMap = swaggerUrlMethodMap;
},
setSwaggerMethodStatistic(state, swaggerMethodStatistic) {
state.swaggerMethodStatistic = swaggerMethodStatistic;
},
// openApi
setOpenApiDoc(state, openApiDoc) {
state.openApiDoc = openApiDoc;
state.openApiComponents = openApiDoc.components || {};
},
setOpenApiUrlMethodMap(state, openApiUrlMethodMap) {
state.openApiUrlMethodMap = openApiUrlMethodMap;
},
setOpenApiMethodStatistic(state, openApiMethodStatistic) {
state.openApiMethodStatistic = openApiMethodStatistic;
},
// openApi
setCustomRequestDoc(state, customRequestDoc) {
state.customRequestDoc = customRequestDoc;
},
addTableName(state, item) {
let sameObj = Object.assign({}, state.pageTabNameMap);
sameObj[item.key] = item.val;
state.pageTabNameMap = sameObj;
},
setCustomRequestChange(state, customRequestChange) {
state.customRequestChange = customRequestChange;
},
setActivePage(state, activePage) {
state.activePage = activePage;
},
}
});
// 使用方法
// return this.$store.state.userInfo
// this.$store.commit('setUserInfo', 111);
// 动态计算值
// computed: {
// initialEnv () {
// return this.$store.state.initialEnv;
// }
// },
// js文件中使用
// import store from '../../store/index'
// store.commit('setInitialEnv', this.initialEnv);