|
|
@@ -26,25 +26,15 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="column is-4">
|
|
|
- <div v-for="item in detail.checkList" :key="item.id">
|
|
|
- <check-judge-item :success="item.level === 1">
|
|
|
- <b-tooltip :label="item.explain" position="is-left">
|
|
|
- <b-checkbox
|
|
|
- :value="true"
|
|
|
- type="is-success"
|
|
|
- :name="item.content"
|
|
|
- >
|
|
|
- Success
|
|
|
- </b-checkbox>
|
|
|
- </b-tooltip>
|
|
|
- <input
|
|
|
- v-model="item.comment"
|
|
|
- class="input is-small"
|
|
|
- type="text"
|
|
|
- placeholder="填写备注"
|
|
|
- style="box-shadow:none;border-color:white"
|
|
|
- />
|
|
|
- </check-judge-item>
|
|
|
+ <div class="right-part">
|
|
|
+ <div
|
|
|
+ class="button is-primary action-button"
|
|
|
+ :class="{ 'is-loading': submitLoading }"
|
|
|
+ @click="submitCheckList"
|
|
|
+ >
|
|
|
+ 提 交
|
|
|
+ </div>
|
|
|
+ <check-list v-model="detail.checkList" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -55,15 +45,13 @@
|
|
|
import PageHeader from "@/components/PageHeader";
|
|
|
import PageBody from "@/components/PageBody/index";
|
|
|
import VueMarkdown from "vue-markdown";
|
|
|
-import { getStudentReviewDocDetail } from "@/api/review";
|
|
|
+import { getStudentReviewDocDetail, postStudentReviewWork } from "@/api/review";
|
|
|
import timeMixins from "@/mixins/time";
|
|
|
import ReviewStateTag from "@/components/ReviewStateTag/index";
|
|
|
-import CheckJudgeItem from "@/components/CheckListItem/index";
|
|
|
-import BTooltip from "buefy/src/components/tooltip/Tooltip";
|
|
|
+import CheckList from "@/components/CheckList/index";
|
|
|
export default {
|
|
|
components: {
|
|
|
- BTooltip,
|
|
|
- CheckJudgeItem,
|
|
|
+ CheckList,
|
|
|
ReviewStateTag,
|
|
|
PageBody,
|
|
|
PageHeader,
|
|
|
@@ -72,8 +60,10 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
detail: {
|
|
|
- review: {}
|
|
|
- }
|
|
|
+ review: {},
|
|
|
+ checkList: []
|
|
|
+ },
|
|
|
+ submitLoading: false
|
|
|
};
|
|
|
},
|
|
|
mixins: [timeMixins],
|
|
|
@@ -82,6 +72,18 @@ export default {
|
|
|
getStudentReviewDocDetail(reviewId, docReviewId).then(
|
|
|
resp => (this.detail = resp.data)
|
|
|
);
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ submitCheckList() {
|
|
|
+ const { reviewId, docReviewId } = this.$route.params;
|
|
|
+ this.submitLoading = true;
|
|
|
+ postStudentReviewWork(reviewId, docReviewId, this.detail.checkList).then(
|
|
|
+ resp => {
|
|
|
+ this.submitLoading = false;
|
|
|
+ this.detail.checkList = resp.data;
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
@@ -89,11 +91,20 @@ export default {
|
|
|
<style lang="scss" scoped>
|
|
|
@import "../../../../assets/scss/app";
|
|
|
.right-part {
|
|
|
- margin-top: -1.5rem;
|
|
|
margin-bottom: -1.5rem;
|
|
|
margin-right: -1.5rem;
|
|
|
background: white;
|
|
|
border-top: 1px solid #eff2f7;
|
|
|
- box-shadow: $default-shadow-lighter;
|
|
|
+ position: sticky;
|
|
|
+ top: 0;
|
|
|
+ max-height: 100vh;
|
|
|
+ overflow-y: auto;
|
|
|
+ overflow-x: hidden;
|
|
|
+ box-shadow: $default-shadow;
|
|
|
+}
|
|
|
+
|
|
|
+.action-button {
|
|
|
+ width: 100%;
|
|
|
+ border-radius: 0;
|
|
|
}
|
|
|
</style>
|