ソースを参照

门户页面配置

GXL 1 年間 前
コミット
da6f8599e8

+ 24 - 0
src/api/content/platformInfo.js

@@ -52,3 +52,27 @@ export function exportPlatformInfoExcel(query) {
     responseType: 'blob'
   })
 }
+
+// 获得平台资讯列表
+export function getPlatformInfoList() {
+  return request({
+    url: '/content/platform-info/listForApp',
+    method: 'get'
+  })
+}
+
+// 获得平台资讯列表-web首页
+export function getHomePlatFormForWeb() {
+  return request({
+    url: '/content/platform-info/getHomePlatFormForWeb',
+    method: 'get'
+  })
+}
+
+// 获得相关资讯列表-web首页
+export function getXGZXForWeb() {
+  return request({
+    url: '/ml-content/app-one/getHomeConfigData',
+    method: 'get'
+  })
+}

+ 84 - 0
src/api/system/moduleConfig.js

@@ -0,0 +1,84 @@
+import request from '@/utils/request'
+
+// 创建业务模块配置
+export function createModuleConfig(data) {
+  return request({
+    url: '/system/module-config/create',
+    method: 'post',
+    data: data
+  })
+}
+
+// 更新业务模块配置
+export function updateModuleConfig(data) {
+  return request({
+    url: '/system/module-config/update',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除业务模块配置
+export function deleteModuleConfig(id) {
+  return request({
+    url: '/system/module-config/delete?id=' + id,
+    method: 'delete'
+  })
+}
+
+// 获得业务模块配置
+export function getModuleConfig(id) {
+  return request({
+    url: '/system/module-config/get?id=' + id,
+    method: 'get'
+  })
+}
+
+// 获得业务模块配置分页
+export function getModuleConfigPage(query) {
+  return request({
+    url: '/system/module-config/page',
+    method: 'get',
+    params: query
+  })
+}
+
+// 导出业务模块配置 Excel
+export function exportModuleConfigExcel(query) {
+  return request({
+    url: '/system/module-config/export-excel',
+    method: 'get',
+    params: query,
+    responseType: 'blob'
+  })
+}
+
+// 分类状态修改
+export function changeCategoryStatus(id, status) {
+  const data = {
+    id,
+    status
+  }
+  return request({
+    url: '/system/module-config/update-status',
+    method: 'put',
+    data: data
+  })
+}
+
+// 获得开启的业务模块
+export function getEnableList() {
+  return request({
+    url: '/system/module-config/getEnableList',
+    method: 'get'
+  })
+}
+
+// 获得开启的轮播图
+export function getEnableListPic() {
+  return request({
+    url: '/system/module-config/getEnableListPic',
+    method: 'get'
+  })
+}
+

+ 63 - 0
src/api/system/moduleConfigForPic.js

@@ -0,0 +1,63 @@
+import request from '@/utils/request'
+
+// 创建导览页轮播图配置
+export function createModuleConfigForPic(data) {
+  return request({
+    url: '/system/module-config-pic/create',
+    method: 'post',
+    data: data
+  })
+}
+
+// 更新导览页轮播图配置
+export function updateModuleConfigForPic(data) {
+  return request({
+    url: '/system/module-config-pic/update',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除导览页轮播图配置
+export function deleteModuleConfigForPic(id) {
+  return request({
+    url: '/system/module-config-pic/delete?id=' + id,
+    method: 'delete'
+  })
+}
+
+// 获得导览页轮播图配置
+export function getModuleConfigForPic(id) {
+  return request({
+    url: '/system/module-config-pic/get?id=' + id,
+    method: 'get'
+  })
+}
+
+// 获得导览页轮播图配置分页
+export function getModuleConfigPageForPic(query) {
+  return request({
+    url: '/system/module-config-pic/page',
+    method: 'get',
+    params: query
+  })
+}
+
+// 导出导览页轮播图配置 Excel
+export function exportModuleConfigExcelForPic(query) {
+  return request({
+    url: '/system/module-config-pic/export-excel',
+    method: 'get',
+    params: query,
+    responseType: 'blob'
+  })
+}
+
+// 获得开启的轮播图
+export function getEnableListPic() {
+  return request({
+    url: '/system/module-config-pic/getEnableListPic',
+    method: 'get'
+  })
+}
+

+ 3 - 1
src/views/login.vue

@@ -346,6 +346,8 @@ export default {
 
     // 验证码开关
     this.captchaEnable = getCaptchaEnable();
+    console.log(">>>>>>>>>>>>>>>>>>>>>",this.redirect)
+    console.log(">>>>>>>>>>>>>>>>>>>>>",this.$route.query.redirect)
     // 重定向地址
     this.redirect = this.$route.query.redirect
       ? decodeURIComponent(this.$route.query.redirect)
@@ -524,7 +526,7 @@ export default {
               this.loginForm
             )
             .then(() => {
-              this.$router.push({ path: this.redirect || "/" }).catch(() => {});
+              this.$router.push({ path: this.redirect || "/navigation" }).catch(() => {});
             })
             .catch(() => {
               console.log("登陆失败!!!!!!!!!!!");

+ 157 - 82
src/views/navigation.vue

@@ -7,9 +7,10 @@
                         <span>会助理平台</span>
                     </div>
                     <div class="top_one middle">
-                        <el-input popper-class="my-autocomplete" v-model="queryWord" style="width: 81.25%;">
+                        <el-input popper-class="my-autocomplete" v-model="queryWord" style="width: 81.25%;"
+                            placeholder="搜索关键信息">
                             <i class="el-icon-search" slot="suffix" @click="handleQuery()"
-                                style="width:2%; height: 100%; display: flex;align-items: center;cursor: pointer">
+                                style="width:6%; height: 100%; display: flex;align-items: center;cursor: pointer;margin-right: 1vh;">
                             </i>
                         </el-input>
                     </div>
@@ -29,12 +30,11 @@
                 </div>
                 <div class="top_two">
                     <div class="top_two left">
-                        <el-avatar size="medium"
-                            src="https://hzl.willalp.com/static/img/profile.b87e3d56.jpg"></el-avatar>
-                        <span style="margin-left: 2%;">xxx注册机构</span>
+                        <img :src="thisTenant.agencyLogo" alt="" style="width: 4vh;">
+                        <span style="margin-left: 2%;">{{ thisTenant.agencyName }}</span>
                     </div>
                     <div class="top_two middle">
-                        <el-menu default-active="1" class="top_two_menu" mode="horizontal" @select="">
+                        <el-menu default-active="1" class="top_two_menu" mode="horizontal" @select="handleSelect">
                             <el-menu-item index="1">首页</el-menu-item>
                             <el-menu-item index="2">操作台</el-menu-item>
                             <el-menu-item index="3">个人中心</el-menu-item>
@@ -47,7 +47,8 @@
                     <div class="left_top left">
                         <div class="block" style="height:100%;width: 100%;">
                             <el-carousel height="29.5vh">
-                                <el-carousel-item v-for="item in 4" :key="item">
+                                <el-carousel-item v-for="(item, index) in leftTopPics" :key="index">
+                                    <img :src="item.icon" alt="" style="width: 100%;height: 100%;">
                                 </el-carousel-item>
                             </el-carousel>
                         </div>
@@ -57,13 +58,15 @@
                         <el-tabs v-model="leftTopRight" @tab-click="" style="width: 98%; margin: 0px auto">
                             <el-tab-pane label="机构资讯" name="">
                                 <div style="overflow-y: auto;height: 20vh;">
-                                    <el-row v-for="(item, index) of dataList" :key="index">
-                                        <div>
-                                            <el-row>
-                                                <div style="margin-bottom: 5px;">
-                                                    <div class="leftContent">{{ item.title }}</div>
-                                                    <div class="rightContent">{{ item.createTime }}</div>
-                                                </div>
+                                    <el-row v-for="(item, index) of leftTopOne" :key="index">
+                                        <div style="margin-bottom: 1.3vh;">
+                                            <el-row style="border-bottom: 1px solid #F2F2F2;">
+                                                <el-col :span="16">
+                                                    <span class="leftContent"> {{ item.text }}</span>
+                                                </el-col>
+                                                <el-col :span="8">
+                                                    <span class="rightContent">{{ parseTime(item.updateTime) }}</span>
+                                                </el-col>
                                             </el-row>
                                         </div>
                                     </el-row>
@@ -80,12 +83,18 @@
                         <el-tab-pane label="专栏" name="">
                             <div style="overflow-y: auto;height: 30vh;">
                                 <el-row v-for="(item, index) of dataList2" :key="index">
-                                    <div>
-                                        <el-row>
+                                    <div style="margin-bottom: 1.3vh;">
+                                        <el-row style="border-bottom: 1px solid #F2F2F2;">
                                             <div style="margin-bottom: 5px;">
-                                                <div class="leftContentPrefix">[ {{ item.tag }} ]</div>
-                                                <div class="leftContent">{{ item.title }}</div>
-                                                <div class="rightContent">{{ item.createTime }}</div>
+                                                <el-col :span="3">
+                                                    <div class="leftContentPrefix">[ {{ item.tag }} ]</div>
+                                                </el-col>
+                                                <el-col :span="16">
+                                                    <span class="leftContent"> {{ item.title }}</span>
+                                                </el-col>
+                                                <el-col :span="5">
+                                                    <span class="rightContent">{{ parseTime(item.createTime) }}</span>
+                                                </el-col>
                                             </div>
                                         </el-row>
                                     </div>
@@ -101,8 +110,8 @@
                 <div class="left_bottom">
                     <a class="moreMessage" @click="">更多</a>
                     <el-tabs v-model="leftBottom" @tab-click="" style="width: 98%; margin: 0px auto">
-                        <el-tab-pane label="平台咨询" name="">
-                            <div class="sys_card" v-for="item in ptzxList">
+                        <el-tab-pane label="平台资讯" name="">
+                            <div class="sys_card" v-for="item in leftBottomList">
                                 <img :src="item.coverPic" style="width: 100%;height: 100%;border-radius: 4px;"
                                     @click=""></img>
                                 <div class="sys_card_title">
@@ -132,11 +141,11 @@
                     <a class="moreMessage" @click="">更多</a>
                     <el-tabs @tab-click="" style="width: 98%; margin: 0px auto">
                         <el-tab-pane label="跳转模块" name="">
-                            <div v-for="(item, index) of menuList" :key="index" style="display: inline">
-                                <div class="listItem" @click="" style="cursor: pointer">
+                            <div v-for="(item, index) of rightTopLink" :key="index" style="display: inline">
+                                <div class="listItem" @click="goPage(item.path)" style="cursor: pointer">
                                     <div>
                                         <div class="menuImg">
-                                            <img class="imgSty" :src="item.imgUrl" />
+                                            <img class="imgSty" :src="item.icon" />
                                         </div>
                                         <div class="titleSty">
                                             <span>{{ item.name }}</span>
@@ -153,13 +162,17 @@
                     <el-tabs v-model="rightMiddle" @tab-click="" style="width: 98%; margin: 0px auto">
                         <el-tab-pane label="规章制度" name="">
                             <div style="overflow-y: auto;height: 30vh;">
-                                <el-row v-for="(item, index) of dataList3" :key="index">
-                                    <div>
-                                        <el-row>
+                                <el-row v-for="(item, index) of dataList2" :key="index">
+                                    <div style="margin-bottom: 1.3vh;">
+                                        <el-row style="border-bottom: 1px solid #F2F2F2;">
                                             <div style="margin-bottom: 5px;">
+                                                <el-col :span="18">
+                                                    <span class="leftContent"> {{ item.title }}</span>
+                                                </el-col>
+                                                <el-col :span="6">
+                                                    <span class="rightContent">{{ parseTime(item.createTime) }}</span>
+                                                </el-col>
                                                 <!-- <div class="leftContentPrefix">[ {{ item.tag }} ]</div> -->
-                                                <div class="leftContent">{{ item.title }}</div>
-                                                <div class="rightContent">{{ item.createTime }}</div>
                                             </div>
                                         </el-row>
                                     </div>
@@ -173,9 +186,9 @@
                     <el-tabs v-model="rightBottom" @tab-click="" style="width: 98%; margin: 0px auto">
                         <el-tab-pane label="文件下载" name="">
                             <div style="overflow-y: auto;height: 20vh;">
-                                <el-row v-for="(item, index) of dataList3" :key="index">
+                                <el-row v-for="(item, index) of dataList2" :key="index">
                                     <div>
-                                        <el-row>
+                                        <el-row style="border-bottom: 1px solid #F2F2F2;">
                                             <div style="margin-bottom: 5px;">
                                                 <!-- <div class="leftContentPrefix">[ {{ item.tag }} ]</div> -->
                                                 <div style="display: inline-block;">
@@ -202,7 +215,12 @@
 </template>
 
 <script>
-
+import {
+    getEnableList,
+    getEnableListPic,
+} from "@/api/system/moduleConfig";
+import { getHomePlatFormForWeb, getXGZXForWeb } from "@/api/content/platformInfo";
+import { getThisAgencyInfo } from "@/api/content/agencyInfo";
 
 export default {
     name: "Navigation",
@@ -210,56 +228,46 @@ export default {
     },
     data() {
         return {
+            //当前机构
+            thisTenant: undefined,
+            //左上轮播图
+            leftTopPics: [],
+            //右上跳转模块
+            rightTopLink: [
+                { name: "市场1", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场2", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场3", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场4", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场5", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场6", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场7", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场8", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场9", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { name: "市场10", icon: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+            ],
+            //左上机构咨询
+            leftTopOne: [],
+            //左下角平台咨询
+            leftBottomList: [],
             queryWord: undefined,
             leftTopRight: undefined,
             leftMiddle: undefined,
             rightMiddle: undefined,
             leftBottom: undefined,
             rightBottom: undefined,
-            dataList: [
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-            ],
+            // dataList: [
+            //     { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
+            //     { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
+            //     { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
+            //     { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
+            // ],
             dataList2: [
                 { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
                 { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
                 { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
                 { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
                 { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                // { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-            ],
-            dataList3: [
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-                { title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
-            ],
-            menuList: [
-                { name: "市场1", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场2", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场3", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场4", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场5", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场6", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场7", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场8", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场9", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
-                { name: "市场10", imgUrl: "https://hzl.willalp.com:9000/willalpbucket/2.png" },
+                { tag: "党政要闻", title: "这是标题这是标题", createTime: "2024-09-07 15:23:22" },
             ],
             ptzxList: [
                 { coverPic: "https://ts.willalp.com:9002/willalpbucket/微信图片_2024032809233720240328092531.png", title: "清明放假通知", sketch: "放假时间:4月4-6日放假,共3天。4月7日(星期日)上班。" },
@@ -271,13 +279,57 @@ export default {
     beforeCreate() {
     },
     created() {
-
+        this.getTemplate();
     },
     methods: {
+        //页面初始化数据获取
+        getTemplate() {
+            //获得当前机构信息
+            getThisAgencyInfo().then(res => {
+                this.thisTenant = res.data;
+                if (res.data.agencyLogo) {
+                    this.thisTenant.agencyLogo = JSON.parse(res.data.agencyLogo)[0].url;
+                }
+                console.log(this.thisTenant)
+            })
+            //获得左上轮播图
+            getEnableListPic().then(res => {
+                this.leftTopPics = res.data;
+            });
+            //获得右上跳转模块
+            getEnableList().then(res => {
+                this.rightTopLink = res.data;
+            });
+            //平台资讯
+            getHomePlatFormForWeb().then(res => {
+                this.leftBottomList = res.data;
+            });
+            //相关资讯
+            getXGZXForWeb().then(res => {
+                if (res.data.size < 5) {
+                    this.leftTopOne = res.data;
+                } else {
+                    this.leftTopOne = res.data.slice(0, 4);
+                }
+            });
+        },
         /** 处理搜索 */
         handleQuery() {
             console.log(this.queryWord)
         },
+        /** 处理跳转 */
+        goPage(path) {
+            this.$router.push(path);
+        },
+        //导航栏跳转
+        handleSelect(key, keyPath) {
+            if (key == 2) {
+                this.$router.push("/");
+            }
+            if (key == 3) {
+                this.$router.push("/user/profile");
+            }
+        },
 
     },
 };
@@ -286,9 +338,16 @@ export default {
 ::v-deep .el-tabs__item {
     color: #6F6F6F;
 }
+
 ::v-deep .el-tabs__item.is-active {
     color: #333333;
 }
+
+::v-deep .el-input--medium .el-input__inner {
+    border-radius: 47px 47px 47px 47px;
+    border: 2px solid #FFFFFF;
+}
+
 .rightBottomButter {
     background: #FF9736;
     border-radius: 4px 4px 4px 4px;
@@ -302,6 +361,7 @@ export default {
     text-align: left;
     font-style: normal;
     text-transform: none;
+    margin-top: 6%;
 }
 
 .sys_card_title_font {
@@ -338,6 +398,7 @@ export default {
 
 .titleSty {
     margin-top: 10px;
+    margin-bottom: 5px;
     text-align: center;
 }
 
@@ -360,8 +421,8 @@ export default {
 }
 
 .rightContent {
-    /* display: inline-block; */
-    float: right;
+    display: block;
+    /* float: right; */
     margin-right: 25px;
 
     font-family: Microsoft YaHei, Microsoft YaHei;
@@ -369,13 +430,17 @@ export default {
     font-size: 12px;
     color: #6F6F6F;
     line-height: 25px;
-    text-align: center;
+    text-align: right;
     font-style: normal;
     text-transform: none;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    -o-text-overflow: ellipsis;
 }
 
 .leftContentPrefix {
-    display: inline-block;
+    display: block;
     font-family: Microsoft YaHei, Microsoft YaHei;
     font-weight: 400;
     font-size: 16px;
@@ -384,16 +449,24 @@ export default {
     font-style: normal;
     text-transform: none;
     margin-right: 1%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    -o-text-overflow: ellipsis;
 }
 
 .leftContent {
-    display: inline-block;
+    display: block;
     font-family: Microsoft YaHei, Microsoft YaHei;
     font-weight: 400;
     font-size: 16px;
     color: #333333;
-    text-align: center;
+    text-align: left;
     font-style: normal;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+    -o-text-overflow: ellipsis;
 }
 
 .moreMessage {
@@ -430,13 +503,14 @@ export default {
 .top {
     height: 13vh;
     width: 100%;
+    margin-bottom: 10px;
     /* background-color: red; */
 }
 
 .top_one {
-    height: 6.5vh;
+    height: 7.5vh;
     width: 100%;
-    background-color: #3B71DD;
+    background-color: #1890FF;
     display: flex;
     align-items: center;
 }
@@ -456,7 +530,8 @@ export default {
         letter-spacing: 8px;
         font-style: normal;
         text-transform: none;
-        margin-left: 40px;
+        /* margin-left: 40px; */
+        text-align: left;
     }
 }
 
@@ -567,7 +642,7 @@ export default {
 }
 
 .left_middle {
-    height: 38vh;
+    height: 37vh;
     margin-top: 2vh;
     background-color: #FFFFFF;
     position: relative;
@@ -597,7 +672,7 @@ export default {
 }
 
 .right_middle {
-    height: 38vh;
+    height: 37vh;
     margin-top: 2vh;
     background-color: #FFFFFF;
     position: relative;

+ 384 - 0
src/views/system/moduleConfig/index.vue

@@ -0,0 +1,384 @@
+<template>
+  <div class="app-container">
+
+    <!-- 搜索工作栏 -->
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="模块名称" prop="name">
+        <el-input v-model="queryParams.name" placeholder="请输入模块名称" clearable @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <!-- <el-form-item label="模块分类" prop="category">
+        <el-select v-model="queryParams.category" placeholder="请选择模块分类" clearable @keyup.enter.native="handleQuery">
+          <el-option v-for="dict in this.category" :key="dict.value" :label="dict.label" :value="dict.value" />
+        </el-select>
+      </el-form-item> -->
+      <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable @keyup.enter.native="handleQuery">
+          <el-option v-for="dict in this.isEnable" :key="dict.value" :label="dict.label" :value="dict.value" />
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <!-- 操作工具栏 -->
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
+          v-hasPermi="['system:module-config:create']">新增</el-button>
+      </el-col>
+      <!-- <el-col :span="1.5">
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
+          :loading="exportLoading" v-hasPermi="['system:module-config:export']">导出</el-button>
+      </el-col> -->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <!-- 列表 -->
+    <el-table v-loading="loading" :data="list">
+      <el-table-column label="序号" align="center">
+        <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+      </el-table-column>
+      <el-table-column label="模块分类" align="center" prop="category">
+        <template v-slot="scope">
+          <el-tag v-if="scope.row.category == 0">跳转模块</el-tag>
+          <el-tag v-if="scope.row.category == 1" type="success">轮播图</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="模块名称" align="center" prop="name" />
+      <el-table-column label="排序" align="center" prop="sort" />
+      <!-- <el-table-column label="图标" align="center" prop="icon" /> -->
+      <el-table-column label="状态" align="center" width="100">
+        <template v-slot="scope">
+          <el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1"
+            @change="handleStatusChange(scope.row)" />
+        </template>
+      </el-table-column>
+      <el-table-column label="路径" align="center" prop="path" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template v-slot="scope">
+          <el-button size="mini" type="text" @click="handelDetail(scope.row)">详情</el-button>
+          <el-button size="mini" type="text" @click="handleEnable(scope.row)"
+            v-if="scope.row.status === 1">启用</el-button>
+          <el-button size="mini" type="text" @click="handleDisable(scope.row)"
+            v-if="scope.row.status === 0">停用</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:module-config:update']" v-if="scope.row.status === 1">修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            v-hasPermi="['system:module-config:delete']" v-if="scope.row.status === 1">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页组件 -->
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
+
+    <!-- 对话框(添加 / 修改) -->
+    <el-dialog :title="title" :visible.sync="open" width="600px" v-dialogDrag append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <!-- <el-form-item label="模块分类" prop="category">
+          <el-select v-model="form.category" placeholder="请选择模块分类" clearable>
+            <el-option v-for="dict in this.category" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item> -->
+        <el-form-item label="模块名称" prop="name" >
+          <el-input v-model="form.name" placeholder="请输入模块名称" />
+        </el-form-item>
+        <el-form-item label="排序" prop="sort">
+          <el-input-number :min="0" :precision="0" v-model="form.sort" />
+        </el-form-item>
+        <el-form-item label="图标" prop="icon">
+          <imageUpload v-model="form.icon" />
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="form.status" placeholder="请选择状态" clearable>
+            <el-option v-for="dict in this.isEnable" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="路径" prop="path" >
+          <el-input v-model="form.path" placeholder="请输入路径" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 对话框(详情) -->
+    <el-dialog title="详情" :visible.sync="openDetail" width="600px" v-dialogDrag append-to-body>
+      <el-form ref="formDetail" :model="formDetail" label-width="80px">
+        <el-form-item label="模块分类" prop="category">
+          <el-select v-model="formDetail.category" disabled clearable>
+            <el-option v-for="dict in this.category" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="模块名称" prop="name" >
+          <el-input v-model="formDetail.name" disabled />
+        </el-form-item>
+        <el-form-item label="排序" prop="sort">
+          <el-input-number :min="0" :precision="0" v-model="formDetail.sort" disabled />
+        </el-form-item>
+        <el-form-item label="图标" prop="icon">
+          <img :src="formDetail.icon" class="avatar" width="450" />
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="formDetail.status" disabled clearable>
+            <el-option v-for="dict in this.isEnable" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="路径" prop="path" v-if="this.formDetail.category == 0">
+          <el-input v-model="formDetail.path" disabled />
+        </el-form-item>
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  createModuleConfig,
+  updateModuleConfig,
+  deleteModuleConfig,
+  getModuleConfig,
+  getModuleConfigPage,
+  exportModuleConfigExcel,
+  changeCategoryStatus,
+} from "@/api/system/moduleConfig";
+import { CommonStatusEnum } from "@/utils/constants";
+import ImageUpload from "@/components/ImageUpload/index";
+
+export default {
+  name: "ModuleConfig",
+  components: {
+    ImageUpload,
+  },
+  data() {
+    return {
+      SysCommonStatusEnum: CommonStatusEnum,
+      isEnable: [
+        { value: 0, label: "开启" },
+        { value: 1, label: "禁用" }
+      ],
+      category: [
+        { value: 0, label: "跳转模块" },
+        { value: 1, label: "轮播图" }
+      ],
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 业务模块配置列表
+      list: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      openDetail: false,
+      // 查询参数
+      queryParams: {
+        pageNo: 1,
+        pageSize: 10,
+        name: null,
+        status: null,
+        category: null,
+      },
+      // 表单参数
+      form: {},
+      formDetail: {},
+      // 表单校验
+      rules: {
+        name: [
+          { required: true, message: "模块名称不能为空", trigger: "blur" }
+        ],
+        sort: [
+          { required: true, message: "排序不能为空", trigger: "blur" }
+        ],
+        icon: [
+          { required: true, message: "图标不能为空", trigger: "blur" }
+        ],
+        status: [
+          { required: true, message: "状态不能为空", trigger: "blur" }
+        ],
+        path: [
+          { required: true, message: "路径不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    handelDetail(row) {
+      this.resetDetail();
+      const id = row.id;
+      getModuleConfig(id).then(response => {
+        this.formDetail = response.data;
+        this.openDetail = true;
+      });
+    },
+    // 模块状态修改
+    handleStatusChange(row) {
+      // 此时,row 已经变成目标状态了,所以可以直接提交请求和提示
+      let text = row.status === CommonStatusEnum.ENABLE ? "启用" : "停用";
+      this.$modal
+        .confirm('确认要"' + text + '""' + row.name + '"业务模块吗?')
+        .then(function () {
+          return changeCategoryStatus(row.id, row.status);
+        })
+        .then(() => {
+          this.$modal.msgSuccess(text + "成功");
+          this.getList();
+        })
+        .catch(function () {
+          // 异常时,需要将 row.status 状态重置回之前的
+          row.status =
+            row.status === CommonStatusEnum.ENABLE
+              ? CommonStatusEnum.DISABLE
+              : CommonStatusEnum.ENABLE;
+        });
+    },
+    //启用
+    handleEnable(row) {
+      this.$modal.confirm('是否确认启用业务模块配置名为"' + row.name + '"的数据项?').then(function () {
+        return changeCategoryStatus(row.id, 0);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("启用成功");
+      }).catch(() => { });
+    },
+    //停用
+    handleDisable(row) {
+      this.$modal.confirm('是否确认停用业务模块配置名为"' + row.name + '"的数据项?').then(function () {
+        return changeCategoryStatus(row.id, 1);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("停用成功");
+      }).catch(() => { });
+    },
+    /** 查询列表 */
+    getList() {
+      this.loading = true;
+      // 执行查询
+      getModuleConfigPage(this.queryParams).then(response => {
+        this.list = response.data.list;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    /** 取消按钮 */
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 表单重置 */
+    reset() {
+      this.form = {
+        name: undefined,
+        sort: undefined,
+        icon: undefined,
+        status: undefined,
+        path: undefined,
+        category: undefined,
+      };
+      this.resetForm("form");
+    },
+    /** 表单重置 */
+    resetDetail() {
+      this.formDetail = {
+        name: undefined,
+        sort: undefined,
+        icon: undefined,
+        status: undefined,
+        path: undefined,
+        category: undefined,
+      };
+      this.resetForm("formDetail");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNo = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加业务模块配置";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id;
+      getModuleConfig(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改业务模块配置";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (!valid) {
+          return;
+        }
+        // 修改的提交
+        if (this.form.id != null) {
+          updateModuleConfig(this.form).then(response => {
+            this.$modal.msgSuccess("修改成功");
+            this.open = false;
+            this.getList();
+          });
+          return;
+        }
+        // 添加的提交
+        createModuleConfig(this.form).then(response => {
+          this.$modal.msgSuccess("新增成功");
+          this.open = false;
+          this.getList();
+        });
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const id = row.id;
+      this.$modal.confirm('是否确认删除业务模块配置编号为"' + id + '"的数据项?').then(function () {
+        return deleteModuleConfig(id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => { });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      // 处理查询参数
+      let params = { ...this.queryParams };
+      params.pageNo = undefined;
+      params.pageSize = undefined;
+      this.$modal.confirm('是否确认导出所有业务模块配置数据项?').then(() => {
+        this.exportLoading = true;
+        return exportModuleConfigExcel(params);
+      }).then(response => {
+        this.$download.excel(response, '业务模块配置.xls');
+        this.exportLoading = false;
+      }).catch(() => { });
+    }
+  }
+};
+</script>

+ 373 - 0
src/views/system/moduleConfig/indexForPic.vue

@@ -0,0 +1,373 @@
+<template>
+  <div class="app-container">
+
+    <!-- 搜索工作栏 -->
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="模块名称" prop="name">
+        <el-input v-model="queryParams.name" placeholder="请输入模块名称" clearable @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable @keyup.enter.native="handleQuery">
+          <el-option v-for="dict in this.isEnable" :key="dict.value" :label="dict.label" :value="dict.value" />
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <!-- 操作工具栏 -->
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
+          v-hasPermi="['system:module-config:create']">新增</el-button>
+      </el-col>
+      <!-- <el-col :span="1.5">
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
+          :loading="exportLoading" v-hasPermi="['system:module-config:export']">导出</el-button>
+      </el-col> -->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <!-- 列表 -->
+    <el-table v-loading="loading" :data="list">
+      <el-table-column label="序号" align="center">
+        <template slot-scope="scope">{{ scope.$index + 1 }}</template>
+      </el-table-column>
+      <el-table-column label="模块分类" align="center" prop="category">
+        <template v-slot="scope">
+          <el-tag v-if="scope.row.category == 0">跳转模块</el-tag>
+          <el-tag v-if="scope.row.category == 1" type="success">轮播图</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="模块名称" align="center" prop="name" />
+      <el-table-column label="排序" align="center" prop="sort" />
+      <!-- <el-table-column label="图标" align="center" prop="icon" /> -->
+      <el-table-column label="状态" align="center" width="100">
+        <template v-slot="scope">
+          <el-switch v-model="scope.row.status" :active-value="0" :inactive-value="1"
+            @change="handleStatusChange(scope.row)" />
+        </template>
+      </el-table-column>
+      <el-table-column label="路径" align="center" prop="path" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template v-slot="scope">
+          <span>{{ parseTime(scope.row.createTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template v-slot="scope">
+          <el-button size="mini" type="text" @click="handelDetail(scope.row)">详情</el-button>
+          <el-button size="mini" type="text" @click="handleEnable(scope.row)"
+            v-if="scope.row.status === 1">启用</el-button>
+          <el-button size="mini" type="text" @click="handleDisable(scope.row)"
+            v-if="scope.row.status === 0">停用</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:module-config:update']" v-if="scope.row.status === 1">修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            v-hasPermi="['system:module-config:delete']" v-if="scope.row.status === 1">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页组件 -->
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
+
+    <!-- 对话框(添加 / 修改) -->
+    <el-dialog :title="title" :visible.sync="open" width="600px" v-dialogDrag append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <!-- <el-form-item label="模块分类" prop="category">
+          <el-select v-model="form.category" placeholder="请选择模块分类" clearable>
+            <el-option v-for="dict in this.category" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item> -->
+        <!-- <el-form-item label="模块名称" prop="name" v-if="this.form.category == 0">
+          <el-input v-model="form.name" placeholder="请输入模块名称" />
+        </el-form-item> -->
+        <el-form-item label="排序" prop="sort">
+          <el-input-number :min="0" :precision="0" v-model="form.sort" />
+        </el-form-item>
+        <el-form-item label="图标" prop="icon">
+          <imageUpload v-model="form.icon" />
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="form.status" placeholder="请选择状态" clearable>
+            <el-option v-for="dict in this.isEnable" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="路径" prop="path" >
+          <el-input v-model="form.path" placeholder="请输入路径" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 对话框(详情) -->
+    <el-dialog title="详情" :visible.sync="openDetail" width="600px" v-dialogDrag append-to-body>
+      <el-form ref="formDetail" :model="formDetail" label-width="80px">
+        <el-form-item label="模块分类" prop="category">
+          <el-select v-model="formDetail.category" disabled clearable>
+            <el-option v-for="dict in this.category" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item>
+        <!-- <el-form-item label="模块名称" prop="name" v-if="this.formDetail.category == 0">
+          <el-input v-model="formDetail.name" disabled />
+        </el-form-item> -->
+        <el-form-item label="排序" prop="sort">
+          <el-input-number :min="0" :precision="0" v-model="formDetail.sort" disabled />
+        </el-form-item>
+        <el-form-item label="图标" prop="icon">
+          <img :src="formDetail.icon" class="avatar" width="450" />
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="formDetail.status" disabled clearable>
+            <el-option v-for="dict in this.isEnable" :key="dict.value" :label="dict.label" :value="dict.value" />
+          </el-select>
+        </el-form-item>
+        <!-- <el-form-item label="路径" prop="path" v-if="this.formDetail.category == 0">
+          <el-input v-model="formDetail.path" disabled />
+        </el-form-item> -->
+      </el-form>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  createModuleConfigForPic,
+  updateModuleConfigForPic,
+  deleteModuleConfigForPic,
+  getModuleConfigForPic,
+  getModuleConfigPageForPic,
+} from "@/api/system/moduleConfigForPic";
+import {changeCategoryStatus,} from "@/api/system/moduleConfig";
+import { CommonStatusEnum } from "@/utils/constants";
+import ImageUpload from "@/components/ImageUpload/index";
+
+export default {
+  name: "ModuleConfig",
+  components: {
+    ImageUpload,
+  },
+  data() {
+    return {
+      SysCommonStatusEnum: CommonStatusEnum,
+      isEnable: [
+        { value: 0, label: "开启" },
+        { value: 1, label: "禁用" }
+      ],
+      category: [
+        { value: 0, label: "跳转模块" },
+        { value: 1, label: "轮播图" }
+      ],
+      // 遮罩层
+      loading: true,
+      // 导出遮罩层
+      exportLoading: false,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 业务模块配置列表
+      list: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      openDetail: false,
+      // 查询参数
+      queryParams: {
+        pageNo: 1,
+        pageSize: 10,
+        name: null,
+        status: null,
+        category: null,
+      },
+      // 表单参数
+      form: {},
+      formDetail: {},
+      // 表单校验
+      rules: {
+        sort: [
+          { required: true, message: "排序不能为空", trigger: "blur" }
+        ],
+        icon: [
+          { required: true, message: "图标不能为空", trigger: "blur" }
+        ],
+        status: [
+          { required: true, message: "状态不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    handelDetail(row) {
+      this.resetDetail();
+      const id = row.id;
+      getModuleConfigForPic(id).then(response => {
+        this.formDetail = response.data;
+        this.openDetail = true;
+      });
+    },
+    // 模块状态修改
+    handleStatusChange(row) {
+      // 此时,row 已经变成目标状态了,所以可以直接提交请求和提示
+      let text = row.status === CommonStatusEnum.ENABLE ? "启用" : "停用";
+      this.$modal
+        .confirm('确认要"' + text + '"此轮播图吗?')
+        .then(function () {
+          return changeCategoryStatus(row.id, row.status);
+        })
+        .then(() => {
+          this.$modal.msgSuccess(text + "成功");
+          this.getList();
+        })
+        .catch(function () {
+          // 异常时,需要将 row.status 状态重置回之前的
+          row.status =
+            row.status === CommonStatusEnum.ENABLE
+              ? CommonStatusEnum.DISABLE
+              : CommonStatusEnum.ENABLE;
+        });
+    },
+    //启用
+    handleEnable(row) {
+      this.$modal.confirm('是否确认启用此轮播图').then(function () {
+        return changeCategoryStatus(row.id, 0);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("启用成功");
+      }).catch(() => { });
+    },
+    //停用
+    handleDisable(row) {
+      this.$modal.confirm('是否确认停用此轮播图').then(function () {
+        return changeCategoryStatus(row.id, 1);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("停用成功");
+      }).catch(() => { });
+    },
+    /** 查询列表 */
+    getList() {
+      this.loading = true;
+      // 执行查询
+      getModuleConfigPageForPic(this.queryParams).then(response => {
+        this.list = response.data.list;
+        this.total = response.data.total;
+        this.loading = false;
+      });
+    },
+    /** 取消按钮 */
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    /** 表单重置 */
+    reset() {
+      this.form = {
+        name: undefined,
+        sort: undefined,
+        icon: undefined,
+        status: undefined,
+        path: undefined,
+        category: undefined,
+      };
+      this.resetForm("form");
+    },
+    /** 表单重置 */
+    resetDetail() {
+      this.formDetail = {
+        name: undefined,
+        sort: undefined,
+        icon: undefined,
+        status: undefined,
+        path: undefined,
+        category: undefined,
+      };
+      this.resetForm("formDetail");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNo = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      console.log(this.form)
+      this.open = true;
+      this.title = "添加轮播图配置";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id;
+      getModuleConfigForPic(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改轮播图配置";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (!valid) {
+          return;
+        }
+        // 修改的提交
+        if (this.form.id != null) {
+          updateModuleConfigForPic(this.form).then(response => {
+            this.$modal.msgSuccess("修改成功");
+            this.open = false;
+            this.getList();
+          });
+          return;
+        }
+        // 添加的提交
+        createModuleConfigForPic(this.form).then(response => {
+          this.$modal.msgSuccess("新增成功");
+          this.open = false;
+          this.getList();
+        });
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const id = row.id;
+      this.$modal.confirm('是否确认删除编号为"' + id + '"的轮播图?').then(function () {
+        return deleteModuleConfigForPic(id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => { });
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      // 处理查询参数
+      let params = { ...this.queryParams };
+      params.pageNo = undefined;
+      params.pageSize = undefined;
+      this.$modal.confirm('是否确认导出所有轮播图配置数据项?').then(() => {
+        this.exportLoading = true;
+        return exportModuleConfigExcel(params);
+      }).then(response => {
+        this.$download.excel(response, '轮播图配置.xls');
+        this.exportLoading = false;
+      }).catch(() => { });
+    }
+  }
+};
+</script>