|
|
@@ -1,20 +1,15 @@
|
|
|
<template>
|
|
|
- <div class="tab1">
|
|
|
- <div class="insideTop">资料管理</div>
|
|
|
+ <div class="tab6">
|
|
|
+ <div class="insideTop">问答咨询</div>
|
|
|
<div class="obstruct"></div>
|
|
|
- <div class="conten">
|
|
|
- <!-- <div class="search">
|
|
|
- <span>村落名称:</span>
|
|
|
- <el-input
|
|
|
- type="text"
|
|
|
- placeholder="请输入内容"
|
|
|
- v-model="name"
|
|
|
- maxlength="25"
|
|
|
- show-word-limit
|
|
|
- />
|
|
|
- <el-button type="primary">查询</el-button>
|
|
|
- <el-button>重置</el-button>
|
|
|
- </div> -->
|
|
|
+ <div class="content">
|
|
|
+ <div class="search">
|
|
|
+ <div class="action-group">
|
|
|
+ <el-button @click="keywordModalVisible=true">关键词设置</el-button>
|
|
|
+ <el-button type="primary" @click="askModalVisible=true">新增</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
<div class="table">
|
|
|
<el-table :data="tableData" style="width: 100%">
|
|
|
<el-table-column label="编号" width="150">
|
|
|
@@ -22,37 +17,135 @@
|
|
|
{{ scope.$index + 1 }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <!-- <el-table-column prop="id" label="编号" width="200"></el-table-column> -->
|
|
|
- <el-table-column prop="name" label="村落名称"></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="updateTime"
|
|
|
- label="最近更新时间"
|
|
|
- ></el-table-column>
|
|
|
+ <el-table-column prop="question" label="问题"></el-table-column>
|
|
|
+ <el-table-column prop="answer" label="问答"></el-table-column>
|
|
|
+ <el-table-column prop="dictName" label="关联关键词"></el-table-column>
|
|
|
+ <el-table-column prop="sort" label="排序值"></el-table-column>
|
|
|
+
|
|
|
<el-table-column label="操作">
|
|
|
+
|
|
|
<template #default="{ row }">
|
|
|
<el-button
|
|
|
type="text"
|
|
|
- @click="$router.push(`/layout/tab1Main/${row.id}/1001`)"
|
|
|
- >编辑</el-button
|
|
|
+ @click="handleEdit(row)"
|
|
|
+ >编辑
|
|
|
+ </el-button>
|
|
|
+ <el-popconfirm
|
|
|
+ title="确定删除吗?"
|
|
|
+ @confirm="handleDelete(row.id)"
|
|
|
>
|
|
|
+ <el-button slot="reference" type="text" style="padding: 0 5px">删除</el-button>
|
|
|
+ </el-popconfirm>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="askModalVisible"
|
|
|
+ destroy-on-close
|
|
|
+ width="30%"
|
|
|
+ @close="modalForm = {}"
|
|
|
+ center>
|
|
|
+ <div slot="title" class="lv1-modal-header">
|
|
|
+ <span>新增</span>
|
|
|
+ </div>
|
|
|
+ <el-form ref="askForm" label-position="right" label-width="80px" :model="modalForm"
|
|
|
+ :rules="rules">
|
|
|
+ <el-form-item label="问题" prop="question">
|
|
|
+ <el-input type="textarea" v-model="modalForm.question"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="回答" prop="answer">
|
|
|
+ <el-input type="textarea" v-model="modalForm.answer"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="关键词" prop="dictId" required>
|
|
|
+ <el-radio-group v-model="modalForm.dictId">
|
|
|
+ <el-radio v-bind:key="kw.id" :label="kw.id" v-for=" kw in keywordList">{{ kw.name }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="排序值" prop="sort">
|
|
|
+ <el-input-number :min="0" controls-position="right" placeholder="请输入1~999的数字。数字越小,排序越靠前。"
|
|
|
+ dea
|
|
|
+ v-model="modalForm.sort"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="askModalVisible = false">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="handleSubmit">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- -->
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="keywordModalVisible"
|
|
|
+ destroy-on-close
|
|
|
+ width="30%"
|
|
|
+ @close="keywordModal = {}"
|
|
|
+ center>
|
|
|
+
|
|
|
+ <div slot="title" class="lv1-modal-header">
|
|
|
+ <span>关键词</span>
|
|
|
+ <el-button type="primary">新增</el-button>
|
|
|
+ </div>
|
|
|
+ <div class="table">
|
|
|
+ <el-table :data="keywordList" style="width: 100%" min-height="450px">
|
|
|
+ <el-table-column prop="name" label="关键词名称"></el-table-column>
|
|
|
+ <el-table-column prop="sort" label="排序值"></el-table-column>
|
|
|
+ <el-table-column label="操作">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-button type="text" @click="handleKeywordEdit(row.id)">编辑</el-button>
|
|
|
+ <el-popconfirm
|
|
|
+ title="确定删除吗?"
|
|
|
+ @confirm="handleKeywordDelete(row.id)"
|
|
|
+ >
|
|
|
+ <el-button slot="reference" type="text" style="padding: 0 5px">删除</el-button>
|
|
|
+ </el-popconfirm>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { villageList } from '@/apis/tab1'
|
|
|
+import { getAskList, deleteAsk, getKeywordList, addAsk } from '@/apis/tab6'
|
|
|
+
|
|
|
export default {
|
|
|
- name: 'tab1',
|
|
|
+ name: 'tab6',
|
|
|
components: {},
|
|
|
data () {
|
|
|
// 这里存放数据
|
|
|
return {
|
|
|
name: '',
|
|
|
- tableData: []
|
|
|
+ tableData: [],
|
|
|
+ askModalVisible: false,
|
|
|
+ rules: {
|
|
|
+ question: [
|
|
|
+ { required: true, message: '请输入问题', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ answer: [
|
|
|
+ { required: true, message: '请输入回答', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ sort: [
|
|
|
+ { required: true, message: '请输入排序值', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ dictId: [
|
|
|
+ { required: true, message: '请输入关键词', trigger: 'blur' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ modalForm: {
|
|
|
+ answer: '',
|
|
|
+ sort: 1
|
|
|
+ },
|
|
|
+ keywordList: [],
|
|
|
+ keywordModalVisible: false,
|
|
|
+ keywordModal: {}
|
|
|
+
|
|
|
}
|
|
|
},
|
|
|
// 监听属性 类似于data概念
|
|
|
@@ -60,47 +153,123 @@ export default {
|
|
|
// 监控data中的数据变化
|
|
|
watch: {},
|
|
|
// 方法集合
|
|
|
- methods: {},
|
|
|
+ methods: {
|
|
|
+ handleSubmit () {
|
|
|
+ this.$refs.askForm.validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ const params = {
|
|
|
+ answer: this.modalForm.answer,
|
|
|
+ dictId: this.modalForm.dictId,
|
|
|
+ question: this.modalForm.question,
|
|
|
+ sort: this.modalForm.sort
|
|
|
+ }
|
|
|
+ if (this.modalForm.id) {
|
|
|
+ params.id = this.modalForm.id
|
|
|
+ }
|
|
|
+ const res = await addAsk(params)
|
|
|
+ this.askModalVisible = false
|
|
|
+ if (res.code === 0) {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ await this.handleRefreshList()
|
|
|
+ } else {
|
|
|
+ console.log('error submit!!')
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ async handleRefreshList () {
|
|
|
+ const res = await getAskList()
|
|
|
+ this.tableData = res.data
|
|
|
+ await this.getKeyList()
|
|
|
+ },
|
|
|
+ async handleDelete (id) {
|
|
|
+ await deleteAsk(id)
|
|
|
+ await this.handleRefreshList()
|
|
|
+ },
|
|
|
+
|
|
|
+ async getKeyList () {
|
|
|
+ const list = await getKeywordList('ask')
|
|
|
+ this.keywordList = list.data
|
|
|
+ },
|
|
|
+ async handleEdit (row) {
|
|
|
+ this.modalForm = {
|
|
|
+ ...this.modalForm,
|
|
|
+ ...row
|
|
|
+ }
|
|
|
+ this.askModalVisible = true
|
|
|
+ },
|
|
|
+ handleKeywordEdit () {
|
|
|
+
|
|
|
+ },
|
|
|
+ handleKeywordDelete () {
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
// 生命周期 - 创建完成(可以访问当前this实例)
|
|
|
async created () {
|
|
|
- const res = await villageList()
|
|
|
- this.tableData = res.data
|
|
|
+ await this.handleRefreshList()
|
|
|
},
|
|
|
// 生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
- mounted () {},
|
|
|
- beforeCreate () {}, // 生命周期 - 创建之前
|
|
|
- beforeMount () {}, // 生命周期 - 挂载之前
|
|
|
- beforeUpdate () {}, // 生命周期 - 更新之前
|
|
|
- updated () {}, // 生命周期 - 更新之后
|
|
|
- beforeDestroy () {}, // 生命周期 - 销毁之前
|
|
|
- destroyed () {}, // 生命周期 - 销毁完成
|
|
|
- activated () {} // 如果页面有keep-alive缓存功能,这个函数会触发
|
|
|
+ mounted () {
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
</script>
|
|
|
<style lang='less' scoped>
|
|
|
-.tab1 {
|
|
|
+.tab6 {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
- .conten {
|
|
|
+
|
|
|
+ /deep/ .el-input-number {
|
|
|
+ width: 400px;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .content {
|
|
|
padding: 0 20px;
|
|
|
+
|
|
|
.search {
|
|
|
height: 70px;
|
|
|
+ width: 100%;
|
|
|
display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
align-items: center;
|
|
|
border-bottom: 1px solid black;
|
|
|
- /deep/.el-input {
|
|
|
+
|
|
|
+ /deep/ .el-input {
|
|
|
width: 300px;
|
|
|
margin-right: 12px;
|
|
|
}
|
|
|
- /deep/.el-input__inner {
|
|
|
+
|
|
|
+ /deep/ .el-input__inner {
|
|
|
padding-right: 45px;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.table {
|
|
|
- /deep/.el-table__row .el-table__cell {
|
|
|
+ /deep/ .el-table__row .el-table__cell {
|
|
|
padding: 3px 0;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ .lv1-modal-header {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 0 30px;
|
|
|
+
|
|
|
+ span {
|
|
|
+ font-size: 24px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|