guhongwei 4 lat temu
rodzic
commit
adf8c74ea0
2 zmienionych plików z 96 dodań i 42 usunięć
  1. 76 39
      src/views/meetingBrief/detail.vue
  2. 20 3
      src/views/meetingBrief/index.vue

+ 76 - 39
src/views/meetingBrief/detail.vue

@@ -9,42 +9,44 @@
           <el-col :span="24" class="btn">
             <el-button type="primary" size="mini" @click="back()">返回</el-button>
           </el-col>
-          <el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
-            <el-form-item label="标题" prop="title">
-              <el-input v-model="form.title"></el-input>
-            </el-form-item>
-            <el-form-item label="信息图片" prop="filedir">
-              <upload :limit="1" :data="form.filedir" type="filedir" :url="'/files/filedir/upload'" @upload="uploadSuccess"></upload>
-            </el-form-item>
-            <el-form-item label="类型" prop="type">
-              <el-select v-model="form.type" placeholder="请选择信息类型">
-                <el-option label="会议简介" value="0"></el-option>
-                <el-option label="会议日程" value="1"></el-option>
-                <el-option label="主办方介绍" value="2"></el-option>
-                <el-option label="协办方介绍" value="3"></el-option>
-                <el-option label="专家介绍" value="4"></el-option>
-                <el-option label="继续再教育申请表" value="5"></el-option>
-                <el-option label="温馨提示" value="6"></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="内容" prop="content">
-              <wang-editor v-model="form.content"></wang-editor>
-            </el-form-item>
-            <el-form-item label="发布时间" prop="publish_time">
-              <el-date-picker
-                v-model="form.publish_time"
-                type="datetime"
-                style="width:100%"
-                placeholder="请选择发布时间"
-                format="yyyy-MM-dd HH:mm"
-                value-format="yyyy-MM-dd HH:mm"
-              >
-              </el-date-picker>
-            </el-form-item>
-            <el-form-item>
-              <el-button type="primary" @click="submitForm()">保存</el-button>
-            </el-form-item>
-          </el-form>
+          <el-col :span="24">
+            <el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" v-if="loading">
+              <el-form-item label="标题" prop="title">
+                <el-input v-model="form.title"></el-input>
+              </el-form-item>
+              <el-form-item label="信息图片" prop="filedir">
+                <upload :limit="1" :data="form.filedir" type="filedir" :url="'/files/filedir/upload'" @upload="uploadSuccess"></upload>
+              </el-form-item>
+              <el-form-item label="类型" prop="type">
+                <el-select v-model="form.type" placeholder="请选择信息类型">
+                  <el-option label="会议简介" value="0"></el-option>
+                  <el-option label="会议日程" value="1"></el-option>
+                  <el-option label="主办方介绍" value="2"></el-option>
+                  <el-option label="协办方介绍" value="3"></el-option>
+                  <el-option label="专家介绍" value="4"></el-option>
+                  <el-option label="继续再教育申请表" value="5"></el-option>
+                  <el-option label="温馨提示" value="6"></el-option>
+                </el-select>
+              </el-form-item>
+              <el-form-item label="内容" prop="content">
+                <wang-editor v-model="form.content"></wang-editor>
+              </el-form-item>
+              <el-form-item label="发布时间" prop="publish_time">
+                <el-date-picker
+                  v-model="form.publish_time"
+                  type="datetime"
+                  style="width:100%"
+                  placeholder="请选择发布时间"
+                  format="yyyy-MM-dd HH:mm"
+                  value-format="yyyy-MM-dd HH:mm"
+                >
+                </el-date-picker>
+              </el-form-item>
+              <el-form-item>
+                <el-button type="primary" @click="submitForm()">保存</el-button>
+              </el-form-item>
+            </el-form>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -56,6 +58,7 @@ import upload from '@/components/upload.vue';
 import wangEditor from '@/components/wang-editor.vue';
 import topInfo from '@/layout/public/top.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: news } = createNamespacedHelpers('news');
 export default {
   name: 'detail',
   props: {},
@@ -68,12 +71,43 @@ export default {
     return {
       form: {},
       rules: {},
+      loading: false,
     };
   },
-  created() {},
+  created() {
+    this.search();
+  },
   methods: {
-    submitForm() {
-      console.log(this.form);
+    ...news(['create', 'fetch', 'update']),
+    async search() {
+      if (this.id) {
+        let res = await this.fetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `form`, res.data);
+        }
+        this.$set(this, `loading`, true);
+      }
+    },
+    async submitForm() {
+      if (this.id) {
+        let res = await this.update(this.form);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '修改信息成功',
+            type: 'success',
+          });
+          this.back();
+        }
+      } else {
+        let res = await this.create(this.form);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '添加信息成功',
+            type: 'success',
+          });
+          this.back();
+        }
+      }
     },
     // 返回
     back() {
@@ -85,6 +119,9 @@ export default {
   },
   computed: {
     ...mapState(['user']),
+    id() {
+      return this.$route.query.id;
+    },
     pageTitle() {
       return `${this.$route.meta.title}`;
     },

+ 20 - 3
src/views/meetingBrief/index.vue

@@ -22,6 +22,7 @@
 import topInfo from '@/layout/public/top.vue';
 import dataTable from '@/components/data-table.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: news } = createNamespacedHelpers('news');
 export default {
   name: 'index',
   props: {},
@@ -77,9 +78,25 @@ export default {
     this.search();
   },
   methods: {
-    async search({ skip = 0, limit = 10, ...info } = {}) {},
-    toEdit({ data }) {},
-    async toDelete({ data }) {},
+    ...news(['query', 'delete', 'update']),
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      let res = await this.query({ skip, limit, ...info });
+      this.$set(this, `list`, res.data);
+      this.$set(this, `total`, res.total);
+    },
+    toEdit({ data }) {
+      this.$router.push({ path: '/meetingBrief/detail', query: { id: data.id } });
+    },
+    async toDelete({ data }) {
+      let res = await this.delete(data.id);
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '删除信息成功',
+          type: 'success',
+        });
+        this.search();
+      }
+    },
     // 增加
     add() {
       this.$router.push({ path: '/meetingBrief/detail' });