This commit is contained in:
mindskip
2020-12-29 16:16:39 +08:00
parent 60882a1d47
commit 65d0169aa7
177 changed files with 215 additions and 1957 deletions

View File

@@ -20,4 +20,3 @@ yarn-error.log*
*.njsproj
*.sln
*.sw?
/package-lock.json

View File

@@ -1,6 +1,6 @@
{
"name": "xzs-admin",
"version": "3.1.0",
"version": "3.0.8",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -12936,9 +12936,9 @@
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.1.2",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.1.2.tgz?cache=0&sync_timestamp=1608188009078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.1.2.tgz",
"integrity": "sha1-XAO2xQ0qX5g8fOuhXFDXjKKymPQ=",
"version": "npm:vue-loader@16.0.0-rc.2",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-rc.2.tgz",
"integrity": "sha1-tqfn8w0o81ZZqD3kH0oYMaQjKgQ=",
"dev": true,
"optional": true,
"requires": {
@@ -13006,7 +13006,7 @@
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033330722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
"resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true,
"optional": true,

View File

@@ -1,6 +1,6 @@
{
"name": "xzs-admin",
"version": "3.1.0",
"version": "3.0.8",
"author": "武汉思维跳跃科技有限公司",
"description": "学之思管理系统",
"license": "AGPL-3.0",

View File

@@ -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>TEKSystem管理系统</title>
<title>学之思管理系统</title>
<style>
html {
height: 100%;

View File

@@ -1,9 +0,0 @@
import { post } from '@/utils/request'
export default {
list: query => post('/api/admin/industry/list'),
pageList: query => post('/api/admin/industry/page', query),
edit: query => post('/api/admin/industry/edit', query),
select: id => post('/api/admin/industry/select/' + id),
deleteSubject: id => post('/api/admin/industry/delete/' + id)
}

View File

@@ -1,9 +1,9 @@
import { post } from '@/utils/request'
export default {
list: query => post('/api/admin/skill/list'),
pageList: query => post('/api/admin/skill/page', query),
edit: query => post('/api/admin/skill/edit', query),
select: id => post('/api/admin/skill/select/' + id),
deleteSubject: id => post('/api/admin/skill/delete/' + id)
list: query => post('/api/admin/education/subject/list'),
pageList: query => post('/api/admin/education/subject/page', query),
edit: query => post('/api/admin/education/subject/edit', query),
select: id => post('/api/admin/education/subject/select/' + id),
deleteSubject: id => post('/api/admin/education/subject/delete/' + id)
}

View File

@@ -24,7 +24,7 @@ export default {
},
data () {
return {
title: 'TEKSystem管理系统'
title: '学之思管理系统'
}
}
}

View File

@@ -9,7 +9,7 @@
</div>
<app-main />
<div class="foot-copyright">
<span>Copyright © 2020 TekSystems</span>
<span>Copyright © 2020 武汉思维跳跃科技有限公司 版权所有</span>
</div>
<back-to-top :visibility-height="100" :back-position="0" transition-name="fade" ref="backTop"/>
</div>

View File

@@ -172,30 +172,17 @@ const constantRoutes = [
},
alwaysShow: true,
children: [
{
path: 'industry/list',
component: () => import('@/views/education/industry/list'),
name: 'EducationIndustryPage',
meta: { title: 'industry列表', noCache: true }
},
{
path: 'industry/edit',
component: () => import('@/views/education/industry/edit'),
name: 'EducationIndustryEditPage',
meta: { title: 'industry编辑', noCache: true, activeMenu: '/education/industry/list' },
hidden: true
},
{
path: 'subject/list',
component: () => import('@/views/education/subject/list'),
name: 'EducationSubjectPage',
meta: { title: 'skill列表', noCache: true }
meta: { title: '学科列表', noCache: true }
},
{
path: 'subject/edit',
component: () => import('@/views/education/subject/edit'),
name: 'EducationSubjectEditPage',
meta: { title: 'skill编辑', noCache: true, activeMenu: '/education/subject/list' },
meta: { title: '学科编辑', noCache: true, activeMenu: '/education/subject/list' },
hidden: true
}
]

View File

@@ -18,7 +18,7 @@ const state = {
typeEnum: [{ key: 1, value: '单选题' }, { key: 2, value: '多选题' }, { key: 3, value: '判断题' }, { key: 4, value: '填空题' }, { key: 5, value: '简答题' }],
editUrlEnum: [{ key: 1, value: '/exam/question/edit/singleChoice', name: '单选题' },
{ key: 2, value: '/exam/question/edit/multipleChoice', name: '多选题' },
{ key: 3, value: '/exam/question/edit/trueFaltagsViewse', name: '判断题' },
{ key: 3, value: '/exam/question/edit/trueFalse', name: '判断题' },
{ key: 4, value: '/exam/question/edit/gapFilling', name: '填空题' },
{ key: 5, value: '/exam/question/edit/shortAnswer', name: '简答题' }]
}
@@ -33,9 +33,7 @@ const getters = {
}
// actions
const actions = {
}
const actions = {}
// mutations
const mutations = {}

View File

@@ -1,87 +0,0 @@
<template>
<div class="app-container">
<el-form :model="form" ref="form" label-width="100px" v-loading="formLoading">
<el-form-item label="industry" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
<!-- <el-form-item label="年级:" required>
<el-select v-model="form.level" placeholder="年级">
<el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item> -->
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import { mapGetters, mapState, mapActions } from 'vuex'
import industryApi from '@/api/industry'
export default {
data () {
return {
form: {
id: null,
name: '',
level: 1,
levelName: ''
},
formLoading: false
}
},
created () {
let id = this.$route.query.id
let _this = this
if (id && parseInt(id) !== 0) {
_this.formLoading = true
industryApi.select(id).then(re => {
_this.form = re.response
_this.formLoading = false
})
}
},
methods: {
submitForm () {
let _this = this
this.formLoading = true
this.form.levelName = this.enumFormat(this.levelEnum, this.form.level)
industryApi.edit(this.form).then(data => {
if (data.code === 1) {
_this.$message.success(data.message)
_this.delCurrentView(_this).then(() => {
_this.$router.push('/education/industry/list')
})
} else {
_this.$message.error(data.message)
_this.formLoading = false
}
}).catch(e => {
_this.formLoading = false
})
},
resetForm () {
this.$refs['form'].resetFields()
this.form = {
id: null,
name: '',
level: 1,
levelName: ''
}
},
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })
},
computed: {
...mapGetters('enumItem', [
'enumFormat'
]),
...mapState('enumItem', {
levelEnum: state => state.user.levelEnum
})
}
}
</script>

View File

@@ -1,92 +0,0 @@
<template>
<div class="app-container">
<el-form :model="queryParam" ref="queryForm" :inline="true">
<!--<el-form-item label="年级:">
<el-select v-model="queryParam.level" placeholder="年级" clearable="">
<el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item>-->
<el-form-item>
<el-button type="primary" @click="submitForm">查询</el-button>
<router-link :to="{path:'/education/industry/edit'}" class="link-left">
<el-button type="primary">添加</el-button>
</router-link>
</el-form-item>
</el-form>
<el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
<el-table-column prop="id" label="Id" />
<el-table-column prop="name" label="industry"/>
<el-table-column width="220px" label="操作" align="center">
<template slot-scope="{row}">
<router-link :to="{path:'/education/subject/edit', query:{id:row.id}}" class="link-left">
<el-button size="mini">编辑</el-button>
</router-link>
<el-button size="mini" type="danger" @click="delSubject(row)" class="link-left">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total>0" :total="total" :page.sync="queryParam.pageIndex" :limit.sync="queryParam.pageSize"
@pagination="search"/>
</div>
</template>
<script>
import { mapGetters, mapState } from 'vuex'
import Pagination from '@/components/Pagination'
import industryApi from '@/api/industry'
export default {
components: { Pagination },
data () {
return {
queryParam: {
level: null,
pageIndex: 1,
pageSize: 10
},
listLoading: true,
tableData: [],
total: 0
}
},
created () {
this.search()
},
methods: {
search () {
this.listLoading = true
industryApi.pageList(this.queryParam).then(data => {
const re = data.response
this.tableData = re.list
this.total = re.total
this.queryParam.pageIndex = re.pageNum
this.listLoading = false
})
},
submitForm () {
this.queryParam.pageIndex = 1
this.search()
},
delSubject (row) {
let _this = this
industryApi.deleteSubject(row.id).then(re => {
if (re.code === 1) {
_this.search()
_this.$message.success(re.message)
} else {
_this.$message.error(re.message)
}
})
}
},
computed: {
...mapGetters('enumItem', [
'enumFormat'
]),
...mapState('enumItem', {
levelEnum: state => state.user.levelEnum
})
}
}
</script>

View File

@@ -2,14 +2,14 @@
<div class="app-container">
<el-form :model="form" ref="form" label-width="100px" v-loading="formLoading">
<el-form-item label="skill" required>
<el-form-item label="学科" required>
<el-input v-model="form.name"></el-input>
</el-form-item>
<!-- <el-form-item label="年级:" required>
<el-form-item label="年级:" required>
<el-select v-model="form.level" placeholder="年级">
<el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item> -->
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>

View File

@@ -1,11 +1,11 @@
<template>
<div class="app-container">
<el-form :model="queryParam" ref="queryForm" :inline="true">
<!--<el-form-item label="年级:">
<el-form-item label="年级:">
<el-select v-model="queryParam.level" placeholder="年级" clearable="">
<el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item>-->
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">查询</el-button>
<router-link :to="{path:'/education/subject/edit'}" class="link-left">
@@ -16,9 +16,8 @@
<el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
<el-table-column prop="id" label="Id" />
<el-table-column prop="name" label="skill"/>
<!-- <el-table-column prop="industry" label="industry"/> -->
<!-- <el-table-column prop="levelName" label="年级" /> -->
<el-table-column prop="name" label="学科"/>
<el-table-column prop="levelName" label="年级" />
<el-table-column width="220px" label="操作" align="center">
<template slot-scope="{row}">
<router-link :to="{path:'/education/subject/edit', query:{id:row.id}}" class="link-left">

View File

@@ -30,9 +30,7 @@
<div class="q-title" v-html="question.title"/>
</div>
<div v-else-if="qType==5" v-loading="qLoading">
题干<div class="q-title" v-html="question.title"/>
答案<div class="q-title" v-html="question.correct"/>
解析<div class="q-title" v-html="question.analyze"/>
<div class="q-title" v-html="question.title"/>
</div>
<div v-else>
</div>

View File

@@ -209,19 +209,6 @@ export default {
},
resetForm () {
this.$refs['form'].resetFields()
this.form = {
id: null,
questionType: 4,
gradeLevel: null,
subjectId: null,
title: '',
items: [
],
analyze: '',
correct: '',
score: '',
difficult: 0
}
},
...mapActions('exam', { initSubject: 'initSubject' }),
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })

View File

@@ -196,24 +196,6 @@ export default {
},
resetForm () {
this.$refs['form'].resetFields()
this.form = {
id: null,
questionType: 2,
gradeLevel: null,
subjectId: null,
title: '',
items: [
{ id: null, prefix: 'A', content: '' },
{ id: null, prefix: 'B', content: '' },
{ id: null, prefix: 'C', content: '' },
{ id: null, prefix: 'D', content: '' }
],
analyze: '',
correct: '',
correctArray: [],
score: '',
difficult: 0
}
},
...mapActions('exam', { initSubject: 'initSubject' }),
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })

View File

@@ -1,14 +1,14 @@
<template>
<div class="app-container">
<el-form :model="form" ref="form" label-width="100px" v-loading="formLoading" :rules="rules">
<el-form-item label="industry" prop="industryId" required>
<el-select v-model="form.industryId" placeholder="industry" @change="levelChange">
<el-option v-for="item in industryFilter" :key="item.id" :value="item.id" :label="item.name"></el-option>
<el-form-item label="年级" prop="gradeLevel" required>
<el-select v-model="form.gradeLevel" placeholder="年级" @change="levelChange">
<el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="skill" prop="skillId" required>
<el-select v-model="form.skillId" placeholder="skill" >
<el-option v-for="item in subjectFilter" :key="item.id" :value="item.id" :label="item.name"></el-option>
<el-form-item label="学科" prop="subjectId" required>
<el-select v-model="form.subjectId" placeholder="学科" >
<el-option v-for="item in subjectFilter" :key="item.id" :value="item.id" :label="item.name+' ( '+item.levelName+' )'"></el-option>
</el-select>
</el-form-item>
<el-form-item label="题干:" prop="title" required>
@@ -20,9 +20,9 @@
<el-form-item label="解析:" prop="analyze" required>
<el-input v-model="form.analyze" @focus="inputClick(form,'analyze')" />
</el-form-item>
<!-- <el-form-item label="分数:" prop="score" required>
<el-form-item label="分数:" prop="score" required>
<el-input-number v-model="form.score" :precision="1" :step="1" :max="100"></el-input-number>
</el-form-item> -->
</el-form-item>
<el-form-item label="难度:" required>
<el-rate v-model="form.difficult" class="question-item-rate"></el-rate>
</el-form-item>
@@ -50,7 +50,6 @@ import QuestionShow from '../components/Show'
import Ueditor from '@/components/Ueditor'
import { mapGetters, mapState, mapActions } from 'vuex'
import questionApi from '@/api/question'
import industryApi from '@/api/industry'
export default {
components: {
@@ -61,17 +60,16 @@ export default {
form: {
id: null,
questionType: 5,
industryId: null,
skillId: null,
gradeLevel: null,
subjectId: null,
title: '',
items: [],
analyze: '',
correct: '',
score: '0',
score: '',
difficult: 0
},
subjectFilter: null,
industryFilter: null,
formLoading: false,
rules: {
gradeLevel: [
@@ -120,10 +118,6 @@ export default {
_this.formLoading = false
})
}
industryApi.list().then(re => {
this.industryFilter=re.response;
})
},
methods: {
editorReady (instance) {
@@ -168,24 +162,10 @@ export default {
},
resetForm () {
this.$refs['form'].resetFields()
this.form = {
id: null,
questionType: 5,
gradeLevel: null,
subjectId: null,
title: '',
items: [],
analyze: '',
correct: '',
score: '',
difficult: 0
}
},
levelChange () {
this.form.subjectId = null
this.subjectFilter = this.subjects.filter(data => data.level === this.form.gradeLevel)
console.log(this.subjectFilter);
},
showQuestion () {
this.questionShow.dialog = true

View File

@@ -173,21 +173,6 @@ export default {
},
resetForm () {
this.$refs['form'].resetFields()
this.form = {
id: null,
questionType: 3,
gradeLevel: null,
subjectId: null,
title: '',
items: [
{ id: null, prefix: 'A', content: '是' },
{ id: null, prefix: 'B', content: '否' }
],
analyze: '',
correct: '',
score: '',
difficult: 0
}
},
levelChange () {
this.form.subjectId = null

View File

@@ -4,15 +4,15 @@
<el-form-item label="题目ID">
<el-input v-model="queryParam.id" clearable></el-input>
</el-form-item>
<el-form-item label="industry">
<el-select v-model="queryParam.industry" placeholder="industry" @change="levelChange" clearable>
<el-option v-for="item in industryFilter" :key="item.id" :value="item.id" :label="item.name"></el-option>
<el-form-item label="年级">
<el-select v-model="queryParam.level" placeholder="年级" @change="levelChange" clearable>
<el-option v-for="item in levelEnum" :key="item.key" :value="item.key" :label="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="skill">
<el-select v-model="queryParam.skill" clearable>
<el-form-item label="学科">
<el-select v-model="queryParam.subjectId" clearable>
<el-option v-for="item in subjectFilter" :key="item.id" :value="item.id"
:label="item.name"></el-option>
:label="item.name+' ( '+item.levelName+' )'"></el-option>
</el-select>
</el-form-item>
<el-form-item label="题型:">
@@ -32,11 +32,10 @@
</el-form>
<el-table v-loading="listLoading" :data="tableData" border fit highlight-current-row style="width: 100%">
<el-table-column prop="id" label="Id" width="90px"/>
<el-table-column prop="industryName" label="industry" width="120px"/>
<el-table-column prop="skillName" label="skill" width="120px"/>
<el-table-column prop="subjectId" label="学科" :formatter="subjectFormatter" width="120px"/>
<el-table-column prop="questionType" label="题型" :formatter="questionTypeFormatter" width="70px"/>
<el-table-column prop="shortTitle" label="题干" show-overflow-tooltip/>
<!-- <el-table-column prop="score" label="分数" width="60px"/> -->
<el-table-column prop="score" label="分数" width="60px"/>
<el-table-column prop="difficult" label="难度" width="60px"/>
<el-table-column prop="createTime" label="创建时间" width="160px"/>
<el-table-column label="操作" align="center" width="220px">
@@ -60,7 +59,6 @@ import { mapGetters, mapState, mapActions } from 'vuex'
import Pagination from '@/components/Pagination'
import QuestionShow from './components/Show'
import questionApi from '@/api/question'
import industryApi from '@/api/industry'
export default {
components: { Pagination, QuestionShow },
@@ -69,14 +67,13 @@ export default {
queryParam: {
id: null,
questionType: null,
skill: null,
industry: null,
level: null,
subjectId: null,
pageIndex: 1,
pageSize: 10
},
subjectFilter: null,
industryFilter: null,
listLoading: false,
listLoading: true,
tableData: [],
total: 0,
questionShow: {
@@ -90,13 +87,6 @@ export default {
created () {
this.initSubject()
this.search()
let _this = this
this.initSubject(function () {
_this.subjectFilter = _this.subjects
})
industryApi.list().then(re => {
this.industryFilter=re.response;
})
},
methods: {
submitForm () {

View File

@@ -3,7 +3,7 @@
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on" label-position="left">
<div class="title-container">
<h3 class="title">TekSystem管理系统</h3>
<h3 class="title">学之思管理系统</h3>
</div>
<el-form-item prop="userName">
@@ -52,7 +52,7 @@
</el-form>
<div class="account-foot-copyright">
<span>Copyright © 2020 TekSystem 版权所有</span>
<span>Copyright © 2020 武汉思维跳跃科技有限公司 版权所有</span>
</div>
</div>
</template>

View File

@@ -20,7 +20,7 @@
</el-select>
</el-form-item>
<el-form-item label="出生日期:">
<el-date-picker v-model="form.birthDay" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"/>
<el-date-picker v-model="form.birthDay" type="date" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="手机:">
<el-input v-model="form.phone"></el-input>
@@ -104,7 +104,6 @@ export default {
})
},
resetForm () {
let lastId = this.form.id
this.$refs['form'].resetFields()
this.form = {
id: null,
@@ -118,7 +117,6 @@ export default {
birthDay: null,
phone: null
}
this.form = lastId
},
...mapActions('tagsView', { delCurrentView: 'delCurrentView' })
},

View File

@@ -20,7 +20,7 @@
</el-select>
</el-form-item>
<el-form-item label="出生日期:">
<el-date-picker v-model="form.birthDay" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" />
<el-date-picker v-model="form.birthDay" type="date" placeholder="选择日期" />
</el-form-item>
<el-form-item label="手机:">
<el-input v-model="form.phone"></el-input>

View File

@@ -20,7 +20,7 @@
</el-select>
</el-form-item>
<el-form-item label="出生日期:">
<el-date-picker v-model="form.birthDay" value-format="yyyy-MM-dd" type="date" placeholder="选择日期" />
<el-date-picker v-model="form.birthDay" type="date" placeholder="选择日期" />
</el-form-item>
<el-form-item label="手机:">
<el-input v-model="form.phone"></el-input>

View File

@@ -20,4 +20,3 @@ yarn-error.log*
*.njsproj
*.sln
*.sw?
/package-lock.json

View File

@@ -1,6 +1,6 @@
{
"name": "xzs-student",
"version": "3.1.0",
"version": "3.0.8",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -2119,16 +2119,6 @@
"integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
"dev": true
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz",
"integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"cacache": {
"version": "13.0.1",
"resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz",
@@ -2155,34 +2145,6 @@
"unique-filename": "^1.1.1"
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
"integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
"integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
"integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
"dev": true,
"optional": true
},
"debug": {
"version": "4.3.1",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-4.3.1.tgz?cache=0&sync_timestamp=1605791507452&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.3.1.tgz",
@@ -2213,25 +2175,6 @@
"path-exists": "^4.0.0"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
"dev": true,
"optional": true
},
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
"integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz?cache=0&sync_timestamp=1597081764621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flocate-path%2Fdownload%2Flocate-path-5.0.0.tgz",
@@ -2302,16 +2245,6 @@
"minipass": "^3.1.1"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1608033330722&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"terser-webpack-plugin": {
"version": "2.3.8",
"resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.8.tgz?cache=0&sync_timestamp=1597229611059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.8.tgz",
@@ -2328,18 +2261,6 @@
"terser": "^4.6.12",
"webpack-sources": "^1.4.3"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.1.2",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.1.2.tgz?cache=0&sync_timestamp=1608188009078&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.1.2.tgz",
"integrity": "sha1-XAO2xQ0qX5g8fOuhXFDXjKKymPQ=",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
}
}
}
},
@@ -13009,6 +12930,87 @@
}
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.0.0-rc.2",
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-rc.2.tgz",
"integrity": "sha1-tqfn8w0o81ZZqD3kH0oYMaQjKgQ=",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz",
"integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
"integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
"integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
"integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz",
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
"dev": true,
"optional": true
},
"loader-utils": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
"integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
"dev": true,
"optional": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^2.1.2"
}
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1606205060845&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-router": {
"version": "3.4.9",
"resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.9.tgz?cache=0&sync_timestamp=1604612037000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.9.tgz",

View File

@@ -1,6 +1,6 @@
{
"name": "xzs-student",
"version": "3.1.0",
"version": "3.0.8",
"author": "武汉思维跳跃科技有限公司",
"description": "学之思考试系统",
"license": "AGPL-3.0",

View File

@@ -66,7 +66,7 @@
</div>
</el-footer>
<div class="foot-copyright">
<span>Copyright © 2020 TekSystem 版权所有</span>
<span>Copyright © 2020 武汉思维跳跃科技有限公司 版权所有</span>
</div>
</el-container>
</template>

View File

@@ -51,7 +51,7 @@
</el-select>
</el-form-item>
<el-form-item label="出生日期:">
<el-date-picker v-model="form.birthDay" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"/>
<el-date-picker v-model="form.birthDay" type="date" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="手机:">
<el-input v-model="form.phone"></el-input>