Explorar el Código

更新新闻追加日志

wangxy hace 2 semanas
padre
commit
834325a6e5
Se han modificado 1 ficheros con 362 adiciones y 338 borrados
  1. 362 338
      src/views/management/XingWenZiXun/XinWenZiXunConfig/index.vue

+ 362 - 338
src/views/management/XingWenZiXun/XinWenZiXunConfig/index.vue

@@ -1,368 +1,392 @@
 <template>
-    <div class="admin-NewsConfig">
-        <!--    按钮组合    -->
-        <div class="my-Config-top">
-            <el-button size="medium" type="primary" @click="back">返回</el-button>
-        </div>
-        <div class="my-Config-content">
-            <el-form :model="configData" :rules="configRules" ref="News" label-width="110px"
-                     class="my-Config-content-form">
-                <el-form-item label="标题:" prop="title">
-                    <el-input type="textarea" v-model="configData.title" placeholder="请输入标题"></el-input>
-                </el-form-item>
-                <el-form-item label="关键字:" prop="keyword">
-                    <el-input v-model="configData.keyword" placeholder="请输入关键字"></el-input>
-                </el-form-item>
+  <div class="admin-NewsConfig">
+    <!--    按钮组合    -->
+    <div class="my-Config-top">
+      <el-button size="medium" type="primary" @click="back">返回</el-button>
+    </div>
+    <div class="my-Config-content">
+      <el-form :model="configData" :rules="configData.newsClassifyId != 3 ?configRules:configRules2" ref="News"
+               label-width="110px"
+               class="my-Config-content-form">
+        <el-form-item label="标题:" prop="title">
+          <el-input type="textarea" v-model="configData.title" placeholder="请输入标题"></el-input>
+        </el-form-item>
+        <el-form-item label="关键字:" prop="keyword">
+          <el-input v-model="configData.keyword" placeholder="请输入关键字"></el-input>
+        </el-form-item>
 
-                <el-form-item label="热门新闻:" prop="hotFlag">
-                  <el-radio-group v-model="configData.hotFlag" @input="onHotChange">
-                    <el-radio :label="1">是</el-radio>
-                    <el-radio :label="0">否</el-radio>
-                  </el-radio-group>
-                </el-form-item>
-                <el-form-item label="标签:" prop="biaoqian">
-                  <el-input v-model="configData.biaoqian" placeholder="请输入关键字" :disabled="!configData.hotFlag"></el-input>
-                </el-form-item>
-                <el-form-item prop="startTime" label="开始时间:" porp="startTime">
-                    <div>
-                        <!--   @date 2020/09/28 将日期精确到时分秒 fix by wxy  start  -->
-                        <el-date-picker
-                                class="my-form-width"
-                                type="datetime"
-                                format="yyyy-MM-dd HH:mm:ss"
-                                value-format="yyyy-MM-dd HH:mm:ss"
-                                placeholder="选择日期"
-                                v-model="configData.startTime"
-                                style="width: 100%;"></el-date-picker>
-                        <!--   @date 2020/09/28 将日期精确到时分秒 fix by wxy  end  -->
-                    </div>
-                </el-form-item>
-                <el-form-item label="访问次数:" prop="visits">
-                    <el-input placeholder="请输入访问次数" v-model="configData.visits"></el-input>
-                </el-form-item>
-                <el-form-item label="新闻分类:" prop="newsClassifyId">
-                    <mySelect label="name"
-                              id="newsClassifyId"
-                              @select-change="handleSelectDoChange"
-                              placeholder="请选择新闻分类"></mySelect>
-                </el-form-item>
-                <el-form-item label="图片:" prop="pic">
-                    <upload-file :imageUrl="configData.pic"
-                                 :showBtnFlag="false"
-                                 @getFileUrl="getImageUrl"></upload-file>
-                    <h5 class="picture-size-h5">(最佳尺寸为400*400像素)</h5>
-                </el-form-item>
-                <el-form-item label="描述:" prop="intro">
-                    <el-input type="textarea" placeholder="请输入描述" :rows="6"
-                              v-model="configData.intro"></el-input>
-                </el-form-item>
-            </el-form>
-            <div class="my-Config-editor">
-                <mta-st-quill-editor
-                        class="admin-quill-editor"
-                        ref="editorQuill"
-                        :value="configData.content"
-                        quillEditorRef="quillEditorRef1"
-                        flg="1"
-                        @syncValue="syncValue" />
-            </div>
-        </div>
-        <div class="my-Config-bottom">
-            <el-button
-                    v-if="queryData && queryData.code === 'add'"
-                    type="primary"
-                    size="medium"
-                    @click="handleAdd('News')"
-            >新增
-            </el-button>
-            <div v-else>
-                <el-button size="medium" type="primary" @click="handleSave('News')">保存</el-button>
-                <el-button size="medium" type="primary" @click="back">关闭</el-button>
-            </div>
+        <el-form-item label="热门新闻:" prop="hotFlag">
+          <el-radio-group v-model="configData.hotFlag" @input="onHotChange">
+            <el-radio :label="1">是</el-radio>
+            <el-radio :label="0">否</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="标签:" prop="biaoqian">
+          <el-input v-model="configData.biaoqian" placeholder="请输入关键字" :disabled="!configData.hotFlag"></el-input>
+        </el-form-item>
+        <el-form-item prop="startTime" label="开始时间:" porp="startTime">
+          <div>
+            <!--   @date 2020/09/28 将日期精确到时分秒 fix by wxy  start  -->
+            <el-date-picker
+                class="my-form-width"
+                type="datetime"
+                format="yyyy-MM-dd HH:mm:ss"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                placeholder="选择日期"
+                v-model="configData.startTime"
+                style="width: 100%;"></el-date-picker>
+            <!--   @date 2020/09/28 将日期精确到时分秒 fix by wxy  end  -->
+          </div>
+        </el-form-item>
+        <el-form-item label="访问次数:" prop="visits">
+          <el-input placeholder="请输入访问次数" v-model="configData.visits"></el-input>
+        </el-form-item>
+        <el-form-item label="新闻分类:" prop="newsClassifyId">
+          <mySelect label="name"
+                    id="newsClassifyId"
+                    @select-change="handleSelectDoChange"
+                    placeholder="请选择新闻分类"></mySelect>
+        </el-form-item>
+        <el-form-item label="图片:" prop="pic">
+          <upload-file :imageUrl="configData.pic"
+                       :showBtnFlag="false"
+                       @getFileUrl="getImageUrl"></upload-file>
+          <h5 class="picture-size-h5">(最佳尺寸为400*400像素)</h5>
+        </el-form-item>
+        <el-form-item label="描述:" prop="intro">
+          <el-input type="textarea" placeholder="请输入描述" :rows="6"
+                    v-model="configData.intro"></el-input>
+        </el-form-item>
+      </el-form>
+      <div class="my-Config-editor">
+        <mta-st-quill-editor
+            class="admin-quill-editor"
+            ref="editorQuill"
+            :value="configData.content"
+            quillEditorRef="quillEditorRef1"
+            flg="1"
+            @syncValue="syncValue"/>
+      </div>
+    </div>
+    <div class="my-Config-bottom">
+      <el-button
+          v-if="queryData && queryData.code === 'add'"
+          type="primary"
+          size="medium"
+          @click="handleAdd('News')"
+      >新增
+      </el-button>
+      <div v-else>
+        <el-button size="medium" type="primary" @click="handleSave('News')">保存</el-button>
+        <el-button size="medium" type="primary" @click="back">关闭</el-button>
+      </div>
 
-        </div>
     </div>
+  </div>
 </template>
 
 <script>
-    import uploadFile           from '@/components/Admin/Common/uploadFile';
-    import MtaStQuillEditor     from '@/components/management/QuillEditor.vue';
-    import mySelect             from '../components/Select';
-    import * as commonTools     from '@/utils/admin/tools';
-    import * as HYZXService     from '@/api/news';
-    import * as NewsClassifyApi from '@/api/newsClassify';
-    import Vue                  from 'vue';
+import uploadFile from '@/components/Admin/Common/uploadFile';
+import MtaStQuillEditor from '@/components/management/QuillEditor.vue';
+import mySelect from '../components/Select';
+import * as commonTools from '@/utils/admin/tools';
+import * as HYZXService from '@/api/news';
+import * as NewsClassifyApi from '@/api/newsClassify';
+import Vue from 'vue';
 
-    const selectData = {
-        options:        [],
-        newsClassifyId: null,
-        placeholder:    '请选择新闻资讯分类',
-    };
-    let selectServiceData = Vue.observable(selectData);
+const selectData = {
+  options: [],
+  newsClassifyId: null,
+  placeholder: '请选择新闻资讯分类',
+};
+let selectServiceData = Vue.observable(selectData);
 
-    export default {
-        name:       'NewsConfig',
-        components: {
-            uploadFile,
-            MtaStQuillEditor,
-            mySelect,
-        },
-        provide:    {
-            selectServiceData: selectServiceData,
-        },
-        computed:   {
-            newsClassifyId() {
-                return selectServiceData.newsClassifyId;
-            },
-        },
-        data() {
-            return {
-                defaultValue: new Date(),
-                configData:   {
-                    biaoqian: '',
-                    hotFlag:        0,
-                    content:        '',
-                    intro:          '',
-                    pic:            '',
-                    startTime:      '',
-                    newsClassifyId: '',
-                    title:          '',
-                    visits:         '',
-                    keyword:        '',
-                },
-                configRules:  {
-                    title:          [
-                        { required: true, message: '标题不能为空', trigger: 'blur' },
-                    ],
-                    keyword:        [
-                        { required: true, message: '关键字不能为空', trigger: 'blur' },
-                    ],
-                    startTime:      [
-                        { required: true, message: '开始时间不能为空', trigger: 'blur' },
-                    ],
-                    intro:          [
-                        { required: true, message: '描述不能为空', trigger: 'blur' },
-                    ],
-                    pic:            [
-                        { required: true, message: '图片不能为空', trigger: 'blur' },
-                    ],
-                    visits:         [
-                        { required: true, message: '访问次数不能为空', trigger: 'blur' },
-                    ],
-                    content:        [
-                        { required: true, message: '行业详情不能为空', trigger: 'blur' },
-                    ],
-                    newsClassifyId: [
-                        { required: true, message: '请选择新闻分类', trigger: 'blur' },
-                    ],
-                },
-                queryData:    null,
-                userId:       null,
-            };
-        },
-        methods:    {
-          onHotChange() {
-            this.configData.biaoqian = '';
-          },
-            handleSelectDoChange(data) {
-                console.log('change', data);
-                this.configData.newsClassifyId = data;
-            },
-            back() {
-                window.history.go(-1);
-            },
-            getImageUrl(data) {
-                this.configData.pic = data;
-            },
-            syncValue(flg, content) {
-                if (flg === '1') {
-                    this.configData.content = content;
-                }
-            },
-            handleSave(formName) {
-                this.$refs[formName].validate((valid) => {
-                    if (valid) {
-                        this.saveAddNews();
-                    } else {
-                        return false;
-                    }
-                });
-            },
-            handleAdd(formName) {
-                this.$refs[formName].validate((valid) => {
-                    if (valid) {
-                        this.addAddNews();
-                    } else {
-                        return false;
-                    }
-                });
-            },
-            initPageData(data) {
-                selectServiceData.newsClassifyId = data.newsClassifyId;
-                this.configData.newsClassifyId = data.newsClassifyId;
-                this.$refs.editorQuill.setContent(data.content);
-                this.configData.intro = data.intro;
-                this.configData.pic = data.pic;
-                this.configData.startTime = data.startTime;
-                this.configData.title = data.title;
-                this.configData.visits = data.visits;
-                this.configData.keyword = data.keyword;
-                this.configData.hotFlag = data.hotFlag;
-                this.configData.biaoqian = data.biaoqian;
-            },
-            async recoverPage() {
+export default {
+  name: 'NewsConfig',
+  components: {
+    uploadFile,
+    MtaStQuillEditor,
+    mySelect,
+  },
+  provide: {
+    selectServiceData: selectServiceData,
+  },
+  computed: {
+    newsClassifyId() {
+      return selectServiceData.newsClassifyId;
+    },
+  },
+  data() {
+    return {
+      defaultValue: new Date(),
+      configData: {
+        biaoqian: '',
+        hotFlag: 0,
+        content: '',
+        intro: '',
+        pic: '',
+        startTime: '',
+        newsClassifyId: '',
+        title: '',
+        visits: '',
+        keyword: '',
+      },
+      configRules: {
+        title: [
+          {required: true, message: '标题不能为空', trigger: 'blur'},
+        ],
+        keyword: [
+          {required: true, message: '关键字不能为空', trigger: 'blur'},
+        ],
+        startTime: [
+          {required: true, message: '开始时间不能为空', trigger: 'blur'},
+        ],
+        intro: [
+          {required: true, message: '描述不能为空', trigger: 'blur'},
+        ],
+        pic: [
+          {required: true, message: '图片不能为空', trigger: 'blur'},
+        ],
+        visits: [
+          {required: true, message: '访问次数不能为空', trigger: 'blur'},
+        ],
+        content: [
+          {required: true, message: '行业详情不能为空', trigger: 'blur'},
+        ],
+        newsClassifyId: [
+          {required: true, message: '请选择新闻分类', trigger: 'blur'},
+        ],
+      },
+      configRules2: {
+        title: [
+          {required: true, message: '标题不能为空', trigger: 'blur'},
+        ],
+        keyword: [
+          {required: true, message: '关键字不能为空', trigger: 'blur'},
+        ],
+        startTime: [
+          {required: true, message: '开始时间不能为空', trigger: 'blur'},
+        ],
+        intro: [
+          {required: true, message: '描述不能为空', trigger: 'blur'},
+        ],
+        content: [
+          {required: true, message: '行业详情不能为空', trigger: 'blur'},
+        ],
+        newsClassifyId: [
+          {required: true, message: '请选择新闻分类', trigger: 'blur'},
+        ],
+      },
+      queryData: null,
+      userId: null,
+    };
+  },
+  methods: {
+    onHotChange() {
+      this.configData.biaoqian = '';
+    },
+    handleSelectDoChange(data) {
+      console.log('change', data);
+      this.configData.newsClassifyId = data;
+      this.$nextTick(() => {
+        this.$refs.News.clearValidate();
+      })
+    },
+    back() {
+      window.history.go(-1);
+    },
+    getImageUrl(data) {
+      this.configData.pic = data;
+    },
+    syncValue(flg, content) {
+      if (flg === '1') {
+        this.configData.content = content;
+      }
+    },
+    handleSave(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          this.saveAddNews();
+        } else {
+          return false;
+        }
+      });
+    },
+    handleAdd(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          this.addAddNews();
+        } else {
+          return false;
+        }
+      });
+    },
+    initPageData(data) {
+      selectServiceData.newsClassifyId = data.newsClassifyId;
+      this.configData.newsClassifyId = data.newsClassifyId;
+      this.$refs.editorQuill.setContent(data.content);
+      this.configData.intro = data.intro;
+      this.configData.pic = data.pic;
+      this.configData.startTime = data.startTime;
+      this.configData.title = data.title;
+      this.configData.visits = data.visits;
+      this.configData.keyword = data.keyword;
+      this.configData.hotFlag = data.hotFlag;
+      this.configData.biaoqian = data.biaoqian;
+    },
+    async recoverPage() {
 
-                const opt = {
-                    iiId: this.queryData.iiId,
-                };
+      const opt = {
+        iiId: this.queryData.iiId,
+      };
 
-                const loading = this.$loading({ background: 'rgba(0, 0, 0, 0.7)' });
-                try {
+      const loading = this.$loading({background: 'rgba(0, 0, 0, 0.7)'});
+      try {
 
-                    // 新闻资讯分类
-                    const { data: newsClassifyArr } = await NewsClassifyApi.getNewsClassifySearch();
+        // 新闻资讯分类
+        const {data: newsClassifyArr} = await NewsClassifyApi.getNewsClassifySearch();
 
-                    selectServiceData.options = newsClassifyArr;
+        selectServiceData.options = newsClassifyArr;
 
-                    const res = await HYZXService.getNewsInfo(opt);
-                    if (res.code === 0) {
-                        this.initPageData(res.data);
-                    }
-                    loading.close();
+        const res = await HYZXService.getNewsInfo(opt);
+        if (res.code === 0) {
+          this.initPageData(res.data);
+        }
+        loading.close();
 
-                } catch (err) {
-                    loading.close();
-                }
-            },
-            async addAddNews() {
-                const loading = this.$loading({ background: 'rgba(0, 0, 0, 0.7)' });
-                try {
-                    const res = await this.handleAddNews();
-                    loading.close();
-                    if (res.code === 0 && res.data) {
-                        this.$message.success('新增成功');
-                        this.back();
-                    }
-                } catch (e) {
-                    loading.close();
-                }
-            },
-            async saveAddNews() {
-                const loading = this.$loading({ background: 'rgba(0, 0, 0, 0.7)' });
-                try {
-                    const res = await this.handleSaveNews();
-                    loading.close();
-                    if (res.code === 0 && res.data) {
-                        this.$message.success('保存成功');
-                        this.back();
-                    }
-                } catch (e) {
-                    loading.close();
-                }
-            },
-            getOptions() {
-                return Object.assign({}, this.configData, { userId: this.userId });
-            },
-            handleAddNews() {
-                const opt = this.getOptions();
-                return HYZXService.getNewsAdd(opt);
-            },
-            handleSaveNews() {
-                const opt = this.getOptions();
-                const newOpt = Object.assign(opt, { iiId: this.queryData.iiId });
-                return HYZXService.getNewsUpdate(newOpt);
-            },
-            async initPage() {
-                // 新闻资讯分类
-                const loading = this.$loading({ background: 'rgba(0, 0, 0, 0.7)' });
-                try {
-                    const { data: newsClassifyArr } = await NewsClassifyApi.getNewsClassifySearch();
-                    selectServiceData.options = newsClassifyArr;
-                    loading.close();
-                } catch (e) {
-                    loading.close();
-                }
+      } catch (err) {
+        loading.close();
+      }
+    },
+    async addAddNews() {
+      const loading = this.$loading({background: 'rgba(0, 0, 0, 0.7)'});
+      try {
+        const res = await this.handleAddNews();
+        loading.close();
+        if (res.code === 0 && res.data) {
+          this.$message.success('新增成功');
+          this.back();
+        }
+      } catch (e) {
+        loading.close();
+      }
+    },
+    async saveAddNews() {
+      const loading = this.$loading({background: 'rgba(0, 0, 0, 0.7)'});
+      try {
+        const res = await this.handleSaveNews();
+        loading.close();
+        if (res.code === 0 && res.data) {
+          this.$message.success('保存成功');
+          this.back();
+        }
+      } catch (e) {
+        loading.close();
+      }
+    },
+    getOptions() {
+      return Object.assign({}, this.configData, {userId: this.userId});
+    },
+    handleAddNews() {
+      const opt = this.getOptions();
+      return HYZXService.getNewsAdd(opt);
+    },
+    handleSaveNews() {
+      const opt = this.getOptions();
+      const newOpt = Object.assign(opt, {iiId: this.queryData.iiId});
+      return HYZXService.getNewsUpdate(newOpt);
+    },
+    async initPage() {
+      // 新闻资讯分类
+      const loading = this.$loading({background: 'rgba(0, 0, 0, 0.7)'});
+      try {
+        const {data: newsClassifyArr} = await NewsClassifyApi.getNewsClassifySearch();
+        selectServiceData.options = newsClassifyArr;
+        loading.close();
+      } catch (e) {
+        loading.close();
+      }
 
-            },
-            clearPageData() {
-                selectServiceData.options = [];
-                selectServiceData.newsClassifyId = null;
-                this.$refs.News.resetFields();
-                this.$refs.editorQuill.setContent('');
-            },
-        },
-        created() {
-            this.queryData = this.$route.query;
-            const userAuth = commonTools.getUserAuth();
-            this.userId = userAuth && userAuth.userId;
-        },
-        mounted() {
-            if (this.queryData.code === 'editor' && this.queryData.iiId) {
-                this.recoverPage();
-            } else {
-                this.initPage();
-            }
-        },
-        beforeDestroy() {
-            this.clearPageData();
-        },
-    };
+    },
+    clearPageData() {
+      selectServiceData.options = [];
+      selectServiceData.newsClassifyId = null;
+      this.$refs.News.resetFields();
+      this.$refs.editorQuill.setContent('');
+    },
+  },
+  created() {
+    this.queryData = this.$route.query;
+    const userAuth = commonTools.getUserAuth();
+    this.userId = userAuth && userAuth.userId;
+  },
+  mounted() {
+    if (this.queryData.code === 'editor' && this.queryData.iiId) {
+      this.recoverPage();
+    } else {
+      this.initPage();
+    }
+  },
+  beforeDestroy() {
+    this.clearPageData();
+  },
+};
 </script>
 
 <style lang="scss" scoped>
-    .admin-NewsConfig {
-        padding: 20px;
+.admin-NewsConfig {
+  padding: 20px;
 
-        .my-Config-top {
-            display: flex;
-            justify-content: flex-end;
-            margin-bottom: 20px;
-        }
+  .my-Config-top {
+    display: flex;
+    justify-content: flex-end;
+    margin-bottom: 20px;
+  }
 
-        .my-Config-content {
-            display: flex;
-            justify-content: space-between;
+  .my-Config-content {
+    display: flex;
+    justify-content: space-between;
 
-            &-form {
-                .form-timer {
-                    .timer-wrap {
-                        display: flex;
-                        flex-direction: row;
-                    }
-
-                    .line {
-                        margin: 0 5px;
-                        width: 20px;
-                        text-align: center;
-                        box-sizing: border-box;
-                    }
-                }
+    &-form {
+      .form-timer {
+        .timer-wrap {
+          display: flex;
+          flex-direction: row;
+        }
 
-                .el-form-item:nth-last-child(1) {
-                    margin-bottom: 0;
-                }
-            }
+        .line {
+          margin: 0 5px;
+          width: 20px;
+          text-align: center;
+          box-sizing: border-box;
+        }
+      }
 
-            .my-Config-editor {
-                flex: 1;
-                margin-left: 30px;
+      .el-form-item:nth-last-child(1) {
+        margin-bottom: 0;
+      }
+    }
 
-                .admin-quill-editor {
-                    height: 100%;
+    .my-Config-editor {
+      flex: 1;
+      margin-left: 30px;
 
-                    ::v-deep .quill-editor {
-                        height: 100%;
-                        display: flex;
-                        flex-direction: column;
-                        background: #FFF;
-                    }
-                }
-            }
-        }
+      .admin-quill-editor {
+        height: 100%;
 
-        .my-Config-bottom {
-            margin-top: 20px;
-            text-align: center;
+        ::v-deep .quill-editor {
+          height: 100%;
+          display: flex;
+          flex-direction: column;
+          background: #FFF;
         }
+      }
     }
+  }
+
+  .my-Config-bottom {
+    margin-top: 20px;
+    text-align: center;
+  }
+}
 </style>