Просмотр исходного кода

Merge branch 'master' of http://121.40.40.223:3000/zizhong.wang/Lexus-media

suxinf лет назад: 4
Родитель
Сommit
31d9e55601

Разница между файлами не показана из-за своего большого размера
+ 1240 - 1027
package-lock.json


+ 5 - 2
package.json

@@ -12,15 +12,18 @@
     "axios": "^0.21.1",
     "babel-helper-vue-jsx-merge-props": "^2.0.3",
     "core-js": "^3.6.5",
+    "element-tiptap": "^1.26.2",
+    "element-ui": "^2.15.1",
     "qs": "^6.10.1",
     "vue": "^2.6.11",
-    "vue-router": "^3.2.0"
+    "vue-router": "^3.2.0",
+    "vuejs-datepicker": "^1.6.2"
   },
   "devDependencies": {
     "@vue/cli-plugin-babel": "~4.5.0",
     "@vue/cli-plugin-eslint": "~4.5.0",
     "@vue/cli-plugin-router": "~4.5.0",
-    "@vue/cli-service": "~4.5.0",
+    "@vue/cli-service": "^4.5.13",
     "babel-eslint": "^10.1.0",
     "eslint": "^6.7.2",
     "eslint-plugin-vue": "^6.2.2",

+ 20 - 1
src/App.vue

@@ -129,7 +129,7 @@ export default {
     },
   },
   mounted() {},
-  created() {
+ /*  created() {
     this.loadingFlag = true;
     this.getData(); // 线上打开
     // 本地调试打开
@@ -147,6 +147,25 @@ export default {
     //   sessionStorage.setItem("userNameAccount", "L0210_MM");
     //   this.userAccount = "L0210_MM";
     // }
+  }, */
+    created() {
+    this.loadingFlag = true;
+    //this.getData(); // 线上打开
+    // 本地调试打开 
+     this.loadingFlag = false;
+    // this.isManufacturer = "manufacturer"; distributor
+       this.isManufacturer = "manufacturer"
+     if (this.isManufacturer === 'manufacturer') {
+       if(this.$route.path === '/loading') this.$router.replace({ path: "/uploadInfor" });
+       localStorage.setItem("userId", 3084);
+      sessionStorage.setItem("userNameAccount", "L0M14_MM");
+      this.userAccount = "L0M14_MM";
+     } else {
+       if(this.$route.path !== '/loading') this.$router.replace({ path: "/inforList" });
+      localStorage.setItem("userId", 2002);
+       sessionStorage.setItem("userNameAccount", "L0210_MM");
+       this.userAccount = "L0210_MM";
+     }
   },
 };
 </script>

+ 1 - 1
src/components/RouterBanner.vue

@@ -65,7 +65,7 @@ export default {
   },
   data() {
     return {
-      isHover: [true, true, true, true, true],
+      isHover: [true, true, true, true, true, true, true],
       routerList: ROUTER,
       firstRouter: ''
     };

+ 20 - 8
src/config/router.js

@@ -1,12 +1,26 @@
-const ROUTER = [
+const ROUTER = [{
+        title: "通知公告", // 厂商的通知公告
+        path: "/changShang",
+        img1: require("../img/notice1.png"),
+        img2: require("../img/notice2.png"),
+        list: [],
+        role: "manufacturer", // 厂商有权限
+    },
+    {
+        title: "通知公告", // 经销商的通知公告
+        path: "/jingXiaoshang",
+        img1: require("../img/notice1.png"),
+        img2: require("../img/notice2.png"),
+        list: [],
+        role: "distributor", // 经销商有权限
+    },
     {
         title: "数据管理", // 厂商数据管理
         path: "/uploadRecord", // 点击数据管理展示的路由
         img1: require("../img/edit-manage1.png"), // 没点击的背景图
         img2: require("../img/edit-manage2.png"), // 点击了的背景图
         role: "manufacturer", // 厂商权限
-        list: [
-            {
+        list: [{
                 title: "传播项目",
                 path: "/uploadRecord",
             },
@@ -27,8 +41,7 @@ const ROUTER = [
         img1: require("../img/edit-manage1.png"), // 没点击的背景图
         img2: require("../img/edit-manage2.png"), // 点击了的背景图
         role: "distributor", // 厂商和经销商都有权限
-        list: [
-            {
+        list: [{
                 title: "资料下载",
                 path: "/inforList",
             },
@@ -64,8 +77,7 @@ const ROUTER = [
         role: "manufacturer", // 厂商有权限
     },
 ];
-const TAG = [
-    {
+const TAG = [{
         num: 1,
         title: '车系车型',
         path: '/carSeries'
@@ -110,4 +122,4 @@ const TAG = [
 module.exports = {
     ROUTER,
     TAG
-}
+}

BIN
src/img/notice1.png


BIN
src/img/notice2.png


+ 18 - 3
src/main.js

@@ -2,9 +2,24 @@ import Vue from 'vue'
 import App from './App.vue'
 import router from './router'
 import axiosApi from './request/api'
+
+
+import ElementUI from 'element-ui';
+import { ElementTiptapPlugin } from 'element-tiptap';
+// import ElementUI's styles
+import 'element-ui/lib/theme-chalk/index.css';
+// import this package's styles
+import 'element-tiptap/lib/index.css';
+
+// use ElementUI's plugin
+Vue.use(ElementUI);
+// use this package's plugin
+Vue.use(ElementTiptapPlugin, { /* plugin options */ });
+// Now you register `'el-tiptap'` component globally.
+
 Vue.config.productionTip = false
 Vue.prototype.$http = axiosApi
 new Vue({
-  router,
-  render: h => h(App)
-}).$mount('#app')
+    router,
+    render: h => h(App)
+}).$mount('#app')

+ 137 - 143
src/router/index.js

@@ -46,10 +46,20 @@ import LinkUpload from '../views/parameter/LinkUpload'
 // 常用参数
 import CommonParam from '../views/parameter/CommonParam'
 
+
+// 厂商通知公告
+import NoticeChangShang from '../views/notification/changShang.vue'
+// 经销商
+import NoticeJingXiaoshang from '../views/notification/jingXiaoshang.vue'
+// 厂商通知公告 编辑
+import editPage from '../views/notification/editPage/editPage.vue'
+// 经销商通知公告 详情
+import itemDetail from '../views/notification/detail/itemDetail.vue'
+
+
 Vue.use(VueRouter)
 
-const routes = [
-    {
+const routes = [{
         path: '/',
         component: Loading,
         redirect: '/loading'
@@ -62,8 +72,7 @@ const routes = [
         path: '/uploadRecord',
         component: UploadRecord,
         // meta用于面包屑
-        meta: [
-            {
+        meta: [{
                 name: "数据管理",
                 url: ''
             },
@@ -72,32 +81,28 @@ const routes = [
                 url: '/uploadRecord'
             }
         ],
-        children: [
-            {
-                path: 'detail',
-                component: UploadRecordDetail,
-                meta: [
-                    {
-                        name: "数据管理",
-                        url: ''
-                    },
-                    {
-                        name: "传播项目",
-                        url: '/uploadRecord'
-                    },
-                    {
-                        name: "内容详情",
-                        url: ''
-                    }
-                ],
-            }
-        ]
+        children: [{
+            path: 'detail',
+            component: UploadRecordDetail,
+            meta: [{
+                    name: "数据管理",
+                    url: ''
+                },
+                {
+                    name: "传播项目",
+                    url: '/uploadRecord'
+                },
+                {
+                    name: "内容详情",
+                    url: ''
+                }
+            ],
+        }]
     },
     {
         path: '/uploadLink',
         component: UploadLink,
-        meta: [
-            {
+        meta: [{
                 name: "传播项目",
                 url: ''
             },
@@ -106,32 +111,28 @@ const routes = [
                 url: "/uploadLink"
             }
         ],
-        children: [
-            {
-                path: '/uploadLink/sonUploadLink',
-                component: sonUploadLink,
-                meta: [
-                    {
-                        name: "传播项目",
-                        url: ''
-                    },
-                    {
-                        name: "传播反馈",
-                        url: "/uploadLink"
-                    },
-                    {
-                        name: "详情",
-                        url: "/uploadLink/sonUploadLink"
-                    }
-                ],
-            }
-        ]
+        children: [{
+            path: '/uploadLink/sonUploadLink',
+            component: sonUploadLink,
+            meta: [{
+                    name: "传播项目",
+                    url: ''
+                },
+                {
+                    name: "传播反馈",
+                    url: "/uploadLink"
+                },
+                {
+                    name: "详情",
+                    url: "/uploadLink/sonUploadLink"
+                }
+            ],
+        }]
     },
     {
         path: '/uploadLinks',
         component: UploadLinks,
-        meta: [
-            {
+        meta: [{
                 name: "数据管理",
                 url: ''
             },
@@ -144,8 +145,7 @@ const routes = [
     {
         path: '/uploadInfor',
         component: UploadInfor,
-        meta: [
-            {
+        meta: [{
                 name: "数据管理",
                 url: ''
             },
@@ -158,8 +158,7 @@ const routes = [
     {
         path: '/inforList',
         component: InforList,
-        meta: [
-            {
+        meta: [{
                 name: "传播项目",
                 url: ''
             },
@@ -168,52 +167,61 @@ const routes = [
                 url: "/inforList"
             }
         ],
-        children: [
-            {
-                path: 'detail',
-                component: InforListDetail,
-                meta: [
-                    {
-                        name: "传播项目",
-                        url: ''
-                    },
-                    {
-                        name: "资料下载",
-                        url: "/inforList"
-                    },
-                    {
-                        name: "资料详情",
-                        url: ""
-                    }
-                ],
-            }
-        ],
+        children: [{
+            path: 'detail',
+            component: InforListDetail,
+            meta: [{
+                    name: "传播项目",
+                    url: ''
+                },
+                {
+                    name: "资料下载",
+                    url: "/inforList"
+                },
+                {
+                    name: "资料详情",
+                    url: ""
+                }
+            ],
+        }],
     },
     {
         path: '/accountIndex',
         component: AccountIndex,
-        meta: [
-            {
-                name: "账号管理",
-                url: '/accountIndex'
-            }
-        ],
+        meta: [{
+            name: "账号管理",
+            url: '/accountIndex'
+        }],
+    },
+    /* 公告通知 */
+    {
+        path: '/changShang',
+        component: NoticeChangShang,
+        children: [{
+            path: '/changShang/editPage',
+            component: editPage,
+        }]
+    },
+    {
+        path: '/jingXiaoshang',
+        component: NoticeJingXiaoshang,
+        children: [{
+            path: '/jingXiaoshang/itemDetail',
+            component: itemDetail,
+        }]
     },
     {
         path: '/accountManage',
         component: AccountManage,
-        meta: [
-            {
-                name: "账号管理",
-                url: '/accountManage'
-            }
-        ],
+        meta: [{
+            name: "账号管理",
+            url: '/accountManage'
+        }],
     },
     {
         path: '/parameterIndex',
         component: ParameterIndex,
-        children: [
-            {
+        children: [{
                 path: '',
                 component: CarSeries,
                 redirect: 'carSeries'
@@ -221,8 +229,7 @@ const routes = [
             {
                 path: 'carSeries',
                 component: CarSeries,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -231,32 +238,28 @@ const routes = [
                         url: '/parameterIndex/carSeries'
                     }
                 ],
-                children: [
-                    {
-                        path: 'carType',
-                        component: CarType,
-                        meta: [
-                            {
-                                name: "参数设置",
-                                url: ''
-                            },
-                            {
-                                name: "车系车型",
-                                url: '/parameterIndex/carSeries'
-                            },
-                            {
-                                name: "车型管理",
-                                url: ''
-                            }
-                        ]
-                    }
-                ]
+                children: [{
+                    path: 'carType',
+                    component: CarType,
+                    meta: [{
+                            name: "参数设置",
+                            url: ''
+                        },
+                        {
+                            name: "车系车型",
+                            url: '/parameterIndex/carSeries'
+                        },
+                        {
+                            name: "车型管理",
+                            url: ''
+                        }
+                    ]
+                }]
             },
             {
                 path: 'platformModule',
                 component: PlatformModule,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -265,32 +268,28 @@ const routes = [
                         url: '/parameterIndex/platformModule'
                     }
                 ],
-                children: [
-                    {
-                        path: 'section',
-                        component: PlatformSection,
-                        meta: [
-                            {
-                                name: "参数设置",
-                                url: ''
-                            },
-                            {
-                                name: "平台版块",
-                                url: '/parameterIndex/platformModule'
-                            },
-                            {
-                                name: "版块管理",
-                                url: ''
-                            }
-                        ]
-                    }
-                ]
+                children: [{
+                    path: 'section',
+                    component: PlatformSection,
+                    meta: [{
+                            name: "参数设置",
+                            url: ''
+                        },
+                        {
+                            name: "平台版块",
+                            url: '/parameterIndex/platformModule'
+                        },
+                        {
+                            name: "版块管理",
+                            url: ''
+                        }
+                    ]
+                }]
             },
             {
                 path: 'contentCategory1',
                 component: ContentCategory1,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -303,8 +302,7 @@ const routes = [
             {
                 path: 'contentCategory2',
                 component: ContentCategory2,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -317,8 +315,7 @@ const routes = [
             {
                 path: 'mediaPlatform',
                 component: MediaPlatform,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -331,8 +328,7 @@ const routes = [
             {
                 path: 'grouping',
                 component: Grouping,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -345,8 +341,7 @@ const routes = [
             {
                 path: 'linkUpload',
                 component: LinkUpload,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -359,8 +354,7 @@ const routes = [
             {
                 path: 'commonParam',
                 component: CommonParam,
-                meta: [
-                    {
+                meta: [{
                         name: "参数设置",
                         url: ''
                     },
@@ -378,4 +372,4 @@ const router = new VueRouter({
     routes
 })
 
-export default router
+export default router

+ 2 - 2
src/views/data/InforList.vue

@@ -165,8 +165,8 @@ export default {
         },
         {
           name: "查看详情>",
-          function: (obj, i) => {
-            this.showDetail(obj, i);
+          function: (obj) => {
+            this.showDetail(obj);
           },
         },
       ],

+ 0 - 15
src/views/data/UploadLink.vue

@@ -3,18 +3,6 @@
     <div v-if="isFather()">
       <!--  <span><b>经销商</b></span> -->
       <div class="topLeftTitle">针对论坛及其他平台链接上传</div>
-      <!--    <div class="contentHead">
-      <span>上传平台</span>
-      <select name="" id="" v-model="platformVal" @change="choosePlatform">
-        <option
-          v-for="(item, index) in platform"
-          :key="index"
-          :value="item.platformName"
-        >
-          {{ item.platformName }}
-        </option>
-      </select>
-    </div> -->
       <div class="tableBox">
         <table class="feedbackTable">
           <thead class="theadStyle">
@@ -83,9 +71,6 @@
               <!-- 链接 -->
 
               <td class="operationStyle" style="cursor: pointer">
-                <!-- <span @click="toggleModal(index)" :class="showItemOperation"
-                  >编辑</span
-                > -->
                 <span
                   @click="toggleModal(index)"
                   v-if="+(obj.endDate || '').replace(RegExp('-', 'g'), '') - nowDate >= 0"

+ 243 - 0
src/views/notification/changShang.vue

@@ -0,0 +1,243 @@
+<template>
+  <div class="notice_changShang">
+    <div v-if="isFather()">
+      <div style="color: #80808059; border: 1px solid"></div>
+      <button @click="announce()">发布公告</button>
+      <div class="tableD">
+        <div class="table_template">
+          <table class="table">
+            <thead>
+              <tr :style="tableHeadStyle">
+                <td
+                  v-for="(item, index) in tableHeaderD"
+                  :key="index"
+                  :style="tableHeadStyle"
+                >
+                  {{ item }}
+                </td>
+              </tr>
+            </thead>
+            <tbody>
+              <tr
+                v-for="(obj, index) in tableData"
+                :key="index"
+                :class="{ table_gray: !discolor && index % 2 === 0 }"
+              >
+                <td class="titleStyle">{{ obj.informationName || "标题" }}</td>
+                <td>{{ obj.accountScope || "重要通知" }}</td>
+                <td>
+                  {{
+                    (obj.fileUploadDate || "")
+                      .replace("T", " ")
+                      .slice(0, -4)
+                      .replace(RegExp("-", "g"), "/")
+                  }}
+                </td>
+
+                <td v-if="operation" :style="trStyle" class="operationStyle">
+                  <div class="operationBox">
+                    <span
+                      style="cursor: pointer"
+                      v-for="(operationObj, i) in operation"
+                      :key="i"
+                      @click="operationObj.function(obj, index)"
+                      >{{ operationObj.name }}
+                    </span>
+                  </div>
+                </td>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <div class="pageD">
+        <TablePage
+          :totalPage="totalPage"
+          :currentPage="currentPage"
+          @change_page="changePage"
+          @jump_page="jumpPage"
+        />
+        <p>共{{ totalPage }}页,共{{ sum }}条数据</p>
+      </div>
+    </div>
+    <router-view></router-view>
+  </div>
+</template>
+
+<script>
+import TablePage from "../../components/TablePage";
+import { env_url } from "../../config/env";
+export default {
+  components: {
+    TablePage,
+  },
+  data() {
+    return {
+      tableHeaderD: ["标题", "信息类型", "创建时间", "操作"],
+      operation: [
+        {
+          name: "编辑",
+          function: (obj) => {
+            this.edit(obj);
+          },
+        },
+        {
+          name: "删除",
+          function: (obj) => {
+            console.log(obj);
+          },
+        },
+      ],
+      // 表格配置
+      sum: 0, // 一共有多少条数据
+      pageSize: 20, // 每页展示的数据
+      discolor: false, // flase是隔行变色
+      currentPage: 1,
+      tableData: [
+        { title: "title" },
+        { title: "title" },
+        { title: "title" },
+        { title: "title" },
+        { title: "title" },
+        { title: "title" },
+      ],
+      tableFileData: [],
+      tableHeadStyle: {
+        background: "#848484",
+        height: "36px",
+        color: "white",
+      },
+      trStyle: {
+        minwidth: "150px",
+        overflow: "hidden",
+      },
+      onlineUrl: env_url, //'http://8.140.188.129:8080'线上 //http://8.136.230.133:8080 //测试
+      userId: localStorage.getItem("userId") || "",
+    };
+  },
+  computed: {
+    // 表格总页数
+    totalPage() {
+      return Math.ceil(this.sum / this.pageSize);
+    },
+  },
+  methods: {
+    // 获取某一页面的数据,展示在表格
+    changePage: function (page) {
+      this.currentPage = page;
+    },
+    // 点击上一页,下一页,首页,尾页
+    jumpPage: function (item) {
+      switch (item) {
+        case 1:
+          this.currentPage = 1;
+          break;
+        case 2:
+          this.currentPage = this.currentPage - 1;
+          break;
+        case 3:
+          this.currentPage = this.currentPage + 1;
+          break;
+        case 4:
+          this.currentPage = this.totalPage;
+          break;
+      }
+    },
+    //编辑
+    edit: function (config) {
+      console.log(config);
+      this.$router.push({
+        path: "/changShang/editPage",
+        query: {},
+      });
+    },
+    isFather: function () {
+      return this.$route.path == '/changShang' ? true : false;
+    },
+    /* 发布公告 */
+    announce: function () {
+      console.log(' 发布公告')
+      this.$router.push({
+        path: "/changShang/editPage",
+        query: {},
+      });
+    },
+  },
+  created() {},
+};
+</script>
+
+<style scoped lang="less">
+.titleStyle {
+    color: #0000ff;
+}
+/* 查看详情样式 */
+.table_template {
+  text-align: center;
+  .table {
+    background-color: #fff;
+    border-collapse: collapse;
+    border: none;
+    width: 100%;
+    td {
+      border: 1px solid #ccc;
+      height: 36px;
+      width: 25%;
+    }
+    span {
+      &:hover {
+        cursor: pointer;
+      }
+    }
+  }
+}
+.table_gray {
+  background-color: #eeeeee;
+}
+.operationStyle span {
+  color: #0000ff;
+}
+.operationBox {
+  width: 100%;
+  display: flex;
+  justify-content: space-around;
+}
+
+.HeadLeft {
+  border: 1px solid #ccc;
+}
+.pageD {
+  display: flex;
+  justify-content: flex-end;
+  align-items: center;
+  margin-top: 10px;
+}
+.pageD p {
+  margin-left: 16px;
+}
+.reportStyle {
+  text-decoration: underline;
+  cursor: pointer;
+}
+.showItemOperationStyle {
+  display: none;
+}
+.noJump {
+  color: rgb(173, 162, 162);
+  cursor: text !important;
+  text-decoration: underline;
+}
+.canJump {
+  text-decoration: underline;
+}
+.notice_changShang button:nth-of-type(1) {
+  position: relative;
+  float: right;
+  margin: 8px 8px;
+  padding: 8px 16px;
+  width: 100px;
+  height: 35px;
+  border-radius: 5px;
+}
+</style>
+

+ 64 - 0
src/views/notification/detail/itemDetail.vue

@@ -0,0 +1,64 @@
+<template>
+  <div class="notice_jingXiaoshang_detail">
+    <div class="titleBox">
+        <div class="titleStyle">【{{contentData[0].info}}】{{contentData[0].time}}</div>
+        <span @click="backToPre()">返回上一级</span>
+    </div>
+    <div style="color: rgb(128 128 128 / 10%); border: 1px solid"></div>
+    <div class="content">{{contentData[0].content}}</div>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  data() {
+    return {
+      contentData: [
+        {
+          info: "通知",
+          title: "title",
+          time: "2021/05/01",
+          content: '各位经销商同仁非常感谢一直以来对经销商市场支援项目的支持与帮助。题记事宜, 2020年12月线索相关数据明细已经上传系统,烦请参看。再次感谢'
+        },
+      ],
+    };
+  },
+  computed: {},
+  methods: {
+    backToPre() {
+      this.$router.push({
+        path: "/jingXiaoshang",
+        query: {},
+      });
+    },
+  },
+  created() {},
+};
+</script>
+
+
+<style scoped lang="less">
+.titleBox{
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+}
+.titleBox span{
+    color: #0000ff;
+    text-align: right;
+}
+.notice_jingXiaoshang_detail {
+    margin-left: 32px;
+}
+.titleStyle {
+    font-weight:bold;
+    font-size: 16px;
+    height: 50px;
+    line-height: 50px;
+}
+.content {
+    margin-top: 16px;
+}
+</style>
+

+ 201 - 0
src/views/notification/editPage/editPage.vue

@@ -0,0 +1,201 @@
+<template>
+  <div class="notice_changShang_edit">
+    <form>
+      <div class="Line Line1">
+        <span>标题:</span>
+        <input type="text" />
+      </div>
+      <div class="Line Line2">
+        <span>类型:</span>
+        <select>
+          <option>重要通知</option>
+        </select>
+      </div>
+      <div class="Line Line3">
+        <span>区域:</span>
+        <div class="areaBox">
+          <div v-for="(item, index) in areaList" :key="index">
+            <input
+              type="checkbox"
+              :value="item"
+              v-model="checkedBoxList"
+              @click="clickCheckbox(index)"
+            /><span>{{ item }}</span>
+          </div>
+        </div>
+      </div>
+      <div class="Line Line4">
+        <span>信息配置:</span>
+        <!-- <input class="focusStyle" /> -->
+        <div class="fuWenBen">
+          <el-tiptap v-model="content" :extensions="extensions" />
+        </div>
+      </div>
+      <div class="Line Line5">
+        <span>附件:</span>
+        <button>添加附件</button>
+      </div>
+    </form>
+    <div class="operationStyle">
+      <button>保存</button>
+      <button @click="backToPre()">返回</button>
+    </div>
+  </div>
+</template>
+
+<script>
+import {
+  // necessary extensions
+  Doc,
+  Text,
+  Paragraph,
+  Heading,
+  Bold,
+  Underline,
+  Italic,
+  Strike,
+  ListItem,
+  BulletList,
+  OrderedList,
+} from "element-tiptap";
+export default {
+  components: {},
+  data() {
+    return {
+      InfoType: "",
+      areaList: ["全区", "北区", "南区", "东区"], // 按区域添加
+      checkedBoxList: [], // 多选框选中的值
+      extensions: [
+        new Doc(),
+        new Text(),
+        new Paragraph(),
+        new Heading({ level: 5 }),
+        new Bold({ bubble: true }), // render command-button in bubble menu.
+        new Underline({ bubble: true, menubar: false }), // render command-button in bubble menu but not in menubar.
+        new Italic(),
+        new Strike(),
+        new ListItem(),
+        new BulletList(),
+        new OrderedList(),
+      ],
+      // editor's content
+      content: `
+        <h1>Heading</h1>
+        <p>This Editor is awesome!</p>
+      `,
+    };
+  },
+  computed: {},
+  methods: {
+    // 保证多选框东区和其他的多选框互斥
+    clickCheckbox(i) {
+      let list = this.checkedBoxList;
+      let include = list.indexOf("全区");
+      if (i === 0) {
+        this.checkedBoxList = [];
+        return;
+      }
+      if (include >= 0) {
+        this.checkedBoxList.splice(0, 1);
+      }
+    },
+    backToPre() {
+      this.$router.push({
+        path: "/changShang",
+        query: {},
+      });
+    },
+  },
+  created() {},
+};
+</script>
+
+
+<style scoped lang="less">
+/* .notice_changShang_edit {
+  height: 500px;
+} */
+.fuWenBen {
+  position: relative;
+  left: 80px;
+  top: -31px;
+  width: 100%;
+}
+.operationStyle {
+  display: flex;
+  justify-content: center;
+}
+.operationStyle button:nth-child(1) {
+  margin-right: 36px;
+}
+.operationStyle button {
+  border-radius: 5px;
+  width: 100px;
+  height: 36px;
+}
+.Line5 button {
+  border-radius: 5px;
+  width: 100px;
+  height: 23px;
+  vertical-align: middle;
+}
+/* .operationStyle button:nth-child(2){
+  display: flex;
+  justify-content: center;
+} */
+.focusStyle {
+  border: 1px solid #ccc;
+  line-height: 20px;
+  color: #555555;
+  outline: none;
+  position: absolute;
+}
+.focusStyle:focus {
+  animation: shadowAni 200ms linear forwards;
+}
+.Line {
+  height: 50px;
+}
+.Line span {
+  width: 80px;
+  height: 36px;
+  display: inline-flex;
+  vertical-align: middle;
+  line-height: 36px;
+  justify-content: flex-end;
+  margin-right: 8px;
+}
+.areaBox {
+  display: flex;
+}
+.areaBox span {
+  width: 30px;
+}
+.areaBox input {
+  vertical-align: middle;
+}
+.Line3 {
+  display: flex;
+}
+.Line4 span {
+  line-height: 10px;
+}
+.Line4 {
+  margin-top: 9px;
+  height: 230px;
+}
+.Line5 span {
+  position: relative;
+}
+.Line5 button {
+  margin-left: 64px;
+}
+.Line1 input {
+  height: 24px;
+}
+.Line2 select {
+  vertical-align: middle;
+  width: 120px;
+}
+</style>
+

+ 142 - 0
src/views/notification/jingXiaoshang.vue

@@ -0,0 +1,142 @@
+<template>
+  <div class="notice_jingXiaoShang">
+    <div v-if="isFather()">
+      <div class="topTab">
+        <span>通知公告</span>
+      </div>
+      <div
+        style="
+          color: #80808059;
+          border: 1px solid;
+          position: relative;
+          top: 30px;
+        "
+      ></div>
+      <div class="noticeContent">
+        <div
+          v-for="(obj, index) in contentData"
+          :key="index"
+          class="itemBox"
+          @click="toDetail"
+        >
+          <div class="lineItem1">
+            <span class="dotStyle"></span>
+            <div :class="{ unread_message: obj.unread === 1 }">
+              [{{ obj.info }}]
+            </div>
+          </div>
+          <div :class="{ unread_message: obj.unread === 1 }">
+            【{{ obj.title || "" }}】
+          </div>
+          <div :class="{ unread_message: obj.unread === 1 }">
+            {{ obj.title }}
+          </div>
+          <div :class="{ unread_message: obj.unread === 1 }">
+            {{ obj.time }}
+          </div>
+        </div>
+      </div>
+    </div>
+    <router-view></router-view>
+  </div>
+</template>
+
+<script>
+export default {
+  components: {},
+  data() {
+    return {
+      contentData: [
+        {
+          unread: 1,
+          info: "通知",
+          title: "title",
+          time: "2021/05/01",
+        },
+        {
+          unread: 0,
+          info: "通知",
+          title: "title",
+          time: "2021/05/01",
+        },
+        {
+          unread: 0,
+          info: "通知",
+          title: "title",
+          time: "2021/05/01",
+        },
+        {
+          unread: 0,
+          info: "通知",
+          title: "title",
+          time: "2021/05/01",
+        },
+        {
+          unread: 0,
+          info: "通知",
+          title: "title",
+          time: "2021/05/01",
+        },
+      ],
+    };
+  },
+  computed: {},
+  methods: {
+    /* 跳转通知详情 */
+    /* F:\Lexus\Lexus-media\src\views\notification\detail\itemDetail.vue */
+    toDetail: function (config) {
+      console.log(config, this.$route);
+      this.$router.push({
+        path: "/jingXiaoshang/itemDetail",
+        query: {},
+      });
+    },
+    isFather: function () {
+      console.log(this.$route.path, this.$route.path.length)
+      return this.$route.path == '/jingXiaoshang' ? true : false;
+    },
+  },
+  created() {},
+};
+</script>
+
+<style scoped lang="less">
+.unread_message {
+  color: red;
+}
+.lineItem1 {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.dotStyle {
+  width: 2px;
+  height: 2px;
+  border: 1px solid black;
+  border-radius: 2px;
+  background-color: black;
+}
+.noticeContent {
+  position: relative;
+  top: 30px;
+  left: 16px;
+}
+.itemBox {
+  display: flex;
+}
+.itemBox div {
+  margin: 8px 16px 8px 4px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.topTab {
+  height: 30px;
+  background-color: rgba(102, 102, 102, 1);
+  line-height: 30px;
+}
+.topTab span {
+  margin-left: 16px;
+  color: white;
+}
+</style>