Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
X
x-training-admin-new
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
x-training-admin-new
Commits
40f043fc
提交
40f043fc
authored
11月 18, 2021
作者:
pengxiaohui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 案例产品分析模块开发
上级
abc2055b
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
668 行增加
和
31 行删除
+668
-31
.env
.env
+3
-0
.env.dev
.env.dev
+3
-0
.env.test
.env.test
+3
-0
AppList.vue
src/components/base/AppList.vue
+10
-2
api.js
src/modules/case/api.js
+76
-2
BaseInfo.vue
src/modules/case/components/BaseInfo.vue
+61
-0
CaseForm.vue
src/modules/case/components/CaseForm.vue
+1
-3
ProductAnalysis.vue
src/modules/case/components/ProductAnalysis.vue
+312
-0
QuesAnswer.vue
src/modules/case/components/QuesAnswer.vue
+139
-0
index.js
src/modules/case/index.js
+4
-1
Details.vue
src/modules/case/views/Details.vue
+46
-0
List.vue
src/modules/case/views/List.vue
+10
-23
没有找到文件。
.env
浏览文件 @
40f043fc
VITE_LOGIN_URL=https://login.ezijing.com/auth/login/index
VITE_SECRET_ID=ezijing_3ab2242d9ed709256181821cc9c05880
VITE_SECRET_KEY=aec7836687fb9cb4a67e15a493aca4f9
\ No newline at end of file
.env.dev
浏览文件 @
40f043fc
VITE_LOGIN_URL=https://login2.ezijing.com/auth/login/index
VITE_SECRET_ID=ezijing_2c9592e083613825abf2cc8ea94ee9f6
VITE_SECRET_KEY=e28af679d0def36b93275d66cccf098c
\ No newline at end of file
.env.test
浏览文件 @
40f043fc
VITE_LOGIN_URL
=
https
://
login2
.
ezijing
.
com
/
auth
/
login
/
index
VITE_SECRET_ID
=
ezijing_2c9592e083613825abf2cc8ea94ee9f6
VITE_SECRET_KEY
=
e28af679d0def36b93275d66cccf098c
\ No newline at end of file
src/components/base/AppList.vue
浏览文件 @
40f043fc
...
...
@@ -142,7 +142,7 @@ export default {
// 是否含有翻页
hasPagination
:
{
type
:
Boolean
,
default
:
true
},
// 每页多少条数据
limit
:
{
type
:
Number
,
default
:
2
0
}
limit
:
{
type
:
Number
,
default
:
1
0
}
},
data
()
{
return
{
...
...
@@ -205,7 +205,15 @@ export default {
this
.
loading
=
true
httpRequest
(
params
)
.
then
(
res
=>
{
const
{
data
=
[],
total
=
0
}
=
res
.
data
||
{}
let
data
,
total
if
(
Array
.
isArray
(
res
.
data
))
{
data
=
res
.
data
total
=
res
.
total
||
0
}
else
{
data
=
res
.
data
.
data
||
[]
total
=
res
.
data
.
total
||
0
}
// const { data = [], total = 0 } = res.data || {}
this
.
page
.
total
=
total
this
.
dataList
=
callback
?
callback
(
data
)
:
data
})
...
...
src/modules/case/api.js
浏览文件 @
40f043fc
...
...
@@ -29,4 +29,79 @@ export function updateCase(id, data) {
*/
export
function
deleteCase
(
id
)
{
return
httpRequest
.
delete
(
`/api/xtraining/admin/v1/case/
${
id
}
`
)
}
\ No newline at end of file
}
/**
* 获取案例详情
*/
export
function
getCaseDetails
(
id
)
{
return
httpRequest
.
get
(
`/api/xtraining/admin/v1/case/
${
id
}
`
)
}
/* ********** 产品分析 ************ */
/**
* 获取题干列表
*/
export
function
getStemList
(
params
)
{
return
httpRequest
.
get
(
'/api/xtraining/admin/v1/completion/question-stems'
,
{
params
})
}
/**
* 获取题目列表
*/
export
function
getQuesList
(
id
)
{
return
httpRequest
.
get
(
`/api/xtraining/admin/v1/completion/questions/
${
id
}
`
)
}
/**
* 创建题干
*/
export
function
createStem
(
data
)
{
return
httpRequest
.
post
(
'/api/xtraining/admin/v1/completion/question-stem'
,
data
)
}
/**
* 删除题干
*/
export
function
deleteStem
(
id
)
{
return
httpRequest
.
delete
(
`/api/xtraining/admin/v1/completion/question-stem/
${
id
}
`
)
}
/**
* 新建题目
*/
export
function
createQues
(
data
)
{
return
httpRequest
.
post
(
'/api/xtraining/admin/v1/completion/question'
,
data
)
}
/**
* 更新题目
*/
export
function
updateQues
(
id
,
data
)
{
return
httpRequest
.
put
(
`/api/xtraining/admin/v1/completion/question/
${
id
}
`
,
data
)
}
/**
* 删除题目
*/
export
function
deleteQues
(
id
)
{
return
httpRequest
.
delete
(
`/api/xtraining/admin/v1/completion/question/
${
id
}
`
)
}
/**
* 获取题目答案列表
*/
export
function
getQuesAnswerList
(
params
)
{
return
httpRequest
.
get
(
`/api/xtraining/admin/v1/completion/rules/
${
params
.
id
}
`
)
}
/**
* 新建题目答案
*/
export
function
createQuesAnswer
(
id
,
data
)
{
return
httpRequest
.
post
(
`/api/xtraining/admin/v1/completion/rule/
${
id
}
`
,
data
)
}
/**
* 更新题目答案
*/
export
function
updateQuesAnswer
(
id
,
data
)
{
return
httpRequest
.
put
(
`/api/xtraining/admin/v1/completion/rule/
${
id
}
`
,
data
)
}
/**
* 删除题目答案
*/
export
function
deleteQuesAnswer
(
id
)
{
return
httpRequest
.
delete
(
`/api/xtraining/admin/v1/completion/rule/
${
id
}
`
)
}
src/modules/case/components/BaseInfo.vue
0 → 100644
浏览文件 @
40f043fc
<
template
>
<el-descriptions
class=
"margin-top"
title=
""
:column=
"1"
size=
""
border
>
<el-descriptions-item>
<template
slot=
"label"
>
案件名称
</
template
>
{{ form.name }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
案件ID
</
template
>
{{ form.id }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
唯一标识
</
template
>
{{ form.tag }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
创建时间
</
template
>
{{ form.created_at }}
</el-descriptions-item>
</el-descriptions>
</template>
<
script
>
import
{
getCaseDetails
}
from
'../api'
export
default
{
props
:
{
id
:
{
type
:
String
}
},
data
()
{
return
{
form
:
{
id
:
'11111111111111'
,
name
:
'22222'
,
tag
:
'3111111111111111111'
,
created_at
:
'2021-11-16 09:30:00'
}
}
},
computed
:
{
},
filters
:
{
},
mounted
()
{
this
.
getBaseInfo
()
},
methods
:
{
getBaseInfo
()
{
getCaseDetails
(
this
.
id
).
then
(
res
=>
{
this
.
form
=
res
.
data
})
}
}
}
</
script
>
<
style
scoped
>
.bar
{
padding-bottom
:
10px
;
}
.item
{
font-size
:
16px
;
line-height
:
48px
;
color
:
#494949
;
}
</
style
>
\ No newline at end of file
src/modules/case/components/CaseForm.vue
浏览文件 @
40f043fc
...
...
@@ -103,8 +103,7 @@ export default {
url
:
it
}
})
}
else
this
.
form
[
key
]
=
this
.
options
.
data
[
key
]
}
else
this
.
form
[
key
]
=
this
.
options
.
data
[
key
]
}
})
}
...
...
@@ -155,7 +154,6 @@ export default {
this
.
form
.
pdf_uris
.
splice
(
index
,
1
)
}
})
console
.
log
(
this
.
form
.
pdf_uris
)
},
fetchCreateCase
()
{
const
params
=
Object
.
assign
({},
this
.
form
)
...
...
src/modules/case/components/ProductAnalysis.vue
0 → 100644
浏览文件 @
40f043fc
<
template
>
<div
class=
"product-analysis"
>
<div
class=
"top-bar"
>
<el-button
type=
"primary"
@
click=
"dialogVisible = true"
>
创建题干
</el-button>
</div>
<el-table
:data=
"tableData"
:row-key=
"getRowKey"
:expand-row-keys=
"expands"
class=
"stem-table"
style=
"width: 100%"
:header-cell-style=
"
{background:'#e9e9e9'}" @expand-change="expandChange">
<!--
<el-table-column
type=
"selection"
width=
"55"
/>
-->
<el-table-column
type=
"expand"
>
<template
slot-scope=
"scope"
>
<el-table
ref=
"quesTable"
:data=
"subTableData"
:header-cell-style=
"
{background:'#f5f5f5'}" size="mini" style="width: 100%">
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
/>
<el-table-column
label=
"名称"
prop=
"subject"
min-width=
"120"
/>
<el-table-column
label=
"标识"
prop=
"tag"
min-width=
"110"
/>
<el-table-column
label=
"分数"
prop=
"score"
min-width=
"110"
/>
<el-table-column
label=
"操作"
min-width=
"100"
>
<template
slot-scope=
"subScope"
>
<el-button
type=
"text"
@
click=
"handleEditQues(scope.row, subScope.row)"
>
编辑
</el-button>
<el-button
type=
"text"
@
click=
"handleDeleteQues(scope.row, subScope.row)"
>
删除
</el-button>
<el-button
type=
"text"
@
click=
"handleAnswer(scope.row, subScope.row)"
>
配置答案
</el-button>
</
template
>
</el-table-column>
</el-table>
</template>
</el-table-column>
<el-table-column
label=
"题干名称"
prop=
"name"
/>
<el-table-column
label=
"唯一标识"
prop=
"tag"
/>
<el-table-column
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"handleDeleteStem(scope.row)"
>
删除题干
</el-button>
<el-button
type=
"text"
@
click=
"handleCreateQues(scope.row)"
>
创建题目
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"pagination"
>
<el-pagination
@
size-change=
"fetchStemList"
@
current-change=
"fetchStemList"
:current-page
.
sync=
"page.page"
:page-sizes=
"[10, 20, 30, 50, 100]"
:page-size
.
sync=
"page.limit"
layout=
"total, prev, pager, next, sizes, jumper"
:total=
"page.total"
>
</el-pagination>
</div>
<el-dialog
title=
"创建题干"
:visible
.
sync=
"dialogVisible"
width=
"460px"
:destroy-on-close=
"true"
@
close=
"handleStemDialogClose"
>
<el-form
:model=
"stemForm"
ref=
"stemForm"
label-width=
"90px"
>
<el-form-item
label=
"题干"
prop=
"selected"
required
:rules=
"[{required: true, message: '请选择题干', trigger: 'change'}]"
>
<el-select
v-model=
"stemForm.selected"
placeholder=
"请选择题干"
size=
"small"
value-key=
"tag"
style=
"width:100%;"
>
<el-option
v-for=
"item in stemOptions"
:key=
"item.tag"
:label=
"item.name"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button
size=
"mini"
@
click=
"dialogVisible = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleStemSubmit"
size=
"mini"
>
提交
</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-dialog
:title=
"isQuesCreate ? '创建题目':'编辑题目'"
:visible
.
sync=
"quesDialogVisible"
width=
"460px"
:destroy-on-close=
"true"
@
close=
"handleQuesDialogClose"
>
<el-form
:model=
"quesForm"
ref=
"quesForm"
label-width=
"90px"
>
<el-form-item
label=
"题目"
prop=
"subject"
required
:rules=
"[{required: true, message: '请输入题目', trigger: 'blur'}]"
>
<el-input
v-model=
"quesForm.subject"
size=
"small"
placeholder=
"请输入题目"
/>
</el-form-item>
<el-form-item
label=
"唯一标识"
prop=
"tag"
required
:rules=
"[{required: true, message: '请输入唯一标识', trigger: 'blur'}]"
>
<el-input
v-model=
"quesForm.tag"
size=
"small"
placeholder=
"请输入唯一标识"
:disabled=
"!isQuesCreate"
/>
</el-form-item>
<el-form-item>
<el-button
size=
"mini"
@
click=
"quesDialogVisible = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleQuesSubmit"
size=
"mini"
>
提交
</el-button>
</el-form-item>
</el-form>
</el-dialog>
<el-drawer
title=
"配置答案"
:visible
.
sync=
"drawerVisible"
:close-on-click-modal=
"false"
:destroy-on-close=
"true"
append-to-body
size=
"800px"
top=
"15px"
@
close=
"handleDrawerClose"
>
<ques-answer
:id=
"curQuesId"
/>
</el-drawer>
</div>
</template>
<
script
>
//组件
import
QuesAnswer
from
'../components/QuesAnswer.vue'
// api
import
{
getStemList
,
getQuesList
,
createStem
,
deleteStem
,
createQues
,
updateQues
,
deleteQues
}
from
'../api'
const
quesDefaultForm
=
{
subject
:
''
,
tag
:
''
,
question_stem_id
:
''
}
export
default
{
components
:
{
QuesAnswer
},
props
:
{
id
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
tableData
:
[],
subTableData
:
[],
expands
:
[],
page
:
{
limit
:
10
,
total
:
0
,
page
:
1
},
stemForm
:
{
selected
:
null
},
stemOptions
:
[
{
tag
:
'product_title'
,
name
:
'标题'
,
},
{
name
:
'产品概括'
,
tag
:
'product_overview'
},
{
name
:
'投资目标'
,
tag
:
'investment_objectives'
},
{
name
:
'投资策略'
,
tag
:
'investment_strategy'
},
{
name
:
'业绩比较基准'
,
tag
:
'performance_benchmark'
},
{
name
:
'风险收益特征'
,
tag
:
'risk_return_characteristics'
},
{
name
:
'基金涉及费用'
,
tag
:
'fund_related_expenses'
}
],
dialogVisible
:
false
,
quesDialogVisible
:
false
,
isQuesCreate
:
true
,
quesForm
:
Object
.
assign
({},
quesDefaultForm
),
drawerVisible
:
false
,
curQuesId
:
''
}
},
created
()
{
this
.
fetchStemList
()
},
methods
:
{
getRowKey
(
row
)
{
return
row
.
id
},
expandChange
(
row
,
rows
)
{
if
(
rows
.
length
)
{
this
.
fetchQuesList
(
row
.
id
)
}
else
this
.
expands
=
[]
},
handleStemDialogClose
()
{
this
.
$refs
.
stemForm
.
resetFields
()
this
.
stemForm
.
selected
=
null
},
handleStemSubmit
()
{
this
.
$refs
.
stemForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
fetchCreateStem
()
}
})
},
handleDeleteStem
(
item
)
{
this
.
$confirm
(
'删除题干请谨慎操作,确定删除?'
,
'删除题干'
,
{
confirmButtonText
:
'删除'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
fetchDeleteStem
(
item
)
}).
catch
(()
=>
{})
},
handleCreateQues
(
item
)
{
this
.
quesDialogVisible
=
true
this
.
quesForm
.
question_stem_id
=
item
.
id
this
.
isQuesCreate
=
true
},
handleEditQues
(
item
,
subItem
)
{
this
.
quesDialogVisible
=
true
this
.
quesForm
.
question_stem_id
=
item
.
id
this
.
quesForm
.
id
=
subItem
.
id
this
.
quesForm
.
subject
=
subItem
.
subject
this
.
quesForm
.
tag
=
subItem
.
tag
this
.
isQuesCreate
=
false
},
handleDeleteQues
(
stemItem
,
quesItem
)
{
this
.
$confirm
(
'删除题目请谨慎操作,确定删除?'
,
'删除题干'
,
{
confirmButtonText
:
'删除'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
fetchDeleteQues
(
stemItem
.
id
,
quesItem
.
id
)
}).
catch
(()
=>
{})
},
handleQuesDialogClose
()
{
this
.
quesForm
=
Object
.
assign
({},
quesDefaultForm
)
},
handleQuesSubmit
()
{
this
.
$refs
.
quesForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
isQuesCreate
?
this
.
fetchCreateQues
()
:
this
.
fetchEditQues
()
}
})
},
handleAnswer
(
item
,
subItem
)
{
this
.
curQuesId
=
subItem
.
id
this
.
drawerVisible
=
true
},
handleDrawerClose
()
{},
fetchStemList
()
{
const
params
=
{
page
:
this
.
page
.
page
,
limit
:
this
.
page
.
limit
,
case_id
:
this
.
id
}
getStemList
(
params
).
then
(
res
=>
{
if
(
res
.
data
)
{
this
.
tableData
=
res
.
data
.
data
this
.
page
.
total
=
res
.
data
.
total
}
})
},
fetchCreateStem
()
{
const
params
=
{
case_id
:
this
.
id
,
name
:
this
.
stemForm
.
selected
.
name
,
tag
:
this
.
stemForm
.
selected
.
tag
}
createStem
(
params
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
id
)
{
this
.
$message
.
success
(
'创建题干成功'
)
this
.
dialogVisible
=
false
this
.
fetchStemList
()
}
})
},
fetchDeleteStem
(
item
)
{
deleteStem
(
item
.
id
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
status
)
{
this
.
$message
.
success
(
'删除题干成功'
)
this
.
fetchStemList
()
}
})
},
fetchQuesList
(
id
,
isRefetch
)
{
getQuesList
(
id
).
then
(
res
=>
{
this
.
subTableData
=
[]
if
(
Array
.
isArray
(
res
.
data
))
{
console
.
log
(
res
.
data
)
this
.
subTableData
=
res
.
data
}
if
(
!
isRefetch
)
this
.
expands
=
[
id
]
})
},
fetchCreateQues
()
{
createQues
(
this
.
quesForm
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
id
)
{
this
.
fetchQuesList
(
this
.
quesForm
.
question_stem_id
,
true
)
this
.
$message
.
success
(
'创建题目成功'
)
this
.
quesDialogVisible
=
false
}
})
},
fetchEditQues
()
{
updateQues
(
this
.
quesForm
.
id
,
{
subject
:
this
.
quesForm
.
subject
}).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
status
)
{
this
.
fetchQuesList
(
this
.
quesForm
.
question_stem_id
,
true
)
this
.
$message
.
success
(
'更新题目成功'
)
this
.
quesDialogVisible
=
false
}
})
},
fetchDeleteQues
(
stemId
,
quesId
)
{
deleteQues
(
quesId
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
status
)
{
this
.
$message
.
success
(
'删除题目成功'
)
this
.
fetchQuesList
(
stemId
,
true
)
}
})
}
}
}
</
script
>
<
style
scoped
>
.top-bar
{
margin-bottom
:
20px
;
text-align
:
right
;
}
::v-deep
.stem-table
.el-table-column--selection
.cell
{
padding-left
:
10px
;
padding-right
:
0
;
}
::v-deep
.stem-table
>
.el-table__header-wrapper
>
table
>
colgroup
>
col
:first-child
{
width
:
30px
!important
;
}
::v-deep
.stem-table
>
.el-table__body-wrapper
>
table
>
colgroup
>
col
:first-child
{
width
:
30px
!important
;
}
.product-analysis
::v-deep
.stem-table
.el-table__expanded-cell
{
padding
:
15px
25px
!important
;
}
.pagination
{
padding-top
:
15px
;
text-align
:
right
;
}
</
style
>
\ No newline at end of file
src/modules/case/components/QuesAnswer.vue
0 → 100644
浏览文件 @
40f043fc
<
template
>
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
#
header-aside
>
<el-button
type=
"primary"
@
click=
"handleCreate"
>
创建答案
</el-button>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
type=
"primary"
plain
@
click=
"handleEdit(row)"
>
编辑
</el-button>
<el-button
type=
"danger"
plain
@
click=
"handleDelete(row)"
>
删除
</el-button>
</
template
>
</app-list>
<el-dialog
:title=
"isCreate ? '创建答案':'编辑答案'"
:visible
.
sync=
"dialogVisible"
width=
"460px"
append-to-body
:destroy-on-close=
"true"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"120px"
>
<el-form-item
label=
"答案"
prop=
"answer"
>
<el-input
v-model=
"form.answer"
size=
"small"
placeholder=
"请输入答案"
/>
</el-form-item>
<el-form-item
label=
"唯一标识"
prop=
"tag"
>
<el-input
v-model=
"form.tag"
size=
"small"
placeholder=
"请输入唯一标识"
:disabled=
"!isCreate"
/>
</el-form-item>
<el-form-item
label=
"分数"
prop=
"score"
>
<el-input-number
v-model=
"form.score"
:precision=
"2"
:step=
"1"
label=
"请输入分数"
/>
</el-form-item>
<el-form-item
label=
"答案匹配度"
prop=
"matching_degree"
>
<el-input-number
v-model=
"form.matching_degree"
:precision=
"2"
:step=
"1"
label=
"请输入分数"
:min=
"0"
:max=
"100"
/>
</el-form-item>
<el-form-item>
<el-button
size=
"mini"
@
click=
"dialogVisible = false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleSubmit"
size=
"mini"
>
提交
</el-button>
</el-form-item>
</el-form>
</el-dialog>
</app-card>
</template>
<
script
>
import
{
getQuesAnswerList
,
createQuesAnswer
,
updateQuesAnswer
,
deleteQuesAnswer
}
from
'../api'
const
defaultForm
=
{
answer
:
''
,
tag
:
''
,
score
:
0
,
matching_degree
:
0
}
export
default
{
props
:
{
id
:
{
type
:
String
,
defaulut
:
''
}
},
data
()
{
return
{
form
:
Object
.
assign
({},
defaultForm
),
rules
:
{
answer
:
{
required
:
true
,
message
:
'请输入答案'
,
trigger
:
'blur'
},
tag
:
{
required
:
true
,
message
:
'请输入唯一标识'
,
trigger
:
'blur'
}
},
isCreate
:
true
,
dialogVisible
:
false
,
updateId
:
''
}
},
computed
:
{
// 列表配置
tableOptions
()
{
return
{
remote
:
{
httpRequest
:
getQuesAnswerList
,
params
:
{
id
:
this
.
id
}
},
columns
:
[
{
label
:
'答案'
,
prop
:
'answer'
},
{
label
:
'唯一标识'
,
prop
:
'tag'
},
{
label
:
'分数'
,
prop
:
'score'
},
{
label
:
'答案匹配度'
,
prop
:
'matching_degree'
},
{
label
:
'创建时间'
,
prop
:
'created_at'
},
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'right'
,
width
:
160
}
]
}
}
},
methods
:
{
handleCreate
()
{
this
.
form
=
Object
.
assign
({},
defaultForm
)
this
.
dialogVisible
=
true
this
.
isCreate
=
true
},
handleEdit
(
item
)
{
this
.
dialogVisible
=
true
this
.
isCreate
=
false
this
.
updateId
=
item
.
id
this
.
form
.
answer
=
item
.
answer
this
.
form
.
tag
=
item
.
tag
this
.
form
.
score
=
item
.
score
this
.
form
.
matching_degree
=
item
.
matching_degree
},
handleDelete
(
item
)
{
this
.
$confirm
(
'删除题干请谨慎操作,确定删除?'
,
'删除题干'
,
{
confirmButtonText
:
'删除'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
fetchDeleteAnswer
(
item
)
}).
catch
(()
=>
{})
},
handleSubmit
()
{
this
.
$refs
.
ruleForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
this
.
isCreate
?
this
.
fetchCreateAnswer
():
this
.
fetchUpdateAnswer
()
}
})
},
fetchCreateAnswer
()
{
createQuesAnswer
(
this
.
id
,
this
.
form
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
id
)
{
this
.
$message
.
success
(
'新建答案成功'
)
this
.
$refs
.
list
.
refetch
(
true
)
this
.
dialogVisible
=
false
}
})
},
fetchUpdateAnswer
()
{
updateQuesAnswer
(
this
.
updateId
,
this
.
form
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
status
)
{
this
.
$message
.
success
(
'更新答案成功'
)
this
.
$refs
.
list
.
refetch
(
true
)
this
.
dialogVisible
=
false
}
})
},
fetchDeleteAnswer
(
item
)
{
deleteQuesAnswer
(
item
.
id
).
then
(
res
=>
{
if
(
res
.
data
&&
res
.
data
.
status
)
{
this
.
$message
.
success
(
'删除答案成功'
)
this
.
$refs
.
list
.
refetch
(
true
)
}
})
}
}
}
</
script
>
src/modules/case/index.js
浏览文件 @
40f043fc
...
...
@@ -4,7 +4,10 @@ const routes = [
{
path
:
'/case'
,
component
:
AppLayout
,
children
:
[{
path
:
''
,
component
:
()
=>
import
(
'./views/List.vue'
)
}]
children
:
[
{
path
:
''
,
component
:
()
=>
import
(
'./views/List.vue'
)
},
{
path
:
'details'
,
component
:
()
=>
import
(
'./views/Details.vue'
)
}
]
}
]
...
...
src/modules/case/views/Details.vue
0 → 100644
浏览文件 @
40f043fc
<
template
>
<app-card>
<h4
class=
"title"
>
{{
title
||
''
}}
</h4>
<base-info
:id=
"id"
/>
<el-tabs
v-model=
"tabActive"
style=
"margin-top:20px;"
>
<el-tab-pane
label=
"产品分析"
name=
"productAnalysis"
>
<product-analysis
:id=
"id"
/>
</el-tab-pane>
</el-tabs>
</app-card>
</
template
>
<
script
>
// 组件
import
BaseInfo
from
'../components/BaseInfo.vue'
import
ProductAnalysis
from
'../components/ProductAnalysis.vue'
export
default
{
components
:
{
BaseInfo
,
ProductAnalysis
},
data
()
{
return
{
tabActive
:
'productAnalysis'
}
},
computed
:
{
id
()
{
return
this
.
$route
.
query
.
id
},
title
()
{
return
this
.
$route
.
query
.
name
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.app-card
{
padding-top
:
20px
;
}
.title
{
font-size
:
20px
;
line-height
:
36px
;
padding-bottom
:
10px
;
}
</
style
>
\ No newline at end of file
src/modules/case/views/List.vue
浏览文件 @
40f043fc
...
...
@@ -5,7 +5,7 @@
<el-button
type=
"primary"
@
click=
"handleCreate"
>
新建
</el-button>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
plain
>
查看
</el-button>
<el-button
plain
@
click=
"handleDetails(row)"
>
查看
</el-button>
<el-button
type=
"primary"
plain
@
click=
"handleEdit(row)"
>
编辑
</el-button>
<el-button
type=
"danger"
plain
@
click=
"handleRemove(row)"
>
删除
</el-button>
</
template
>
...
...
@@ -51,28 +51,6 @@ export default {
{
label
:
'唯一标识'
,
prop
:
'tag'
},
{
label
:
'创建时间'
,
prop
:
'created_at'
},
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'right'
,
width
:
220
}
],
data
:
[
{
date
:
'2016-05-02'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1518 弄'
},
{
date
:
'2016-05-04'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1517 弄'
},
{
date
:
'2016-05-01'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1519 弄'
},
{
date
:
'2016-05-03'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路 1516 弄'
}
]
}
}
...
...
@@ -88,6 +66,15 @@ export default {
this
.
formData
.
type
=
'edit'
this
.
formData
.
data
=
item
},
handleDetails
(
item
)
{
this
.
$router
.
push
({
path
:
'/case/details'
,
query
:
{
id
:
item
.
id
,
name
:
item
.
name
}
})
},
handleClose
()
{},
handleSubmit
()
{
this
.
drawerVisible
=
false
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论