import Vue from 'vue' import Vuex from 'vuex' import API from "@/api.js" import projectJSON from '@/assets/json/project.json'; const statiContextPath = obpmConfig.statiContextPath Vue.use(Vuex) export default new Vuex.Store({ state: { apps: [], menus: {currentApp: "", appMenus: {}, }, formdatas: {}, views: {}, searchFormTemplate: {}, domainId:'', userId:'', myProfile:'', softwareName:'', subDocuments: [], //鍖呭惈鍏冪礌缃戞牸瑙嗗浘淇濆瓨鏃剁殑鏁版嵁 subDocumentsData: {}, //鍖呭惈鍏冪礌鎴栬€卼ab鏂板缓鏃剁綉鏍艰鍥剧殑鏁版嵁锛屽線鍚庡彲鑳戒細鏈夊緢澶氶〉绛剧獥鍙f墦寮€锛屼箣鍚庡彲鑳戒慨鏀规垚鏁扮粍锛屼繚瀛橀〉闈㈡椂瀵规瘮docId isIncludeViewRefresh: false, //鍖呭惈鍏冪礌缃戞牸瑙嗗浘淇濆瓨鏃跺悗鏄惁鍒锋柊 firstClick:'', naviBarCommonlyUsedList:[], //瀵艰埅鏍忓父鐢ㄥ垪琛� pendingListWithWidget: '', //widget娴佺▼澶勭悊寰呭姙鐨勬暟鎹� processedListWithWidget: '', //widget娴佺▼澶勭悊缁忓姙鐨勬暟鎹� operationLogList: [], //鎿嶄綔鏃ュ織璁板綍 isInstance: false, //鐧诲綍瓒呮椂锛岀姸鎬佺爜鍑虹幇401锛屽脊鍑烘杩涜鐧诲綍 statiContextPath: '', //鍒ゆ柇鏄�5.0杩樻槸4.4 listViewScrollTop: 0,//璁板綍鍒楄〃瑙嗗浘婊氬姩鏉′綅缃� eventMapping:'', //瑙嗗浘閫夋嫨妗嗚缃簡浜嬩欢鏄犲皠锛岃鎶婃湰鏉ヨ鍥鹃€夋嫨妗嗙殑鏄犲皠浜嬩欢鍙樺寲鍒板崟琛屾枃鏈涓幓 iscriptNum: 0, //widget璁$畻鑴氭湰鍒锋柊鍒濆鍊间负0 refreshViewData:{}, saveSubDocments:{}, formTableUpdateId: '', appmenusShow:false,//bcx-鐧惧窛淇� defaultFirst:1,//bcx-鐧惧窛淇� searchDataStore:[],//缂撳瓨鍗曚釜鎼滅储涓庨珮绾ф悳绱㈡潯浠禸cx-鐧惧窛淇� searchFlag:0,//缂撳瓨浠庤〃鍗曗€欒繑鍥炩€� 瑙嗗浘鍙樹负2--bcx-鐧惧窛淇� page:1,//缂撳瓨琛ㄦ牸椤电爜--bcx-鐧惧窛淇� currentPageSize:10,//缂撳瓨琛ㄦ牸椤垫暟--bcx-鐧惧窛淇� pageDataStore:[],//缂撳瓨鍒嗛〉涓庢潯鏁癰cx lastTime:new Date().getTime(), lastTimeFlag:true,//榛樿寮€鍚畾鏃堕攣灞� }, getters: { getPendingListWithWidget: state => { return state.pendingListWithWidget; }, getProcessedListWithWidget: state => { return state.processedListWithWidget; }, getNaviBarCommonlyUsed: state => { return state.naviBarCommonlyUsedList; }, currentMenus: state => { return state.menus.appMenus[state.menus.currentApp]; }, currentAppName: state => { return state.softwareName; }, operationLog: state => { return state.operationLogList; } }, mutations: { //鏂规硶澶у啓瑙勮寖鍖� SET_LASTTIME(state,lastTime){ state.lastTime=lastTime }, SET_LASTTIME_Flag(state,lastTimeFlag){//鍛樺伐淇濋櫓锛屼紒涓氶挶鍖呭叧闂畾鏃堕攣灞� state.lastTimeFlag=lastTimeFlag }, SET_SAVESUBDOCMENTS: (state, data) => { state.saveSubDocments = data }, SET_FORMTABLEUPDATEID: (state, data) => { state.formTableUpdateId = data.id; }, SET_INCLUDEVIEWID: (state, data) => { let obj = { id: data.id, templateId: data.templateId } state.refreshViewData = obj }, SET_SUBDOCUMENTS_DATA: (state, data) => { let subDoc = state.subDocumentsData if(subDoc[data.sourceDocId]) { subDoc[data.sourceDocId][data.currentViewFormId] = data.saveData }else { let obj = {} obj[data.currentViewFormId] = data.saveData subDoc[data.sourceDocId] = obj } state.subDocumentsData = subDoc }, GET_OPERATION_LOG: (state, data) => { state.operationLogList = data.list; }, GET_PENDING_LIST_WITH_WIDGET: (state, data) => { state.pendingListWithWidget = data.pendingData; }, GET_PROCESS_LIST_WITH_WIDGET: (state, data) => { state.processedListWithWidget = data.processedData; }, SET_STATICONTEXTPATH: (state, data) => { state.statiContextPath = data.statiContextPath; }, naviBarCommonlyUsed(state, data) { state.naviBarCommonlyUsedList = data; }, loadAppKm(state, data) { state.firstClick = data.first; }, saveListViewScrollTop(state,listViewScrollTop) {//璁板綍鍒楄〃瑙嗗浘婊氬姩鏉′綅缃� state.listViewScrollTop = listViewScrollTop }, saveEventMapping(state,eventMapping) { state.eventMapping = eventMapping; }, saveSubDocuments(state, data) { state.subDocuments = data.data; state.isIncludeViewRefresh = data.isRefresh; }, landingUser(state, data){ state.domainId = data.doId; state.userId = data.userId; state.myProfile = data.profile; }, loadApps(state, apps) { state.apps = apps; state.softwareName = apps.length > 0 ? apps[0].name:''; }, loadMenus(state, { appId, menus }) { state.menus.currentApp = appId; state.appmenusShow=true //bcx-鐧惧窛淇� if (menus) { menus.appId = appId; //淇濆瓨涓€涓媋ppId state.menus.appMenus[appId] = menus; } }, /** * 鐧诲綍瓒呮椂鎷︽埅鍣� */ instanceDialog(state,isInstance){ state.isInstance = isInstance; }, /** * * @param {}} 璁$畻鑴氭湰鏍规嵁娴佺▼鍒锋柊锛岀洰鍓嶆槸閫氳繃鐩戝惉vuex鐨勬暟鎹€掑杩涜鍒凤紝鍚庢湡鐪嬬湅瑕佷笉瑕佹敼 */ iscriptChanage(state){ state.iscriptNum++; }, loadAppName(state, { name,flag }) {//bcx-鐧惧窛淇� if(flag==1){ state.softwareName = name +'-'+new Date().getTime(); state.defaultFirst=1 }else{ state.softwareName = name state.defaultFirst=0 } }, setFormData(state, { uId, doc }) { Vue.set(state.formdatas, uId, doc); }, setSearchFormTemplate(state, { uId, doc }) { Vue.set(state.searchFormTemplate, uId, doc); }, searchDataStore(state,searchDataStore){//鎼滅储鏉′欢缂撳瓨 // debugger console.log('store----'+JSON.stringify(searchDataStore)) if(state.searchDataStore.length){ state.searchDataStore.forEach((item,index)=>{ if(item.appId==searchDataStore.appId&&item.viewId==searchDataStore.viewId){ state.searchDataStore[index]=searchDataStore }else{ state.searchDataStore.push(searchDataStore) } }) }else{ state.searchDataStore.push(searchDataStore) } console.log(state.searchDataStore) }, searchFlag(state,searchFlag){ state.searchFlag=searchFlag }, pageDataStore(state,pageDataStore){//鍒嗛〉鏉′欢缂撳瓨 if(state.pageDataStore.length){ state.pageDataStore.forEach((item,index)=>{ if(item.appId==pageDataStore.appId&&item.viewId==pageDataStore.viewId){ state.pageDataStore[index]=pageDataStore }else{ state.pageDataStore.push(pageDataStore) } }) }else{ state.pageDataStore.push(pageDataStore) } } // page(state,page){ // state.page=page // }, // currentPageSize(state,currentPageSize){ // state.currentPageSize=currentPageSize // } }, actions: { getOperationLog(context, {appId, docId, data}) { API.getOperationLogs( appId, docId, data, { onSucess: res => { let list = res.data.data; context.commit('GET_OPERATION_LOG', {list}); } } ) }, //鑾峰彇widget娴佺▼澶勭悊寰呭姙鏁版嵁 getPendingListWithWidget(context, {workflowOrder}){ let that = this; API.getPendingListWithWidget(1, 5, workflowOrder, { onSucess: res => { let pendingData = res.data.data; context.commit('GET_PENDING_LIST_WITH_WIDGET', {pendingData}); } }); }, //鑾峰彇widget娴佺▼澶勭悊缁忓姙鏁版嵁 getProcessedListWithWidget(context, {workflowOrder}){ API.getProcessedListWithWidget(1, 5, workflowOrder, { onSucess: res => { let processedData = res.data.data; context.commit('GET_PROCESS_LIST_WITH_WIDGET', {processedData}); } } ) }, //褰撳墠鐧婚檰鐨勭敤鎴� landingUser(context) { API.getMyProfile( { onSucess: response => { let doId = response.data.data.domainId; let userId = response.data.data.id; let profile = response.data.data; context.commit('landingUser', {doId, userId, profile}); } } ) }, loadApps(context, applications) { let apps = applications; context.commit('loadApps', apps); //濡傛灉menus涓虹┖锛屽垯璋冪敤绗竴涓蒋浠剁殑menus if (Object.keys(context.state.menus.appMenus).length <= 0) { let appId = apps[0].id; let name = ''; context.dispatch("loadMenus", {appId, name}); } }, loadMenus(context, {appId, name,flag}) { //bcx鐧惧窛淇�-flag鍙橀噺 if (!context.state.menus.appMenus[appId]) { if(appId === 'km') { let ary = projectJSON.km; let kmRealm,kmTeam; API.kmsMyProfile({ onSucess: response =>{ let result = response.data; if(result && result.errcode == 0){ let isShowAdmin = false; if(statiContextPath){//5.0km绠$悊鍛樺叆鍙f槸鍚︽樉绀� let roles = result.data.roles; for(let k=0;k<roles.length;k++){ if(roles[k].id == "KMSUPERADMINROLEID"){ isShowAdmin = true; } } }else {//4.4km绠$悊鍛樺叆鍙f槸鍚︽樉绀� let roles = result.data.roles; for(let k=0;k<roles.length;k++){ if(roles[k].id == "0100"){ isShowAdmin = true; } } } API.kmMenuShow(appId,{ onSucess: response => { if(response.data){ kmRealm = response.data.kmRealm; kmTeam = response.data.kmTeam; } for(let i=0; i<ary.data.length; i++) { if((ary.data[i].id == "committee" && !kmRealm) || (ary.data[i].id == "teamKm" && !kmTeam) || (ary.data[i].id == "admin" && (result.data.level != 100 || !isShowAdmin))) { ary.data.splice(i, 1); i--; } } context.commit('loadMenus', { appId: appId, menus: ary.data }) } }); } } }) context.commit('loadAppName', { name: name,flag }) //淇敼杞欢鍚嶅瓧--//bcx鐧惧窛淇lag context.commit('loadAppKm', { first: 1 }) //绗竴娆$偣鍑籯m鎴栬€卲m锛岃彍鍗曟寜閽畾浣嶅湪绗竴涓綅缃� }else if(appId === 'qm') { let ary = projectJSON.qm; context.commit('loadMenus', { appId: appId, menus: ary.data }) context.commit('loadAppName', { name: name,flag })//bcx鐧惧窛淇lag context.commit('loadAppKm', { first: 1 }) //绗竴娆$偣鍑籯m鎴栬€卲m锛岃彍鍗曟寜閽畾浣嶅湪绗竴涓綅缃� }else { API.getMenus(appId, { onSucess: response => { console.log('搴旂敤鑿滃崟鐐瑰嚮濡備笅鏁版嵁>>锛�') console.table(response) if(response.data.data){ context.commit('loadMenus', { appId: appId, menus: response.data.data }) }else{ console.log('璇ュ簲鐢ㄦ病鏈夐厤缃彍鍗�') } if(name) { context.commit('loadAppName', { name: name,flag })//bcx鐧惧窛淇lag } } }); } }else { if(context.state.firstClick === 0) { //褰撻噸鏂扮偣鍑籏m鎴栬€卲m,鑿滃崟鎸夐挳鍙互閲嶆柊瀹氫綅鍦ㄧ涓€涓� context.commit('loadAppKm', { first: 1 }) } context.commit('loadMenus', { appId: appId }) if(name) { context.commit('loadAppName', { name: name,flag }) //bcx鐧惧窛淇lag } } }, getFormData(context, { uId, appId, formId, docId }) { API.getForm(appId, formId, docId, {}, { onSucess: response => { context.commit('setFormData', { uId: uId, doc: response.data.data }); } }); }, getDocumentEmpty(context, { uId, appId, formId, exparams }) { API.getDocumentEmpty(appId, formId, exparams, { onSucess: response => { if (response.data.data) { context.dispatch("getFormData", { uId: uId, appId: appId, formId: formId, docId: response.data.data.id }); } } }); }, } })