errorManager.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <template>
  2. <div class='m-container'>
  3. <!-- <h2>错误类型管理</h2> -->
  4. <div class="m-core">
  5. <div class='newBand' v-permission="'hotWordLabelManage/add'"
  6. @click="openTypes('create')">添加</div>
  7. <!-- 列表 -->
  8. <div class="tableWrap">
  9. <el-table :data='tableList'
  10. :header-cell-style="{background:'#EDEEF0',color:'#444'}">
  11. <el-table-column align='center'
  12. prop="id"
  13. label="编号">
  14. </el-table-column>
  15. <el-table-column align='center'
  16. prop="name"
  17. label="热词标签">
  18. </el-table-column>
  19. <el-table-column align='center'
  20. label="操作">
  21. <template slot-scope="scope">
  22. <el-button @click="openTypes('update', scope.row)"
  23. v-permission="'hotWordLabelManage/update'"
  24. type="text">修改</el-button>
  25. <el-button @click="onTypesDel(scope.row)"
  26. v-permission="'hotWordLabelManage/del'"
  27. type="text">删除</el-button>
  28. </template>
  29. </el-table-column>
  30. </el-table>
  31. <pagination
  32. :saveKey="'errorManager'"
  33. sync
  34. :total.sync="pageInfo.total"
  35. :page.sync="pageInfo.page"
  36. :limit.sync="pageInfo.limit"
  37. :page-sizes="pageInfo.page_size"
  38. @pagination="getList" />
  39. </div>
  40. </div>
  41. <el-dialog :title="formTitle[formActionTitle]"
  42. :visible.sync="typeStatus"
  43. @close="onFormClose('ruleForm')"
  44. width="500px">
  45. <el-form :model="form"
  46. :rules="rules"
  47. ref="ruleForm">
  48. <el-form-item label="热词内容"
  49. prop="name"
  50. :label-width="formLabelWidth">
  51. <el-input v-model.trim="form.name"
  52. autocomplete="off"></el-input>
  53. </el-form-item>
  54. </el-form>
  55. <span slot="footer"
  56. class="dialog-footer">
  57. <el-button @click="typeStatus = false">取 消</el-button>
  58. <el-button type="primary"
  59. @click="onTypesSubmit('ruleForm')">确 定</el-button>
  60. </span>
  61. </el-dialog>
  62. </div>
  63. </template>
  64. <script>
  65. import pagination from '@/components/Pagination/index'
  66. import { hotWordLabelManage, hotWordLabelManageAdd, hotWordLabelManageUpdate, hotWordLabelManageDel } from '@/api/systemManage'
  67. export default {
  68. components: { pagination },
  69. name: 'errormanager',
  70. data () {
  71. return {
  72. tableList: [],
  73. subjectList: [], // 声部列表
  74. formActionTitle: 'create',
  75. formTitle: {
  76. create: '添加热词标签',
  77. update: '修改热词标签'
  78. },
  79. typeStatus: false, // 添加教学点
  80. formLabelWidth: '120px',
  81. form: {
  82. name: null, // 热词标签
  83. },
  84. rules: {
  85. name: [{ required: true, message: '请输入热词标签', trigger: 'blur' }]
  86. },
  87. pageInfo: {
  88. // 分页规则
  89. limit: 10, // 限制显示条数
  90. page: 1, // 当前页
  91. total: 0, // 总条数
  92. page_size: [10, 20, 40, 50] // 选择限制显示条数
  93. }
  94. }
  95. },
  96. mounted () {
  97. this.getList()
  98. },
  99. methods: {
  100. onTypesSubmit (formName) { // 添加数据
  101. this.$refs[formName].validate((valid) => {
  102. if (valid) {
  103. if (this.formActionTitle == 'create') {
  104. if (this.form.id) { // 判断有没有Id,如果有则删除
  105. delete this.form.id
  106. }
  107. hotWordLabelManageAdd(this.form).then(res => {
  108. this.messageTips('添加', res)
  109. })
  110. } else if (this.formActionTitle == 'update') {
  111. hotWordLabelManageUpdate(this.form).then(res => {
  112. this.messageTips('修改', res)
  113. })
  114. }
  115. } else {
  116. return false;
  117. }
  118. })
  119. },
  120. onTypesDel (row) {
  121. this.$confirm("是否确认删除热词标签", "提示", {
  122. confirmButtonText: "确定",
  123. cancelButtonText: "取消",
  124. type: "warning",
  125. })
  126. .then(() => {
  127. hotWordLabelManageDel(row.id).then(res => {
  128. this.messageTips('删除', res)
  129. })
  130. })
  131. },
  132. messageTips (title, res) {
  133. if (res.code == 200) {
  134. this.$message.success(title + '成功')
  135. this.typeStatus = false
  136. this.getList()
  137. } else {
  138. this.$message.error(res.msg)
  139. }
  140. },
  141. getList () {
  142. hotWordLabelManage({
  143. rows: this.pageInfo.limit,
  144. page: this.pageInfo.page
  145. }).then(res => {
  146. let result = res.data
  147. if (res.code == 200) {
  148. this.tableList = result.rows
  149. this.pageInfo.total = result.total
  150. }
  151. })
  152. },
  153. openTypes (type, row) {
  154. this.typeStatus = true
  155. this.formActionTitle = type
  156. // 修改的时候赋值
  157. if (type == 'update') {
  158. this.form = {
  159. id: row.id,
  160. name: row.name
  161. }
  162. }
  163. },
  164. onFormClose (formName) { // 关闭弹窗重置验证
  165. this.form = {
  166. name: null, // 训练模块名称
  167. subjectIds: []
  168. }
  169. this.$refs[formName].resetFields()
  170. },
  171. }
  172. }
  173. </script>
  174. <style lang="scss" scoped>
  175. ::v-deep .el-date-editor.el-input {
  176. width: 100% !important;
  177. }
  178. ::v-deep .el-select {
  179. width: 98% !important;
  180. }
  181. </style>