| | |
| | | <span>请根据使用习惯自定义常用功能,支持拖动排</span> |
| | | <draggable v-model="filterList" chosenClass="chosen" forceFallback="true" group="people" animation="1000"> |
| | | <transition-group class="dra"> |
| | | <div class="list" v-for="(item, index) in filterList" :key="index"> |
| | | <div class="list" v-for="item in filterList" :key="item.path || item.id"> |
| | | <div class="list_checkbox"> |
| | | <el-checkbox v-model="item.checked"> </el-checkbox> |
| | | </div> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import { updMyYwQuickModel, getDefaultYwQuickList } from '@/api/ywWorkDesk' |
| | | import { updMyYwQuickModel, getDefaultYwQuickList, getYwQuickList } from '@/api/ywWorkDesk' |
| | | import draggable from 'vuedraggable' |
| | | export default { |
| | | name: 'commonFunctions', |
| | |
| | | methods: { |
| | | open (title) { |
| | | this.title = title |
| | | getDefaultYwQuickList({}) |
| | | .then(res => { |
| | | res.forEach(item => { |
| | | item.checked = false |
| | | Promise.all([getDefaultYwQuickList(), getYwQuickList()]) |
| | | .then(([allList, myList]) => { |
| | | const selectedPaths = (myList || []).map(item => item.path) |
| | | const pathOrder = new Map(selectedPaths.map((path, index) => [path, index])) |
| | | const selected = [] |
| | | const unselected = [] |
| | | ;(allList || []).forEach(item => { |
| | | const entry = { ...item, checked: selectedPaths.includes(item.path) } |
| | | if (entry.checked) { |
| | | selected.push(entry) |
| | | } else { |
| | | unselected.push(entry) |
| | | } |
| | | }) |
| | | this.filterList = res |
| | | selected.sort((a, b) => (pathOrder.get(a.path) || 0) - (pathOrder.get(b.path) || 0)) |
| | | this.filterList = [...selected, ...unselected] |
| | | this.visible = true |
| | | }) |
| | | .catch(e => this.$tip.apiFailed(e)) |
| | | }, |
| | | confirm () { |
| | | this.isWorking = true |