lrf402788946 3 년 전
부모
커밋
6ba08fa79a
1개의 변경된 파일170개의 추가작업 그리고 170개의 파일을 삭제
  1. 170 170
      src/views/news/detail.vue

+ 170 - 170
src/views/news/detail.vue

@@ -1,170 +1,170 @@
-<template>
-  <div id="detail">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="top">
-          <el-button type="primary" size="mini" @click="back">返回</el-button>
-        </el-col>
-        <el-col :span="24" class="down" v-loading="loading">
-          <data-form :data="form" :fields="fields" :rules="{}" @save="toSave">
-            <template #custom="{item,form}">
-              <template v-if="item.model === 'column_id'">
-                <el-select v-model="form.column_id" placeholder="请选择所属栏目" @change="changeColumn">
-                  <el-option v-for="(i, index) in columnList" :key="index" :label="i.name" :value="i.id"></el-option>
-                </el-select>
-              </template>
-              <template v-else-if="item.model == 'type'">
-                <el-radio-group v-model="form.type" :disabled="form.site == 'kjzx' ? false : true">
-                  <el-radio label="国家"></el-radio>
-                  <el-radio label="科学院"></el-radio>
-                </el-radio-group>
-              </template>
-              <template v-else-if="item.model == 'picture'">
-                <upload :limit="1" :data="form.picture" type="picture" :url="'/files/picture/upload'" @upload="uploadSuccess" @delete="uploadDelete"></upload>
-              </template>
-              <template v-else-if="item.model == 'video'">
-                <upload
-                  :limit="1"
-                  :data="form.video"
-                  listType=""
-                  type="video"
-                  :url="'/files/video/upload'"
-                  @upload="uploadSuccess"
-                  @delete="uploadDelete"
-                ></upload>
-              </template>
-              <template v-else-if="item.model == 'filepath'">
-                <upload
-                  :limit="1"
-                  :data="form.filepath"
-                  listType=""
-                  type="filepath"
-                  :url="'/files/filepath/upload'"
-                  @upload="uploadSuccess"
-                  @delete="uploadDelete"
-                ></upload>
-              </template>
-            </template>
-          </data-form>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import dataForm from '@common/src/components/frame/form.vue';
-import upload from '@common/src/components/frame/upload.vue';
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions: column } = createNamespacedHelpers('column');
-const { mapActions: news } = createNamespacedHelpers('news');
-export default {
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  name: 'detail',
-  props: {},
-  components: { dataForm, upload },
-  data: function() {
-    return {
-      fields: [
-        { label: '所属栏目', model: 'column_id', custom: true },
-        { label: '信息标题', model: 'title' },
-        { label: '信息类型', model: 'type', custom: true },
-        { label: '发布时间', model: 'publish_time', type: 'date' },
-        { label: '信息来源', model: 'origin' },
-        { label: '信息简介', model: 'brief', type: 'textarea' },
-        { label: '图片文件', model: 'picture', custom: true },
-        { label: '视频文件', model: 'video', custom: true },
-        { label: '附件文件', model: 'filepath', custom: true },
-        { label: '内容', model: 'content', type: 'editor' },
-      ],
-      form: {},
-      // 栏目列表
-      columnList: [],
-      loading: false,
-    };
-  },
-  async created() {
-    await this.searchColumn();
-    if (this.id) {
-      await this.search();
-    }
-  },
-  methods: {
-    ...column({ columnQuery: 'query' }),
-    ...news(['fetch', 'update', 'create']),
-    async search() {
-      this.loading = true;
-      let res = await this.fetch(this.id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `form`, res.data);
-        console.log(this.form);
-        this.loading = false;
-      }
-    },
-    async toSave({ data }) {
-      if (data.id) {
-        let res = await this.update(data);
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '信息修改成功',
-            type: 'success',
-          });
-          this.back();
-        }
-      } else {
-        let res = await this.create(data);
-        if (this.$checkRes(res)) {
-          this.$message({
-            message: '信息创建成功',
-            type: 'success',
-          });
-          this.back();
-        }
-      }
-    },
-    // 选择栏目
-    changeColumn(index) {
-      let column = this.columnList.find(i => i.id == index);
-      if (column) this.$set(this.form, `column_name`, column.name);
-      this.$set(this.form, `site`, column.site);
-    },
-    // 返回列表
-    back() {
-      this.$router.push({ path: '/news' });
-    },
-    // 查询栏目
-    async searchColumn() {
-      let res = await this.columnQuery();
-      if (this.$checkRes(res)) {
-        this.$set(this, `columnList`, res.data);
-      }
-    },
-    // 图片上传
-    uploadSuccess({ type, data }) {
-      this.$set(this.form, `${type}`, data.uri);
-    },
-    // 删除图片
-    uploadDelete(data) {
-      this.$set(this.form, `${data.type}`, null);
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-    id() {
-      return this.$route.query.id;
-    },
-  },
-  watch: {},
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .top {
-    text-align: right;
-    margin: 0 0 10px 0;
-  }
-}
-</style>
+<template>
+  <div id="detail">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="top">
+          <el-button type="primary" size="mini" @click="back">返回</el-button>
+        </el-col>
+        <el-col :span="24" class="down" v-loading="loading" style="min-height:600px">
+          <data-form :data="form" :fields="fields" :rules="{}" @save="toSave" v-if="!loading">
+            <template #custom="{item,form}">
+              <template v-if="item.model === 'column_id'">
+                <el-select v-model="form.column_id" placeholder="请选择所属栏目" @change="changeColumn">
+                  <el-option v-for="(i, index) in columnList" :key="index" :label="i.name" :value="i.id"></el-option>
+                </el-select>
+              </template>
+              <template v-else-if="item.model == 'type'">
+                <el-radio-group v-model="form.type" :disabled="form.site == 'kjzx' ? false : true">
+                  <el-radio label="国家"></el-radio>
+                  <el-radio label="科学院"></el-radio>
+                </el-radio-group>
+              </template>
+              <template v-else-if="item.model == 'picture'">
+                <upload :limit="1" :data="form.picture" type="picture" :url="'/files/picture/upload'" @upload="uploadSuccess" @delete="uploadDelete"></upload>
+              </template>
+              <template v-else-if="item.model == 'video'">
+                <upload
+                  :limit="1"
+                  :data="form.video"
+                  listType=""
+                  type="video"
+                  :url="'/files/video/upload'"
+                  @upload="uploadSuccess"
+                  @delete="uploadDelete"
+                ></upload>
+              </template>
+              <template v-else-if="item.model == 'filepath'">
+                <upload
+                  :limit="1"
+                  :data="form.filepath"
+                  listType=""
+                  type="filepath"
+                  :url="'/files/filepath/upload'"
+                  @upload="uploadSuccess"
+                  @delete="uploadDelete"
+                ></upload>
+              </template>
+            </template>
+          </data-form>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import dataForm from '@common/src/components/frame/form.vue';
+import upload from '@common/src/components/frame/upload.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: column } = createNamespacedHelpers('column');
+const { mapActions: news } = createNamespacedHelpers('news');
+export default {
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  name: 'detail',
+  props: {},
+  components: { dataForm, upload },
+  data: function() {
+    return {
+      fields: [
+        { label: '所属栏目', model: 'column_id', custom: true },
+        { label: '信息标题', model: 'title' },
+        { label: '信息类型', model: 'type', custom: true },
+        { label: '发布时间', model: 'publish_time', type: 'date' },
+        { label: '信息来源', model: 'origin' },
+        { label: '信息简介', model: 'brief', type: 'textarea' },
+        { label: '图片文件', model: 'picture', custom: true },
+        { label: '视频文件', model: 'video', custom: true },
+        { label: '附件文件', model: 'filepath', custom: true },
+        { label: '内容', model: 'content', type: 'editor' },
+      ],
+      form: {},
+      // 栏目列表
+      columnList: [],
+      loading: true,
+    };
+  },
+  async created() {
+    await this.searchColumn();
+    if (this.id) {
+      await this.search();
+    }
+  },
+  methods: {
+    ...column({ columnQuery: 'query' }),
+    ...news(['fetch', 'update', 'create']),
+    async search() {
+      this.loading = true;
+      let res = await this.fetch(this.id);
+      if (this.$checkRes(res)) {
+        this.$set(this, `form`, res.data);
+        console.log(this.form);
+        this.loading = false;
+      }
+    },
+    async toSave({ data }) {
+      if (data.id) {
+        let res = await this.update(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '信息修改成功',
+            type: 'success',
+          });
+          this.back();
+        }
+      } else {
+        let res = await this.create(data);
+        if (this.$checkRes(res)) {
+          this.$message({
+            message: '信息创建成功',
+            type: 'success',
+          });
+          this.back();
+        }
+      }
+    },
+    // 选择栏目
+    changeColumn(index) {
+      let column = this.columnList.find(i => i.id == index);
+      if (column) this.$set(this.form, `column_name`, column.name);
+      this.$set(this.form, `site`, column.site);
+    },
+    // 返回列表
+    back() {
+      this.$router.push({ path: '/news' });
+    },
+    // 查询栏目
+    async searchColumn() {
+      let res = await this.columnQuery();
+      if (this.$checkRes(res)) {
+        this.$set(this, `columnList`, res.data);
+      }
+    },
+    // 图片上传
+    uploadSuccess({ type, data }) {
+      this.$set(this.form, `${type}`, data.uri);
+    },
+    // 删除图片
+    uploadDelete(data) {
+      this.$set(this.form, `${data.type}`, null);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    id() {
+      return this.$route.query.id;
+    },
+  },
+  watch: {},
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .top {
+    text-align: right;
+    margin: 0 0 10px 0;
+  }
+}
+</style>