Эх сурвалжийг харах

Merge remote-tracking branch 'origin/ad_collect_bug' into dev

Sean 3 сар өмнө
parent
commit
015b09ec2d

+ 9 - 0
src/api/advertise.js

@@ -119,4 +119,13 @@ export const getAdPlaceInfo=(params)=> {
     method: 'get',
     params
   })
+}
+
+// 获取广告位尺寸
+export const getSize=(data)=> {
+  return request({
+    url: '/order/getAD',
+    method: 'post',
+    data
+  })
 }

+ 47 - 0
src/api/module.js

@@ -0,0 +1,47 @@
+// 组件
+import request from '@/utils/request'
+
+//获取组件列表
+export const getComponentList = (data) => {
+    return request({
+        url: '/public/getComponentList',
+        method: 'post',
+        data
+    })
+}
+
+//新增组件
+export const addComponent = (data) => {
+    return request({
+        url: '/public/addComponent',
+        method: 'post',
+        data
+    })
+}
+
+//删除组件
+export const delComponent = (data) => {
+    return request({
+        url: '/public/delComponent',
+        method: 'post',
+        data
+    })
+}
+
+//编辑组件
+export const updateComponent = (data) => {
+    return request({
+        url: '/public/updateComponent',
+        method: 'post',
+        data
+    })
+}
+
+//获取组件详情
+export const getComponentInfo = (data) => {
+    return request({
+        url: '/public/getComponentInfo',
+        method: 'post',
+        data
+    })
+}

+ 47 - 0
src/api/plate.js

@@ -0,0 +1,47 @@
+// 版块
+import request from '@/utils/request'
+
+//获取版块列表
+export const getSectorList = (data) => {
+    return request({
+        url: '/public/getSectorList',
+        method: 'post',
+        data
+    })
+}
+
+//新增版块
+export const addSector = (data) => {
+    return request({
+        url: '/public/addSector',
+        method: 'post',
+        data
+    })
+}
+
+//删除版块
+export const delSector = (data) => {
+    return request({
+        url: '/public/delSector',
+        method: 'post',
+        data
+    })
+}
+
+//编辑版块
+export const updateSector = (data) => {
+    return request({
+        url: '/public/updateSector',
+        method: 'post',
+        data
+    })
+}
+
+//获取版块详情
+export const getSectorInfo = (data) => {
+    return request({
+        url: '/public/getSectorInfo',
+        method: 'post',
+        data
+    })
+}

+ 56 - 0
src/api/style.js

@@ -0,0 +1,56 @@
+// 风格
+import request from '@/utils/request'
+
+//获取风格名称
+export const getTemplateClass=(data)=>{
+    return request({
+        url:'/public/getTemplateClass',
+        method:'post',
+        data
+    })
+}
+
+//获取风格列表
+export const getTemplateList = (data) => {
+    return request({
+        url: '/public/getTemplateList',
+        method: 'post',
+        data
+    })
+}
+
+//新增风格
+export const addTemplate = (data) => {
+    return request({
+        url: '/public/addTemplate',
+        method: 'post',
+        data
+    })
+}
+
+//删除风格
+export const delTemplate=(data)=>{
+    return request({
+        url:'/public/delTemplate',
+        method:'post',
+        data
+    })
+}
+
+//更新风格
+export const updateTemplate = (data) => {
+    return request({
+        url: '/public/updateTemplate',
+        method: 'post',
+        data
+    })
+}
+
+//获取风格详情
+export const getTemplateInfo=(data)=>{
+    return request({
+        url:'/public/getTemplateInfo',
+        method:'post',
+        data
+    })
+}

+ 81 - 1
src/router/index.js

@@ -206,7 +206,6 @@ export const constantRoutes = [
       }
     ]
   },
-  // adPlaceDetail
   {
     path: '/adPlaceDetail',
     component: Layout,
@@ -223,6 +222,87 @@ export const constantRoutes = [
       }
     ]
   },
+  // {
+  //   path: '/tabbar',
+  //   component: Layout,
+  //   children: [
+  //     {
+  //       name: '',
+  //       path: '',
+  //       component: () => import('@/views/tabbar/tabbar.vue'),
+  //       meta: {
+  //         title: '底部导航栏',
+  //         hidden: true,
+  //         breadcrumb: true
+  //       }
+  //     }
+  //   ]
+  // },
+  // {
+  //   path: '/tabbarDetail',
+  //   component: Layout,
+  //   children: [
+  //     {
+  //       name: '',
+  //       path: '',
+  //       component: () => import('@/views/tabbar/tabbarDetail.vue'),
+  //       meta: {
+  //         title: '导航详情',
+  //         hidden: true,
+  //         breadcrumb: true
+  //       }
+  //     }
+  //   ]
+  // },
+  // {
+  //   path: '/style',
+  //   component: Layout,
+  //   children: [
+  //     {
+  //       name: '',
+  //       path: '',
+  //       component: () => import('@/views/componentGallery/style.vue'),
+  //       meta: {
+  //         title: '风格',
+  //         hidden: true,
+  //         breadcrumb: true
+  //       }
+  //     }
+  //   ]
+  // },
+  // {
+  //   path: '/plate',
+  //   component: Layout,
+  //   children: [
+  //     {
+  //       name: '',
+  //       path: '',
+  //       component: () => import('@/views/componentGallery/plate.vue'),
+  //       meta: {
+  //         title: '版块',
+  //         hidden: true,
+  //         breadcrumb: true
+  //       }
+  //     }
+  //   ]
+  // },
+  // {
+  //   path: '/module',
+  //   component: Layout,
+  //   children: [
+  //     {
+  //       name: '',
+  //       path: '',
+  //       component: () => import('@/views/componentGallery/module.vue'),
+  //       meta: {
+  //         title: '组件',
+  //         hidden: true,
+  //         breadcrumb: true
+  //       }
+  //     }
+  //   ]
+  // },
+
   // {
   //   path: '/documentation',
   //   component: Layout,

+ 2 - 2
src/utils/baseUrl.js

@@ -1,8 +1,8 @@
 const URL = {
   //baseUrl: 'https://admin.bjzxtw.org.cn/zxtapi',//正式环境
   baseUrl: 'http://183.131.25.186:9501',//测试环境
-  //baseUrl: 'http://192.168.1.201:9501',//刘佳伟本地环境
-  //baseUrl:'http://192.168.1.115:9501',//冯蕊的本地环境
+  // baseUrl: 'http://192.168.1.201:9501',//刘佳伟本地环境
+  // baseUrl:'http://192.168.1.115:9501',//冯蕊的本地环境
   //baseUrl: 'http://192.168.1.127:9501',//刘剑的本地环境
   //WebsocketUrl: 'ws://192.168.1.201:9506',//刘佳伟websocket地址
   //WebsocketUrl: 'ws://192.168.1.127:9506'//刘剑websocket地址

+ 38 - 18
src/views/advertise/adPlaceList.vue

@@ -36,12 +36,12 @@
             <button class="btn" @click="addWebsite">添加广告位</button>
             <el-row>
                 <template>
-                    <el-table class="my-table" :data="tableData" style="width: 100%">
+                    <el-table class="my-table" v-loading="loading" :data="tableData" style="width: 100%">
                         <el-table-column fixed prop="id" label="编号" width="90">
                         </el-table-column>
                         <el-table-column prop="website_name" label="网站名称" width="160">
                         </el-table-column>
-                        <el-table-column prop="name" label="广告位名称" width="230">
+                        <el-table-column prop="name" label="广告位名称" width="220">
                         </el-table-column>
                         <el-table-column prop="type_name" label="广告类型" width="110">
                         </el-table-column>
@@ -136,9 +136,9 @@
                         <el-radio v-model="ruleForm.adType" label='2'>图片</el-radio>
                     </el-form-item>
                     <el-form-item label="广告位大小:" prop="adSize">
-                        <el-select v-model="ruleForm.adSize" placeholder="请选择广告位大小">
-                            <el-option v-for="item in options" :key="item.value" :label="item.label"
-                                :value="item.value">
+                        <el-select v-model="ruleForm.adSize" placeholder="请选择广告位大小" @change="change">
+                            <el-option v-for="item in options" :key="item.id" :label="item.size"
+                                :value="item.id" >
                             </el-option>
                         </el-select>
                     </el-form-item>
@@ -168,7 +168,7 @@ import tableTitle from './components/tableTitle.vue';
 
 //引入公用样式
 import '@/styles/global.less';
-import { createAdPlace, getAdPlaceList, delAdPlace, updateAdPlace, getAdList, getAdPlaceInfo } from '@/api/advertise'
+import { createAdPlace, getAdPlaceList, delAdPlace, updateAdPlace, getAdList, getAdPlaceInfo,getSize } from '@/api/advertise'
 export default {
     components: {
         tableTitle,//表格标题-
@@ -185,6 +185,7 @@ export default {
             tableDivTitle: "广告列表",  //列表标题
             dialogTableVisible: false,      //编辑弹框
             dialogName: '编辑', //编辑弹窗名称
+            loading:true, //加载中
 
             tableData: [],//表格数据
 
@@ -206,12 +207,7 @@ export default {
             pageSize: 10,
             total: 0,
 
-            options: [
-                {
-                    value: '1',
-                    label: '1200x90'
-                }
-            ],
+            options: [], //广告尺寸
 
             formLabelWidth: '', //广告示例图相关
 
@@ -251,15 +247,35 @@ export default {
                 page: this.page,
                 pageSize: this.pageSize
             }).then(data => {
-                console.log(data);
+                console.log(data.data.rows);
                 this.tableData = data.data.rows
                 this.total = data.data.count
+                if(data.code==200){
+                    this.loading=false
+                }
                 for (let item of this.tableData) {
                     item.size = item.width + 'x' + item.height
                 }
             })
         },
 
+        //获取广告尺寸
+        getSize(){
+            getSize().then(data=>{
+                console.log(data.data);
+                this.options=data.data
+                for(let item of this.options){
+                    item.size = item.width + 'x' + item.height
+                }
+                console.log(this.options);
+                
+            })
+        },
+
+        change(){
+            console.log(this.ruleForm.adSize);
+        },
+
         //1.2 删除内容
         deleteRow(id) {
             console.log(id);
@@ -337,7 +353,7 @@ export default {
         },
         //列表和分页相关 end ------------------------------------------------------------>
 
-        //1.9 编辑
+        //1.8 编辑
         goEdit(id, val) {
             // console.log(id);
             this.dialogName = '编辑'
@@ -357,7 +373,9 @@ export default {
             this.ruleForm.status = val.status //状态
 
             if (val.ad_size_id == 1) {
-                this.ruleForm.adSize = '1'  //广告位大小
+                this.ruleForm.adSize = '1200x90'  //广告位大小
+            }else if (val.ad_size_id == 2) {
+                this.ruleForm.adSize = '420x560'  //广告位大小
             }
             if (val.typeid == 2) {
                 this.ruleForm.adType = '2' //广告类型
@@ -370,7 +388,7 @@ export default {
 
         },
 
-        //2.0 查看
+        //1.9 查看
         goLook(id) {
             this.activeid = id
             this.$router.push({
@@ -381,7 +399,7 @@ export default {
             })
         },
 
-        //1.7 添加
+        //2.0 添加
         addWebsite() {
             this.dialogTableVisible = true
             this.dialogName = "添加"
@@ -398,7 +416,8 @@ export default {
             this.logoUrl = ''
         },
 
-        // 弹出层相关方法
+
+        // 2.1 弹出层相关方法
         // 提交表单
         submitForm() {
             // 判断用户是否输入数据
@@ -570,6 +589,7 @@ export default {
     },
     mounted() {
         this.getData()
+        this.getSize()
     },
 }
 </script>

+ 52 - 27
src/views/advertise/advertiseList.vue

@@ -4,7 +4,7 @@
         <!-- 提示信息 -->
         <div class="tips">
             <el-row>
-                <el-col :span="12">
+                <el-col :span="24">
                     <i class="tipsIcon"></i>
                     <span class="tipsText">7个工作日内,若运营没有操作用户的申请,则用户申请的时间、信息等将会释放。</span>
                 </el-col>
@@ -54,9 +54,9 @@
                     <el-table class="my-table" :data="tableData" style="width: 100%">
                         <el-table-column fixed prop="id" label="编号" width="90">
                         </el-table-column>
-                        <el-table-column prop="order_num" label="工单编号" width="120">
+                        <el-table-column prop="order_num" label="工单编号" width="175">
                         </el-table-column>
-                        <el-table-column prop="user_name" label="广告名称" width="255">
+                        <el-table-column prop="user_name" label="广告名称" width="200">
                         </el-table-column>
                         <el-table-column prop="status" label="审核状态" width="90" algin="center">
                         </el-table-column>
@@ -116,10 +116,17 @@
                         </div>
                     </el-form-item>
                     <el-form-item label="持续时间:" prop="">
-                        <el-date-picker v-model="ruleForm.startTime" type="datetime" disabled placeholder="选择日期时间">
-                        </el-date-picker> 至
-                        <el-date-picker v-model="ruleForm.endTime" type="datetime" disabled placeholder="选择日期时间">
-                        </el-date-picker>
+                        <el-col :span="11">
+                            <el-date-picker v-model="ruleForm.startTime" type="datetime" disabled placeholder="选择日期时间">
+                            </el-date-picker>
+                        </el-col>
+                        <el-col :span="2" class="zhi">
+                            至
+                        </el-col>
+                        <el-col :span="11">
+                            <el-date-picker v-model="ruleForm.endTime" type="datetime" disabled placeholder="选择日期时间">
+                            </el-date-picker>
+                        </el-col>
                     </el-form-item>
                     <el-form-item label="广告尺寸:" prop="">
                         <el-radio v-model="ruleForm.radio" label="1">1200x90px</el-radio>
@@ -128,9 +135,24 @@
 
                     <el-form-item label="价格:" prop="price">
                         <div class="price">
-                            <el-input v-model="ruleForm.price" placeholder="请输入价格"></el-input> 元 x
-                            <el-input v-model="ruleForm.days" disabled placeholder="请输入天数"></el-input> 天 x
-                            <el-input v-model="ruleForm.num" disabled placeholder="请输入个数"></el-input> 个
+                            <el-col :span="6">
+                                <el-input v-model="ruleForm.price" placeholder="请输入价格"></el-input>
+                            </el-col>
+                            <el-col :span="2" class="zhi">
+                                元 x
+                            </el-col>
+                            <el-col :span="6">
+                                <el-input v-model="ruleForm.days" disabled placeholder="请输入天数"></el-input>
+                            </el-col>
+                            <el-col :span="2" class="zhi">
+                                天 x
+                            </el-col>
+                            <el-col :span="6">
+                                <el-input v-model="ruleForm.num" disabled placeholder="请输入个数"></el-input>
+                            </el-col>
+                            <el-col :span="2" class="zhi">
+                                个
+                            </el-col>
                         </div>
                     </el-form-item>
                     <el-form-item label="广告位置:" prop="">
@@ -214,7 +236,6 @@ export default {
 
             form: {},  //审核状态的ref属性名称
 
-
             tableData: [],//表格数据
 
             // 搜索框相关
@@ -276,7 +297,7 @@ export default {
             // 分页相关
             page: 1,
             pageSize: 10,
-            total: '',
+            total: 0,
 
             // 审核弹窗相关
             status_radio: "",   //审核状态
@@ -414,7 +435,7 @@ export default {
         // 1.6 搜索按钮
         goSearch() {
             console.log(this.status);
-            
+
             let data = new FormData()
             data.append('page', this.page)
             data.append('pageSize', this.pageSize)
@@ -517,20 +538,20 @@ export default {
                 let data = new FormData()
                 data.append('id', this.activeid)
                 data.append('reason', this.textarea)
-                rejectOrderAdmin(data).then(data=>{
+                rejectOrderAdmin(data).then(data => {
                     console.log(data);
-                    if(data.code==200){
+                    if (data.code == 200) {
                         this.$message({
-                            message:'修改成功',
-                            type:'success'
+                            message: '修改成功',
+                            type: 'success'
                         })
                         this.dialogFormVisible = false
                         this.getData()
                     }
-                    if(data.code==0){
+                    if (data.code == 0) {
                         this.$message({
-                            message:data.message,
-                            type:'error'
+                            message: data.message,
+                            type: 'error'
                         })
                     }
                 })
@@ -617,7 +638,7 @@ export default {
             position: relative;
             font-size: 14px;
             display: inline-block;
-            width: 73%;
+            width: 90%;
         }
 
         .searchTitle {
@@ -738,6 +759,10 @@ export default {
     padding-bottom: 1px;
     padding: 0px 60px 1px 20px;
 
+    .zhi {
+        text-align: center;
+    }
+
     .adImage {
         width: 140px;
         height: 140px;
@@ -751,11 +776,11 @@ export default {
         }
     }
 
-    .price {
-        ::v-deep .el-input {
-            width: 29%;
-        }
-    }
+    // .price {
+    //     ::v-deep .el-input {
+    //         width: 29%;
+    //     }
+    // }
 
     .example {
         font-family: Microsoft YaHei;
@@ -769,7 +794,7 @@ export default {
 
     //日期时间选择器的宽
     ::v-deep .el-date-editor.el-input {
-        width: 48%;
+        width: 100%;
     }
 
     ::v-deep .el-button+.el-button {

+ 5 - 1
src/views/crawler/webCrawler.vue

@@ -23,7 +23,7 @@
             <button class="btn" @click="addWebsite">添加网站</button>
             <el-row>
                 <template>
-                    <el-table class="my-table" :data="tableData" style="width: 100%">
+                    <el-table class="my-table"  v-loading="loading" :data="tableData" style="width: 100%">
                         <el-table-column fixed prop="id" label="编号" width="100">
                         </el-table-column>
                         <el-table-column prop="name" label="网站名称" width="">
@@ -118,6 +118,7 @@ export default {
             activeId: '', // 被编辑的网站的id
             activeType: '', //被编辑网站的type
             disabled: true, //是否禁用
+            loading:true,
 
 
             // 分页器相关
@@ -161,6 +162,9 @@ export default {
                 page: this.page,
                 pageSize: this.pageSize,
             }).then(data => {
+                if(data.code==200){
+                    this.loading=false
+                }
                 console.log(data);
                 this.tableData = data.data.rep
                 this.total = data.data.count

+ 11 - 7
src/views/crawler/webCrawlerList.vue

@@ -43,20 +43,20 @@
 
             <el-row>
                 <template>
-                    <el-table class="my-table" :data="tableData" style="width: 100%">
+                    <el-table class="my-table" v-loading="loading" :data="tableData" style="width: 100%">
                         <el-table-column fixed prop="id" label="编号" width="80">
                         </el-table-column>
                         <el-table-column prop="title" label="资讯题目" width="230">
                         </el-table-column>
                         <el-table-column prop="oldtitle" label="原始资讯题目" width="230">
                         </el-table-column>
-                        <el-table-column prop="category.name" label="导航池名称" width="90">
+                        <el-table-column prop="category.name" label="导航池名称" width="120">
                         </el-table-column>
-                        <el-table-column prop="source" label="来源" width="180">
+                        <el-table-column prop="source" label="来源" width="120">
                         </el-table-column>
-                        <el-table-column label="导入状态" width="80" prop="state">
+                        <el-table-column label="导入状态" prop="state" width="100">
                         </el-table-column>
-                        <el-table-column prop="author" label="作者" width="80">
+                        <el-table-column prop="author" label="作者" width="90">
                         </el-table-column>
                         <el-table-column prop="created_at" label="采集时间" width="160">
                         </el-table-column>
@@ -128,6 +128,7 @@ export default {
             tableDivTitle: "任务规则列表",//表格标题
             // searchWebName: "", //搜索网站名称
             // dialogName:'关联导航池',
+            loading: true,
 
             //跳转传递的参数
             ruleId: "", //规则id
@@ -190,6 +191,9 @@ export default {
                 pageSize: this.pageSize
             }).then(data => {
                 console.log(data);
+                if (data.code == 200) {
+                    this.loading = false
+                }
                 this.total = data.data.count
                 this.tableData = data.data.rep
 
@@ -402,7 +406,7 @@ export default {
     }
 
     .searchBox {
-        margin-right: 60px;
+        margin-right: 30px;
 
         .searchTitle {
             padding-bottom: 10px;
@@ -429,7 +433,7 @@ export default {
             height: 38px;
             border: none;
             border-radius: 8px;
-            padding: 0 30px;
+            padding: 0 20px;
         }
 
         .search {

+ 207 - 25
src/views/crawler/webCrawlerListEdit.vue

@@ -26,32 +26,34 @@
                             <el-option v-for="item in options" :key="item.value" :label="item.label"
                                 :value="item.value">
                             </el-option>
-
                         </el-select>
                     </el-form-item>
                     <!-- 缩略图 -->
-                    <el-form-item label="缩略图:" prop="imgSrc">
+                    <el-form-item label="缩略图:" prop="imgSrc" :label-width="formLabelWidth"
+                        :class="['custom-form-item']" class="custom-align-right">
                         <div class="uploaderBox">
+                            <!--图片上传组件 start ------------------------------------------------------------>
                             <div class="avatar-upload-container" @mouseenter="hovering = true"
                                 @mouseleave="hovering = false">
                                 <!-- 上传组件 -->
                                 <el-upload class="avatar-uploader" action="#" :show-file-list="false"
                                     :before-upload="beforeAvatarUpload">
                                     <!-- 预览图片 -->
-                                    <img v-if="ruleForm.imgSrc" :src="ruleForm.imgSrc" class="avatar">
+                                    <img v-if="logoUrl" :src="logoUrl" class="avatar">
                                     <div v-else class="chooseImgDiv">
                                         <div>
                                             <img src="@/assets/public/upload/noImage.png">
-                                            <div>选择缩略图</div>
+                                            <div>选择图</div>
                                         </div>
                                     </div>
+                                    <input type="hidden" name="logo" v-model="ruleForm.imgSrc">
                                 </el-upload>
                                 <!-- 删除按钮,当鼠标悬浮时显示 -->
-                                <div v-if="hovering && iconSrc" class="delete-button" @click="handleDelete">
+                                <div v-if="hovering && logoUrl" class="delete-button" @click="handleDelete">
                                     <i class="el-icon-delete"></i>
                                 </div>
                             </div>
-                            <p class="imgTips">图片长宽比例为16:9, 大小不能超过500K。</p>
+                            <!--图片上传组件 end ------------------------------------------------------------>
                         </div>
                     </el-form-item>
                     <el-form-item label="资讯关键词:" prop="keywords" class="keywords">
@@ -73,30 +75,26 @@
                             <i class="el-icon-warning"></i>
                         </el-tooltip>
                     </el-form-item>
-                    <!-- 富文本 -->
-                    <!-- <div class="QuillTitle">
-                        <span>* </span>资讯内容
+                    <!-- 富文本编辑器配置 -->
+                    <div class="QuillTitle">
+                        <span>* </span>资讯内容:
                         <div @click="toggleSourceMode" class="QuillModelBtn">
                             {{ showHtml ? '切换到编辑模式' : '切换到源码模式' }}
                         </div>
                     </div>
-                    <el-form-item label="" prop="content">
+                    <el-form-item label="">
                         <div class="editor-container">
                             <div v-if="showHtml">
                                 <textarea v-model="editorHtml" style="width: 100%; height: 400px;"></textarea>
                             </div>
                             <div v-else>
-                                <quill-editor ref="quillEditor" v-model="form.content" :options="editorOptions"
+                                <quill-editor ref="quillEditor" v-model="ruleForm.content" :options="editorOptions"
                                     class="my-quill-editor" />
-                            </div> -->
-                    <!-- 多图上传隐藏的input -->
-                    <!-- <input type="file" ref="multiFileInput" @change="handleMultipleFiles" multiple hidden
+                            </div>
+                            <!-- 多图上传隐藏的input -->
+                            <input type="file" ref="multiFileInput" @change="handleMultipleFiles" multiple hidden
                                 accept="image/jpeg, image/png" />
                         </div>
-                    </el-form-item> -->
-                    <el-form-item label="资讯内容:" prop="content">
-                        <el-input type="textarea" v-model="ruleForm.content" placeholder="请输入资讯内容..."
-                            maxlength="5000"></el-input>
                     </el-form-item>
                     <el-form-item label="作者:" prop="author">
                         <el-input v-model="ruleForm.author" placeholder="请输入发布资讯的作者"></el-input>
@@ -123,7 +121,7 @@
                             <!-- <el-checkbox v-model="disclaimer" disabled="disabled"></el-checkbox> -->
                         </div>
                         <div class="disclaimerText">
-                            本文来源于网络转载,仅供学习交流使用,不构成商业目的。版权归作者所有,如涉及原作者所有,如涉及作品内容、版权和其他问题,请在30日内与本站联系,我们将在第一时间处理。</div>
+                            本文来源于网络转载,仅供学习交流使用,不构成商业目的。版权归原作者所有,如涉及作品内容、版权和其它问题,请在30日内与本网联系,我们将在第一时间处理。</div>
                     </div>
                 </el-form>
             </el-row>
@@ -152,6 +150,9 @@ import Quill from 'quill';  // 引入 Quill
 import Delta from 'quill-delta'; // 引入 Delta,用于手动修改文档
 import { options } from 'dropzone';
 
+// 注册 Image Resize 模块
+Quill.register('modules/imageResize', ImageResize);
+
 export default {
     components: {
         quillEditor,
@@ -170,9 +171,10 @@ export default {
             ruleId: '',
             source: '',
 
-            // beforeAvatarUpload: '',
-            imgSrc: '',
-            hovering: '',
+            //3.4 上传logo图片
+            logoUrl: '',
+            hovering: false, // 鼠标悬浮状态 悬浮时显示删除
+            
             options: [
                 {
                     value: 0,
@@ -332,7 +334,6 @@ export default {
         }
     },
     methods: {
-
         beforeAvatarUpload(file) {
             const isJPG = file.type === 'image/jpeg';
             const isPNG = file.type === 'image/png';
@@ -351,7 +352,7 @@ export default {
             formData.append('file', file);
 
             this.$store.dispatch('pool/uploadFile', formData).then(res => {
-                this.imgUrl = res.data.imgUrl;//显示缩略图
+                this.logoUrl = res.data.imgUrl;//显示缩略图
                 this.ruleForm.imgSrc = res.data.imgUrl;//提供表单地址
                 console.log(res.data.imgUrl)
             }).catch(() => {
@@ -364,6 +365,10 @@ export default {
             // 阻止默认的上传行为
             return false;
         },
+        handleDelete() {
+            // 删除图片
+            this.logoUrl = ''; // 清空图片 URL
+        },
         // 提交表单
         goSubmit() {
             updateInfo({
@@ -410,7 +415,112 @@ export default {
         handleChange(value) {
             console.log(value);
             this.ruleForm.count = value
+        },
+
+        //4.富文本编辑器 start ------------------------------------------------------------>
+        //4.1 编辑器点击上传图片
+        handleImageClick() {
+            this.$refs.multiFileInput.click(); // 打开文件选择框
+        },
+        handleMultipleFiles(event) {
+            const files = event.target.files;
+            if (files.length) {
+                this.uploadMultipleImages(files); // 处理多图片上传
+            }
+        },
+        uploadMultipleImages(files) {
+            const uploadPromises = [];
+            for (let i = 0; i < files.length; i++) {
+                uploadPromises.push(this.uploadImage(files[i]));
+            }
+
+            Promise.all(uploadPromises).then(urls => {
+                const quillEditor = this.$refs.quillEditor.quill;
+                urls.forEach(url => {
+                    const range = quillEditor.getSelection();
+                    quillEditor.insertEmbed(range.index, 'image', url); // 在编辑器中插入图片
+                });
+            }).catch(error => {
+                this.$message.error('图片上传失败,请重试!');
+            });
+        },
+        uploadImage(file) {
+            const formData = new FormData();
+            formData.append('file', file);
+            return this.$store.dispatch('pool/uploadFile', formData)
+                .then(res => {
+                    if (res && res.data && res.data.imgUrl) {
+                        return res.data.imgUrl;
+                    } else {
+                        throw new Error('图片上传失败');
+                    }
+                })
+                .catch(error => {
+                    this.$message.error('图片上传失败,请重试!');
+                    throw error;
+                });
+        },
+
+        //4.2 图片粘贴上传
+        // 处理从网页粘贴的图片 URL
+        handleImageFromWeb(imageUrl) {
+            return new Promise((resolve) => {
+                console.log('开始下载图片:', imageUrl);
+
+                this.fetchImageAsBlob(imageUrl).then((blob) => {
+                    console.log('图片已下载为 Blob:', blob);
+
+                    const formData = new FormData();
+                    formData.append('file', blob, 'image.jpg');
+
+                    this.$store.dispatch('pool/uploadFile', formData).then((res) => {
+                        if (res && res.data && res.data.imgUrl) {
+                            console.log('图片上传成功:', res.data.imgUrl);
+                            resolve(res.data.imgUrl);
+                        } else {
+                            console.log('图片上传失败,保留原 URL:', imageUrl);
+                            resolve(imageUrl);
+                        }
+                    }).catch((error) => {
+                        console.error('图片上传时出现错误:', error);
+                        resolve(imageUrl);
+                    });
+                }).catch((error) => {
+                    console.error('图片下载失败:', error);
+                    resolve(imageUrl);
+                });
+            });
+        },
+        fetchImageAsBlob(url) {
+            return fetch(url)
+                .then(response => {
+                    if (!response.ok) {
+                        throw new Error('Failed to fetch image');
+                    }
+                    return response.blob();
+                });
+        },
+        //编辑源码
+        toggleSourceMode() {
+            if (!this.showHtml) {
+                // 切换到源码模式,将编辑器内容同步到 textarea 中
+                this.editorHtml = this.$refs.quillEditor.quill.root.innerHTML;
+                this.showHtml = true; // 显示 textarea
+            } else {
+                // 切换回富文本模式,将 textarea 内容同步回编辑器
+                this.showHtml = false; // 显示 Quill 编辑器
+
+                // Quill 编辑器可能被销毁,所以使用 $nextTick 确保 DOM 渲染完成后再操作编辑器
+                this.$nextTick(() => {
+                    if (this.$refs.quillEditor) {
+                        this.$refs.quillEditor.quill.root.innerHTML = this.editorHtml;
+                    } else {
+                        console.error('Quill 编辑器实例未找到');
+                    }
+                });
+            }
         }
+        //富文本编辑器 end ------------------------------------------------------------>
     },
     mounted() {
         this.ruleId = this.$route.query.ruleId
@@ -428,7 +538,7 @@ export default {
             this.ruleForm.url = data.data.linkurl
             this.ruleForm.name = data.data.category //导航池名称
             this.ruleForm.grade = data.data.level
-            this.ruleForm.imgSrc = data.data.imgurl
+            this.logoUrl = data.data.imgurl
             this.ruleForm.keywords = data.data.keyword
             this.ruleForm.desc = data.data.introduce
             this.ruleForm.content = data.data.content  //内容
@@ -437,6 +547,42 @@ export default {
             this.ruleForm.source = data.data.source
             this.ruleForm.link = data.data.copyfrom
         })
+
+        //复制内容到富文本 start ------------------------------------------------------------>
+        this.$nextTick(() => {
+            const quillEditor = this.$refs.quillEditor.quill;
+
+            if (quillEditor) {
+                console.log('Quill 编辑器已初始化');
+
+                // 在粘贴事件触发时,记录所有 img 的 src
+                quillEditor.clipboard.addMatcher(Node.ELEMENT_NODE, (node, delta) => {
+                    if (node.tagName === 'IMG') {
+                        const imageUrl = node.getAttribute('src');
+                        console.log('检测到粘贴的图片 URL:', imageUrl);
+
+                        if (imageUrl && !imageUrl.startsWith('data:') && !imageUrl.startsWith('file://')) {
+                            // 先处理图片上传
+                            this.handleImageFromWeb(imageUrl).then((uploadedImageUrl) => {
+                                // 查找编辑器中所有 img 标签并替换 src
+                                const imgs = quillEditor.root.querySelectorAll('img');
+                                imgs.forEach((img) => {
+                                    if (img.getAttribute('src') === imageUrl) {
+                                        img.setAttribute('src', uploadedImageUrl);  // 替换 src
+                                        console.log('图片 src 已替换为:', uploadedImageUrl);
+                                    }
+                                });
+                            });
+                        }
+                    }
+                    return delta;  // 返回原始 delta
+                });
+            } else {
+                console.error('Quill 初始化失败');
+            }
+
+        });
+        //复制富文本 end ------------------------------------------------------------>
     }
 }
 </script>
@@ -447,6 +593,42 @@ p {
     margin: 0;
 }
 
+//文本编辑器
+.QuillTitle {
+    line-height: 36px;
+    font-size: 14px;
+    color: #606266;
+    font-weight: bold;
+    padding-left: 30px;
+
+    span {
+        color: #ff4949
+    }
+
+    .QuillModelBtn {
+        display: inline-block;
+        margin-left: 10px;
+        font-size: 12px;
+        color: #999;
+        cursor: pointer;
+    }
+}
+
+.editor-container {
+    // height: 420px;
+    height: 375px;
+    padding-bottom: 20px;
+    background-color: #fff;
+}
+
+.my-quill-editor {
+    height: 320px;
+}
+
+.ql-editor {
+    height: 320px;
+}
+
 .layerBox {
     padding: 30px 20px;
     position: relative;

+ 189 - 83
src/views/crawler/webRule.vue

@@ -23,7 +23,7 @@
             <button class="btn" @click="addCrawlerRule">设置采集规则</button>
             <el-row>
                 <template>
-                    <el-table class="my-table" :data="tableData" style="width: 100%">
+                    <el-table class="my-table" v-loading="loading" :data="tableData" style="width: 100%">
                         <el-table-column fixed prop="id" label="编号" width="100">
                         </el-table-column>
                         <el-table-column prop="name" label="任务规则名" width="">
@@ -99,17 +99,17 @@
                         </el-form-item>
                         <div class="pageTwo">
                             <el-form-item label="第2页网址:" required class="keywords">
-                                <el-col :span="6">
+                                <el-col :span="8">
                                     <el-form-item prop="second_start">
                                         <el-input v-model="ruleForm.second_start" placeholder="请输入网址开头"></el-input>
                                     </el-form-item>
                                 </el-col>
-                                <el-col :span="6">
+                                <el-col :span="8">
                                     <el-form-item prop="second_num">
                                         <el-input v-model="ruleForm.second_num" placeholder="请输入代码页数"></el-input>
                                     </el-form-item>
                                 </el-col>
-                                <el-col :span="6" class="el_col_6_end">
+                                <el-col :span="8" class="el_col_6_end">
                                     <el-form-item prop="second_end">
                                         <el-input v-model="ruleForm.second_end" placeholder="请输入网址结束字符串"
                                             class="lastInput"></el-input>
@@ -129,8 +129,8 @@
                             <el-tooltip placement="top-start">
                                 <div slot="content">
                                     起始代码为文章列表第一篇文章上面几行代码中一段代码<br />
-                                    如<'div class="ej list box clear">,输入为 .ej list box clear 埴入输入框内<br />
-                                        如<'ul class="ej list box clear">,输入为 .ej list box clearul 埴入输入框内
+                                    如&lt;div class="ej list box clear">&lt;ul>&lt;li>,输入为 .ej list box clear ul li
+                                    埴入输入框内
                                 </div>
                                 <i class="el-icon-warning"></i>
                             </el-tooltip>
@@ -159,7 +159,7 @@
                             <el-tooltip placement="top-start">
                                 <div slot="content">
                                     详情页两边有除资讯详情内容时,此项需要填写<br />
-                                    标签内容为<'div class="news_details">,详情页标签填入.news_details 填入框内
+                                    标签内容为&lt;div class="news_details">,详情页标签填入.news_details 填入框内
                                 </div>
                                 <i class="el-icon-warning"></i>
                             </el-tooltip>
@@ -169,8 +169,8 @@
                             <el-input v-model="ruleForm.title" placeholder="请输入标题字符串"></el-input>
                             <el-tooltip placement="top-start">
                                 <div slot="content">
-                                    如标题代码:<'h1 class='news_art'>红枣滞销喂羊 电商帮忙促销</'h1>,标题字符串为 .news_art 填入输入框内<br />
-                                    如标题代码:<'h1 id='news at'>红枣滞销喂羊 电商帮忙促销</'h1>,标题字符串为 #news art 填入输入框内
+                                    如标题代码:&lt;h1 class='news_art'>红枣滞销喂羊 电商帮忙促销&lt;/h1>,标题字符串为 .news_art 填入输入框内<br />
+                                    如标题代码:&lt;h1 id='news at'>红枣滞销喂羊 电商帮忙促销&lt;/h1>,标题字符串为 #news art 填入输入框内
                                 </div>
                                 <i class="el-icon-warning"></i>
                             </el-tooltip>
@@ -179,10 +179,10 @@
                             <el-input v-model="ruleForm.content" placeholder="请输入内容字符串"></el-input>
                             <el-tooltip placement="top-start">
                                 <div slot="content">
-                                    如内容代码:<'h1 class='news box'>
-                                        <' /h1>,内容字符串为.news box 填入输入框内<br />
-                                            如内容代码:<'h1 id='news_box'>
-                                                <' /h1>,内容字符串为 #news_box 填入输入框内
+                                    如内容代码:&lt;h1 class='news box'>
+                                    &lt;/h1>,内容字符串为.news box 填入输入框内<br />
+                                    如内容代码:&lt;h1 id='news_box'>
+                                    &lt;/h1>,内容字符串为 #news_box 填入输入框内
                                 </div>
                                 <i class="el-icon-warning"></i>
                             </el-tooltip>
@@ -298,8 +298,9 @@
                 </div>
 
                 <div class="dialogBtn">
-                    <button class="cancel" @click="saveForm">保存</button>
-                    <button class="submit" @click="submitForm">确定</button>
+                    <el-button class="cancel" @click="saveForm">保存</el-button>
+                    <el-button type="primary" class="submit" :loading="submitDisabled"
+                        @click="submitForm('ruleForm')">确定</el-button>
                 </div>
             </el-form>
         </el-dialog>
@@ -427,6 +428,8 @@ export default {
             dialogName: '设置采集规则', //弹窗名称
             dialogBoo: 'add',//判断当前是添加还是编辑
             searchRuleName: '',  //任务规则名
+            loading: true,  //表格加载中
+            submitDisabled: false, //添加按钮防抖
 
             // 建立网站页面传递的参数
             webId: '',
@@ -464,7 +467,7 @@ export default {
                 author: '', // 作者字符串
                 authorName: '', // 作者替换名称
                 parameter: '',  //接口类2 接口参数
-                diy_rule: '',//自定义类
+                diy_rule: '', //自定义类
             },
 
             rules: {  //规则
@@ -502,6 +505,9 @@ export default {
                 pageSize: this.pageSize,
                 page: this.page,
             }).then(data => {
+                if (data.code == 200) {
+                    this.loading = false
+                }
                 console.log(data.data.rep);
                 this.tableData = data.data.rep
                 this.total = data.data.count
@@ -599,24 +605,132 @@ export default {
             }
             if (this.webType) {
                 this.dialogTableVisible = true
-                this.ruleForm.ruleName = ''
-                this.ruleForm.first_url = ''
-                this.ruleForm.collect = ''
-                this.ruleForm.second_start = ''
-                this.ruleForm.second_num = ''
-                this.ruleForm.second_end = ''
-                this.ruleForm.startCode = ''
-                this.ruleForm.startLabel = ''
-                this.ruleForm.endPage = ''
-                this.ruleForm.title = ''
-                this.ruleForm.content = ''
-                this.ruleForm.source = ''
-                this.ruleForm.author = ''
-                this.ruleForm.authorName = ''
-                this.ruleForm.parameter = ''
-                this.ruleForm.diy_rule = ''
-                this.ruleForm.webSite_start = ""
-                this.ruleForm.detailPage = ''
+                //任务规则名 ruleName
+                const ruleName = sessionStorage.getItem("ruleName");
+                if (ruleName !== null) {
+                    this.ruleForm.ruleName = ruleName
+                } else {
+                    this.ruleForm.ruleName = ''
+                }
+                //第1页网址  接口类的开始采集地址 first_url
+                const first_url = sessionStorage.getItem("first_url");
+                if (first_url !== null) {
+                    this.ruleForm.ruleName = first_url
+                } else {
+                    this.ruleForm.first_url = ''
+                }
+                //接口类 采集地址 collect
+                const collect = sessionStorage.getItem("collect");
+                if (collect !== null) {
+                    this.ruleForm.ruleName = collect
+                } else {
+                    this.ruleForm.collect = ''
+                }
+                //第2页网址开头 second_start
+                const second_start = sessionStorage.getItem("second_start");
+                if (second_start !== null) {
+                    this.ruleForm.ruleName = second_start
+                } else {
+                    this.ruleForm.second_start = ''
+                }
+                //第2页代码页数 second_num
+                const second_num = sessionStorage.getItem("second_num");
+                if (second_num !== null) {
+                    this.ruleForm.ruleName = second_num
+                } else {
+                    this.ruleForm.second_num = ''
+                }
+                //第2页网址结束字符串 second_end
+                const second_end = sessionStorage.getItem("second_end");
+                if (second_end !== null) {
+                    this.ruleForm.ruleName = second_end
+                } else {
+                    this.ruleForm.second_end = ''
+                }
+                //startCode: '', 起始代码
+                const startCode = sessionStorage.getItem("startCode");
+                if (startCode !== null) {
+                    this.ruleForm.ruleName = startCode
+                } else {
+                    this.ruleForm.startCode = ''
+                }
+                // startLabel: '',列表开始标签
+                const startLabel = sessionStorage.getItem("startLabel");
+                if (startLabel !== null) {
+                    this.ruleForm.ruleName = startLabel
+                } else {
+                    this.ruleForm.startLabel = ''
+                }
+                //endPage: '', //结束页数
+                const endPage = sessionStorage.getItem("endPage");
+                if (endPage !== null) {
+                    this.ruleForm.ruleName = endPage
+                } else {
+                    this.ruleForm.endPage = ''
+                }
+                //title: '',  //标题字符串
+                const title = sessionStorage.getItem("title");
+                if (title !== null) {
+                    this.ruleForm.ruleName = title
+                } else {
+                    this.ruleForm.title = ''
+                }
+                // content: '', //内容字符串
+                const content = sessionStorage.getItem("content");
+                if (content !== null) {
+                    this.ruleForm.ruleName = content
+                } else {
+                    this.ruleForm.content = ''
+                }
+                // detailPage: '', //详情页标签
+                const detailPage = sessionStorage.getItem("detailPage");
+                if (detailPage !== null) {
+                    this.ruleForm.ruleName = detailPage
+                } else {
+                    this.ruleForm.detailPage = ''
+                }
+                // webSite_start: '',  //详情页网址前缀
+                const webSite_start = sessionStorage.getItem("webSite_start");
+                if (webSite_start !== null) {
+                    this.ruleForm.ruleName = webSite_start
+                } else {
+                    this.ruleForm.webSite_start = ''
+                }
+                //source: '', // 来源字符串
+                const source = sessionStorage.getItem("source");
+                if (source !== null) {
+                    this.ruleForm.ruleName = source
+                } else {
+                    this.ruleForm.source = ''
+                }
+                //author: '', // 作者字符串
+                const author = sessionStorage.getItem("author");
+                if (author !== null) {
+                    this.ruleForm.ruleName = author
+                } else {
+                    this.ruleForm.author = ''
+                }
+                //authorName: '', // 作者替换名称
+                const authorName = sessionStorage.getItem("authorName");
+                if (authorName !== null) {
+                    this.ruleForm.ruleName = authorName
+                } else {
+                    this.ruleForm.authorName = ''
+                }
+                //parameter: '',  //接口类2 接口参数
+                const parameter = sessionStorage.getItem("parameter");
+                if (parameter !== null) {
+                    this.ruleForm.ruleName = parameter
+                } else {
+                    this.ruleForm.parameter = ''
+                }
+                //diy_rule: '',自定义类
+                const diy_rule = sessionStorage.getItem("diy_rule");
+                if (diy_rule !== null) {
+                    this.ruleForm.ruleName = diy_rule
+                } else {
+                    this.ruleForm.diy_rule = ''
+                }
             }
         },
         //1.9 编辑采集规则
@@ -684,8 +798,6 @@ export default {
                 this.ruleForm.ruleName = val.name
                 this.ruleForm.diy_rule = val.diy_rule
             }
-
-
         },
         //采集
         goCollect(id, status) {
@@ -730,7 +842,16 @@ export default {
         // },
         // 弹出层相关方法
         // 提交表单
-        submitForm() {
+        submitForm(formName) {
+            this.$refs[formName].validate((valid) => {
+                if (valid) {
+                    console.log('submit!');
+                    this.submitDisabled = true
+                } else {
+                    console.log('error submit!!');
+                    return false;
+                }
+            });
             //添加
             if (this.dialogBoo == 'add') {
                 if (this.webType == 1) {
@@ -757,15 +878,11 @@ export default {
                             console.log(data);
                             if (data.code == 200) {
                                 this.dialogTableVisible = false
+                                this.submitDisabled = false
                                 this.$message({
                                     message: '添加成功',
                                     type: 'success'
                                 })
-                            } else if (data.code == 0) {
-                                this.$message({
-                                    message: data.message,
-                                    type: 'error'
-                                })
                             }
                         })
                     } else {
@@ -791,15 +908,11 @@ export default {
                             console.log(data);
                             if (data.code == 200) {
                                 this.dialogTableVisible = false
+                                this.submitDisabled = false
                                 this.$message({
                                     message: '添加成功',
                                     type: 'success'
                                 })
-                            } else if (data.code == 0) {
-                                this.$message({
-                                    message: data.message,
-                                    type: 'error'
-                                })
                             }
                         })
                     }
@@ -821,17 +934,13 @@ export default {
                         this.getData()
                         console.log(data);
                         if (data.code == 200) {
+                            this.submitDisabled = false
                             this.dialogTableVisible = false
                             this.$message({
                                 message: '添加成功',
                                 type: 'success'
                             })
                             this.ruleForm.authorName = ''
-                        } else if (data.code == 0) {
-                            this.$message({
-                                message: data.message,
-                                type: 'error'
-                            })
                         }
                     })
 
@@ -853,16 +962,12 @@ export default {
                         console.log(data);
                         if (data.code == 200) {
                             this.dialogTableVisible = false
+                            this.submitDisabled = false
                             this.$message({
                                 message: '添加成功',
                                 type: 'success'
                             })
                             this.ruleForm.author = ''
-                        } else if (data.code == 0) {
-                            this.$message({
-                                message: data.message,
-                                type: 'error'
-                            })
                         }
                     })
 
@@ -877,17 +982,12 @@ export default {
                         this.getData()
                         if (data.code == 200) {
                             this.dialogTableVisible = false
+                            this.submitDisabled = false
                             this.$message({
                                 message: '添加成功',
                                 type: 'success'
                             })
-                        } else if (data.code == 0) {
-                            this.$message({
-                                message: data.message,
-                                type: 'error'
-                            })
                         }
-
                     })
                 }
             }
@@ -924,15 +1024,11 @@ export default {
                         console.log(data);
                         if (data.code == 200) {
                             this.dialogTableVisible = false
+                            this.submitDisabled = false
                             this.$message({
                                 message: '修改成功',
                                 type: 'success'
                             })
-                        } else if (data.code == 0) {
-                            this.$message({
-                                message: data.message,
-                                type: 'error'
-                            })
                         }
                     })
                 } else if (this.webType == 2 && this.radio == 'true') {
@@ -953,16 +1049,12 @@ export default {
                         console.log(data);
                         if (data.code == 200) {
                             this.dialogTableVisible = false
+                            this.submitDisabled = false
                             this.$message({
                                 message: '修改成功',
                                 type: 'success'
                             })
                             this.ruleForm.authorName = ""
-                        } else if (data.code == 0) {
-                            this.$message({
-                                message: data.message,
-                                type: 'error'
-                            })
                         }
                     })
                 } else if (this.webType == 2 && this.radio == 'false') {
@@ -984,16 +1076,12 @@ export default {
                         console.log(data);
                         if (data.code == 200) {
                             this.dialogTableVisible = false
+                            this.submitDisabled = false
                             this.$message({
                                 message: '修改成功',
                                 type: 'success'
                             })
                             this.ruleForm.author = ""
-                        } else if (data.code == 0) {
-                            this.$message({
-                                message: data.message,
-                                type: 'error'
-                            })
                         }
                     })
                 } else if (this.webType == 3) {
@@ -1007,15 +1095,11 @@ export default {
                         this.getData()
                         if (data.code == 200) {
                             this.dialogTableVisible = false
+                            this.submitDisabled = false
                             this.$message({
                                 message: '修改成功',
                                 type: 'success'
                             })
-                        } else if (data.code == 0) {
-                            this.$message({
-                                message: data.message,
-                                type: 'error'
-                            })
                         }
                     })
                 }
@@ -1024,6 +1108,24 @@ export default {
         //保存
         saveForm() {
             this.dialogTableVisible = false
+            sessionStorage.setItem('ruleName', this.ruleForm.ruleName); //任务规则名
+            sessionStorage.setItem('first_url', this.ruleForm.first_url); //第一页网址 
+            sessionStorage.setItem('collect', this.ruleForm.collect); //接口类 采集地址
+            sessionStorage.setItem('second_start', this.ruleForm.second_start); //第2页网址开头
+            sessionStorage.setItem('second_num', this.ruleForm.second_num); //第2页代码页数
+            sessionStorage.setItem('second_end', this.ruleForm.second_end);//第2页网址结束字符串
+            sessionStorage.setItem('startCode', this.ruleForm.startCode);  //起始代码
+            sessionStorage.setItem('startLabel', this.ruleForm.startLabel); //列表开始标签
+            sessionStorage.setItem('endPage', this.ruleForm.endPage); //结束页数
+            sessionStorage.setItem('title', this.ruleForm.title); //标题字符串
+            sessionStorage.setItem('content', this.ruleForm.content); //内容字符串
+            sessionStorage.setItem('detailPage', this.ruleForm.detailPage); //详情页标签
+            sessionStorage.setItem('webSite_start', this.ruleForm.webSite_start); //详情页网址前缀
+            sessionStorage.setItem('source', this.ruleForm.source); // 来源字符串
+            sessionStorage.setItem('author', this.ruleForm.author); // 作者字符串
+            sessionStorage.setItem('authorName', this.ruleForm.authorName); // 作者替换名称
+            sessionStorage.setItem('parameter', this.ruleForm.parameter); //接口类2 接口参数
+            sessionStorage.setItem('diy_rule', this.ruleForm.diy_rule); //自定义类
         },
         // 查看
         goLook(id, val) {
@@ -1219,6 +1321,10 @@ export default {
     background-color: #f5f7fb;
 
     .pageTwo {
+        ::v-deep .el-col-8 {
+            height: 32px;
+        }
+
         ::v-deep .el-col-6 {
             width: 31%;
             height: 32px;