Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
school-paper-admin-front
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
school-paper
school-paper-admin-front
Commits
7c5063c1
Commit
7c5063c1
authored
Jul 26, 2023
by
H.wb.wang.peixun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
接口对接
parent
fbd877c9
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
385 additions
and
164 deletions
+385
-164
src/api/school-paper/dict.js
+5
-5
src/api/school-paper/questionBank.js
+3
-2
src/api/school-paper/testPaper.js
+10
-2
src/components/ImageUpload/index.vue
+81
-32
src/config/index.js
+12
-0
src/views/school-paper/banner/index.vue
+1
-1
src/views/school-paper/dict/index.vue
+14
-40
src/views/school-paper/questionBank/index.vue
+9
-16
src/views/school-paper/testPaper/components/treeselect.vue
+111
-0
src/views/school-paper/testPaper/index.vue
+56
-42
src/views/system/role/index.vue
+2
-2
src/views/system/user/index.vue
+78
-20
vue.config.js
+3
-2
No files found.
src/api/school-paper/dict.js
View file @
7c5063c1
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
...
@@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询字典列表
// 查询字典列表
export
function
listDict
(
query
)
{
export
function
listDict
(
query
)
{
return
request
({
return
request
({
url
:
'/school-paper/
dict
/list'
,
url
:
'/school-paper/
question-type
/list'
,
method
:
'get'
,
method
:
'get'
,
params
:
query
params
:
query
})
})
...
@@ -12,7 +12,7 @@ export function listDict(query) {
...
@@ -12,7 +12,7 @@ export function listDict(query) {
// 查询字典详细
// 查询字典详细
export
function
getDict
(
id
)
{
export
function
getDict
(
id
)
{
return
request
({
return
request
({
url
:
'/school-paper/
dict
/'
+
id
,
url
:
'/school-paper/
question-type
/'
+
id
,
method
:
'get'
method
:
'get'
})
})
}
}
...
@@ -20,7 +20,7 @@ export function getDict(id) {
...
@@ -20,7 +20,7 @@ export function getDict(id) {
// 新增字典
// 新增字典
export
function
addDict
(
data
)
{
export
function
addDict
(
data
)
{
return
request
({
return
request
({
url
:
'/school-paper/
dict
'
,
url
:
'/school-paper/
question-type
'
,
method
:
'post'
,
method
:
'post'
,
data
:
data
data
:
data
})
})
...
@@ -29,7 +29,7 @@ export function addDict(data) {
...
@@ -29,7 +29,7 @@ export function addDict(data) {
// 修改字典
// 修改字典
export
function
updateDict
(
data
)
{
export
function
updateDict
(
data
)
{
return
request
({
return
request
({
url
:
'/school-paper/
dict
'
,
url
:
'/school-paper/
question-type
'
,
method
:
'put'
,
method
:
'put'
,
data
:
data
data
:
data
})
})
...
@@ -38,7 +38,7 @@ export function updateDict(data) {
...
@@ -38,7 +38,7 @@ export function updateDict(data) {
// 删除字典
// 删除字典
export
function
delDict
(
id
)
{
export
function
delDict
(
id
)
{
return
request
({
return
request
({
url
:
'/school-paper/
dict
/'
+
id
,
url
:
'/school-paper/
question-type
/'
+
id
,
method
:
'delete'
method
:
'delete'
})
})
}
}
src/api/school-paper/questionBank.js
View file @
7c5063c1
...
@@ -43,9 +43,9 @@ export function updateQuestionBank(data) {
...
@@ -43,9 +43,9 @@ export function updateQuestionBank(data) {
}
}
// 删除题库主
// 删除题库主
export
function
delQuestionBank
(
id
)
{
export
function
delQuestionBank
(
id
s
)
{
return
request
({
return
request
({
url
:
'/school-paper/questionBank/'
+
id
,
url
:
'/school-paper/questionBank/'
+
id
s
,
method
:
'delete'
method
:
'delete'
})
})
}
}
\ No newline at end of file
src/api/school-paper/testPaper.js
View file @
7c5063c1
...
@@ -16,11 +16,10 @@ export function getTestPaper(id) {
...
@@ -16,11 +16,10 @@ export function getTestPaper(id) {
method
:
'get'
method
:
'get'
})
})
}
}
// 新增试卷
// 新增试卷
export
function
addTestPaper
(
data
)
{
export
function
addTestPaper
(
data
)
{
return
request
({
return
request
({
url
:
'/school-paper/testPaper'
,
url
:
'/school-paper/testPaper
/randomGeneration
'
,
method
:
'post'
,
method
:
'post'
,
data
:
data
data
:
data
})
})
...
@@ -42,3 +41,12 @@ export function delTestPaper(id) {
...
@@ -42,3 +41,12 @@ export function delTestPaper(id) {
method
:
'delete'
method
:
'delete'
})
})
}
}
// 查询题库主列表
export
function
questionType
(
query
)
{
return
request
({
url
:
'/school-paper/question-type/list'
,
method
:
'get'
,
params
:
query
})
}
src/components/ImageUpload/index.vue
View file @
7c5063c1
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
:headers=
"headers"
:headers=
"headers"
:file-list=
"fileList"
:file-list=
"fileList"
:on-preview=
"handlePictureCardPreview"
:on-preview=
"handlePictureCardPreview"
:class=
"
{
hide: this.fileList.length >= this.limit
}"
:class=
"
{
hide: this.fileList.length >= this.limit
}"
>
>
<i
class=
"el-icon-plus"
></i>
<i
class=
"el-icon-plus"
></i>
</el-upload>
</el-upload>
...
@@ -23,8 +23,12 @@
...
@@ -23,8 +23,12 @@
<!-- 上传提示 -->
<!-- 上传提示 -->
<div
class=
"el-upload__tip"
slot=
"tip"
v-if=
"showTip"
>
<div
class=
"el-upload__tip"
slot=
"tip"
v-if=
"showTip"
>
请上传
请上传
<template
v-if=
"fileSize"
>
大小不超过
<b
style=
"color: #f56c6c"
>
{{
fileSize
}}
MB
</b>
</
template
>
<template
v-if=
"fileSize"
>
<
template
v-if=
"fileType"
>
格式为
<b
style=
"color: #f56c6c"
>
{{
fileType
.
join
(
"/"
)
}}
</b>
</
template
>
大小不超过
<b
style=
"color: #f56c6c"
>
{{
fileSize
}}
MB
</b>
</
template
>
<
template
v-if=
"fileType"
>
格式为
<b
style=
"color: #f56c6c"
>
{{
fileType
.
join
(
"/"
)
}}
</b>
</
template
>
的文件
的文件
</div>
</div>
...
@@ -67,8 +71,8 @@ export default {
...
@@ -67,8 +71,8 @@ export default {
// 是否显示提示
// 是否显示提示
isShowTip
:
{
isShowTip
:
{
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
,
}
}
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -78,40 +82,68 @@ export default {
...
@@ -78,40 +82,68 @@ export default {
dialogVisible
:
false
,
dialogVisible
:
false
,
hideUpload
:
false
,
hideUpload
:
false
,
baseUrl
:
process
.
env
.
VUE_APP_BASE_API
,
baseUrl
:
process
.
env
.
VUE_APP_BASE_API
,
uploadImgUrl
:
process
.
env
.
VUE_APP_BASE_API
+
"/school-paper/banner/uploadFile"
,
// 上传的图片服务器地址
// uploadImgUrl: "https://farming.nyinhong.com/api/admin/bicycle/maintenance/upload", // 上传的图片服务器地址
// uploadImgUrl: process.env.VUE_APP_BASE_API + "/admin/bicycle/maintenance/uploadFile", // 上传的图片服务器地址
// headers: {
// Authorization: "Bearer " + getToken(),
// },
uploadImgUrl
:
process
.
env
.
VUE_APP_BASE_API
+
'/admin/bicycle/maintenance/uploadFile'
,
headers
:
{
headers
:
{
Authorization
:
"Bearer "
+
getToken
(),
Authorization
:
"Bearer "
+
getToken
(),
},
},
fileList
:
[]
fileList
:
[]
,
};
};
},
},
watch
:
{
watch
:
{
value
:
{
value
:
{
async
handler
(
val
)
{
async
handler
(
val
)
{
if
(
val
)
{
if
(
val
)
{
// 首先将值转为数组
let
list
=
[];
let
list
;
// 用于确定传递的值是否是一个
if
(
Array
.
isArray
(
val
))
{
if
(
Array
.
isArray
(
val
))
{
list
=
val
;
list
=
val
;
}
else
{
}
else
{
await
listByIds
(
val
).
then
(
res
=>
{
list
.
push
(
val
);
list
=
res
.
data
;
// await listByIds(val).then(res => {
})
// list = res.data;
// })
}
}
// 然后将数组转为对象数组
this
.
fileList
=
list
.
map
((
item
)
=>
{
this
.
fileList
=
list
.
map
(
item
=>
{
// 此处name使用ossId 防止删除出现重名
// 此处name使用ossId 防止删除出现重名
item
=
{
name
:
item
.
ossId
,
url
:
item
.
url
,
ossId
:
item
.
ossId
};
if
(
item
.
hasOwnProperty
(
"url"
))
{
item
=
{
url
:
item
.
url
};
}
else
{
item
=
{
url
:
item
};
}
return
item
;
return
item
;
});
});
console
.
log
(
this
.
fileList
,
"土地你"
);
// this.uploadList = this.fileList
// 然后将数组转为对象数组
// 首先将值转为数组
// let list;
// if (Array.isArray(val)) {
// list = val;
// } else {
// await listByIds(val).then(res => {
// list = res.data;
// })
// }
// // 然后将数组转为对象数组
// this.fileList = list.map(item => {
// // 此处name使用ossId 防止删除出现重名
// item = { name: item.ossId, url: item.url, ossId: item.ossId };
// return item;
// });
}
else
{
}
else
{
this
.
fileList
=
[];
this
.
fileList
=
[];
return
[];
return
[];
}
}
},
},
deep
:
true
,
deep
:
true
,
immediate
:
true
immediate
:
true
,
}
}
,
},
},
computed
:
{
computed
:
{
// 是否显示提示
// 是否显示提示
...
@@ -138,7 +170,9 @@ export default {
...
@@ -138,7 +170,9 @@ export default {
}
}
if
(
!
isImg
)
{
if
(
!
isImg
)
{
this
.
$modal
.
msgError
(
`文件格式不正确, 请上传
${
this
.
fileType
.
join
(
"/"
)}
图片格式文件!`
);
this
.
$modal
.
msgError
(
`文件格式不正确, 请上传
${
this
.
fileType
.
join
(
"/"
)}
图片格式文件!`
);
return
false
;
return
false
;
}
}
if
(
this
.
fileSize
)
{
if
(
this
.
fileSize
)
{
...
@@ -157,8 +191,10 @@ export default {
...
@@ -157,8 +191,10 @@ export default {
},
},
// 上传成功回调
// 上传成功回调
handleUploadSuccess
(
res
,
file
)
{
handleUploadSuccess
(
res
,
file
)
{
console
.
log
(
res
,
"上传成功回调"
);
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
uploadList
.
push
({
name
:
res
.
data
.
fileName
,
url
:
res
.
data
.
url
,
ossId
:
res
.
data
.
ossId
});
// this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
this
.
uploadList
.
push
({
url
:
res
.
data
.
url
});
this
.
uploadedSuccessfully
();
this
.
uploadedSuccessfully
();
}
else
{
}
else
{
this
.
number
--
;
this
.
number
--
;
...
@@ -170,13 +206,19 @@ export default {
...
@@ -170,13 +206,19 @@ export default {
},
},
// 删除图片
// 删除图片
handleDelete
(
file
)
{
handleDelete
(
file
)
{
const
findex
=
this
.
fileList
.
map
(
f
=>
f
.
name
).
indexOf
(
file
.
name
);
console
.
log
(
file
,
'文件'
)
if
(
findex
>
-
1
)
{
const
findex
=
this
.
fileList
.
map
((
f
)
=>
f
.
url
).
indexOf
(
file
.
url
);
let
ossId
=
this
.
fileList
[
findex
].
ossId
;
if
(
findex
>
-
1
)
{
delOss
(
ossId
);
this
.
fileList
.
splice
(
findex
,
1
);
this
.
fileList
.
splice
(
findex
,
1
);
this
.
$emit
(
"input"
,
this
.
listToString
(
this
.
fileList
)
);
this
.
$emit
(
"input"
,
this
.
fileList
);
}
}
// const findex = this.fileList.map((f) => f.name).indexOf(file.name);
// if (findex > -1) {
// let ossId = this.fileList[findex].ossId;
// delOss(ossId);
// this.fileList.splice(findex, 1);
// this.$emit("input", this.listToString(this.fileList));
// }
},
},
// 上传失败
// 上传失败
handleUploadError
(
res
)
{
handleUploadError
(
res
)
{
...
@@ -185,11 +227,13 @@ export default {
...
@@ -185,11 +227,13 @@ export default {
},
},
// 上传结束处理
// 上传结束处理
uploadedSuccessfully
()
{
uploadedSuccessfully
()
{
if
(
this
.
number
>
0
&&
this
.
uploadList
.
length
===
this
.
number
)
{
// && this.uploadList.length === this.number
if
(
this
.
number
>
0
)
{
this
.
fileList
=
this
.
fileList
.
concat
(
this
.
uploadList
);
this
.
fileList
=
this
.
fileList
.
concat
(
this
.
uploadList
);
this
.
uploadList
=
[];
this
.
uploadList
=
[];
this
.
number
=
0
;
this
.
number
=
0
;
this
.
$emit
(
"input"
,
this
.
listToString
(
this
.
fileList
));
this
.
$emit
(
"input"
,
this
.
fileList
);
// this.$emit("input", this.listToString(this.fileList));
this
.
$modal
.
closeLoading
();
this
.
$modal
.
closeLoading
();
}
}
},
},
...
@@ -203,13 +247,18 @@ export default {
...
@@ -203,13 +247,18 @@ export default {
let
strs
=
""
;
let
strs
=
""
;
separator
=
separator
||
","
;
separator
=
separator
||
","
;
for
(
let
i
in
list
)
{
for
(
let
i
in
list
)
{
if
(
list
[
i
].
ossId
)
{
if
(
list
[
i
].
url
)
{
strs
+=
list
[
i
].
ossId
+
separator
;
strs
+=
list
[
i
].
url
+
separator
;
}
}
}
}
// for (let i in list) {
// if (list[i].ossId) {
// strs += list[i].ossId + separator;
// }
// }
return
strs
!=
""
?
strs
.
substr
(
0
,
strs
.
length
-
1
)
:
""
;
return
strs
!=
""
?
strs
.
substr
(
0
,
strs
.
length
-
1
)
:
""
;
}
}
,
}
}
,
};
};
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
<
style
scoped
lang=
"scss"
>
...
@@ -223,9 +272,9 @@ export default {
...
@@ -223,9 +272,9 @@ export default {
transition
:
all
0s
;
transition
:
all
0s
;
}
}
::v-deep
.el-list-enter
,
.el-list-leave-active
{
::v-deep
.el-list-enter
,
.el-list-leave-active
{
opacity
:
0
;
opacity
:
0
;
transform
:
translateY
(
0
);
transform
:
translateY
(
0
);
}
}
</
style
>
</
style
>
src/config/index.js
0 → 100644
View file @
7c5063c1
// 图片上传地址
let
hostUrl
=
'http://farming.nyinhong.com/api'
// 基础配置
const
apiBaseConfig
=
{
// 图片上传地址
domain
:
hostUrl
,
//后端请求路径
}
export
default
apiBaseConfig
\ No newline at end of file
src/views/school-paper/banner/index.vue
View file @
7c5063c1
...
@@ -100,7 +100,7 @@
...
@@ -100,7 +100,7 @@
<el-input
v-model=
"form.bannerTitle"
placeholder=
"请输入标题"
/>
<el-input
v-model=
"form.bannerTitle"
placeholder=
"请输入标题"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"上传"
prop=
"url"
>
<el-form-item
label=
"上传"
prop=
"url"
>
<imageUpload
:limit=
"1"
v-model=
"form.url"
/>
<imageUpload
:limit=
"1"
v-model=
"form.url"
ref=
"refUpload"
placeholder=
"请上传图片"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center;"
>
<div
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center;"
>
...
...
src/views/school-paper/dict/index.vue
View file @
7c5063c1
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
<el-table
v-loading=
"loading"
:data=
"dictList"
@
selection-change=
"handleSelectionChange"
>
<el-table
v-loading=
"loading"
:data=
"dictList"
@
selection-change=
"handleSelectionChange"
>
<!--
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
-->
<!--
<el-table-column
type=
"selection"
width=
"55"
align=
"center"
/>
-->
<el-table-column
label=
"类别名称"
prop=
"
nam
e"
/>
<el-table-column
label=
"类别名称"
prop=
"
typeValu
e"
/>
<!--
<el-table-column
label=
"父级id"
align=
"center"
prop=
"parentId"
/>
<!--
<el-table-column
label=
"父级id"
align=
"center"
prop=
"parentId"
/>
<el-table-column
label=
"类型:1 类别,2 阶段,3 班级"
align=
"center"
prop=
"type"
/>
<el-table-column
label=
"类型:1 类别,2 阶段,3 班级"
align=
"center"
prop=
"type"
/>
<el-table-column
label=
"名称"
align=
"center"
prop=
"typeValue"
/>
<el-table-column
label=
"名称"
align=
"center"
prop=
"typeValue"
/>
...
@@ -107,18 +107,18 @@
...
@@ -107,18 +107,18 @@
<!-- 添加或修改字典对话框 -->
<!-- 添加或修改字典对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
>
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
>
<
!-- <
el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item label="父级id" prop="parentId">
<
!-- <
el-form-item label="父级id" prop="parentId">
<el-input v-model="form.parentId" placeholder="请输入父级id" />
<el-input v-model="form.parentId" placeholder="请输入父级id" />
</el-form-item>
</el-form-item>
<el-form-item label="名称" prop="typeValue">
<el-form-item label="名称" prop="typeValue">
<el-input v-model="form.typeValue" placeholder="请输入名称" />
<el-input v-model="form.typeValue" placeholder="请输入名称" />
</el-form-item> -->
<el-form-item
label=
"类别名称"
prop=
"typeValue"
>
<el-input
v-model=
"form.typeValue"
placeholder=
"请输入类别名称"
/>
</el-form-item>
</el-form-item>
<el-form-item label="备注" prop="remark">
</el-form>
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form> -->
<el-input
v-model=
"form.remark"
placeholder=
"请输入类别名称"
/>
<div
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center;"
>
<div
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center;"
>
<el-button
:loading=
"buttonLoading"
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
:loading=
"buttonLoading"
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
...
@@ -129,7 +129,7 @@
...
@@ -129,7 +129,7 @@
</template>
</template>
<
script
>
<
script
>
//
import { listDict, getDict, delDict, addDict, updateDict } from "@/api/school-paper/dict";
import
{
listDict
,
getDict
,
delDict
,
addDict
,
updateDict
}
from
"@/api/school-paper/dict"
;
export
default
{
export
default
{
name
:
"Dict"
,
name
:
"Dict"
,
...
@@ -150,9 +150,7 @@ export default {
...
@@ -150,9 +150,7 @@ export default {
// 总条数
// 总条数
total
:
0
,
total
:
0
,
// 字典表格数据
// 字典表格数据
dictList
:
[{
dictList
:
[],
name
:
'1'
}],
// 弹出层标题
// 弹出层标题
title
:
""
,
title
:
""
,
// 是否显示弹出层
// 是否显示弹出层
...
@@ -170,29 +168,14 @@ export default {
...
@@ -170,29 +168,14 @@ export default {
form
:
{},
form
:
{},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
id
:
[
{
required
:
true
,
message
:
"主键id不能为空"
,
trigger
:
"blur"
}
],
parentId
:
[
{
required
:
true
,
message
:
"父级id不能为空"
,
trigger
:
"blur"
}
],
type
:
[
{
required
:
true
,
message
:
"类型:1 类别,2 阶段,3 班级不能为空"
,
trigger
:
"change"
}
],
typeValue
:
[
typeValue
:
[
{
required
:
true
,
message
:
"名称不能为空"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"请输入类别名称"
,
trigger
:
"blur"
}
],
remark
:
[
{
required
:
true
,
message
:
"备注不能为空"
,
trigger
:
"blur"
}
],
typeStatus
:
[
{
required
:
true
,
message
:
"状态:0正常,1删除不能为空"
,
trigger
:
"change"
}
],
],
}
}
};
};
},
},
created
()
{
created
()
{
//
this.getList();
this
.
getList
();
},
},
methods
:
{
methods
:
{
/** 查询字典列表 */
/** 查询字典列表 */
...
@@ -212,16 +195,7 @@ export default {
...
@@ -212,16 +195,7 @@ export default {
// 表单重置
// 表单重置
reset
()
{
reset
()
{
this
.
form
=
{
this
.
form
=
{
id
:
undefined
,
parentId
:
undefined
,
type
:
undefined
,
typeValue
:
undefined
,
typeValue
:
undefined
,
remark
:
undefined
,
typeStatus
:
undefined
,
createTime
:
undefined
,
updateTime
:
undefined
,
createBy
:
undefined
,
updateBy
:
undefined
};
};
this
.
resetForm
(
"form"
);
this
.
resetForm
(
"form"
);
},
},
...
@@ -245,7 +219,7 @@ export default {
...
@@ -245,7 +219,7 @@ export default {
handleAdd
()
{
handleAdd
()
{
this
.
reset
();
this
.
reset
();
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"
请输入类别名称
"
;
this
.
title
=
"
新增类别
"
;
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
...
@@ -256,7 +230,7 @@ export default {
...
@@ -256,7 +230,7 @@ export default {
this
.
loading
=
false
;
this
.
loading
=
false
;
this
.
form
=
response
.
data
;
this
.
form
=
response
.
data
;
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"修改
字典
"
;
this
.
title
=
"修改
类别
"
;
});
});
},
},
/** 提交按钮 */
/** 提交按钮 */
...
...
src/views/school-paper/questionBank/index.vue
View file @
7c5063c1
...
@@ -2,21 +2,14 @@
...
@@ -2,21 +2,14 @@
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"100px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"100px"
>
<el-form-item
label=
"题库类别"
prop=
"categoryId"
>
<el-form-item
label=
"题库类别"
prop=
"categoryId"
>
<el-select
clearable
v-model=
"queryParams.categoryId"
placeholder=
"请选择题库类别"
@
change=
"handleQuery"
>
<el-select
clearable
v-model=
"queryParams.categoryId"
placeholder=
"请选择题库类别"
>
<el-option
v-for=
"item in [
<el-option
v-for=
"item in category"
:key=
"item.id"
:label=
"item.typeValue"
:value=
"item.id"
>
{ label: '全部', value: '' },
{ label: '集合', value: '1' },
{ label: '不等式', value: '2' },
{ label: '函数', value: '3' },
{ label: '数列', value: '4' },
{ label: '立体几何', value: '5' },
]" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"习题种类:"
prop=
"species"
>
<el-form-item
label=
"习题种类:"
prop=
"species"
>
<!-- 1填空,2选择,3解答 -->
<!-- 1填空,2选择,3解答 -->
<el-select
clearable
v-model=
"queryParams.species"
placeholder=
"请选择习题种类"
@
change=
"handleQuery"
>
<el-select
clearable
v-model=
"queryParams.species"
placeholder=
"请选择习题种类"
>
<el-option
v-for=
"item in [
<el-option
v-for=
"item in [
{ label: '全部', value: '' },
{ label: '全部', value: '' },
{ label: '填空', value: '1' },
{ label: '填空', value: '1' },
...
@@ -27,7 +20,7 @@
...
@@ -27,7 +20,7 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"阶段"
prop=
"phaseId"
>
<el-form-item
label=
"阶段"
prop=
"phaseId"
>
<el-select
clearable
v-model=
"queryParams.phaseId"
placeholder=
"请选择阶段"
@
change=
"handleQuery"
>
<el-select
clearable
v-model=
"queryParams.phaseId"
placeholder=
"请选择阶段"
>
<el-option
v-for=
"item in [
<el-option
v-for=
"item in [
{ label: '全部', value: '' },
{ label: '全部', value: '' },
{ label: '高一', value: '1' },
{ label: '高一', value: '1' },
...
@@ -38,7 +31,7 @@
...
@@ -38,7 +31,7 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"类型"
prop=
"type"
>
<el-form-item
label=
"类型"
prop=
"type"
>
<el-select
clearable
v-model=
"queryParams.type"
placeholder=
"请选择类型"
@
change=
"handleQuery"
>
<el-select
clearable
v-model=
"queryParams.type"
placeholder=
"请选择类型"
>
<el-option
v-for=
"item in [
<el-option
v-for=
"item in [
{ label: '全部', value: '' },
{ label: '全部', value: '' },
{ label: '典例精讲', value: '1' },
{ label: '典例精讲', value: '1' },
...
@@ -48,7 +41,7 @@
...
@@ -48,7 +41,7 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"强度分类:"
prop=
"intensity"
>
<el-form-item
label=
"强度分类:"
prop=
"intensity"
>
<!-- 1基础,2中等,3提高 -->
<!-- 1基础,2中等,3提高 -->
<el-select
clearable
v-model=
"queryParams.intensity"
placeholder=
"请选择强度"
@
change=
"handleQuery"
>
<el-select
clearable
v-model=
"queryParams.intensity"
placeholder=
"请选择强度"
>
<el-option
v-for=
"item in [
<el-option
v-for=
"item in [
{ label: '全部', value: '' },
{ label: '全部', value: '' },
{ label: '基础', value: '1' },
{ label: '基础', value: '1' },
...
@@ -153,7 +146,7 @@
...
@@ -153,7 +146,7 @@
<div
class=
"app-container-list-item-html"
v-html=
"item.topic"
></div>
<div
class=
"app-container-list-item-html"
v-html=
"item.topic"
></div>
<div
class=
"app-container-list-item-footer"
>
<div
class=
"app-container-list-item-footer"
>
<el-button
icon=
"el-icon-edit-outline"
@
click=
"handleUpdate(item)"
>
编辑
</el-button>
<el-button
icon=
"el-icon-edit-outline"
@
click=
"handleUpdate(item)"
>
编辑
</el-button>
<el-button
icon=
"el-icon-delete"
>
删除
</el-button>
<el-button
icon=
"el-icon-delete"
@
click=
"handleDelete(item)"
>
删除
</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -230,7 +223,7 @@
...
@@ -230,7 +223,7 @@
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"题库类别:"
prop=
"categoryId"
>
<el-form-item
label=
"题库类别:"
prop=
"categoryId"
>
<el-select
clearable
v-model=
"form.categoryId"
placeholder=
"请选择题库类别"
>
<el-select
clearable
v-model=
"form.categoryId"
placeholder=
"请选择题库类别"
>
<el-option
v-for=
"item in category"
:key=
"item.id"
:label=
"item.
remark
"
:value=
"item.id"
>
<el-option
v-for=
"item in category"
:key=
"item.id"
:label=
"item.
typeValue
"
:value=
"item.id"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
...
@@ -297,7 +290,7 @@
...
@@ -297,7 +290,7 @@
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"标准答案"
prop=
"rightAnswers"
v-if=
"form.options && form.options.length"
>
<el-form-item
label=
"标准答案"
prop=
"rightAnswers"
v-if=
"form.options && form.options.length"
>
<el-radio-group
v-model=
"form.rightAnswers"
@
change=
'changeRadio'
>
<el-radio-group
v-model=
"form.rightAnswers"
>
<el-radio
:label=
"index"
v-for=
"(item, index) in form.options"
:key=
"index"
>
{{
index
|
<el-radio
:label=
"index"
v-for=
"(item, index) in form.options"
:key=
"index"
>
{{
index
|
filterType
(
form
.
options
)
}}
</el-radio>
filterType
(
form
.
options
)
}}
</el-radio>
</el-radio-group>
</el-radio-group>
...
...
src/views/school-paper/testPaper/components/treeselect.vue
0 → 100644
View file @
7c5063c1
<
template
>
<!--
<div
class=
"main"
>
<div
class=
"tree"
>
-->
<Treeselect
v-model=
"value"
:options=
"options"
:placeholder=
"'请选择人员'"
:multiple=
"multiple"
@
input=
"treeSelectInput"
@
select=
"treeSelectChange"
@
deselect=
"treeSelectDeselect"
@
search-change=
"treeSelectSearch"
@
open=
"treeSelectOpen"
@
close=
"treeSelectClose"
/>
<!--
</div>
</div>
-->
</
template
>
<
script
>
import
Treeselect
from
"@riophae/vue-treeselect"
;
import
"@riophae/vue-treeselect/dist/vue-treeselect.css"
;
import
{
listUser
,
getUser
,
delUser
,
addUser
,
updateUser
,
resetUserPwd
,
changeUserStatus
,
deptTreeSelect
}
from
"@/api/system/user"
;
// import treeData from './data/tree'
export
default
{
data
()
{
return
{
value
:
null
,
options
:
[]
}
},
props
:{
multiple
:{
type
:
false
}
},
components
:
{
Treeselect
},
mounted
(){
// 延迟模拟请求数据
setTimeout
(()
=>
{
// this.options = treeData
// this.value = [ "1682295245318119426", "1682295184152584194"] // 测试回显操作
},
300
)
this
.
getDeptTree
()
},
methods
:{
/** 查询部门下拉树结构 */
getDeptTree
()
{
deptTreeSelect
().
then
(
response
=>
{
this
.
options
=
response
.
data
;
});
},
// 选中触发(第一次回显的时候会触发,清除值的时候会触发, value值为undefined) input事件用于v-model双向绑定组件更新父组件值
treeSelectInput
(
value
,
instanceId
)
{
console
.
log
(
value
,
'input事件'
)
console
.
log
(
this
.
value
,
'this.value -- input'
)
// 这个不需要 延迟
},
// 选中触发(清除值的时候不会触发)
treeSelectChange
(
raw
,
instanceId
)
{
console
.
log
(
raw
,
'当前的对象'
)
setTimeout
(()
=>
{
// 如果用到this.value 需要setTimeout延迟一下拿到最新的值
console
.
log
(
this
.
value
,
'this.value -- select'
)
})
},
// 移除选项时触发 当设置multiple为true时生效 raw为当前移除的对象
treeSelectDeselect
(
raw
,
instanceId
)
{
console
.
log
(
raw
,
'deselect-->>'
)
},
// 搜索
treeSelectSearch
(
searchQuery
,
instanceId
)
{
console
.
log
(
searchQuery
,
'当前搜索的值'
)
},
// 展开触发
treeSelectOpen
(
instanceId
)
{
console
.
log
(
'展开了'
)
},
// 关闭触发
treeSelectClose
(
value
,
instanceId
)
{
console
.
log
(
value
,
'当前的value值'
)
},
// 字段默认 id label 用于规范化数据源
tenantIdnormalizer
(
node
,
instanceId
)
{
if
(
node
.
children
&&
!
node
.
children
.
length
)
{
delete
node
.
children
}
return
{
id
:
node
.
id
,
label
:
node
.
title
,
children
:
node
.
children
}
}
}
}
</
script
>
<
style
scoped
>
.main
{
width
:
100%
;
height
:
100%
;
padding
:
60px
0
0
200px
;
}
.main
.tree
{
width
:
240px
;
height
:
40px
;
}
::v-deep
.vue-treeselect__label
{
color
:
#606266
;
}
</
style
>
\ No newline at end of file
src/views/school-paper/testPaper/index.vue
View file @
7c5063c1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"审批阅卷"
prop=
"testName"
>
<el-form-item
label=
"审批阅卷"
prop=
"testName"
>
<el-input
v-model=
"queryParams.testName"
placeholder=
"请输入试卷名称搜索"
clearable
@
keyup
.
enter
.
native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.testName"
placeholder=
"请输入试卷名称搜索"
clearable
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"阶段"
prop=
"categoryId"
>
<el-form-item
label=
"阶段"
prop=
"categoryId"
>
<el-select
v-model=
"value"
placeholder=
"请选择"
>
<el-select
v-model=
"value"
placeholder=
"请选择"
>
...
@@ -91,7 +91,7 @@
...
@@ -91,7 +91,7 @@
<el-table-column
label=
"状态:0正常,1删除"
align=
"center"
prop=
"status"
/>
-->
<el-table-column
label=
"状态:0正常,1删除"
align=
"center"
prop=
"status"
/>
-->
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"medium "
@
click=
"handle
Query
"
>
查看试题
</el-button>
<el-button
type=
"primary"
size=
"medium "
@
click=
"handle
Update(scope.row)
"
>
查看试题
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -105,23 +105,24 @@
...
@@ -105,23 +105,24 @@
<el-form-item
label=
"试卷名称"
prop=
"testName"
>
<el-form-item
label=
"试卷名称"
prop=
"testName"
>
<el-input
v-model=
"form.testName"
placeholder=
"请输入试卷名称"
/>
<el-input
v-model=
"form.testName"
placeholder=
"请输入试卷名称"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
试卷类型
"
prop=
"categoryId"
>
<el-form-item
label=
"
题库类别
"
prop=
"categoryId"
>
<el-select
v-model=
"
value"
placeholder=
"请选择试卷类型"
>
<el-select
v-model=
"
form.categoryId"
placeholder=
"请选择题库类别"
>
<el-option
v-for=
"item in
options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value
"
>
<el-option
v-for=
"item in
category"
:key=
"item.id"
:label=
"item.typeValue"
:value=
"item.id
"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"阶段"
prop=
"phaseId"
>
<el-form-item
label=
"强度"
prop=
"intensitys"
>
<el-select
v-model=
"value"
placeholder=
"请选择阶段"
>
<el-select
v-model=
"form.intensitys"
placeholder=
"请选择强度"
multiple
collapse-tags
>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
<el-option
v-for=
"item in [
{ label: '基础', id: 1 },
{ label: '中等', id: 2 },
{ label: '提高', id: 3 },
]"
:key=
"item.id"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"班级"
prop=
"classId"
>
<el-form-item
label=
"班级"
prop=
"classId"
>
<el-select
v-model=
"value"
placeholder=
"请选择班级"
>
<treeselect
ref=
"refSelect"
:multiple=
"multiple"
/>
<el-option
v-for=
"item in options"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
class=
"mark"
>
<div
class=
"mark"
>
...
@@ -140,7 +141,7 @@
...
@@ -140,7 +141,7 @@
</el-dialog>
</el-dialog>
<!-- 详情对话框 -->
<!-- 详情对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"opens"
append-to-body
>
<el-dialog
:title=
"title"
:visible
.
sync=
"opens"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules
t
"
label-width=
"80px"
>
<el-form-item
label=
"题目"
prop=
"userId"
>
<el-form-item
label=
"题目"
prop=
"userId"
>
<editor
v-model=
"form.optionContent"
:min-height=
"192"
:iconType=
"['image']"
/>
<editor
v-model=
"form.optionContent"
:min-height=
"192"
:iconType=
"['image']"
/>
</el-form-item>
</el-form-item>
...
@@ -167,13 +168,21 @@
...
@@ -167,13 +168,21 @@
</template>
</template>
<
script
>
<
script
>
import
{
listTestPaper
,
getTestPaper
,
delTestPaper
,
addTestPaper
,
updateTestPaper
}
from
"@/api/school-paper/testPaper"
;
import
{
listTestPaper
,
getTestPaper
,
delTestPaper
,
addTestPaper
,
updateTestPaper
,
questionType
}
from
"@/api/school-paper/testPaper"
;
import
Treeselect
from
"./components/treeselect.vue"
export
default
{
export
default
{
name
:
"TestPaper"
,
name
:
"TestPaper"
,
components
:
{
Treeselect
},
data
()
{
data
()
{
return
{
return
{
markSiz
:
0
,
rightAnswers
:
''
,
srcList
:
[],
url
:
''
,
category
:
[],
// 题库类别
options
:
[],
textarea
:
''
,
markSiz
:
1
,
value
:
''
,
value
:
''
,
// 按钮loading
// 按钮loading
buttonLoading
:
false
,
buttonLoading
:
false
,
...
@@ -184,7 +193,7 @@ export default {
...
@@ -184,7 +193,7 @@ export default {
// 非单个禁用
// 非单个禁用
single
:
true
,
single
:
true
,
// 非多个禁用
// 非多个禁用
multiple
:
tru
e
,
multiple
:
fals
e
,
// 显示搜索条件
// 显示搜索条件
showSearch
:
true
,
showSearch
:
true
,
// 总条数
// 总条数
...
@@ -195,7 +204,7 @@ export default {
...
@@ -195,7 +204,7 @@ export default {
title
:
""
,
title
:
""
,
// 是否显示弹出层
// 是否显示弹出层
open
:
false
,
open
:
false
,
opens
:
tru
e
,
opens
:
fals
e
,
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNum
:
1
,
pageNum
:
1
,
...
@@ -207,34 +216,23 @@ export default {
...
@@ -207,34 +216,23 @@ export default {
totalPoints
:
undefined
,
totalPoints
:
undefined
,
status
:
undefined
,
status
:
undefined
,
},
},
rulest
:{},
// 表单参数
// 表单参数
form
:
{},
form
:
{},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
id
:
[
{
required
:
true
,
message
:
"主键id不能为空"
,
trigger
:
"blur"
}
],
testName
:
[
testName
:
[
{
required
:
true
,
message
:
"试卷名称不能为空"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"试卷名称不能为空"
,
trigger
:
"blur"
}
],
],
categoryId
:
[
categoryId
:
[
{
required
:
true
,
message
:
"
类别id不能为空
"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"
请选择题库类别
"
,
trigger
:
"blur"
}
],
],
phaseId
:
[
intensitys
:
[
{
required
:
true
,
message
:
"
阶段id不能为空
"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"
请选择强度
"
,
trigger
:
"blur"
}
],
],
classId
:
[
classId
:
[
{
required
:
true
,
message
:
"班级id不能为空"
,
trigger
:
"blur"
}
{
required
:
true
,
message
:
"班级id不能为空"
,
trigger
:
"blur"
}
],
],
totalPoints
:
[
{
required
:
true
,
message
:
"总分:100,150不能为空"
,
trigger
:
"blur"
}
],
remark
:
[
{
required
:
true
,
message
:
"备注不能为空"
,
trigger
:
"blur"
}
],
status
:
[
{
required
:
true
,
message
:
"状态:0正常,1删除不能为空"
,
trigger
:
"change"
}
],
},
},
checkList
:
[{
checkList
:
[{
html
:
""
,
html
:
""
,
...
@@ -281,8 +279,17 @@ export default {
...
@@ -281,8 +279,17 @@ export default {
},
},
created
()
{
created
()
{
this
.
getList
();
this
.
getList
();
this
.
questionType
()
},
},
methods
:
{
methods
:
{
//题库类别
questionType
()
{
questionType
({
pageSize
:
9999
,
pageNum
:
1
}).
then
((
res
)
=>
{
this
.
category
=
res
.
rows
// console.log(res,'this.questionBankList======')
})
},
clickMark
(
val
)
{
clickMark
(
val
)
{
// if(val == 1){
// if(val == 1){
this
.
markSiz
=
val
this
.
markSiz
=
val
...
@@ -305,18 +312,10 @@ export default {
...
@@ -305,18 +312,10 @@ export default {
// 表单重置
// 表单重置
reset
()
{
reset
()
{
this
.
form
=
{
this
.
form
=
{
id
:
undefined
,
testName
:
undefined
,
testName
:
undefined
,
categoryId
:
undefined
,
categoryId
:
undefined
,
phaseId
:
undefined
,
intensitys
:
undefined
,
classId
:
undefined
,
classId
:
undefined
,
totalPoints
:
undefined
,
remark
:
undefined
,
status
:
undefined
,
createTime
:
undefined
,
createBy
:
undefined
,
updateTime
:
undefined
,
updateBy
:
undefined
};
};
this
.
resetForm
(
"form"
);
this
.
resetForm
(
"form"
);
},
},
...
@@ -325,6 +324,10 @@ export default {
...
@@ -325,6 +324,10 @@ export default {
this
.
queryParams
.
pageNum
=
1
;
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
this
.
getList
();
},
},
// 查看试卷
clickView
(){
this
.
opens
=
true
},
/** 重置按钮操作 */
/** 重置按钮操作 */
resetQuery
()
{
resetQuery
()
{
this
.
resetForm
(
"queryForm"
);
this
.
resetForm
(
"queryForm"
);
...
@@ -334,13 +337,16 @@ export default {
...
@@ -334,13 +337,16 @@ export default {
handleSelectionChange
(
selection
)
{
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
ids
=
selection
.
map
(
item
=>
item
.
id
)
this
.
single
=
selection
.
length
!==
1
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
//
this.multiple = !selection.length
},
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
reset
();
this
.
reset
();
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"添加试卷"
;
this
.
title
=
"添加试卷"
;
setTimeout
(()
=>
{
this
.
$refs
[
'refSelect'
].
value
=
null
},
300
)
},
},
/** 修改按钮操作 */
/** 修改按钮操作 */
handleUpdate
(
row
)
{
handleUpdate
(
row
)
{
...
@@ -356,6 +362,14 @@ export default {
...
@@ -356,6 +362,14 @@ export default {
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
// this.form.lassId = this.$refs['refSelect'].value
this
.
$set
(
this
.
form
,
'classId'
,
this
.
$refs
[
'refSelect'
].
value
)
console
.
log
(
this
.
form
,
'this.form========'
)
if
(
this
.
markSiz
==
1
)
{
this
.
form
.
totalPoints
=
100
}
else
{
this
.
form
.
totalPoints
=
150
}
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
this
.
buttonLoading
=
true
;
this
.
buttonLoading
=
true
;
...
...
src/views/system/role/index.vue
View file @
7c5063c1
...
@@ -127,13 +127,13 @@
...
@@ -127,13 +127,13 @@
@
click=
"handleUpdate(scope.row)"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['system:role:edit']"
v-hasPermi=
"['system:role:edit']"
>
修改
</el-button>
>
修改
</el-button>
<el-button
<
!--
<
el-button
size=
"mini"
size=
"mini"
type=
"text"
type=
"text"
icon=
"el-icon-delete"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['system:role:remove']"
v-hasPermi=
"['system:role:remove']"
>
删除
</el-button>
>
删除
</el-button>
-->
<el-dropdown
size=
"mini"
@
command=
"(command) => handleCommand(command, scope.row)"
v-hasPermi=
"['system:role:edit']"
>
<el-dropdown
size=
"mini"
@
command=
"(command) => handleCommand(command, scope.row)"
v-hasPermi=
"['system:role:edit']"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-d-arrow-right"
>
更多
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-d-arrow-right"
>
更多
</el-button>
<el-dropdown-menu
slot=
"dropdown"
>
<el-dropdown-menu
slot=
"dropdown"
>
...
...
src/views/system/user/index.vue
View file @
7c5063c1
...
@@ -30,6 +30,8 @@
...
@@ -30,6 +30,8 @@
<!--用户数据-->
<!--用户数据-->
<el-col
:span=
"20"
:xs=
"24"
>
<el-col
:span=
"20"
:xs=
"24"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<div
class=
"radioClass"
>
<el-form-item
label=
"用户名称"
prop=
"userName"
>
<el-form-item
label=
"用户名称"
prop=
"userName"
>
<el-input
v-model=
"queryParams.userName"
placeholder=
"请输入用户名称"
clearable
style=
"width: 240px"
<el-input
v-model=
"queryParams.userName"
placeholder=
"请输入用户名称"
clearable
style=
"width: 240px"
@
keyup
.
enter
.
native=
"handleQuery"
/>
@
keyup
.
enter
.
native=
"handleQuery"
/>
...
@@ -70,16 +72,30 @@
...
@@ -70,16 +72,30 @@
></el-date-picker>
></el-date-picker>
</el-form-item>
-->
</el-form-item>
-->
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<!--
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
-->
<!--
<view
class=
"radioClass"
>
-->
<el-radio-group
v-model=
"queryParams.sex"
@
input=
"clickInput"
>
<el-radio-button
label=
"0"
>
学生
</el-radio-button>
<el-radio-button
label=
"1"
>
老师
</el-radio-button>
</el-radio-group>
<!--
</view>
-->
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['system:user:add']"
>
新增人员
</el-button>
<el-button
type=
"info"
plain
icon=
"el-icon-upload2"
size=
"mini"
@
click=
"handleImport"
v-hasPermi=
"['system:user:import']"
>
一键导入
</el-button>
</el-form-item>
</el-form-item>
</div>
</el-form>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<
!--
<
el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['system:user:add']"
>
新增人员
</el-button>
v-hasPermi=
"['system:user:add']"
>
新增人员
</el-button>
</el-col>
</el-col>
-->
<!--
<el-col
:span=
"1.5"
>
<!--
<el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"success"
type=
"success"
...
@@ -102,10 +118,10 @@
...
@@ -102,10 +118,10 @@
v-hasPermi=
"['system:user:remove']"
v-hasPermi=
"['system:user:remove']"
>
删除
</el-button>
>
删除
</el-button>
</el-col>
-->
</el-col>
-->
<el-col
:span=
"1.5"
>
<!--
<el-col
:span=
"1.5"
>
<el-button
type=
"info"
plain
icon=
"el-icon-upload2"
size=
"mini"
@
click=
"handleImport"
<el-button
type=
"info"
plain
icon=
"el-icon-upload2"
size=
"mini"
@
click=
"handleImport"
v-hasPermi=
"['system:user:import']"
>
导入
</el-button>
v-hasPermi=
"['system:user:import']"
>
导入
</el-button>
</el-col>
</el-col>
-->
<!--
<el-col
:span=
"1.5"
>
<!--
<el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"warning"
type=
"warning"
...
@@ -116,8 +132,8 @@
...
@@ -116,8 +132,8 @@
v-hasPermi=
"['system:user:export']"
v-hasPermi=
"['system:user:export']"
>
导出
</el-button>
>
导出
</el-button>
</el-col>
-->
</el-col>
-->
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
:columns=
"columns"
></right-toolbar>
<!--
<right-toolbar
:showSearch
.
sync=
"showSearch"
@
queryTable=
"getList"
:columns=
"columns"
></right-toolbar>
</el-row>
</el-row>
-->
<el-table
v-loading=
"loading"
:data=
"userList"
@
selection-change=
"handleSelectionChange"
>
<el-table
v-loading=
"loading"
:data=
"userList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"50"
align=
"center"
/>
<el-table-column
type=
"selection"
width=
"50"
align=
"center"
/>
...
@@ -216,7 +232,7 @@
...
@@ -216,7 +232,7 @@
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"身份"
>
<el-form-item
label=
"身份"
>
<el-select
v-model=
"form.sex"
placeholder=
"请选择身份"
@
change=
"clickChange()"
>
<el-select
v-model=
"form.sex"
placeholder=
"请选择身份"
:disabled=
"true"
@
change=
"clickChange()"
>
<el-option
v-for=
"dict in dict.type.sys_user_sex"
:key=
"dict.value"
:label=
"dict.label"
<el-option
v-for=
"dict in dict.type.sys_user_sex"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
></el-option>
:value=
"dict.value"
></el-option>
</el-select>
</el-select>
...
@@ -281,9 +297,9 @@
...
@@ -281,9 +297,9 @@
<i
class=
"el-icon-upload"
></i>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<div
class=
"el-upload__tip text-center"
slot=
"tip"
>
<div
class=
"el-upload__tip"
slot=
"tip"
>
<
!-- <
div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
<el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据
</div>
</div>
-->
<span>
仅允许导入xls、xlsx格式文件。
</span>
<span>
仅允许导入xls、xlsx格式文件。
</span>
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
<el-link
type=
"primary"
:underline=
"false"
style=
"font-size:12px;vertical-align: baseline;"
@
click=
"importTemplate"
>
下载模板
</el-link>
@
click=
"importTemplate"
>
下载模板
</el-link>
...
@@ -310,6 +326,7 @@ export default {
...
@@ -310,6 +326,7 @@ export default {
components
:
{
Treeselect
},
components
:
{
Treeselect
},
data
()
{
data
()
{
return
{
return
{
radio
:
'学生'
,
// multiple:false, // 班级多选
// multiple:false, // 班级多选
// props: { multiple: true },
// props: { multiple: true },
// 遮罩层
// 遮罩层
...
@@ -363,7 +380,7 @@ export default {
...
@@ -363,7 +380,7 @@ export default {
// 设置上传的请求头部
// 设置上传的请求头部
headers
:
{
Authorization
:
"Bearer "
+
getToken
()
},
headers
:
{
Authorization
:
"Bearer "
+
getToken
()
},
// 上传的地址
// 上传的地址
url
:
process
.
env
.
VUE_APP_BASE_API
+
"/system/user/importData"
url
:
process
.
env
.
VUE_APP_BASE_API
+
"/system/user/importData
New
"
},
},
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
...
@@ -372,7 +389,8 @@ export default {
...
@@ -372,7 +389,8 @@ export default {
userName
:
undefined
,
userName
:
undefined
,
phonenumber
:
undefined
,
phonenumber
:
undefined
,
status
:
undefined
,
status
:
undefined
,
deptId
:
undefined
deptId
:
undefined
,
sex
:
'0'
},
},
// 列信息
// 列信息
columns
:
[
columns
:
[
...
@@ -429,11 +447,10 @@ export default {
...
@@ -429,11 +447,10 @@ export default {
},
},
methods
:
{
methods
:
{
clickChange
()
{
clickChange
()
{
console
.
log
(
this
.
form
.
sex
,
'dict-------'
)
this
.
$refs
[
'refSelect'
].
value
=
null
this
.
$refs
[
'refSelect'
].
value
=
null
if
(
this
.
form
.
sex
==
0
)
{
if
(
this
.
form
.
sex
==
1
)
{
this
.
multiple
=
true
this
.
multiple
=
true
}
else
{
}
else
{
this
.
multiple
=
false
this
.
multiple
=
false
}
}
},
},
...
@@ -494,7 +511,8 @@ export default {
...
@@ -494,7 +511,8 @@ export default {
remark
:
undefined
,
remark
:
undefined
,
postIds
:
[],
postIds
:
[],
roleIds
:
[],
roleIds
:
[],
deptList
:
''
sex
:
''
,
deptList
:
undefined
};
};
this
.
resetForm
(
"form"
);
this
.
resetForm
(
"form"
);
},
},
...
@@ -530,6 +548,10 @@ export default {
...
@@ -530,6 +548,10 @@ export default {
break
;
break
;
}
}
},
},
clickInput
(
e
)
{
this
.
queryParams
.
pageNum
=
1
;
this
.
getList
();
},
/** 新增按钮操作 */
/** 新增按钮操作 */
handleAdd
()
{
handleAdd
()
{
this
.
reset
();
this
.
reset
();
...
@@ -538,7 +560,16 @@ export default {
...
@@ -538,7 +560,16 @@ export default {
this
.
roleOptions
=
response
.
data
.
roles
;
this
.
roleOptions
=
response
.
data
.
roles
;
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"添加用户"
;
this
.
title
=
"添加用户"
;
this
.
form
.
sex
=
this
.
queryParams
.
sex
this
.
form
.
password
=
this
.
initPassword
;
this
.
form
.
password
=
this
.
initPassword
;
if
(
this
.
form
.
sex
==
1
)
{
this
.
multiple
=
true
}
else
{
this
.
multiple
=
false
}
setTimeout
(()
=>
{
this
.
$refs
[
'refSelect'
].
value
=
null
},
300
)
});
});
},
},
...
@@ -555,6 +586,14 @@ export default {
...
@@ -555,6 +586,14 @@ export default {
this
.
open
=
true
;
this
.
open
=
true
;
this
.
title
=
"修改用户"
;
this
.
title
=
"修改用户"
;
this
.
form
.
password
=
""
;
this
.
form
.
password
=
""
;
if
(
this
.
form
.
sex
==
1
)
{
this
.
multiple
=
true
}
else
{
this
.
multiple
=
false
}
setTimeout
(()
=>
{
this
.
$refs
[
'refSelect'
].
value
=
response
.
data
.
user
.
deptListArray
},
300
)
});
});
},
},
/** 重置密码按钮操作 */
/** 重置密码按钮操作 */
...
@@ -578,11 +617,19 @@ export default {
...
@@ -578,11 +617,19 @@ export default {
},
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
:
function
()
{
submitForm
:
function
()
{
console
.
log
(
this
.
$refs
[
'refSelect'
].
value
,
"this.$refs['refSelect'].value"
)
// this.form.deptList = this.$refs['refSelect'].value
let
obj
=
[]
obj
.
push
(
this
.
$refs
[
'refSelect'
].
value
)
if
(
this
.
form
.
sex
==
0
){
this
.
form
.
deptInsetArray
=
obj
}
else
{
this
.
form
.
deptInsetArray
=
this
.
$refs
[
'refSelect'
].
value
}
// console.log(this.form,'this.form----------')
// return
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
this
.
$refs
[
"form"
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
valid
)
{
if
(
this
.
form
.
userId
!=
undefined
)
{
if
(
this
.
form
.
userId
!=
undefined
)
{
updateUser
(
this
.
form
).
then
(
response
=>
{
updateUser
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
open
=
false
;
this
.
open
=
false
;
...
@@ -621,7 +668,7 @@ export default {
...
@@ -621,7 +668,7 @@ export default {
},
},
/** 下载模板操作 */
/** 下载模板操作 */
importTemplate
()
{
importTemplate
()
{
this
.
download
(
'system/user/importTemplate'
,
{
this
.
download
(
'system/user/importTemplate
New
'
,
{
},
`user_template_
${
new
Date
().
getTime
()}
.xlsx`
)
},
`user_template_
${
new
Date
().
getTime
()}
.xlsx`
)
},
},
// 文件上传中处理
// 文件上传中处理
...
@@ -643,3 +690,13 @@ export default {
...
@@ -643,3 +690,13 @@ export default {
}
}
};
};
</
script
>
</
script
>
<
style
scoped
lang=
"scss"
>
.radioClass
{
display
:
flex
;
justify-content
:
space-between
;
}
::v-deep
.el-radio-group
{
margin
:
0
10px
;
}
</
style
>
\ No newline at end of file
vue.config.js
View file @
7c5063c1
...
@@ -35,8 +35,9 @@ module.exports = {
...
@@ -35,8 +35,9 @@ module.exports = {
proxy
:
{
proxy
:
{
// detail: https://cli.vuejs.org/config/#devserver-proxy
// detail: https://cli.vuejs.org/config/#devserver-proxy
[
process
.
env
.
VUE_APP_BASE_API
]:
{
[
process
.
env
.
VUE_APP_BASE_API
]:
{
// target: `https://farming.nyinhong.com/api`,
target
:
`http://farming.nyinhong.com/api`
,
target
:
`http://192.168.0.195:8111/`
,
// target: `http://192.168.0.195:8111/`,
// target: `http://192.168.0.165:8111/`,
changeOrigin
:
true
,
changeOrigin
:
true
,
pathRewrite
:
{
pathRewrite
:
{
[
'^'
+
process
.
env
.
VUE_APP_BASE_API
]:
''
[
'^'
+
process
.
env
.
VUE_APP_BASE_API
]:
''
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment