mirror of
https://github.com/jumpserver/lina.git
synced 2025-08-19 15:28:25 +00:00
perf: ticket list
This commit is contained in:
parent
47006a2a88
commit
c16ff3e894
@ -69,9 +69,12 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'type_display',
|
prop: 'type',
|
||||||
label: this.$t('tickets.type'),
|
label: this.$t('tickets.type'),
|
||||||
width: '160px'
|
width: '160px',
|
||||||
|
formatter: row => {
|
||||||
|
return row.type.label
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
prop: 'status',
|
prop: 'status',
|
||||||
@ -80,7 +83,7 @@ export default {
|
|||||||
width: '90px',
|
width: '90px',
|
||||||
sortable: 'custom',
|
sortable: 'custom',
|
||||||
formatter: row => {
|
formatter: row => {
|
||||||
if (row.status === 'open') {
|
if (row.status.value === 'open') {
|
||||||
return <el-tag type='primary' size='mini'> {this.$t('tickets.OpenStatus')}</el-tag>
|
return <el-tag type='primary' size='mini'> {this.$t('tickets.OpenStatus')}</el-tag>
|
||||||
} else {
|
} else {
|
||||||
return <el-tag type='danger' size='mini'> {this.$t('tickets.CloseStatus')}</el-tag>
|
return <el-tag type='danger' size='mini'> {this.$t('tickets.CloseStatus')}</el-tag>
|
||||||
@ -102,7 +105,7 @@ export default {
|
|||||||
{this.$t('tickets.Pending')}
|
{this.$t('tickets.Pending')}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
}
|
}
|
||||||
switch (row.state) {
|
switch (row.state.value) {
|
||||||
case 'approved':
|
case 'approved':
|
||||||
return <el-tag type='primary' size='mini'>
|
return <el-tag type='primary' size='mini'>
|
||||||
{this.$t('tickets.Approved')}
|
{this.$t('tickets.Approved')}
|
||||||
|
@ -19,7 +19,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
statusMap: this.object.status === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state],
|
statusMap: this.object.status.value === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state.value],
|
||||||
imageUrl: require('@/assets/img/admin.png'),
|
imageUrl: require('@/assets/img/admin.png'),
|
||||||
form: {
|
form: {
|
||||||
comments: ''
|
comments: ''
|
||||||
|
@ -19,7 +19,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
statusMap: this.object.status === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state],
|
statusMap: this.object.status.value === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state.value],
|
||||||
imageUrl: require('@/assets/img/admin.png'),
|
imageUrl: require('@/assets/img/admin.png'),
|
||||||
form: {
|
form: {
|
||||||
comments: ''
|
comments: ''
|
||||||
|
@ -19,7 +19,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
statusMap: this.object.status === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state],
|
statusMap: this.object.status.value === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state.value],
|
||||||
imageUrl: require('@/assets/img/admin.png'),
|
imageUrl: require('@/assets/img/admin.png'),
|
||||||
form: {
|
form: {
|
||||||
comments: ''
|
comments: ''
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<Select2 v-model="requestForm.assets" v-bind="assetSelect2" style="width: 50% !important" />
|
<Select2 v-model="requestForm.assets" v-bind="assetSelect2" style="width: 50% !important" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$tc('tickets.SystemUser')" :rules="isRequired">
|
<el-form-item :label="$tc('tickets.SystemUser')" :rules="isRequired">
|
||||||
<Select2 v-model="requestForm.accounts" style="width: 50% !important" />
|
<AccountFormatter v-model="requestForm.accounts" style="width: 50% !important" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$tc('common.DateStart')" required>
|
<el-form-item :label="$tc('common.DateStart')" required>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
@ -34,7 +34,15 @@
|
|||||||
type="datetime"
|
type="datetime"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$tc('assets.Action')" required />
|
<el-form-item :label="$tc('assets.Action')" required>
|
||||||
|
<el-tree
|
||||||
|
v-model="requestForm.actions"
|
||||||
|
:props="props"
|
||||||
|
:load="loadNode"
|
||||||
|
show-checkbox
|
||||||
|
@check-change="handleCheckChange"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
</IBox>
|
</IBox>
|
||||||
@ -46,12 +54,13 @@ import { formatTime, getDateTimeStamp } from '@/utils/index'
|
|||||||
import { toSafeLocalDateStr } from '@/utils/common'
|
import { toSafeLocalDateStr } from '@/utils/common'
|
||||||
import { STATUS_MAP } from '../../const'
|
import { STATUS_MAP } from '../../const'
|
||||||
import GenericTicketDetail from '@/views/tickets/components/GenericTicketDetail'
|
import GenericTicketDetail from '@/views/tickets/components/GenericTicketDetail'
|
||||||
|
import AccountFormatter from '@/views/perms/AssetPermission/components/AccountFormatter'
|
||||||
import Select2 from '@/components/FormFields/Select2'
|
import Select2 from '@/components/FormFields/Select2'
|
||||||
import IBox from '@/components/IBox'
|
import IBox from '@/components/IBox'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: '',
|
name: '',
|
||||||
components: { GenericTicketDetail, IBox, Select2 },
|
components: { GenericTicketDetail, IBox, Select2, AccountFormatter },
|
||||||
props: {
|
props: {
|
||||||
object: {
|
object: {
|
||||||
type: Object,
|
type: Object,
|
||||||
@ -60,7 +69,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
statusMap: this.object.status === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state],
|
statusMap: this.object.status.value === 'open' ? STATUS_MAP['pending'] : STATUS_MAP[this.object.state.value],
|
||||||
requestForm: {
|
requestForm: {
|
||||||
nodes: this.object.apply_nodes,
|
nodes: this.object.apply_nodes,
|
||||||
assets: this.object.apply_assets,
|
assets: this.object.apply_assets,
|
||||||
|
@ -20,7 +20,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
statusMap: this.object.status === 'open' ? STATUS_MAP['notified'] : STATUS_MAP[this.object.state],
|
statusMap: this.object.status.value === 'open' ? STATUS_MAP['notified'] : STATUS_MAP[this.object.state.value],
|
||||||
imageUrl: require('@/assets/img/admin.png'),
|
imageUrl: require('@/assets/img/admin.png'),
|
||||||
form: {
|
form: {
|
||||||
comments: ''
|
comments: ''
|
||||||
@ -38,7 +38,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: this.$t('tickets.type'),
|
key: this.$t('tickets.type'),
|
||||||
value: object.type_display
|
value: object.type.lable
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: this.$t('tickets.status'),
|
key: this.$t('tickets.status'),
|
||||||
|
Loading…
Reference in New Issue
Block a user