Explorar o código

修改bug

修改bug
dangyunlong hai 1 mes
pai
achega
473b936511

+ 13 - 1
src/styles/global.less

@@ -73,7 +73,7 @@
   align-items: center;
   align-items: center;
   justify-content: center;
   justify-content: center;
 }
 }
-.listDeleteBtn,.listEditBtn,.listMainBtn,.listLinkBtn,.listUpBtn {
+.listDeleteBtn,.listEditBtn,.listMainBtn,.listUpBtn {
   width:70px;
   width:70px;
   height:28px;
   height:28px;
   line-height:28px;
   line-height:28px;
@@ -85,6 +85,18 @@
     margin-right:8px;
     margin-right:8px;
   }
   }
 }
 }
+.listLinkBtn {
+  width:120px;
+  height:28px;
+  line-height:28px;
+  text-align:center;
+  border-radius: 8px;
+  margin-left:10px;
+  cursor:pointer;
+  i {
+    margin-right:8px;
+  }
+}
 .listDeleteBtn{
 .listDeleteBtn{
   color:#CC5F5F;
   color:#CC5F5F;
   background:@deleteBg;
   background:@deleteBg;

+ 1 - 1
src/views/news/NewList.vue

@@ -82,7 +82,7 @@
             <el-table-column prop="author" label="作者" width=""></el-table-column>
             <el-table-column prop="author" label="作者" width=""></el-table-column>
             <el-table-column prop="created_at" label="创建时间" width=""></el-table-column>
             <el-table-column prop="created_at" label="创建时间" width=""></el-table-column>
             <el-table-column prop="updated_at" label="修改时间" width=""></el-table-column>
             <el-table-column prop="updated_at" label="修改时间" width=""></el-table-column>
-            <el-table-column prop="status" label="状态" width="" v-if="$store.state.user.usertype != 10000">
+            <el-table-column prop="status" label="状态" width="" v-if="$store.state.user.usertype == 10000">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <span v-if="scope.row.status==404">404</span>
                 <span v-if="scope.row.status==404">404</span>
                 <el-switch
                 <el-switch

+ 106 - 0
src/views/news/components/CityCascader.vue

@@ -0,0 +1,106 @@
+<template>
+  <el-cascader
+    :key="cascaderKey"
+    v-model="internalValue"
+    placeholder="请选择地址.."
+    :props="SearchCityData"
+    filterable
+    clearable
+    @change="handleChange">
+  </el-cascader>
+</template>
+
+<script>
+export default {
+  props: {
+    value: { // 接收外部传递的 v-model 值
+      type: [Array, String], // 允许传入数组或字符串类型的数据
+      default: () => [],
+    },
+  },
+  data() {
+    let self = this;
+    return {
+      internalValue: [], // 用于与级联选择器进行双向绑定的内部数据
+      cascaderKey: 0, // 用于强制刷新 cascader
+      SearchCityData: {
+        checkStrictly: true,
+        lazy: true,
+        async lazyLoad(node, resolve) {
+          const { level, data } = node;
+          let parentId = level == 0 ? 0 : data.value;
+          let parames = {
+            pid: parentId,
+          };
+          self.$store
+            .dispatch("pool/getcityList", parames)
+            .then((res) => {
+              if (res.data) {
+                const nodes = res.data.map((item) => ({
+                  value: item.id,
+                  label: item.name,
+                  leaf: level >= 3,
+                  children: [],
+                }));
+                resolve(nodes);
+              }
+            })
+            .catch(() => {
+              this.$message({
+                type: "info",
+                message: "网络错误,请重试!",
+              });
+            });
+        },
+      },
+    };
+  },
+  watch: {
+    value: {
+      immediate: true, // 组件挂载时立即执行
+      handler(newVal) {
+        try {
+          const parsedValue = Array.isArray(newVal) ? newVal : JSON.parse(newVal);
+          this.internalValue = parsedValue; // 设置内部值
+          if (parsedValue.length) {
+            this.loadCascaderPath(parsedValue); // 动态加载回显的路径
+          }
+        } catch (error) {
+          console.error("无法解析传入的值:", error);
+          this.internalValue = []; // 如果解析失败,重置为默认空数组
+        }
+      },
+    },
+  },
+  methods: {
+    handleChange(value) {
+      // 当选择变化时,向父组件发送更新的值
+      this.$emit("input", value); // v-model 双向绑定
+      this.$emit("update-city-id", value); // 额外事件,方便父组件监听
+    },
+    async loadCascaderPath(path) {
+      for (let i = 0; i < path.length; i++) {
+        const parentId = path[i - 1] || 0; // 获取当前层级的父级ID
+        const level = i; // 当前层级的索引
+        await this.$store.dispatch('pool/getcityList', { pid: parentId })
+          .then((res) => {
+            const nodes = res.data.map(item => ({
+              value: item.id,
+              label: item.name,
+              leaf: level >= 3, // 假设4层结构,设置叶子节点标记
+            }));
+            // 级联选择器加载数据
+            if (level === path.length - 1) {
+              this.internalValue = path; // 确保最后一级路径正确设置
+              this.cascaderKey += 1; // 强制刷新 cascader
+            }
+          });
+      }
+    },
+  },
+};
+</script>
+
+<style scoped>
+/* 可根据需要自定义样式 */
+</style>

+ 71 - 20
src/views/news/creatNews.vue

@@ -55,6 +55,12 @@
                     :props="parentData_2" filterable clearable></el-cascader>
                     :props="parentData_2" filterable clearable></el-cascader>
                 </el-form-item>
                 </el-form-item>
               </div>
               </div>
+              <el-form-item label="行政区划:" class="custom-align-right"  prop="city_arr_id">
+                <CityCascader v-model="form.city_arr_id" @update-city-id="update_city_arr_id"></CityCascader>
+              </el-form-item>
+              <el-form-item label="行政职能:" class="custom-align-right"  prop="department_arr_id">
+                <el-cascader :key="searchDepartmentKey" v-model="form.department_arr_id" placeholder="选择导航池所属行政区划" :props="searchDepartmentData" filterable clearable></el-cascader>
+              </el-form-item>
               <el-form-item label="推荐等级:" class="custom-align-right">
               <el-form-item label="推荐等级:" class="custom-align-right">
                 <el-select v-model="form.level" clearable placeholder="请选择推荐等级..">
                 <el-select v-model="form.level" clearable placeholder="请选择推荐等级..">
                   <el-option label="头条" :value="1"></el-option>
                   <el-option label="头条" :value="1"></el-option>
@@ -166,6 +172,7 @@
                 <el-select v-model="form.status" placeholder="请选择..">
                 <el-select v-model="form.status" placeholder="请选择..">
                   <el-option label="已发布" :value="1"></el-option>
                   <el-option label="已发布" :value="1"></el-option>
                   <el-option label="待发布" :value="0"></el-option>
                   <el-option label="待发布" :value="0"></el-option>
+                  <el-option label="已拒绝" :value="2"></el-option>
                 </el-select>
                 </el-select>
               </el-form-item>
               </el-form-item>
               <el-form-item label="是否开启投票:" prop="is_survey" class="custom-align-right">
               <el-form-item label="是否开启投票:" prop="is_survey" class="custom-align-right">
@@ -221,6 +228,8 @@ import { getWebSiteId, getUseType } from '@/utils/auth'
 import tableTitle from './components/tableTitle';
 import tableTitle from './components/tableTitle';
 //引入公用样式
 //引入公用样式
 import '@/styles/global.less';
 import '@/styles/global.less';
+//城市级联选择器
+import CityCascader from './components/CityCascader';
 
 
 import { quillEditor } from 'vue-quill-editor';
 import { quillEditor } from 'vue-quill-editor';
 import 'quill/dist/quill.snow.css';
 import 'quill/dist/quill.snow.css';
@@ -237,7 +246,8 @@ import 'quill/dist/quill.core.css';
 export default {
 export default {
   components: {
   components: {
     quillEditor,
     quillEditor,
-    tableTitle
+    tableTitle,
+    CityCascader
   },
   },
   data() {
   data() {
 
 
@@ -284,12 +294,15 @@ export default {
         user_type: "??",//判断用户类型'
         user_type: "??",//判断用户类型'
         cat_arr_id: 0,//导航池名称
         cat_arr_id: 0,//导航池名称
         nav_add_pool_id: [],//导航池子级
         nav_add_pool_id: [],//导航池子级
+        city_arr_id: [],//行政区划
+        city_id:"",//区划最后一个数字
+        department_arr_id:[],//行政职能部门
+        department_id:"",//部门最后一个数字
         //1.1使用了外链
         //1.1使用了外链
         title: '',//资讯标题
         title: '',//资讯标题
         islink: 0,//是否使用外链 0非 1是
         islink: 0,//是否使用外链 0非 1是
         linkurl: "",//外链地址
         linkurl: "",//外链地址
         //1.2没有使用外链
         //1.2没有使用外链
-        cat_arr_id: '',//导航池名称
         level: "",//推荐等级
         level: "",//推荐等级
         imgurl: "",//缩略图
         imgurl: "",//缩略图
         keyword: "",//关键词
         keyword: "",//关键词
@@ -323,6 +336,10 @@ export default {
         keyword: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         keyword: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         //描述不能为空
         //描述不能为空
         introduce: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         introduce: [{ required: true, trigger: 'blur', validator: validateEmpty }],
+        //行政区划
+        city_arr_id: [{ required: true, trigger: 'blur', validator: validateArray }],
+        //行政职能
+        department_arr_id: [{ required: true, trigger: 'blur', validator: validateArray }],
         //内容不能为空
         //内容不能为空
         content: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         content: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         //作者不能为空
         //作者不能为空
@@ -418,7 +435,6 @@ export default {
           })
           })
         }
         }
       },
       },
-
       parentKey_2: 0,//获取父级导航 
       parentKey_2: 0,//获取父级导航 
       parentData_2: {
       parentData_2: {
         checkStrictly: true,
         checkStrictly: true,
@@ -428,9 +444,7 @@ export default {
           if (data && data.children && data.children.length !== 0) {
           if (data && data.children && data.children.length !== 0) {
             return resolve(node)
             return resolve(node)
           }
           }
-
           let parentId;
           let parentId;
-
           if (self.ifwebsitId == true) {
           if (self.ifwebsitId == true) {
             console.log("网站选择已经改变!")
             console.log("网站选择已经改变!")
             parentId = 0;
             parentId = 0;
@@ -440,7 +454,6 @@ export default {
             parentId = level == 0 ? 0 : data.value;
             parentId = level == 0 ? 0 : data.value;
             self.ifwebsitId = false;
             self.ifwebsitId = false;
           }
           }
-
           console.log(123123)
           console.log(123123)
           console.log(self.form.web_site_id)
           console.log(self.form.web_site_id)
           // if(data!=undefined){
           // if(data!=undefined){
@@ -448,14 +461,11 @@ export default {
           // }else{ 
           // }else{ 
           //   parentId = self.creatNews_pid_num.toString();
           //   parentId = self.creatNews_pid_num.toString();
           // }
           // }
-
           let parames = {
           let parames = {
             'website_id': self.form.web_site_id,
             'website_id': self.form.web_site_id,
             'pid': parentId
             'pid': parentId
           }
           }
-
           self.$store.dispatch('pool/get_creatNews_nav_son_actions', parames).then(res => {
           self.$store.dispatch('pool/get_creatNews_nav_son_actions', parames).then(res => {
-
             if (res.data) {
             if (res.data) {
               const nodes = res.data.map(item => ({
               const nodes = res.data.map(item => ({
                 value: item.category_id,
                 value: item.category_id,
@@ -468,6 +478,34 @@ export default {
           })
           })
         }
         }
       },
       },
+      //行政职能部门
+      searchDepartmentKey:0, //列表缓存key
+      searchDepartmentData: {
+        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/getDepartment',parames).then(res=> {
+            if (res.data) {
+              const nodes = res.data.map(item => ({
+                value: item.id,
+                label: item.name,
+                leaf: level >= 3,
+                children: []
+              }))
+              resolve(nodes)
+            }
+          })
+        }
+      },
 
 
       inputList: [
       inputList: [
         { value: '' }
         { value: '' }
@@ -476,8 +514,6 @@ export default {
     };
     };
 
 
   },
   },
-
-
   methods: {
   methods: {
     //---------------------------
     //---------------------------
     addInput(index) {
     addInput(index) {
@@ -531,7 +567,7 @@ export default {
     },
     },
     //1.2 提交表单
     //1.2 提交表单
     addToServe() {
     addToServe() {
-
+      //判断是否为外链
       if (this.form.islink == false) {
       if (this.form.islink == false) {
         if (this.form.is_survey == 1) {
         if (this.form.is_survey == 1) {
           const hasEmptyInput = this.inputList.some(input => input.value === '');
           const hasEmptyInput = this.inputList.some(input => input.value === '');
@@ -552,12 +588,6 @@ export default {
           this.form.suvey_array = JSON.stringify(inputLists);
           this.form.suvey_array = JSON.stringify(inputLists);
         }
         }
       }
       }
-
-      // console.log('提交的数据:', this.inputList.map(input => input.value));
-      // this.form.suvey_array
-      // return false;
-      //提交之前先判断是否为外链
-      //如果使用了外链,清理掉除了外链以外的内容
       if (this.form.islink == true) {
       if (this.form.islink == true) {
         this.form.islink = 1;
         this.form.islink = 1;
         this.cleatForm(1)
         this.cleatForm(1)
@@ -568,6 +598,13 @@ export default {
       if (this.form.level == "") {
       if (this.form.level == "") {
         this.form.level = 0;
         this.form.level = 0;
       }
       }
+      //取出行政职能和行政区划数组的最后一个数字
+      this.form.department_id = this.form.department_arr_id[this.form.department_arr_id.length - 1];
+      this.form.city_id = this.form.city_arr_id[this.form.city_arr_id.length - 1];
+      //将department_id和city_id转换为字符串  
+      this.form.department_arr_id = JSON.stringify(this.form.department_arr_id);
+      this.form.city_arr_id = JSON.stringify(this.form.city_arr_id);
+
       //先进行验证
       //先进行验证
       this.$refs.form.validate(valid => {
       this.$refs.form.validate(valid => {
         if (valid) {
         if (valid) {
@@ -633,6 +670,11 @@ export default {
         this.form.status = "";
         this.form.status = "";
       }
       }
     },
     },
+    //1.4更新详细地址
+    update_city_arr_id(value){
+      console.log("行政区划ID已更新:", value);
+      this.form.city_arr_id = value;
+    },
     //提交表单 end ------------------------------------------------------------>
     //提交表单 end ------------------------------------------------------------>
 
 
     //2.跳转操作 start ------------------------------------------------------------>
     //2.跳转操作 start ------------------------------------------------------------>
@@ -686,6 +728,11 @@ export default {
         this.loadCascaderPath(this.form.cat_arr_id); // 加载路径数据
         this.loadCascaderPath(this.form.cat_arr_id); // 加载路径数据
         this.parentKey_2 += 1; // 触发级联选择器重新加载
         this.parentKey_2 += 1; // 触发级联选择器重新加载
         this.loadCascaderPath(this.form.cat_arr_id); // 加载路径数据
         this.loadCascaderPath(this.form.cat_arr_id); // 加载路径数据
+        //回显行政区划
+        this.form.city_arr_id = JSON.parse(res.data.city_arr_id);
+        //回显行政职能
+        this.searchDepartmentKey += 1;
+        this.form.department_arr_id = JSON.parse(res.data.department_arr_id);
         //回显其他数据
         //回显其他数据
         this.form.imgurl = res.data.imgurl;
         this.form.imgurl = res.data.imgurl;
         this.imgUrl = res.data.imgurl;
         this.imgUrl = res.data.imgurl;
@@ -739,7 +786,6 @@ export default {
     },
     },
     //1.3提交修改
     //1.3提交修改
     editToServe() {
     editToServe() {
-
       //不使用外联 验证投票逻辑
       //不使用外联 验证投票逻辑
       if (this.form.islink == false) {
       if (this.form.islink == false) {
         if (this.form.is_survey == 1) {
         if (this.form.is_survey == 1) {
@@ -761,7 +807,6 @@ export default {
           this.form.suvey_array = JSON.stringify(inputLists);
           this.form.suvey_array = JSON.stringify(inputLists);
         }
         }
       }
       }
-
       console.log(this.form)
       console.log(this.form)
       if (this.form.islink == 1) {
       if (this.form.islink == 1) {
         this.cleatForm(1)
         this.cleatForm(1)
@@ -770,6 +815,12 @@ export default {
       if (this.form.level == "") {
       if (this.form.level == "") {
         this.form.level = 0;
         this.form.level = 0;
       }
       }
+      //取出行政职能和行政区划数组的最后一个数字
+      this.form.department_id = this.form.department_arr_id[this.form.department_arr_id.length - 1];
+      this.form.city_id = this.form.city_arr_id[this.form.city_arr_id.length - 1];
+      //将department_id和city_id转换为字符串  
+      this.form.department_arr_id = JSON.stringify(this.form.department_arr_id);
+      this.form.city_arr_id = JSON.stringify(this.form.city_arr_id);
       //添加要修改的id
       //添加要修改的id
       this.form.id = this.editId;
       this.form.id = this.editId;
       //先进行验证
       //先进行验证

+ 219 - 21
src/views/news/examine.vue

@@ -80,7 +80,7 @@
               </template>
               </template>
             </el-table-column>
             </el-table-column>
             <el-table-column prop="author" label="作者" width=""></el-table-column>
             <el-table-column prop="author" label="作者" width=""></el-table-column>
-            <el-table-column prop="created_at" label="创建时间" width=""></el-table-column>
+            <!-- <el-table-column prop="created_at" label="创建时间" width=""></el-table-column> -->
             <el-table-column prop="updated_at" label="修改时间" width=""></el-table-column>
             <el-table-column prop="updated_at" label="修改时间" width=""></el-table-column>
             <el-table-column prop="status" label="审核状态" width="100">
             <el-table-column prop="status" label="审核状态" width="100">
               <template slot-scope="scope">
               <template slot-scope="scope">
@@ -94,14 +94,15 @@
                 ></el-switch> -->
                 ></el-switch> -->
                 <span v-if="scope.row.status==0">待审核</span>
                 <span v-if="scope.row.status==0">待审核</span>
                 <span v-if="scope.row.status==1">已审核</span>
                 <span v-if="scope.row.status==1">已审核</span>
+                <span v-if="scope.row.status==2">已拒绝</span>
               </template>
               </template>
             </el-table-column>
             </el-table-column>
-            <el-table-column fixed="right" label="操作" width="330" header-align="center">
+            <el-table-column fixed="right" label="操作" width="360" header-align="center">
               <template slot-scope="scope">
               <template slot-scope="scope">
                 <div class="listBtnBox">
                 <div class="listBtnBox">
-                  <div class="listLinkBtn" @click="getUpRow(scope.row.id, tableData)"><i class="el-icon-full-screen"></i>反选</div>
+                  <div class="listLinkBtn" @click="selectRow(scope.row.cat_arr_id, scope.row)"><i class="el-icon-full-screen"></i>站点选择</div>
                   <div class="listMainBtn" @click="getUpRow(scope.row.id, tableData)" v-if="scope.row.status==0"><i class="el-icon-check"></i>审核</div>
                   <div class="listMainBtn" @click="getUpRow(scope.row.id, tableData)" v-if="scope.row.status==0"><i class="el-icon-check"></i>审核</div>
-                  <div class="listUpBtn" @click="getUpRow(scope.row.id, tableData)" v-else><i class="el-icon-refresh-right"></i>撤回</div>
+                  <div class="listUpBtn" @click="returnRow(scope.row.id, tableData)" v-else><i class="el-icon-refresh-right"></i>撤回</div>
                   <div class="listDeleteBtn" @click="deleteRow(scope.row.id, tableData)"><i class="el-icon-delete"></i>移除</div>
                   <div class="listDeleteBtn" @click="deleteRow(scope.row.id, tableData)"><i class="el-icon-delete"></i>移除</div>
                   <div class="listEditBtn" @click="goEdit(scope.row.id, tableData)"><i class="el-icon-edit-outline"></i>编辑</div>
                   <div class="listEditBtn" @click="goEdit(scope.row.id, tableData)"><i class="el-icon-edit-outline"></i>编辑</div>
                 </div>
                 </div>
@@ -121,6 +122,45 @@
     </div>
     </div>
     <!--分页 end------------------------------------------------------------>
     <!--分页 end------------------------------------------------------------>
     <!--表格内容 end------------------------------------------------------------>
     <!--表格内容 end------------------------------------------------------------>
+
+    <!--弹出框1:外部表单弹出框 start------------------------------------------------------------>
+    <el-dialog title="请输入驳回理由" :visible.sync="examineWindow" :close-on-click-modal="false">
+      <el-form :model="form" ref="form" :rules="formRules" label-position="left">
+        <div class="formDiv">
+          <el-form-item label="驳回原因:" :label-width="formLabelWidth" prop="reason" class="custom-align-right">
+            <el-input type="textarea" v-model="form.reason" class="custom-textarea" placeholder="请输入驳回原因" :rows="3"></el-input>
+          </el-form-item>
+        </div>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <div>
+          <el-button type="info" @click="examineWindow=false">取消</el-button>
+          <el-button type="primary" @click="examineToServe">确定</el-button>
+        </div>
+      </div>
+    </el-dialog>
+    <!--弹出框1:外部表单弹出框 end------------------------------------------------------------>
+
+    <!--弹出框2:选择要发布的网站 start------------------------------------------------------------>
+    <el-dialog title="请选择要发布的网站" :visible.sync="selectStatusWindow" :close-on-click-modal="false">
+      <el-form label-position="left" >
+        <div class="formDiv">
+          <el-table v-loading="loading" ref="multipleTable" :data="webSiteData" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
+            <el-table-column type="selection" width="55"></el-table-column>
+            <el-table-column prop="website_id" label="网站id"></el-table-column>
+            <el-table-column prop="website_name" label="网站名称"></el-table-column>
+          </el-table>
+        </div>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <div>
+          <el-button type="info" @click="selectStatusWindow=false">取消</el-button>
+          <el-button type="primary" @click="selectWebSiteToServe">确定</el-button>
+        </div>
+      </div>
+    </el-dialog>
+    <!--弹出框2:选择要发布的网站 end------------------------------------------------------------>
+    
   </div>
   </div>
 </template>
 </template>
 
 
@@ -135,11 +175,27 @@ export default {
     tableTitle,//表格标题
     tableTitle,//表格标题
   },
   },
   data() {
   data() {
+    //0.全局操作 start ------------------------------------------------------------>
+    let self = this;
+    //表单验证
+    const validateEmpty = (rule, value, callback) => {
+      if (value == '') {
+        callback(new Error('该项不能为空!'))
+      } else {
+        callback()
+      }
+    }
+    //0.全局操作 end ------------------------------------------------------------>
     return {
     return {
       //1.列表和分页相关 start ------------------------------------------------------------>
       //1.列表和分页相关 start ------------------------------------------------------------>
       tableDivTitle:"资讯列表",
       tableDivTitle:"资讯列表",
       tableData:[],//内容
       tableData:[],//内容
+      webSiteData: [],//可选网站列表
       editId:0,//要修改的网站id
       editId:0,//要修改的网站id
+      editStatus:0,//要修改的网站状态
+      selectStatusWindow:false,//反选窗口
+      examineWindow:false,//审核窗口
+      formLabelWidth:"120px",//表单label宽度
       getApiData:{
       getApiData:{
         title:"",//标题
         title:"",//标题
         category_name:"",//导航池id
         category_name:"",//导航池id
@@ -149,6 +205,20 @@ export default {
         page:1,//当前是第几页
         page:1,//当前是第几页
         pageSize:10,//一共多少条
         pageSize:10,//一共多少条
       },
       },
+      //提交驳回
+      form:{
+        reason:""
+      },
+      //选择要发布的网站
+      webSiteForm:{
+        ignore_ids:[]
+      },
+      ids:[],//待选网站列表
+      loading:false,//loading
+      formRules: {
+        //导航池名称不能为空
+        reason: [{ required: true, trigger: 'blur', validator: validateEmpty }],
+      },
       allCount:0,//总条数
       allCount:0,//总条数
       //分页相关 end ------------------------------------------------------------>
       //分页相关 end ------------------------------------------------------------>
     }
     }
@@ -195,30 +265,38 @@ export default {
             type: 'success',
             type: 'success',
             message: '删除成功!'
             message: '删除成功!'
           });
           });
-        }).catch(() => {
-          this.$message({
-            type: 'warning',
-            message: '网络错误,请重试!'
-          });
         })
         })
-      }).catch(() => {
-        this.$message({
-          type: 'warning',
-          message: '已取消删除'
-        });
-      });
+      })
     },
     },
-    //1.3 修改网站状态
+    //1.3 撤回审核
+    returnRow(id){
+      this.$confirm('确定要撤回吗?', '提示', {
+        confirmButtonText: '撤回',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        //撤回,把文章状态修改为0,重新进行审核
+        this.upRow(id,0)
+      })
+    },
+    //1.4 审核温江
     getUpRow(id){
     getUpRow(id){
+      //设置待审核的id
+      this.editId = id;
       console.log(id)
       console.log(id)
       this.$confirm('将此文章通过审核吗?', '提示', {
       this.$confirm('将此文章通过审核吗?', '提示', {
         confirmButtonText: '通过',
         confirmButtonText: '通过',
-        cancelButtonText: '取消',
+        cancelButtonText: '拒绝',
         type: 'warning'
         type: 'warning'
       }).then(() => {
       }).then(() => {
         this.upRow(id,1)
         this.upRow(id,1)
+      }).catch(() => {
+       //输入驳回理由
+       console.log("驳回")
+       this.examineWindow = true;
       })
       })
     },
     },
+    //1.5 修改文章状态
     upRow(id,status){
     upRow(id,status){
       let data = {
       let data = {
         id:id,
         id:id,
@@ -228,24 +306,63 @@ export default {
         if(res.code==200){
         if(res.code==200){
           this.$message({
           this.$message({
             type: 'success',
             type: 'success',
-            message: '已通过审核!'
+            message: '操作成功!'
           });
           });
           this.getData();
           this.getData();
         }
         }
       })
       })
     },
     },
-    //1.4 列表内容分页
+    //提交驳回内容
+    examineToServe(id){
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          let data = {
+            id:this.editId,
+            status:2,//驳回status
+            reason:this.form.reason
+          }
+          this.$store.dispatch('news/upArticleStatus',data).then(res=> {
+            if(res.code==200){
+              this.$message({
+                type: 'success',
+                message: '操作成功!'
+              });
+              this.getData();
+              this.form.reason = "";//清空上一次的输入
+              this.examineWindow = false;
+            }
+          })
+        }else{
+          this.$message.error("驳回理由不能为空!")
+        }
+      })
+    },
+    //1.6 打开反选窗口
+    selectRow(cid,row){
+      console.log(row)
+      this.selectStatusWindow = true;
+      //给与编辑的id
+      this.editId = row.id;
+      //给与编辑的状态
+      this.editStatus = row.status;
+      //把cid转换成数组,然后取出最后一位
+      let cidArr = cid.replace(/[\[\]]/g, '').split(',');
+      // 获取数组的最后一个元素
+      let cidLast = cidArr[cidArr.length - 1];
+      this.getWebsiteNavPoolSite(cidLast,row)
+    },
+    //1.7 列表内容分页
     //直接跳转
     //直接跳转
     handleSizeChange(val) {
     handleSizeChange(val) {
       this.getApiData.page = val;
       this.getApiData.page = val;
       this.getData();
       this.getData();
     },
     },
-    //1.5 点击分页
+    //1.8 点击分页
     handleCurrentChange(val) {
     handleCurrentChange(val) {
       this.getApiData.page = val;
       this.getApiData.page = val;
       this.getData();
       this.getData();
     },
     },
-    //1.6 重置按钮
+    //1.9 重置按钮
     clearSearchList(){
     clearSearchList(){
       this.tableData = [];
       this.tableData = [];
       this.getApiData.title = "";
       this.getApiData.title = "";
@@ -257,6 +374,87 @@ export default {
       this.getApiData.pageSize = 10;
       this.getApiData.pageSize = 10;
       this.getData();
       this.getData();
     },
     },
+    //1.10 获取可选网站列表
+    getWebsiteNavPoolSite(cid,row){
+      this.loading = true;
+      let ignoreIds = JSON.parse(row.ignore_ids);
+      this.webSiteData = [];
+      this.$store.dispatch('news/getWebsiteNavPoolSite',{category_id:cid}).then(res=>{
+        // for(let item of res.data){
+        //   if(item.website_name!=null){
+        //     this.webSiteData.push(item)
+        //   }
+        // }
+        this.webSiteData = res.data;
+        //延迟一会返显,否则可能显示不了
+        if(res.data.length>0&&ignoreIds!=null){
+          setTimeout(()=>{
+            for(let index in this.webSiteData){
+              if(ignoreIds.includes(this.webSiteData[index].website_id)){
+                console.log(1234656)
+                console.log(index)
+                //调用回显方法
+                this.toggleSelection([this.webSiteData[index]])
+              }
+            }
+            this.loading = false;
+          },500)
+        }else{
+          this.loading = false;
+        }
+      })
+    },
+    //1.11 提交选择的网站列表
+    selectWebSiteToServe(id){
+      let ids = [];
+      for(let item of this.ids){
+        ids.push(item.website_id)
+      }
+      //把数组转换为字符串
+      //let idsStr = ids.join(',');
+      //把数组转换为字符串
+      let idsStr = JSON.stringify(ids);
+
+      if(idsStr.length==0){
+        this.$message.error("至少需要选择一个网站!")
+        return;
+      }else{
+        let data = {
+          id:this.editId,
+          ignore_ids:idsStr,
+          status:this.editStatus
+        }
+        this.$store.dispatch('news/upArticleStatus',data).then(res=>{
+          console.log(res)
+          if(res.code==200){
+            this.$message({
+              type: 'success',
+              message: '资讯绑定网站成功!'
+            });
+            this.selectStatusWindow = false;
+            this.getData();
+          }else{
+            this.$message.error(res.data.msg)
+          }
+        })
+      }
+    },
+    //把选择的网站保存到待选择的网站列表
+    handleSelectionChange(val) {
+      console.log(val)
+      this.ids = val;
+    },
+    //回显 选中的方法 
+    toggleSelection(rows) {
+      console.log(rows)
+      if (rows) {
+        rows.forEach(row => {
+          this.$refs.multipleTable.toggleRowSelection(row);
+        });
+      } else {
+        this.$refs.multipleTable.clearSelection();
+      }
+    },
     //列表和分页相关 end ------------------------------------------------------------>
     //列表和分页相关 end ------------------------------------------------------------>
 
 
     //2.添加新闻 start ------------------------------------------------------------>
     //2.添加新闻 start ------------------------------------------------------------>

+ 0 - 13
src/views/role/components/userInvestigate.vue

@@ -1,7 +1,4 @@
 <template>
 <template>
-
-
-
   <div class="mainBox">
   <div class="mainBox">
     <div class="layerBox">
     <div class="layerBox">
       <el-form ref="form" :model="form" :rules="loginRules" class="login-form" autocomplete="on" label-position="left" label-width="120px">
       <el-form ref="form" :model="form" :rules="loginRules" class="login-form" autocomplete="on" label-position="left" label-width="120px">
@@ -130,18 +127,10 @@
             <el-cascader :options="options" :show-all-levels="false" disabled v-else></el-cascader>
             <el-cascader :options="options" :show-all-levels="false" disabled v-else></el-cascader>
             <el-checkbox v-model="isNational" :true-label="1" :false-label="0" class="longTimeCheckbox">全国</el-checkbox>
             <el-checkbox v-model="isNational" :true-label="1" :false-label="0" class="longTimeCheckbox">全国</el-checkbox>
           </el-form-item>
           </el-form-item>
-
-
-  
             <el-form-item label="站点标识:" :label-width="formLabelWidth" prop="sszq" class="custom-align-right">
             <el-form-item label="站点标识:" :label-width="formLabelWidth" prop="sszq" class="custom-align-right">
             <!-- 级联选择器 xx-->
             <!-- 级联选择器 xx-->
-             
             <el-cascader v-model="form.sszq" :options="options_arr" filterable clearable></el-cascader>
             <el-cascader v-model="form.sszq" :options="options_arr" filterable clearable></el-cascader>
- 
           </el-form-item>
           </el-form-item>
-
-
-
           <el-form-item label="有效期:" :label-width="formLabelWidth" prop="timeList" class="custom-align-right">
           <el-form-item label="有效期:" :label-width="formLabelWidth" prop="timeList" class="custom-align-right">
             <el-date-picker
             <el-date-picker
               v-model="timeList"
               v-model="timeList"
@@ -154,11 +143,9 @@
             </el-date-picker>
             </el-date-picker>
             <el-checkbox v-model="form.long_time" :true-label="1" :false-label="0" class="longTimeCheckbox">无限期</el-checkbox>
             <el-checkbox v-model="form.long_time" :true-label="1" :false-label="0" class="longTimeCheckbox">无限期</el-checkbox>
           </el-form-item>
           </el-form-item>
-
           <el-form-item label="籍贯:" :label-width="formLabelWidth" prop="" class="custom-align-right">
           <el-form-item label="籍贯:" :label-width="formLabelWidth" prop="" class="custom-align-right">
             <CityCascader v-model="form.native_place_arr_id" @update-city-id="update_native_place_arr_id"></CityCascader>
             <CityCascader v-model="form.native_place_arr_id" @update-city-id="update_native_place_arr_id"></CityCascader>
           </el-form-item>
           </el-form-item>
-
           <el-form-item label="QQ:" :label-width="formLabelWidth" prop="" class="custom-align-right">
           <el-form-item label="QQ:" :label-width="formLabelWidth" prop="" class="custom-align-right">
             <el-input v-model="form.qq" autocomplete="off" placeholder="请输入QQ号.."></el-input>
             <el-input v-model="form.qq" autocomplete="off" placeholder="请输入QQ号.."></el-input>
           </el-form-item>
           </el-form-item>