فهرست منبع

1.10重大修改

Johnson 7 سال پیش
والد
کامیت
5c5778a429
4فایلهای تغییر یافته به همراه263 افزوده شده و 158 حذف شده
  1. 19 7
      src/views/teacher/Code/detail.vue
  2. 116 75
      src/views/teacher/Code/index.vue
  3. 17 4
      src/views/teacher/Document/detail.vue
  4. 111 72
      src/views/teacher/Document/index.vue

+ 19 - 7
src/views/teacher/Code/detail.vue

@@ -7,10 +7,10 @@
       ]"
     >
       <template slot="title">
-        Here might be a page title
+        购物车web项目
       </template>
       <template slot="content">
-        Here might be a page title
+        作业描述信息作业描述信息作业描述信息作业描述信息作业描述信息作业描述信息作业描述信息
       </template>
     </page-header>
 
@@ -69,10 +69,10 @@
                   </b-table-column>
 
                   <b-table-column label="部署" centered>
-                    <span class="tag is-failed">{{ props.row.deploy }}</span>
+                    <span class="tag is-warning">{{ props.row.deploy }}</span>
                   </b-table-column>
                   <b-table-column label="测试">
-                    {{ props.row.test }}
+                    <span class="tag is-danger">{{ props.row.test }}</span>
                   </b-table-column>
                 </template>
 
@@ -170,19 +170,31 @@ const data = [
     test: "10/10"
   }
 ];
+const assignmentInfo = {
+  id: 0,
+  name: "",
+  description: "",
+  startAt: 0,
+  endAt: 0
+};
 
 export default {
   components: {
     PageBody,
     PageHeader
   },
+  mounted() {
+    this.assignmentInfo = this.$route.query.assignmentInfo;
+    console.log(this.assignmentInfo.name);
+    console.log(this.assignmentInfo.description);
+  },
   data() {
     return {
       data,
-      unsubmited
+      unsubmited,
+      assignmentInfo
     };
-  },
-  mounted() {}
+  }
 };
 </script>
 

+ 116 - 75
src/views/teacher/Code/index.vue

@@ -9,9 +9,7 @@
       </template>
       <template slot="action">
         <b-field>
-          <a class="button is-link" @click="isCardModalActive = true"
-            >新建代码作业</a
-          >
+          <a class="button is-link" @click="updateInfo(-1)">新建代码作业</a>
         </b-field>
       </template>
     </page-header>
@@ -30,31 +28,45 @@
             </b-table-column>
 
             <b-table-column label="题目名称" centered>
-              <router-link :to="`/course-teacher/:courseId/code/detail`">
-                {{ props.row.name }}</router-link
+              <router-link
+                :to="{
+                  path: `/course-teacher/:courseId/code/detail`,
+                  query: { assignmentInfo: props.row }
+                }"
               >
+                {{ props.row.name }}
+              </router-link>
             </b-table-column>
 
             <b-table-column label="开始时间" centered>
-              {{ props.row.startAt }}
+              {{ new Date(props.row.startAt).getFullYear() }}-{{
+                new Date(props.row.startAt).getMonth() + 1
+              }}-{{ new Date(props.row.startAt).getDate() }}
             </b-table-column>
 
             <b-table-column label="结束时间" centered>
-              {{ props.row.endAt }}
+              {{ new Date(props.row.endAt).getFullYear() }}-{{
+                new Date(props.row.endAt).getMonth() + 1
+              }}-{{ new Date(props.row.endAt).getDate() }}
             </b-table-column>
 
-            <b-table-column label="修改" centered> </b-table-column>
-            <b-table-column label="删除" centered> </b-table-column>
+            <b-table-column label="修改" centered>
+              <a @click="updateInfo(props.row.id)">修改</a>
+            </b-table-column>
+            <b-table-column label="删除" centered>
+              <a style="color:#b34141" @click="confirmDelete(props.row.id)"
+                >删除</a
+              >
+            </b-table-column>
           </template>
 
-          <template slot="detail">
+          <template slot="detail" slot-scope="props">
             <article class="media">
               <div class="media-content">
                 <div class="content">
                   <p>
-                    <strong>成绩详情</strong>
-                    <small>这里可以放具体的作业成绩,前面可以放总评啥的</small>
-                    <br />
+                    <strong>作业描述:</strong>
+                    <small>{{ props.row.description }}</small> <br />
                   </p>
                 </div>
               </div>
@@ -67,51 +79,33 @@
     <!--新建文档作业模态框-->
     <b-modal :active.sync="isCardModalActive" :width="640" scroll="keep">
       <div class="card">
-        <div class="title">新建代码作业</div>
+        <div class="title">{{ modal.title }}</div>
         <div class="content">
           <b-field label="作业名称">
-            <b-input v-model="docAssignment.name"></b-input>
+            <b-input v-model="codeAssignment.name"></b-input>
           </b-field>
           <b-field label="作业描述">
-            <b-input v-model="docAssignment.description"></b-input>
+            <b-input v-model="codeAssignment.description"></b-input>
           </b-field>
           <b-field label="开始时间">
             <b-datepicker
-              v-model="docAssignment.startAt"
+              v-model="codeAssignment.startAt"
               placeholder="Click to select..."
-              :min-date="minDate"
-              :max-date="maxDate"
+              icon="calendar-today"
             >
-              <button class="button is-primary" @click="date = new Date()">
-                <b-icon icon="calendar-today"></b-icon>
-                <span>Today</span>
-              </button>
-
-              <button class="button is-danger" @click="date = null">
-                <b-icon icon="close"></b-icon>
-                <span>Clear</span>
-              </button>
             </b-datepicker>
           </b-field>
           <b-field label="结束时间">
             <b-datepicker
-              v-model="docAssignment.endAt"
+              v-model="codeAssignment.endAt"
               placeholder="Click to select..."
-              :min-date="minDate"
-              :max-date="maxDate"
+              icon="calendar-today"
             >
-              <button class="button is-primary" @click="date = new Date()">
-                <b-icon icon="calendar-today"></b-icon>
-                <span>Today</span>
-              </button>
-
-              <button class="button is-danger" @click="date = null">
-                <b-icon icon="close"></b-icon>
-                <span>Clear</span>
-              </button>
             </b-datepicker>
           </b-field>
-          <a class="button is-link" @click="createDocAssignment">确认创建</a>
+          <a class="button is-link" @click="createCodeAssignment">{{
+            modal.submit
+          }}</a>
         </div>
       </div>
     </b-modal>
@@ -125,20 +119,23 @@ const codeData = [
   {
     id: 1,
     name: "购物车web项目",
-    startAt: "2019-1-1",
-    endAt: "2019-6-1"
+    description: "1111111111111这里是文档描述",
+    startAt: 1547107174000,
+    endAt: 1547971174000
   },
   {
     id: 2,
-    name: "软件需求规格说明书",
-    startAt: "2019-1-1",
-    endAt: "2019-6-1"
+    name: "电影票web项目",
+    description: "222222222222这里是文档描述",
+    startAt: 1547107174000,
+    endAt: 1547971174000
   },
   {
     id: 3,
-    name: "软件需求规格说明书",
-    startAt: "2019-1-1",
-    endAt: "2019-6-1"
+    name: "SEECweb项目",
+    description: "3333333333333333这里是文档描述",
+    startAt: 1547107174000,
+    endAt: 1547971174000
   }
 ];
 export default {
@@ -147,43 +144,87 @@ export default {
     PageHeader
   },
   data() {
-    const today = new Date();
     return {
-      minDate: new Date(
-        today.getFullYear(),
-        today.getMonth(),
-        today.getDate() - 5
-      ),
-      maxDate: new Date(
-        today.getFullYear(),
-        today.getMonth(),
-        today.getDate() + 5
-      ),
       codeData,
-      docAssignment: {
+      codeAssignment: {
+        id: -1,
         name: "",
         description: "",
         startAt: new Date(),
         endAt: new Date()
       },
-      isCardModalActive: false
+      isCardModalActive: false,
+      modal: {
+        title: "新建文档作业",
+        submit: "确认创建"
+      }
     };
   },
   methods: {
-    createDocAssignment() {
-      this.isCardModalActive = false;
-      console.log(
-        this.docAssignment.name,
-        this.docAssignment.description,
-        this.docAssignment.startAt,
-        this.docAssignment.endAt
-      );
-      this.data.push({
-        id: 4,
-        name: this.docAssignment.name,
-        startAt: "2019-1-1",
-        endAt: "2019-6-1"
+    confirmDelete(id) {
+      this.$dialog.confirm({
+        message: "确认删除?",
+        confirmText: "删除",
+        type: "is-danger",
+        onConfirm: () => {
+          for (var item of this.codeData) {
+            if (item.id === id) {
+              this.codeData.pop(item);
+            }
+          }
+          this.$toast.open("删除成功");
+        }
       });
+    },
+    updateInfo(id) {
+      this.isCardModalActive = true;
+      if (id !== -1) {
+        this.modal.submit = "确认修改";
+        this.modal.title = "修改文档作业";
+        console.log(this.modal.submit);
+        console.log(this.modal.submit);
+        for (let item of this.codeData) {
+          if (item.id === id) {
+            this.codeAssignment.id = id;
+            this.codeAssignment.name = item.name;
+            this.codeAssignment.description = item.description;
+            this.codeAssignment.startAt = new Date(item.startAt);
+            this.codeAssignment.endAt = new Date(item.endAt);
+            break;
+          }
+        }
+      } else {
+        this.modal.title = "新建文档作业";
+        this.modal.submit = "确认创建";
+        this.codeAssignment.id = -1;
+        this.codeAssignment.name = "";
+        this.codeAssignment.description = "";
+        this.codeAssignment.startAt = new Date();
+        this.codeAssignment.endAt = new Date();
+      }
+    },
+    createCodeAssignment() {
+      this.isCardModalActive = false;
+      if (this.codeAssignment.id === -1) {
+        var itemsCount = this.codeData.length;
+        this.codeData.push({
+          id: itemsCount + 1,
+          name: this.codeAssignment.name,
+          description: this.codeAssignment.description,
+          startAt: this.codeAssignment.startAt.getTime(),
+          endAt: this.codeAssignment.endAt.getTime()
+        });
+      } else {
+        for (var item of this.codeData) {
+          if (item.id === this.codeAssignment.id) {
+            item.name = this.codeAssignment.name;
+            item.description = this.codeAssignment.description;
+            item.startAt = this.codeAssignment.startAt.getTime();
+            item.endAt = this.codeAssignment.endAt.getTime();
+            break;
+          }
+        }
+      }
     }
   }
 };

+ 17 - 4
src/views/teacher/Document/detail.vue

@@ -3,7 +3,7 @@
     <page-header
       :routes="[
         { name: '文档作业', path: 'document' },
-        { name: '软件需求规格说明书', path: 'document/detail' }
+        { name: 'TBM', path: 'document/detail' }
       ]"
     >
       <template slot="title">
@@ -183,11 +183,24 @@ const data = [
   }
 ];
 
+const assignmentInfo = {
+  id: 0,
+  name: "",
+  description: "",
+  startAt: 0,
+  endAt: 0
+};
+
 export default {
   components: {
     PageBody,
     PageHeader
   },
+  mounted() {
+    this.assignmentInfo = this.$route.query.assignmentInfo;
+    console.log(this.assignmentInfo.name);
+    console.log(this.assignmentInfo.description);
+  },
   data() {
     return {
       courses: [],
@@ -197,10 +210,10 @@ export default {
         { id: 2, title: "代码作业题目" }
       ],
       data,
-      unsubmited
+      unsubmited,
+      assignmentInfo
     };
-  },
-  mounted() {}
+  }
 };
 </script>
 

+ 111 - 72
src/views/teacher/Document/index.vue

@@ -7,15 +7,13 @@
       <template slot="content">
         Here might be a page title
       </template>
-
       <template slot="action">
         <b-field>
-          <a class="button is-link" @click="isCardModalActive = true"
-            >新建文档作业</a
-          >
+          <a class="button is-link" @click="updateInfo(-1)">新建文档作业</a>
         </b-field>
       </template>
     </page-header>
+
     <page-body>
       <div>
         <b-table :data="data" paginated per-page="5" detailed detail-key="id">
@@ -25,30 +23,44 @@
             </b-table-column>
 
             <b-table-column label="题目名称" centered>
-              <router-link :to="`/course-teacher/:courseId/document/detail`">
-                {{ props.row.name }}</router-link
+              <router-link
+                :to="{
+                  path: `/course-teacher/:courseId/document/detail`,
+                  query: { assignmentInfo: props.row }
+                }"
               >
+                {{ props.row.name }}
+              </router-link>
             </b-table-column>
 
             <b-table-column label="开始时间" centered>
-              {{ props.row.startAt }}
+              {{ new Date(props.row.startAt).getFullYear() }}-{{
+                new Date(props.row.startAt).getMonth() + 1
+              }}-{{ new Date(props.row.startAt).getDate() }}
             </b-table-column>
 
             <b-table-column label="结束时间" centered>
-              {{ props.row.endAt }}
+              {{ new Date(props.row.endAt).getFullYear() }}-{{
+                new Date(props.row.endAt).getMonth() + 1
+              }}-{{ new Date(props.row.endAt).getDate() }}
+            </b-table-column>
+            <b-table-column label="修改" centered>
+              <a @click="updateInfo(props.row.id)">修改</a>
+            </b-table-column>
+            <b-table-column label="删除" centered>
+              <a style="color:#b34141" @click="confirmDelete(props.row.id)"
+                >删除</a
+              >
             </b-table-column>
-            <b-table-column label="修改" centered> 如何修改 </b-table-column>
-            <b-table-column label="删除" centered> 如何删除 </b-table-column>
           </template>
 
-          <template slot="detail">
+          <template slot="detail" slot-scope="props">
             <article class="media">
               <div class="media-content">
                 <div class="content">
                   <p>
-                    <strong>成绩详情</strong>
-                    <small>这里可以放具体的作业成绩,前面可以放总评啥的</small>
-                    <br />
+                    <strong>作业描述:</strong><br />
+                    <small>{{ props.row.description }}</small> <br />
                   </p>
                 </div>
               </div>
@@ -61,7 +73,7 @@
     <!--新建文档作业模态框-->
     <b-modal :active.sync="isCardModalActive" :width="640" scroll="keep">
       <div class="card">
-        <div class="title">新建文档作业</div>
+        <div class="title">{{ modal.title }}</div>
         <div class="content">
           <b-field label="作业名称">
             <b-input v-model="docAssignment.name"></b-input>
@@ -73,39 +85,21 @@
             <b-datepicker
               v-model="docAssignment.startAt"
               placeholder="Click to select..."
-              :min-date="minDate"
-              :max-date="maxDate"
+              icon="calendar-today"
             >
-              <button class="button is-primary" @click="date = new Date()">
-                <b-icon icon="calendar-today"></b-icon>
-                <span>Today</span>
-              </button>
-
-              <button class="button is-danger" @click="date = null">
-                <b-icon icon="close"></b-icon>
-                <span>Clear</span>
-              </button>
             </b-datepicker>
           </b-field>
           <b-field label="结束时间">
             <b-datepicker
               v-model="docAssignment.endAt"
               placeholder="Click to select..."
-              :min-date="minDate"
-              :max-date="maxDate"
+              icon="calendar-today"
             >
-              <button class="button is-primary" @click="date = new Date()">
-                <b-icon icon="calendar-today"></b-icon>
-                <span>Today</span>
-              </button>
-
-              <button class="button is-danger" @click="date = null">
-                <b-icon icon="close"></b-icon>
-                <span>Clear</span>
-              </button>
             </b-datepicker>
           </b-field>
-          <a class="button is-link" @click="createDocAssignment">确认创建</a>
+          <a class="button is-link" @click="createDocAssignment()">{{
+            modal.submit
+          }}</a>
         </div>
       </div>
     </b-modal>
@@ -115,24 +109,27 @@
 <script>
 import PageHeader from "@/components/PageHeader";
 import PageBody from "@/components/PageBody/index";
-const data = [
+const docData = [
   {
     id: 1,
     name: "软件需求规格说明书",
-    startAt: "2019-1-1",
-    endAt: "2019-6-1"
+    description: "1111111111111这里是文档描述",
+    startAt: 1547107174000,
+    endAt: 1547971174000
   },
   {
     id: 2,
-    name: "软件需求规格说明书",
-    startAt: "2019-1-1",
-    endAt: "2019-6-1"
+    name: "用户需求列表",
+    description: "222222222222222222这里是文档描述",
+    startAt: 1547107174000,
+    endAt: 1547971174000
   },
   {
     id: 3,
-    name: "软件需求规格说明书",
-    startAt: "2019-1-1",
-    endAt: "2019-6-1"
+    name: "面谈报告",
+    description: "333333333333333这里是文档描述",
+    startAt: 1547107174000,
+    endAt: 1547971174000
   }
 ];
 export default {
@@ -141,43 +138,85 @@ export default {
     PageHeader
   },
   data() {
-    const today = new Date();
     return {
-      minDate: new Date(
-        today.getFullYear(),
-        today.getMonth(),
-        today.getDate() - 5
-      ),
-      maxDate: new Date(
-        today.getFullYear(),
-        today.getMonth(),
-        today.getDate() + 5
-      ),
-      data,
+      data: docData,
       docAssignment: {
+        id: -1,
         name: "",
         description: "",
         startAt: new Date(),
         endAt: new Date()
       },
-      isCardModalActive: false
+      isCardModalActive: false,
+      modal: {
+        title: "新建文档作业",
+        submit: "确认创建"
+      }
     };
   },
   methods: {
+    confirmDelete(id) {
+      this.$dialog.confirm({
+        message: "确认删除?",
+        confirmText: "删除",
+        type: "is-danger",
+        onConfirm: () => {
+          for (var item of this.data) {
+            if (item.id === id) {
+              this.data.pop(item);
+            }
+          }
+          this.$toast.open("删除成功");
+        }
+      });
+    },
+    updateInfo(id) {
+      this.isCardModalActive = true;
+      if (id !== -1) {
+        this.modal.title = "修改文档作业";
+        this.modal.submit = "确认修改";
+        for (let item of this.data) {
+          if (item.id === id) {
+            this.docAssignment.id = id;
+            this.docAssignment.name = item.name;
+            this.docAssignment.description = item.description;
+            this.docAssignment.startAt = new Date(item.startAt);
+            this.docAssignment.endAt = new Date(item.endAt);
+            break;
+          }
+        }
+      } else {
+        this.modal.title = "新建文档作业";
+        this.modal.submit = "确认创建";
+        this.docAssignment.id = -1;
+        this.docAssignment.name = "";
+        this.docAssignment.description = "";
+        this.docAssignment.startAt = new Date();
+        this.docAssignment.endAt = new Date();
+      }
+    },
     createDocAssignment() {
       this.isCardModalActive = false;
-      console.log(
-        this.docAssignment.name,
-        this.docAssignment.description,
-        this.docAssignment.startAt,
-        this.docAssignment.endAt
-      );
-      this.data.push({
-        id: 4,
-        name: this.docAssignment.name,
-        startAt: "2019-1-1",
-        endAt: "2019-6-1"
-      });
+      if (this.docAssignment.id === -1) {
+        var itemsCount = this.data.length;
+        this.data.push({
+          id: itemsCount + 1,
+          name: this.docAssignment.name,
+          description: this.docAssignment.description,
+          startAt: this.docAssignment.startAt.getTime(),
+          endAt: this.docAssignment.endAt.getTime()
+        });
+      } else {
+        for (var item of this.data) {
+          if (item.id === this.docAssignment.id) {
+            item.name = this.docAssignment.name;
+            item.description = this.docAssignment.description;
+            item.startAt = this.docAssignment.startAt.getTime();
+            item.endAt = this.docAssignment.endAt.getTime();
+            break;
+          }
+        }
+      }
     }
   }
 };