Explorar el Código

采集-广告订单

Jing hace 4 meses
padre
commit
c8930bd66a

+ 59 - 4
src/api/advertise.js

@@ -1,11 +1,66 @@
 // 广告
 import request from '@/utils/request'
 
-// 订单列表
-export const addWeb=(params)=> {
+//获取状态
+export const getStatus=()=> {
   return request({
-    url: '/collector/addWeb',
+    url: '/order/getStauts',
     method: 'get',
-    params
+  })
+}
+// 获取订单列表
+export const getOrderListAdmin=(data)=> {
+  return request({
+    url: '/order/getOrderListAdmin',
+    method: 'post',
+    data
+  })
+}
+// 获取订单详情
+export const getOrderDetailAdmin=(data)=> {
+  return request({
+    url: '/order/getOrderDetailAdmin',
+    method: 'post',
+    data
+  })
+}
+// 审核订单状态
+export const applyOrderStatusAdmin=(data)=> {
+  return request({
+    url: '/order/applyOrderStatusAdmin',
+    method: 'post',
+    data
+  })
+}
+// 修改订单价格
+export const editOrderAdmin=(data)=> {
+  return request({
+    url: '/order/editPriceOrderAdmin',
+    method: 'post',
+    data
+  })
+}
+// 驳回订单
+export const rejectOrderAdmin=(data)=> {
+  return request({
+    url: '/order/rejectOrderAdmin',
+    method: 'post',
+    data
+  })
+}
+// 结束订单
+export const endOrderAdmin=(data)=> {
+  return request({
+    url: '/order/endOrderAdmin',
+    method: 'post',
+    data
+  })
+}
+// 删除订单
+export const delOrderAdmin=(data)=> {
+  return request({
+    url: '/order/delOrderAdmin',
+    method: 'post',
+    data
   })
 }

+ 46 - 5
src/api/crawler.js

@@ -1,5 +1,6 @@
 // 采集器
 import request from '@/utils/request'
+
 // 建立网站  start------------------------------------------------------------
 // 添加网站
 export const addWeb = (data) => {
@@ -72,7 +73,7 @@ export const updateRule = (data) => {
 export const delRule = (params) => {
     return request({
         url: '/collector/delRule',
-        method: 'get',
+        method: 'get', 
         params
     })
 }
@@ -85,13 +86,53 @@ export const sendCrawler = (data) => {
     })
 }
 
+
 // 采集列表  start-------------------------------------------------------------
-// 添加规则任务
-export const addRule1 = (data) => {
+// 获取病搜索资讯
+export const getInfo = (data) => {
     return request({
-        url: '/collector/addRule',
+        url: '/collector/getInfo',
         method: 'post',
         data
     })
 }
-
+//获取某个资讯  
+export const getOneInfo = (params) => {
+    return request({
+        url: '/collector/getOneInfo',
+        method: 'get',
+        params
+    })
+}
+//修改资讯  
+export const updateInfo = (data) => {
+    return request({
+        url: '/collector/upInfo',
+        method: 'post',
+        data
+    })
+}
+//删除资讯 
+export const delInfo = (params) => {
+    return request({
+        url: '/collector/delInfo',
+        method: 'get',
+        params
+    })
+}
+//关联导航池  
+export const addCatid = (data) => {
+    return request({
+        url: '/collector/addCatid',
+        method: 'post',
+        data
+    })
+}
+// 导入文章
+export const addArt = (params) => {
+    return request({
+        url: '/collector/addArt',
+        method: 'get',
+        params
+    })
+}

BIN
src/assets/advertise/guanggaowei1.png


BIN
src/assets/advertise/guanggaowei2.png


BIN
src/assets/advertise/loading.png


+ 16 - 0
src/router/index.js

@@ -395,6 +395,22 @@ export const constantRoutes = [
       }
     ]
   },
+  {
+    path: '/adPlaceList',
+    component: Layout,
+    children: [
+      {
+        name: '',
+        path: '',
+        component: () => import('@/views/advertise/adPlaceList'),
+        meta: {
+          title: '广告位管理',
+          hidden: true,
+          breadcrumb: true
+        }
+      }
+    ]
+  },
   // {
   //   path: '/documentation',
   //   component: Layout,

+ 2 - 1
src/utils/baseUrl.js

@@ -1,7 +1,8 @@
 const URL = {
   testUrl: 'http://192.168.1.201:9501',//老刘服务器
   baseUrl: 'http://183.131.25.186:9501',//测试服务器
-  base_URL:'http://192.168.1.118:9501', //冯蕊服务器地址
+  liuUrl:'http://192.168.1.127:9501', //刘剑
+  base_URL:'http://192.168.1.115:9501', //冯蕊服务器地址
   WebsocketUrl: 'ws://192.168.1.201:9506',//老刘websocket地址
   //WebsocketUrl: 'ws://183.131.25.186:9506'//测试服务器websocket地址
 }

+ 4 - 3
src/utils/request.js

@@ -7,9 +7,10 @@ import URL from '@/utils/baseUrl';
 // create an axios instance
 const service = axios.create({
   //千万不能在这里使用绝对地址,这会导致webpack的devserve不生效
-  //baseURL: URL.testUrl, //老刘服务器
-  // baseURL: URL.baseUrl, //测试服务器
-  baseURL: URL.base_URL, //冯蕊服务器
+  // baseURL: URL.testUrl, //老刘服务器
+  baseURL: URL.baseUrl, //测试服务器
+  // baseURL: URL.base_URL, //冯蕊服务器
+  // baseURL: URL.liuUrl, //刘剑服务器
   //baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
   //withCredentials: true, // send cookies when cross-domain requests
   timeout: 50000 // request timeout

+ 89 - 0
src/utils/requestMock.js

@@ -0,0 +1,89 @@
+import axios from 'axios'
+import { MessageBox, Message } from 'element-ui'
+import store from '@/store'
+import { getToken } from '@/utils/auth'
+import URL from '@/utils/baseUrl';
+
+// create an axios instance
+const service = axios.create({
+  //千万不能在这里使用绝对地址,这会导致webpack的devserve不生效
+  //baseURL: URL.testUrl, //老刘服务器
+  // baseURL: URL.baseUrl, //测试服务器
+  baseURL: "http://127.0.0.1:4523/m1/4987755-4646495-default/", //冯蕊服务器
+  //baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
+  //withCredentials: true, // send cookies when cross-domain requests
+  timeout: 50000 // request timeout
+})
+
+// request interceptor
+service.interceptors.request.use(
+  config => {
+    // do something before request is sent
+    if (store.getters.token) {
+      // let each request carry token
+      // ['X-Token'] is a custom headers key
+      // please modify it according to the actual situation
+      config.headers['token'] = getToken()
+    }
+    return config
+  },
+  error => {
+    // do something with request error
+    console.log(error) // for debug
+    return Promise.reject(error)
+  }
+)
+
+// response interceptor
+service.interceptors.response.use(
+  /**
+   * If you want to get http information such as headers or status
+   * Please return  response => response
+  */
+
+  /**
+   * Determine the request status by custom code
+   * Here is just an example
+   * You can also judge the status by HTTP Status Code
+   */
+  response => {
+    const res = response.data
+    return res
+    // if the custom code is not 20000, it is judged as an error.
+    // if (res.code !== 20000) {
+    //   Message({
+    //     message: res.message || 'Error',
+    //     type: 'error',
+    //     duration: 5 * 1000
+    //   })
+
+    //   // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
+    //   if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
+    //     // to re-login
+    //     MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
+    //       confirmButtonText: 'Re-Login',
+    //       cancelButtonText: 'Cancel',
+    //       type: 'warning'
+    //     }).then(() => {
+    //       store.dispatch('user/resetToken').then(() => {
+    //         location.reload()
+    //       })
+    //     })
+    //   }
+    //   return Promise.reject(new Error(res.message || 'Error'))
+    // } else {
+    //   return res
+    // }
+  },
+  error => {
+    console.log('err' + error) // for debug
+    Message({
+      message: error.message,
+      type: 'error',
+      duration: 5 * 10000
+    })
+    return Promise.reject(error)
+  }
+)
+
+export default service

+ 835 - 0
src/views/advertise/adPlaceList.vue

@@ -0,0 +1,835 @@
+<template>
+    <!-- 广告列表 -->
+    <div>
+        <!-- 提示信息 -->
+        <div class="tips">
+            <el-row>
+                <el-col :span="12">
+                    <i class="tipsIcon"></i>
+                    <span class="tipsText">7个工作日内,若运营没有操作用户的申请,则用户申请的时间、信息等将会释放。</span>
+                </el-col>
+            </el-row>
+        </div>
+        <!-- 头部搜索框部分 -->
+        <div class="title">
+            <el-row>
+                <el-col :span="6" class="left">
+                    <div class="searchBox">
+                        <div class="searchTitle">工单编号</div>
+                        <el-input class="input" v-model="order_code" placeholder="请输入工单编号"></el-input>
+                    </div>
+                </el-col>
+                <el-col :span="6" class="left">
+                    <div class="searchBox">
+                        <div class="searchTitle">审核状态</div>
+                        <el-select v-model="status" placeholder="请选择审核状态">
+                            <el-option v-for="item in order" :key="item.value" :label="item.label" :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </el-col>
+                <el-col :span="6" class="left">
+                    <div class="searchBox">
+                        <div class="searchTitle">广告状态</div>
+                        <el-select v-model="ad_status" placeholder="请选择广告状态">
+                            <el-option v-for="item in order_ad" :key="item.value" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+                        </el-select>
+                    </div>
+                </el-col>
+                <el-col :span="6" class="right">
+                    <div class="btnList">
+                        <button class="search" @click="goSearch">搜索</button>
+                        <button class="reset" @click="goReset">重置</button>
+                    </div>
+                </el-col>
+            </el-row>
+        </div>
+        <!--表格内容 start------------------------------------------------------------>
+        <div class="layerBox">
+            <tableTitle :name="tableDivTitle" />
+            <el-row>
+                <template>
+                    <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>
+                        <el-table-column prop="user_name" label="广告名称" width="255">
+                        </el-table-column>
+                        <el-table-column prop="status" label="审核状态" width="90" algin="center">
+                        </el-table-column>
+                        <el-table-column prop="ad_status" label="广告状态" width="90">
+                        </el-table-column>
+                        <el-table-column prop="sttime" label="开始时间" width="120">
+                        </el-table-column>
+                        <el-table-column prop="edtime" label="结束时间" width="120">
+                        </el-table-column>
+                        <el-table-column prop="cttime" label="创建时间" width="">
+                        </el-table-column>
+                        <el-table-column prop="admin_user_name" label="操作人" width="100">
+                        </el-table-column>
+                        <el-table-column fixed="right" label="操作" width="330">
+                            <template slot-scope="scope">
+                                <div class="listBtnBox">
+                                    <div class="listDeleteBtn" @click="deleteRow(scope.row.id)"><i
+                                            class="el-icon-delete"></i>删除</div>
+                                    <div class="listEditBtn" @click="goEdit(scope.row.id, scope.row)"><i
+                                            class="el-icon-edit-outline"></i>编辑</div>
+                                    <div class="listReviewBtn" @click="goReview(scope.row.id, scope.row)"><i
+                                            class="review"></i>审核</div>
+                                </div>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                </template>
+            </el-row>
+        </div>
+        <!--分页 start------------------------------------------------------------>
+        <div class="alignBox">
+            <el-row>
+                <el-col :span="24">
+                    <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                        :current-page="page" :page-size="pageSize" layout="total, prev, pager, next, jumper"
+                        :total="total">
+                    </el-pagination>
+                </el-col>
+            </el-row>
+        </div>
+        <!--分页 end------------------------------------------------------------>
+        <!--表格内容 end------------------------------------------------------------>
+
+        <!-- 弹出框 编辑 start----------------------------------------------------------->
+        <el-dialog :title="dialogName" :visible.sync="dialogTableVisible" width="56%" top="8vh">
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
+                <div class="dialogText">
+                    <el-form-item label="广告名称:" prop="">
+                        <el-input v-model="ruleForm.name" disabled placeholder="请输入网站名称"></el-input>
+                    </el-form-item>
+                    <el-form-item label="广告网址:" prop="">
+                        <el-input v-model="ruleForm.name" disabled placeholder="请输入网站名称"></el-input>
+                    </el-form-item>
+                    <el-form-item label="广告图:" prop="">
+                        <div class="adImage">
+                            <img src="../../assets/advertise/404.png" alt="">
+                        </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-form-item>
+                    <el-form-item label="广告尺寸:" prop="">
+                        <el-radio v-model="ruleForm.radio" label="1">1200x90px</el-radio>
+                        <el-radio v-model="ruleForm.radio" label="2">420x560px</el-radio>
+                    </el-form-item>
+
+                    <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> 个
+                        </div>
+                    </el-form-item>
+                    <el-form-item label="广告位置:" prop="">
+                        <span class="example" @click="goGraph">查看示例图</span>
+                        <div>
+                            <el-button disabled v-for="item in 12" class="el_btnList">中农兴业网 一号广告位</el-button>
+                        </div>
+                    </el-form-item>
+                </div>
+                <div class="dialogBtn">
+                    <button class="cancel" @click="cancelForm">取消</button>
+                    <button class="submit" @click="submitForm">提交</button>
+                </div>
+            </el-form>
+        </el-dialog>
+        <!-- 弹出框 编辑 end----------------------------------------------------------->
+
+        <!-- 弹出框 广告位示例图 start----------------------------------------------------------->
+        <el-dialog title="审核状态" :visible.sync="dialogVisible" width="50%" top="25vh">
+            <ul class="graph">
+                <li>
+                    <h3>首页:</h3>
+                    <img src="../../assets/advertise/guanggaowei2.png" alt="">
+                </li>
+                <li>
+                    <h3>列表页:</h3>
+                    <img src="../../assets/advertise/guanggaowei1.png" alt="">
+                </li>
+            </ul>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogVisible = false">取 消</el-button>
+                <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+            </div>
+        </el-dialog>
+        <!-- 弹出框 广告位示例图 end----------------------------------------------------------->
+
+        <!-- 弹出框 审核 start----------------------------------------------------------->
+        <el-dialog title="审核状态" :visible.sync="dialogFormVisible" width="35%" top="25vh">
+            <el-form ref="form" :model="form" label-width="80px">
+                <div class="radioGroup">
+                    <el-radio-group v-model="status_radio">
+                        <el-radio :label="3">通过</el-radio>
+                        <el-radio :label="6">驳回</el-radio>
+                    </el-radio-group>
+                    <el-form-item v-show="this.status_radio == 6" label="驳回原因:" :label-width="formLabelWidth"
+                        prop="name">
+                        <el-input v-model="textarea" type="textarea" resize="none" :rows="3" placeholder="请输入内容">
+                        </el-input>
+                    </el-form-item>
+                </div>
+
+            </el-form>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogFormVisible = false">取 消</el-button>
+                <el-button type="primary" @click="subimtStatus">确 定</el-button>
+            </div>
+        </el-dialog>
+        <!-- 弹出框 审核 end----------------------------------------------------------->
+    </div>
+
+</template>
+
+<script>
+//表格标题
+import tableTitle from './components/tableTitle.vue';
+
+//引入公用样式
+import '@/styles/global.less';
+import { getStatus, getOrderListAdmin, getOrderDetailAdmin, applyOrderStatusAdmin, editOrderAdmin, rejectOrderAdmin, endOrderAdmin, delOrderAdmin } from '@/api/advertise'
+export default {
+    components: {
+        tableTitle,//表格标题-
+    },
+    data() {
+        return {
+            tableDivTitle: "广告列表",  //列表标题
+            dialogTableVisible: false,      //编辑弹框
+            dialogName: '编辑', //编辑弹窗名称
+            dialogFormVisible: false,     //审核弹框
+            dialogVisible: false,  //示例图弹窗
+
+            form: {},  //审核状态的ref属性名称
+
+
+            tableData: [],//表格数据
+
+            // 搜索框相关
+            order_code: '', //工单编号 
+            status: '',//审核状态
+            ad_status: '',//广告状态
+            order: [ //审核状态数据
+                {
+                    value: 1,
+                    label: '已通过'
+                },
+                {
+                    value: 2,
+                    label: '已驳回'
+                },
+                {
+                    value: 5,
+                    label: '待审核'
+                },
+            ],
+            order_ad: [ //广告状态数据
+                {
+                    value: 1,
+                    label: '待投放'
+                },
+                {
+                    value: 2,
+                    label: '已驳回'
+                },
+                {
+                    value: 3,
+                    label: '已撤回'
+                },
+                {
+                    value: 4,
+                    label: '已修改'
+                },
+                {
+                    value: 5,
+                    label: '已过期'
+                },
+                {
+                    value: 6,
+                    label: '待审核'
+                },
+                {
+                    value: 7,
+                    label: '已结束'
+                },
+                {
+                    value: 8,
+                    label: '投放中'
+                }
+            ],
+
+            //活动id
+            activeid: "",
+
+            // 分页相关
+            page: 1,
+            pageSize: 10,
+            total: '',
+
+            // 审核弹窗相关
+            status_radio: "",   //审核状态
+            textarea: '',    //驳回原因
+
+            formLabelWidth: '',
+
+            ruleForm: {
+                name: '', //广告名称
+                ad_url: '', //广告网址
+                radio: '',//广告尺寸
+                startTime: '', //开始时间
+                endTime: '',   //结束时间
+                price: '',  //价格
+                days: '',   //天数
+                num: '',   //个数
+            },
+            rules: {
+                name: [
+                    { required: true, message: '请输入网站名称', trigger: 'blur' },
+                ],
+                price: [
+                    { required: true, message: '请输入要修改的价格', trigger: 'change' }
+                ]
+            }
+        }
+    },
+    watch: {
+        status_radio: {
+            handler(newVal, oldVal) {
+                // console.log(newVal);
+            },
+            deep: true,
+            immediate: true
+        }
+    },
+    methods: {
+        //1.列表和分页相关 start ------------------------------------------------------------>
+        //1.1 开始请求列表信息方法
+        getData() {
+            let data = new FormData()
+            data.append('page', this.page)
+            data.append('pageSize', this.pageSize)
+            console.log(data);
+
+            getOrderListAdmin(data).then(data => {
+                console.log("全部数据", data);
+                console.log(data.data.rows);
+                this.tableData = data.data.rows
+                this.total = data.data.count
+                for (let item of this.tableData) {
+                    if (item.status == 1) {
+                        item.status = "已通过"
+                    } else if (item.status == 2) {
+                        item.status = "已驳回"
+                    } else if (item.status == 6) {
+                        item.status = "待审核"
+                    }
+
+                    if (item.ad_status == 1) {
+                        item.ad_status = "待投放"
+                    } else if (item.ad_status == 2) {
+                        item.ad_status = "已驳回"
+                    } else if (item.ad_status == 3) {
+                        item.ad_status = "已撤回"
+                    } else if (item.ad_status == 4) {
+                        item.ad_status = "已修改"
+                    } else if (item.ad_status == 5) {
+                        item.ad_status = "已过期"
+                    } else if (item.ad_status == 6) {
+                        item.ad_status = "待审核"
+                    } else if (item.ad_status == 7) {
+                        item.ad_status = "已结束"
+                    } else if (item.ad_status == 8) {
+                        item.ad_status = "待投放"
+                    }
+                }
+            })
+        },
+
+        //1.2 删除内容
+        deleteRow(id) {
+            console.log(id);
+            let data = new FormData()
+            data.append('id', id)
+
+            this.$confirm('注意:删除后,该条信息及其绑定关系全部删除', '是否确认删除该条信息?', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+            }).then(() => {
+                console.log("当前删除:" + id)
+                let data = new FormData()
+                data.append('id', id)
+                console.log(data);
+
+                delOrderAdmin(data).then(data => {
+                    console.log(data);
+                    if (data.code == 0) {
+                        this.$message({
+                            message: data.message,
+                            type: 'error'
+                        })
+                    }
+                    if (data.code == 200) {
+                        this.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                    }
+                    this.getData()
+                })
+            }).catch(() => {
+                this.$message({
+                    type: 'warning',
+                    message: '已取消删除'
+                });
+            });
+        },
+        //1.3 查看示例图
+        goGraph() {
+            this.dialogVisible = true
+        },
+
+        //1.4 列表内容分页
+        //直接跳转
+        handleSizeChange(val) {
+            this.page = val;
+            this.getData();
+        },
+        //1.5 点击分页
+        handleCurrentChange(val) {
+            this.page = val;
+            this.getData();
+        },
+        // 1.6 搜索按钮
+        goSearch() {
+            console.log(this.status);
+            
+            let data = new FormData()
+            data.append('page', this.page)
+            data.append('pageSize', this.pageSize)
+            data.append('status', this.status)
+            data.append('ad_status', this.ad_status)
+            data.append('order_num', this.order_code)
+            data.append('sttime', "")
+            data.append('edtime', "")
+            console.log(data);
+
+            getOrderListAdmin(data).then(data => {
+                console.log(data);
+                console.log(data.data.rows);
+                this.tableData = data.data.rows
+                this.total = data.data.count
+                for (let item of this.tableData) {
+                    if (item.status == 1) {
+                        item.status = "已通过"
+                    } else if (item.status == 2) {
+                        item.status = "已驳回"
+                    } else if (item.status == 6) {
+                        item.status = "待审核"
+                    }
+
+                    if (item.ad_status == 1) {
+                        item.ad_status = "待投放"
+                    } else if (item.ad_status == 2) {
+                        item.ad_status = "已驳回"
+                    } else if (item.ad_status == 3) {
+                        item.ad_status = "已撤回"
+                    } else if (item.ad_status == 4) {
+                        item.ad_status = "已修改"
+                    } else if (item.ad_status == 5) {
+                        item.ad_status = "已过期"
+                    } else if (item.ad_status == 6) {
+                        item.ad_status = "待审核"
+                    } else if (item.ad_status == 7) {
+                        item.ad_status = "已结束"
+                    } else if (item.ad_status == 8) {
+                        item.ad_status = "待投放"
+                    }
+                }
+            })
+        },
+        //1.7 重置按钮
+        goReset() {
+            this.order_code = '',
+                this.status = ''
+            this.ad_status = ''
+            this.getData();
+        },
+        //列表和分页相关 end ------------------------------------------------------------>
+
+        //1.9 编辑
+        goEdit(id, val) {
+            console.log(id);
+
+            this.activeid = id
+            this.dialogTableVisible = true
+            console.log(id, val);
+            this.ruleForm.name = val.user_name
+            this.ruleForm.ad_url = val.ad_url
+            // this.ruleForm.radio = val.width
+            this.ruleForm.startTime = val.sttime
+            this.ruleForm.endTime = val.edtime
+            this.ruleForm.price = val.price
+            this.ruleForm.days = val.days
+        },
+
+        //2.0 审核
+        goReview(id, val) {
+            this.activeid = id
+            this.dialogFormVisible = true
+        },
+
+        //审核中的确定
+        subimtStatus() {
+            if (this.status_radio == '3') {
+                let data = new FormData()
+                data.append('id', this.activeid)
+                applyOrderStatusAdmin(data).then(data => {
+                    console.log(data);
+                    if (data.code == 200) {
+                        this.$message({
+                            message: '已修改审核状态',
+                            type: 'success'
+                        })
+                        this.dialogFormVisible = false
+                        this.getData()
+                    }
+                    if (data.code == 0) {
+                        this.$message({
+                            message: data.message,
+                            type: 'error'
+                        })
+                    }
+                })
+            }
+            if (this.status_radio == '6') {
+                let data = new FormData()
+                data.append('id', this.activeid)
+                data.append('reason', this.textarea)
+                rejectOrderAdmin(data).then(data=>{
+                    console.log(data);
+                    if(data.code==200){
+                        this.$message({
+                            message:'修改成功',
+                            type:'success'
+                        })
+                        this.dialogFormVisible = false
+                        this.getData()
+                    }
+                    if(data.code==0){
+                        this.$message({
+                            message:data.message,
+                            type:'error'
+                        })
+                    }
+                })
+            }
+
+        },
+        // 弹出层相关方法
+        // 提交表单
+        submitForm() {
+            let data = new FormData()
+            data.append('id', this.activeid)
+            data.append('price', this.ruleForm.price)
+            editOrderAdmin(data).then(data => {
+                console.log(data);
+                if (data.code == 200) {
+                    this.dialogTableVisible = false
+                    this.$message({
+                        message: '修改成功',
+                        type: 'success'
+                    })
+                }
+                if (data.code == 0) {
+                    this.$message({
+                        message: data.message + ',需要保留两位小数',
+                        type: 'error'
+                    })
+                    this.dialogTableVisible = true
+                }
+            })
+        },
+        //取消添加或编辑
+        cancelForm() {
+            this.dialogTableVisible = false
+        },
+
+    },
+    mounted() {
+        this.getData()
+    },
+}
+</script>
+
+<style scoped lang="less">
+// 提示信息
+.tips {
+    margin: 30px;
+    background-color: #e9ecf9;
+    border-radius: 11px;
+
+    .tipsIcon {
+        margin: 10px 15px;
+        display: inline-block;
+        width: 24px;
+        height: 24px;
+        background: url("../../assets/advertise/Info Circle.png") no-repeat;
+        vertical-align: middle;
+    }
+
+    .tipsText {
+        font-size: 14px;
+        color: #666666;
+    }
+}
+
+// 头部
+.title {
+    margin: 30px 30px 20px 30px;
+    padding: 30px 30px 40px 30px;
+    background-color: #fff;
+    border-radius: 20px 20px 20px 20px;
+    border: 1px solid #E9EDF7;
+
+    .left {
+        float: left;
+    }
+
+    .right {
+        float: right;
+    }
+
+
+    .searchBox {
+        ::v-deep .el-input {
+            position: relative;
+            font-size: 14px;
+            display: inline-block;
+            width: 73%;
+        }
+
+        .searchTitle {
+            padding-bottom: 10px;
+            font-family: Microsoft YaHei, Microsoft YaHei;
+            font-weight: 400;
+            font-size: 14px;
+            color: #999999;
+            line-height: 16px;
+        }
+
+        .el-select {
+            width: 100%;
+            display: inline-block;
+            position: relative;
+        }
+    }
+
+
+    .btnList {
+        float: right;
+        padding-top: 28px;
+
+        button {
+            height: 38px;
+            border: none;
+            border-radius: 8px;
+            padding: 0 20px;
+        }
+
+        .search {
+            background-color: #5570f1;
+            color: #fff;
+            margin-right: 20px;
+        }
+
+        .reset {
+            font-family: Microsoft YaHei, Microsoft YaHei;
+            font-weight: 400;
+            font-size: 16px;
+            color: #333333;
+            background: #F5F7FB;
+            border-radius: 8px 8px 8px 8px;
+            border: 1px solid rgba(85, 112, 241, 0.11);
+        }
+    }
+}
+
+.layerBox {
+    padding: 30px 20px;
+    position: relative;
+
+    .btn {
+        position: absolute;
+        top: 30px;
+        right: 20px;
+        height: 38px;
+        color: #fff;
+        background-color: #5570f1;
+        border: none;
+        border-radius: 8px;
+        padding: 8px 28px 9px;
+        box-sizing: border-box;
+    }
+
+    .listBtnBox {
+        justify-content: left;
+    }
+
+
+    .listDeleteBtn,
+    .listEditBtn,
+    .listReviewBtn {
+        margin-left: 0px;
+        padding-left: 0px;
+        margin-right: 20px;
+        width: 76px;
+        height: 36px;
+        line-height: 36px;
+    }
+
+
+    .listReviewBtn {
+        text-align: center;
+        border-radius: 8px;
+        cursor: pointer;
+        color: #519C66;
+        background-color: rgba(81, 156, 102, 0.16);
+
+        >.review {
+            display: inline-block;
+            width: 20px;
+            height: 20px;
+            background: url("../../assets/advertise/Shield.png");
+            margin-right: 6px;
+            vertical-align: -6px;
+        }
+    }
+
+    ::v-deep .el-form-item {
+        margin-bottom: 50px;
+    }
+
+    ::v-deep .el-select {
+        width: 100%;
+    }
+
+    ::v-deep .el-input--medium,
+    ::v-deep .el-form-item__label {
+        line-height: 36px;
+        font-size: 16px;
+    }
+}
+
+// 弹出层内容
+.dialogText {
+    margin: 0 7px 0 3px;
+    padding-bottom: 1px;
+    padding: 0px 60px 1px 20px;
+
+    .adImage {
+        width: 140px;
+        height: 140px;
+        line-height: 210px;
+        border-radius: 12px;
+        border: 1px solid rgba(85, 112, 241, 0.11);
+
+        img {
+            width: 140px;
+            height: 80px;
+        }
+    }
+
+    .price {
+        ::v-deep .el-input {
+            width: 29%;
+        }
+    }
+
+    .example {
+        font-family: Microsoft YaHei;
+        color: #5570F1;
+    }
+
+    .el_btnList {
+        margin-right: 15px;
+        margin-top: 20px;
+    }
+
+    //日期时间选择器的宽
+    ::v-deep .el-date-editor.el-input {
+        width: 48%;
+    }
+
+    ::v-deep .el-button+.el-button {
+        margin-left: 0px;
+    }
+}
+
+// 弹出层按钮
+.dialogBtn {
+    text-align: center;
+    margin: 50px auto 20px;
+
+    button {
+        width: 184px;
+        padding: 16px;
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        font-weight: 400;
+        font-size: 20px;
+        border: none;
+        border-radius: 12px 12px 12px 12px;
+    }
+
+    // 取消
+    .cancel {
+        color: #333333;
+        background-color: #f5f7fb;
+        border: 2px solid rgba(85, 112, 241, 0.11);
+    }
+
+    // 提交
+    .submit {
+        color: #fff;
+        background-color: #5570F1;
+        margin-left: 40px;
+    }
+}
+
+//审核弹出框
+.radioGroup {
+    ::v-deep .el-form-item {
+        margin-top: 40px;
+        margin-bottom: 0;
+    }
+}
+
+.graph {
+    background-color: #f5f7fb;
+    padding: 60px 100px;
+    overflow: hidden;
+
+    li {
+        float: left;
+    }
+
+    >li:first-child {
+        margin-right: 100px;
+    }
+}
+
+.dialog-footer {
+    margin: 0 auto;
+}
+</style>

+ 370 - 237
src/views/advertise/advertiseList.vue

@@ -16,15 +16,14 @@
                 <el-col :span="6" class="left">
                     <div class="searchBox">
                         <div class="searchTitle">工单编号</div>
-                        <el-input class="input" v-model="input" placeholder="请输入工单编号"></el-input>
+                        <el-input class="input" v-model="order_code" placeholder="请输入工单编号"></el-input>
                     </div>
                 </el-col>
                 <el-col :span="6" class="left">
                     <div class="searchBox">
                         <div class="searchTitle">审核状态</div>
-                        <el-select v-model="value" placeholder="请选择审核状态">
-                            <el-option v-for="item in options" :key="item.value" :label="item.label"
-                                :value="item.value">
+                        <el-select v-model="status" placeholder="请选择审核状态">
+                            <el-option v-for="item in order" :key="item.value" :label="item.label" :value="item.value">
                             </el-option>
                         </el-select>
                     </div>
@@ -32,8 +31,8 @@
                 <el-col :span="6" class="left">
                     <div class="searchBox">
                         <div class="searchTitle">广告状态</div>
-                        <el-select v-model="value" placeholder="请选择广告状态">
-                            <el-option v-for="item in options" :key="item.value" :label="item.label"
+                        <el-select v-model="ad_status" placeholder="请选择广告状态">
+                            <el-option v-for="item in order_ad" :key="item.value" :label="item.label"
                                 :value="item.value">
                             </el-option>
                         </el-select>
@@ -41,8 +40,8 @@
                 </el-col>
                 <el-col :span="6" class="right">
                     <div class="btnList">
-                        <button class="search">搜索</button>
-                        <button class="reset">重置</button>
+                        <button class="search" @click="goSearch">搜索</button>
+                        <button class="reset" @click="goReset">重置</button>
                     </div>
                 </el-col>
             </el-row>
@@ -53,32 +52,32 @@
             <el-row>
                 <template>
                     <el-table class="my-table" :data="tableData" style="width: 100%">
-                        <el-table-column fixed prop="number" label="编号" width="90">
+                        <el-table-column fixed prop="id" label="编号" width="90">
                         </el-table-column>
-                        <el-table-column prop="orderNum" label="工单编号" width="120">
+                        <el-table-column prop="order_num" label="工单编号" width="120">
                         </el-table-column>
-                        <el-table-column prop="adName" label="广告名称" width="255">
+                        <el-table-column prop="user_name" label="广告名称" width="255">
                         </el-table-column>
                         <el-table-column prop="status" label="审核状态" width="90" algin="center">
                         </el-table-column>
-                        <el-table-column prop="status_ad" label="广告状态" width="90">
+                        <el-table-column prop="ad_status" label="广告状态" width="90">
                         </el-table-column>
-                        <el-table-column prop="startTime" label="开始时间" width="120">
+                        <el-table-column prop="sttime" label="开始时间" width="120">
                         </el-table-column>
-                        <el-table-column prop="endTime" label="结束时间" width="120">
+                        <el-table-column prop="edtime" label="结束时间" width="120">
                         </el-table-column>
-                        <el-table-column prop="createTime" label="创建时间" width="">
+                        <el-table-column prop="cttime" label="创建时间" width="">
                         </el-table-column>
-                        <el-table-column prop="name" label="操作人" width="100">
+                        <el-table-column prop="admin_user_name" label="操作人" width="100">
                         </el-table-column>
                         <el-table-column fixed="right" label="操作" width="330">
                             <template slot-scope="scope">
                                 <div class="listBtnBox">
-                                    <div class="listDeleteBtn" @click="deleteRow(scope.row.id, tableData)"><i
+                                    <div class="listDeleteBtn" @click="deleteRow(scope.row.id)"><i
                                             class="el-icon-delete"></i>删除</div>
-                                    <div class="listEditBtn" @click="goEdit(scope.row.id, tableData)"><i
+                                    <div class="listEditBtn" @click="goEdit(scope.row.id, scope.row)"><i
                                             class="el-icon-edit-outline"></i>编辑</div>
-                                    <div class="listReviewBtn" @click="goReview(scope.row.id, tableData)"><i
+                                    <div class="listReviewBtn" @click="goReview(scope.row.id, scope.row)"><i
                                             class="review"></i>审核</div>
                                 </div>
                             </template>
@@ -92,8 +91,8 @@
             <el-row>
                 <el-col :span="24">
                     <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
-                        :current-page="currentPage" :page-size="10" layout="total, prev, pager, next, jumper"
-                        :total="40">
+                        :current-page="page" :page-size="pageSize" layout="total, prev, pager, next, jumper"
+                        :total="total">
                     </el-pagination>
                 </el-col>
             </el-row>
@@ -117,25 +116,25 @@
                         </div>
                     </el-form-item>
                     <el-form-item label="持续时间:" prop="">
-                        <el-date-picker v-model="value1" type="datetime" disabled placeholder="选择日期时间">
+                        <el-date-picker v-model="ruleForm.startTime" type="datetime" disabled placeholder="选择日期时间">
                         </el-date-picker> 至
-                        <el-date-picker v-model="value1" type="datetime" disabled placeholder="选择日期时间">
+                        <el-date-picker v-model="ruleForm.endTime" type="datetime" disabled placeholder="选择日期时间">
                         </el-date-picker>
                     </el-form-item>
                     <el-form-item label="广告尺寸:" prop="">
-                        <el-radio v-model="radio" label="1">1200x90px</el-radio>
-                        <el-radio v-model="radio" label="2">420x560px</el-radio>
+                        <el-radio v-model="ruleForm.radio" label="1">1200x90px</el-radio>
+                        <el-radio v-model="ruleForm.radio" label="2">420x560px</el-radio>
                     </el-form-item>
 
                     <el-form-item label="价格:" prop="price">
                         <div class="price">
-                            <el-input v-model="input" placeholder="请输入内容"></el-input> 元 x
-                            <el-input v-model="input" disabled placeholder="请输入内容"></el-input> 天 x
-                            <el-input v-model="input" disabled placeholder="请输入内容"></el-input> 个
+                            <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> 个
                         </div>
                     </el-form-item>
                     <el-form-item label="广告位置:" prop="">
-                        <span class="example">查看示例图</span>
+                        <span class="example" @click="goGraph">查看示例图</span>
                         <div>
                             <el-button disabled v-for="item in 12" class="el_btnList">中农兴业网 一号广告位</el-button>
                         </div>
@@ -149,15 +148,35 @@
         </el-dialog>
         <!-- 弹出框 编辑 end----------------------------------------------------------->
 
+        <!-- 弹出框 广告位示例图 start----------------------------------------------------------->
+        <el-dialog title="审核状态" :visible.sync="dialogVisible" width="50%" top="25vh">
+            <ul class="graph">
+                <li>
+                    <h3>首页:</h3>
+                    <img src="../../assets/advertise/guanggaowei2.png" alt="">
+                </li>
+                <li>
+                    <h3>列表页:</h3>
+                    <img src="../../assets/advertise/guanggaowei1.png" alt="">
+                </li>
+            </ul>
+            <div slot="footer" class="dialog-footer">
+                <el-button @click="dialogVisible = false">取 消</el-button>
+                <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+            </div>
+        </el-dialog>
+        <!-- 弹出框 广告位示例图 end----------------------------------------------------------->
+
         <!-- 弹出框 审核 start----------------------------------------------------------->
-        <el-dialog title="审核地址" :visible.sync="dialogFormVisible" width="35%" top="25vh">
+        <el-dialog title="审核状态" :visible.sync="dialogFormVisible" width="35%" top="25vh">
             <el-form ref="form" :model="form" label-width="80px">
                 <div class="radioGroup">
-                    <el-radio-group v-model="radio1">
+                    <el-radio-group v-model="status_radio">
                         <el-radio :label="3">通过</el-radio>
                         <el-radio :label="6">驳回</el-radio>
-                    </el-radio-group>   
-                    <el-form-item label="驳回原因:" :label-width="formLabelWidth" prop="name">
+                    </el-radio-group>
+                    <el-form-item v-show="this.status_radio == 6" label="驳回原因:" :label-width="formLabelWidth"
+                        prop="name">
                         <el-input v-model="textarea" type="textarea" resize="none" :rows="3" placeholder="请输入内容">
                         </el-input>
                     </el-form-item>
@@ -166,7 +185,7 @@
             </el-form>
             <div slot="footer" class="dialog-footer">
                 <el-button @click="dialogFormVisible = false">取 消</el-button>
-                <el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
+                <el-button type="primary" @click="subimtStatus">确 定</el-button>
             </div>
         </el-dialog>
         <!-- 弹出框 审核 end----------------------------------------------------------->
@@ -177,145 +196,118 @@
 <script>
 //表格标题
 import tableTitle from './components/tableTitle.vue';
+
 //引入公用样式
 import '@/styles/global.less';
-
+import { getStatus, getOrderListAdmin, getOrderDetailAdmin, applyOrderStatusAdmin, editOrderAdmin, rejectOrderAdmin, endOrderAdmin, delOrderAdmin } from '@/api/advertise'
 export default {
     components: {
         tableTitle,//表格标题-
     },
     data() {
         return {
-            input: "",
-            tableDivTitle: "广告列表",
-            radio1: "",      //广告尺寸
-            radio: "",      //广告尺寸
-            startTime: '', //开始时间
-            endTime: '',   //结束时间
-            value1: '',
-            form: {},
-            formLabelWidth: '',
-            textarea: '',
-            options: [{
-                value: '选项1',
-                label: '黄金糕'
-            }, {
-                value: '选项2',
-                label: '双皮奶'
-            }, {
-                value: '选项3',
-                label: '蚵仔煎'
-            }, {
-                value: '选项4',
-                label: '龙须面'
-            }, {
-                value: '选项5',
-                label: '北京烤鸭'
-            }],
-            value: '',
-            tableData: [{
-                number: 1,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }, {
-                number: 2,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }, {
-                number: 3,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }, {
-                number: 4,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }, {
-                number: 1,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }, {
-                number: 2,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }, {
-                number: 3,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }, {
-                number: 4,
-                orderNum: '21253321',
-                adName: '习近平关于“三农”工作的重要概述',
-                status: '待审核',
-                status_ad: '待审核',
-                startTime: '2024-11-10',
-                endTime: '2024-11-10',
-                createTime: '2024-06-27 21:50:28',
-                name: '王小虎',
-            }],
-            currentPage: 4,
+            tableDivTitle: "广告列表",  //列表标题
             dialogTableVisible: false,      //编辑弹框
-            dialogFormVisible: false,     //查看弹框
-            dialogName: '',
+            dialogName: '编辑', //编辑弹窗名称
+            dialogFormVisible: false,     //审核弹框
+            dialogVisible: false,  //示例图弹窗
+
+            form: {},  //审核状态的ref属性名称
+
+
+            tableData: [],//表格数据
+
+            // 搜索框相关
+            order_code: '', //工单编号 
+            status: '',//审核状态
+            ad_status: '',//广告状态
+            order: [ //审核状态数据
+                {
+                    value: 1,
+                    label: '已通过'
+                },
+                {
+                    value: 2,
+                    label: '已驳回'
+                },
+                {
+                    value: 5,
+                    label: '待审核'
+                },
+            ],
+            order_ad: [ //广告状态数据
+                {
+                    value: 1,
+                    label: '待投放'
+                },
+                {
+                    value: 2,
+                    label: '已驳回'
+                },
+                {
+                    value: 3,
+                    label: '已撤回'
+                },
+                {
+                    value: 4,
+                    label: '已修改'
+                },
+                {
+                    value: 5,
+                    label: '已过期'
+                },
+                {
+                    value: 6,
+                    label: '待审核'
+                },
+                {
+                    value: 7,
+                    label: '已结束'
+                },
+                {
+                    value: 8,
+                    label: '投放中'
+                }
+            ],
+
+            //活动id
+            activeid: "",
+
+            // 分页相关
+            page: 1,
+            pageSize: 10,
+            total: '',
+
+            // 审核弹窗相关
+            status_radio: "",   //审核状态
+            textarea: '',    //驳回原因
+
+            formLabelWidth: '',
+
             ruleForm: {
-                name: '',
-                region: ''
+                name: '', //广告名称
+                ad_url: '', //广告网址
+                radio: '',//广告尺寸
+                startTime: '', //开始时间
+                endTime: '',   //结束时间
+                price: '',  //价格
+                days: '',   //天数
+                num: '',   //个数
             },
             rules: {
                 name: [
                     { required: true, message: '请输入网站名称', trigger: 'blur' },
                 ],
                 price: [
-                    { required: true, message: '请选择活动区域', trigger: 'change' }
+                    { required: true, message: '请输入要修改的价格', trigger: 'change' }
                 ]
             }
         }
     },
     watch: {
-        radio1: {
+        status_radio: {
             handler(newVal, oldVal) {
-                console.log(newVal);
+                // console.log(newVal);
             },
             deep: true,
             immediate: true
@@ -324,54 +316,78 @@ export default {
     methods: {
         //1.列表和分页相关 start ------------------------------------------------------------>
         //1.1 开始请求列表信息方法
-        getData(type) {
-            // if (type == "search") {
-            //     this.getApiData.page = 1;
-            // }
-            // this.$store.dispatch('news/getArticleList', this.getApiData).then(res => {
-            //     //格式化:islink=0为不使用外面 islink=1为使用外链
-            //     //status=1为显示 status=2为不显示
-            //     let data = [];
-            //     for (let item of res.data.rows) {
-            //         // if(item.status==0){item.status="隐藏"}
-            //         // if(item.status==1){item.status="显示"}
-            //         // if(item.status==404){item.status="已删除"}
-            //         if (item.islink == 0) { item.islink = "否" }
-            //         if (item.islink == 1) { item.islink = "是" }
-            //         data.push(item)
-            //     }
-            //     this.tableData = res.data.rows; //给与内容
-            //     this.allCount = res.data.count; //给与总条数
-            // }).catch(() => {
-            //     this.$message({
-            //         type: 'warning',
-            //         message: '网络错误,请重试!'
-            //     });
-            // })
+        getData() {
+            let data = new FormData()
+            data.append('page', this.page)
+            data.append('pageSize', this.pageSize)
+            console.log(data);
+
+            getOrderListAdmin(data).then(data => {
+                console.log("全部数据", data);
+                console.log(data.data.rows);
+                this.tableData = data.data.rows
+                this.total = data.data.count
+                for (let item of this.tableData) {
+                    if (item.status == 1) {
+                        item.status = "已通过"
+                    } else if (item.status == 2) {
+                        item.status = "已驳回"
+                    } else if (item.status == 6) {
+                        item.status = "待审核"
+                    }
+
+                    if (item.ad_status == 1) {
+                        item.ad_status = "待投放"
+                    } else if (item.ad_status == 2) {
+                        item.ad_status = "已驳回"
+                    } else if (item.ad_status == 3) {
+                        item.ad_status = "已撤回"
+                    } else if (item.ad_status == 4) {
+                        item.ad_status = "已修改"
+                    } else if (item.ad_status == 5) {
+                        item.ad_status = "已过期"
+                    } else if (item.ad_status == 6) {
+                        item.ad_status = "待审核"
+                    } else if (item.ad_status == 7) {
+                        item.ad_status = "已结束"
+                    } else if (item.ad_status == 8) {
+                        item.ad_status = "待投放"
+                    }
+                }
+            })
         },
+
         //1.2 删除内容
         deleteRow(id) {
+            console.log(id);
+            let data = new FormData()
+            data.append('id', id)
+
             this.$confirm('注意:删除后,该条信息及其绑定关系全部删除', '是否确认删除该条信息?', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
             }).then(() => {
-                this.$message({
-                    type: 'success',
-                    message: '删除成功!'
-                });
                 console.log("当前删除:" + id)
-                // this.$store.dispatch('news/delArticle', { id: id }).then(res => {
-                //     this.getData();
-                //     this.$message({
-                //         type: 'success',
-                //         message: '删除成功!'
-                //     });
-                // }).catch(() => {
-                //     this.$message({
-                //         type: 'warning',
-                //         message: '网络错误,请重试!'
-                //     });
-                // })
+                let data = new FormData()
+                data.append('id', id)
+                console.log(data);
+
+                delOrderAdmin(data).then(data => {
+                    console.log(data);
+                    if (data.code == 0) {
+                        this.$message({
+                            message: data.message,
+                            type: 'error'
+                        })
+                    }
+                    if (data.code == 200) {
+                        this.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                    }
+                    this.getData()
+                })
             }).catch(() => {
                 this.$message({
                     type: 'warning',
@@ -379,79 +395,180 @@ export default {
                 });
             });
         },
-        //1.3 修改网站状态
-        upRow(id, status) {
-            let data = {
-                id: id,
-                status: status
-            }
-            this.$store.dispatch('news/upArticleStatus', data).then(res => {
-                if (res.code == 200) {
-                    this.$message({
-                        type: 'success',
-                        message: '资讯状态已修改!'
-                    });
-                }
-            }).catch(() => {
-                this.$message({
-                    type: 'warning',
-                    message: '已取消删除'
-                });
-            });
+        //1.3 查看示例图
+        goGraph() {
+            this.dialogVisible = true
         },
+
         //1.4 列表内容分页
         //直接跳转
         handleSizeChange(val) {
-            this.getApiData.page = val;
+            this.page = val;
             this.getData();
         },
         //1.5 点击分页
         handleCurrentChange(val) {
-            this.getApiData.page = val;
+            this.page = val;
             this.getData();
         },
         // 1.6 搜索按钮
-
+        goSearch() {
+            console.log(this.status);
+            
+            let data = new FormData()
+            data.append('page', this.page)
+            data.append('pageSize', this.pageSize)
+            data.append('status', this.status)
+            data.append('ad_status', this.ad_status)
+            data.append('order_num', this.order_code)
+            data.append('sttime', "")
+            data.append('edtime', "")
+            console.log(data);
+
+            getOrderListAdmin(data).then(data => {
+                console.log(data);
+                console.log(data.data.rows);
+                this.tableData = data.data.rows
+                this.total = data.data.count
+                for (let item of this.tableData) {
+                    if (item.status == 1) {
+                        item.status = "已通过"
+                    } else if (item.status == 2) {
+                        item.status = "已驳回"
+                    } else if (item.status == 6) {
+                        item.status = "待审核"
+                    }
+
+                    if (item.ad_status == 1) {
+                        item.ad_status = "待投放"
+                    } else if (item.ad_status == 2) {
+                        item.ad_status = "已驳回"
+                    } else if (item.ad_status == 3) {
+                        item.ad_status = "已撤回"
+                    } else if (item.ad_status == 4) {
+                        item.ad_status = "已修改"
+                    } else if (item.ad_status == 5) {
+                        item.ad_status = "已过期"
+                    } else if (item.ad_status == 6) {
+                        item.ad_status = "待审核"
+                    } else if (item.ad_status == 7) {
+                        item.ad_status = "已结束"
+                    } else if (item.ad_status == 8) {
+                        item.ad_status = "待投放"
+                    }
+                }
+            })
+        },
         //1.7 重置按钮
-        clearSearchList() {
-            this.tableData = [];
-            this.getApiData.title = "";
-            this.getApiData.category_name = "";
-            this.getApiData.author = "";
-            this.getApiData.islink = "";
-            this.getApiData.status = "";
-            this.getApiData.page = 1;
-            this.getApiData.pageSize = 10;
+        goReset() {
+            this.order_code = '',
+                this.status = ''
+            this.ad_status = ''
             this.getData();
         },
         //列表和分页相关 end ------------------------------------------------------------>
 
-        //1.8 添加
-        addWebsite() {
-            this.dialogTableVisible = true
-            this.dialogName = "添加"
-        },
         //1.9 编辑
-        goEdit(val) {
-            console.log(val);
+        goEdit(id, val) {
+            console.log(id);
+
+            this.activeid = id
             this.dialogTableVisible = true
-            this.dialogName = "编辑"
+            console.log(id, val);
+            this.ruleForm.name = val.user_name
+            this.ruleForm.ad_url = val.ad_url
+            // this.ruleForm.radio = val.width
+            this.ruleForm.startTime = val.sttime
+            this.ruleForm.endTime = val.edtime
+            this.ruleForm.price = val.price
+            this.ruleForm.days = val.days
         },
 
         //2.0 审核
-        goReview() {
+        goReview(id, val) {
+            this.activeid = id
             this.dialogFormVisible = true
         },
 
+        //审核中的确定
+        subimtStatus() {
+            if (this.status_radio == '3') {
+                let data = new FormData()
+                data.append('id', this.activeid)
+                applyOrderStatusAdmin(data).then(data => {
+                    console.log(data);
+                    if (data.code == 200) {
+                        this.$message({
+                            message: '已修改审核状态',
+                            type: 'success'
+                        })
+                        this.dialogFormVisible = false
+                        this.getData()
+                    }
+                    if (data.code == 0) {
+                        this.$message({
+                            message: data.message,
+                            type: 'error'
+                        })
+                    }
+                })
+            }
+            if (this.status_radio == '6') {
+                let data = new FormData()
+                data.append('id', this.activeid)
+                data.append('reason', this.textarea)
+                rejectOrderAdmin(data).then(data=>{
+                    console.log(data);
+                    if(data.code==200){
+                        this.$message({
+                            message:'修改成功',
+                            type:'success'
+                        })
+                        this.dialogFormVisible = false
+                        this.getData()
+                    }
+                    if(data.code==0){
+                        this.$message({
+                            message:data.message,
+                            type:'error'
+                        })
+                    }
+                })
+            }
+
+        },
         // 弹出层相关方法
         // 提交表单
         submitForm() {
-
+            let data = new FormData()
+            data.append('id', this.activeid)
+            data.append('price', this.ruleForm.price)
+            editOrderAdmin(data).then(data => {
+                console.log(data);
+                if (data.code == 200) {
+                    this.dialogTableVisible = false
+                    this.$message({
+                        message: '修改成功',
+                        type: 'success'
+                    })
+                }
+                if (data.code == 0) {
+                    this.$message({
+                        message: data.message + ',需要保留两位小数',
+                        type: 'error'
+                    })
+                    this.dialogTableVisible = true
+                }
+            })
         },
         //取消添加或编辑
         cancelForm() {
             this.dialogTableVisible = false
-        }
+        },
+
+    },
+    mounted() {
+        this.getData()
     },
 }
 </script>
@@ -525,10 +642,10 @@ export default {
         padding-top: 28px;
 
         button {
-            width: 120px;
             height: 38px;
             border: none;
             border-radius: 8px;
+            padding: 0 20px;
         }
 
         .search {
@@ -690,13 +807,29 @@ export default {
     }
 }
 
-//
+//审核弹出框
 .radioGroup {
-
-    // margin-bottom: 40px;
     ::v-deep .el-form-item {
         margin-top: 40px;
         margin-bottom: 0;
     }
 }
+
+.graph {
+    background-color: #f5f7fb;
+    padding: 60px 100px;
+    overflow: hidden;
+
+    li {
+        float: left;
+    }
+
+    >li:first-child {
+        margin-right: 100px;
+    }
+}
+
+.dialog-footer {
+    margin: 0 auto;
+}
 </style>

+ 35 - 18
src/views/crawler/webCrawler.vue

@@ -9,7 +9,7 @@
                         <el-input v-model="webName" placeholder="请输入网站名称"></el-input>
                     </div>
                 </el-col>
-                <el-col :span="6" class="right">
+                <el-col :span="10" class="right">
                     <div class="btnList">
                         <button class="search" @click="goSearch">搜索</button>
                         <button class="reset" @click="reset">重置</button>
@@ -65,23 +65,27 @@
         <!--表格内容 end------------------------------------------------------------>
 
         <!-- 弹出框 start------------------------------------------------------------>
-        <el-dialog :title="dialogName" :visible.sync="dialogTableVisible" width="50%">
+        <el-dialog :title="dialogName" :visible.sync="dialogTableVisible" width="50%" :close-on-click-modal="false">
             <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
                 <div class="dialogText">
                     <el-form-item label="网站名称:" prop="name">
                         <el-input v-model="ruleForm.name" :disabled="this.dialogName == '查看' ? true : false"
-                            placeholder="请输入网站名称"></el-input>
+                            placeholder="请输入采集的源网站名称"></el-input>
                     </el-form-item>
                     <el-form-item label="网站地址:" prop="url">
                         <el-input v-model="ruleForm.url" :disabled="this.dialogName == '查看' ? true : false"
-                            placeholder="请输入网站地址(即网站URL链接)"></el-input>
+                            placeholder="请输入网站地址(即网站首页URL)"></el-input>
                     </el-form-item>
-                    <el-form-item label="规则类型:" prop="ruleType">
+                    <el-form-item label="规则类型:" prop="ruleType" class="keywords">
                         <el-select v-model="ruleForm.ruleType" placeholder="请选择规则类型" :disabled="disabledType">
-                            <el-option label="规则" value="1"></el-option>
-                            <el-option label="接口" value="2"></el-option>
-                            <el-option label="自定义" value="3"></el-option>
+                            <el-option label="一般规则" value="1"></el-option>
+                            <el-option label="接口规则" value="2"></el-option>
+                            <el-option label="自定义规则" value="3"></el-option>
                         </el-select>
+                        <el-tooltip class="item" effect="dark" content="列表翻页后,网址变化的为一般接口;列表翻页后,网址没变化的为接口规则。"
+                            placement="top-start">
+                            <i class="el-icon-warning"></i>
+                        </el-tooltip>
                     </el-form-item>
                 </div>
                 <div class="dialogBtn">
@@ -137,10 +141,10 @@ export default {
             },
             rules: {   //规则
                 name: [
-                    { required: true, message: '请输入网站名称', trigger: 'blur' },
+                    { required: true, message: '请输入采集的源网站名称', trigger: 'blur' },
                 ],
                 url: [
-                    { required: true, message: '请输入网站地址(即网站URL链接)', trigger: 'blur' }
+                    { required: true, message: '请输入网站地址(即网站首页URL)', trigger: 'blur' }
                 ],
                 ruleType: [
                     { required: true, message: '请选择规则类型', trigger: 'blur' }
@@ -157,7 +161,7 @@ export default {
                 page: this.page,
                 pageSize: this.pageSize,
             }).then(data => {
-                // console.log(data);
+                console.log(data);
                 this.tableData = data.data.rep
                 this.total = data.data.count
             })
@@ -245,7 +249,9 @@ export default {
             this.dialogTableVisible = true
             this.dialogName = "添加"
             this.disabledType = false //添加的时候类型可以选择
-
+            this.ruleForm.name = ""
+            this.ruleForm.url = ""
+            this.ruleForm.ruleType = ""
         },
         //1.8 编辑
         goEdit(id, val) {
@@ -287,15 +293,15 @@ export default {
         // 提交表单
         submitForm() {
             if (!this.ruleForm.name) {
-                this.$message.error("网站名称不能为空");
+                this.$message.error("请将数据填写完整");
                 return
             }
             if (!this.ruleForm.url) {
-                this.$message.error("网站地址不能为空");
+                this.$message.error("请将数据填写完整");
                 return
             }
             if (!this.ruleForm.ruleType) {
-                this.$message.error('请选择规则类型')
+                this.$message.error('请将数据填写完整')
                 return
             }
             if (this.dialogName == "添加") {
@@ -322,7 +328,7 @@ export default {
                 updateWeb({
                     name: this.ruleForm.name,
                     url: this.ruleForm.url,
-                    id: this.activeId
+                    id: this.activeId,
                 }).then(data => {
                     console.log(data);
                     if (data.code == 0) {
@@ -398,6 +404,7 @@ export default {
             height: 38px;
             border: none;
             border-radius: 8px;
+            // padding: 0 30px;
         }
 
         .search {
@@ -456,8 +463,8 @@ export default {
         text-align: center;
         border-radius: 8px;
         cursor: pointer;
-        color: #999999;
-        background-color: rgba(153, 153, 153, 0.16);
+        color: #55b5f1;
+        background-color: rgba(85, 181, 241, 0.16);
 
         >i {
             padding-right: 8px;
@@ -498,6 +505,16 @@ export default {
     ::v-deep .el-select {
         width: 100%;
     }
+
+    .keywords {
+        position: relative;
+
+        i {
+            position: absolute;
+            top: 0;
+            left: -15px;
+        }
+    }
 }
 
 // 弹出层按钮

+ 267 - 226
src/views/crawler/webCrawlerList.vue

@@ -5,9 +5,21 @@
             <el-row>
                 <el-col :span="6" class="left">
                     <div class="searchBox">
-                        <div class="searchTitle">网站名称:</div>
-                        <el-select v-model="value" placeholder="请选择网站名称" width="100%">
-                            <el-option v-for="item in options" :key="item.value" :label="item.label"
+                        <div class="searchTitle">资讯题目</div>
+                        <el-input v-model="message_name" placeholder="请输入资讯名称"></el-input>
+                    </div>
+                </el-col>
+                <el-col :span="6" class="left">
+                    <div class="searchBox">
+                        <div class="searchTitle">来源</div>
+                        <el-input v-model="message_from" placeholder="请输入来源"></el-input>
+                    </div>
+                </el-col>
+                <el-col :span="6" class="left">
+                    <div class="searchBox">
+                        <div class="searchTitle">导入状态</div>
+                        <el-select v-model="message_state" placeholder="请选择导入状态">
+                            <el-option v-for="item in statusOptions" :key="item.value" :label="item.label"
                                 :value="item.value">
                             </el-option>
                         </el-select>
@@ -15,8 +27,8 @@
                 </el-col>
                 <el-col :span="6" class="right">
                     <div class="btnList">
-                        <button class="search">搜索</button>
-                        <button class="reset">重置</button>
+                        <button class="search" @click="goSearch">搜索</button>
+                        <button class="reset" @click="goReset">重置</button>
                     </div>
                 </el-col>
             </el-row>
@@ -25,37 +37,37 @@
         <div class="layerBox">
             <tableTitle :name="tableDivTitle" />
             <div class="btnList">
-                <button class="navigation">关联导航池</button>
-                <button class="consultList">导入咨询列表</button>
+                <button class="navigation" @click="toNavigation">关联导航池</button>
+                <button class="consultList" @click="importMessage">导入资讯列表</button>
             </div>
 
             <el-row>
                 <template>
                     <el-table class="my-table" :data="tableData" style="width: 100%">
-                        <el-table-column fixed prop="number" label="编号" width="80">
+                        <el-table-column fixed prop="id" label="编号" width="80">
                         </el-table-column>
-                        <el-table-column prop="name" label="资讯题目" width="230">
+                        <el-table-column prop="title" label="资讯题目" width="230">
                         </el-table-column>
-                        <el-table-column prop="name" label="原始资讯题目" width="230">
+                        <el-table-column prop="oldtitle" label="原始资讯题目" width="230">
                         </el-table-column>
-                        <el-table-column prop="date" label="导航池名称" width="90">
+                        <el-table-column prop="category.name" label="导航池名称" width="90">
                         </el-table-column>
-                        <el-table-column prop="from" label="来源" width="180">
+                        <el-table-column prop="source" label="来源" width="180">
                         </el-table-column>
-                        <el-table-column prop="status" label="导入状态" width="80">
+                        <el-table-column label="导入状态" width="80" prop="state">
                         </el-table-column>
                         <el-table-column prop="author" label="作者" width="80">
                         </el-table-column>
-                        <el-table-column prop="createTime" label="采集时间" width="160">
+                        <el-table-column prop="created_at" label="采集时间" width="160">
                         </el-table-column>
-                        <el-table-column prop="updateTime" label="修改时间" width="160">
+                        <el-table-column prop="updated_at" label="修改时间" width="160">
                         </el-table-column>
                         <el-table-column fixed="right" label="操作" width="200">
                             <template slot-scope="scope">
                                 <div class="listBtnBox">
-                                    <div class="listDeleteBtn" @click="deleteRow(scope.row.id, tableData)"><i
+                                    <div class="listDeleteBtn" @click="deleteRow(scope.row.id, scope.row)"><i
                                             class="el-icon-delete"></i>删除</div>
-                                    <div class="listEditBtn" @click="goEdit(scope.row.id, tableData)"><i
+                                    <div class="listEditBtn" @click="goEdit(scope.row.id, scope.row)"><i
                                             class="el-icon-edit-outline"></i>编辑</div>
                                 </div>
                             </template>
@@ -69,14 +81,33 @@
             <el-row>
                 <el-col :span="24">
                     <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
-                        :current-page="currentPage" :page-size="10" layout="total, prev, pager, next, jumper"
-                        :total="40">
+                        :current-page="page" :page-size="pageSize" layout="total, prev, pager, next, jumper"
+                        :total="total">
                     </el-pagination>
                 </el-col>
             </el-row>
         </div>
         <!--分页 end------------------------------------------------------------>
         <!--表格内容 end------------------------------------------------------------>
+
+        <!-- 弹出框 start------------------------------------------------------------>
+        <el-dialog title="关联导航池" :visible.sync="dialogTableVisible" width="50%" :close-on-click-modal="false">
+            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
+                <div class="dialogText">
+                    <el-form-item label="关联导航池:" prop="name">
+                        <el-select v-model="ruleForm.name" placeholder="请选择关联的导航池名称">
+                            <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                </div>
+                <div class="dialogBtn">
+                    <button class="cancel" @click="cancelForm">取消</button>
+                    <button class="submit" @click="submitForm">提交</button>
+                </div>
+            </el-form>
+        </el-dialog>
+        <!-- 弹出框 end------------------------------------------------------------>
     </div>
 
 </template>
@@ -86,6 +117,7 @@
 import tableTitle from './components/tableTitle.vue';
 //引入公用样式
 import '@/styles/global.less';
+import { getInfo, updateInfo, delInfo, addCatid, addArt } from '@/api/crawler'
 
 export default {
     components: {
@@ -93,165 +125,109 @@ export default {
     },
     data() {
         return {
-            tableDivTitle: "任务规则列表",
-            options: [{
-                value: '选项1',
-                label: '黄金糕'
-            }, {
-                value: '选项2',
-                label: '双皮奶'
-            }, {
-                value: '选项3',
-                label: '蚵仔煎'
-            }, {
-                value: '选项4',
-                label: '龙须面'
-            }, {
-                value: '选项5',
-                label: '北京烤鸭'
-            }],
-            value: '',
-            tableData: [{
-                number: 1,
-                date: '--',
-                name: '公安部公布5起涉企犯罪典型案例',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }, {
-                number: 2,
-                date: '--',
-                name: '公安部公布5起涉企犯罪典型案例',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }, {
-                number: 3,
-                date: '--',
-                name: '公安部公布5起涉企犯罪典型案例',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }, {
-                number: 4,
-                date: '--',
-                name: '公安部公布5起涉企犯罪典型案例',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }, {
-                number: 5,
-                date: '--',
-                name: '公安部公布5起涉企犯罪典型案例',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }, {
-                number: 6,
-                date: '--',
-                name: '公安部公布5起涉企犯罪典型案例',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }, {
-                number: 7,
-                date: '--',
-                name: '王小洪在新疆调研时强调深入学 习贯彻习近平总书记重要讲话精 神更好统筹高质量发展和高水平 安全',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }, {
-                number: 8,
-                date: '--',
-                name: '王小洪在新疆调研时强调深入学 习贯彻习近平总书记重要讲话精 神更好统筹高质量发展和高水平 安全',
-                from: '中华人们共和国公安部',
-                createTime: '2024-06-27 21:50:28',
-                updateTime: '2024-06-27 21:50:28',
-                status: '未导入',
-                author: '佚名'
-            }],
-            currentPage: 4,
+            tableDivTitle: "任务规则列表",//表格标题
+            // searchWebName: "", //搜索网站名称
+            // dialogName:'关联导航池',
+
+            //跳转传递的参数
+            ruleId: "", //规则id
+            source: "", //规则来源
+            state: 0,  //导入状态
+
+            //搜索框
+            message_name: '',//资讯名称
+            message_from: '', //来源
+            message_state: '', //导入状态
+
+            //分页相关
+            page: 1,
+            pageSize: 10,
+            total: 20,
+
+            tableData: [], //表格内数据
+            // currentPage: 4,
             dialogTableVisible: false,
-            dialogName: '',
+            // dialogName: '',
             ruleForm: {
                 name: '',
-                region: ''
             },
-            rules: {
+            rules: {   //规则
                 name: [
-                    { required: true, message: '请输入网站名称', trigger: 'blur' },
-                ],
-                region: [
-                    { required: true, message: '请选择活动区域', trigger: 'change' }
+                    { required: true, message: '请选择关联的导航池名称', trigger: 'blur' },
                 ]
-            }
+            },
+
+            // dialog 关联导航池
+            options: [],
+
+            statusOptions: [
+                {
+                    value: '0',
+                    label: '未导入'
+                },
+                {
+                    value: '1',
+                    label: '已导入'
+                },
+            ]
         }
     },
+    mounted() {
+        // 接收跳转传递的参数
+        this.ruleId = this.$route.query.id
+        this.source = this.$route.query.source
+        //请求数据
+        this.getData()
+    },
     methods: {
         //1.列表和分页相关 start ------------------------------------------------------------>
         //1.1 开始请求列表信息方法
-        getData(type) {
-            // if (type == "search") {
-            //     this.getApiData.page = 1;
-            // }
-            // this.$store.dispatch('news/getArticleList', this.getApiData).then(res => {
-            //     //格式化:islink=0为不使用外面 islink=1为使用外链
-            //     //status=1为显示 status=2为不显示
-            //     let data = [];
-            //     for (let item of res.data.rows) {
-            //         // if(item.status==0){item.status="隐藏"}
-            //         // if(item.status==1){item.status="显示"}
-            //         // if(item.status==404){item.status="已删除"}
-            //         if (item.islink == 0) { item.islink = "否" }
-            //         if (item.islink == 1) { item.islink = "是" }
-            //         data.push(item)
-            //     }
-            //     this.tableData = res.data.rows; //给与内容
-            //     this.allCount = res.data.count; //给与总条数
-            // }).catch(() => {
-            //     this.$message({
-            //         type: 'warning',
-            //         message: '网络错误,请重试!'
-            //     });
-            // })
+        getData() {
+            getInfo({
+                // rule_id: 12,
+                rule_id: this.ruleId,
+                page: this.page,
+                pageSize: this.pageSize
+            }).then(data => {
+                console.log(data);
+                this.total = data.data.count
+                this.tableData = data.data.rep
+
+                for (let item of this.tableData) {
+                    if (item.state == 1) {
+                        item.state = "已导入"
+                    } else {
+                        item.state = "未导入"
+                    }
+                }
+
+
+            })
         },
         //1.2 删除内容
-        deleteRow(id) {
+        deleteRow(id, val) {
             this.$confirm('注意:删除后,该条信息及其绑定关系全部删除', '是否确认删除该条信息?', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
             }).then(() => {
-                this.$message({
-                    type: 'success',
-                    message: '删除成功!'
-                });
-                console.log("当前删除:" + id)
-                // this.$store.dispatch('news/delArticle', { id: id }).then(res => {
-                //     this.getData();
-                //     this.$message({
-                //         type: 'success',
-                //         message: '删除成功!'
-                //     });
-                // }).catch(() => {
-                //     this.$message({
-                //         type: 'warning',
-                //         message: '网络错误,请重试!'
-                //     });
-                // })
+                delInfo({
+                    art_id: id
+                }).then(data => {
+                    console.log(data);
+                    if (data.code == 200) {
+                        this.$message({
+                            type: 'success',
+                            message: '删除成功!'
+                        });
+                        this.getData()
+                        console.log("当前删除:" + id)
+                    } else if (data.code == 0) {
+                        this.$message({
+                            type: 'error',
+                            message: data.message
+                        });
+                    }
+                })
             }).catch(() => {
                 this.$message({
                     type: 'warning',
@@ -260,88 +236,150 @@ export default {
             });
         },
         //1.3 修改网站状态
-        upRow(id, status) {
-            let data = {
-                id: id,
-                status: status
-            }
-            this.$store.dispatch('news/upArticleStatus', data).then(res => {
-                if (res.code == 200) {
-                    this.$message({
-                        type: 'success',
-                        message: '资讯状态已修改!'
-                    });
-                }
-            }).catch(() => {
-                this.$message({
-                    type: 'warning',
-                    message: '已取消删除'
-                });
-            });
-        },
+
         //1.4 列表内容分页
         //直接跳转
         handleSizeChange(val) {
-            this.getApiData.page = val;
+            this.page = val;
             this.getData();
         },
         //1.5 点击分页
         handleCurrentChange(val) {
-            this.getApiData.page = val;
+            this.page = val;
             this.getData();
         },
         // 1.6 搜索按钮
-
+        goSearch() {
+            getInfo({
+                rule_id: this.ruleId,
+                page: this.page,
+                pageSize: this.pageSize,
+                title: this.message_name,
+                source: this.message_from,
+                state: this.message_state
+            }).then(data => {
+                console.log(data);
+                this.total = data.data.count
+                this.tableData = data.data.rep
+            })
+        },
         //1.7 重置按钮
-        clearSearchList() {
-            this.tableData = [];
-            this.getApiData.title = "";
-            this.getApiData.category_name = "";
-            this.getApiData.author = "";
-            this.getApiData.islink = "";
-            this.getApiData.status = "";
-            this.getApiData.page = 1;
-            this.getApiData.pageSize = 10;
-            this.getData();
+        goReset() {
+            this.message_name = '',
+                this.message_from = '',
+                this.message_state = ''
+            this.getData()
         },
         //列表和分页相关 end ------------------------------------------------------------>
 
-        //1.8 添加
-        // addWebsite() {
-        //     this.dialogTableVisible = true
-        //     this.dialogName = "添加"
-        // },
-        //1.9 编辑
-        goEdit(val) {
-            console.log(val);
-            this.$router.push('/webCrawlerListEdit')
+        //1.8 编辑
+        goEdit(id, val) {
+            console.log(id, val);
+            // this.$router.push('/webCrawlerListEdit')
+            this.$router.push({
+                path: '/webCrawlerListEdit',
+                query: {
+                    ruleId: this.ruleId,
+                    source: this.source,
+                    id: id,
+                    // data: val
+                }
+            })
+        },
+        //1.9 关联导航池
+        toNavigation() {
+            addCatid({
+                rule_id: this.ruleId,
+            }).then(data => {
+                console.log(data);
+                if (data.code == 200) {
+                    this.dialogTableVisible = true
+                    this.options = data.data
+                }
+                if (data.code == 0) {
+                    this.$message({
+                        message: data.message,
+                        type: 'error'
+                    })
+                }
+                this.getData()
+            })
         },
 
-        // 弹出层相关方法
-        // 提交表单
-        submitForm() {
+        //关联导航池的取消按钮
+        cancelForm() {
+            this.dialogTableVisible = false
+        },
 
+
+        //关联导航池的提交按钮
+        submitForm() {
+            addCatid({
+                rule_id: this.ruleId,//任务规则id
+                catid: this.ruleForm.name,//导航池栏目id
+            }).then(data => {
+                console.log(this.ruleForm.name);
+                console.log(data);
+                if (data.code == 200) {
+                    this.dialogTableVisible = false
+                    this.$message({
+                        message: '关联成功!',
+                        type: 'success'
+                    })
+                    this.getData()
+                }
+                if (data.code == 0) {
+                    this.$message({
+                        message: data.message,
+                        type: 'error'
+                    })
+                    this.getData()
+                }
+            })
         },
-        //取消添加或编辑
-        cancelForm() {
-            this.$confirm('确定要取消吗', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-            }).then(() => {
-                // console.log("当前删除:" + id)
-                // this.getData();
-                this.dialogTableVisible = false
-                this.$message({
-                    type: 'success',
-                    message: '已退出'
-                });
 
-            }).catch(() => {
-                this.$message({
-                    type: 'warning',
-                    message: '已取消'
-                });
-            });
+
+        //2.0 导入资讯列表
+        importMessage() {
+            for (let item of this.tableData) {
+                if (item.category.name == '') {
+                    this.$message({
+                        message: '还未关联导航池,请先关联导航池',
+                        type: 'error'
+                    })
+                } else {
+                    this.$confirm('', '是否确认将所有未导入的信息导入资讯列表?', {
+                        confirmButtonText: '确定',
+                        cancelButtonText: '取消',
+                    }).then(() => {
+                        addArt({
+                            rule_id: this.ruleId
+                        }).then(data => {
+                            console.log(data);
+                            if (data.code == 200) {
+                                this.$message({
+                                    message: '导入成功',
+                                    type: 'success'
+                                })
+                                this.getData()
+                            }
+                            if (data.code == 0) {
+                                this.$message({
+                                    message: data.message,
+                                    type: 'error'
+                                })
+                            }
+                        })
+                    }).catch(() => {
+                        this.$message({
+                            type: 'warning',
+                            message: '已取消'
+                        });
+                    });
+                }
+            }
+
+
         }
     },
 }
@@ -364,6 +402,8 @@ export default {
     }
 
     .searchBox {
+        margin-right: 100px;
+
         .searchTitle {
             padding-bottom: 10px;
             font-family: Microsoft YaHei, Microsoft YaHei;
@@ -374,7 +414,7 @@ export default {
         }
 
         .el-select {
-            width: 300px;
+            // width: 300px;
             display: inline-block;
             position: relative;
         }
@@ -385,10 +425,11 @@ export default {
         padding-top: 28px;
 
         button {
-            width: 120px;
+            // width: 120px;
             height: 38px;
             border: none;
             border-radius: 8px;
+            padding: 0 30px;
         }
 
         .search {

+ 265 - 68
src/views/crawler/webCrawlerListEdit.vue

@@ -8,11 +8,11 @@
                 <el-checkbox v-model="checked" class="links">引用外链</el-checkbox>
                 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
                     <el-form-item label="资讯题目:" prop="title">
-                        <el-input v-model="ruleForm.title" placeholder="请输入资讯题目" maxlength="26"
+                        <el-input v-model="ruleForm.title" placeholder="请输入资讯题目" maxlength="500"
                             show-word-limit></el-input>
                     </el-form-item>
-                    <el-form-item label="外链地址:" prop="title">
-                        <el-input v-model="ruleForm.url" placeholder="请输入外链地址(即外链网站URL链接)" maxlength="26"
+                    <el-form-item v-show="this.checked" label="外链地址:" prop="title">
+                        <el-input v-model="ruleForm.url" placeholder="请输入外链地址(即外链网站URL链接)" maxlength="50"
                             show-word-limit></el-input>
                     </el-form-item>
                     <el-form-item label="导航池名称:" prop="name">
@@ -23,8 +23,10 @@
                     </el-form-item>
                     <el-form-item label="推荐等级:" prop="grade">
                         <el-select v-model="ruleForm.grade" placeholder="请选择推荐等级">
-                            <el-option label="区域一" value="shanghai"></el-option>
-                            <el-option label="区域二" value="beijing"></el-option>
+                            <el-option v-for="item in options" :key="item.value" :label="item.label"
+                                :value="item.value">
+                            </el-option>
+
                         </el-select>
                     </el-form-item>
                     <!-- 缩略图 -->
@@ -61,7 +63,7 @@
                         </el-tooltip>
                     </el-form-item>
                     <el-form-item label="资讯描述:" prop="desc" class="desc">
-                        <el-input type="textarea" v-model="ruleForm.desc" placeholder="请输入资讯的描述..." maxlength="300"
+                        <el-input type="textarea" v-model="ruleForm.desc" placeholder="请输入资讯的描述..." maxlength="500"
                             resize="none" show-word-limit></el-input>
                         <el-tooltip placement="top-start">
                             <div slot="content">
@@ -72,8 +74,14 @@
                         </el-tooltip>
                     </el-form-item>
                     <!-- 富文本 -->
-                    <el-form-item label="资讯内容:" prop="content">
-                        <!-- <div class="editor-container">
+                    <!-- <div class="QuillTitle">
+                        <span>* </span>资讯内容:
+                        <div @click="toggleSourceMode" class="QuillModelBtn">
+                            {{ showHtml ? '切换到编辑模式' : '切换到源码模式' }}
+                        </div>
+                    </div>
+                    <el-form-item label="" prop="content">
+                        <div class="editor-container">
                             <div v-if="showHtml">
                                 <textarea v-model="editorHtml" style="width: 100%; height: 400px;"></textarea>
                             </div>
@@ -81,52 +89,49 @@
                                 <quill-editor ref="quillEditor" v-model="form.content" :options="editorOptions"
                                     class="my-quill-editor" />
                             </div> -->
-                        <!-- 多图上传隐藏的input -->
-                        <!-- <input type="file" ref="multiFileInput" @change="handleMultipleFiles" multiple hidden
+                            <!-- 多图上传隐藏的input -->
+                            <!-- <input type="file" ref="multiFileInput" @change="handleMultipleFiles" multiple hidden
                                 accept="image/jpeg, image/png" />
-                        </div> -->
+                        </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>
                     </el-form-item>
-                    <el-form-item label="是否原创:" prop="original">
-                        <el-radio-group v-model="ruleForm.original">
-                            <el-radio label="否"></el-radio>
-                            <el-radio label="是"></el-radio>
-                        </el-radio-group>
-                    </el-form-item>
-                    <!-- 浏览量 -->
                     <el-form-item label="浏览量:" prop="">
                         <el-input-number v-model="ruleForm.count" @change="handleChange" :min="1" :max="10"
                             label="描述文字"></el-input-number>
                     </el-form-item>
-                    <el-form-item label="来源链接:" prop="link">
+                    <el-form-item label="是否原创:" prop="original">
+                        <el-radio v-model="ruleForm.original" label="true">是</el-radio>
+                        <el-radio v-model="ruleForm.original" label="false">否</el-radio>
+                    </el-form-item>
+                    <!-- 浏览量 -->
+
+                    <el-form-item v-show="this.ruleForm.original == 'false'" label="来源链接:" prop="link">
                         <el-input v-model="ruleForm.link" placeholder="请输入完整的资讯来源链接。"></el-input>
                     </el-form-item>
-                    <el-form-item label="来源:" prop="source">
+                    <el-form-item v-show="this.ruleForm.original == 'false'" label=" 来源:" prop="source">
                         <el-input v-model="ruleForm.source" placeholder="请输入资讯来源,如:XX市农业农村局。"></el-input>
-                        <p class="tips">( 同意《免责声明》:
-                            本文来源于网络转载,仅供学习交流使用,不构成商业目的。版权归原作者所有,如设计作品内容,版权和其他问题,请在30天内与本网联系,我们将第一时间处理。)</p>
                     </el-form-item>
+                    <div class="disclaimerBox" v-show="this.ruleForm.original == 'false'">
+                        <div class="disclaimerTitle">
+                            <img src="@/assets/public/check.png" />同意《免责声明》:
+                            <!-- <el-checkbox v-model="disclaimer" disabled="disabled"></el-checkbox> -->
+                        </div>
+                        <div class="disclaimerText">
+                            本文来源于网络转载,仅供学习交流使用,不构成商业目的。版权归作者所有,如涉及原作者所有,如涉及作品内容、版权和其他问题,请在30日内与本站联系,我们将在第一时间处理。</div>
+                    </div>
                 </el-form>
             </el-row>
             <div class="btn">
-                <button class="cancel">取消</button>
-                <button class="sure">确定</button>
+                <button class="cancel" @click="goCancel">取消</button>
+                <button class="sure" @click="goSubmit">确定</button>
             </div>
         </div>
-        <!--分页 start------------------------------------------------------------>
-        <div class="alignBox">
-            <el-row>
-                <el-col :span="24">
-                    <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
-                        :current-page="currentPage" :page-size="10" layout="total, prev, pager, next, jumper"
-                        :total="40">
-                    </el-pagination>
-                </el-col>
-            </el-row>
-        </div>
-        <!--分页 end------------------------------------------------------------>
         <!--表格内容 end------------------------------------------------------------>
 
     </div>
@@ -138,11 +143,14 @@ import tableTitle from './webCrawlerListEdit/tableTitle.vue';
 //引入公用样式
 import '@/styles/global.less';
 
+import { updateInfo, getOneInfo } from '@/api/crawler'
+
 import { quillEditor } from 'vue-quill-editor';
 import 'quill/dist/quill.snow.css';
 import ImageResize from 'quill-image-resize-module';
 import Quill from 'quill';  // 引入 Quill
 import Delta from 'quill-delta'; // 引入 Delta,用于手动修改文档
+import { options } from 'dropzone';
 
 export default {
     components: {
@@ -155,18 +163,55 @@ export default {
             num: 1,
             checked: false,
             iconSrc: '',
+            data: '',
+
+            activeid: '',  //当前被选中的id
+
+            ruleId: '',
+            source: '',
+
+            // beforeAvatarUpload: '',
+            imgSrc: '',
+            hovering: '',
+            options: [
+                {
+                    value: 0,
+                    label: '未分类'
+                },
+                {
+                    value: 1,
+                    label: '头条'
+                },
+                {
+                    value: 2,
+                    label: '轮播图'
+                },
+                {
+                    value: 3,
+                    label: '推荐图'
+                },
+                {
+                    value: 4,
+                    label: '热点资讯'
+                },
+                {
+                    value: 5,
+                    label: '资讯推荐'
+                },
+            ],
+
             ruleForm: {
                 title: '',     // 资讯题目
                 url: '',       // 外链地址      
                 name: '',      // 导航池名称
-                grade: '',     // 推荐等级
+                grade: [],     // 推荐等级
                 imgSrc: '',    // 缩略图  
                 keywords: '',  // 关键词 
                 desc: '',      // 描述
                 content: '',   // 内容
                 author: '',    // 作者
-                count: '',     // 浏览量
-                original: '',  // 原创
+                count: 1,     // 浏览量
+                original: 'false',  // 原创
                 source: '',    // 来源
                 link: ''       // 来源链接
             },
@@ -175,28 +220,28 @@ export default {
                     { required: true, message: '请输入资讯题目', trigger: 'blur' }
                 ],
                 url: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请输入外链地址', trigger: 'blur' }
                 ],
                 name: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请选择导航池名称', trigger: 'blur' }
                 ],
                 grade: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请选择推荐等级', trigger: 'blur' }
                 ],
                 imgSrc: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请选择缩略图', trigger: 'blur' }
                 ],
                 keywords: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请输入资讯关键词', trigger: 'blur' }
                 ],
                 desc: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请输入资讯描述', trigger: 'blur' }
                 ],
                 content: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请输入资讯内容', trigger: 'blur' }
                 ],
                 author: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
+                    { required: true, message: '请输入发布资讯的作者', trigger: 'blur' }
                 ],
                 count: [
                     { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
@@ -205,42 +250,194 @@ export default {
                     { required: true, message: '请选择资讯推荐等级', trigger: 'blur' }
                 ],
                 link: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'change' }
+                    { required: true, message: '请输入完整的资讯来源链接', trigger: 'blur' }
                 ],
                 source: [
-                    { required: true, message: '请选择资讯推荐等级', trigger: 'change' }
+                    { required: true, message: '请输入资讯来源', trigger: 'blur' }
                 ]
 
-            }
+            },
+            //富文本编辑器配置
+            showHtml: false, //用于保存源码内容
+            editorHtml: '',
+            editorOptions: {
+                placeholder: '请输入内容...',
+                theme: 'snow',  // 主题样式
+                modules: {
+                    toolbar: {
+                        container: [
+                            [{ 'font': [] }],                                // 字体
+                            [{ 'header': [1, 2, 3, 4, 5, 6, false] }],       // 标题
+                            [{ 'size': ['small', false, 'large', 'huge'] }],  // 字体大小
+                            ['bold', 'italic', 'underline', 'strike'],        // 加粗、斜体、下划线、删除线
+                            [{ 'color': [] }, { 'background': [] }],          // 文字颜色、背景颜色
+                            [{ 'script': 'sub' }, { 'script': 'super' }],     // 上标、下标
+                            [{ 'list': 'ordered' }, { 'list': 'bullet' }],     // 列表
+                            [{ 'indent': '-1' }, { 'indent': '+1' }],          // 缩进
+                            [{ 'align': [] }],                                // 对齐方式
+                            ['blockquote', 'code-block'],                     // 引用、代码块
+                            ['link', 'image', 'video'],                       // 链接、图片、视频
+                            ['clean'],
+                            [{ 'html': true }]  // 添加自定义按钮的占位符
+                        ],
+                        handlers: {
+                            image: () => {
+                                this.handleImageClick();
+                            },
+                            showHtml: function () {
+                                this.$emit('toggleSourceMode');
+                            }
+                        }
+                    },
+                    imageResize: {
+                        displayStyles: {
+                            backgroundColor: 'black',
+                            border: 'none',
+                            color: 'white'
+                        },
+                        modules: ['Resize', 'DisplaySize', 'Toolbar']  // 启用不同的调整方式
+                    }
+                }
+            },
+            //1.4图片上传
+            imgUrl: "",//在页面上显示缩略图
+            //获取父级导航池
+            parentKey: 0,//获取父级导航
+            parentData: {
+                checkStrictly: true,
+                lazy: true,
+                async lazyLoad(node, resolve) {
+                    const { level, data } = node;
+                    if (data && data.children && data.children.length !== 0) {
+                        return resolve(node)
+                    }
+                    console.log(level)
+                    let parentId = level == 0 ? 0 : data.value
+                    let parames = {
+                        'pid': parentId
+                    }
+                    self.$store.dispatch('pool/categoryList', parames).then(res => {
+                        if (res.data) {
+                            const nodes = res.data.map(item => ({
+                                value: item.id,
+                                label: item.name,
+                                leaf: level >= 3,
+                                children: []
+                            }))
+                            resolve(nodes)
+                        }
+                    })
+                }
+            },
         }
     },
     methods: {
-        // 提交表单
-        submitForm() {
-            
-        },
-        //取消添加或编辑
-        cancelForm() {
-            this.dialogTableVisible = false
+
+        beforeAvatarUpload(file) {
+            const isJPG = file.type === 'image/jpeg';
+            const isPNG = file.type === 'image/png';
+            const isLt2M = file.size / 1024 / 1024 < 2;
+
+            if (!isJPG && !isPNG) {
+                this.$message.error('上传缩略图只能是 JPG 或 PNG 格式!');
+                return false;
+            }
+            if (!isLt2M) {
+                this.$message.error('上传缩略图大小不能超过 2MB!');
+                return false;
+            }
+
+            const formData = new FormData();
+            formData.append('file', file);
+
+            this.$store.dispatch('pool/uploadFile', formData).then(res => {
+                this.imgUrl = res.data.imgUrl;//显示缩略图
+                this.form.imgurl = res.data.imgUrl;//提供表单地址
+                console.log(res.data.imgUrl)
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '网络错误,请重试!'
+                });
+            })
+
+            // 阻止默认的上传行为
+            return false;
         },
-        submitForm(formName) {
-            this.$refs[formName].validate((valid) => {
-                if (valid) {
-                    alert('submit!');
-                } else {
-                    console.log('error submit!!');
-                    return false;
+        // 提交表单
+        goSubmit() {
+            updateInfo({
+                art_id: this.activeid,
+                title: this.ruleForm.title,
+                level: this.ruleForm.grade,
+                imgurl: this.ruleForm.imgSrc,
+                keyword: this.ruleForm.keywords,
+                introduce: this.ruleForm.desc,
+                content: this.ruleForm.content,
+                author: this.ruleForm.author,
+                hits: this.ruleForm.count,
+                is_original: this.ruleForm.original == 'false' ? 0 : 1, //是否原创
+                fromurl: this.ruleForm.link, //来源链接
+                copyfrom: this.ruleForm.source, //来源
+                islink: this.checked == false ? 0 : 1,
+                linkurl: this.ruleForm.url,
+            }).then(data => {
+                console.log(data);
+                if (data.code == 200) {
+                    this.$message({
+                        message: "修改成功",
+                        type: "success"
+                    })
+                    this.$router.push(`/webCrawlerList?id=${this.ruleId}&source=${this.source}`)
                 }
-            });
+                if (data.code == 0) {
+                    this.$message({
+                        message: data.message,
+                        type: "error"
+                    })
+                }
+            })
         },
-        resetForm(formName) {
-            this.$refs[formName].resetFields();
+        //取消添加或编辑
+        goCancel() {
+            this.$message({
+                message: "已取消修改",
+                type: "error"
+            })
+            this.$router.push(`/webCrawlerList?id=${this.ruleId}&source=${this.source}`)
         },
+        //浏览量
         handleChange(value) {
             console.log(value);
+            this.ruleForm.count = value
         }
     },
-    
+    mounted() {
+        this.ruleId = this.$route.query.ruleId
+        this.source = this.$route.query.source
+
+        this.activeid = this.$route.query.id
+        console.log(this.$route.query.id);
+
+
+        getOneInfo({
+            art_id: this.activeid
+        }).then(data => {
+            console.log(data);
+            this.ruleForm.title = data.data.title
+            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.ruleForm.keywords = data.data.keyword
+            this.ruleForm.desc = data.data.introduce
+            this.ruleForm.content = data.data.content  //内容
+            this.ruleForm.author = data.data.author
+            this.ruleForm.count = data.data.hits
+            this.ruleForm.source = data.data.source
+            this.ruleForm.link = data.data.copyfrom
+        })
+    }
 }
 </script>
 

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 662 - 150
src/views/crawler/webRule.vue


Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio