Browse Source

猫舍管理 栏目管理

DESKTOP-O04BTUJ\muzen 3 years ago
parent
commit
57fae766d9
1 changed files with 77 additions and 16 deletions
  1. 77 16
      src/views/ohplay/programa/index.vue

+ 77 - 16
src/views/ohplay/programa/index.vue

@@ -3,18 +3,18 @@
     <!-- 搜索 -->
     <el-form inline label-width="100px" size="mini">
       <el-form-item>
-        <el-button type="primary" icon="el-icon-plus" @click="dialogVisible = true, title='新增'">新增</el-button>
+        <el-button type="primary" icon="el-icon-plus" @click="dialogVisible = true, title='新增', form = {}">新增</el-button>
       </el-form-item>
     </el-form>
     <!-- 列表 -->
-    <el-table :data="tableData">
+    <el-table :data="tableData" v-loading="loading">
       <el-table-column label="排序" type="index" align="center" />
-      <el-table-column label="栏目名称" align="center" />
-      <el-table-column label="栏目定位" align="center" />
-      <el-table-column label="当前状态" align="center" />
+      <el-table-column label="栏目名称" prop="name" align="center" />
+      <el-table-column label="栏目定位" prop="location" align="center" />
+      <el-table-column label="当前状态" prop="type" align="center" :formatter="typeFormatter" />
       <el-table-column label="操作" align="center">
-        <template>
-          <el-button type="text" @click="dialogVisible = true, title = '详情'">查看</el-button>
+        <template slot-scope="scope">
+          <el-button type="text" @click="getDialog(scope.row.id)">编辑</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -22,34 +22,95 @@
     <el-dialog :visible.sync="dialogVisible" :title="title" width="500px">
       <el-form label-width="100px">
         <el-form-item label="栏目名称:">
-          <el-input placeholder="请输入栏目名称" />
+          <el-input v-model="form.name" placeholder="请输入栏目名称" />
         </el-form-item>
         <el-form-item label="栏目排序:">
-          <el-input-number :min="1" />
+          <el-input-number v-model="form.sort" :min="1" />
         </el-form-item>
         <el-form-item label="栏目状态:">
-          <el-select placeholder="请选择栏目状态">
-            <el-option />
+          <el-select v-model="form.type" placeholder="请选择栏目状态">
+            <el-option v-for="item in dict.type.valid_yes_not" :key="item.value" :label="item.label"
+              :value="Number(item.value)" />
           </el-select>
         </el-form-item>
         <el-form-item label="栏目定位:">
-          <el-input type="textarea" :rows="4" placeholder="请输入栏目定位" />
+          <el-input v-model="form.location" type="textarea" :rows="4" placeholder="请输入栏目定位" />
         </el-form-item>
       </el-form>
+      <div slot="footer">
+        <el-button>取消</el-button>
+        <el-button type="primary" @click="getSubmit">确定</el-button>
+      </div>
     </el-dialog>
   </div>
 </template>
 
 <script>
+import { list, create, edit, detail } from '@/api/operation/programa'
 export default {
+  dicts: ['valid_yes_not'],
   data() {
     return {
-      tableData: [{
-        id: 1
-      }],
+      // 遮罩层
+      loading: false,
+      // 列表
+      tableData: [],
       // 弹窗
       dialogVisible: false,
-      title: ''
+      title: '',
+      // 表单
+      form: {}
+    }
+  },
+  mounted() {
+    this.getList()
+  },
+  methods: {
+    getList() {
+      this.loading = true
+      list().then(res => {
+        if (res.code === 0) {
+          this.tableData = res.data
+          this.loading = false
+        }
+      })
+    },
+
+    // 打开弹窗
+    getDialog(id) {
+      this.dialogVisible = true
+      this.title = '详情'
+      detail(id).then(res => {
+        if (res.code === 0) {
+          this.form = res.data
+        }
+      })
+    },
+
+    // 新增
+    getSubmit() {
+      if (this.form.id) {
+        edit(this.form).then(res => {
+          if (res.code === 0) {
+            this.$message.success('修改成功!')
+            this.dialogVisible = false
+            this.getList()
+          }
+        })
+      } else {
+        create(this.form).then(res => {
+          if (res.code === 0) {
+            this.$message.success('创建成功!')
+            this.dialogVisible = false
+            this.getList()
+          }
+        })
+      }
+    },
+
+    // 字典翻译
+    typeFormatter(row) {
+      return this.selectDictLabel(this.dict.type.valid_yes_not, row.type)
     }
   }
 }