Browse Source

手动调整列宽可以保存到用户的动态列数据里

master
han\hanst 20 hours ago
parent
commit
a4190a73d5
  1. 55
      src/views/modules/sampleTracking/projectProofTracking.vue

55
src/views/modules/sampleTracking/projectProofTracking.vue

@ -216,6 +216,7 @@
:height="trackingTableHeight"
v-loading="dataListLoading"
@sort-change="handleTrackingTableSortChange"
@header-dragend="handleTrackingColumnResize"
@selection-change="selectionChange"
@row-click="rowClick"
style="width: 100%; margin-top: 8px"
@ -1275,7 +1276,7 @@ import {
searchBusinessInfo8
} from '@/api/factory/site.js'
import { queryCustomerList } from '@/api/customer/customer'
import { getTableUserListLanguage } from '@/api/table.js'
import { getTableUserListLanguage, updateColumnSize, saveTableUser } from '@/api/table.js'
import Chooselist from '@/views/modules/common/Chooselist_eam'
import Sortable from 'sortablejs'
@ -1710,6 +1711,8 @@ export default {
searchProjectManagerOptions: [],
searchPicOptions: [],
trackingColumnList: cloneDefaultTrackingColumns(),
trackingColumnsLoaded: false,
trackingColumnsPersisted: false,
processColumns: cloneDefaultProcessColumns(),
processCodeLabelMap: buildProcessCodeLabelMapByRows(cloneDefaultProcessColumns()),
trackingTableSortProp: '',
@ -2086,6 +2089,7 @@ export default {
return mergedRows
},
loadTrackingColumns () {
this.trackingColumnsLoaded = false
const queryTableUser = {
userId: this.$store.state.user.name,
functionId: this.getTrackingColumnFunctionId(),
@ -2093,7 +2097,12 @@ export default {
languageCode: this.$i18n && this.$i18n.locale ? this.$i18n.locale : ''
}
return getTableUserListLanguage(queryTableUser).then(({ data }) => {
const rows = data && Array.isArray(data.rows) ? data.rows : []
if (!data || data.code !== 0 || !Array.isArray(data.rows)) {
throw new Error('加载用户动态列失败')
}
const rows = data.rows
this.trackingColumnsLoaded = true
this.trackingColumnsPersisted = rows.length > 0
// status
// 退
this.trackingColumnList = rows.length > 0
@ -2107,6 +2116,48 @@ export default {
return this.trackingColumnList
})
},
handleTrackingColumnResize (newWidth, oldWidth, column) {
// Comments
const item = column && this.trackingColumnList.find(row => row.columnProp === column.property)
const width = Math.round(Number(newWidth))
if (!item || !Number.isFinite(width) || width <= 0 || newWidth === oldWidth) {
return Promise.resolve()
}
const userId = this.$store.state.user.name
const functionId = this.getTrackingColumnFunctionId()
const tableId = this.getTrackingColumnTableId()
if (!this.trackingColumnsLoaded || this.isBlankValue(userId) || this.isBlankValue(functionId) || this.isBlankValue(tableId)) {
this.$message.warning('动态列配置尚未加载成功,列宽未保存,请刷新后重试')
return Promise.resolve()
}
this.$set(item, 'columnWidth', width)
//
const payload = { userId, functionId, tableId, columnProp: item.columnProp, columnWidth: width }
//
const queue = this._trackingColumnWidthSaveQueue || Promise.resolve()
this._trackingColumnWidthSaveQueue = queue.then(async () => {
let response
if (!this.trackingColumnsPersisted) {
// 使
const columns = this.trackingColumnList.map((row, index) => Object.assign({}, row, {
userId,
functionId,
tableId,
sortLv: row.sortLv == null ? index + 1 : row.sortLv
}))
response = await saveTableUser(columns)
} else {
response = await updateColumnSize(payload)
}
if (!response || !response.data || response.data.code !== 0) {
throw new Error('列宽保存失败')
}
this.trackingColumnsPersisted = true
}).catch(() => {
this.$message.warning('列宽保存失败,当前宽度仅临时生效,请重新拖动以重试')
})
return this._trackingColumnWidthSaveQueue
},
isTrackingColumnVisible (column) {
if (!column) {
return false

Loading…
Cancel
Save