doum
3 天以前 3c7399c25c0f35c8aa7cb6af1935e31d1a3f0102
admin/src/components/business/commonFunctions.vue
@@ -9,7 +9,7 @@
            <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>
@@ -25,7 +25,7 @@
<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',
@@ -39,14 +39,25 @@
    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