Explorar o código

feat: 修改资讯类型的取值来源

mnisting hai 4 meses
pai
achega
267d48890b

+ 0 - 234
src/views/newsManage/components/addNews copy.vue

@@ -1,234 +0,0 @@
-<template>
-  <div v-loading="loading">
-    <el-form
-      ref="form"
-      :rules="formRules"
-      :model="formData"
-      class="form"
-      label-width="100px"
-    >
-      <el-row :gutter="10">
-        <el-col :span="12">
-          <el-form-item label="标题" prop="title">
-            <el-input
-              v-model="formData.title"
-              placeholder="请输入标题"
-              clearable
-            ></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="作者" prop="author">
-            <el-input
-              v-model="formData.author"
-              placeholder="请输入作者"
-              clearable
-            ></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="封面" prop="thumbUrl">
-            <el-input
-              v-model="formData.thumbUrl"
-              placeholder="请输入封面图片地址"
-              clearable
-            ></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="是否显示封面" prop="showCoverPic">
-            <!-- @change="handleShow" -->
-            <el-switch
-              v-model="formData.showCoverPic"
-              active-color="#13ce66"
-              inactive-color="#ff4949"
-              active-value="1"
-              inactive-value="0"
-            >
-            </el-switch>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="跳转地址" prop="url">
-            <el-input
-              v-model="formData.url"
-              placeholder="请输入跳转地址"
-              clearable
-            ></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="发布时间" prop="publishTime">
-            <!-- value-format="yyyy-MM-dd HH:mm:ss" -->
-            <el-date-picker
-              style="width: 100%"
-              v-model="formData.publishTime"
-              type="datetime"
-              placeholder="请选择发布时间"
-            >
-            </el-date-picker>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="类别" prop="publishType">
-            <el-select
-              style="width: 100%"
-              v-model="formData.publishType"
-              placeholder="请选择类别"
-              clearable
-            >
-              <el-option
-                v-for="dict in typeOptions"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="状态" prop="status">
-            <el-select
-              style="width: 100%"
-              v-model="formData.status"
-              placeholder="请选择状态"
-              clearable
-            >
-              <el-option
-                v-for="dict in statusOptions"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24">
-          <el-form-item label="摘要" prop="digest">
-            <el-input
-              v-model="formData.digest"
-              type="textarea"
-              :rows="4"
-              placeholder="请输入摘要"
-            ></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24" style="text-align: right">
-          <el-button type="primary" @click="handleConfirm">确 定</el-button>
-          <el-button @click="handleCancel">取 消</el-button>
-        </el-col>
-      </el-row>
-    </el-form>
-  </div>
-</template>
-
-<script>
-export default {
-  dicts: [],
-  props: {
-    infoData: {
-      type: Object,
-      default: () => {},
-    },
-    loading: {
-      type: Boolean,
-      default: false,
-    },
-  },
-  data() {
-    return {
-      formData: {
-        title: "",
-        author: "",
-        thumbUrl: "",
-        showCoverPic: "1",
-        url: "",
-        publishTime: "",
-        digest: "",
-        status: "",
-        publishType: "",
-      },
-      typeOptions: [
-        { value: "1", label: "公司喜讯" },
-        { value: "2", label: "公司动态" },
-        { value: "3", label: "行业动态" },
-      ],
-      statusOptions: [
-        { value: "0", label: "有效" },
-        { value: "1", label: "无效" },
-      ],
-      formRules: {
-        title: [{ required: true, message: "请输入标题", trigger: "blur" }],
-        author: [{ required: true, message: "请输入作者", trigger: "blur" }],
-        url: [
-          { required: true, message: "请输入文章跳转地址", trigger: "blur" },
-        ],
-        publishTime: [
-          { required: true, message: "请选择发布时间", trigger: "change" },
-        ],
-        type: [{ required: true, message: "请选择类别", trigger: "change" }],
-        publishType: [
-          { required: true, message: "请选择类别", trigger: "change" },
-        ],
-        status: [{ required: true, message: "请选择状态", trigger: "change" }],
-        digest: [{ required: true, message: "请输入摘要", trigger: "blur" }],
-      },
-    };
-  },
-  watch: {
-    infoData: {
-      handler(newVal) {
-        if (newVal) {
-          this.formData = {
-            officialAccountId: newVal.officialAccountId || "",
-            title: newVal.title || "",
-            author: newVal.author || "",
-            thumbUrl: newVal.thumbUrl || "",
-            showCoverPic: newVal.showCoverPic || "1",
-            url: newVal.url || "",
-            publishTime: newVal.publishTime || "",
-            digest: newVal.digest || "",
-            status: newVal.status || "",
-            publishType: newVal.publishType || "",
-          };
-          this.$nextTick(() => {
-            this.$refs.form && this.$refs.form.clearValidate();
-          });
-        }
-      },
-      immediate: true,
-    },
-  },
-  created() {},
-  methods: {
-    // 是否展示封面
-    // handleShow(val) {
-    //   this.formData.showCoverPic = val;
-    // },
-    handleConfirm() {
-      this.$refs["form"].validate((valid) => {
-        if (valid) {
-          this.$emit("save", this.formData);
-        } else {
-          this.$message.warning("表单校验不通过,请检查");
-        }
-      });
-    },
-    handleCancel() {
-      this.formData = {
-        title: "",
-        author: "",
-        thumbUrl: "",
-        showCoverPic: "1",
-        url: "",
-        publishTime: "",
-        digest: "",
-        status: "",
-        publishType: "",
-      };
-      this.$refs.form.clearValidate();
-      this.$emit("cancel");
-    },
-  },
-};
-</script>

+ 2 - 7
src/views/newsManage/components/addNews.vue

@@ -56,7 +56,7 @@
               clearable
             >
               <el-option
-                v-for="dict in typeOptions"
+                v-for="dict in dict.type.publish_type"
                 :key="dict.value"
                 :label="dict.label"
                 :value="dict.value"
@@ -120,7 +120,7 @@
 
 <script>
 export default {
-  dicts: [],
+  dicts: ["publish_type"],
   props: {
     infoData: {
       type: Object,
@@ -144,11 +144,6 @@ export default {
         status: "",
         publishType: "",
       },
-      typeOptions: [
-        { value: "1", label: "公司喜讯" },
-        { value: "2", label: "公司动态" },
-        { value: "3", label: "行业动态" },
-      ],
       statusOptions: [
         { value: "0", label: "有效" },
         { value: "1", label: "无效" },

+ 9 - 17
src/views/newsManage/index.vue

@@ -77,12 +77,14 @@
         align="center"
         min-width="300"
       />
-      <el-table-column
-        label="类别"
-        prop="publishType"
-        align="center"
-        :formatter="typeFormatter"
-      />
+      <el-table-column label="类别" prop="publishType" align="center">
+        <template slot-scope="scope">
+          <dict-tag
+            :options="dict.type.publish_type"
+            :value="scope.row.publishType"
+          />
+        </template>
+      </el-table-column>
 
       <el-table-column label="封面" align="center" prop="thumbUrl" width="100">
         <template slot-scope="scope">
@@ -188,7 +190,7 @@ import addNewsDlg from "./components/addNews.vue";
 export default {
   name: "RecruitInfoManage",
   components: { addNewsDlg },
-  dicts: [],
+  dicts: ["publish_type"],
   data() {
     return {
       // 是否展示筛选项
@@ -216,22 +218,12 @@ export default {
       title: "",
       infoData: {},
       dlgLoading: false,
-      // 类别
-      typeOptions: [
-        { value: "1", label: "公司喜讯" },
-        { value: "2", label: "公司动态" },
-        { value: "3", label: "行业动态" },
-      ],
     };
   },
   created() {
     this.getList();
   },
   methods: {
-    typeFormatter(row) {
-      let obj = this.typeOptions.find((dict) => dict.value === row.publishType);
-      return obj.label;
-    },
     // 搜索
     handleQuery() {
       this.queryParams.pageNum = 1;