disable submit button after submitting

This commit is contained in:
zema1 2018-09-07 14:28:06 +08:00
parent ec14ba848b
commit b5bf87594c
3 changed files with 34 additions and 31 deletions

View File

@ -91,10 +91,11 @@
</div>
</template>
<Button type="warning" icon="edit" :loading="submitting" @click="submitCode"
:disabled="problemSubmitDisabled"
:disabled="problemSubmitDisabled || submitted"
class="fl-right">
<span v-if="!submitting">Submit</span>
<span v-else>Submitting</span>
<span v-if="submitting">Submitting</span>
<span v-else-if="submitted">Submitted</span>
<span v-else>Submit</span>
</Button>
</Col>
</Row>
@ -228,6 +229,7 @@
language: 'C++',
theme: 'solarized',
submissionId: '',
submitted: false,
result: {
result: 9
},
@ -405,6 +407,7 @@
const submitFunc = (data, detailsVisible) => {
this.statusVisible = true
api.submitCode(data).then(res => {
this.submitted = true
this.submissionId = res.data.data && res.data.data.submission_id
//
this.submitting = false

View File

@ -1,41 +1,41 @@
<template>
<Row type="flex" justify="space-around">
<Col :span="20" id="status">
<Alert :type="status.type" showIcon>
<span class="title">{{status.statusName}}</span>
<div slot="desc" class="content">
<template v-if="isCE">
<pre>{{submission.statistic_info.err_info}}</pre>
</template>
<template v-else>
<span>Time: {{submission.statistic_info.time_cost | submissionTime}}</span>
<span>Memory: {{submission.statistic_info.memory_cost | submissionMemory}}</span>
<span>Lang: {{submission.language}}</span>
<span>Author: {{submission.username}}</span>
</template>
</div>
</Alert>
<Alert :type="status.type" showIcon>
<span class="title">{{status.statusName}}</span>
<div slot="desc" class="content">
<template v-if="isCE">
<pre>{{submission.statistic_info.err_info}}</pre>
</template>
<template v-else>
<span>Time: {{submission.statistic_info.time_cost | submissionTime}}</span>
<span>Memory: {{submission.statistic_info.memory_cost | submissionMemory}}</span>
<span>Lang: {{submission.language}}</span>
<span>Author: {{submission.username}}</span>
</template>
</div>
</Alert>
</Col>
<!--后台返info就显示出来 权限控制放后台 -->
<Col v-if="submission.info && !isCE" :span="20">
<Table stripe :loading="loading" :disabled-hover="true" :columns="columns" :data="submission.info.data"></Table>
<Table stripe :loading="loading" :disabled-hover="true" :columns="columns" :data="submission.info.data"></Table>
</Col>
<Col :span="20">
<Highlight :code="submission.code" :language="submission.language" :border-color="status.color"></Highlight>
<Highlight :code="submission.code" :language="submission.language" :border-color="status.color"></Highlight>
</Col>
<Col v-if="submission.can_unshare" :span="20">
<div id="share-btn">
<Button v-if="submission.shared"
type="warning" size="large" @click="shareSubmission(false)">
UnShare
</Button>
<Button v-else
type="primary" size="large" @click="shareSubmission(true)">
Share
</Button>
</div>
<div id="share-btn">
<Button v-if="submission.shared"
type="warning" size="large" @click="shareSubmission(false)">
UnShare
</Button>
<Button v-else
type="primary" size="large" @click="shareSubmission(true)">
Share
</Button>
</div>
</Col>
</Row>
@ -43,7 +43,7 @@
<script>
import api from '@oj/api'
import { JUDGE_STATUS } from '@/utils/constants'
import {JUDGE_STATUS} from '@/utils/constants'
import utils from '@/utils/utils'
import Highlight from '@/pages/oj/components/Highlight'

View File

@ -5,7 +5,7 @@ function utcToLocal (utcDt, format = 'YYYY-M-D HH:mm:ss') {
return moment.utc(utcDt).local().format(format)
}
// get duration from startTime to endTime, return like 3 days, 2 hours, one yead ..
// get duration from startTime to endTime, return like 3 days, 2 hours, one year ..
function duration (startTime, endTime) {
let start = moment(startTime)
let end = moment(endTime)