Browse Source

Merge branch '12_4_dangyunlong' into dev

Sean 4 tháng trước cách đây
mục cha
commit
d66e3205d6

+ 27 - 0
src/api/chat.js

@@ -190,6 +190,15 @@ export function updateGroup(data) {
     data
   })
 }
+
+//5.8 编辑群成员
+export function updateGroupMembers(data) {
+  return request({
+    url: '/chat/updateGroupMembers',
+    method: 'post',
+    data
+  })
+}
 //5.群聊 end ------------------------------------->
 
 //6.商圈 start ------------------------------------->
@@ -255,4 +264,22 @@ export function getTopicReply(data) {
     data
   })
 }
+
+//6.8 获取话题分类
+export function topicType(data) {
+  return request({
+    url: '/chat/topicType',
+    method: 'post',
+    data
+  })
+}
+
+//6.9 获取话题状态
+export function topicStatus(data) {
+  return request({
+    url: '/chat/topicStatus',
+    method: 'post',
+    data
+  })
+}
 //6.商圈 end ------------------------------------->

+ 29 - 1
src/store/modules/chat.js

@@ -1,7 +1,8 @@
 import {getTalkSessionList,addFriend,getFriendsList,delFriend,updateFriend,getFriendsApplyList,
   applyFriend,isFriend,getConversation,getChatRecords,addGroup,getGroupMembers,searchFriend,getFriendInfo,
   getGroupList,getGroupInfo,joinGroup,getGroupChatRecords,delGroup,updateGroup,
-  getTopicsList,addTopic,getTopicInfo,updateTopic,delTopic,addReply,getTopicReply
+  getTopicsList,addTopic,getTopicInfo,updateTopic,delTopic,addReply,getTopicReply,topicType,
+  topicStatus,updateGroupMembers
 } from '@/api/chat'
 
 const state = {
@@ -214,6 +215,15 @@ const actions = {
       })
     })
   },
+  updateGroupMembers({commit},data) {
+    return new Promise((resolve, reject) => {
+      updateGroupMembers(data).then(response => {
+        resolve(response)
+      }).catch(error => {
+        reject(error)
+      })
+    })
+  },
   //5.群聊 end ------------------------------------->
 
   //6.商圈 start ------------------------------------->
@@ -279,6 +289,24 @@ const actions = {
         reject(error)
       })
     })
+  },
+  topicType({commit},data) {
+    return new Promise((resolve, reject) => {
+      topicType(data).then(response => {
+        resolve(response)
+      }).catch(error => {
+        reject(error)
+      })
+    })
+  },
+  topicStatus({commit},data) {
+    return new Promise((resolve, reject) => {
+      topicStatus(data).then(response => {
+        resolve(response)
+      }).catch(error => {
+        reject(error)
+      })
+    })
   }
   //6.商圈 end ------------------------------------->
 }

+ 11 - 1
src/store/modules/pool.js

@@ -3,7 +3,7 @@ getcityList,uploadFile,getTemplate,addWebsite,getWebsiteInfo,
 updateWebsite,getDepartment,getCategoryList,delCategory,
 getCategoryInfo,categoryList,addCategory,updateCategory,
 getNavWebList,addWebsiteCategory,getWebsiteCategoryList,
-getAdminWebsiteCategory,upWebsiteCategory,
+getAdminWebsiteCategory,upWebsiteCategory,delWebsiteCategory,
 getWebsiteAllCategory,getWebsiteCategoryOnes,upWebsiteCategoryones,
 checkWebsiteUrl,checkWebsiteName} from '@/api/pool'
 
@@ -253,6 +253,16 @@ const actions = {
       })
     })
   },
+  //删除网站导航
+  delWebsiteCategory({commit},data) {
+    return new Promise((resolve, reject) => {
+      delWebsiteCategory(data).then(response => {
+        resolve(response)
+      }).catch(error => {
+        reject(error)
+      })
+    })
+  },
   //网站导航管理 end ---------------------------------------->
 
   //4.关联导航池 start ---------------------------------------->

+ 9 - 8
src/utils/baseUrl.js

@@ -1,11 +1,12 @@
 const URL = {
-  testUrl: 'http://192.168.1.201:9501',//刘佳伟的电脑
-  liuUrl: 'http://192.168.1.127:9501',//刘剑的电脑
-  baseUrl: 'http://183.131.25.186:9501',//测试服务器
-  servUrl: 'https://admin.bjzxtw.org.cn/zxtapi',//服务端
-  //WebsocketUrl: 'ws://192.168.1.201:9506',//老刘websocket地址
-
-  //WebsocketUrl: 'ws://183.131.25.186:9506'//测试服务器websocket地址
+  //baseUrl: 'https://admin.bjzxtw.org.cn/zxtapi',//正式环境
+  baseUrl: 'http://183.131.25.186:9501',//测试环境
+  //baseUrl: 'http://192.168.1.201:9501',//刘佳伟本地环境
+  //baseUrl: 'http://192.168.1.127:9501',//刘剑的本地环境
+  //WebsocketUrl: 'ws://192.168.1.201:9506',//刘佳伟websocket地址
+  //WebsocketUrl: 'ws://192.168.1.127:9506'//刘剑websocket地址
+  //WebsocketUrl: 'https://admin.bjzxtw.org.cn:9506'//正式环境websocket地址
+  WebsocketUrl: 'ws://183.131.25.186:9506'//测试服务器websocket地址
 }
 
-export default URL;
+export default URL;

+ 1 - 5
src/utils/request.js

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

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 150 - 696
src/views/chat/contacts.vue


+ 75 - 177
src/views/chat/creatTopic.vue

@@ -5,11 +5,15 @@
       <el-form :model="form" ref="form" :rules="formRules" label-position="left" label-width="120px">
         <div class="formDiv">
           <div>
-            <el-form-item label="课题名称:" prop="cat_arr_id" class="custom-align-right">
-              <el-cascader :key="parentKey" v-model="form.cat_arr_id" placeholder="请选择课题名称" :props="parentData" filterable clearable></el-cascader>
+            <el-form-item label="课题分类:" prop="type" class="custom-align-right">
+              <el-select v-model="form.type" placeholder="请选择课题分类..">
+                <!-- <el-option label="科研" value="1"></el-option>
+                <el-option label="维权" value="2"></el-option> -->
+                <el-option :label="item.label" :value="item.value" v-for="item in topicType"></el-option>
+              </el-select>
             </el-form-item>  
-            <el-form-item label="课题标题:" prop="keyword" class="custom-align-right">
-              <el-input v-model="form.keyword" autocomplete="off" placeholder="请输入资讯关键词"></el-input>
+            <el-form-item label="课题标题:" prop="title" class="custom-align-right">
+              <el-input v-model="form.title" autocomplete="off" placeholder="请输入课题标题"></el-input>
             </el-form-item>
             <div class="QuillTitle">
               <span>* </span>课题内容:
@@ -17,7 +21,7 @@
                 {{ showHtml ? '切换到编辑模式' : '切换到源码模式' }}
               </div>
             </div>
-            <el-form-item label="" prop="content">
+            <el-form-item label="">
               <div class="editor-container">
                 <div v-if="showHtml">
                   <textarea v-model="editorHtml" style="width: 100%; height: 400px;"></textarea>
@@ -29,18 +33,18 @@
                 <input type="file" ref="multiFileInput" @change="handleMultipleFiles" multiple hidden accept="image/jpeg, image/png" />
               </div>
             </el-form-item>
-            <el-form-item label="建立群聊:" prop="is_original" class="custom-align-right">
-              <el-radio-group v-model="form.is_original">
+            <el-form-item label="建立群聊:" prop="is_group" class="custom-align-right">
+              <el-radio-group v-model="form.is_group" :disabled="editStatus">
                 <el-radio :label="1">是</el-radio>
                 <el-radio :label="0">否</el-radio>
               </el-radio-group>
             </el-form-item>
             <div>
-              <el-form-item label="群聊名称:" prop="copyfrom" class="custom-align-right">
-                <el-input v-model="form.copyfrom" autocomplete="off" placeholder="请输入来源名称"></el-input>
+              <el-form-item label="群聊名称:" prop="group_name" class="custom-align-right" v-if="form.is_group==1">
+                <el-input v-model="form.group_name" autocomplete="off" placeholder="请输入群聊名称" :disabled="editStatus"></el-input>
               </el-form-item>
-              <el-form-item label="作者:" prop="linkurl" class="custom-align-right">
-                <el-input v-model="form.linkurl" autocomplete="off" placeholder="请输入来源链接"></el-input>
+              <el-form-item label="作者:" class="custom-align-right">
+                <el-input v-model="form.author" autocomplete="off" placeholder="请输入作者名"></el-input>
               </el-form-item>
             </div>
           </div>
@@ -50,7 +54,7 @@
     <div class="bottomBtnBox">
       <el-button type="info" @click="returnPage">返回</el-button>
       <el-button type="primary" @click="editToServe" v-if="editStatus==true">确定</el-button>
-      <el-button type="primary" @click="addToServe" v-else>发布</el-button>
+      <el-button type="primary" @click="addToServe" v-else>创建</el-button>
     </div>
   </div>
 </template>
@@ -101,49 +105,21 @@ export default {
       disclaimer:true,//免责声明
       //提交表单
       form: {
-        //1.1使用了外链
-        title: '',//资讯标题
-        islink:0,//是否使用外链 0非 1是
-        linkurl:"",//外链地址
-        //1.2没有使用外链
-        cat_arr_id:'',//导航池名称
-        level:"",//推荐等级
-        imgurl:"",//缩略图
-        keyword:"",//关键词
-        introduce:"",//描述
+        type:"",//课题分类
+        title:"",//课题标题
         content:"",//内容
+        is_group:0,//是否创建群聊
+        group_name:"",//群聊名称
         author:"",//作者
-        hits:"",//浏览量
-        is_original:0,//是否为原创 0非 1是
-        copyfrom:"",//来源名称
-        fromurl:"",//来源地址
-        status:0//状态 0待发布 1已发布 404已删除
       },
+      topicType:[],//课题分类
+      topicStatus:[],//课题状态
       //1.2 表单验证规则
       formRules: {
-        //资讯名称不能为空
         title:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //如果使用了外链,外链地址不能为空
-        linkurl:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //导航池名称不能为空
-        cat_arr_id:[{required:true,trigger:'blur',validator:validateArray}],
-        //推荐等级不能为空
-        //level:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //关键词不能为空
-        keyword:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //描述不能为空
-        introduce:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //内容不能为空
-        content:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //作者不能为空
-        author:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //是否原创不能为空
-        is_original:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //来源名称和地址不能为空
-        copyfrom:[{required:true,trigger:'blur',validator:validateEmpty}],
-        fromurl:[{required:true,trigger:'blur',validator:validateEmpty}],
-        //缩略图不能为空
-        imgUrl:[{required:true,trigger:'blur',validator:validateEmpty}]
+        type:[{required:true,trigger:'blur',validator:validateArray}],
+        is_group:[{required:true,trigger:'blur',validator:validateEmpty}],
+        group_name:[{required:true,trigger:'blur',validator:validateEmpty}],
       },
       //1.3富文本编辑器配置
       showHtml: false, //用于保存源码内容
@@ -187,36 +163,6 @@ export default {
           }
         }
       },
-      //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)
-            }
-          })
-        }
-      },
       //表单项 end ------------------------------------------------------------>
     };
   },
@@ -250,32 +196,22 @@ export default {
           message: '网络错误,请重试!'
         });
       })
-
       // 阻止默认的上传行为
       return false;
     },
     //1.2 提交表单
     addToServe(){
-      //提交之前先判断是否为外链
-      //如果使用了外链,清理掉除了外链以外的内容
-      if(this.form.islink==true){
-        this.form.islink = 1;
-        this.cleatForm(1)
-      }else{
-        this.form.islink = 0;
-      }
-
       //先进行验证
       this.$refs.form.validate(valid => {
         if (valid) {
           //console.log(this.form)
-          this.$store.dispatch('news/addArticle',this.form).then(res=> {
+          this.$store.dispatch('chat/addTopic',this.form).then(res=> {
             //汇报结果
             this.$message({
               type: 'success',
-              message: '已成功添加资讯!'
+              message: '已成功创建商圈!'
             });
-            this.cleatForm(2);
+            this.cleatForm();
             //返回列表页
             this.returnPage()
           }).catch(() => {
@@ -288,47 +224,38 @@ export default {
       })
     },
     //1.3 清理表单
-    cleatForm(type){
-      if(type==1){
-        //使用了外链,进行部分表单清理
-        //this.form.cat_arr_id = "";
-        this.form.level = "";
-        this.form.imgurl = "";
-        this.form.keyword = "";
-        this.form.introduce = "";
-        this.form.content = "";
-        //this.form.author = "";
-        this.form.hits = "";
-        this.form.is_original = "";
-        this.form.copyfrom = "";
-        this.form.fromurl = "";
-        this.form.status = "";
-      }
-      if(type==2){
-        //完全清理表单
-        this.form.title = "";
-        this.form.islink = "";
-        this.form.linkurl = "";
-        this.form.cat_arr_id = "";
-        this.form.level = "";
-        this.form.imgurl = "";
-        this.form.keyword = "";
-        this.form.introduce = "";
-        this.form.content = "";
-        this.form.author = "";
-        this.form.hits = "";
-        this.form.is_original = "";
-        this.form.copyfrom = "";
-        this.form.fromurl = "";
-        this.form.status = "";
-      }
+    cleatForm(){
+      this.form.type = "";
+      this.form.title = "";
+      this.form.content = "";
+      this.form.is_group = "";
+      this.form.group_name = "";
+      this.form.author = "";
+    },
+    //1.4 查询商圈分类
+    getTopicType(){
+      this.$store.dispatch('chat/topicType',this.getApiData).then(res=> {
+        this.topicType = res.data;
+        console.log(this.topicType)
+      }).catch(() => {
+        this.$message.error("查询商圈分类失败!");
+      })
+    },
+    //1.5 查询商圈状态
+    getTopicStatus(){
+      this.$store.dispatch('chat/topicStatus',this.getApiData).then(res=> {
+        this.topicStatus = res.data;
+        console.log(res)
+      }).catch(() => {
+        this.$message.error("查询商圈状态失败!");
+      })
     },
     //提交表单 end ------------------------------------------------------------>
 
     //2.跳转操作 start ------------------------------------------------------------>
     returnPage(){
       this.$router.push({
-        path: '/articleList',
+        path: '/topic',
       });
     },
     //跳转操作 end ------------------------------------------------------------>
@@ -337,50 +264,22 @@ export default {
     //3.1回显数据
     getMainData() {
       let data = {
-        id: this.$route.query.id
+        id: this.$route.query.id + ""
       };
-      this.$store.dispatch('news/getArticleInfo', data).then(res => {
+      this.$store.dispatch('chat/getTopicInfo', data).then(res => {
         console.log(res);
         this.form.title = res.data.title;
-        //判断是否使用了外链
-        if(res.data.islink==1){
-          this.form.islink = true;
-        }else{  
-          this.form.islink = false;
-        }
-        //不是原创的时候显示来源
-        if(res.data.is_original==1){
-          this.form.is_original = 1;
-        }else{
-          this.form.is_original = 0;
-          this.$nextTick(() => {
-            this.form.is_original = 0;
-            console.log('is_original:', this.form.is_original); // 确保值已更新
-          });
-          // <el-radio v-model="form.is_original" label="1">是</el-radio>
-          // <el-radio v-model="form.is_original" label="0">不是</el-radio>
-          this.form.linkurl = res.data.linkurl;
+        this.form.type = res.data.type;
+        this.form.content = res.data.content;
+        //如果已经创建了群聊,阻止其修改
+        if(this.$route.query.id){
+          if(res.data.group_name != null){
+            this.form.is_group = 1;
+            this.form.group_name = res.data.group_name;
+          }
         }
+        this.form.author = res.data.user_name;
         
-
-
-        // 回显导航池
-        this.form.cat_arr_id = Array.isArray(res.data.cat_arr_id) ? res.data.cat_arr_id : JSON.parse(res.data.cat_arr_id);
-        this.parentKey += 1; // 触发级联选择器重新加载
-        this.loadCascaderPath(this.form.cat_arr_id); // 加载路径数据
-
-        this.form.level = res.data.level;
-        this.form.imgurl = res.data.imgurl;
-        this.imgUrl = res.data.imgurl;
-        this.form.keyword = res.data.keyword;
-        this.form.introduce = res.data.introduce;
-        this.form.content = res.data.content;
-        this.form.author = res.data.author;
-        this.form.hits = res.data.hits;
-        this.form.is_original = res.data.is_original;
-        this.form.copyfrom = res.data.copyfrom;
-        this.form.fromurl = res.data.fromurl;
-        this.form.status = res.data.status;
       }).catch(() => {
         this.$message({
           type: 'info',
@@ -411,24 +310,19 @@ export default {
     },
     //1.3提交修改
     editToServe(){
-      //提交之前先判断是否为外链
-      //如果使用了外链,清理掉除了外链以外的内容
-      if(this.form.islink==1){
-        this.cleatForm(1)
-      }
       //添加要修改的id
-      this.form.id = this.editId;
+      this.form.id = this.editId + "";
       //先进行验证
       this.$refs.form.validate(valid => {
         if (valid) {
           //console.log(this.form)
-          this.$store.dispatch('news/updateArticle',this.form).then(res=> {
+          this.$store.dispatch('chat/updateTopic',this.form).then(res=> {
             //汇报结果
             this.$message({
               type: 'success',
-              message: '已成功添加资讯!'
+              message: '已成功修改群信息!'
             });
-            this.cleatForm(2);
+            this.cleatForm();
             //返回列表页
             this.returnPage()
           }).catch(() => {
@@ -549,15 +443,19 @@ export default {
 
   },
   mounted(){
+    //查询课题分类
+    this.getTopicType();
+
+    this.form.author = this.$store.state.user.name;
     //1.判断是新建还是回显
     if(this.$route.query.id!=undefined){
       this.editId = this.$route.query.id;
       this.editStatus = true;
-      console.log("编辑新闻!")
+      console.log("编辑商圈!")
       this.getMainData();
     }else{
       this.editStatus = false;
-      console.log("添加新闻!")
+      console.log("新建商圈!")
     }
 
     //复制内容到富文本 start ------------------------------------------------------------>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 641 - 210
src/views/chat/hall.vue


+ 110 - 75
src/views/chat/topic.vue

@@ -7,19 +7,23 @@
           <el-col :span="8">
             <div class="searchBox">
               <div class="searchTitle">课题标题:</div>
-              <el-input placeholder="请输入资讯题目" autocomplete="off" v-model="getApiData.title"/>
+              <el-input placeholder="请输入课题标题" autocomplete="off" v-model="getApiData.title"/>
             </div>
           </el-col>
           <el-col :span="8">
             <div class="searchBox">
               <div class="searchTitle">课题分类:</div>
-              <el-input placeholder="请输入导航池名称" autocomplete="off" v-model="getApiData.category_name"/>
+              <el-select v-model="getApiData.type" placeholder="请选择课题分类..">
+                <!-- <el-option label="科研" value="1"></el-option>
+                <el-option label="维权" value="2"></el-option> -->
+                <el-option :label="item.label" :value="item.value" v-for="item in topicType"></el-option>
+              </el-select>
             </div>
           </el-col>
           <el-col :span="8">
             <div class="searchBox">
               <div class="searchTitle">作者:</div>
-              <el-input placeholder="请输入作者姓名" autocomplete="off" v-model="getApiData.author"/>
+              <el-input placeholder="请输入作者姓名" autocomplete="off" v-model="getApiData.nickname"/>
             </div>
           </el-col>
         </el-row>
@@ -29,9 +33,11 @@
           <el-col :span="8">
             <div class="searchBox">
               <div class="searchTitle">审核状态:</div>
-              <el-select v-model="getApiData.islink" placeholder="请选择..">
-                <el-option label="否" value="0"></el-option>
-                <el-option label="是" value="1"></el-option>
+              <el-select v-model="getApiData.status" placeholder="请选择审核状态..">
+                <!-- <el-option label="待审核" value="1"></el-option>
+                <el-option label="已通过" value="2"></el-option>
+                <el-option label="已拒绝" value="3"></el-option> -->
+                <el-option :label="item.label" :value="item.value" v-for="item in topicStatus"></el-option>
               </el-select>
             </div>
           </el-col>
@@ -57,28 +63,28 @@
           <el-table :data="tableData" style="width: 100%">
             <el-table-column fixed prop="id" label="编号" width="50"></el-table-column>
             <el-table-column prop="title" label="课题标题" width=""></el-table-column>
-            <el-table-column prop="category_name" label="课题分类" width=""></el-table-column>
-            <el-table-column prop="islink" label="作者" width=""></el-table-column>
-            <el-table-column prop="fromurl" label="创建时间" width=""></el-table-column>
-            <el-table-column prop="author" label="修改时间" width=""></el-table-column>
+            <el-table-column prop="type" label="课题分类" width="">
+              <template slot-scope="scope">
+                <div v-if="scope.row.type==1">科研</div>
+                <div v-if="scope.row.type==2">维权</div>
+              </template>
+            </el-table-column>
+            <el-table-column prop="user_name" 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="status" label="状态" width="">
               <template slot-scope="scope">
-                <span v-if="scope.row.status==404">404</span>
-                <el-switch
-                  v-else
-                  v-model="scope.row.status"
-                  :active-value="1"
-                  :inactive-value="0"
-                  @change="upRow(scope.row.id,scope.row.status)"
-                ></el-switch>
+                <div v-if="scope.row.status==1" class="status1">待审核</div>
+                <div v-if="scope.row.status==2" class="status2">已通过</div>
+                <div v-if="scope.row.status==3" class="status3">已拒绝</div>
               </template>
             </el-table-column>
             <el-table-column fixed="right" label="操作" width="280" header-align="center">
               <template slot-scope="scope">
                 <div class="listBtnBox">
-                  <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="listMainBtn" @click="auditStatus=true"><i class="el-icon-edit-outline"></i>审核</div>
+                  <div class="listDeleteBtn" @click="deleteRow(scope.row.id)"><i class="el-icon-delete"></i>删除</div>
+                  <div class="listEditBtn" @click="goEdit(scope.row.id)"><i class="el-icon-edit-outline"></i>编辑</div>
+                  <div class="listMainBtn" @click="openEditWindow(scope.row.id)"><i class="el-icon-edit-outline"></i>审核</div>
                 </div>
               </template>
             </el-table-column>
@@ -100,20 +106,19 @@
     <!--审核状态弹出框 start------------------------------------------------------------>
     <el-dialog :visible.sync="auditStatus" title="审核状态" :close-on-click-modal="false" width="420px">
       <div>
-        <div>
-          <el-radio-group v-model="radio">
-            <el-radio :label="1">通过</el-radio>
-            <el-radio :label="2">拒绝</el-radio>
+        <div class="contentBox">
+          <el-radio-group v-model="form.radio">
+            <el-radio :label="2">通过</el-radio>
+            <el-radio :label="3">拒绝</el-radio>
           </el-radio-group>
         </div>
         <div class="footerButtonBox">
-          <el-button type="info">取消</el-button>
-          <el-button type="primary">确定</el-button>
+          <el-button type="info" @click="auditStatus = false">取消</el-button>
+          <el-button type="primary" @click="editStatus">确定</el-button>
         </div>
       </div>
     </el-dialog>
     <!--审核状态弹出框 end------------------------------------------------------------>
-
   </div>
 </template>
 
@@ -130,18 +135,24 @@ export default {
   data() {
     return {
       //1.列表和分页相关 start ------------------------------------------------------------>
-      tableDivTitle:"资讯列表",
+      tableDivTitle:"课题列表",
       tableData:[],//内容
       editId:0,//要修改的网站id
+      topicType:[],//课题分类
+      topicStatus:[],//课题状态
       getApiData:{
+        title:"",//标题
+        type:"",//课题分类
+        nickname:"",//作者
+        status:"",//审核状态
         page:1,//当前是第几页
         page_size:10,//一共多少条
       },
       allCount:0,//总条数
-      form:{
-        radio:1 //1=通过 2=拒绝
-      },
       auditStatus:false,//审核状态弹出框
+      form:{
+        radio:2 //1=通过 2=拒绝
+      }
       //分页相关 end ------------------------------------------------------------>
     }
   },
@@ -153,20 +164,8 @@ export default {
         this.getApiData.page = 1;
       }
       this.$store.dispatch('chat/getTopicsList',this.getApiData).then(res=> {
-        console.log(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; //给与总条数
+        this.tableData = res.data.data; //给与内容
+        this.allCount = res.data.total; //给与总条数
       }).catch(() => {
         this.$message({
           type: 'warning',
@@ -174,7 +173,7 @@ export default {
         });
       })
     },
-    //1.2 删除内容
+    //1.2 删除商圈
     deleteRow(id){
       this.$confirm('此操作将永久删除该条数据, 是否继续?', '提示', {
         confirmButtonText: '确定',
@@ -182,7 +181,10 @@ export default {
         type: 'warning'
       }).then(() => {
         console.log("当前删除:" + id)
-        this.$store.dispatch('news/delArticle',{id:id}).then(res=> {
+        let data = {
+          id:id+""
+        }
+        this.$store.dispatch('chat/delTopic',data).then(res=> {
           this.getData();
           this.$message({
             type: 'success',
@@ -201,26 +203,6 @@ 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) {
@@ -236,17 +218,34 @@ export default {
     clearSearchList(){
       this.tableData = [];
       this.getApiData.title = "";
-      this.getApiData.category_name = "";
-      this.getApiData.author = "";
-      this.getApiData.islink = "";
+      this.getApiData.type = "";
+      this.getApiData.nickname = "";
       this.getApiData.status = "";
       this.getApiData.page = 1;
       this.getApiData.pageSize = 10;
       this.getData();
     },
+    //1.7 查询商圈分类
+    getTopicType(){
+      this.$store.dispatch('chat/topicType',this.getApiData).then(res=> {
+        this.topicType = res.data;
+        console.log(this.topicType)
+      }).catch(() => {
+        this.$message.error("查询商圈分类失败!");
+      })
+    },
+    //1.8 查询商圈状态
+    getTopicStatus(){
+      this.$store.dispatch('chat/topicStatus',this.getApiData).then(res=> {
+        this.topicStatus = res.data;
+        console.log(res)
+      }).catch(() => {
+        this.$message.error("查询商圈状态失败!");
+      })
+    },
     //列表和分页相关 end ------------------------------------------------------------>
 
-    //2.添加新闻 start ------------------------------------------------------------>
+    //2.添加商圈 start ------------------------------------------------------------>
     //跳转到资讯发布页面
     goCreat(){
       this.$router.push({
@@ -261,16 +260,52 @@ export default {
         path: '/creatTopic',
         query: data
       });
-    }
-    //添加新闻 end ------------------------------------------------------------>
+    },
+    //添加商圈 end ------------------------------------------------------------>
+
+    //3.审核 start ------------------------------------------------------------>
+    openEditWindow(id){
+      this.editId = id;
+      this.auditStatus = true;
+    },
+    editStatus(){
+      let data = {
+        id:this.editId + "",
+        status:this.form.radio + ""
+      }
+      this.$store.dispatch('chat/updateTopic',data).then(res=> {
+        console.log(res)
+        this.getData();
+        this.auditStatus = false;
+      });
+    },
+    //3.审核 end ------------------------------------------------------------>
   },
   mounted(){
     //1.获得初始数据
     this.getData();
+    //2.查询课题分类
+    this.getTopicType();
+    // //3.查询课题状态
+    this.getTopicStatus();
   }
 }
 </script>
 
 <style scoped lang="less">
-
+  .contentBox {
+    padding: 0 0 20px 0;
+  }
+  .footerButtonBox {
+    text-align: right;
+  }
+  .status1 {
+    color: #F19655;
+  }
+  .status2 {
+    color: #519C66;
+  }
+  .status3 {
+    color: #CC5F5F;
+  }
 </style>

+ 269 - 212
src/views/complaint/complaintList.vue

@@ -10,50 +10,7 @@
               <el-select v-model="getApiData.nature" placeholder="请选择.." @change="getNatureChildren">
                 <el-option
                   v-for="item in natureData"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </div>
-          </el-col>
-          <el-col :span="8">
-            <div class="searchBox">
-              <div class="searchTitle">性质进度:</div>
-              <el-select v-model="getApiData.nature_level" placeholder="请选择">
-                <el-option
-                  v-for="item in netureLevelData"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </div>
-          </el-col>
-          <el-col :span="8">
-            <div class="searchBox">
-              <div class="searchTitle">类型:</div>
-              <el-select v-model="getApiData.type" placeholder="请选择.." @change="getTypeChildren">
-                <el-option
-                  v-for="item in typeData"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </div>
-          </el-col>
-        </el-row>
-      </div>
-      <div class="layerBoxLineTwo">
-        <el-row>
-          <el-col :span="8">
-            <div class="searchBox">
-              <div class="searchTitle">类型进度:</div>
-              <el-select v-model="getApiData.type_level" placeholder="请选择">
-                <el-option
-                  v-for="item in typeLevelData"
-                  :key="item.value"
+                  :key="item.id"
                   :label="item.label"
                   :value="item.value">
                 </el-option>
@@ -93,10 +50,10 @@
           <el-table :data="tableData" style="width: 100%">
             <el-table-column fixed prop="id" label="编号" width="50"></el-table-column>
             <el-table-column prop="title" label="标题"></el-table-column>
-            <el-table-column prop="nature_name" label="性质"></el-table-column>
-            <el-table-column prop="nature_level_name" label="进度"></el-table-column>
+            <el-table-column prop="nature_name" label="类型"></el-table-column>
+            <!-- <el-table-column prop="nature_level_name" label="进度"></el-table-column>
             <el-table-column prop="type_name" label="类型"></el-table-column>
-            <el-table-column prop="type_level_name" label="类型说明"></el-table-column>
+            <el-table-column prop="type_level_name" label="类型说明"></el-table-column> -->
             <el-table-column label="判决书">
               <template slot-scope="scope">
                 {{ scope.row.judgment ? '有' : '无' }}
@@ -156,50 +113,70 @@
           <el-form-item label="标题:" :label-width="formLabelWidth" prop="" class="custom-align-right">
             <el-input v-model="form.title" autocomplete="off" disabled></el-input>
           </el-form-item>
-          <el-form-item label="性质:" :label-width="formLabelWidth" prop="nature" class="custom-align-right">
-            <div class="formLabelFloatBox">
-              <el-select v-model="form.nature" placeholder="请选择.." @change="getWindowNatureChildren">
-                <el-option
-                  v-for="item in windowNatureData"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </div>
-          </el-form-item>
-          <el-form-item label="性质进度:" :label-width="formLabelWidth" prop="nature_level" class="custom-align-right">
-            <el-select v-model="form.nature_level" placeholder="请选择">
-              <el-option
-                v-for="item in windowNetureLevelData"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="类型:" :label-width="formLabelWidth" prop="type" class="custom-align-right">
-            <el-select v-model="form.type" placeholder="请选择.." @change="getWindowTypeChildren">
-              <el-option
-                v-for="item in typeData"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="类型进度:" :label-width="formLabelWidth" prop="type_level" class="custom-align-right">
-            <el-select v-model="form.type_level" placeholder="请选择">
-              <el-option
-                v-for="item in windowTypeLevelData"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value">
-              </el-option>
-            </el-select>
+          <el-form-item label="类型:" :label-width="formLabelWidth" prop="" class="custom-align-right">
+            <template>
+              <div class="natureRadioBox">
+                <div>
+                  <el-radio-group v-model="form.nature">
+                    <el-radio :label="item.id" v-for="item in windowNatureData" :key="item.id" @change="clearCheck">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <!--民事-->
+                <div v-if="form.nature==1" class="natureRadioBoxItem">
+                  <el-radio-group v-model="form.nature_level0">
+                    <el-radio :label="item.id" v-for="item in windowNatureData[0].children[0].children" :key="item.id">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <div v-if="form.nature==1" class="natureRadioBoxItem">
+                  <el-radio-group v-model="form.nature_level1">
+                    <el-radio :label="item.id" v-for="item in windowNatureData[0].children[1].children" :key="item.id">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <div class="natureRadioBoxItemOther" v-if="form.nature==1&&form.nature_level1==24">
+                  <el-input v-model="form.other" placeholder="请输入"></el-input>
+                </div>
+                <!--刑事-->
+                <div v-if="form.nature==5" class="natureRadioBoxItem">
+                  <el-radio-group v-model="form.nature_level0">
+                    <el-radio :label="item.id" v-for="item in windowNatureData[1].children[0].children" :key="item.id">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <div v-if="form.nature==5" class="natureRadioBoxItem">
+                  <el-radio-group v-model="form.nature_level1">
+                    <el-radio :label="item.id" v-for="item in windowNatureData[1].children[1].children" :key="item.id">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <div class="natureRadioBoxItemOther" v-if="form.nature==5&&form.nature_level1==29">
+                  <el-input v-model="form.other" placeholder="请输入"></el-input>
+                </div>
+                <div v-if="form.nature_level0==14&&form.nature==5" class="natureRadioBoxItem">
+                  <el-radio-group v-model="form.nature_level3">
+                    <el-radio :label="item.id" v-for="item in windowNatureData[1].children[0].children[2].children" :key="item.id">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <!--行政-->
+                <div v-if="form.nature==15" class="natureRadioBoxItem">
+                  <el-radio-group v-model="form.nature_level0">
+                    <el-radio :label="item.id" v-for="item in windowNatureData[2].children[0].children" :key="item.id">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <div class="natureRadioBoxItemOther" v-if="form.nature==15&&form.nature_level0==122">
+                  <el-input v-model="form.other" placeholder="请输入"></el-input>
+                </div>
+                <!--非讼-->
+                <div v-if="form.nature==104" class="natureRadioBoxItem">
+                  <el-radio-group v-model="form.nature_level0">
+                    <el-radio :label="item.id" v-for="item in windowNatureData[3].children[0].children" :key="item.id">{{item.type_name}}</el-radio>
+                  </el-radio-group>
+                </div>
+                <div class="natureRadioBoxItemOther" v-if="form.nature==104&&form.nature_level0==36">
+                  <el-input v-model="form.other" placeholder="请输入"></el-input>
+                </div>
+              </div>
+            </template>
           </el-form-item>
           <el-form-item label="详细说明:" :label-width="formLabelWidth" prop="" class="custom-align-right">
-            <el-input type="textarea" v-model="form.describe" class="custom-textarea" disabled placeholder="请输入详细说明"></el-input>
+            <el-input type="textarea" v-model="form.describe" rows="8" class="custom-textarea" disabled placeholder="请输入详细说明"></el-input>
           </el-form-item>
           <el-form-item label="判决书:" :label-width="formLabelWidth" prop="" class="custom-align-right">
             <div v-if="form.judgment" @click="downloadFile(form.judgment)" class="complaintListdownloadBtn">
@@ -235,7 +212,7 @@
           <el-form-item label="姓名:" :label-width="formLabelWidth" prop="" class="custom-align-right">
             <el-input v-model="form.name" autocomplete="off" disabled placeholder="请输入姓名"></el-input>
           </el-form-item>
-          <el-form-item label="身份证号:" :label-width="formLabelWidth" prop="" class="custom-align-right">
+          <el-form-item label="身份证号:" :label-width="formLabelWidth" prop="id_card" class="custom-align-right">
             <el-input v-model="form.id_card" autocomplete="off" disabled placeholder="请输入身份证号"></el-input>
           </el-form-item>
           <el-form-item label="期待学习法律:" :label-width="formLabelWidth" prop="" class="custom-align-right">
@@ -294,6 +271,9 @@ export default {
         callback()
       }
     }
+    const validateNull = (rule,value,callback) => {
+      callback()
+    }
     let self = this;
     //0.全局操作 end ------------------------------------------------------------>
 
@@ -337,10 +317,10 @@ export default {
       //3.1 表单收集的数据
       form: {
         title:"",//标题
-        nature:"",//性质
-        nature_level:"",//进度
-        type:"",//类型
-        type_level:"",//类型进度
+        //nature:"",//性质
+        //nature_level:"",//进度
+        //type:"",//类型
+        //type_level:"",//类型进度
         describe:"",//详细说明
         judgment:"",//判决书
         audio_and_video:"",//录音录像
@@ -352,11 +332,22 @@ export default {
         status:"100",//状态
         like_remark:"",//你最想了解的法律知识
         reason:"",//备注信息
+        //编辑性质和数字
+        nature:0,//性质
+        nature_level0:0,//进度
+        nature_level1:0,//性质
+        nature_level3:0,//类型进度
+        //编辑类型和进度文字
+        nature_name:"",//类型
+        nature_name0:"",//进度
+        nature_name1:"",//性质
+        nature_name3:"",//类型进度
+        other:""
       },
-      windowNatureData:[],//所有性质
-      windowNetureLevelData:[],//所有进度
-      windowTypeData:[],//所有类型
-      windowTypeLevelData:[],//所有类型进度
+      windowNatureData:[],//所有性质与进度
+      // windowNetureLevelData:[],//所有进度
+      // windowTypeData:[],//所有类型
+      // windowTypeLevelData:[],//所有类型进度
       windowStatusData:[],//所有状态 
       //3.2表单验证规则
       formRules: {
@@ -370,6 +361,8 @@ export default {
         type_level:[{required:true,trigger:'blur',validator:validateEmpty}],
         //状态不能为空
         status:[{required:true,trigger:'blur',validator:validateEmpty}],
+        //身份证不能为空
+        id_card:[{required:true,trigger:'blur',validator:validateNull}],
       },
       //弹出框中的表单设置 end ------------------------------------------------------------>
     }
@@ -426,29 +419,31 @@ export default {
           //搜索栏
           this.natureData.push(data)
           //弹窗框
-          this.windowNatureData.push(data)
+          //this.windowNatureData.push(data)
         }
         //暂存所有性质进度
         this.allNetureLevelData = res.data;
+        //再窗口里面也存一份
+        this.windowNatureData = res.data;
       })
       //获取类型和类型说明
-      let getType = {
-        type:2
-      }
-      this.$store.dispatch('complaint/getLetterType',getType).then(res=> {
-        for(let item of res.data){
-          let data = {
-            value: item.id,
-            label: item.type_name
-          }
-          //搜索栏
-          this.typeData.push(data)
-          //弹窗框
-          this.windowTypeData.push(data)
-        }
-        //暂存所有类型进度
-        this.allTypeLevelData = res.data;
-      })
+      // let getType = {
+      //   type:2
+      // }
+      // this.$store.dispatch('complaint/getLetterType',getType).then(res=> {
+      //   for(let item of res.data){
+      //     let data = {
+      //       value: item.id,
+      //       label: item.type_name
+      //     }
+      //     //搜索栏
+      //     this.typeData.push(data)
+      //     //弹窗框
+      //     this.windowTypeData.push(data)
+      //   }
+      //   //暂存所有类型进度
+      //   this.allTypeLevelData = res.data;
+      // })
       //获取状态
       let getStatus = {
         type:10
@@ -482,84 +477,84 @@ export default {
           label: item.type_name
         }
         //搜索栏  
-        this.netureLevelData.push(data)
-      }
-    },
-    getTypeChildren(val) {
-      this.getApiData.type_level = "";
-      this.typeLevelData = [];
-      console.log(val);
-      const selectedItem = this.allTypeLevelData.find(item => item.id === val);
-      console.log(selectedItem)
-      for(let item of selectedItem.children){
-        let data = {
-          value: item.id,
-          label: item.type_name
-        }
-        //搜索栏  
-        this.typeLevelData.push(data)
+        //this.netureLevelData.push(data)
       }
     },
+    // getTypeChildren(val) {
+    //   this.getApiData.type_level = "";
+    //   this.typeLevelData = [];
+    //   console.log(val);
+    //   const selectedItem = this.allTypeLevelData.find(item => item.id === val);
+    //   console.log(selectedItem)
+    //   for(let item of selectedItem.children){
+    //     let data = {
+    //       value: item.id,
+    //       label: item.type_name
+    //     }
+    //     //搜索栏  
+    //     this.typeLevelData.push(data)
+    //   }
+    // },
 
     //弹出框中的
-    getWindowNatureChildren(val) {
-      this.form.nature_level = "";
-      this.windowNetureLevelData = [];
-      console.log(val);
-      // 从 allNetureLevelData 中找到 id 与 val 相同的对象
-      const selectedItem = this.allNetureLevelData.find(item => item.id === val);
-      console.log(selectedItem)
-      for(let item of selectedItem.children){
-        let data = {
-          value: item.id,
-          label: item.type_name
-        } 
-        this.windowNetureLevelData.push(data)
-      }
-    },
-    getWindowTypeChildren(val) {
-      this.form.type_level = "";
-      this.windowTypeLevelData = [];
-      console.log(val);
-      const selectedItem = this.allTypeLevelData.find(item => item.id === val);
-      console.log(selectedItem)
-      for(let item of selectedItem.children){
-        let data = {
-          value: item.id,
-          label: item.type_name
-        }
-        //搜索栏  
-        this.windowTypeLevelData.push(data)
-      }
-    },
+    // getWindowNatureChildren(val) {
+    //   this.form.nature_level = "";
+    //   this.windowNetureLevelData = [];
+    //   console.log(val);
+    //   // 从 allNetureLevelData 中找到 id 与 val 相同的对象
+    //   const selectedItem = this.allNetureLevelData.find(item => item.id === val);
+    //   console.log(selectedItem)
+    //   for(let item of selectedItem.children){
+    //     let data = {
+    //       value: item.id,
+    //       label: item.type_name
+    //     } 
+    //     this.windowNetureLevelData.push(data)
+    //   }
+    // },
+    // getWindowTypeChildren(val) {
+    //   this.form.type_level = "";
+    //   this.windowTypeLevelData = [];
+    //   console.log(val);
+    //   const selectedItem = this.allTypeLevelData.find(item => item.id === val);
+    //   console.log(selectedItem)
+    //   for(let item of selectedItem.children){
+    //     let data = {
+    //       value: item.id,
+    //       label: item.type_name
+    //     }
+    //     //搜索栏  
+    //     this.windowTypeLevelData.push(data)
+    //   }
+    // },
     //回显数据
-    returnWindowNatureChildren(val) {
-      console.log(val);
-      const selectedItem = this.allNetureLevelData.find(item => item.id === val);
-      console.log(selectedItem)
-      for(let item of selectedItem.children){
-        let data = {
-          value: item.id,
-          label: item.type_name
-        } 
-        this.windowNetureLevelData.push(data)
-      }
-    },
-    returnWindowTypeChildren(val) {
-      this.form.type_level = "";
-      this.windowTypeLevelData = [];
-      console.log(val);
-      const selectedItem = this.allTypeLevelData.find(item => item.id === val);
-      console.log(selectedItem)
-      for(let item of selectedItem.children){
-        let data = {
-          value: item.id,
-          label: item.type_name
-        }
-        //搜索栏  
-        this.windowTypeLevelData.push(data)
-      }
-    },
+    // returnWindowNatureChildren(val) {
+    //   console.log(val);
+    //   const selectedItem = this.allNetureLevelData.find(item => item.id === val);
+    //   console.log(selectedItem)
+    //   for(let item of selectedItem.children){
+    //     let data = {
+    //       value: item.id,
+    //       label: item.type_name
+    //     } 
+    //     this.windowNetureLevelData.push(data)
+    //   }
+    // },
+    // returnWindowTypeChildren(val) {
+    //   this.form.type_level = "";
+    //   this.windowTypeLevelData = [];
+    //   console.log(val);
+    //   const selectedItem = this.allTypeLevelData.find(item => item.id === val);
+    //   console.log(selectedItem)
+    //   for(let item of selectedItem.children){
+    //     let data = {
+    //       value: item.id,
+    //       label: item.type_name
+    //     }
+    //     //搜索栏  
+    //     this.windowTypeLevelData.push(data)
+    //   }
+    // },
     // 获取子进度 可优化 end---------------------------------------->
 
     //1.2 列表内容分页
@@ -667,14 +662,27 @@ export default {
           console.log(data)
           this.editId = data.id;
           this.form.title = data.title;
+
           //还原性质
-          this.form.nature = data.nature;
-          this.returnWindowNatureChildren(data.nature);
-          this.form.nature_level = data.nature_level;
+          // this.form.nature = data.nature;
+          // this.returnWindowNatureChildren(data.nature);
+          // this.form.nature_level = data.nature_level;
           //还原类型
-          this.form.type = data.type;
-          this.returnWindowTypeChildren(data.type);
-          this.form.type_level = data.type_level;
+          // this.form.type = data.type;
+          // this.returnWindowTypeChildren(data.type);
+          // this.form.type_level = data.type_level;
+
+          this.form.nature = data.nature;
+          this.form.nature_level0 = data.nature_level0;
+          this.form.nature_level1 = data.nature_level1;
+          this.form.nature_level3 = data.nature_level3;
+          //编辑类型和进度文字
+          this.form.nature_name = data.nature_name;
+          this.form.nature_name0 = data.nature_name0;
+          this.form.nature_name1 = data.nature_name1;
+          this.form.nature_name3 = data.nature_name3;
+          this.form.other = data.other;
+
           //详细说明
           this.form.describe = data.describe;
           this.form.judgment = data.judgment;
@@ -732,12 +740,37 @@ export default {
       })
 
     },
+    //清理单选状态
+    clearCheck(){
+      console.log("清理单选状态")
+      this.form.nature_level1 = "";
+      this.form.nature_level3 = "";
+      this.form.nature_name = "";
+      this.form.nature_name0 = "";
+      this.form.nature_name1 = "";
+      this.form.nature_name3 = "";
+      this.form.other = "";
+    },
     //提交编辑
     editData(){
+      //判断什么时候需要需要提交other
+      // if(this.form.nature_level1!=24||this.form.nature_level1!=29||this.form.nature_level0!=122||this.form.nature_level0!=36){
+      //   this.form.other = "";
+      // }
+
       let data = {
         id:this.editId,
+        //提交编辑
         nature:this.form.nature,
-        nature_level:this.form.nature_level,
+        nature_level0:this.form.nature_level0,
+        nature_level1:this.form.nature_level1,
+        nature_level3:this.form.nature_level3,
+        // nature_name:this.form.nature_name,
+        // nature_name0:this.form.nature_name0,
+        // nature_name1:this.form.nature_name1,
+        // nature_name3:this.form.nature_name3,
+        other:this.form.other,
+
         type:this.form.type,
         type_level:this.form.type_level,
         status:this.form.status,
@@ -774,20 +807,44 @@ export default {
 </script>
 
 <style scoped lang="less">
-//表单微调 start------------------------------------------------------------>*/
-::v-deep .custom-form-item > .el-form-item__label {
-  line-height: 140px !important;
-}
-::v-deep .custom-textarea .el-textarea__inner {
-  resize: none; /* 禁止用拖拽调整大小 */
-}
-::v-deep .custom-align-right .el-form-item__label {
-  text-align: right; /* 设置标签文字右对齐 */
-}
-::v-deep .el-select-group__title {
-  color: #909399;
-}
-::v-deep .el-select {
-  width: 100% !important;
-}
+  .natureRadioBox{
+    .natureRadioBoxItem{
+      border: 1px solid #dfe4ed;
+      border-radius: 4px;
+      padding: 10px 10px 0 10px;
+      margin-bottom: 10px;
+      background: #F5F7FA;
+      label {
+        margin-bottom: 10px;
+      }
+    }
+    .natureRadioBoxItemOther{
+      border: 1px solid #dfe4ed;
+      border-radius: 4px;
+      padding: 10px;
+      margin-bottom: 10px;
+      background: #F5F7FA;
+    }
+  }
+
+
+  //表单微调 start------------------------------------------------------------>*/
+  ::v-deep .natureRadioBoxItem .el-radio {
+    margin-bottom: 10px !important;
+  }
+  ::v-deep .custom-form-item > .el-form-item__label {
+    line-height: 140px !important;
+  }
+  ::v-deep .custom-textarea .el-textarea__inner {
+    resize: none; /* 禁止用拖拽调整大小 */
+  }
+  ::v-deep .custom-align-right .el-form-item__label {
+    text-align: right; /* 设置标签文字右对齐 */
+  }
+  ::v-deep .el-select-group__title {
+    color: #909399;
+  }
+  ::v-deep .el-select {
+    width: 100% !important;
+  }
 </style>

+ 2 - 2
src/views/menu/menulist.vue

@@ -65,7 +65,7 @@
           <el-form-item label="父级菜单名称" :label-width="formLabelWidth" prop="pid_arr" class="custom-align-right" v-if="radio === '2'">
             <el-cascader :key="parentKey" v-model="form.pid_arr" :props="{checkStrictly:true}" :options="pidArrData" clearable></el-cascader>
           </el-form-item>
-          <el-form-item label="默认图标" :label-width="formLabelWidth" prop="icon" class="custom-align-right">
+          <el-form-item label="默认图标" :label-width="formLabelWidth" prop="icon" class="custom-align-right" v-if="radio == '1'">
              <!--图片上传组件 start ------------------------------------------------------------>
               <div class="uploaderBox">
                 <div class="avatar-upload-container" @mouseenter="hovering = true" @mouseleave="hovering = false">
@@ -88,7 +88,7 @@
               </div>
               <!--图片上传组件 end ------------------------------------------------------------>
           </el-form-item>
-          <el-form-item label="选中时图标" :label-width="formLabelWidth" prop="selected_icon" class="custom-align-right">
+          <el-form-item label="选中时图标" :label-width="formLabelWidth" prop="selected_icon" class="custom-align-right" v-if="radio == '1'">
             <!--图片上传组件 start ------------------------------------------------------------>
             <div class="uploaderBox">
               <div class="avatar-upload-container" @mouseenter="hoveringTwo = true" @mouseleave="hoveringTwo = false">

+ 17 - 3
src/views/news/creatNews.vue

@@ -123,7 +123,7 @@
               <el-input v-model="form.hits" autocomplete="off" placeholder="请输入浏览量"></el-input>
             </el-form-item>
             <el-form-item label="是否为原创:" prop="is_original" class="custom-align-right">
-              <el-radio-group v-model="form.is_original">
+              <el-radio-group v-model="form.is_original" @change="changeIsOriginal">
                 <el-radio :label="1">是</el-radio>
                 <el-radio :label="0">否</el-radio>
               </el-radio-group>
@@ -143,6 +143,12 @@
                 <div class="disclaimerText">本文来源于网络转载,仅供学习交流使用,不构成商业目的。版权归作者所有,如涉及原作者所有,如涉及作品内容、版权和其他问题,请在30日内与本站联系,我们将在第一时间处理。</div>
               </div>
             </div>
+            <div v-if="form.is_original==1">
+              <el-form-item label="来源链接:" prop="linkurl" class="custom-align-right">
+                <el-input v-model="form.linkurl" autocomplete="off" placeholder="请输入来源链接" disabled="disabled"></el-input>
+              </el-form-item>
+            </div>
+
             <el-form-item label="资讯状态:" class="custom-align-right" style="width: 100%;">
               <el-select v-model="form.status" placeholder="请选择..">
                 <el-option label="已发布" :value="1"></el-option>
@@ -454,9 +460,11 @@ export default {
         }else{  
           this.form.islink = false;
         }
+
         //不是原创的时候显示来源
         if(res.data.is_original==1){
           this.form.is_original = 1;
+          this.form.linkurl = "本网";
         }else{
           this.form.is_original = 0;
           this.$nextTick(() => {
@@ -468,8 +476,6 @@ export default {
           this.form.linkurl = res.data.linkurl;
         }
         
-
-
         // 回显导航池
         this.form.cat_arr_id = Array.isArray(res.data.cat_arr_id) ? res.data.cat_arr_id : JSON.parse(res.data.cat_arr_id);
         this.parentKey += 1; // 触发级联选择器重新加载
@@ -546,6 +552,14 @@ export default {
         }
       })
     },
+    //1.4 修改是否原创
+    changeIsOriginal(){
+      if(this.form.is_original==1){
+        this.form.linkurl = "本网";
+      }else{
+        this.form.linkurl = "";
+      }
+    },
     //跳转操作 end ------------------------------------------------------------>
 
     //4.富文本编辑器 start ------------------------------------------------------------>

+ 4 - 3
src/views/website/WebsiteList.vue

@@ -345,6 +345,7 @@ export default {
         title:[{required:true,trigger:'blur',validator:validateEmpty}],
         keywords:[{required:true,trigger:'blur',validator:validateEmpty}],
         description:[{required:true,trigger:'blur',validator:validateEmpty}],
+        logo:[{required:true,trigger:'blur',validator:validateEmpty}],
         logoUrl:[{required:true,trigger:'blur',validator:validateEmpty}],
         template_id:[{required:true,trigger:'blur',validator:validateEmpty}],
       },
@@ -396,7 +397,7 @@ export default {
         this.allCount = res.data.count; //给与总条数
       }).catch(() => {
         this.$message({
-          type: 'info',
+          type: 'warning',
           message: '网络错误,请重试!'
         });
       })
@@ -580,7 +581,7 @@ export default {
         console.log(res.data.imgUrl)
       }).catch(() => {
         this.$message({
-          type: 'info',
+          type: 'warning',
           message: '网络错误,请重试!'
         });
       })
@@ -632,7 +633,7 @@ export default {
             
           }).catch(() => {
             this.$message({
-              type: 'info',
+              type: 'warning',
               message: '网络错误,请重试!'
             });
           })

+ 17 - 1
src/views/website/editNavigation.vue

@@ -55,9 +55,10 @@
             <el-table-column prop="alias" label="导航名称"></el-table-column>
             <el-table-column prop="created_at" label="创建时间"></el-table-column>
             <el-table-column prop="updated_at" label="修改时间"></el-table-column>
-            <el-table-column fixed="right" label="操作" width="120" header-align="center">
+            <el-table-column fixed="right" label="操作" width="200" header-align="center">
               <template slot-scope="scope">
                 <div class="listBtnBox">
+                  <div class="listDeleteBtn" @click="deleteRow(scope.row)"><i class="el-icon-edit-outline"></i>删除</div>
                   <div class="listEditBtn" @click="editRow(scope.row.category_id)"><i class="el-icon-edit-outline"></i>编辑</div>
                 </div>
               </template>
@@ -326,6 +327,20 @@ export default {
         this.form.seo_description = res.data.seo_description;
       })
     },
+    //删除数据
+    deleteRow(item){
+      console.log(item)
+      let data = {
+        category_id:item.category_id,
+        website_id:item.website_id,
+      }
+      this.$store.dispatch('pool/delWebsiteCategory',data).then(res=> {
+        this.$message.success("删除成功!");
+        this.getData();
+      }).catch(() => {
+        this.$message.info("网络错误,请重试!");
+      })
+    },
     //提交编辑的数据
     addToServe(){
       //把标题的值给与seo_title
@@ -340,6 +355,7 @@ export default {
             });
             //清空并退出
             this.closeWindow();
+            this.getData();
           }).catch(() => {
             this.$message({
               type: 'info',

+ 4 - 2
src/views/website/websiteColumn.vue

@@ -43,7 +43,7 @@
             <el-table-column fixed="right" label="操作" width="280" header-align="center">
               <template slot-scope="scope">
                 <div class="listBtnBox">
-                  <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="editRow(scope.row.id, scope.row.website_name)"><i class="el-icon-edit-outline"></i>编辑</div>
                   <div class="listMainBtn" @click="manageRow(scope.row.id, tableData)"><i class="el-icon-edit-outline"></i>详情</div>
                 </div>
@@ -230,8 +230,10 @@ export default {
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
+        //website_id
+        //category_id
         console.log("当前删除:" + id)
-        this.$store.dispatch('pool/delWebsiteCategory',{id:id}).then(res=> {
+        this.$store.dispatch('pool/delWebsiteCategory',{category_id:id}).then(res=> {
           this.getData();
           this.$message({
             type: 'success',

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác