Ver código fonte

重要提醒消息已接受和信息反馈,以及搜索功能

“yueshang” 1 ano atrás
pai
commit
90f18dbaeb

+ 16 - 1
src/api/backend/remindInfo.js

@@ -39,7 +39,13 @@ export function getRemindInfo(id) {
     method: 'get'
   })
 }
-
+//获取当前登录者街道信息
+export function getuserinfo(id) {
+  return request({
+    url: '/backend/s9-user/getuserinfo?id=' + id,
+    method: 'get'
+  })
+}
 // 获得重要提醒信息分页
 export function getRemindInfoPage(query) {
   return request({
@@ -58,3 +64,12 @@ export function exportRemindInfoExcel(query) {
     responseType: 'blob'
   })
 }
+//完成
+export function remindBroadFinish(data) {
+  return request({
+    url: '/backend/remind-broad/finish',
+    method: 'post',
+    data: data
+  })
+}
+

+ 62 - 62
src/api/backend/street.js

@@ -1,62 +1,62 @@
-import request from '@/utils/request'
-
-// 创建街道信息
-export function createStreet(data) {
-  return request({
-    url: '/backend/street/create',
-    method: 'post',
-    data: data
-  })
-}
-
-// 更新街道信息
-export function updateStreet(data) {
-  return request({
-    url: '/backend/street/update',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除街道信息
-export function deleteStreet(id) {
-  return request({
-    url: '/backend/street/delete?id=' + id,
-    method: 'delete'
-  })
-}
-
-// 获得街道信息
-export function getStreet(id) {
-  return request({
-    url: '/backend/street/get?id=' + id,
-    method: 'get'
-  })
-}
-// 获得街道信息列表
-export function getStreetList() {
-  return request({
-    url: '/backend/street/getAll',
-    method: 'get'
-  })
-}
-
-// 获得街道信息分页
-export function getStreetPage(query) {
-  return request({
-    url: '/backend/street/page',
-    method: 'get',
-    params: query
-  })
-}
-
-// 导出街道信息 Excel
-export function exportStreetExcel(query) {
-  return request({
-    url: '/backend/street/export-excel',
-    method: 'get',
-    params: query,
-    responseType: 'blob'
-  })
-}
-
+import request from '@/utils/request'
+
+// 创建街道信息
+export function createStreet(data) {
+  return request({
+    url: '/backend/street/create',
+    method: 'post',
+    data: data
+  })
+}
+
+// 更新街道信息
+export function updateStreet(data) {
+  return request({
+    url: '/backend/street/update',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除街道信息
+export function deleteStreet(id) {
+  return request({
+    url: '/backend/street/delete?id=' + id,
+    method: 'delete'
+  })
+}
+
+// 获得街道信息
+export function getStreet(id) {
+  return request({
+    url: '/backend/street/get?id=' + id,
+    method: 'get'
+  })
+}
+// 获得街道信息列表
+export function getStreetList() {
+  return request({
+    url: '/backend/street/getAll',
+    method: 'get'
+  })
+}
+
+// 获得街道信息分页
+export function getStreetPage(query) {
+  return request({
+    url: '/backend/street/page',
+    method: 'get',
+    params: query
+  })
+}
+
+// 导出街道信息 Excel
+export function exportStreetExcel(query) {
+  return request({
+    url: '/backend/street/export-excel',
+    method: 'get',
+    params: query,
+    responseType: 'blob'
+  })
+}
+

+ 363 - 0
src/components/choiceOrange/index.vue

@@ -0,0 +1,363 @@
+<template>
+  <div>
+    <div>
+      <!-- 搜索工作栏 -->
+      <el-form
+        v-if="clickType == 3"
+        :model="queryParamsStreet"
+        ref="queryForm"
+        size="small"
+        :inline="true"
+        v-show="showSearch"
+        label-width="68px"
+      >
+        <el-form-item label="组织名称" prop="qumc">
+          <el-input
+            v-model="queryParamsStreet.qumc"
+            placeholder="请输入组织名称"
+            clearable
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" icon="el-icon-search" @click="handleQuery"
+            >搜索</el-button
+          >
+          <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
+        </el-form-item>
+      </el-form>
+      <right-toolbar
+        :showSearch.sync="showSearch"
+        @queryTable="getOrgList"
+      ></right-toolbar>
+      <!-- 操作工具栏 -->
+      <!-- <el-row :gutter="10" class="mb8">
+                                        <right-toolbar :showSearch.sync="showSearch" @queryTable="getOrgList"></right-toolbar>
+                                    </el-row> -->
+      <!-- <el-form  size="small" :inline="true" label-width="68px"> -->
+
+      <!-- </el-form> -->
+    </div>
+    <div style="display: flex; justify-content: space-between">
+      <div style="width: 45%; min-width: 775px">
+        <!-- 列表 -->
+        <el-table
+          v-loading="orgloading"
+          :data="leftDataList"
+          @row-click="tableRowClick"
+          height="50vh"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column type="selection" width="100"> </el-table-column>
+          <el-table-column label="序号" type="index"  width="100"/>
+          <el-table-column
+            label="组织名称"
+            
+            prop="deptName"
+            v-if="clickType == 2"
+          >
+          </el-table-column>
+          <el-table-column
+            label="组织名称"
+           
+            prop="qumc"
+            v-if="clickType == 3"
+          >
+          </el-table-column>
+        </el-table>
+        <!-- 分页组件 -->
+        <pagination
+          v-show="orgtotal > 0 && clickType == 3"
+          :total="orgtotal"
+          :page.sync="orgqueryParams.pageNo"
+          :limit.sync="orgqueryParams.pageSize"
+          @pagination="getOrgList"
+        />
+      </div>
+      <div
+        style="
+          width: 10%;
+          display: flex;
+          align-items: center;
+          justify-content: center;
+        "
+      >
+        <el-button
+          icon="el-icon-caret-left"
+          plain
+          class="icon-button"
+          @click="OrgCaretToLeft"
+        ></el-button>
+        <el-button
+          icon="el-icon-caret-right"
+          plain
+          class="icon-button"
+          @click="OrgCaretToRight"
+        ></el-button>
+      </div>
+      <div style="width: 45%">
+        <!-- 列表 -->
+        <el-table
+          v-loading="Righloading"
+          :data="alreadySelectedOrgList"
+          @row-click="tableRowClick"
+          height="50vh"
+          @selection-change="RighthandleSelectionChange"
+        >
+          <el-table-column type="selection" width="100"> </el-table-column>
+          <el-table-column label="序号" type="index"  width="100"/>
+          <el-table-column label="组织名称" prop="deptName"
+            ><template v-slot="scope">
+              <span v-if="scope.row.deptName">{{ scope.row.deptName }}</span>
+              <span v-if="scope.row.qumc">{{ scope.row.qumc }}</span>
+            </template></el-table-column
+          >
+        </el-table>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+import { DICT_TYPE, getDictDatas } from "@/utils/dict";
+import { getDdlist } from "@/api/backend/statistics";
+import { getStreetPage } from "@/api/backend/street";
+export default {
+  components: {},
+  data() {
+    return {
+      // =======单位信息==========================
+
+      // 显示搜索条件
+      showSearch: true,
+      // 单位信息管理列表
+      list: [],
+      // 总条数
+      orgtotal: 0,
+      // 遮罩层
+      orgloading: true,
+      Righloading: false,
+      // 左侧查询参数
+      orgqueryParams: {
+        pageNo: 1,
+        pageSize: 10,
+        userId: this.$store.state.user.id,
+      },
+      // 左侧已选择单位信息列表
+      leftSelectedOrgList: [],
+      // 右侧已选择单位信息列表
+      rightSelectedOrgList: [],
+      // 最终选择的单位信息列表
+      alreadySelectedOrgList: [],
+      // 最终选择的单位信息列表总条数
+      alreadySelectedOrgtotal: 0,
+      // 右侧查询参数
+      alreadySelectedOrgqueryParams: {
+        pageNo: 1,
+        pageSize: 10,
+        // userId: '',
+      },
+      orgType: [],
+      // 数据字典
+      statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS), //状态
+
+      deptOptionsList: {},
+      leftDataList: [],
+      queryParamsStreet: {
+        // 查询参数
+        pageNo: 1,
+        pageSize: 10,
+        userId: null,
+        sjxfjg: null,
+      },
+    };
+  },
+  computed: {},
+  created() {
+    // this.getTreeselect();
+    this.Orgreset();
+    this.getOrgList();
+    this.getDeptData(); //获取街道和大队的数据
+  },
+  props: {
+    userId: {
+      // type: Number
+    },
+    type: {
+      // 判断类型
+      type: String,
+    },
+    clickType: {
+      //默认选择组织为大队
+      type: Number,
+      default: 2,
+    },
+    open:{
+        type:Boolean,
+        default:false
+    }
+  },
+  watch: {
+    userId: {
+      //深度监听,可监听到对象、数组的变化
+      handler(newV, oldV) {
+        this.Orgreset();
+        this.getOrgList();
+      },
+      deep: true,
+    },
+    clickType: {
+      //深度监听
+      handler(newV, oldV) {
+        this.getDeptData();
+      },
+      deep: true,
+      immediate: true,
+    },
+    open: {
+      //深度监听
+      handler(newV, oldV) {
+        if(!newV){
+            this.alreadySelectedOrgList = [];
+            this.leftSelectedOrgList = [];
+        }
+      },
+      deep: true,
+      immediate: true,
+    },
+  },
+  methods: {
+    /** 获取消防大队和街道的数据 */
+    getDeptData() {
+      if (this.clickType == 2) {
+        getDdlist().then((res) => {
+          this.orgloading = false;
+          this.leftDataList = res.data;
+        });
+      } else if (this.clickType == 3) {
+        console.log("this.clickType", this.clickType);
+        this.queryParamsStreet.userId = this.$store.state.user.id;
+        // this.form.deptId
+        getStreetPage(this.queryParamsStreet).then((response) => {
+          this.orgloading = false;
+          this.leftDataList = response.data.list;
+          this.orgtotal = response.data.total;
+        });
+      }
+    },
+    deptOptionsTrans(val) {
+      return this.deptOptionsList[val];
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      console.log(this.orgqueryParams, " this.orgqueryParams");
+      this.queryParamsStreet.pageNo = 1;
+      this.getDeptData();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // ========单位信息==============================================================
+    // 单位信息表单重置
+    Orgreset() {
+      //   this.alreadySelectedOrgList = [];
+      this.alreadySelectedOrgqueryParams = {
+        pageNo: 1,
+        pageSize: 10,
+      };
+      this.orgqueryParams = {
+        pageNo: 1,
+        pageSize: 10,
+        orgName: null,
+        status: null,
+        userId: null,
+        dwlx: null,
+        dwxz: null,
+      };
+    },
+    /** 查询部门下拉树结构 + 岗位下拉 */
+    // getTreeselect() {
+    //   listSimpleDepts().then((response) => {
+    //     // 处理 deptOptions 参数
+    //     var list = response.data;
+    //     list.map((i) => {
+    //       this.deptOptionsList[i.id] = i.name;
+    //     });
+    //   });
+    // },
+    /** 查询单位信息列表 */
+    getOrgList() {
+      // 执行查询
+      //   this.orgloading = true;
+      //   getOrgPage(this.orgqueryParams).then((response) => {
+      //     this.list = response.data.list;
+      //     this.orgtotal = response.data.total;
+      //     this.orgloading = false;
+      //   });
+    },
+    // 分配分管单位table点击
+    tableRowClick(row) {
+      console.log("row, column, event :>> ", row);
+    },
+    // 分配分管单位左侧多选框发送改变时
+    handleSelectionChange(val) {
+      this.leftSelectedOrgList = val;
+    },
+    // 分配分管单位右侧多选框发送改变时
+    RighthandleSelectionChange(val) {
+      this.rightSelectedOrgList = val;
+    },
+    // 左移
+    OrgCaretToLeft() {
+      this.rightSelectedOrgList.map((i) => {
+        this.alreadySelectedOrgList = this.alreadySelectedOrgList.filter(
+          (k) => k.id !== i.id
+        );
+      });
+      this.alreadySelectedOrgtotal = this.alreadySelectedOrgList.length;
+    },
+    // 右移
+    OrgCaretToRight() {
+      var arr = [...this.alreadySelectedOrgList, ...this.leftSelectedOrgList];
+      let s1 = new Set(arr);
+      arr = [...s1];
+      let forData = [];
+      for (let i = 0; i < arr.length; i++) {
+        if (!forData.some((e) => e.id == arr[i].id)) forData.push(arr[i]);
+      }
+      this.alreadySelectedOrgList = forData;
+      this.alreadySelectedOrgtotal = this.alreadySelectedOrgList.length;
+    },
+
+    // =================================
+
+    confirmMSg() {
+      return this.alreadySelectedOrgList;
+    },
+    confirmoOrgTypeMSg() {
+      return this.orgType;
+    },
+
+    // =========表单添加时选单位=================================================
+
+    // =================================================================
+  },
+};
+</script>
+<style scoped>
+.icon-button {
+  border-color: transparent;
+  font-size: 23px;
+  padding: 0px;
+}
+
+.icon-button.is-plain:hover,
+.icon-button.is-plain:focus {
+  background: #ffffff;
+  border-color: transparent;
+  color: #1890ff;
+}
+</style>

+ 141 - 142
src/store/modules/user.js

@@ -1,142 +1,141 @@
-import {login, logout, getInfo, socialLogin, smsLogin} from '@/api/login'
-import {setToken, removeToken} from '@/utils/auth'
-
-const user = {
-  state: {
-    id: 0, // 用户编号
-    name: '',
-    avatar: '',
-    roles: [],
-    permissions: []
-  },
-
-  mutations: {
-    SET_ID: (state, id) => {
-      state.id = id
-    },
-    SET_NAME: (state, name) => {
-      state.name = name
-    },
-    SET_NICKNAME: (state, nickname) => {
-      state.nickname = nickname
-    },
-    SET_AVATAR: (state, avatar) => {
-      state.avatar = avatar
-    },
-    SET_ROLES: (state, roles) => {
-      state.roles = roles
-    },
-    SET_PERMISSIONS: (state, permissions) => {
-      state.permissions = permissions
-    }
-  },
-
-  actions: {
-    // 登录
-    Login({ commit }, userInfo) {
-      const username = userInfo.username.trim()
-      const password = userInfo.password
-      const captchaVerification = userInfo.captchaVerification
-      const socialCode = userInfo.socialCode
-      const socialState = userInfo.socialState
-      const socialType = userInfo.socialType
-      return new Promise((resolve, reject) => {
-        login(username, password, captchaVerification, socialType, socialCode, socialState).then(res => {
-          res = res.data;
-          // 设置 token
-          setToken(res)
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 社交登录
-    SocialLogin({ commit }, userInfo) {
-      const code = userInfo.code
-      const state = userInfo.state
-      const type = userInfo.type
-      return new Promise((resolve, reject) => {
-        socialLogin(type, code, state).then(res => {
-          res = res.data;
-          // 设置 token
-          setToken(res)
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 短信登录
-    SmsLogin({ commit }, userInfo) {
-      const mobile = userInfo.mobile.trim()
-      const mobileCode = userInfo.mobileCode
-      return new Promise((resolve, reject) => {
-        smsLogin(mobile,mobileCode).then(res => {
-          res = res.data;
-          // 设置 token
-          setToken(res)
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-    // 获取用户信息
-    GetInfo({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        getInfo().then(res => {
-          // 没有 data 数据,赋予个默认值
-          if (!res) {
-            res = {
-              data: {
-                roles: [],
-                user: {
-                  id: '',
-                  avatar: '',
-                  userName: '',
-                  nickname: ''
-                }
-              }
-            }
-          }
-
-          res = res.data; // 读取 data 数据
-          const user = res.user
-          const avatar = ( user.avatar === "" || user.avatar == null ) ? require("@/assets/images/profile.jpg") : user.avatar;
-          if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
-            commit('SET_ROLES', res.roles)
-            commit('SET_PERMISSIONS', res.permissions)
-          } else {
-            commit('SET_ROLES', ['ROLE_DEFAULT'])
-          }
-          commit('SET_ID', user.id)
-          commit('SET_NAME', user.userName)
-          commit('SET_NICKNAME', user.nickname)
-          commit('SET_AVATAR', avatar)
-          resolve(res)
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 退出系统
-    LogOut({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        logout(state.token).then(() => {
-          commit('SET_ROLES', [])
-          commit('SET_PERMISSIONS', [])
-          removeToken()
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    }
-  }
-}
-
-export default user
+import {login, logout, getInfo, socialLogin, smsLogin} from '@/api/login'
+import {setToken, removeToken} from '@/utils/auth'
+const user = {
+  state: {
+    id: 0, // 用户编号
+    name: '',
+    avatar: '',
+    roles: [],
+    permissions: []
+  },
+
+  mutations: {
+    SET_ID: (state, id) => {
+      state.id = id
+    },
+    SET_NAME: (state, name) => {
+      state.name = name
+    },
+    SET_NICKNAME: (state, nickname) => {
+      state.nickname = nickname
+    },
+    SET_AVATAR: (state, avatar) => {
+      state.avatar = avatar
+    },
+    SET_ROLES: (state, roles) => {
+      state.roles = roles
+    },
+    SET_PERMISSIONS: (state, permissions) => {
+      state.permissions = permissions
+    }
+  },
+
+  actions: {
+    // 登录
+    Login({ commit }, userInfo) {
+      const username = userInfo.username.trim()
+      const password = userInfo.password
+      const captchaVerification = userInfo.captchaVerification
+      const socialCode = userInfo.socialCode
+      const socialState = userInfo.socialState
+      const socialType = userInfo.socialType
+      return new Promise((resolve, reject) => {
+        login(username, password, captchaVerification, socialType, socialCode, socialState).then(res => {
+          res = res.data;
+          // 设置 token
+          setToken(res)
+          resolve()
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+
+    // 社交登录
+    SocialLogin({ commit }, userInfo) {
+      const code = userInfo.code
+      const state = userInfo.state
+      const type = userInfo.type
+      return new Promise((resolve, reject) => {
+        socialLogin(type, code, state).then(res => {
+          res = res.data;
+          // 设置 token
+          setToken(res)
+          resolve()
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+
+    // 短信登录
+    SmsLogin({ commit }, userInfo) {
+      const mobile = userInfo.mobile.trim()
+      const mobileCode = userInfo.mobileCode
+      return new Promise((resolve, reject) => {
+        smsLogin(mobile,mobileCode).then(res => {
+          res = res.data;
+          // 设置 token
+          setToken(res)
+          resolve()
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+    // 获取用户信息
+    GetInfo({ commit, state }) {
+      return new Promise((resolve, reject) => {
+        getInfo().then(res => {
+          // 没有 data 数据,赋予个默认值
+          if (!res) {
+            res = {
+              data: {
+                roles: [],
+                user: {
+                  id: '',
+                  avatar: '',
+                  userName: '',
+                  nickname: ''
+                }
+              }
+            }
+          }
+
+          res = res.data; // 读取 data 数据
+          const user = res.user
+          const avatar = ( user.avatar === "" || user.avatar == null ) ? require("@/assets/images/profile.jpg") : user.avatar;
+          if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
+            commit('SET_ROLES', res.roles)
+            commit('SET_PERMISSIONS', res.permissions)
+          } else {
+            commit('SET_ROLES', ['ROLE_DEFAULT'])
+          }
+          commit('SET_ID', user.id)
+          commit('SET_NAME', user.userName)
+          commit('SET_NICKNAME', user.nickname)
+          commit('SET_AVATAR', avatar)
+          resolve(res)
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+
+    // 退出系统
+    LogOut({ commit, state }) {
+      return new Promise((resolve, reject) => {
+        logout(state.token).then(() => {
+          commit('SET_ROLES', [])
+          commit('SET_PERMISSIONS', [])
+          removeToken()
+          resolve()
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    }
+  }
+}
+
+export default user

+ 275 - 39
src/views/backend/remindInfo/index.vue

@@ -31,12 +31,22 @@
         <el-date-picker
           v-model="queryParams.pubDate"
           style="width: 240px"
-          value-format="yyyy-MM-dd HH:mm:ss"
+          value-format="yyyy-MM-dd"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+        />
+      </el-form-item>
+      <el-form-item label="完成日期" prop="doneDate">
+        <el-date-picker
+          v-model="queryParams.doneDate"
+          style="width: 240px"
+          value-format="yyyy-MM-dd"
           type="daterange"
           range-separator="-"
           start-placeholder="开始日期"
           end-placeholder="结束日期"
-          :default-time="['00:00:00', '23:59:59']"
         />
       </el-form-item>
       <el-form-item>
@@ -61,7 +71,7 @@
           >新增</el-button
         >
       </el-col>
-      <el-col :span="1.5">
+      <!-- <el-col :span="1.5">
         <el-button
           type="warning"
           plain
@@ -72,7 +82,7 @@
           v-hasPermi="['backend:remind-info:export']"
           >导出</el-button
         >
-      </el-col>
+      </el-col> -->
       <right-toolbar
         :showSearch.sync="showSearch"
         @queryTable="getList"
@@ -87,7 +97,7 @@
     >
       <el-tab-pane label="已下发" name="type0">
         <el-table v-loading="loading" :data="list">
-          <el-table-column label="序号" align="center" prop="id" />
+          <el-table-column label="序号" align="center" type="index" />
           <el-table-column label="提醒标题" align="center" prop="remindTitle" />
           <el-table-column label="提醒内容" align="center" prop="remindContent">
             <template slot-scope="scope">
@@ -126,16 +136,36 @@
       </el-tab-pane>
       <el-tab-pane label="已接受" name="type1">
         <el-table v-loading="loading" :data="list">
-          <el-table-column label="序号" align="center" prop="id" />
+          <el-table-column label="序号" align="center" type="index" />
           <!-- <el-table-column label="提醒信息id" align="center" prop="remindInfoId" /> -->
           <!-- <el-table-column label="广播接收组织类型2:大队,3:街道,4社会单位" align="center" prop="broadType" /> -->
-          <el-table-column label="提醒标题" align="center" prop="remind_title" />
-          <el-table-column label="发送组织" align="center" prop="sender" />
-          <el-table-column label="接收组织" align="center" prop="reciver" />
-          <el-table-column label="发布日期" align="center" prop="pubDate" />
-          <el-table-column label="完成日期" align="center" prop="doneDate" />
-          <el-table-column label="是否已读" align="center" prop="isRead" />
-          <el-table-column label="是否完成" align="center" prop="isDone" />
+          <el-table-column
+            label="提醒标题"
+            align="center"
+            prop="remind_title"
+          />
+          <el-table-column label="发送组织" align="center" prop="deptName" />
+          <el-table-column label="接收组织" align="center" prop="reciverName" />
+          <el-table-column label="发布日期" align="center" prop="pubDate">
+            <template v-slot="scope">
+              <span>{{ parseTime(scope.row.pub_date, "{y}-{m}-{d}") }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="完成日期" align="center" prop="doneDate"
+            ><template v-slot="scope">
+              <span>{{ parseTime(scope.row.done_date, "{y}-{m}-{d}") }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否已读" align="center" prop="isRead">
+            <template v-slot="scope">
+              <span>{{ scope.row.is_read == 0 ? "未读" : "已读" }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否完成" align="center" prop="isDone">
+            <template v-slot="scope">
+              <span>{{ scope.row.is_done == 0 ? "否" : "是" }}</span></template
+            >
+          </el-table-column>
           <el-table-column
             label="操作"
             align="center"
@@ -146,17 +176,16 @@
                 size="mini"
                 type="text"
                 icon="el-icon-edit"
-                @click="handleUpdate(scope.row)"
-                v-hasPermi="['backend:remind-broad:update']"
-                >修改</el-button
+                @click="handleComplete(scope.row)"
+                v-if="scope.row.is_done == 0"
+                >完成</el-button
               >
               <el-button
                 size="mini"
                 type="text"
                 icon="el-icon-view"
-                @click="handleDelete(scope.row)"
-                v-hasPermi="['backend:remind-broad:delete']"
-                >删除</el-button
+                @click="handleSee2(scope.row)"
+                >查看</el-button
               >
             </template>
           </el-table-column>
@@ -164,14 +193,36 @@
       </el-tab-pane>
       <el-tab-pane label="信息反馈" name="type2">
         <el-table v-loading="loading" :data="list">
-          <el-table-column label="序号" align="center" prop="id" />
-          <el-table-column label="提醒标题" align="center" prop="remind_title" />
-          <el-table-column label="发送组织" align="center" prop="sender" />
-          <el-table-column label="接收组织" align="center" prop="reciver" />
-          <el-table-column label="发布日期" align="center" prop="pubDate" />
-          <el-table-column label="完成日期" align="center" prop="doneDate" />
-          <el-table-column label="是否已读" align="center" prop="isRead" />
-          <el-table-column label="是否完成" align="center" prop="isDone" />
+          <el-table-column label="序号" align="center" type="index" />
+          <el-table-column
+            label="提醒标题"
+            align="center"
+            prop="remind_title"
+          />
+          <el-table-column label="发送组织" align="center" prop="deptName" />
+          <el-table-column label="接收组织" align="center" prop="reciverName" />
+          <el-table-column label="发布日期" align="center" prop="pubDate">
+            <template v-slot="scope">
+              <span>{{ parseTime(scope.row.pub_date, "{y}-{m}-{d}") }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="完成日期" align="center" prop="doneDate"
+            ><template v-slot="scope">
+              <span>{{ parseTime(scope.row.done_date, "{y}-{m}-{d}") }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否已读" align="center" prop="isRead">
+            <template v-slot="scope">
+              <span>{{ scope.row.is_read == 0 ? "未读" : "已读" }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="是否完成" align="center" prop="isDone">
+            <template v-slot="scope">
+              <span>{{
+                scope.row.is_done == 0 ? "未读" : "已读"
+              }}</span></template
+            >
+          </el-table-column>
           <el-table-column
             label="操作"
             align="center"
@@ -181,8 +232,16 @@
               <el-button
                 size="mini"
                 type="text"
+                icon="el-icon-edit"
+                @click="handleComplete(scope.row)"
+                v-if="scope.row.is_done == 0"
+                >完成</el-button
+              >
+              <el-button
+                size="mini"
+                type="text"
                 icon="el-icon-view"
-                @click="handleDelete(scope.row)"
+                @click="handleSee2(scope.row)"
                 >查看</el-button
               >
             </template>
@@ -307,6 +366,81 @@
         <el-button @click="openSeedialog = false">关 闭</el-button>
       </span>
     </el-dialog>
+    <!-- 已接受和信息反馈 -->
+    <el-dialog
+      title="详细信息查看"
+      :visible.sync="openSeedialog2"
+      width="85vw"
+      class="detail detail-style"
+    >
+      <el-form
+        ref="form"
+        :model="deatilData2"
+        label-width="auto"
+        label-position="left"
+      >
+        <el-row :gutter="20">
+          <el-col :span="10">
+            <el-form-item label="提醒标题:">
+              <div>{{ deatilData2.remindInfoRespVO?.remindTitle }}</div>
+            </el-form-item></el-col
+          >
+        </el-row>
+
+        <el-row :gutter="20">
+          <el-col :span="14">
+            <el-form-item label="发布日期:" prop="pubDate">
+              <div v-html="deatilData2.pubDate"></div>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="14">
+            <el-form-item label="提醒内容:" prop="remindContent">
+              <div v-html="deatilData2.remindInfoRespVO?.remindContent"></div>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <el-row :gutter="20">
+          <el-col :span="14">
+            <el-form-item label="附件内容:" prop="pubDate">
+              <fileUpload v-model="deatilData2.fileUrls" :isShowTip="false" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="openSeedialog2 = false">关 闭</el-button>
+      </span>
+    </el-dialog>
+    <!-- 完成的弹窗 -->
+    <el-dialog
+      :title="title"
+      :visible.sync="openSeeComplete"
+      width="80%"
+      v-dialogDrag
+      append-to-body
+    >
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <el-form-item label="提醒标题" prop="remindTitle">
+          <el-input v-model="form.remindTitle" disabled />
+        </el-form-item>
+        <el-form-item label="提醒内容">
+          <el-input v-model="form.remindContent" disabled />
+        </el-form-item>
+        <el-form-item label="完成情况描述">
+          <el-input v-model="form.donetext" />
+        </el-form-item>
+        <el-form-item label="附件内容">
+          <fileUpload v-model="form.fileUrls" :fileType="files" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFormComplete">确 定</el-button>
+        <el-button @click="cancelComplete">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -318,14 +452,18 @@ import {
   getRemindInfo,
   getRemindInfoPage,
   exportRemindInfoExcel,
+  getuserinfo,
+  remindBroadFinish,
 } from "@/api/backend/remindInfo";
-import { getRemindBroadPage } from "@/api/backend/remindBroad";
-
+import { getRemindBroad, getRemindBroadPage } from "@/api/backend/remindBroad";
 import { getUserProfile } from "@/api/system/user";
 import Editor from "@/components/Editor";
 import choiceOrange from "@/components/choiceOrange";
 import FileUpload from "@/components/FileUpload";
 import { listDept } from "@/api/system/dept";
+import { getTime } from "../../../utils";
+import { getNowDateTime } from "@/utils/ruoyi";
+
 export default {
   name: "RemindInfo",
   components: {
@@ -357,7 +495,12 @@ export default {
         // remindType: 1,
         // remindStatus: 1,
         pubDate: [],
+        doneDate: [],
         id: null,
+        pubDateStart: null,
+        pubDateEnd: null,
+        doneDateStart: null,
+        doneDateEnd: null,
       },
       // 表单参数
       form: {
@@ -378,12 +521,16 @@ export default {
       deatilData: {},
       listDeptData: [],
       userType: null,
+      allStreetData: null,
+      streetId: null, //当前登录用户对应的id
+      deatilData2: {},
+      openSeedialog2: false, //已接受和信息反馈
+      openSeeComplete: false, //完成的弹窗
+      clickComplete: {}, //完成自动显示的数据
     };
   },
   created() {
-    // this.userType = JSON.parse(
-    //   localStorage.getItem("getUserInfo_key")
-    // )?.data?.userInfo?.deptId;
+    this.allStreetData = JSON.parse(localStorage.getItem("streetList"));
     this.getDeptId();
     this.getAllDept();
   },
@@ -391,11 +538,21 @@ export default {
     chooseOrgan(type) {
       this.clickType = type;
     },
+    //获取街道id
     getDeptId() {
       getUserProfile().then((response) => {
         this.form.deptId = response.data ? response.data.dept.id : "";
-        this.userType =  this.form.deptId
-        console.log("this.form.deptId", this.form.deptId);
+        this.userType = this.form.deptId;
+        getuserinfo(response.data.id)
+          .then((res) => {
+            this.streetId = res.data.streetInfo.id;
+            // this.streetId = res.data.street
+            console.log("res=====", res);
+          })
+          .catch((err) => {
+            console.log("err", err);
+          });
+        console.log("this.form.response", response);
       });
     },
     //获取所有的部门
@@ -413,6 +570,7 @@ export default {
       // 执行查询
       if (this.taskStatus == 0) {
         getRemindInfoPage(this.queryParams).then((response) => {
+          this.loading = false;
           this.listDeptData.forEach((item) => {
             response.data.list.forEach((key) => {
               if (item.id == key.deptId) {
@@ -422,15 +580,37 @@ export default {
           });
           this.list = response.data.list;
           this.total = response.data.total;
-          this.loading = false;
         });
       } else {
-        this.queryParams.broadType=this.userType<100000?2:(this.userType>100000?3:4);
         //已接受和信息反馈的接口
+        if (this.taskStatus == 1) {
+          this.queryParams.reciver =
+            this.userType > 10000 ? this.streetId : this.userType;
+          this.queryParams.sender = null;
+        } else {
+          this.queryParams.sender = this.userType;
+          this.queryParams.reciver = null;
+        }
         getRemindBroadPage(this.queryParams).then((response) => {
+          this.loading = false;
+          console.log("this.listDeptData", this.listDeptData);
+          response.data.records.forEach((key) => {
+            this.listDeptData.forEach((item) => {
+              if (item.id == key.sender) {
+                key.deptName = item.name;
+              } else if (item.id == key.reciver) {
+                key.reciverName = item.name;
+              }
+            });
+            this.allStreetData.forEach((item) => {
+              if (item.key == key.reciver) {
+                key.reciverName = item.value;
+              }
+            });
+          });
           this.list = response.data.records;
+          console.log("response.data.records", response.data.records);
           this.total = response.data.total;
-          this.loading = false;
         });
       }
     },
@@ -456,6 +636,19 @@ export default {
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNo = 1;
+      if (this.queryParams.pubDate.length > 0) {
+        this.queryParams.pubDateStart = this.queryParams.pubDate[0];
+        this.queryParams.pubDateEnd = this.queryParams.pubDate[1];
+      }
+      if (this.queryParams.doneDate.length > 0) {
+        this.queryParams.doneDateStart = this.queryParams.doneDate[0];
+        this.queryParams.doneDateEnd = this.queryParams.doneDate[1];
+      }
+      console.log(
+        "ssssssss",
+        this.queryParams.pubDate,
+        this.queryParams.doneDate
+      );
       this.getList();
     },
     /** 重置按钮操作 */
@@ -480,6 +673,49 @@ export default {
         this.title = "查看重要提醒信息";
       });
     },
+    // 已接受和信息反馈查看按钮
+    handleSee2(row) {
+      console.log("row", row);
+      const id = row.broad_id;
+
+      getRemindBroad(id).then((response) => {
+        this.deatilData2 = response.data;
+        this.openSeedialog2 = true;
+        this.title = "查看重要提醒信息";
+      });
+    },
+    //完成
+    handleComplete(row) {
+      this.clickComplete = row;
+      this.openSeeComplete = true;
+      this.form.remindTitle = row.remind_title;
+      this.form.remindContent = row.remind_content;
+      this.form.broadId = row.broad_id;
+      this.form.broadType = row.broad_type;
+    },
+    submitFormComplete() {
+      console.log("this.form222222", this.form);
+      this.form.fileUrls =
+        this.form.fileUrls && this.form.fileUrls.length > 0
+          ? this.form.fileUrls.split(",")
+          : [];
+      this.form.doneDate = "2024-3-6";
+      this.$refs["form"].validate((valid) => {
+        if (!valid) {
+          return;
+        }
+        remindBroadFinish(this.form).then((response) => {
+          this.$modal.msgSuccess("提交成功");
+          this.openSeeComplete = false;
+          this.getList();
+        });
+      });
+    },
+    /** 取消按钮 */
+    cancelComplete() {
+      this.openSeeComplete = false;
+      this.reset();
+    },
     /** 提交按钮 */
     submitForm() {
       // this.alreadySelectedOrgList = this.$refs["choiceSelect"].confirmMSg()
@@ -561,7 +797,7 @@ export default {
     clickTab(e) {
       console.log(e._props.name, "e._props.name;e._props.name;");
       const name = e._props.name;
-      this.queryParams.iscycle = "";
+      this.queryParams.pageNo = 1;
       this.list = [];
       switch (name) {
         case "type0":