浏览代码

修改全局消息和通知投诉bug

Jing 2 天之前
父节点
当前提交
c8c95a375b

二进制
src/assets/notice/empty.png


二进制
src/assets/public/nav/news.png


+ 6 - 5
src/layout/components/Navbar.vue

@@ -161,12 +161,13 @@
                   @mouseover="handleQiu(6)">群聊</span>
               </div> -->
               <!-- 通知 -->
-              <div class="qiuFlex" v-if="tabsIndex == 6 && userType == 2">
+              <div v-if="tabsIndex == 6" @click="goToPath(6.1, -1)">通知列表</div>
+              <!-- <div class="qiuFlex" v-if="tabsIndex == 6 && userType == 2">
                 <span @click="goToPath(6.1, -1)" :class="{ 'qiuPillow': true, 'qiuPillowHover': notice1 == true }"
                   @mouseover="handleQiu(7)">通知列表</span>
-                <!-- <span @click="goToPath(6.2, 0)" :class="{ 'qiuPillow': true, 'qiuPillowHover': notice2 == true }"
-                  @mouseover="handleQiu(8)">行政通知</span> -->
-              </div>
+                <span @click="goToPath(6.2, 0)" :class="{ 'qiuPillow': true, 'qiuPillowHover': notice2 == true }"
+                  @mouseover="handleQiu(8)">行政通知</span>
+              </div> -->
               <!-- 投诉 -->
               <div class="qiuFlex" v-if="tabsIndex == 7 && userType == 2">
                 <span @click="goToPath(7.1, -1)" :class="{ 'qiuPillow': true, 'qiuPillowHover': complaint1 == true }"
@@ -189,7 +190,7 @@
                 <div class="noticeTabsDataItem" v-for="item in msg.apply_articale" :key="item.id"
                   @click="goToPath(1, item.id)">
                   <div class="noticeTabsDataItemImg">
-                    <img src="@/assets/public/nav/job.png">
+                    <img src="@/assets/public/nav/news.png">
                   </div>
                   <div class="noticeTabsDataItemContent">
                     <div class="noticeNewsTitle">{{ item.title }}</div>

+ 1 - 1
src/views/chat/businessDistrictDetail.vue

@@ -192,7 +192,7 @@
    .article-detail {
     // padding: 24px;
     // background: #f5f7fa;
-    min-height: 100vh;
+    // min-height: 100vh;
 
   .article-card {
     margin-bottom: 24px;

+ 15 - 5
src/views/chat/creatTopic.vue

@@ -51,6 +51,7 @@ import tableTitle from './components/tableTitle';
 import '@/styles/global.less';
 //引入富文本编辑器
 import myEditor from '../../components/edit/myEditor.vue';
+import { getUseType, removeLoginStatus } from '@/utils/auth'
 
 export default {
   components: {
@@ -82,6 +83,7 @@ export default {
       groupStatus:false,//是否可以编辑群信息
       tableDivTitle:"编辑课题",
       disclaimer:true,//免责声明
+      userType:"",//用户类型
       //提交表单
       form: {
         type:"",//课题分类
@@ -145,11 +147,17 @@ export default {
         if (valid) {
           //console.log(this.form)
           this.$store.dispatch('chat/addTopic',this.form).then(res=> {
-            //汇报结果
-            this.$message({
-              type: 'success',
-              message: '已成功创建商圈!'
-            });
+            if(this.userType==10000){
+              this.$message({
+                type: 'success',
+                message: '已成功创建商圈!'
+              });
+            }else{
+              this.$message({
+                type: 'success',
+                message: '待管理员审核'
+              });
+            }
             this.cleatForm();
             //返回列表页
             this.returnPage()
@@ -283,6 +291,8 @@ export default {
 
   },
   mounted(){
+    //获取用户类型
+    this.userType = getUseType();
     //查询课题分类
     this.getTopicType();
 

+ 2 - 1
src/views/dashboard/admin/index.vue

@@ -1079,7 +1079,7 @@ export default {
         getData() {
             //获取首页数据
             this.$store.dispatch('public/getAdminIndex').then(res => {
-                console.log('res.data', res.data);
+                console.log('res.data123123', res.data);
 
                 if (res.code == 200) {
                     //系统消息
@@ -1206,6 +1206,7 @@ export default {
     mounted() {
         //先获取用户身份
         this.getUserInfo()
+        this.changeLineChartData(1);
     }
 }
 </script>

+ 1 - 0
src/views/news/addBook.vue

@@ -501,6 +501,7 @@ export default {
           } else {
             this.form.status = 1
           }
+          this.form.website_id = this.form.website_id == '' ? 2 : this.form.website_id;
           this.form.price == '' ? this.form.price = 0 : this.form.price = this.form.price;
           this.form.market_price == '' ? this.form.market_price = 0 : this.form.market_price = this.form.market_price;
           this.form.page == '' ? this.form.page = 0 : this.form.page = this.form.page;

+ 35 - 23
src/views/news/addNcomplaint.vue

@@ -9,19 +9,17 @@
           <el-form-item label="投诉标题:" prop="title" class="custom-align-right">
             <el-input v-model="form.title" autocomplete="off" placeholder="请输入投诉标题"></el-input>
           </el-form-item>
-
-
-          <el-form-item label="发布范围:" prop="city_arr_id" class="custom-align-right">
-            <el-cascader :key="cascaderKey" v-model="form.city_arr_id" placeholder="请选择发布范围" :props="cityData"
+          <el-form-item label="投诉地区:" prop="city_arr_id" class="custom-align-right">
+            <el-cascader :key="cascaderKey" v-model="form.city_arr_id" placeholder="请选择投诉地区" :props="cityData"
               filterable clearable @change="changeData"></el-cascader>
           </el-form-item>
-          <el-form-item label="行政职能:" prop="department_arr_id" class="custom-align-right">
-            <el-cascader :key="searchDepartmentKey" v-model="form.department_arr_id" placeholder="请选择行政职能"
+          <el-form-item label="投诉类型:" prop="department_arr_id" class="custom-align-right">
+            <el-cascader :key="searchDepartmentKey" v-model="form.department_arr_id" placeholder="请选择投诉类型"
               popper-class="my_cascader" :props="searchDepartmentData" filterable clearable
               @change="changeData"></el-cascader>
           </el-form-item>
-          <el-form-item label="行政人员:" prop="re_user_ids" class="custom-align-right">
-            <el-select v-model="form.re_user_ids" placeholder="请选择行政人员" multiple filterable clearable
+          <el-form-item label="处理人:" prop="re_user_ids" class="custom-align-right">
+            <el-select v-model="form.re_user_ids" placeholder="请选择处理人" multiple filterable clearable
               @visible-change="getDUser">
               <el-option v-for="item in re_user_ids" :key="item.id" :label="item.user_name + '/' + item.nickname"
                 :value="item.user_id">
@@ -41,7 +39,7 @@
 
 
           <el-form-item label="发生日期:" prop="start" class="custom-align-right">
-            <el-date-picker v-model="form.start" placeholder="请选择发生日期">
+            <el-date-picker v-model="form.start" placeholder="请选择发生日期" @change="changeTime">
             </el-date-picker>
           </el-form-item>
 
@@ -75,7 +73,7 @@
           <el-form-item label="投诉方式" prop="type" class="custom-align-right">
             <el-radio-group v-model="form.type">
               <el-radio :label="1">匿名</el-radio>
-              <el-radio :label="2">实名</el-radio>
+              <!-- <el-radio :label="2">实名</el-radio> -->
             </el-radio-group>
           </el-form-item>
           <!-- <el-form-item label="建立群聊:" prop="is_group" class="custom-align-right">
@@ -326,19 +324,25 @@ export default {
       this.form.re_user_ids = [];
       this.getDUser();
     },
+    changeTime(val) {
+      console.log("val1111111111", val);
+      this.form.start = this.formatDateToYYYYMMDD(val);
+      console.log("val111111111122222", this.form.start);
+
+    },
     //获取行政人员
     getDUser() {
       // this.form.re_user_ids = [];
       let department_id = this.form.department_arr_id;
       let city_id = this.form.city_arr_id;
-      if (department_id.length == 0) {
-        this.$message.warning('请选择行政职能');
-        return;
-      }
-      if (city_id.length == 0) {
-        this.$message.warning('请选择行政区划');
-        return;
-      }
+      // if (department_id.length == 0) {
+      //   this.$message.warning('请选择投诉类型');
+      //   return;
+      // }
+      // if (city_id.length == 0) {
+      //   this.$message.warning('请选择投诉地区');
+      //   return;
+      // }
       department_id = department_id.at(-1) || 0;
       city_id = city_id.at(-1) || 0;
       let parames = {
@@ -495,6 +499,12 @@ export default {
         return date;
       }
     },
+    formatDateToYYYYMMDD(date) {
+      let year = date.getFullYear();
+      let month = String(date.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
+      let day = String(date.getDate()).padStart(2, '0');
+      return `${year}-${month}-${day}`;
+    },
     //1.3 清理表单
     cleatForm() {
       this.form = {
@@ -560,7 +570,8 @@ export default {
         this.form.is_group = parseInt(res.data.is_group);
         this.form.group_name = res.data.group_name;
         this.form.want = res.data.want;
-        this.form.start = res.data.start ? new Date(res.data.start) : null; // 处理时间格式
+        // this.form.start = res.data.start ? new Date(res.data.start) : null; // 处理时间格式
+        this.form.start = res.data.start; // 处理时间格式
         this.form.re_user_ids = Array.isArray(res.data.re_user_ids) ? res.data.re_user_ids : JSON.parse(res.data.re_user_ids);
         this.getDUser();
       })
@@ -603,9 +614,9 @@ export default {
         if (valid) {
           // 拷贝对象form,处理另外的,并提交
           const formData = { ...this.form };
-          if (formData.start) {
-            formData.start = formatLocalDate(formData.start);
-          }
+          // if (formData.start) {
+          //   // formData.start = formatDateToYYYYMMDD(formData.start);
+          // }
           if (formData.department_arr_id.length == 0) {
             formData.department_id = 0;
           }
@@ -769,7 +780,8 @@ export default {
     height: 24px;
   }
 }
-.photo_tips{
+
+.photo_tips {
   font-size: 14px;
   color: #666666;
 }

+ 45 - 18
src/views/news/addNotice.vue

@@ -20,7 +20,7 @@
               <el-radio :label="1">常规</el-radio>
               <el-radio :label="2">紧急</el-radio>
               <el-radio :label="3">特急</el-radio>
-            </el-radio-group>
+            </el-radio-group> 
           </el-form-item>
           <el-form-item label="内容:" prop="content" class="custom-align-right">
             <!--这里是富文本-->
@@ -36,7 +36,7 @@
           </el-form-item>
           <el-form-item label="发布日期:" prop="time" class="custom-align-right">
             <el-date-picker v-model="form.time" type="daterange" range-separator="至" start-placeholder="开始日期"
-              end-placeholder="结束日期" :picker-options="pickerOptions">
+              end-placeholder="结束日期" :picker-options="pickerOptions" @change="changeTime">
             </el-date-picker>
           </el-form-item>
           <!-- {{ hovering }}{{ file }} -->
@@ -78,7 +78,8 @@
 
           <el-form-item label="群聊名称:" prop="group_name" class="custom-align-right" v-if="form.is_group == 1"
             :disabled="this.$route.query.id != undefined">
-            <el-input v-model="form.group_name" autocomplete="off" placeholder="请输入群聊名称"></el-input>
+            <el-input v-model="form.group_name" autocomplete="off" placeholder="请输入群聊名称"
+              :disabled="this.$route.query.id != undefined"></el-input>
           </el-form-item>
         </div>
       </el-form>
@@ -166,6 +167,9 @@ export default {
         is_group: 0,//是否创建群聊:1:是,0:否
         group_name: '',//群聊名称
         time: [],//发布日期
+        status: 1,//状态:1:草稿,2:已发布
+        start: '',//开始时间
+        end: '',//结束时间
       },
       //1.2 表单验证规则
       formRules: {
@@ -177,6 +181,7 @@ export default {
         content: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         address: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         is_group: [{ required: true, trigger: 'blur', validator: validateEmpty }],
+        group_name: [{ required: true, trigger: 'blur', validator: validateEmpty }],
         time: [{ required: true, trigger: 'blur', validator: validateArray }],
       },
       //1.3富文本编辑器配置
@@ -338,6 +343,10 @@ export default {
         });
       })
     },
+    changeTime(val) {
+      this.form.start = this.formatDateToYYYYMMDD(val[0]);
+      this.form.end = this.formatDateToYYYYMMDD(val[1]);
+    },
     //1.提交表单 start ------------------------------------------------------------>
     beforeAvatarUpload(file) {
       console.log(file.type, '--------------------------------');
@@ -407,26 +416,36 @@ export default {
             this.form.department_arr_id = JSON.stringify(this.form.department_arr_id);
           }
           if (typeof this.form.time == 'object' && this.form.time.length > 0) {
-            this.form.start = this.formatDate(this.form.time[0]);
-            this.form.end = this.formatDate(this.form.time[1]);
+            // this.form.start = this.formatDate(this.form.time[0]);
+            // this.form.end = this.formatDate(this.form.time[1]);
             delete this.form.time;
           }
           delete this.form.cat_arr_id;
           delete this.form.timelist;
           delete this.form.catid;
           this.form.file = this.file;
-          if (this.userType == 10000) {
-            this.form.status = 2
-          } else {
-            this.form.status = 1
-          }
+          // if (this.userType == 10000) {
+          //   this.form.status = 2
+          // } else {
+          //   this.form.status = 1
+          // }
           this.$store.dispatch('news/addNotice', this.form).then(res => {
             if (res.code == 200) {
-              //汇报结果
-              this.$message({
-                type: 'success',
-                message: '已成功添加通知!'
-              });
+              // 管理员
+              if (this.userType == 10000) {
+                let data = {
+                  id: res.data,
+                  status: 2
+                }
+                this.$store.dispatch('news/updateNoticeStatus', data).then(res => {
+                  if (res.code == 200) {
+                    this.$message({
+                      type: 'success',
+                      message: '已成功添加通知!'
+                    });
+                  }
+                })
+              }
               this.cleatForm();
               //返回列表页
               this.returnPage()
@@ -451,6 +470,12 @@ export default {
         return date;
       }
     },
+    formatDateToYYYYMMDD(date) {
+      let year = date.getFullYear();
+      let month = String(date.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
+      let day = String(date.getDate()).padStart(2, '0');
+      return `${year}-${month}-${day}`;
+    },
     //1.3 清理表单
     cleatForm() {
     },
@@ -471,7 +496,7 @@ export default {
         id: this.$route.query.id
       };
       this.$store.dispatch('news/getNoticeInfo', data).then(res => {
-        console.log(res);
+        console.log('getNoticeInfo', res);
         this.form.name = res.data.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);
@@ -493,6 +518,8 @@ export default {
         if (res.data.start != null && res.data.end != null) {
           this.form.time = [res.data.start, res.data.end];
         }
+        this.form.start = res.data.start;
+        this.form.end = res.data.end;
         this.form.file = res.data.file;
         this.file = res.data.file;
         const filePath = res.data.file;
@@ -562,8 +589,8 @@ export default {
           }
           console.log(typeof this.form.time, '---=-==-=')
           if (typeof this.form.time == 'object' && this.form.time.length > 0 && this.form.time[0] != '' && this.form.time[1] != '') {
-            this.form.start = this.formatDate(this.form.time[0]);
-            this.form.end = this.formatDate(this.form.time[1]);
+            // this.form.start = this.formatDateToYYYYMMDD(this.form.time[0]);
+            // this.form.end = this.formatDateToYYYYMMDD(this.form.time[1]);
             delete this.form.time;
           }
           delete this.form.cat_arr_id;

+ 3 - 3
src/views/news/ncomplaintList.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :span="6">
             <div class="searchBox">
-              <div class="searchTitle">行政职能:</div>
+              <div class="searchTitle">投诉类型:</div>
               <el-select v-model="getApiData.department_id" placeholder="请选择..">
                 <el-option v-for="department in department" :key="department.id" :label="department.name"
                   :value="department.id"></el-option>
@@ -58,9 +58,9 @@
             <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="department_name" label="行政职能" width="">
+            <el-table-column prop="department_name" label="投诉类型" width="">
             </el-table-column>
-            <el-table-column prop="cityname" label="接收人" width="">
+            <el-table-column prop="cityname" label="投诉地区" width="">
             </el-table-column>
 
             <el-table-column prop="status" label="审核状态" width="">

+ 2 - 2
src/views/news/ncomplaintListApply.vue

@@ -13,7 +13,7 @@
           </el-col>
           <el-col :span="6">
             <div class="searchBox">
-              <div class="searchTitle">行政职能:</div>
+              <div class="searchTitle">投诉类型:</div>
               <el-select v-model="getApiData.department_id" placeholder="请选择..">
                 <el-option v-for="department in department" :key="department.id" :label="department.name"
                   :value="department.id"></el-option>
@@ -57,7 +57,7 @@
             </el-table-column>
             <el-table-column prop="department_name" label="投诉类型" width="">
             </el-table-column>
-            <el-table-column prop="cityname" label="接收人" width="">
+            <el-table-column prop="cityname" label="投诉地区" width="">
             </el-table-column>
 
             <el-table-column prop="status" label="审核状态" width="">

+ 35 - 11
src/views/news/ncomplaintListDeal.vue

@@ -13,11 +13,10 @@
           </el-col>
           <el-col :span="6">
             <div class="searchBox">
-              <div class="searchTitle">行政职能:</div>
+              <div class="searchTitle">投诉类型:</div>
               <el-select v-model="getApiData.department_id" placeholder="请选择..">
                 <el-option v-for="department in department" :key="department.id" :label="department.name"
                   :value="department.id"></el-option>
-
               </el-select>
             </div>
           </el-col>
@@ -57,7 +56,7 @@
             </el-table-column>
             <el-table-column prop="department_name" label="投诉类型" width="">
             </el-table-column>
-            <el-table-column prop="cityname" label="接收人" width="">
+            <el-table-column prop="cityname" label="投诉地区" width="">
             </el-table-column>
 
             <el-table-column prop="status" label="审核状态" width="">
@@ -97,15 +96,18 @@
             <el-table-column fixed="right" label="操作" width="400" header-align="center">
               <template slot-scope="scope">
                 <div class="listBtnBox">
-                  <div class="listMainBtn" v-if="scope.row.deal == 1" @click="getUpRow(scope.row.id, tableData)"><i
-                      class="el-icon-check"></i>处理
+                  <div class="listMainBtn" v-if="scope.row.deal == 1" @click="getUpRow(scope.row.id, tableData)">
+                    <i class="el-icon-check"></i>处理
                   </div>
-                  <div class="listMainBtn" v-if="scope.row.deal == 2" @click="setOverRow(scope.row.id, tableData)"><i
-                      class="el-icon-check"></i>完结
+                  <div class="listMainBtn" v-if="scope.row.deal == 2" @click="setOverRow(scope.row.id, tableData)">
+                    <i class="el-icon-check"></i>完结
+                  </div>
+                  <div class="listMainBtn" v-if="scope.row.deal == 4" @click="getReason(scope.row.id, tableData)">
+                    <i class="el-icon-check"></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>
               </template>
             </el-table-column>
@@ -128,7 +130,8 @@
     <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-form-item label="驳回原因:" :label-width="formLabelWidth" prop="reason" class="custom-align-right"
+            label-width="85px">
             <el-input type="textarea" v-model="form.reason" class="custom-textarea" placeholder="请输入驳回原因"
               :rows="3"></el-input>
           </el-form-item>
@@ -142,6 +145,14 @@
       </div>
     </el-dialog>
     <!--弹出框1:外部表单弹出框 end------------------------------------------------------------>
+    <!-- 弹出框2 驳回理由 start-->
+    <el-dialog title="驳回理由" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
+      <span>{{ reason }}</span>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+      </span>
+    </el-dialog>
+    <!-- 弹出框2 驳回理由 end -->
     <!--表格内容 end------------------------------------------------------------>
   </div>
 </template>
@@ -161,6 +172,8 @@ export default {
   },
   data() {
     return {
+      dialogVisible: false,//弹出框2
+      reason: "",//驳回理由
       //1.列表和分页相关 start ------------------------------------------------------------>
       tableDivTitle: "投诉列表",
       tableData: [],//内容
@@ -212,6 +225,7 @@ export default {
                 message: '操作成功!'
               });
               this.getData();
+              this.reason = this.form.reason
               this.form.reason = "";//清空上一次的输入
               this.examineWindow = false;
             }
@@ -261,6 +275,16 @@ export default {
 
       })
     },
+    //查看驳回理由
+    getReason(id) {
+      this.dialogVisible = true
+      let data = {
+        id: id
+      };
+      this.$store.dispatch('news/getComplaintInfo', data).then(res => {
+        this.reason = res.data.deal_reason
+      })
+    },
     upRow(id, deal, status) {
       let data = {
         id: id,

+ 1 - 2
src/views/news/noticeListApply.vue

@@ -28,7 +28,7 @@
 
     <div class="layerBoxNoBg">
       <div>
-        <el-button type="primary" @click="goCreat">发布通知</el-button>
+        <!-- <el-button type="primary" @click="goCreat">发布通知</el-button> -->
       </div>
       <div>
         <el-button @click="clearSearchList">重置</el-button>
@@ -215,7 +215,6 @@ export default {
         distinguishCancelAndClose: true,  // 关键配置项,用于区分取消和关闭按钮
         type: 'warning'
       }).then(() => {
-
         this.upRow(id, 2)
       }).catch((the_reback) => {
         //输入驳回理由

+ 1 - 1
src/views/notice/adminComplaint.vue

@@ -76,7 +76,7 @@
                         <el-table-column prop="start" label="发生日期" width="">
                         </el-table-column>
                         <el-table-column prop="created_at" label="创建时间" width=""></el-table-column>
-                        <el-table-column fixed="right" label="操作" width="300" 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.id, tableData)"><i

+ 7 - 5
src/views/notice/adminNotice.vue

@@ -13,9 +13,9 @@
                     <el-col :span="6">
                         <div class="searchBox">
                             <div class="searchTitle">类型:</div>
-                            <el-select v-model="getApiData.type" placeholder="请选择类型">
-                                <el-option label="通知" value="1"></el-option>
-                                <el-option label="公告" value="2"></el-option>
+                            <el-select v-model="noticeType" placeholder="请选择类型">
+                                <el-option label="公告" value="1"></el-option>
+                                <el-option label="通知" value="2"></el-option>
                             </el-select>
                         </div>
                     </el-col>
@@ -127,11 +127,12 @@ export default {
             tableDivTitle: "通知列表",
             tableData: [],//内容
             editId: 0,//要修改的网站id
+            noticeType: null,
             getApiData: {
                 name: "",//标题
                 category_name: "",//导航池id
                 website_name: "",//网站名称
-                type_id: "",//发布类型
+                type: null,//类型
                 status: 2,
                 page: 1,//当前是第几页
                 page_size: 10,//一共多少条
@@ -161,6 +162,7 @@ export default {
         getData(type) {
             if (type == "search") {
                 this.getApiData.page = 1;
+                this.getApiData.type = Number(this.noticeType);
             }
             console.log(this.getApiData, '---1--')
             this.$store.dispatch('news/getNoticeList', this.getApiData).then(res => {
@@ -237,7 +239,7 @@ export default {
             this.tableData = [];
             this.getApiData.title = "";
             this.getApiData.level = "";
-
+            this.getApiData.type = "";
             this.getApiData.page = 1;
             this.getApiData.pageSize = 10;
             this.getData();

+ 77 - 98
src/views/notice/complaintDetail.vue

@@ -12,12 +12,12 @@
                             </div>
                             <div class="article-meta">
                                 <div class="left">
-                                    <span>投诉地区:北京市-大兴区</span>
-                                    <span>投诉类型:公安</span>
+                                    <span class="left_place">投诉地区:北京市-大兴区</span>
+                                    <span class="left_type"> 投诉类型:公安</span>
                                 </div>
                                 <span class="happenTime">发生日期:2023-08-01 10:00:00</span>
                             </div>
-                            <el-divider> </el-divider>
+                            <div class="line"></div>
                             <div class="detail_title">
                                 <div class="title">
                                     事件描述:
@@ -27,7 +27,7 @@
                                 <div class="article-author">
                                     <div class="article_box">
                                         <div class="article_panel" :class="{ collapsed: !isExpanded }">
-                                            <div v-html="dataInfo.content"></div>
+                                            <div>{{ dataInfo.content }}</div>
                                         </div>
                                         <span class="article_panel_btn" v-if="showReadMoreBtn && !isExpanded"
                                             @click="toggleExpand">
@@ -37,15 +37,19 @@
                                     </div>
                                 </div>
                             </div>
-                            <div>我的要求:</div>
+                            <div class="detail_title">
+                                <div class="title">
+                                    我的要求:
+                                </div>
+                            </div>
                             <div class="background-color">
                                 <div class="article-author">
                                     <div class="article_box">
-                                        <div class="article_panel" :class="{ collapsed: !isExpanded }">
-                                            <div v-html="dataInfo.content"></div>
+                                        <div class="article_panel1" :class="{ collapsed: !isExpanded1 }">
+                                            <div>{{ dataInfo.want }}</div>
                                         </div>
-                                        <span class="article_panel_btn" v-if="showReadMoreBtn && !isExpanded"
-                                            @click="toggleExpand">
+                                        <span class="article_panel_btn" v-if="showReadMoreBtn1 && !isExpanded1"
+                                            @click="toggleExpand1">
                                             阅读全文
                                             <i class="el-icon-arrow-down"></i>
                                         </span>
@@ -57,30 +61,20 @@
                             <div class="box_1 clearfix">
                                 <div class="box_in">附件:</div>
                             </div>
-
-                            <!-- <div class="comment-list">
-                                <div class="comment_li" v-for="(per_obj, keys) in replyList" :key="keys">
-                                    <el-avatar class="comment_li_img" :src="per_obj.avatar" />
-                                    <div class="comment_li_name">{{ per_obj.nickname }}:</div>
-                                    <div class="comment_li_text">
-                                        {{ per_obj.content }}
-                                    </div>
-                                    <div class="comment_li_time">{{ per_obj.created_at }}</div>
+                            <div class="comment-list" v-if="dataInfo.file">
+                                <div class="comment_li">
+                                    {{ dataInfo.file }}
+                                </div>
+                            </div>
+                            <div class="comment-list" v-else>
+                                <div class="comment_empty">
+                                    <img src="@/assets/notice/empty.png" alt="" class="empty_img">
+                                    暂无附件内容
                                 </div>
-                            </div> -->
-                            <!-- <div class="alignBox">
-                                <el-row>
-                                    <el-col :span="24">
-                                        <el-pagination :current-page="getApiData.page" @size-change="handleSizeChange"
-                                            @current-change="handleCurrentChange" :page-size="5"
-                                            layout="total, prev, pager, next, jumper" :total="allCount"></el-pagination>
-                                    </el-col>
-                                </el-row>
-                            </div> -->
+                            </div>
                             <div class="comment-actions">
                                 <el-button type="info" @click="goBack">返回</el-button>
-                                <!-- <el-button type="info" plain>信息按钮</el-button> -->
-                                <!-- <el-button type="primary" @click="viewGroupChat">查看群聊</el-button> -->
+                                <el-button type="primary">确认</el-button>
                             </div>
                         </div>
                     </div>
@@ -112,6 +106,8 @@ export default {
             dataInfo: {},
             isExpanded: false, // btn添加展开状态
             showReadMoreBtn: false,
+            isExpanded1: false, // btn添加展开状态
+            showReadMoreBtn1: false,
             //1.列表和分页相关 start ------------------------------------------------------------>
             tableDivTitle: "通知详情",
             getApiData: {
@@ -136,27 +132,24 @@ export default {
             this.getTopicReplyList();
         },
         toggleExpand() { // 添加切换方法
-
             this.isExpanded = true;
         },
+        toggleExpand1() { // 添加切换方法
+            this.isExpanded1 = true;
+        },
         checkPanelHeight() {
             this.$nextTick(() => {
                 const panel = this.$el.querySelector('.article_panel');
                 if (panel) {
-                    this.showReadMoreBtn = panel.scrollHeight > 270;
+                    this.showReadMoreBtn = panel.scrollHeight > 400;
+                }
+            });
+            this.$nextTick(() => {
+                const panel1 = this.$el.querySelector('.article_panel1');
+                if (panel1) {
+                    this.showReadMoreBtn1 = panel1.scrollHeight > 400;
                 }
             });
-        },
-        getDataINfo() {
-            getTopicDataInfo({
-                id: self.id
-            }).then(data => {
-                // this.loading=false;
-                console.log("返回数据", data.data);
-                this.dataInfo = data.data;
-                console.log("赋值:", self.dataInfo)
-
-            })
         },
         getTopicReplyList() {
             getTopicReply({
@@ -183,10 +176,10 @@ export default {
 
         getMainData() {
             let data = {
-                id: 41
+                id: this.$route.query.id
             };
-            this.$store.dispatch('news/getNoticeInfo', data).then(res => {
-                console.log('详情数据', res);
+            this.$store.dispatch('news/getComplaintInfo', data).then(res => {
+                console.log('详情数据121', res);
                 this.dataInfo = res.data;
             })
         },
@@ -194,7 +187,7 @@ export default {
     mounted() {
         // 1.获取详情数据
         self.id = this.$route.query.id + '';
-        this.getDataINfo();
+        // this.getDataINfo();
         this.getTopicReplyList();
         this.checkPanelHeight();
         // 可选:如果你需要监听(一般只在调试时用)
@@ -204,19 +197,16 @@ export default {
     beforeDestroy() {
         emitter.off('view-group-chat', this.handleViewGroupChat);
     },
-    // watch: {
-    //     'dataInfo.content': function () {
-    //         this.checkPanelHeight();
-    //     }
-    // }
+    watch: {
+        'dataInfo.content': function () {
+            this.checkPanelHeight();
+        }
+    }
 }
 </script>
 
 <style scoped lang="less">
 .article-detail {
-    // padding: 24px;
-    // background: #f5f7fa;
-    min-height: 100vh;
 
     .article-card {
         margin-bottom: 24px;
@@ -245,6 +235,14 @@ export default {
 
             .left {
                 float: left;
+
+                .left_place {
+                    margin-right: 20px;
+                }
+
+                .left_type {
+                    margin-right: 20px;
+                }
             }
 
             .article-link {
@@ -257,12 +255,19 @@ export default {
             }
         }
 
+        .line {
+            height: 1px;
+            background: #E1E1E1;
+            margin-top: 24px;
+        }
+
 
         .detail_title {
             height: 40px;
             line-height: 40px;
             border-bottom: 1px solid #E1E1E1;
-            margin-bottom: 40px;
+            margin: 30px 0px;
+
 
             .title {
                 width: 103px;
@@ -283,7 +288,6 @@ export default {
                 font-size: 18px;
                 color: #6A82F3;
                 text-align: center;
-                // margin-right: 16px;
                 display: block;
                 line-height: 30px;
             }
@@ -291,7 +295,6 @@ export default {
     }
 
     .comment-section {
-        // padding: 24px 32px;
         background: #fff;
         border-radius: 8px;
 
@@ -299,9 +302,6 @@ export default {
             font-weight: bold;
             font-size: 22px;
             color: #5570F1;
-            // font-size: 16px;
-            // font-weight: bold;
-            // color: #333;
             margin-bottom: 8px;
             text-align: left;
         }
@@ -325,48 +325,28 @@ export default {
             min-height: 200px;
 
             .comment_li {
+                padding: 0px 30px;
+                height: 84px;
+                line-height: 84px;
                 background: #FAFAFA;
                 border: solid 1px #E1E1E1;
                 overflow: hidden;
                 margin-bottom: 20px;
+                color: #333333;
             }
 
-            .comment_li_img {
-                float: left;
-                width: 52px;
-                height: 52px;
-                border-radius: 50%;
-                margin: 30px 0px 30px 30px;
-            }
-
-            .comment_li_name {
-                float: left;
-                margin: 44px 0px 44px 20px;
-                color: #333;
-                font-size: 16px;
-                line-height: 24px;
-            }
-
-            .comment_li_text {
-                float: left;
-                margin: 45px 0px 11px 20px;
-                color: #333;
-                font-size: 16px;
-                line-height: 24px;
-                font-weight: bold;
-                max-width: 1000px;
-            }
+            .comment_empty {
+                text-align: center;
+                font-size: 26px;
+                color: #ccc;
+                font-weight: 500;
+                padding: 40px 0px;
 
-            .comment_li_time {
-                float: right;
-                margin: 44px 30px 44px 0px;
-                color: #999;
-                font-size: 16px;
-                line-height: 24px;
+                .empty_img {
+                    vertical-align: -25px;
+                }
             }
 
-
-
             .comment-item {
                 display: flex;
                 align-items: center;
@@ -471,9 +451,8 @@ export default {
     }
 
     .background-color {
-        min-height: 617px;
         background: #f0f2f5;
-        padding: 10px 20px 0px 20px;
+        padding: 10px 20px;
     }
 
     .clearfix::after {
@@ -506,7 +485,8 @@ export default {
     overflow: hidden;
 }
 
-.article_panel {
+.article_panel,
+.article_panel1 {
     transition: max-height 0.3s;
     overflow: hidden;
     position: relative;
@@ -523,7 +503,6 @@ export default {
             left: 0;
             right: 0;
             bottom: 0;
-            // height: 36px;
             background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 80%);
             pointer-events: none;
         }

+ 45 - 90
src/views/notice/noticeDetail.vue

@@ -4,7 +4,7 @@
             <tableTitle :name="tableDivTitle" />
             <el-row>
                 <template>
-                    <!-- 在此位置下面写 -->
+                    <!-- 页面头部 -->
                     <div class="article-detail">
                         <div class="article-card">
                             <div class="article-title">
@@ -17,13 +17,18 @@
                                 <div class="left">
                                     <span class="article-meta-item1" v-if="dataInfo.type == 1">公告</span>
                                     <span class="article-meta-item1" v-if="dataInfo.type == 2">通知</span>
-                                    <span class="article-meta-item3"> {{ dataInfo.group_name }}</span>
-                                    <el-button class="top-button" type="primary" @click="viewGroupChat">查看群聊</el-button>
+                                    <span class="article-meta-item3" v-if="dataInfo.group_name">
+                                        {{ dataInfo.group_name }}
+                                    </span>
+                                    <el-button class="top-button" type="primary" @click="viewGroupChat"
+                                        v-if="dataInfo.group_name">
+                                        查看群聊
+                                    </el-button>
                                 </div>
-
                                 <span class="happenTime">发生日期:{{ dataInfo.start }}</span>
                             </div>
                             <el-divider></el-divider>
+                            <!-- 页面内容 -->
                             <div class="background-color">
                                 <div class="article-author">
                                     <div class="article_box">
@@ -39,34 +44,26 @@
                                 </div>
                             </div>
                         </div>
+                        <!-- 附件 -->
                         <div class="comment-section">
                             <div class="box_1 clearfix">
                                 <div class="box_in">附件:</div>
                             </div>
-
-                            <div class="comment-list">
-                                <!-- <div class="comment_li" v-for="(per_obj, keys) in replyList" :key="keys">
-                                    <el-avatar class="comment_li_img" :src="per_obj.avatar" />
-                                    <div class="comment_li_name">{{ per_obj.nickname }}:</div>
-                                    <div class="comment_li_text">
-                                        {{ per_obj.content }}
-                                    </div>
-                                    <div class="comment_li_time">{{ per_obj.created_at }}</div>
-                                </div> -->
+                            <div class="comment-list" v-if="dataInfo.file">
+                                <div class="comment_li">
+                                    {{ dataInfo.file }}
+                                </div>
                             </div>
-                            <!-- <div class="alignBox">
-                                <el-row>
-                                    <el-col :span="24">
-                                        <el-pagination :current-page="getApiData.page" @size-change="handleSizeChange"
-                                            @current-change="handleCurrentChange" :page-size="5"
-                                            layout="total, prev, pager, next, jumper" :total="allCount"></el-pagination>
-                                    </el-col>
-                                </el-row>
-                            </div> -->
+                            <div class="comment-list" v-else>
+                                <div class="comment_empty">
+                                    <img src="@/assets/notice/empty.png" alt="" class="empty_img">
+                                    暂无附件内容
+                                </div>
+                            </div>
+                            <!-- 操作按钮 -->
                             <div class="comment-actions">
                                 <el-button type="info" @click="goBack">返回</el-button>
-                                <!-- <el-button type="info" plain>信息按钮</el-button> -->
-                                <!-- <el-button type="primary" @click="viewGroupChat">查看群聊</el-button> -->
+                                <el-button type="primary">确认</el-button>
                             </div>
                         </div>
                     </div>
@@ -122,7 +119,6 @@ export default {
             this.getTopicReplyList();
         },
         toggleExpand() { // 添加切换方法
-
             this.isExpanded = true;
         },
         checkPanelHeight() {
@@ -133,17 +129,6 @@ export default {
                 }
             });
         },
-        getDataINfo() {
-            getTopicDataInfo({
-                id: self.id
-            }).then(data => {
-                // this.loading=false;
-                console.log("返回数据", data.data);
-                this.dataInfo = data.data;
-                console.log("赋值:", self.dataInfo)
-
-            })
-        },
         getTopicReplyList() {
             getTopicReply({
                 id: self.id,
@@ -180,7 +165,7 @@ export default {
     mounted() {
         // 1.获取详情数据
         self.id = this.$route.query.id + '';
-        this.getDataINfo();
+        // this.getDataINfo();
         this.getTopicReplyList();
         this.checkPanelHeight();
         // 可选:如果你需要监听(一般只在调试时用)
@@ -190,26 +175,22 @@ export default {
     beforeDestroy() {
         emitter.off('view-group-chat', this.handleViewGroupChat);
     },
-    // watch: {
-    //     'dataInfo.content': function () {
-    //         this.checkPanelHeight();
-    //     }
-    // }
+    watch: {
+        'dataInfo.content': function () {
+            this.checkPanelHeight();
+        }
+    }
 }
 </script>
 
 <style scoped lang="less">
 .article-detail {
-    // padding: 24px;
-    // background: #f5f7fa;
-    min-height: 100vh;
+    // min-height: 100vh;
 
     .article-card {
         margin-bottom: 24px;
         padding: 24px 0px;
         background: #fff;
-        // border-radius: 8px;
-        // box-shadow: 0 2px 8px rgba(0,0,0,0.04);
 
         .article-title {
             font-family: Microsoft YaHei, Microsoft YaHei;
@@ -246,7 +227,6 @@ export default {
         }
 
         .article-content {
-            // margin: 18px 0 12px 0;
             color: #444;
             font-size: 15px;
             line-height: 1.8;
@@ -263,7 +243,6 @@ export default {
                 font-size: 18px;
                 color: #6A82F3;
                 text-align: center;
-                // margin-right: 16px;
                 display: block;
                 line-height: 30px;
             }
@@ -271,7 +250,6 @@ export default {
     }
 
     .comment-section {
-        // padding: 24px 32px;
         background: #fff;
         border-radius: 8px;
 
@@ -279,9 +257,6 @@ export default {
             font-weight: bold;
             font-size: 22px;
             color: #5570F1;
-            // font-size: 16px;
-            // font-weight: bold;
-            // color: #333;
             margin-bottom: 8px;
             text-align: left;
         }
@@ -305,48 +280,28 @@ export default {
             min-height: 200px;
 
             .comment_li {
+                padding: 0px 30px;
+                height: 84px;
+                line-height: 84px;
                 background: #FAFAFA;
                 border: solid 1px #E1E1E1;
                 overflow: hidden;
                 margin-bottom: 20px;
+                color: #333333;
             }
 
-            .comment_li_img {
-                float: left;
-                width: 52px;
-                height: 52px;
-                border-radius: 50%;
-                margin: 30px 0px 30px 30px;
-            }
-
-            .comment_li_name {
-                float: left;
-                margin: 44px 0px 44px 20px;
-                color: #333;
-                font-size: 16px;
-                line-height: 24px;
-            }
-
-            .comment_li_text {
-                float: left;
-                margin: 45px 0px 11px 20px;
-                color: #333;
-                font-size: 16px;
-                line-height: 24px;
-                font-weight: bold;
-                max-width: 1000px;
-            }
+            .comment_empty {
+                text-align: center;
+                font-size: 26px;
+                color: #ccc;
+                font-weight: 500;
+                padding: 40px 0px;
 
-            .comment_li_time {
-                float: right;
-                margin: 44px 30px 44px 0px;
-                color: #999;
-                font-size: 16px;
-                line-height: 24px;
+                .empty_img {
+                    vertical-align: -25px;
+                }
             }
 
-
-
             .comment-item {
                 display: flex;
                 align-items: center;
@@ -383,7 +338,7 @@ export default {
             display: flex;
             justify-content: center;
             gap: 16px;
-            margin-top: 12px;
+            margin-top: 30px;
         }
     }
 
@@ -451,9 +406,9 @@ export default {
     }
 
     .background-color {
-        min-height: 617px;
+        // min-height: 617px;
         background: #f0f2f5;
-        padding: 10px 20px 0px 20px;
+        padding: 10px 20px;
     }
 
     .clearfix::after {