index.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <div>
  3. <el-button type="primary" @click="handleAdd('0')">新增</el-button>
  4. <el-table :data="tableData" tooltip-effect="dark" style="width: 100%" row-key="id" default-expand-all>
  5. <el-table-column label="类型名称" prop="label">
  6. <template slot-scope="scope">
  7. <span :class="{ text_bold: scope.row.pid === '0' }">{{ scope.row.label }}</span>
  8. </template>
  9. </el-table-column>
  10. <el-table-column label="操作" width="200">
  11. <template slot-scope="scope">
  12. <el-link type="primary" @click="handleAdd(scope.row.id)">新增</el-link>
  13. <span style="color: #409eff; margin: 0 10px">|</span>
  14. <el-link type="primary" @click="handleEdit(scope.row)">编辑</el-link>
  15. <span style="color: #409eff; margin: 0 10px">|</span>
  16. <el-link type="primary" @click="handleDel(scope.row)">删除</el-link>
  17. </template>
  18. </el-table-column>
  19. </el-table>
  20. <el-dialog title="活动类型管理" :visible.sync="dialogFormVisible">
  21. <el-form :model="dialogForm" :rules="rules" ref="dialogFormRef">
  22. <!-- <el-form-item label="所属类型" prop="hh_pid">
  23. <el-cascader v-model="dialogForm.hh_pid" :options="tableData">
  24. </el-cascader>
  25. </el-form-item> -->
  26. <el-form-item label="类型名称" prop="hh_name">
  27. <el-input v-model="dialogForm.hh_name" autocomplete="off"></el-input>
  28. </el-form-item>
  29. <el-form-item label="排序" prop="hh_sort">
  30. <el-input v-model="dialogForm.hh_sort" autocomplete="off"></el-input>
  31. </el-form-item>
  32. </el-form>
  33. <div slot="footer" class="dialog-footer">
  34. <el-button @click="dialogFormVisible = false">取 消</el-button>
  35. <el-button type="primary" @click="onSubmit('dialogForm')">确 定</el-button>
  36. </div>
  37. </el-dialog>
  38. </div>
  39. </template>
  40. <script>
  41. import { defineComponent, ref } from '@vue/composition-api';
  42. import { hdlx_list_tree, hdlx_delete, hdlx_add, hdlx_edit } from './api'
  43. import { Message } from 'element-ui';
  44. export default defineComponent({
  45. setup() {
  46. const tableData = ref([]);
  47. const handleQuery = () => {
  48. hdlx_list_tree().then(res => {
  49. tableData.value = res.data.one_info;
  50. })
  51. }
  52. handleQuery()
  53. let dialogMode = undefined //'add'|'edit'
  54. function handleAdd(pid) {
  55. dialogMode = 'add'
  56. dialogForm.value = {
  57. hh_pid: pid,
  58. hh_name: '',
  59. hh_sort: '1',
  60. }
  61. dialogFormVisible.value = true;
  62. }
  63. function handleEdit(row) {
  64. dialogMode = 'edit'
  65. dialogForm.value = {
  66. hh_id: row.id,
  67. // hh_pid: row.pid,
  68. hh_name: row.label,
  69. hh_sort: row.sort,
  70. }
  71. dialogFormVisible.value = true;
  72. }
  73. function handleDel(row) {
  74. this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
  75. confirmButtonText: '确定',
  76. cancelButtonText: '取消',
  77. type: 'warning'
  78. }).then(() => {
  79. hdlx_delete({
  80. hh_id: row.id
  81. }).then(res => {
  82. if (res.code === '1') {
  83. Message({
  84. type: 'success',
  85. message: '删除成功!'
  86. });
  87. handleQuery()
  88. } else { }
  89. })
  90. }).catch(() => {
  91. Message.info('已取消删除')
  92. })
  93. }
  94. const dialogFormVisible = ref(false);
  95. const dialogForm = ref({
  96. hh_pid: '',
  97. hh_name: '',
  98. hh_sort: '1'
  99. });
  100. const rules = {
  101. hh_pid: [
  102. { required: true, message: '请选择所属类型', trigger: 'submit' },
  103. ],
  104. hh_name: [
  105. { required: true, message: '请输入类型名称', trigger: 'submit' },
  106. ],
  107. hh_sort: [
  108. { required: true, message: '请输入排序', trigger: 'submit' },
  109. ],
  110. };
  111. const dialogFormRef = ref()
  112. function onSubmit() {
  113. console.log('dialogFormRef :>> ', dialogFormRef);
  114. dialogFormRef.value.validate(valid => {
  115. if (valid) {
  116. if (dialogMode === 'add') {
  117. hdlx_add({ hdpb_hdlx: dialogForm.value }).then(res => {
  118. if (res.code === '1') {
  119. Message({
  120. type: 'success',
  121. message: '新增成功!'
  122. });
  123. dialogFormVisible.value = false;
  124. handleQuery()
  125. } else { }
  126. })
  127. } else if (dialogMode === 'edit') {
  128. hdlx_edit({
  129. hh_id: dialogForm.value.hh_id,
  130. hdpb_hdlx: {
  131. hh_name: dialogForm.value.hh_name,
  132. hh_sort: dialogForm.value.hh_sort,
  133. }
  134. }).then(res => {
  135. if (res.code === '1') {
  136. Message({
  137. type: 'success',
  138. message: '编辑成功!'
  139. });
  140. dialogFormVisible.value = false;
  141. handleQuery()
  142. } else { }
  143. })
  144. }
  145. } else {
  146. return false;
  147. }
  148. });
  149. // this.$refs.dialogFormRef.validate(valid => {
  150. // if (valid) {
  151. // this.$refs.dialogFormRef.resetFields();
  152. // this.dialogFormVisible = false;
  153. // } else {
  154. // return false;
  155. // }
  156. // });
  157. }
  158. return {
  159. tableData,
  160. handleAdd,
  161. handleEdit,
  162. handleDel,
  163. dialogFormRef,
  164. dialogForm,
  165. rules,
  166. dialogFormVisible,
  167. onSubmit
  168. }
  169. }
  170. })
  171. </script>
  172. <style lang="scss">
  173. .text_bold {
  174. font-weight: bold;
  175. font-size: 15px;
  176. }
  177. </style>