Jelajahi Sumber

修改样式

wrh 2 tahun lalu
induk
melakukan
8ce5f7ed51

+ 82 - 0
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/package-lock.json

@@ -2272,6 +2272,15 @@
       "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==",
       "dev": true
     },
+    "adler-32": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.2.0.tgz",
+      "integrity": "sha512-/vUqU/UY4MVeFsg+SsK6c+/05RZXIHZMGJA+PX5JyWI0ZRcBpupnRuPLU/NXXoFwMYCPCoxIfElM2eS+DUXCqQ==",
+      "requires": {
+        "exit-on-epipe": "~1.0.1",
+        "printj": "~1.1.0"
+      }
+    },
     "ajv": {
       "version": "6.12.6",
       "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
@@ -3289,6 +3298,22 @@
       "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
       "dev": true
     },
+    "cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      },
+      "dependencies": {
+        "adler-32": {
+          "version": "1.3.1",
+          "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+          "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+        }
+      }
+    },
     "chalk": {
       "version": "2.4.2",
       "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
@@ -3615,6 +3640,11 @@
         "q": "^1.1.2"
       }
     },
+    "codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+    },
     "collection-visit": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz",
@@ -4082,6 +4112,11 @@
         }
       }
     },
+    "crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+    },
     "create-ecdh": {
       "version": "4.0.4",
       "resolved": "https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz",
@@ -5598,6 +5633,11 @@
         "strip-eof": "^1.0.0"
       }
     },
+    "exit-on-epipe": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
+      "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
+    },
     "expand-brackets": {
       "version": "2.1.4",
       "resolved": "https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz",
@@ -6114,6 +6154,11 @@
       "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
       "dev": true
     },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+    },
     "fragment-cache": {
       "version": "0.2.1",
       "resolved": "https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -9834,6 +9879,11 @@
         "renderkid": "^2.0.4"
       }
     },
+    "printj": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/printj/-/printj-1.1.2.tgz",
+      "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
+    },
     "process": {
       "version": "0.11.10",
       "resolved": "https://registry.npmmirror.com/process/-/process-0.11.10.tgz",
@@ -11154,6 +11204,14 @@
       "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz",
       "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
     },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
     "sshpk": {
       "version": "1.17.0",
       "resolved": "https://registry.npmmirror.com/sshpk/-/sshpk-1.17.0.tgz",
@@ -13491,6 +13549,16 @@
       "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
       "dev": true
     },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+    },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
     "word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -13558,6 +13626,20 @@
         "async-limiter": "~1.0.0"
       }
     },
+    "xlsx": {
+      "version": "0.17.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.17.5.tgz",
+      "integrity": "sha512-lXNU0TuYsvElzvtI6O7WIVb9Zar1XYw7Xb3VAx2wn8N/n0whBYrCnHMxtFyIiUU1Wjf09WzmLALDfBO5PqTb1g==",
+      "requires": {
+        "adler-32": "~1.2.0",
+        "cfb": "^1.1.4",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.0",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      }
+    },
     "xml-name-validator": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",

+ 12 - 0
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/api/index.js

@@ -196,6 +196,18 @@ export default {
   uploadArticleExcel(data) {
     return request.post('sortArticleHeadlines/add/batch', data)
   },
+  // 分页查询公众号信息
+  wofaPage(data) {
+    return request.get('wOfa/page', data)
+  },
+  // 修改公众号时间
+  updateWofa(data) {
+    return request.post('wOfa/update', data)
+  },
+  // 批量修改公众号时间
+  updateWofaExcel(data) {
+    return request.post('wOfa/update/batch', data)
+  },
 
 }
 

+ 22 - 15
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/router/index.js

@@ -19,7 +19,8 @@ import MapDetails from '../views/mapEdit/MapDetails' // 地图详情
 import DecisionMatters from '../views/decisionMatters/DecisionMatters' // 决策事项管理
 import Department from '../views/mechanism/Department' // 部门管理
 import Column from '../views/mechanism/Column' // 栏目管理
-import NewMediaMatrix from '../views/newMediaMatrix/NewMediaMatrix' // 新媒体矩阵管理
+import Article from '../views/newMediaMatrix/Article' // 新媒体矩阵管理->数据更新
+import WOfa from '../views/newMediaMatrix/WOfa' // 新媒体矩阵管理->时间更新
 
 export const constantRoutes = [{
     path: '/redirect',
@@ -123,20 +124,29 @@ export const constantRoutes = [{
   {
     path: '/newMediaMatrix',
     component: Layout,
-    redirect: '/newMediaMatrix/index',
+    redirect: '/newMediaMatrix/article',
     name: 'NewMediaMatrix',
     meta: {
       title: '新媒体矩阵管理',
-      icon: 'el-icon-s-cooperation'
+      icon: 'el-icon-s-data'
     },
     children: [{
-      path: 'index',
-      component: NewMediaMatrix,
-      name: 'NewMediaMatrix',
-      meta: {
-        title: '新媒体矩阵管理'
+        path: 'article',
+        component: Article,
+        name: 'Article',
+        meta: {
+          title: '数据更新'
+        }
+      },
+      {
+        path: 'wOfa',
+        component: WOfa,
+        name: 'WOfa',
+        meta: {
+          title: '时间更新'
+        }
       }
-    }]
+    ]
   },
   {
     path: '/mechanism',
@@ -152,8 +162,7 @@ export const constantRoutes = [{
         component: Department,
         name: 'Department',
         meta: {
-          title: '部门管理',
-          icon: 'dashboard'
+          title: '部门管理'
         }
       },
       {
@@ -161,8 +170,7 @@ export const constantRoutes = [{
         component: Column,
         name: 'Column',
         meta: {
-          title: '栏目管理',
-          icon: 'dashboard'
+          title: '栏目管理'
         }
       },
       {
@@ -170,8 +178,7 @@ export const constantRoutes = [{
         component: HuaLongData,
         name: 'HuaLongData',
         meta: {
-          title: '华龙网数据',
-          icon: 'el-icon-s-data'
+          title: '华龙网数据'
         }
       }
     ]

+ 1 - 1
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/decisionMatters/DecisionMatters.vue

@@ -22,7 +22,7 @@
             </el-table-column>
             <el-table-column prop="addTime" label="创建时间" :show-overflow-tooltip="true" />
             <el-table-column prop="releaseTime" label="发布时间" :show-overflow-tooltip="true" />
-            <el-table-column label="操作" prop="examineState,id" width="220" slot="default" fixed="right">
+            <el-table-column label="操作" width="220">
                 <template slot-scope="scope">
                     <el-button class="but" type="primary" @click="openDialog(scope.row.id)">查看</el-button>
                     <el-button class="but" type="primary" @click="releaseDecision(scope.row.id)">发布</el-button>

+ 4 - 7
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/mechanism/Column.vue

@@ -4,13 +4,10 @@
         <div style="display: flex;justify-content: space-between;margin-bottom: 10px">
             <el-button type="primary" class="add" @click="openAddWork">新增</el-button>
             <div style="display: flex">
-                <label style="margin: auto; color: grey">栏目ID</label>
                 <el-input v-model.trim="query.chnlid" clearable placeholder="请输入栏目ID"
                     style="margin: 0 10px;width: 200px" />
-                <label style="margin: auto; color: grey">栏目名称</label>
                 <el-input v-model.trim="query.chnlidName" clearable placeholder="请输入栏目名称"
                     style="margin: 0 10px;width: 200px" />
-                <label style="margin: auto; color: grey">部门名称</label>
                 <el-input v-model.trim="query.deptName" clearable placeholder="请输入部门名称"
                     style="margin: 0 10px;width: 200px" />
                 <el-button type="primary" class="search" @click="searchData">搜索</el-button>
@@ -30,7 +27,7 @@
             <el-table-column prop="chnlidname" label="栏目名称" />
             <el-table-column prop="deptid" label="部门ID" />
             <el-table-column prop="deptname" label="部门名称" />
-            <el-table-column label="操作" prop="examineState,id" width="230" slot="default" fixed="right">
+            <el-table-column label="操作" width="230">
                 <template slot-scope="scope">
                     <el-button class="but" type="primary" style="width: 60px" @click="openModifyWorkDialog(scope.row)">
                         栏目迁移</el-button>
@@ -115,7 +112,7 @@
                 </el-table-column>
                 <el-table-column prop="chnlid" label="栏目ID" />
                 <el-table-column prop="chnlidname" label="栏目名称" />
-                <el-table-column label="操作" prop="examineState,id" slot="default" width="100px" fixed="right">
+                <el-table-column label="操作" width="100px">
                     <template slot-scope="scope">
                         <el-button class="but" type="primary" @click="chooseColumn(scope.row)">选择</el-button>
                     </template>
@@ -156,7 +153,7 @@
                         {{scope.row.sortid ? '部门' : '街镇'}}
                     </template>
                 </el-table-column>
-                <el-table-column label="操作" prop="examineState,id" slot="default" width="100px" fixed="right">
+                <el-table-column label="操作" width="100px">
                     <template slot-scope="scope">
                         <el-button class="but" type="primary" @click="chooseDept(scope.row)">选择</el-button>
                     </template>
@@ -265,7 +262,7 @@
             //打开修改栏目界面
             openModifyWorkDialog(data) {
                 this.workTitle = '栏目迁移';
-                this.postManagement = data;
+                this.postManagement = JSON.parse(JSON.stringify(data));
                 this.workDialog = true;
             },
             //保存

+ 4 - 4
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/mechanism/Department.vue

@@ -28,7 +28,7 @@
                     {{scope.row.sortid ? '部门' : '街镇'}}
                 </template>
             </el-table-column>
-            <el-table-column label="操作" prop="examineState,id" width="230" slot="default" fixed="right">
+            <el-table-column label="操作" width="230">
                 <template slot-scope="scope">
                     <el-button class="but" type="primary" @click="openDialog(scope.row)">查看</el-button>
                     <el-button class="but" type="primary" style="width: 60px" @click="columnInfo(scope.row.deptid)">
@@ -255,7 +255,7 @@
                 </el-table-column>
                 <el-table-column prop="chnlid" label="栏目ID" />
                 <el-table-column prop="chnlidname" label="栏目名称" />
-                <el-table-column label="操作" prop="examineState,id" slot="default" width="200px" fixed="right">
+                <el-table-column label="操作" width="200px">
                     <template slot-scope="scope">
                         <el-button class="but" type="primary" style="width: 70px" @click="columnWorkDialog(scope.row)">
                             栏目迁移</el-button>
@@ -341,7 +341,7 @@
                         {{scope.row.sortid ? '部门' : '街镇'}}
                     </template>
                 </el-table-column>
-                <el-table-column label="操作" prop="examineState,id" slot="default" width="100px" fixed="right">
+                <el-table-column label="操作" width="100px">
                     <template slot-scope="scope">
                         <el-button class="but" type="primary" @click="chooseDept(scope.row)">选择</el-button>
                     </template>
@@ -531,7 +531,7 @@
             //打开修改机构界面
             openModifyWorkDialog(data) {
                 this.workTitle = '编辑机构';
-                this.postManagement = data;
+                this.postManagement = JSON.parse(JSON.stringify(data));
                 this.postManagement.sortid = this.postManagement.sortid ? '1' : '0';
                 this.workDialog = true;
             },

+ 552 - 0
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/newMediaMatrix/Article.vue

@@ -0,0 +1,552 @@
+<template>
+    <div class="yxnaContent">
+        <!--操作栏-->
+        <div style="display: flex;justify-content: space-between;margin-bottom: 10px">
+            <div>
+                <el-button type="primary" class="add" @click="openAddWork">新增</el-button>
+                <el-button type="primary" class="add" style="margin-left: 10px"
+                    @click="upload.open = true;upload.fileList = []">导入
+                </el-button>
+            </div>
+            <div style="display: flex">
+                <el-input v-model.trim="query.officialAccount" clearable placeholder="请输入公众号"
+                    style="margin: 0 10px;width: 200px" />
+                <el-input v-model.trim="query.title" clearable placeholder="请输入标题"
+                    style="margin: 0 10px;width: 200px" />
+                <el-button type="primary" class="search" @click="searchData">搜索</el-button>
+                <el-button type="primary" class="search" @click="reset" style="margin-left: 5px">重置</el-button>
+            </div>
+        </div>
+        <!--表格-->
+        <el-table :data="tableData" border ref='multipleTable' :height="tableH" stripe
+            :header-cell-style="{ background: '#e5e8ed', color: '#666', textAlign: 'center' }" :cell-style="tableStyle"
+            style="cursor: default">
+            <el-table-column width="50" label="序号">
+                <template slot-scope="scope">
+                    {{ (sorts.page - 1) * sorts.limit + scope.$index + 1 }}
+                </template>
+            </el-table-column>
+            <el-table-column prop="officialAccount" label="公众号" />
+            <el-table-column prop="title" :show-overflow-tooltip="true" label="标题" />
+            <el-table-column prop="url" :show-overflow-tooltip="true" label="url" />
+            <el-table-column prop="sort" label="排序号" />
+            <el-table-column prop="createTime" label="发布时间" />
+            <el-table-column label="操作" width="230">
+                <template slot-scope="scope">
+                    <el-button class="but" type="primary" @click="openModifyWorkDialog(scope.row)">
+                        编辑</el-button>
+                    <el-button class="but" type="danger" @click="handleDelete(scope.row.id, scope.$index)">删除
+                    </el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="block">
+            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                :current-page="sorts.page" :page-sizes="[10, 20, 30, 40, 50]" :page-size="sorts.limit"
+                layout="prev, pager,next,jumper,total,sizes" :total="total">
+            </el-pagination>
+        </div>
+        <!-- 新增/编辑媒体 -->
+        <el-dialog :visible.sync="workDialog" width="80%" class="detailDialog" :close-on-click-modal="false" top="40px">
+            <div slot="title">
+                <div class="addTitle">{{workTitle}}</div>
+            </div>
+            <div style="height:65vh;overflow: auto;padding-right: 20px">
+                <el-form :model="postManagement" label-width="140px">
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="公众号" prop="officialAccount">
+                                <el-input v-model="postManagement.officialAccount" placeholder="请输入公众号">
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="标题" prop="title">
+                                <el-input v-model="postManagement.title" placeholder="请输入标题">
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="url" prop="url">
+                                <el-input v-model="postManagement.url" placeholder="请输入url">
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="排序号" prop="sort">
+                                <el-input-number v-model="postManagement.sort">
+                                </el-input-number>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="发布时间" prop="createTime">
+                                <el-date-picker v-model="postManagement.createTime" type="datetime"
+                                    placeholder="请选择发布时间" value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                </el-form>
+            </div>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" size="mini" @click="saveWork">提交</el-button>
+                <el-button @click="workDialog = false" size="mini">返回</el-button>
+            </div>
+        </el-dialog>
+        <!-- 上传文件 -->
+        <el-dialog title="提示" :visible.sync="upload.open" width="400px">
+            <el-upload class="upload-demo" :file-list="upload.fileList" :on-change="onChange" :auto-upload="false"
+                accept=".xlsx, .xls" drag action="#" multiple>
+                <i class="el-icon-upload"></i>
+                <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+                <div class="el-upload__tip" slot="tip" style="text-align: center">仅允许导入xls、xlsx格式文件。<span
+                        style="color: #409EFF;cursor: pointer" @click="getExcelFile">下载模板</span></div>
+            </el-upload>
+            <span slot="footer" class="dialog-footer">
+                <el-button type="primary" :loading="upload.isUploading" @click="submitFileForm">确 定</el-button>
+                <el-button @click="upload.open = false">取 消</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    import api from '../../api/index'
+    import XLSX from 'xlsx'
+
+    export default {
+        name: 'NewMediaMatrix',
+        created() {
+            this.getData()
+        },
+        data() {
+            return {
+                tableStyle: {
+                    textAlign: 'center',
+                },
+                tableH: 'calc(100vh - 230px)',
+                // 搜索参数
+                query: {
+                    officialAccount: '',
+                    title: ''
+                },
+                // 列表数据
+                tableData: [],
+                // 总数
+                total: 0,
+                // 上传相关
+                upload: {
+                    open: false,
+                    isUploading: false,
+                    file: null,
+                    fileList: []
+                },
+                // 上传文件界面
+                dialogVisible: false,
+                //新增/编辑媒体界面
+                workDialog: false,
+                //新增/编辑媒体标题
+                workTitle: '新增媒体',
+                // 新增/编辑表单
+                postManagement: {
+                    officialAccount: '',
+                    title: '',
+                    url: '',
+                    sort: 0,
+                    createTime: ''
+                },
+                // 分页
+                sorts: {
+                    page: 1,
+                    limit: 10,
+                }
+            }
+        },
+        methods: {
+            //打开新增媒体界面
+            openAddWork() {
+                this.postManagement = {
+                    officialAccount: '',
+                    title: '',
+                    url: '',
+                    sort: 0,
+                    createTime: ''
+                };
+                this.workTitle = '新增媒体'
+                this.workDialog = true;
+            },
+            //打开修改媒体界面
+            openModifyWorkDialog(data) {
+                this.workTitle = '编辑媒体';
+                this.postManagement = JSON.parse(JSON.stringify(data));
+                this.workDialog = true;
+            },
+            //保存
+            saveWork() {
+                if (!this.postManagement.officialAccount) {
+                    this.$message.error('请输入公众号!');
+                    return;
+                }
+                if (!this.postManagement.title) {
+                    this.$message.error('请输入标题!');
+                    return;
+                }
+                if (!this.postManagement.url) {
+                    this.$message.error('请输入url!');
+                    return;
+                }
+                if (!this.postManagement.createTime) {
+                    this.$message.error('请选择创建时间!');
+                    return;
+                }
+                let fd = new FormData();
+                fd.append('officialAccount', this.postManagement.officialAccount);
+                fd.append('title', this.postManagement.title);
+                fd.append('url', this.postManagement.url);
+                fd.append('sort', this.postManagement.sort);
+                fd.append('createTime', this.postManagement.createTime);
+                if (this.workTitle == '编辑媒体') {
+                    fd.append('id', this.postManagement.id);
+                    api.updateArticle(fd).then(r => {
+                        if (r.data.result) {
+                            this.$message.success('编辑成功');
+                            this.getData();
+                            this.workDialog = false;
+                        } else {
+                            this.$message.error("编辑失败");
+                        }
+                    }).catch(() => {
+                        this.$message.error("编辑失败");
+                    })
+                } else {
+                    api.addArticle(fd).then(r => {
+                        if (r.data.result) {
+                            this.$message.success('新增成功');
+                            this.getData();
+                            this.workDialog = false;
+                        } else {
+                            this.$message.error("新增失败");
+                        }
+                    }).catch(() => {
+                        this.$message.error("新增失败");
+                    })
+                }
+            },
+            //切换列表条数
+            handleSizeChange(pageSize) {
+                this.sorts.limit = pageSize
+                this.sorts.page = 1;
+                this.getData();
+            },
+            //切换页码
+            handleCurrentChange(currentPage) {
+                this.$refs.multipleTable.bodyWrapper.scrollTop = 0;
+                this.sorts.page = currentPage;
+                this.getData();
+            },
+            //删除
+            handleDelete(id, index) {
+                this.$confirm("您确定要删除该数据吗?", "提示", {
+                    cancelButtonClass: "btn-custom-cancel",
+                    confirmButtonText: "确定",
+                    cancelButtonText: "取消",
+                    type: "warning"
+                }).then(() => {
+                    let fd = new FormData();
+                    fd.append('id', id);
+                    api.deleteArticleById(fd).then(res => {
+                        if (res.data.result) {
+                            this.$message({
+                                type: 'success',
+                                message: '删除成功!'
+                            });
+                            this.tableData.splice(index, 1);
+                            this.getData();
+                        } else {
+                            this.$message({
+                                type: 'info',
+                                message: '删除失败!'
+                            });
+                        }
+                    })
+                }).catch(() => {
+                    this.$message({
+                        type: 'info',
+                        message: '已取消删除'
+                    });
+                })
+            },
+            // 获取列表数据
+            getData() {
+                let params = {
+                    page: this.sorts.page,
+                    limit: this.sorts.limit,
+                    officialAccount: this.query.officialAccount,
+                    title: this.query.title
+                }
+                api.sortArticleHeadlinesPage({
+                    params
+                }).then(r => {
+                    this.total = r.data.count
+                    this.tableData = r.data.data
+                })
+            },
+            // 搜索
+            searchData() {
+                this.sorts.page = 1;
+                this.getData()
+            },
+            // 清空输入框
+            reset() {
+                this.query.officialAccount = '';
+                this.query.title = '';
+                this.sorts.page = 1;
+                this.getData()
+            },
+            // 更改文件
+            onChange(file, fileList) {
+                if (file.raw.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.raw
+                    .type === 'application/vnd.ms-excel') {
+                    this.upload.file = file;
+                    // 覆盖上次上传的文件
+                    if (fileList.length > 0) {
+                        this.upload.fileList = [fileList[fileList.length - 1]];
+                    }
+                } else {
+                    this.$message.error('只能上传xls、xlsx文件!');
+                }
+            },
+            // 提交上传文件
+            submitFileForm() {
+                if (!this.upload.file) {
+                    this.$message.error('请上传文件!');
+                    return;
+                }
+                let fd = new FormData();
+                fd.append('file', this.upload.file.raw);
+                this.upload.isUploading = true;
+                api.uploadArticleExcel(fd).then(r => {
+                    if (r.data.result) {
+                        this.sorts.page = 1;
+                        this.getData();
+                        this.$message.success("上传成功");
+                        this.upload.open = false;
+                        this.upload.isUploading = false;
+                    } else {
+                        this.upload.open = false;
+                        this.upload.isUploading = false;
+                        this.$message.error("上传失败,有" + r.data.msg + "条数据错误");
+                    }
+                }).catch(() => {
+                    this.upload.open = false;
+                    this.upload.isUploading = false;
+                    this.$message.error("上传失败");
+                })
+            },
+            exportExcel(name, titleArr, sheetName) {
+                // 导出EXCEL
+                const ws = XLSX.utils.aoa_to_sheet(titleArr)
+                const wb = XLSX.utils.book_new()
+                XLSX.utils.book_append_sheet(wb, ws, sheetName)
+                XLSX.writeFile(wb, name + '.xlsx')
+            },
+            getExcelFile() {
+                // 获取EXCEL导入示例
+                const titleArr = [
+                    ['公众号', '标题', 'url', '排序', '创建时间']
+                ] // 表头中文名
+                this.exportExcel('example', titleArr, 'sheet1')
+            }
+        },
+    }
+</script>
+
+<style scoped lang="less">
+    /* 禁用后的勾选*/
+    /deep/ .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
+        border-color: #def5cb;
+    }
+
+    /deep/ .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
+        background-color: #157de9;
+        border-color: #DCDFE6;
+    }
+
+    /deep/ [data-v-2cde7735] .el-upload-list--picture .el-upload-list__item-name {
+        display: block;
+        margin-top: 0px;
+        margin-left: -78px;
+    }
+
+    /deep/ .el-upload-list--picture .el-upload-list__item {
+        display: flex;
+        flex-direction: column-reverse;
+        width: 100%;
+        height: 100%;
+    }
+
+    /deep/ .el-upload-list--picture .el-upload-list__item-name i {
+        display: none;
+    }
+
+    /deep/ .el-upload-list--picture .el-upload-list__item-name {
+        display: block;
+        margin-top: 0px;
+    }
+
+    /deep/ .el-upload-list--picture .el-upload-list__item-thumbnail {
+        width: 100%;
+        height: 100%;
+    }
+
+    /deep/ .el-dialog__body {
+        padding: 0 0 30px 20px;
+        color: #606266;
+        font-size: 14px;
+        word-break: break-all;
+    }
+
+    /deep/ .el-dialog {
+        margin: 0 auto 0;
+    }
+
+    /deep/ .el-form-item__label {
+        padding: 0;
+    }
+
+    .yxnaContent {
+        padding: 10px;
+    }
+
+    .addTitle {
+        font-size: 18px;
+        font-weight: bold;
+        margin-bottom: 10px;
+    }
+
+    /deep/ .btn-custom-cancel {
+        float: right !important;
+        margin-left: 10px !important;
+    }
+
+    .add {
+        width: 66px;
+        height: 38px;
+        margin-left: 0;
+    }
+
+    /deep/ .el-message-box__btns .el-button:nth-child(2) {
+        margin-right: 10px;
+        float: right;
+    }
+
+    /deep/ .el-col-12 {
+        width: 50%;
+        text-align: left;
+    }
+
+    .search {
+        width: 66px;
+        height: 38px;
+        margin-left: 0;
+    }
+
+    /deep/ .el-form-item__label {
+        height: 40px;
+        width: 110px;
+        background-color: #FAFAFA;
+        text-align: center;
+        border: 1px solid #DCDFE6;
+        border-radius: 2px 0 0 2px;
+    }
+
+    /deep/ .el-button.is-disabled {
+        color: #C0C4CC !important;
+    }
+
+    /deep/.el-button--primary.is-disabled {
+        color: #FFF !important;
+    }
+
+    /deep/ .el-input__inner {
+        border-radius: 2px 0 0 2px;
+    }
+
+    .el-select>.el-input {
+        width: 200px;
+    }
+
+    /deep/ .el-textarea__inner {
+        height: 100px;
+    }
+
+
+    /deep/ .el-dialog__title {
+        font-size: 14px;
+    }
+
+    /deep/ .el-pagination__total {
+        margin-left: 10px !important;
+    }
+
+    .el-pagination {
+        margin: 0;
+        margin-top: 10px;
+        /* position: fixed;
+        left: 13rem; */
+    }
+
+    /deep/ .el-table--scrollable-x .el-table__body-wrapper {
+        z-index: 2;
+    }
+
+    .imgBox {
+        width: 100%;
+        /*height: 55vh;*/
+        height: 100%;
+    }
+
+    .but {
+        width: 36px;
+        height: 22px;
+        padding: 0;
+        font-size: 12px;
+    }
+
+    .el-checkbox {
+        margin: 0;
+        margin-right: 10px;
+    }
+
+    /deep/ .bewrite>.el-form-item__label {
+        width: 100%;
+        text-align: left;
+        padding-left: 21px;
+    }
+
+    /deep/ .el-form--inline .el-form-item {
+        margin-right: 0px;
+    }
+
+    /deep/ [data-v-2cde7735] .el-form-item__label {
+        border: 1px solid #DCDFE6;
+        /*border-right: transparent;*/
+    }
+
+    /*    空白框*/
+    /deep/ .formTempBox {
+        height: 38px;
+        border: 1px solid #DCDFE6;
+        width: 100%;
+        border-left: transparent;
+        background-color: #FAFAFA;
+    }
+</style>

+ 409 - 0
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/src/views/newMediaMatrix/WOfa.vue

@@ -0,0 +1,409 @@
+<template>
+    <div class="yxnaContent">
+        <!--操作栏-->
+        <div style="display: flex;justify-content: space-between;margin-bottom: 10px">
+            <div>
+                <el-button type="primary" class="add" @click="upload.open = true;upload.fileList = []">导入
+                </el-button>
+            </div>
+            <div style="display: flex">
+                <el-input v-model.trim="query.wName" clearable placeholder="请输入公众号名称"
+                    style="margin: 0 10px;width: 200px" />
+                <el-button type="primary" class="search" @click="searchData">搜索</el-button>
+                <el-button type="primary" class="search" @click="reset" style="margin-left: 5px">重置</el-button>
+            </div>
+        </div>
+        <!--表格-->
+        <el-table :data="tableData" border ref='multipleTable' :height="tableH" stripe
+            :header-cell-style="{ background: '#e5e8ed', color: '#666', textAlign: 'center' }" :cell-style="tableStyle"
+            style="cursor: default">
+            <el-table-column width="50" label="序号">
+                <template slot-scope="scope">
+                    {{ (sorts.page - 1) * sorts.limit + scope.$index + 1 }}
+                </template>
+            </el-table-column>
+            <el-table-column prop="wname" label="公众号名称" />
+            <el-table-column prop="wtype" :show-overflow-tooltip="true" label="类型" />
+            <el-table-column prop="updateTime" label="最近更新时间" />
+            <el-table-column label="操作" width="150">
+                <template slot-scope="scope">
+                    <el-button class="but" type="primary" @click="openModifyWorkDialog(scope.row)">
+                        编辑</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="block">
+            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                :current-page="sorts.page" :page-sizes="[10, 20, 30, 40, 50]" :page-size="sorts.limit"
+                layout="prev, pager,next,jumper,total,sizes" :total="total">
+            </el-pagination>
+        </div>
+        <!-- 编辑 -->
+        <el-dialog :visible.sync="workDialog" width="80%" class="detailDialog" :close-on-click-modal="false" top="40px">
+            <div slot="title">
+                <div class="addTitle">{{workTitle}}</div>
+            </div>
+            <div style="height:65vh;overflow: auto;padding-right: 20px">
+                <el-form :model="postManagement" label-width="140px">
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="公众号名称" prop="wname">
+                                <el-input v-model="postManagement.wname" disabled>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="类型" prop="wtype">
+                                <el-input v-model="postManagement.wtype" disabled>
+                                </el-input>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                    <el-row>
+                        <el-col :span="12">
+                            <el-form-item label="更新时间" prop="updateTime">
+                                <el-date-picker v-model="postManagement.updateTime" value-format="yyyy-MM-dd" type="date" placeholder="请选择更新时间" style="width: 100%">
+                                </el-date-picker>
+                            </el-form-item>
+                        </el-col>
+                    </el-row>
+                </el-form>
+            </div>
+            <div slot="footer" class="dialog-footer">
+                <el-button type="primary" size="mini" @click="saveWork">提交</el-button>
+                <el-button @click="workDialog = false" size="mini">返回</el-button>
+            </div>
+        </el-dialog>
+        <!-- 上传文件 -->
+        <el-dialog title="提示" :visible.sync="upload.open" width="400px">
+            <el-upload class="upload-demo" :file-list="upload.fileList" :on-change="onChange" :auto-upload="false"
+                accept=".xlsx, .xls" drag action="#" multiple>
+                <i class="el-icon-upload"></i>
+                <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
+                <div class="el-upload__tip" slot="tip" style="text-align: center">仅允许导入xls、xlsx格式文件。<span
+                        style="color: #409EFF;cursor: pointer" @click="getExcelFile">下载模板</span></div>
+            </el-upload>
+            <span slot="footer" class="dialog-footer">
+                <el-button type="primary" :loading="upload.isUploading" @click="submitFileForm">确 定</el-button>
+                <el-button @click="upload.open = false">取 消</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+    import api from '../../api/index'
+    import XLSX from 'xlsx'
+
+    export default {
+        name: 'WOfa',
+        created() {
+            this.getData()
+        },
+        data() {
+            return {
+                tableStyle: {
+                    textAlign: 'center',
+                },
+                tableH: 'calc(100vh - 230px)',
+                // 搜索参数
+                query: {
+                    wName: ''
+                },
+                // 列表数据
+                tableData: [],
+                // 总数
+                total: 0,
+                // 上传相关
+                upload: {
+                    open: false,
+                    isUploading: false,
+                    file: null,
+                    fileList: []
+                },
+                // 上传文件界面
+                dialogVisible: false,
+                //编辑界面
+                workDialog: false,
+                //编辑标题
+                workTitle: '编辑公众号',
+                // 编辑表单
+                postManagement: {
+                    id: '',
+                    updateTime: ''
+                },
+                // 分页
+                sorts: {
+                    page: 1,
+                    limit: 10,
+                }
+            }
+        },
+        methods: {
+            //返回
+            goBackyynn() {
+                this.workDialog = false;
+            },
+            //打开修改媒体界面
+            openModifyWorkDialog(data) {
+                this.postManagement = JSON.parse(JSON.stringify(data));
+                this.workDialog = true;
+            },
+            //保存
+            saveWork() {
+                if (!this.postManagement.updateTime) {
+                    this.$message.error('请选择更新时间!');
+                    return;
+                }
+                let fd = new FormData();
+                fd.append('id', this.postManagement.id);
+                fd.append('updateTime', this.postManagement.updateTime);
+                api.updateWofa(fd).then(r => {
+                    if (r.data.result) {
+                        this.$message.success('编辑成功');
+                        this.getData();
+                        this.workDialog = false;
+                    } else {
+                        this.$message.error("编辑失败");
+                    }
+                }).catch(() => {
+                    this.$message.error("编辑失败");
+                })
+            },
+            //切换列表条数
+            handleSizeChange(pageSize) {
+                this.sorts.limit = pageSize
+                this.sorts.page = 1;
+                this.getData();
+            },
+            //切换页码
+            handleCurrentChange(currentPage) {
+                this.$refs.multipleTable.bodyWrapper.scrollTop = 0;
+                this.sorts.page = currentPage;
+                this.getData();
+            },
+            // 获取列表数据
+            getData() {
+                let params = {
+                    page: this.sorts.page,
+                    limit: this.sorts.limit,
+                    wName: this.query.wName
+                }
+                api.wofaPage({
+                    params
+                }).then(r => {
+                    this.total = r.data.count
+                    this.tableData = r.data.data
+                })
+            },
+            // 搜索
+            searchData() {
+                this.sorts.page = 1;
+                this.getData()
+            },
+            // 清空输入框
+            reset() {
+                this.query.wName = '';
+                this.sorts.page = 1;
+                this.getData()
+            },
+            // 更改文件
+            onChange(file, fileList) {
+                if (file.raw.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.raw
+                    .type === 'application/vnd.ms-excel') {
+                    this.upload.file = file;
+                    // 覆盖上次上传的文件
+                    if (fileList.length > 0) {
+                        this.upload.fileList = [fileList[fileList.length - 1]];
+                    }
+                } else {
+                    this.$message.error('只能上传xls、xlsx文件!');
+                }
+            },
+            // 提交上传文件
+            submitFileForm() {
+                if (!this.upload.file) {
+                    this.$message.error('请上传文件!');
+                    return;
+                }
+                let fd = new FormData();
+                fd.append('file', this.upload.file.raw);
+                this.upload.isUploading = true;
+                api.updateWofaExcel(fd).then(r => {
+                    if (r.data.result) {
+                        this.sorts.page = 1;
+                        this.getData();
+                        console.log(r);
+                        this.$message.success("上传成功,已更新" +  r.data.msg + "条记录");
+                        this.upload.open = false;
+                        this.upload.isUploading = false;
+                    } else {
+                        this.upload.open = false;
+                        this.upload.isUploading = false;
+                        this.$message.error("上传失败");
+                    }
+                }).catch(res => {
+                    this.upload.open = false;
+                    this.upload.isUploading = false;
+                    this.$message.error(res.response.data.message);
+                })
+            },
+            exportExcel(name, titleArr, sheetName) {
+                // 导出EXCEL
+                const ws = XLSX.utils.aoa_to_sheet(titleArr)
+                const wb = XLSX.utils.book_new()
+                XLSX.utils.book_append_sheet(wb, ws, sheetName)
+                XLSX.writeFile(wb, name + '.xlsx')
+            },
+            getExcelFile() {
+                // 获取EXCEL导入示例
+                const titleArr = [
+                    ['公众号', '更新时间', '平台']
+                ] // 表头中文名
+                this.exportExcel('example', titleArr, 'sheet1')
+            }
+        },
+    }
+</script>
+
+<style scoped lang="less">
+    /* 禁用后的勾选*/
+    /deep/ .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after {
+        border-color: #def5cb;
+    }
+
+    /deep/ .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
+        background-color: #157de9;
+        border-color: #DCDFE6;
+    }
+
+    /deep/ .el-dialog__body {
+        padding: 0 0 30px 20px;
+        color: #606266;
+        font-size: 14px;
+        word-break: break-all;
+    }
+
+    /deep/ .el-dialog {
+        margin: 0 auto 0;
+    }
+
+    .yxnaContent {
+        padding: 10px;
+    }
+
+    .addTitle {
+        font-size: 18px;
+        font-weight: bold;
+        margin-bottom: 10px;
+    }
+
+    /deep/ .btn-custom-cancel {
+        float: right !important;
+        margin-left: 10px !important;
+    }
+
+    .add {
+        width: 66px;
+        height: 38px;
+        margin-left: 0;
+    }
+
+    /deep/ .el-message-box__btns .el-button:nth-child(2) {
+        margin-right: 10px;
+        float: right;
+    }
+
+    .search {
+        width: 66px;
+        height: 38px;
+        margin-left: 0;
+    }
+
+    /deep/ .el-form-item__label {
+        height: 40px;
+        width: 110px;
+        background-color: #FAFAFA;
+        text-align: center;
+        border: 1px solid #DCDFE6;
+        border-radius: 2px 0 0 2px;
+    }
+
+    /deep/ .el-button.is-disabled {
+        color: #C0C4CC !important;
+    }
+
+    /deep/.el-button--primary.is-disabled {
+        color: #FFF !important;
+    }
+
+    /deep/ .el-input__inner {
+        border-radius: 2px 0 0 2px;
+    }
+
+    .el-select>.el-input {
+        width: 200px;
+    }
+
+    /deep/ .el-textarea__inner {
+        height: 100px;
+    }
+
+
+    /deep/ .el-dialog__title {
+        font-size: 14px;
+    }
+
+    /deep/ .el-pagination__total {
+        margin-left: 10px !important;
+    }
+
+    .el-pagination {
+        margin: 0;
+        margin-top: 10px;
+        /* position: fixed;
+        left: 13rem; */
+    }
+
+    // /deep/ .el-table--scrollable-x .el-table__body-wrapper {
+    //     z-index: 2;
+    // }
+
+    .but {
+        width: 36px;
+        height: 22px;
+        padding: 0;
+        font-size: 12px;
+    }
+
+    .el-checkbox {
+        margin: 0;
+        margin-right: 10px;
+    }
+
+    /deep/ .bewrite>.el-form-item__label {
+        width: 100%;
+        text-align: left;
+        padding-left: 21px;
+    }
+
+    /deep/ .el-form--inline .el-form-item {
+        margin-right: 0px;
+    }
+
+    /deep/ [data-v-2cde7735] .el-form-item__label {
+        border: 1px solid #DCDFE6;
+        /*border-right: transparent;*/
+    }
+
+    // /*    空白框*/
+    // /deep/ .formTempBox {
+    //     height: 38px;
+    //     border: 1px solid #DCDFE6;
+    //     width: 100%;
+    //     border-left: transparent;
+    //     background-color: #FAFAFA;
+    // }
+</style>

+ 2 - 2
nngkxxdp/src/main/resources/static/naqwzsjtj/naqwzsjtj/vue.config.js

@@ -15,9 +15,9 @@ module.exports = {
         proxy: {
             '/': {
                 // target:'http://192.168.0.230:7777/',//开发
-                // target:'http://192.168.0.7:7777/',//开发
+                target:'http://192.168.0.222:7777/',//开发
                 // target:'http://192.168.1.253:7777/',//测试
-                target:'http://data.cqna.gov.cn/',//线上
+                // target:'http://data.cqna.gov.cn/',//线上
                 changeOrigin: true,
                 pathRewrite: {
                     '^ /': ''