xiangpei
2024-06-03 c05e517726e3e81cbf216ca6fae763d84fde336b
提交信息
14个文件已修改
1个文件已删除
41795 ■■■■■ 已修改文件
dist_electron/package.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json 41424 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/index.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Choice/SingleItem.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Header/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router.js 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Exam/Exam.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Exam/MyExam/MyExam.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Manage/ClassManagement/Class.vue 252 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Manage/Education/TeacherManage.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Manage/ExaminationManagement/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Manage/Timetable/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Teach/Teach.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
dist_electron/package.json
@@ -63,16 +63,11 @@
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^4.5.19",
    "@vue/cli-plugin-eslint": "^4.5.19",
    "@vue/cli-plugin-router": "^4.5.19",
    "@vue/cli-plugin-vuex": "^4.5.19",
    "@vue/cli-service": "^4.5.19",
    "@vue/eslint-config-standard": "^4.0.0",
    "babel-eslint": "^10.1.0",
    "electron": "^13.0.0",
    "electron-devtools-installer": "^3.1.0",
    "eslint": "^5.16.0",
    "eslint-plugin-vue": "^5.2.3",
    "node-sass": "^6.0.1",
    "sass-loader": "^10.5.2",
    "svg-sprite-loader": "4.1.6",
@@ -92,7 +87,6 @@
  "license": "AGPL-3.0",
  "lint-staged": {
    "src/**/*.{js,vue}": [
      "eslint --fix",
      "git add"
    ]
  },
package-lock.json
File was deleted
package.json
@@ -62,15 +62,11 @@
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^4.5.19",
    "@vue/cli-plugin-eslint": "^4.5.19",
    "@vue/cli-plugin-router": "^4.5.19",
    "@vue/cli-plugin-vuex": "^4.5.19",
    "@vue/cli-service": "^4.5.19",
    "@vue/eslint-config-standard": "^4.0.0",
    "babel-eslint": "^10.1.0",
    "electron": "^13.0.0",
    "electron-devtools-installer": "^3.1.0",
    "eslint-plugin-vue": "^5.2.3",
    "sass-loader": "^10.5.2",
    "svg-sprite-loader": "4.1.6",
    "vue-cli-plugin-electron-builder": "~2.1.1",
@@ -89,7 +85,6 @@
  "license": "AGPL-3.0",
  "lint-staged": {
    "src/**/*.{js,vue}": [
      "eslint --fix",
      "git add"
    ]
  },
public/index.html
@@ -8,7 +8,7 @@
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  <title>学之思管理系统</title>
  <title>江西空管音视频</title>
  <style>
    html {
      height: 100%;
src/components/Choice/SingleItem.vue
@@ -9,6 +9,7 @@
        <div
          class="subject"
          v-for="item in convertDatas"
          :key="item.id"
        >
          <div class="subject-title">
            <h2>{{item.name}}</h2>
@@ -18,6 +19,7 @@
            class="box-card"
            v-for="(sub,index) in item.childs"
            :id="item.code+(index+1)"
            :key="sub.id"
          >
            <div
              slot="header"
@@ -75,6 +77,7 @@
              <el-radio
                :disabled="disabledAnswer"
                v-for="o in sub.answers"
                :key="o.id"
                :label="o.no"
                class="answer-radio"
                @change="answerButtionCheck($event,item,sub)"
@@ -87,6 +90,7 @@
              <el-checkbox
                :disabled="disabledAnswer"
                v-for="o in sub.answers"
                :key="o.id"
                :label="o.no"
                class="answer-checkbox"
                @change="answerButtionCheck($event,item,sub)"
@@ -165,6 +169,7 @@
        <el-collapse v-model="answerCardActiveName">
          <el-collapse-item
            v-for="item in convertDatas"
            :key="item.id"
            :name="item.code"
          >
            <template slot="title">
@@ -176,6 +181,7 @@
              circle
              size="small"
              v-for="index of item.count"
              :key="index"
              :id="'answer'+item.code+index"
              @click.native="jump(item.code+index)"
            >{{index}}</el-button>
src/components/Header/index.vue
@@ -188,16 +188,16 @@
      width="200px"
    >
      <div style="display:flex; justify-content:space-between; padding:10px 10px;">
        <s-button
        <el-button
          colorType="default"
          size="small"
          @click="() => checkCloseDialog = false"
        >取消</s-button>
        <s-button
        >取消</el-button>
        <el-button
          colorType="deepBlue"
          size="small"
          @click="closeSystem"
        >确定</s-button>
        >确定</el-button>
      </div>
    </s-dialog>
  </div>
src/layout/components/Navbar.vue
@@ -188,16 +188,16 @@
      width="200px"
    >
      <div style="display:flex; justify-content:space-between; padding:10px 10px;">
        <s-button
        <el-button
          colorType="default"
          size="small"
          @click="() => checkCloseDialog = false"
        >取消</s-button>
        <s-button
        >取消</el-button>
        <el-button
          colorType="deepBlue"
          size="small"
          @click="closeSystem"
        >确定</s-button>
        >确定</el-button>
      </div>
    </s-dialog>
  </div>
src/router.js
@@ -88,7 +88,8 @@
      {
        path: 'teacher-manage',
        name: 'teacherManage',
        component: () => import('@/views/Manage/Education/TeacherManage.vue')
        component: () => import('@/views/Manage/Education/TeacherManage.vue'),
        meta: { title: '教师管理' }
      },
      // 教师介绍
      {
@@ -119,12 +120,14 @@
        path: 'test-paper',
        name: 'TestPaper',
        component: () => import('@/views/Manage/TestPaper/index.vue'),
        meta: { title: '试卷管理' }
      },
      // 题库管理
      {
        path: 'question-bank',
        name: 'QuestionBank',
        component: () => import('@/views/Manage/TestPaper/QuestionBank.vue'),
        meta: { title: '题库管理' }
      },
      // 试卷生成
      {
@@ -141,11 +144,13 @@
          {
            path: '/',
            name: 'ClassManagementIndex',
            component: () => import('@/views/Manage/ClassManagement/Class.vue')
            component: () => import('@/views/Manage/ClassManagement/Class.vue'),
            meta: { title: '班级管理' }
          }, {
            path: 'Class-staff',
            name: 'ClassStaff',
            component: () => import('@/views/Manage/ClassManagement/ClassStaff.vue')
            component: () => import('@/views/Manage/ClassManagement/ClassStaff.vue'),
            meta: { title: '班级成员管理' }
          }
        ]
      },
@@ -205,9 +210,18 @@
]
const router = new Router({
  mode: 'history',
  routes: constantRoutes
})
router.beforeEach((to,from,next)=>{
  if(to.meta.title){//判断是否有标题
    document.title = to.meta.title
  }
  next()  //执行进入路由,如果不写就不会进入目标页
})
export {
  constantRoutes,
  router
src/views/Exam/Exam.vue
@@ -76,16 +76,16 @@
                ></el-table-column>
                <el-table-column label="操作">
                  <template slot-scope="scope">
                    <s-button
                    <el-button
                      class="deepBlue"
                      colorType="blue"
                      v-if="scope.row.type===2"
                    >预约</s-button>
                    <s-button
                    >预约</el-button>
                    <el-button
                      colorType="darkBlue"
                      disabled
                      v-else
                    >预约</s-button>
                    >预约</el-button>
                  </template>
                </el-table-column>
              </el-table>
@@ -245,4 +245,4 @@
    background-color: rgb(45, 92, 248);
  }
}
</style>
</style>
src/views/Exam/MyExam/MyExam.vue
@@ -80,26 +80,26 @@
                >
                  <template slot-scope="scope">
                    <div style="display:flex; justify-content:space-between">
                      <s-button
                      <el-button
                        class="deepBlue"
                        colorType="blue"
                        v-if="scope.row.type===2"
                        @click="$router.push('/exam/beginexam')"
                      >开始考试</s-button>
                      <s-button
                      >开始考试</el-button>
                      <el-button
                        colorType="darkBlue"
                        disabled
                        v-else
                      >开始考试</s-button>
                      <s-button
                      >开始考试</el-button>
                      <el-button
                        colorType="red"
                        v-if="scope.row.type===2"
                      >结束考试</s-button>
                      <s-button
                      >结束考试</el-button>
                      <el-button
                        colorType="darkBlue"
                        disabled
                        v-else
                      >结束考试</s-button>
                      >结束考试</el-button>
                    </div>
                  </template>
@@ -252,4 +252,4 @@
    background-color: rgb(45, 92, 248);
  }
}
</style>
</style>
src/views/Manage/ClassManagement/Class.vue
@@ -3,31 +3,26 @@
  <div class="c">
    <div class="bg">
      <div class="main">
        <TitleIndex title='班级管理' />
        <div class="main-1">
          <div
            class="main-btn flex"
            style="justify-content:space-between"
          >
            <div>
              <s-button
                colorType="deepBlue"
              <el-button
                type="primary"
                style="margin-right:20px;"
                @click="$router.push('/manage/class-management/Class-staff')"
              >新增班级</s-button>
                @click="handlerAdd"
              >新增班级</el-button>
            </div>
            <div
              class="flex"
              style="align-items:center"
            >
              <p style="padding-right:10px">排序方式</p>
              <el-select>
                <el-option></el-option>
              </el-select>
              <p style="margin-left:20px;margin-right: 10px;">所在单位</p>
              <el-select>
                <el-option></el-option>
              </el-select>
<!--              <el-select v-model="searchData.deptId">-->
<!--                <el-option></el-option>-->
<!--              </el-select>-->
            </div>
          </div>
          <div>
@@ -89,19 +84,6 @@
                    <el-button>通知</el-button>
                    <el-button @click="routersTo()">成员管理</el-button>
                    <el-button>添加成员</el-button>
                    <el-select
                      v-model="value"
                      style="width:74px;margin-left: 10px;"
                      placeholder="选择"
                    >
                      <el-option
                        v-for="item in options"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value"
                      >
                      </el-option>
                    </el-select>
                  </template>
                </el-table-column>
              </el-table>
@@ -110,125 +92,147 @@
              class="flex"
              style="justify-content:center;margin-top:20px;"
            >
              <el-pagination
                background
                layout="prev, pager, next"
                :total="1000"
              >
              </el-pagination>
              <pagination v-show="total>0" :total="total" :page.sync="searchForm.pageIndex" :limit.sync="searchForm.pageSize"
                          @pagination="page"/>
            </div>
          </div>
        </div>
      </div>
    </div>
    <el-dialog
      :title="title"
      :visible.sync="open"
      width="700px"
      :before-close="handleClose">
      <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
        <el-form-item label="班级名称" prop="className">
          <el-input v-model="form.className" size="small"></el-input>
        </el-form-item>
        <el-form-item label="班级时间" required>
          <el-col :span="11">
            <el-form-item prop="startTime">
              <el-date-picker
                v-model="form.startTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="开始日期">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col class="line" :span="2">-</el-col>
          <el-col :span="11">
            <el-form-item prop="endTime">
              <el-date-picker
                v-model="form.endTime"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="结束日期">
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-form-item>
        <el-form-item label="备注信息" prop="remark">
          <el-input type="textarea" v-model="form.remark" size="small"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="handleClose">取 消</el-button>
        <el-button type="primary" @click="submitForm">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import { addClasses, editClasses, getClassess } from "@/api/classes";
import Pagination from "@/components/Pagination"
export default {
  components: {Pagination},
  data() {
    return {
      total: 0,
      open: false,
      title: "",
      value: "",
      searchData: {
      searchForm: {
        subject: null,
        pageSize: 10,
        pageNum: 1
      },
      form: {
        id: null,
        className: "",
        status: "",
        verifyStatus: "",
        startTime: null,
        endTime: null,
        remark: ""
      },
      rules: {
        className: [
          { required: true, message: '请输入班级名称', trigger: 'blur' },
          { min: 1, max: 30, message: '长度在 1 到 30 个字符', trigger: 'blur' }
        ],
        startTime: [
          { required: true, message: '请选择班级开始时间', trigger: 'change' },
        ],
        endTime: [
          { required: true, message: '请选择班级结束时间', trigger: 'change' },
        ],
      },
      tableData: [
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
        {
          class: "软件工程",
          grade: "2019级",
          unit: "螺丝部",
          teacher: "秋梨膏",
          phone: "182-9384-9302",
          email: "info@exaple.com",
          openingTime: "2022/3/29",
        },
      ],
      pageData: {
        size: 7,
        page: 1,
      },
    };
  },
  methods: {
    // // 查看详情
    // detailsTo() {
    //   this.$router.push({
    //     name: "teacherDetail",
    //   });
    // },
    page() {
      getClassess(this.searchForm).then(res => {
        this.tableData = res.data.data
      })
    },
    resetForm() {
      this.form = {
        id: null,
        className: "",
        status: "",
        verifyStatus: "",
        startTime: null,
        endTime: null,
        remark: ""
      }
    },
    submitForm() {
      this.$refs['form'].validate((valid) => {
        if (valid) {
          if (this.form.id) {
            editClasses(this.form).then(res => {
              this.$message.success("修改成功")
            })
          } else {
            addClasses(this.form).then(res => {
              this.$message.success("添加班级成功")
            })
          }
          this.resetForm()
        } else {
          return false;
        }
      });
    },
    handleClose() {
      this.open = false
      this.resetForm()
    },
    handlerAdd() {
      this.open = true
      this.title = "新增班级"
    },
    // 跳转(查看班级人员情况)
    routersTo() {
      this.$router.push({
@@ -287,4 +291,4 @@
    background-color: rgb(45, 92, 248);
  }
}
</style>
</style>
src/views/Manage/Education/TeacherManage.vue
@@ -11,20 +11,20 @@
            style="justify-content:space-between"
          >
            <div>
              <s-button
              <el-button
                colorType="deepBlue"
                style="margin-right:20px;"
                @click="getPopUp"
              >新增教师</s-button>
              <s-button
              >新增教师</el-button>
              <el-button
                colorType="deepBlue"
                style="margin-right:20px;"
                plain
              >批量导出</s-button>
              <s-button
              >批量导出</el-button>
              <el-button
                colorType="deepBlue"
                plain
              >批量导入</s-button>
              >批量导入</el-button>
            </div>
            <div
              class="flex"
@@ -297,4 +297,4 @@
    background-color: rgb(45, 92, 248);
  }
}
</style>
</style>
src/views/Manage/ExaminationManagement/index.vue
@@ -10,10 +10,10 @@
            style="justify-content:space-between"
          >
            <div>
              <s-button
              <el-button
                colorType="deepBlue"
                style="margin-right:20px;"
              >新增考试</s-button>
              >新增考试</el-button>
            </div>
          </div>
          <div>
@@ -241,4 +241,4 @@
    color: aqua;
  }
}
</style>
</style>
src/views/Manage/Timetable/index.vue
@@ -106,7 +106,8 @@
                <el-row :gutter="24">
                  <el-col
                    :span="item.id*6"
                    v-for="item in scope.row.arr"
                    v-for="(item,index) in scope.row.arr"
                    :key="index"
                  >
                    <div class="grid-content bg-purple flex">
                      <span>课程名称</span>
@@ -128,7 +129,8 @@
                <el-row :gutter="24">
                  <el-col
                    :span="item.id*6"
                    v-for="item in scope.row.arr1"
                    v-for="(item,index) in scope.row.arr1"
                    :key="index"
                  >
                    <div class="grid-content bg-purple flex">
                      <span>课程名称</span>
src/views/Teach/Teach.vue
@@ -3,7 +3,7 @@
        <div class="bg">
            <div class="main">
                <div class="list">
                    <div class="card list-con" v-for="item in curriculum">
                    <div class="card list-con" v-for="(item,index) in curriculum" :key="index">
                        <img src="@/assets/img/teach/list-card-bg.jpg" style="height:220px;width:350px" alt=""
                            v-if="!item.start">
                        <video :id="`video-${item.id}`" v-show="item.start" height="220px" width="350px"></video>
@@ -12,8 +12,8 @@
                            <span>{{ item.time }}</span>
                        </div>
                        <div class="list-con-op">
                            <s-button colorType="default">资料上传</s-button>
                            <s-button colorType="deepBlue" @click="handleStart(item)">开始上课</s-button>
                            <el-button colorType="default">资料上传</el-button>
                            <el-button colorType="deepBlue" @click="handleStart(item)">开始上课</el-button>
                        </div>
                    </div>
                </div>
@@ -27,8 +27,8 @@
        <s-dialog v-model="dialog" title="请选择授课方式">
            <template>
                <div style="width:300px; padding:20px; justify-content:space-between" class="flex">
                    <s-button colorType="default">语音授课</s-button>
                    <s-button colorType="deepBlue" @click="selectScreen">视频授课</s-button>
                    <el-button colorType="default">语音授课</el-button>
                    <el-button colorType="deepBlue" @click="selectScreen">视频授课</el-button>
                </div>
            </template>
        </s-dialog>