Browse Source

优化

master
陈裕财 4 years ago
parent
commit
66c196c145
  1. 6
      src/store/index.js
  2. 67
      src/store/modules/menuFavorite.js
  3. 33
      src/views/myWork/my/components/boxCard.vue
  4. 23
      src/views/myWork/my/components/moduleSet.vue
  5. 10
      src/views/myWork/my/index.vue
  6. 6
      src/views/xm/core/xmMyFocus/XmMyFocusList.vue

6
src/store/index.js

@ -6,8 +6,7 @@ import permission from './modules/permission'
import tagsView from './modules/tagsView' import tagsView from './modules/tagsView'
import user from './modules/user' import user from './modules/user'
import noticeMsg from './modules/noticeMsg' import noticeMsg from './modules/noticeMsg'
import getters from './getters'
import menuFavorite from './modules/menuFavorite'
import getters from './getters'
Vue.use(Vuex) Vue.use(Vuex)
@ -18,8 +17,7 @@ const store = new Vuex.Store({
permission, permission,
tagsView, tagsView,
user, user,
noticeMsg,
menuFavorite,
noticeMsg,
}, },
getters getters
}) })

67
src/store/modules/menuFavorite.js

@ -1,67 +0,0 @@
import { userMenuFavoriteList, saveMenuFavoriteList} from '@/api/mdp/sys/menuFavorite'
const menuFavorite = {
state: {
//喜欢的菜单
fMenu: [],
loading: {search: false, add: false}
},
mutations: {
getUserFavoriteMenuRequest(state) {
state.loading.search = true;
},
getUserFavoriteMenuFailure(state) {
state.loading.search = false;
},
getUserFavoriteMenuSuccess(state, {list}) {
state.loading.search = false;
console.log(list, "list--->");
state.fMenu = list;
},
saveUserFavoriteMenuRequest(state) {
state.loading.add = true;
},
saveUserFavoriteMenuFailure(state) {
state.loading.add = false;
},
saveUserFavoriteMenuSuccess(state, {}) {
state.loading.add = false;
},
},
actions: {
getUserFavoriteMenu({commit, state}, {userid}) {
commit('getUserFavoriteMenuRequest');
userMenuFavoriteList({userid}).then(res => {
commit('getUserFavoriteMenuSuccess', {list: res.data.data});
}).catch(err => {
commit('getUserFavoriteMenuFailure');
})
},
saveUserFavoriteMenu({commit, state, dispatch}, form) {
commit('saveUserFavoriteMenuRequest');
saveMenuFavoriteList(form).then(res => {
dispatch('getUserFavoriteMenu', {userid: form.userid});
commit('saveUserFavoriteMenuSuccess');
}).catch(err => {
commit('saveUserFavoriteMenuFailure');
})
}
}
}
export default menuFavorite

33
src/views/myWork/my/components/boxCard.vue

@ -24,13 +24,13 @@
:i="item.i" :i="item.i"
:key="item.i"> :key="item.i">
<div class="m_content_card_title"> <div class="m_content_card_title">
<span><b>{{item.menuname}}</b></span>
<span><b>{{item.menuname}}</b></span><span v-if="item.menuid=='myFocus'" style="float:right;"><el-button icon="el-icon-refresh" @click="refreshMyFocus">刷新</el-button></span>
</div> </div>
<dsp source="GZT" v-if="item.menuid == 'dsp'"></dsp> <dsp source="GZT" v-if="item.menuid == 'dsp'"></dsp>
<wdrw source="GZT" v-if="item.menuid == 'wdrw'"></wdrw> <wdrw source="GZT" v-if="item.menuid == 'wdrw'"></wdrw>
<wdcp source="GZT" v-if="item.menuid == 'wdcp'"></wdcp> <wdcp source="GZT" v-if="item.menuid == 'wdcp'"></wdcp>
<wdxm source="GZT" v-if="item.menuid == 'wdxm'"></wdxm> <wdxm source="GZT" v-if="item.menuid == 'wdxm'"></wdxm>
<my-focus source="GZT" v-if="item.menuid == 'myFocus'"></my-focus>
<my-focus source="GZT" v-if="item.menuid == 'myFocus'" ref="refMyFocus"></my-focus>
</grid-item> </grid-item>
</grid-layout> </grid-layout>
</div> </div>
@ -42,6 +42,7 @@ import dsp from '@/views/mdp/workflow/ru/task/TaskListAssigneeToMe.vue';
import wdrw from '@/views/xm/core/xmTask/xmMyTaskCenter.vue'; import wdrw from '@/views/xm/core/xmTask/xmMyTaskCenter.vue';
import wdcp from '@/views/xm/core/xmProduct/XmProductAllMng.vue'; import wdcp from '@/views/xm/core/xmProduct/XmProductAllMng.vue';
import wdxm from '@/views/xm/core/xmProject/XmProjectMng'; import wdxm from '@/views/xm/core/xmProject/XmProjectMng';
import { userMenuFavoriteList, saveMenuFavoriteList} from '@/api/mdp/sys/menuFavorite'
import myFocus from '@/views/xm/core/xmMyFocus/XmMyFocusList'; import myFocus from '@/views/xm/core/xmMyFocus/XmMyFocusList';
import VueGridLayout from 'vue-grid-layout'; import VueGridLayout from 'vue-grid-layout';
@ -59,20 +60,18 @@ export default {
}, },
computed: { computed: {
...mapGetters(['userInfo']),
menuFavorite() {
return this.$store.state.menuFavorite.fMenu;
}
...mapGetters(['userInfo']),
}, },
watch: { watch: {
'menuFavorite': {
'fMenus': {
handler(val, oval) { handler(val, oval) {
this.layout = []; this.layout = [];
this.addItem({menuid:'myFocus',menuname:'我的关注'}, val.length+1);
val.forEach((element, index) => { val.forEach((element, index) => {
this.addItem(element, index); this.addItem(element, index);
}); });
this.addItem({menuid:'myFocus',menuname:'我的关注'}, val.length+1);
} }
} }
}, },
@ -83,10 +82,14 @@ export default {
layout: [], layout: [],
// //
layoutColNum: 12, layoutColNum: 12,
fMenus:[],
} }
}, },
methods: { methods: {
refreshMyFocus(){
this.$refs['refMyFocus'][0].searchXmMyFocuss();
},
addItem: function(element, index) { addItem: function(element, index) {
this.layout.push( this.layout.push(
{ {
@ -101,11 +104,23 @@ export default {
} }
) )
}, },
getFMenus(){
userMenuFavoriteList({}).then(res=>{
localStorage.setItem('fMenus',JSON.stringify(res.data.data));
this.fMenus=res.data.data;
})
}
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.$store.dispatch('getUserFavoriteMenu', {userid: this.userInfo.userid});
var fMenus=localStorage.getItem("fMenus")
if(!fMenus){
this.getFMenus();
}else{
this.fMenus=JSON.parse(fMenus)
}
}) })
}, },

23
src/views/myWork/my/components/moduleSet.vue

@ -23,7 +23,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="nav" v-loading="menuFavorite.loading.search">
<div class="nav">
<div class="nav_item" :class="{itemActive: item.isChecked}" v-for="(item, index) in (tempMenu.length > 0 ? tempMenu : menus)" :key="index" @click="selectItem(item, index)"> <div class="nav_item" :class="{itemActive: item.isChecked}" v-for="(item, index) in (tempMenu.length > 0 ? tempMenu : menus)" :key="index" @click="selectItem(item, index)">
<img :src="item.icon" alt=""> <img :src="item.icon" alt="">
<div class="desc"> <div class="desc">
@ -37,7 +37,7 @@
</div> </div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="visible = false"> </el-button> <el-button @click="visible = false"> </el-button>
<el-button type="primary" :loading="menuFavorite.loading.add" @click="save"> </el-button>
<el-button type="primary" @click="save"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
</template> </template>
@ -49,6 +49,7 @@ import img3 from '../../img/wdxm.png'
import img4 from '../../img/wdcp.png' import img4 from '../../img/wdcp.png'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { userMenuFavoriteList, saveMenuFavoriteList} from '@/api/mdp/sys/menuFavorite'
export default { export default {
props: ['value'], props: ['value'],
@ -69,14 +70,10 @@ export default {
this.$emit('input', val); this.$emit('input', val);
} }
}, },
menuFavorite() {
return this.$store.state.menuFavorite;
}
}, },
watch: { watch: {
'menuFavorite.fMenu' : {
'fMenus' : {
handler(val, oval) { handler(val, oval) {
if(!val || val.length < 1) return if(!val || val.length < 1) return
this.menus.forEach(m => { this.menus.forEach(m => {
@ -94,6 +91,7 @@ export default {
return { return {
searchResult: '', searchResult: '',
tempMenu: [], tempMenu: [],
fMenus:[],
menus: [ menus: [
{ {
menuid: 'dsp', menuid: 'dsp',
@ -144,7 +142,10 @@ export default {
}, },
getUserModules() { getUserModules() {
this.$store.dispatch('getUserFavoriteMenu', {userid: this.userInfo.displayUserid});
userMenuFavoriteList({}).then(res=>{
localStorage.setItem('fMenus',JSON.stringify(res.data.data));
this.fMenus=res.data.data;
})
}, },
save() { save() {
@ -153,9 +154,11 @@ export default {
if(m.isChecked) { if(m.isChecked) {
saveModules.push(m); saveModules.push(m);
} }
})
this.$store.dispatch('saveUserFavoriteMenu', {data: saveModules, userid: this.userInfo.displayUserid}).then(() => {
})
saveMenuFavoriteList({data: saveModules, userid: this.userInfo.displayUserid}).then(() => {
this.visible = false this.visible = false
localStorage.removeItem('fMenus');
this.$emit("submit")
this.$notify.success("设置成功"); this.$notify.success("设置成功");
}) })
} }

10
src/views/myWork/my/index.vue

@ -49,9 +49,9 @@
</div> </div>
</div> </div>
</div> </div>
<box-card />
<box-card ref="boxCard" />
</div> </div>
<module-set v-model="moduleSetVisible" />
<module-set v-model="moduleSetVisible" @submit="onModuleSet"/>
</div> </div>
</template> </template>
@ -95,8 +95,7 @@ export default {
methods: { methods: {
gotolink(context,path) {
;
gotolink(context,path) {
if(context==process.env.CONTEXT){ if(context==process.env.CONTEXT){
this.$router.push({path:path}); this.$router.push({path:path});
}else{ }else{
@ -106,6 +105,9 @@ export default {
} }
}, },
onModuleSet(){
this.$refs.boxCard.getFMenus();
}
}, },

6
src/views/xm/core/xmMyFocus/XmMyFocusList.vue

@ -163,7 +163,7 @@ export default {
} }
this.getXmMyFocuss(); this.getXmMyFocuss();
}, },
searchXmMyFocuss(){
searchXmMyFocuss:function(){
this.pageInfo.count=true; this.pageInfo.count=true;
this.getXmMyFocuss(); this.getXmMyFocuss();
}, },
@ -195,7 +195,7 @@ export default {
this.pageInfo.total = res.data.total; this.pageInfo.total = res.data.total;
this.pageInfo.count=false; this.pageInfo.count=false;
this.xmMyFocuss = res.data.data; this.xmMyFocuss = res.data.data;
localStorage.setItem('xm-my-foucus-list',JSON.stringify( this.xmMyFocuss ))
localStorage.setItem('xm-my-focus-list',JSON.stringify( this.xmMyFocuss ))
}else{ }else{
this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: 'error' }); this.$notify({ position:'bottom-left',showClose:true, message: tips.msg, type: 'error' });
} }
@ -318,7 +318,7 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
initDicts(this); initDicts(this);
this.initData() this.initData()
var myFocusList=localStorage.getItem('xm-my-foucus-list')
var myFocusList=localStorage.getItem('xm-my-focus-list')
if(myFocusList){ if(myFocusList){
this.xmMyFocuss=JSON.parse(myFocusList) this.xmMyFocuss=JSON.parse(myFocusList)
}else{ }else{

Loading…
Cancel
Save