forked from github/dataease
refactor(视图): 数据集字段管理支持全选/全不选
This commit is contained in:
parent
42344d6ca7
commit
77efe0beef
@ -34,6 +34,9 @@
|
|||||||
<el-collapse-item name="d" :title="$t('chart.dimension')">
|
<el-collapse-item name="d" :title="$t('chart.dimension')">
|
||||||
<el-table :data="tableFields.dimensionListData" size="mini">
|
<el-table :data="tableFields.dimensionListData" size="mini">
|
||||||
<el-table-column property="checked" :label="$t('dataset.field_check')" width="60">
|
<el-table-column property="checked" :label="$t('dataset.field_check')" width="60">
|
||||||
|
<template slot="header" slot-scope="scope">
|
||||||
|
<el-checkbox v-model="dimensionChecked" :indeterminate="dimensionIndeterminate" :disabled="!hasDataPermission('manage',param.privileges)" @change="saveDimension" />
|
||||||
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-checkbox v-model="scope.row.checked" :disabled="!hasDataPermission('manage',param.privileges)" @change="saveEdit(scope.row)" />
|
<el-checkbox v-model="scope.row.checked" :disabled="!hasDataPermission('manage',param.privileges)" @change="saveEdit(scope.row)" />
|
||||||
</template>
|
</template>
|
||||||
@ -133,6 +136,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column property="" :label="$t('dataset.operator')">
|
<el-table-column property="" :label="$t('dataset.operator')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button v-if="false && scope.row.extField === 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="copyField(scope.row)">{{ $t('dataset.copy') }}</el-button>
|
||||||
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="editField(scope.row)">{{ $t('dataset.edit') }}</el-button>
|
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="editField(scope.row)">{{ $t('dataset.edit') }}</el-button>
|
||||||
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="deleteField(scope.row)">{{ $t('dataset.delete') }}</el-button>
|
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="deleteField(scope.row)">{{ $t('dataset.delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -143,6 +147,9 @@
|
|||||||
<el-collapse-item name="q" :title="$t('chart.quota')">
|
<el-collapse-item name="q" :title="$t('chart.quota')">
|
||||||
<el-table :data="tableFields.quotaListData" size="mini">
|
<el-table :data="tableFields.quotaListData" size="mini">
|
||||||
<el-table-column property="checked" :label="$t('dataset.field_check')" width="60">
|
<el-table-column property="checked" :label="$t('dataset.field_check')" width="60">
|
||||||
|
<template slot="header" slot-scope="scope">
|
||||||
|
<el-checkbox v-model="quotaChecked" :indeterminate="quotaIndeterminate" :disabled="!hasDataPermission('manage',param.privileges)" @change="saveQuota" />
|
||||||
|
</template>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-checkbox v-model="scope.row.checked" :disabled="!hasDataPermission('manage',param.privileges)" @change="saveEdit(scope.row)" />
|
<el-checkbox v-model="scope.row.checked" :disabled="!hasDataPermission('manage',param.privileges)" @change="saveEdit(scope.row)" />
|
||||||
</template>
|
</template>
|
||||||
@ -242,6 +249,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column property="" :label="$t('dataset.operator')">
|
<el-table-column property="" :label="$t('dataset.operator')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
<el-button v-if="false && scope.row.extField === 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="copyField(scope.row)">{{ $t('dataset.copy') }}</el-button>
|
||||||
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="editField(scope.row)">{{ $t('dataset.edit') }}</el-button>
|
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="editField(scope.row)">{{ $t('dataset.edit') }}</el-button>
|
||||||
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="deleteField(scope.row)">{{ $t('dataset.delete') }}</el-button>
|
<el-button v-if="scope.row.extField !== 0" :disabled="!hasDataPermission('manage',param.privileges)" type="text" size="mini" @click="deleteField(scope.row)">{{ $t('dataset.delete') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
@ -264,8 +272,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { post, fieldListDQ } from '@/api/dataset/dataset'
|
import { post, fieldListDQ, batchEdit } from '@/api/dataset/dataset'
|
||||||
import CalcFieldEdit from './CalcFieldEdit'
|
import CalcFieldEdit from './CalcFieldEdit'
|
||||||
|
import { getFieldName } from '@/views/dataset/data/utils'
|
||||||
export default {
|
export default {
|
||||||
name: 'FieldEdit',
|
name: 'FieldEdit',
|
||||||
components: { CalcFieldEdit },
|
components: { CalcFieldEdit },
|
||||||
@ -299,7 +308,11 @@ export default {
|
|||||||
searchField: '',
|
searchField: '',
|
||||||
editCalcField: false,
|
editCalcField: false,
|
||||||
currEditField: {},
|
currEditField: {},
|
||||||
isSyncField: false
|
isSyncField: false,
|
||||||
|
dimensionChecked: false,
|
||||||
|
dimensionIndeterminate: false,
|
||||||
|
quotaChecked: false,
|
||||||
|
quotaIndeterminate: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
@ -331,6 +344,8 @@ export default {
|
|||||||
this.tableFields.dimensionListData = JSON.parse(JSON.stringify(this.tableFields.dimensionList))
|
this.tableFields.dimensionListData = JSON.parse(JSON.stringify(this.tableFields.dimensionList))
|
||||||
this.tableFields.quotaListData = JSON.parse(JSON.stringify(this.tableFields.quotaList))
|
this.tableFields.quotaListData = JSON.parse(JSON.stringify(this.tableFields.quotaList))
|
||||||
this.filterField(this.searchField)
|
this.filterField(this.searchField)
|
||||||
|
this.dimensionChange()
|
||||||
|
this.quotaChange()
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
saveEdit(item) {
|
saveEdit(item) {
|
||||||
@ -437,6 +452,79 @@ export default {
|
|||||||
})
|
})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
saveDimension() {
|
||||||
|
const list = JSON.parse(JSON.stringify(this.tableFields.dimensionListData))
|
||||||
|
if (this.dimensionChecked) {
|
||||||
|
list.forEach(ele => {
|
||||||
|
ele.checked = true
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
list.forEach(ele => {
|
||||||
|
ele.checked = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
batchEdit(list).then(response => {
|
||||||
|
this.initField()
|
||||||
|
localStorage.setItem('reloadDsData', 'true')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
saveQuota() {
|
||||||
|
const list = JSON.parse(JSON.stringify(this.tableFields.quotaListData))
|
||||||
|
if (this.quotaChecked) {
|
||||||
|
list.forEach(ele => {
|
||||||
|
ele.checked = true
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
list.forEach(ele => {
|
||||||
|
ele.checked = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
batchEdit(list).then(response => {
|
||||||
|
this.initField()
|
||||||
|
localStorage.setItem('reloadDsData', 'true')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
dimensionChange() {
|
||||||
|
let checkedCount = 0
|
||||||
|
this.tableFields.dimensionListData.forEach(ele => {
|
||||||
|
if (ele.checked) {
|
||||||
|
checkedCount++
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.dimensionChecked = checkedCount === this.tableFields.dimensionListData.length
|
||||||
|
this.dimensionIndeterminate = checkedCount > 0 && checkedCount < this.tableFields.dimensionListData.length
|
||||||
|
},
|
||||||
|
quotaChange() {
|
||||||
|
let checkedCount = 0
|
||||||
|
this.tableFields.quotaListData.forEach(ele => {
|
||||||
|
if (ele.checked) {
|
||||||
|
checkedCount++
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.quotaChecked = checkedCount === this.tableFields.quotaListData.length
|
||||||
|
this.quotaIndeterminate = checkedCount > 0 && checkedCount < this.tableFields.quotaListData.length
|
||||||
|
},
|
||||||
|
|
||||||
|
copyField(item) {
|
||||||
|
const param = { ...item }
|
||||||
|
param.id = null
|
||||||
|
param.extField = 2
|
||||||
|
param.originName = '[' + item.id + ']'
|
||||||
|
param.name = getFieldName(this.tableFields.dimensionListData.concat(this.tableFields.quotaListData), item.name)
|
||||||
|
param.dataeaseName = null
|
||||||
|
param.lastSyncTime = null
|
||||||
|
param.columnIndex = this.tableFields.dimensionListData.length + this.tableFields.quotaListData.length
|
||||||
|
|
||||||
|
post('/dataset/field/save', param).then(response => {
|
||||||
|
this.initField()
|
||||||
|
localStorage.setItem('reloadDsData', 'true')
|
||||||
|
}).catch(res => {
|
||||||
|
this.initField()
|
||||||
|
localStorage.setItem('reloadDsData', 'true')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user