Browse Source

添加时添加分部

lex 1 năm trước cách đây
mục cha
commit
d0673e96af

+ 122 - 35
src/views/contentManager/components/teacherButton.vue

@@ -19,7 +19,11 @@
       :model="searchForm"
       :model="searchForm"
     >
     >
       <el-form-item prop="subType">
       <el-form-item prop="subType">
-        <el-select v-model="searchForm.subType" clearable placeholder="请选择分类">
+        <el-select
+          v-model="searchForm.subType"
+          clearable
+          placeholder="请选择分类"
+        >
           <el-option
           <el-option
             v-for="item in typeList"
             v-for="item in typeList"
             :key="item.id"
             :key="item.id"
@@ -43,10 +47,14 @@
             <img class="bannerImg" :src="scope.row.coverImage" alt="" />
             <img class="bannerImg" :src="scope.row.coverImage" alt="" />
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column align="center" prop="title" label="标题"> </el-table-column>
+        <el-table-column align="center" prop="title" label="标题">
+        </el-table-column>
         <el-table-column align="center" label="跳转链接">
         <el-table-column align="center" label="跳转链接">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            <overflow-text width="100%" :text="scope.row.linkUrl"></overflow-text>
+            <overflow-text
+              width="100%"
+              :text="scope.row.linkUrl"
+            ></overflow-text>
             <!-- {{ scope.row.linkUrl + '/' + scope.row.id }} -->
             <!-- {{ scope.row.linkUrl + '/' + scope.row.id }} -->
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -60,10 +68,39 @@
             {{ formatSubType(scope.row.subType) }}
             {{ formatSubType(scope.row.subType) }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
+        <el-table-column align="center" prop="" label="可用分部">
+          <template slot="header" slot-scope="slot">
+            <div class="titleCell">
+              <span>可用分部</span>
+              <el-tooltip placement="top" popper-class="mTooltip">
+                <div slot="content">可用分部为空则所有分部都显示</div>
+                <i
+                  class="el-icon-question micon el-tooltip"
+                  style="
+                      font-size: 18px;
+                      color: #f56c6c;
+                      top: 2px;
+                      position: relative;
+                    "
+                ></i>
+              </el-tooltip>
+            </div>
+          </template>
+          <template slot-scope="scope">
+            <overflow-text
+              width="100%"
+              :text="
+                scope.row.organNameList ? scope.row.organNameList : '全部分部'
+              "
+            ></overflow-text>
+          </template>
+        </el-table-column>
 
 
-        <el-table-column align="center" prop="memo" label="版本号"> </el-table-column>
+        <el-table-column align="center" prop="memo" label="版本号">
+        </el-table-column>
 
 
-        <el-table-column align="center" prop="order" label="排序"> </el-table-column>
+        <el-table-column align="center" prop="order" label="排序">
+        </el-table-column>
 
 
         <el-table-column align="center" label="操作">
         <el-table-column align="center" label="操作">
           <template slot-scope="scope">
           <template slot-scope="scope">
@@ -113,8 +150,12 @@
       />
       />
     </div>
     </div>
 
 
-    <el-dialog :title="formTitle[pageType]" :visible.sync="teacherStatus" width="500px">
-      <el-form :model="form" ref="form" label-width="80px">
+    <el-dialog
+      :title="formTitle[pageType]"
+      :visible.sync="teacherStatus"
+      width="500px"
+    >
+      <el-form :model="form" ref="form" label-width="120px">
         <el-form-item
         <el-form-item
           label="标题"
           label="标题"
           prop="title"
           prop="title"
@@ -122,17 +163,26 @@
             {
             {
               required: true,
               required: true,
               message: '请输入标题',
               message: '请输入标题',
-              trigger: 'blur',
-            },
+              trigger: 'blur'
+            }
           ]"
           ]"
         >
         >
-          <el-input v-model.trim="form.title" placeholder="请输入标题"></el-input>
+          <el-input
+            v-model.trim="form.title"
+            placeholder="请输入标题"
+          ></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="排序值" prop="order">
         <el-form-item label="排序值" prop="order">
-          <el-input v-model.trim="form.order" placeholder="请输入排序值"></el-input>
+          <el-input
+            v-model.trim="form.order"
+            placeholder="请输入排序值"
+          ></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="链接地址" prop="linkUrl">
         <el-form-item label="链接地址" prop="linkUrl">
-          <el-input v-model.trim="form.linkUrl" placeholder="请输入链接地址"></el-input>
+          <el-input
+            v-model.trim="form.linkUrl"
+            placeholder="请输入链接地址"
+          ></el-input>
         </el-form-item>
         </el-form-item>
         <el-form-item label="版本号" prop="memo">
         <el-form-item label="版本号" prop="memo">
           <el-input v-model="form.memo" placeholder="请输入版本号"></el-input>
           <el-input v-model="form.memo" placeholder="请输入版本号"></el-input>
@@ -140,7 +190,9 @@
         <el-form-item
         <el-form-item
           label="分类"
           label="分类"
           prop="subType"
           prop="subType"
-          :rules="[{ required: true, message: '请选择分类', trigger: 'change' }]"
+          :rules="[
+            { required: true, message: '请选择分类', trigger: 'change' }
+          ]"
         >
         >
           <el-select
           <el-select
             v-model="form.subType"
             v-model="form.subType"
@@ -155,10 +207,43 @@
             ></el-option>
             ></el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
+        <el-form-item label="可用分部" prop="organIdList">
+          <template slot="label">
+            可用分部<el-tooltip placement="top" popper-class="mTooltip">
+              <div slot="content">可用分部为空则所有分部都显示</div>
+              <i
+                class="el-icon-question micon el-tooltip"
+                style="
+                      font-size: 18px;
+                      color: #f56c6c;
+                      top: 2px;
+                      position: relative;
+                    "
+              ></i>
+            </el-tooltip>
+          </template>
+          <select-all
+            multiple
+            collapse-tags
+            v-model="form.organIdList"
+            clearable
+            filterable
+            placeholder="请选择可用分部"
+          >
+            <el-option
+              v-for="(item, index) in selects.branchs"
+              :key="index"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </select-all>
+        </el-form-item>
         <el-form-item
         <el-form-item
           label="封面图"
           label="封面图"
           prop="coverImage"
           prop="coverImage"
-          :rules="[{ required: true, message: '请上传封面图', trigger: 'blur' }]"
+          :rules="[
+            { required: true, message: '请上传封面图', trigger: 'blur' }
+          ]"
         >
         >
           <image-cropper
           <image-cropper
             :options="cropperOptions"
             :options="cropperOptions"
@@ -183,7 +268,7 @@ import {
   newsUpdate,
   newsUpdate,
   newsDel,
   newsDel,
   newsTypeList,
   newsTypeList,
-  newsAdd,
+  newsAdd
 } from "@/api/contentManager";
 } from "@/api/contentManager";
 import ImageCropper from "@/components/ImageCropper";
 import ImageCropper from "@/components/ImageCropper";
 import pagination from "@/components/Pagination/index";
 import pagination from "@/components/Pagination/index";
@@ -193,14 +278,14 @@ export default {
   name: "teacherButton",
   name: "teacherButton",
   components: {
   components: {
     pagination,
     pagination,
-    ImageCropper,
+    ImageCropper
   },
   },
   data() {
   data() {
     return {
     return {
       teacherStatus: false,
       teacherStatus: false,
       formTitle: {
       formTitle: {
         create: "新建老师端按钮",
         create: "新建老师端按钮",
-        update: "修改老师端按钮",
+        update: "修改老师端按钮"
       },
       },
       pageType: "create",
       pageType: "create",
       cropperOptions: {
       cropperOptions: {
@@ -210,7 +295,7 @@ export default {
         fixedBox: true, //是否固定截图框大小 不允许改变
         fixedBox: true, //是否固定截图框大小 不允许改变
         previewsCircle: false, //预览图是否是圆形
         previewsCircle: false, //预览图是否是圆形
         full: true, // 是否输出原图比例的截图
         full: true, // 是否输出原图比例的截图
-        title: "上传图片", //模态框上显示的标题
+        title: "上传图片" //模态框上显示的标题
       },
       },
       form: {
       form: {
         title: "",
         title: "",
@@ -219,12 +304,13 @@ export default {
         coverImage: "",
         coverImage: "",
         subType: null,
         subType: null,
         type: 23,
         type: 23,
+        organIdList: [],
         memo: "",
         memo: "",
         status: 1,
         status: 1,
-        content: "",
+        content: ""
       },
       },
       searchForm: {
       searchForm: {
-        subType: null,
+        subType: null
       },
       },
       tableList: [],
       tableList: [],
       teacherId: this.$route.query.teacherId,
       teacherId: this.$route.query.teacherId,
@@ -233,13 +319,13 @@ export default {
         limit: 10, // 限制显示条数
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         page: 1, // 当前页
         total: 1, // 总条数
         total: 1, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       },
-      typeList: [], // 子分类
+      typeList: [] // 子分类
     };
     };
   },
   },
   async mounted() {
   async mounted() {
-    await newsTypeList({ parentId: 23 }).then((res) => {
+    await newsTypeList({ parentId: 23 }).then(res => {
       if (res.code == 200) {
       if (res.code == 200) {
         this.typeList = res.data;
         this.typeList = res.data;
       }
       }
@@ -252,21 +338,22 @@ export default {
       this.form.coverImage = data.data.url;
       this.form.coverImage = data.data.url;
     },
     },
     onSubmit() {
     onSubmit() {
-      this.$refs["form"].validate(async (valid) => {
+      this.$refs["form"].validate(async valid => {
         if (valid) {
         if (valid) {
           let form = {
           let form = {
             ...this.form,
             ...this.form,
+            organIdList: this.form.organIdList.join(",")
           };
           };
           if (this.pageType == "create") {
           if (this.pageType == "create") {
             if (form.id) {
             if (form.id) {
               // 判断有没有Id,如果有则删除
               // 判断有没有Id,如果有则删除
               delete form.id;
               delete form.id;
             }
             }
-            await newsAdd(form).then((res) => {
+            await newsAdd(form).then(res => {
               this.messageTips("添加", res);
               this.messageTips("添加", res);
             });
             });
           } else if (this.pageType == "update") {
           } else if (this.pageType == "update") {
-            await newsUpdate(form).then((res) => {
+            await newsUpdate(form).then(res => {
               this.messageTips("修改", res);
               this.messageTips("修改", res);
             });
             });
           }
           }
@@ -295,9 +382,9 @@ export default {
         subType: this.searchForm.subType,
         subType: this.searchForm.subType,
         rows: this.pageInfo.limit,
         rows: this.pageInfo.limit,
         page: this.pageInfo.page,
         page: this.pageInfo.page,
-        type: 23,
+        type: 23
       };
       };
-      newsList(cleanDeep(params)).then((res) => {
+      newsList(cleanDeep(params)).then(res => {
         if (res.code == 200) {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.tableList = res.data.rows;
           this.pageInfo.total = res.data.total;
           this.pageInfo.total = res.data.total;
@@ -328,10 +415,10 @@ export default {
       this.$confirm("确定是否删除?", "提示", {
       this.$confirm("确定是否删除?", "提示", {
         confirmButtonText: "确定",
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
       })
         .then(() => {
         .then(() => {
-          newsDel({ id: row.id }).then((res) => {
+          newsDel({ id: row.id }).then(res => {
             if (res.code == 200) {
             if (res.code == 200) {
               this.$message.success("删除成功");
               this.$message.success("删除成功");
               this.getList();
               this.getList();
@@ -348,8 +435,8 @@ export default {
       let tempStr = ["停用", "启用"];
       let tempStr = ["停用", "启用"];
       newsUpdate({
       newsUpdate({
         id: row.id,
         id: row.id,
-        status: status,
-      }).then((res) => {
+        status: status
+      }).then(res => {
         if (res.code == 200) {
         if (res.code == 200) {
           this.$message.success(tempStr[status] + "成功");
           this.$message.success(tempStr[status] + "成功");
           this.getList();
           this.getList();
@@ -361,14 +448,14 @@ export default {
 
 
     formatSubType(val) {
     formatSubType(val) {
       let tempName = null;
       let tempName = null;
-      this.typeList.forEach((item) => {
+      this.typeList.forEach(item => {
         if (item.id == val) {
         if (item.id == val) {
           tempName = item.name;
           tempName = item.name;
         }
         }
       });
       });
       return tempName;
       return tempName;
-    },
-  },
+    }
+  }
 };
 };
 </script>
 </script>
 <style lang="scss" scoped>
 <style lang="scss" scoped>