Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-resource
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-resource
Commits
5ff09657
提交
5ff09657
authored
7月 19, 2022
作者:
matian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore:新增投诉建议管理模块
上级
d40826b4
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
209 行增加
和
0 行删除
+209
-0
menus.ts
src/assets/menus.ts
+6
-0
api.ts
src/modules/system/question/api.ts
+76
-0
DealDialog.vue
src/modules/system/question/components/DealDialog.vue
+62
-0
index.ts
src/modules/system/question/index.ts
+10
-0
List.vue
src/modules/system/question/views/List.vue
+55
-0
没有找到文件。
src/assets/menus.ts
浏览文件 @
5ff09657
...
@@ -153,6 +153,12 @@ export const menus: IMenuItem[] = [
...
@@ -153,6 +153,12 @@ export const menus: IMenuItem[] = [
icon
:
Picture
,
icon
:
Picture
,
name
:
'封面管理'
,
name
:
'封面管理'
,
path
:
'/system/cover'
path
:
'/system/cover'
},
{
tag
:
'v1-backend-cover-list'
,
icon
:
Picture
,
name
:
' 投诉建议管理'
,
path
:
'/system/question'
}
}
]
]
},
},
...
...
src/modules/system/question/api.ts
0 → 100644
浏览文件 @
5ff09657
import
httpRequest
from
'@/utils/axios'
// 获取视频列表
export
function
getVideoList
(
params
?:
{
type
?:
string
;
page
?:
number
;
[
'per-page'
]?:
number
})
{
return
httpRequest
.
get
(
'/api/resource/backend/video/index'
,
{
params
})
}
// 获取字典列表
export
function
getDictionaryList
(
params
?:
{
name
?:
string
key
?:
string
status
?:
string
created_time_start
?:
string
created_time_end
?:
string
page
?:
number
[
'per-page'
]?:
number
})
{
return
httpRequest
.
get
(
'/api/resource/v1/backend/data-dictionary/list'
,
{
params
})
}
// 新增字典
export
function
createDictionary
(
data
:
{
name
:
string
key
:
string
status
?:
string
remark
?:
string
can_edit
?:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/data-dictionary/create'
,
data
)
}
// 更新字典
export
function
updateDictionary
(
data
:
{
id
:
string
name
:
string
key
:
string
status
?:
string
remark
?:
string
can_edit
?:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/data-dictionary/update'
,
data
)
}
// 删除字典
export
function
delDictionary
(
data
:
{
id
:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/data-dictionary/delete'
,
data
)
}
// 获取字典的值的列表
export
function
getDictionaryItemList
(
params
?:
{
data_dictionary_id
:
string
;
page
?:
number
;
page_size
?:
number
})
{
return
httpRequest
.
get
(
'/api/resource/v1/backend/data-dictionary/value-list'
,
{
params
})
}
// 新增字典的值
export
function
createDictionaryItem
(
data
:
{
data_dictionary_id
:
string
label
:
string
value
:
string
sort
:
string
remark
:
string
can_edit
:
string
status
:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/data-dictionary/value-create'
,
data
)
}
// 更新字典的值
export
function
updateDictionaryItem
(
data
:
{
id
:
any
data_dictionary_id
:
string
label
:
string
value
:
string
sort
:
string
remark
:
string
can_edit
:
string
status
:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/data-dictionary/value-update'
,
data
)
}
// 删除字典的值
export
function
delDictionaryItem
(
data
:
{
id
:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/data-dictionary/value-delete'
,
data
)
}
src/modules/system/question/components/DealDialog.vue
0 → 100644
浏览文件 @
5ff09657
<
script
lang=
"ts"
setup
>
import
type
{
FormInstance
}
from
'element-plus'
const
emit
=
defineEmits
<
Emits
>
()
const
ruleFormRef
=
ref
<
FormInstance
>
()
// 封面类型
// 封面状态
const
form
=
reactive
({
desc
:
''
,
detail
:
''
,
answer
:
''
})
defineProps
({
isShowDialog
:
{
type
:
Boolean
,
required
:
true
}
})
interface
Emits
{
(
e
:
'update:isShowDialog'
,
isShowDialog
:
boolean
):
void
(
e
:
'updatePage'
):
void
}
// 取消
const
handleCancel
=
()
=>
{
emit
(
'update:isShowDialog'
,
false
)
}
// 确定
const
handleConfirm
=
()
=>
{
emit
(
'update:isShowDialog'
,
false
)
}
</
script
>
<
template
>
<el-dialog
:model-value=
"isShowDialog"
draggable
:before-close=
"handleCancel"
width=
"50%"
>
<el-form
:model=
"form"
ref=
"ruleFormRef"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"10"
>
<el-form-item
label=
"封面类型:"
prop=
"type"
>
投诉建议人:lisi
</el-form-item></el-col>
<el-col
:span=
"10"
>
<el-form-item
label=
"封面类型:"
prop=
"type"
>
提交时间:2022-07-19
</el-form-item></el-col>
</el-row>
<el-divider
border-style=
"desdashedc"
/>
<el-form-item
label=
"问题描述:"
prop=
"desc"
>
<el-input
v-model=
"form.desc"
autosize
type=
"textarea"
placeholder=
"Please input"
disabled
/>
</el-form-item>
<el-form-item
label=
"问题详情:"
prop=
"detail"
>
<el-input
v-model=
"form.detail"
autosize
type=
"textarea"
placeholder=
"Please input"
disabled
/>
</el-form-item>
<el-form-item
label=
"相关附件:"
prop=
"type"
>
<a
href=
"1"
>
11
</a>
</el-form-item>
<el-divider
border-style=
"dashed"
/>
<el-form-item
label=
"我的答复:"
prop=
"answer"
>
<el-input
v-model=
"form.answer"
autosize
type=
"textarea"
placeholder=
"Please input"
/>
</el-form-item>
</el-form>
<template
#
footer
>
<span>
<el-button
@
click=
"handleCancel"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm"
>
确定
</el-button>
</span>
</
template
>
</el-dialog>
</template>
src/modules/system/question/index.ts
0 → 100644
浏览文件 @
5ff09657
import
type
{
RouteRecordRaw
}
from
'vue-router'
import
AppLayout
from
'@/components/layout/Index.vue'
export
const
routes
:
Array
<
RouteRecordRaw
>
=
[
{
path
:
'/system/question'
,
component
:
AppLayout
,
children
:
[{
path
:
''
,
component
:
()
=>
import
(
'./views/List.vue'
)
}]
}
]
src/modules/system/question/views/List.vue
0 → 100644
浏览文件 @
5ff09657
<
script
setup
lang=
"ts"
>
import
DealDialog
from
'../components/DealDialog.vue'
const
appList
=
ref
()
const
isShowDialog
=
ref
(
false
)
// 状态
//表单每行数据
const
listOptions
=
$computed
(()
=>
{
return
{
remote
:
{
// httpRequest: getDictionaryList,
params
:
{
status
:
''
,
type
:
''
,
created_time_start
:
''
,
created_time_end
:
''
}
},
filters
:
[
{
type
:
'input'
,
prop
:
'name'
,
label
:
'字典名称:'
,
placeholder
:
'请输入字典名称'
},
{
type
:
'input'
,
prop
:
'key'
,
label
:
'字典类型:'
,
placeholder
:
'请输入字典类型'
}
],
columns
:
[
{
label
:
'序号'
,
type
:
'index'
,
align
:
'center'
},
{
label
:
'问题描述'
,
prop
:
'name'
,
align
:
'center'
},
{
label
:
'投诉人'
,
prop
:
'complaint_name'
,
align
:
'center'
},
{
label
:
'投诉时间'
,
prop
:
'complaint_time'
,
align
:
'center'
},
{
label
:
'处理人'
,
prop
:
'deal_operator'
,
align
:
'center'
},
{
label
:
'处理时间'
,
prop
:
'deal_time'
,
align
:
'center'
},
{
label
:
'处理状态'
,
prop
:
'status'
,
align
:
'center'
},
{
label
:
'操作'
,
slots
:
'table-operate'
,
align
:
'center'
,
width
:
300
}
],
data
:
[{
name
:
111
}]
}
})
const
handleDeal
=
()
=>
{
isShowDialog
.
value
=
true
}
</
script
>
<
template
>
<AppCard
title=
"投诉建议管理"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
border
stripe
>
<template
#
table-operate
>
<el-space>
<el-link
type=
"primary"
plain
@
click=
"handleDeal"
>
查看
</el-link>
</el-space>
</
template
></AppList
>
</AppCard>
<DealDialog
v-if=
"isShowDialog === true"
v-model:isShowDialog=
"isShowDialog"
/>
</template>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论