yrik 3 سال پیش
والد
کامیت
fc1370df70

+ 1 - 1
ruoyi-ui/src/App.vue

@@ -33,6 +33,6 @@ export default  {
 		padding: 2px 0 !important;
 	}
   .el-table--medium td{
-  	padding: 2px 0 !important;
+  	/* padding: 2px 0 !important; */
   }
 </style>

+ 18 - 0
ruoyi-ui/src/api/system/isses.js

@@ -8,6 +8,15 @@ export function listRoles(data) {
     data
   })
 }
+
+// 未读接口
+export function weiduhegw(data) {
+  return request({
+    url: '/boman-web-core/p/cs/queryList',
+    method: 'POST',
+    data
+  })
+}
 // 历史字号
 export function listIndex(data) {
    return request({
@@ -42,6 +51,15 @@ export function listIndex(data) {
      data
    })
  }
+ 
+ // 催收文
+ export function addbjectSawen(data) {
+   return request({
+     url: '/boman-web-core/p/cs/insertList',
+     method: 'POST',
+     data
+   })
+ }
 
 
 

+ 0 - 9
ruoyi-ui/src/components/flowshoe/index.vue

@@ -1,14 +1,5 @@
 <template>
   <div class="FlowChartShow">
-    <div class="flowDisplay">
-      <div class="title">
-        <span></span>
-        <p>
-          流程进度 - <span class="status" :style="processStyle">{{processStatusName}}</span>
-        </p>
-      </div>
-      <div id="myFlowDesignerDiv" ></div>
-    </div>
     <div class="approvalHistory">
       <div class="title">
         <span></span>

+ 2 - 2
ruoyi-ui/src/layout/components/Navbar.vue

@@ -167,7 +167,7 @@ export default {
   height: 50px;
   overflow: hidden;
   position: relative;
-  background-color: #3C8DBC;
+  background-color: #1e97ce;
   box-shadow: 0 1px 4px rgba(0,21,41,.08);
 
   .SignNumArr{
@@ -305,6 +305,6 @@ export default {
     }
   }
   .active{
-    background-color: #367FA8!important;
+    background-color: #0c76a7!important;
   }
 </style>

+ 1 - 1
ruoyi-ui/src/layout/components/Sidebar/Logo.vue

@@ -58,7 +58,7 @@ export default {
   width: 100%;
   height: 50px;
   line-height: 50px;
-  background-color: #3C8DBC;
+  background-color: #1e97ce;
   text-align: center;
   overflow: hidden;
 

+ 65 - 25
ruoyi-ui/src/views/index.vue

@@ -2,21 +2,21 @@
   <div class="app-container home">
     <el-row :gutter="25">
        <el-col :sm="24" :lg="6">
-         <div style="background-color: #fff; margin-bottom: 30px; display: flex;flex-direction: column;margin-top: 10px;  padding: 20px; border-radius: 10px;">
-            <p style="display: flex; align-items: center;"><img src="../assets/images/weyr.png" alt="" style="width: 50px;height: 50px; margin-right: 20px;"><span  style="font-size: 14px;  color: #76838f;">今日发文</span></p>
+         <div @click="tioqeu" style="background-color: #fff; margin-bottom: 30px; display: flex;flex-direction: column;margin-top: 10px;  padding: 20px; border-radius: 10px;">
+            <p  style="display: flex; align-items: center;"><img src="../assets/images/weyr.png" alt="" style="width: 50px;height: 50px; margin-right: 20px;"><span  style="font-size: 14px;  color: #76838f;">今日发文</span></p>
             <p style="display: flex; justify-content: center; align-items: center;"><img style="width: 10px; height: 6px;" src="../assets/images/shang.png" alt=""><span style="font-size: 20px; margin-left: 10px;  color: #76838f;">{{seiq.toDaySend}}</span></p>
             <p style="font-size: 14px; color: #a3afb7; text-align: center;margin-top: 10px;">发文个数</p>
          </div>
        </el-col>
        <el-col :sm="24" :lg="6">
-         <div style="background-color: #fff; margin-bottom: 30px; display: flex;flex-direction: column;margin-top: 10px;  padding: 20px; border-radius: 10px;">
+         <div @click="tiowei" style="background-color: #fff; margin-bottom: 30px; display: flex;flex-direction: column;margin-top: 10px;  padding: 20px; border-radius: 10px;">
             <p style="display: flex; align-items: center;"><img src="../assets/images/ying.png" alt="" style="width: 50px;height: 50px; margin-right: 20px;"><span  style="font-size: 14px;  color: #76838f;">未读</span></p>
             <p style="display: flex; justify-content: center; align-items: center;"><img style="width: 10px; height: 6px;" src="../assets/images/xia.png" alt=""><span style="font-size: 20px; margin-left: 10px;  color: #76838f;">{{seiq.unread}}</span></p>
             <p style="font-size: 14px; color: #a3afb7; text-align: center;margin-top: 10px;">未读个数</p>
          </div>
        </el-col>
        <el-col :sm="24" :lg="6">
-         <div style="background-color: #fff; margin-bottom: 30px; display: flex;flex-direction: column;margin-top: 10px;  padding: 20px; border-radius: 10px;">
+         <div @click="tioyi" style="background-color: #fff; margin-bottom: 30px; display: flex;flex-direction: column;margin-top: 10px;  padding: 20px; border-radius: 10px;">
             <p style="display: flex; align-items: center;"><img src="../assets/images/shou.png" alt="" style="width: 50px;height: 50px; margin-right: 20px;"><span  style="font-size: 14px;  color: #76838f;">已读</span></p>
             <p style="display: flex; justify-content: center; align-items: center;"><img style="width: 10px; height: 6px;" src="../assets/images/shang.png" alt=""><span style="font-size: 20px; margin-left: 10px;  color: #76838f;">{{seiq.read}}</span></p>
             <p style="font-size: 14px; color: #a3afb7; text-align: center;margin-top: 10px;">已读个数</p>
@@ -35,13 +35,13 @@
         <div class="index_heade">
           <img src="../assets/images/icon_more.png" alt="" class="index_headerImg">
           <p class="index_headetab">
-            <span :class="[num == index ? ' spanto' : '']" v-for="(item,index) in editableTabs" :key="index" @click="tabSbu(item.dictValue)">{{item.dictLabel}}</span>
+            <span :class="[num == index ? ' spanto' : '']" v-for="(item,index) in editableTabs" :key="index" @click="tabSbu(item)">{{item.dictLabel}}</span>
           </p>
                 <div style="height: 87%;">
                   <ul class="index_headerUl">
                     <li v-for="(item,index) in configList" :key="index" @click="headerCld(item)">
                         <img src="../assets/images/icon_list_sj.png" alt="">
-                        <p>{{item.receive_dept_name}}</p>
+                        <p>{{item.message_title}}</p>
                         <span>{{item.send_message_time}}</span>
                     </li>
                   </ul>
@@ -132,9 +132,9 @@ export default {
         fixedData:{
           condition:{
             visible :'Y',
-            receive_user_id:'0'
+            receive_user_id:'0',
             // notice_type:1,
-            // status:0
+            status:'Y'
           }
         }
 
@@ -384,7 +384,7 @@ export default {
           if(response.data.rows !== null && response.data.rows.length !== 0){
             this.configList = response.data.rows;
           }else {
-            this.configList.push({receive_dept_name: "暂无数据"});
+            this.configList.push({message_title: "暂无数据"});
           }
           this.total = response.data.total;
           this.loading = false;
@@ -415,7 +415,7 @@ export default {
                 this.tieku = this.getLisprofileone[0].notice_title
                 this.comg = this.getLisprofileone[0].notice_content
               }
-              
+
             }else {
               console.log('暂无数据')
               this.tieku = '暂无数据'
@@ -520,20 +520,21 @@ export default {
     tabSbu(index){
       console.log(index)
       this.shouewq = index
-      if(index == 1){
+      if(index.dictLabel == '收文'){
         // 收文
         this.queryParams.fixedData.condition.visible = 'Y'
-      }else if(index == 2){
+      }else if(index.dictLabel == '已读'){
         //已读
         this.queryParams.fixedData.condition.visible = 'Y'
         this.queryParams.fixedData.condition.status = 'Y'
-      }else if(index == 3){
+      }else if(index.dictLabel == '未读'){
         // 未读
         this.queryParams.fixedData.condition.visible = 'Y'
         this.queryParams.fixedData.condition.status = 'N'
       }
       console.log(this.queryParams)
-     this.num = index - 1
+     this.num = index.dictValue - 2
+     console.log(this.num)
      // this.queryParams.fixedData.condition.notice_type = index
      this.getList()
     },
@@ -662,23 +663,29 @@ export default {
       }
     },
     headerCld(index){
-      if(this.shouewq == 1){
-         this.$router.push({
-           path: '/business/issue',
-           query: {
-             id:index.id,
-             tables:'boman_message_receive'
-           },
-         })
-      }else{
+      console.log(index)
+      if(index.message_title == '暂无数据'){
+         console.log(this.shouewq)
+        return  false
+      }
+
+      // if(this.shouewq == 1){
+      //    this.$router.push({
+      //      path: '/business/issue',
+      //      query: {
+      //        id:index.message_id,
+      //        tables:'boman_message_receive'
+      //      },
+      //    })
+      // }else{
         this.$router.push({
           path: '/system/pdf',
           query: {
-            id:index.id,
+            id:index.message_id,
             tables:'boman_message_receive'
           },
         })
-      }
+      // }
 
     },
     // 获取收文个数
@@ -690,6 +697,39 @@ export default {
           this.loading = false;
         }
       );
+    },
+    // 发文跳转
+    tioqeu(){
+     this.$router.push({
+       path: '/business/surface',
+       name:'boman_message/1'
+       // query: {
+       //   id,
+       //   tables,
+       // },
+     })
+    },
+    // 未读跳转
+    tiowei(){
+     this.$router.push({
+       path: '/business/surface',
+       name:'boman_message_receive/weidu'
+       // query: {
+       //   id,
+       //   tables,
+       // },
+     })
+    },
+    // 已读跳转
+    tioyi(){
+     this.$router.push({
+       path: '/business/surface',
+       name:'boman_message_receive/yidu'
+       // query: {
+       //   id,
+       //   tables,
+       // },
+     })
     }
 
   },

+ 2 - 2
ruoyi-ui/src/views/login.vue

@@ -109,8 +109,8 @@ export default {
       codeUrl: "",
       cookiePassword: "",
       loginForm: {
-        username: "admin",
-        password: "admin123",
+        username: "",
+        password: "",
         rememberMe: false,
         code: "",
         uuid: ""

+ 62 - 55
ruoyi-ui/src/views/system/collection/index.vue

@@ -1,19 +1,18 @@
 <template>
   <div class="app-container">
     <div class="jeuhg">
-      <h3 style="text-align: center; font-size: 30px; color: red; margin-bottom: 20px;">{{user.userName}}发文收文办理签</h3>
-      <el-form :model="colleobje" ref="colleobje" v-show="showSearch" :inline="true">
+      <h3 style="text-align: center; font-size: 30px; color: red; margin-bottom: 20px;">{{user.dept.deptName}}发文收文办理签</h3>
+      <el-form :label-position="labelPosition" :model="colleobje" ref="colleobje" v-show="showSearch" :inline="true">
       <el-row :gutter="10" class="mb8">
-        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;" >
-        <el-form-item label="收文编号" prop="id">
+        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; " >
+        <el-form-item label="收文编号" prop="recieve_message_code">
           <el-input
             autosize
-
-            v-model="colleobje.id">
+            v-model="colleobje.recieve_message_code">
           </el-input>
         </el-form-item>
         </el-col>
-        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; border-left: 0; padding: 15px 0 15px 10px;">
+        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; border-left: 0; ">
         <el-form-item label="来文机关" prop="message_from">
           <el-input
             autosize
@@ -22,7 +21,7 @@
           </el-input>
         </el-form-item>
         </el-col>
-        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; border-left: 0; padding: 15px 0 15px 10px;">
+        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; border-left: 0; ">
         <el-form-item label="文件字号" prop="message_code">
           <el-input
             autosize
@@ -31,14 +30,14 @@
           </el-input>
         </el-form-item>
         </el-col>
-        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; border-left: 0; padding: 15px 0 15px 10px;">
+        <el-col :span="6" class="eigj" style="border: 1px solid red; border-bottom: 0; border-left: 0; ">
         <el-form-item label="收到日期" prop="roleName">
           <el-date-picker :disabled="false" @change="iChange" v-model="queryParams.roleName"   style="width: 100%"        type="date" :placeholder="'请输入'">
           </el-date-picker>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="文件标题" prop="message_title">
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; ">
+        <el-form-item class="renhdy" label="文件标题:" prop="message_title">
           <el-input
             type="textarea"
             autosize
@@ -47,19 +46,23 @@
           </el-input>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; ">
         <el-form-item class="renhdy" label="正文上传:" prop="roleName">
           <el-upload :disabled="false" class="upload-demo" :headers="{Authorization: 'Bearer ' + getToken()}"
              :action="process + '/boman-file/upload'" :on-change="handleChangert"
             :on-success="upImageFn" :on-error="err" :on-remove="reseImage" :file-list="config">
             <el-button size="small" type="primary">点击上传</el-button>
           </el-upload>
+          <div  class="el-upload__tip" style="margin-left: 5px; color: red; margin-top: 0; ">
+                只能上传jpg/png/txt/word/pdf/exe/pdf/RAR/ZIP文件,且不超过100MB
+          </div>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" style="width: 100%;" label="审核人" prop="roleName">
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; ">
+        <el-form-item class="renhdy" style="width: 100%;" label="审核人:" prop="roleName">
           <el-input :disabled="true" v-model="colleobje.check_user_name">
-              <el-button slot="prepend" @click="changeren">选择人员</el-button>
+              <!-- <el-button slot="prepend" @click="changeren">选择人员</el-button> -->
+              <el-button style="padding: 9px 15px; font-size: 12px; border-radius: 3px;" size="small" type="primary" slot="prepend" @click="changeren">选择人员</el-button>
             </el-input>
             <!-- <p style="display: flex; justify-content: space-between;">
               <span style="width: 80%;">23</span>
@@ -67,8 +70,8 @@
             </p> -->
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="部门拟办意见" prop="dept_suggest">
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; ">
+        <el-form-item class="renhdy" label="部门拟办意见:" prop="dept_suggest">
           <el-input
             type="textarea"
             autosize
@@ -77,8 +80,8 @@
           </el-input>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="办公室协办意见" prop="office_suggest">
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; ">
+        <el-form-item class="renhdy" label="办公室协办意见:" prop="office_suggest">
           <el-input
             type="textarea"
             autosize
@@ -87,8 +90,8 @@
           </el-input>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="领导批示" prop="leader_suggest">
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; ">
+        <el-form-item class="renhdy" label="领导批示:" prop="leader_suggest">
           <el-input
             type="textarea"
             autosize
@@ -97,8 +100,8 @@
           </el-input>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red;  padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="承办结果" prop="result">
+        <el-col :span="24" style="border: 1px solid red;  ">
+        <el-form-item class="renhdy" label="承办结果:" prop="result">
           <el-input
             type="textarea"
             autosize
@@ -119,7 +122,7 @@
         </el-form-item>
         </el-col> -->
         <el-col :span="24" style="text-align: right; padding-top: 20px;">
-          <el-button type="danger" @click="submitForm" >点击保存</el-button>
+          <el-button type="danger" @click="submitForm" >保存</el-button>
         </el-col>
         </el-row>
       </el-form>
@@ -237,6 +240,7 @@ export default {
     return {
       // 遮罩层
       loading: true,
+      labelPosition:'right',
       // 选中数组
       ids: [],
       // 非单个禁用
@@ -388,7 +392,7 @@ export default {
     this.queryParamsser.table = this.$route.query.tables;
     this.forew.fixedData.id = this.$route.query.id;
     this.faerform.objId = this.$route.query.id;
-    this.faerform.table = this.$route.query.tables;
+    this.faerform.table = 'boman_recieve_dispatch_message';
     if(this.$route.query.tabname == 'shouwen'){
       this.titlet = '收文'
     }else if(this.$route.query.tabname == 'fawen'){
@@ -417,8 +421,8 @@ export default {
           console.log(res)
           if(res.data !== undefined){
             this.querjtgoe = res.data
-            if(res.data.message_upload !== undefined){
-              this.config = res.data.message_upload
+            if(res.data.message_body !== undefined){
+              this.config = res.data.message_body
             }
           }
         }
@@ -503,8 +507,6 @@ export default {
     },
     /** 提交按钮 */
     submitForm: function() {
-
-      this.colleobje.message_upload = JSON.stringify(this.querjtgoe.message_upload)
       // this.colleobje.message_enclosure = JSON.stringify(this.querjtgoe.message_enclosure)
       this.faerform.fixedData = this.colleobje
       console.log(this.faerform)
@@ -521,6 +523,7 @@ export default {
       //       this.form.menuIds = this.getMenuAllCheckedKeys();
             addbjectSavety(this.faerform).then(response => {
               this.msgSuccess("操作成功");
+              this.$router.go(-1)
               // this.open = false;
               // this.getList();
             });
@@ -577,7 +580,11 @@ export default {
           this.config.splice(i, 1);
         }
       }
-      this.querjtgoe.message_upload = this.config
+      if(this.config.length == 0){
+        this.faerform.message_body = undefined
+      }else{
+        this.faerform.message_body = JSON.stringify(this.config)
+      }
     },
     reseImagetwo(file, fileList) {
       let urls = ""
@@ -592,7 +599,7 @@ export default {
         }
       }
      console.log(this.configtwo)
-     this.querjtgoe.message_enclosure = this.configtwo
+     this.faerform.message_enclosure = this.configtwo
     },
     handlePictureCardPreview(file) {
       console.log(file)
@@ -600,13 +607,20 @@ export default {
       this.dialogVisible = true;
     },
     upImageFn(res, file) {
-      this.config.push(res.data);
-      this.querjtgoe.message_upload = this.config
+      if(res.code !== 200){
+        this.msgSuccess('上传失败');
+        return false
+      }else{
+        this.msgSuccess('上传成功');
+        this.config.push(res.data);
+        this.faerform.message_body = this.config
+        this.faerform.message_body = JSON.stringify(this.faerform.message_body)
+      }
       console.log(this.config)
     },
     upImageFntwo(res, file) {
       this.configtwo.push(res.data);
-      this.querjtgoe.message_enclosure  = this.configtwo
+      this.faerform.message_enclosure  = this.configtwo
       console.log(this.configtwo)
     },
     // 时间控件
@@ -929,13 +943,20 @@ export default {
    .el-form-item__label{
      color: red;
     width: 12%;
-    text-align: center;
+    // border-right: 1px solid red;
+    // text-align: center;
    }
    .eigj{
+     padding: 0 !important;
      .el-form-item__label{
        width: 100%;
        text-align: center;
+       border-bottom:  1px solid red;
+       padding:  7px 0 7px 0;
      }
+      .el-form-item__content{
+         padding:  7px 0 7px 0;
+      }
    }
    input{
      background: none;
@@ -953,7 +974,13 @@ export default {
   .renhdy{
     .el-form-item__content{
       width: 85%;
+      border-left: 1px solid red;
+      padding:  9px 0 9px 10px ;
     }
+    .el-form-item__label{
+      padding:  7px 10px 0 0 ;
+    }
+
 
   }
   .upload-demo{
@@ -981,26 +1008,6 @@ export default {
     padding: 0 80px !important;
     padding-top: 20px !important;
   }
-  .infinite-list {
-    height: 150px;
-    margin-bottom: 20px;
-  }
-  .infinite-listty{
-    display: flex;
-    flex-wrap: wrap;
-    li{
-      // width: 25%;
-      flex: 1;
-      display: flex;
-      height: 40px;
-      line-height: 40px;
-      text-align: center;
-      list-style: none;
-      // border-radius: 40px;
-      // border: 1px solid #eee;
-      // border-bottom: 1px solid #eee;
-    }
-  }
   .tab_bott {
     display: flex;
   }

+ 0 - 3
ruoyi-ui/src/views/system/dept/index.vue

@@ -171,9 +171,6 @@ export default {
       form: {},
       // 表单校验
       rules: {
-        parentId: [
-          { required: true, message: "上级部门不能为空", trigger: "blur" }
-        ],
         deptName: [
           { required: true, message: "部门名称不能为空", trigger: "blur" }
         ],

+ 42 - 35
ruoyi-ui/src/views/system/election/index.vue

@@ -76,7 +76,7 @@
               :key="index"
               @click="reyantt(item)"
             >
-              {{ item.userName }}
+              {{ item.nickName }}
               <!-- <el-checkbox
           style="margin-right: 30px"
           :indeterminate="item.isIndeterminate"
@@ -106,7 +106,7 @@
           </div>
           <ul class="infinite-list infinite-listty" v-infinite-scroll="load" style="overflow:auto">
             <li v-for="item in lisehtwo" @click="lidele(item)" :key="item.id" class="infinite-list-item">
-              {{ item.userName }}
+              {{ item.nickName }}
               <img src="../../../assets/images/dele.png" alt="" class="index_navTimeimg" />
             </li>
           </ul>
@@ -559,44 +559,51 @@ export default {
   }
 };
 </script>
+<style lang="scss">
+  .infinite-list {
+    // height: 150px;
+    margin-bottom: 20px;
+    flex-wrap: wrap;
+    .infinite-list-item {
+      // flex:1!important;
+      display: flex;
+      // justify-content: space-between;
+      align-items: center;
+      text-align: center;
+      list-style: none;
+      height: 23px;
+      margin-left: 10px;
+      // line-height: 30px;
+    }
+    .infinite-list-itemss {
+      color: #1890ff;
+    }
+  }
+  .infinite-listty {
+    display: flex;
+    flex-wrap: wrap;
+    .infinite-list-itemty {
+      // flex:1;
+      display: flex;
+      // justify-content: space-between;
+      height: 23px;
+      line-height: 23px;
+      // text-align: center;
+      list-style: none;
+      margin-left: 10px;
+      // border-radius: 40px;
+      // border: 1px solid #eee;
+      // border-bottom: 1px solid #eee;
+    }
+  
+  }
+</style>
 
 <style scoped lang="scss">
 .iegeu {
   padding: 30px;
 }
-.infinite-list {
-  height: 150px;
-  margin-bottom: 20px;
-  .infinite-list-item {
-    width: 20% !important;
-    display: flex;
-    // justify-content: space-between;
-    align-items: center;
-    text-align: center;
-    list-style: none;
-    height: 30px;
-    // line-height: 30px;
-  }
-  .infinite-list-itemss {
-    color: #1890ff;
-  }
-}
-.infinite-listty {
-  display: flex;
-  flex-wrap: wrap;
-  .infinite-list-itemty {
-    width: 20%;
-    display: flex;
-    // justify-content: space-between;
-    height: 40px;
-    line-height: 40px;
-    // text-align: center;
-    list-style: none;
-    // border-radius: 40px;
-    // border: 1px solid #eee;
-    // border-bottom: 1px solid #eee;
-  }
-}
+
 
 .tab_bott {
   display: flex;

+ 325 - 58
ruoyi-ui/src/views/system/issue/index.vue

@@ -1,13 +1,25 @@
 <template>
   <div class="app-container">
-    <div class="jeuhg">
+    <div class="jeuhgs">
       <h3 style="text-align: center; font-size: 30px; color: red; margin-bottom: 20px;">潜山市教育局{{titlet}}稿纸</h3>
-      <el-form :model="querjtgoe" ref="querjtgoe" :rules="rules" v-show="showSearch" :inline="true">
+      <el-row :gutter="10" class="mb8">
+        <el-col :span="1.5">
+          <el-button
+            type="primary"
+            plain
+            size="mini"
+            @click="rogress"
+            v-if="objeuisd !== -1"
+            style="padding: 9px 15px; font-size: 12px; border-radius: 3px;"
+          >查看进度</el-button>
+        </el-col>
+      </el-row>
+      <el-form :model="querjtgoe" ref="querjtgoe" :rules="rules" v-show="showSearch" :inline="true" label-width="90px">
       <el-row :gutter="10" class="mb8">
         <el-col :span="12" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;" >
         <el-form-item :label="titlet + '字号:'" prop="message_code">
           <el-input placeholder="请输入内容" v-model="querjtgoe.message_code">
-              <el-button slot="append" @click="ziao">历史字号</el-button>
+              <el-button style="padding: 9px 15px; font-size: 12px; border-radius: 3px;" slot="append" @click="ziao">历史字号</el-button>
           </el-input>
         </el-form-item>
         </el-col>
@@ -18,27 +30,46 @@
         </el-form-item>
         </el-col>
         <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="正文上传:" prop="roleName">
+        <el-form-item label="文件标题:" prop="message_title">
+          <el-input
+            v-model="querjtgoe.message_title"
+            placeholder="请输入文件标题"
+            clearable
+            size="small"
+            style="width: 100%"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        </el-col>
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 5px 10px;">
+        <el-form-item class="renhdys" label="正文上传:" prop="roleName">
           <el-upload :disabled="false" class="upload-demo" :headers="{Authorization: 'Bearer ' + getToken()}"
              :action="process + '/boman-file/upload'" :on-change="handleChangert"
-            :on-success="upImageFn" :on-error="err" :on-remove="reseImage" :file-list="config">
+            :on-success="upImageFn" :on-error="err" :on-remove="reseImage" :file-list="config" :on-preview="handlePictureCardPreview" :before-upload="befors">
             <el-button size="small" type="primary">点击上传</el-button>
+
           </el-upload>
+<div  class="el-upload__tip" style="margin-left: 5px; color: red; margin-top: 0;">
+              只能上传/pdf文件,且不超过100MB
+        </div>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="附件上传:" prop="roleName">
+        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 5px 10px;">
+        <el-form-item class="renhdys" style="padding-bottom: 0;" label="附件上传:" prop="roleName">
           <el-upload :disabled="false" class="upload-demo" :headers="{Authorization: 'Bearer ' + getToken()}"
              :action="process + '/boman-file/upload'" :on-change="handleChangert"
           :on-preview="handlePictureCardPreview"  :on-success="upImageFntwo" :on-error="err" :on-remove="reseImagetwo" :file-list="configtwo">
             <el-button size="small" type="primary">点击上传</el-button>
           </el-upload>
+          <div  class="el-upload__tip" style="margin-left: 5px; color: red; margin-top: 0; ">
+                只能上传jpg/png/txt/word/pdf/exe/RAR/ZIP文件,且不超过100MB
+          </div>
         </el-form-item>
         </el-col>
         <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" style="width: 100%;" label="分发人员:" prop="roleName">
+        <el-form-item class="renhdys" style="width: 100%;" label="分发人员:" prop="roleName">
           <el-input v-model="messageReun"  :disabled="true"  >
-              <el-button slot="prepend" @click="changeren">选择人员</el-button>
+              <el-button style="padding: 9px 15px; font-size: 12px; border-radius: 3px;" size="small" type="primary" slot="prepend" @click="changeren">选择人员</el-button>
             </el-input>
             <!-- <p style="display: flex; justify-content: space-between;">
               <span style="width: 80%;">23</span>
@@ -47,7 +78,7 @@
         </el-form-item>
         </el-col>
         <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="分发单位:" prop="ompany">
+        <el-form-item class="renhdys renhdytwo" style="display: flex; align-content: center;" label="分发单位:" prop="ompany">
           <!-- <el-input
             type="textarea"
             autosize
@@ -62,26 +93,15 @@
         </el-form-item>
         </el-col>
         <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item class="renhdy" label="角色名称:" prop="name">
+        <el-form-item class="renhdys renhdytwo" style="display: flex; align-content: center;" label="人员姓名:" prop="name">
           <ul class="infinite-listopma " v-infinite-scroll="load" style="overflow:auto">
               <li v-for="item in mpany.name" :key = 'item'>{{item}}</li>
             </ul>
         </el-form-item>
         </el-col>
-        <el-col :span="24" style="border: 1px solid red; border-bottom: 0; padding: 15px 0 15px 10px;">
-        <el-form-item label="文件标题:" prop="message_title">
-          <el-input
-            v-model="querjtgoe.message_title"
-            placeholder="请输入文件标题"
-            clearable
-            size="small"
-            style="width: 100%"
-            @keyup.enter.native="handleQuery"
-          />
-        </el-form-item>
-        </el-col>
+
         <el-col :span="24" style="border: 1px solid red;  padding: 20px 0 20px 10px;">
-        <el-form-item class="renhdy" label="备注:" prop="message_remark">
+        <el-form-item class="renhdys" label="备注:" prop="message_remark">
           <el-input
             type="textarea"
             autosize
@@ -100,7 +120,7 @@
     <!-- 添加或修改角色配置对话框 -->
    <el-dialog   :close-on-click-modal="false" title="选择字号" :visible.sync="shouew" width="980px" append-to-body>
      <el-table @cell-click= 'cellClick' v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
-       <el-table-column label="日志编号" align="center" prop="message_code" />
+       <el-table-column label="号" align="center" prop="message_code" />
      </el-table>
 
      <pagination
@@ -163,7 +183,7 @@
                     :key="index"
                     @click="reyantt(item)"
                   >
-                    {{ item.userName }}
+                    {{ item.nickName }}
                   </li>
                 </ul>
               </el-card>
@@ -174,7 +194,7 @@
                 </div>
                 <ul class="infinite-list infinite-listty" v-infinite-scroll="load" style="overflow:auto">
                   <li v-for="item in lisehtwo" @click="lidele(item)" :key="item.id" class="infinite-list-item">
-                    {{ item.userName }}
+                    {{ item.nickName }}
                     <img src="../../../assets/images/dele.png" alt="" class="index_navTimeimg" />
                   </li>
                 </ul>
@@ -182,11 +202,64 @@
         </div>
       </div>
     </el-dialog>
+    <!-- 图片预览 -->
+    <el-dialog   :close-on-click-modal="false" title="预览" :visible.sync="imashow" width="1200px" append-to-body>
+    <div class="demo-image__preview">
+      <img v-if="!shouewhu" :src="dialogImageUrl" alt="" style="width: 100%;">
+      <iframe v-if="shouewhu" :src="dialogImageUrl" frameborder="0" style="width: 100%; height: 100vh;"></iframe>
+    </div>
+    </el-dialog>
+    <!-- 流程进度 -->
+    <el-dialog :close-on-click-modal="false" title="流程进度" :visible.sync="modalShowdu" width="1180px" append-to-body>
+      <div style="display: flex;">
+        <div style="width: 60%;">
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              <span style="margin-right: 10px;">未读收文</span>
+              <el-button
+                type="primary"
+                plain
+                size="mini"
+                @click="eceive"
+              >一键催收文</el-button>
+            </el-col>
+          </el-row>
+          <el-table v-loading="loading" :data="listnemd" @selection-change="handleSelectionChange" stripe>
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column label="姓名" align="center" prop="receive_user_name" />
+            <el-table-column label="部门" align="center" prop="receive_dept_name" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  @click="eceive(scope.row,2)"
+                >催收文</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div style="width: 100%; margin-left: 20px;" >
+          <el-row :gutter="10" class="mb8">
+            <el-col style="margin-bottom: 8px;" :span="1.5">
+              <span >已读收文</span>
+            </el-col>
+          </el-row>
+          <el-table :border="false" v-loading="loading" :data="listnemrt" @selection-change="handleSelectionChange">
+            <el-table-column label="姓名" align="center" prop="receive_user_name" />
+            <el-table-column label="部门" align="center" prop="receive_dept_name" />
+            <el-table-column width="180px" label="收文时间" align="center" prop="send_message_time" />
+          </el-table>
+        </div>
+        <Flowshoe  :instanceId="instanceId"></Flowshoe>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { listRoles,listIndex,   delRole, addRole,addbjectSave, updateRole, exportRole, dataScope, changeRoleStatus, buent,issdanelist,issdaneid } from "@/api/system/isses";
+  import Flowshoe from '@/components/flowshoe'
+import { listRoles,listIndex,   delRole, addRole,addbjectSave, updateRole, exportRole, dataScope, changeRoleStatus, buent,issdanelist,issdaneid,weiduhegw,addbjectSawen } from "@/api/system/isses";
 import {
     getToken
   } from "@/utils/auth";
@@ -200,7 +273,7 @@ import {
   import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 export default {
   name: "Role",
-   components: {  Treeselect },
+   components: {  Treeselect,Flowshoe },
   data() {
     return {
       // 遮罩层
@@ -233,6 +306,7 @@ export default {
       deptNodeAll: false,
       // 日期范围
       dateRange: [],
+      instanceId: 0,
       // 状态数据字典
       statusOptions: [],
       // 数据范围选项
@@ -357,9 +431,55 @@ export default {
       },
       taegshouw:false,
       jeuiygqa:'',
-      soufa:false
-
-
+      soufa:false,
+      url:'',
+      srcList:[],
+      imashow:false,
+      shouewhu:false,
+      modalShowdu:false,
+      listnemd:[],
+      listnemrt:[],
+      nread:{
+        "table": "boman_message_receive",
+        "orderBy": "create_time desc",
+        pageNo:1,
+        pageSize:10,
+        fixedData:{
+          condition:{
+           message_id:0,
+           status:'N',
+           visible:'Y',
+           send_user_id:0,
+          }
+        }
+      },
+      nreadtwo:{
+        "table": "boman_message_receive",
+        "orderBy": "create_time desc",
+        pageNo:1,
+        pageSize:10,
+        fixedData:{
+          condition:{
+           message_id:0,
+           status:'Y',
+           visible:'Y',
+           send_user_id:0,
+          }
+        }
+      },
+      eceivelist:{
+        tableName: "urge_read_message",
+        objId:-1,
+        dataList:[{
+        message_id:0,
+        message_title:'',
+        send_user_name:'',
+        message_time:'',
+        recieve_user_id:'',
+        recieve_user_name:''
+        }]
+      },
+      jeogq:{}
     };
   },
   created() {
@@ -368,9 +488,11 @@ export default {
     this.tabled =  this.$route.query.tables;
     this.objeuisd = this.$route.query.id - 0;
     this.forew.fixedData.id = this.$route.query.id - 0;
+    this.instanceId = this.$route.query.id- 0;
     this.faerform.objId = this.$route.query.id - 0;
     this.faerform.table = this.$route.query.tables;
-
+    this.nread.fixedData.condition.message_id = this.$route.query.id - 0;
+    this.nreadtwo.fixedData.condition.message_id = this.$route.query.id - 0;
     this.frowtse.businessTypeName = this.$route.query.tables;
     this.frowtse.dbname = this.$route.query.tables;
     this.querjtgoe.message_situation = this.$route.query.tabname - 0;
@@ -389,7 +511,7 @@ export default {
     }
     this.getUser()
     this.gerdw()
-    this.getList();
+    // this.getList();
     this.getTreeselect()
     this.getDicts("sys_normal_disable").then(response => {
       this.statusOptions = response.data;
@@ -426,6 +548,9 @@ export default {
               this.taegshouw = true
             }
           }
+
+
+
         }
       );
     },
@@ -442,6 +567,7 @@ export default {
           this.lisehtwo.filter(route=>{
             jueg.push(route.receive_dept_name)
             nese.push(route.receive_user_name)
+            route.nickName = route.receive_user_name
           })
           this.mpany.ompany = jueg
           this.mpany.name = nese
@@ -517,6 +643,8 @@ export default {
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
+      this.idee = selection
+      console.log(this.idee)
       this.single = selection.length!=1
       this.multiple = !selection.length
     },
@@ -550,6 +678,7 @@ export default {
         this.faerform.children[i].table = 'boman_message_receive'
         if(this.objeuisd == -1){
           this.faerform.children[i].objId = this.objeuisd
+
         }else{
           this.faerform.children[i].objId = this.lisehtwo[i].id
         }
@@ -558,18 +687,23 @@ export default {
         this.faerform.children[i].fixedData.message_id = 'fk.boman_message'
         this.faerform.children[i].fixedData.send_message_time = tmie
         if(this.objeuisd == -1){
+
           this.faerform.children[i].fixedData.receive_user_id = this.lisehtwo[i].id
+
+
         }else{
           this.faerform.children[i].fixedData.receive_user_id = this.lisehtwo[i].receive_user_id
         }
-
         this.faerform.children[i].fixedData.receive_user_name = this.lisehtwo[i].userName
+        this.faerform.children[i].fixedData.send_user_name = this.jeogq.userName
+        this.faerform.children[i].fixedData.send_user_id = this.jeogq.id
+        this.faerform.children[i].fixedData.from_dept_name = this.jeogq.deptName
+        this.faerform.children[i].fixedData.message_title = this.querjtgoe.message_title
         if(this.lisehtwo[i].dept !== undefined && this.lisehtwo[i].dept !==null){
           this.faerform.children[i].fixedData.receive_dept_name = this.lisehtwo[i].dept.deptName
         }else{
           this.faerform.children[i].fixedData.receive_dept_name = this.lisehtwo[i].deptName
         }
-
       }
       console.log(this.faerform.children[i])
       // this.faerform.children
@@ -577,6 +711,12 @@ export default {
       // this.querjtgoe.message_enclosure = JSON.stringify(this.querjtgoe.message_enclosure)
       this.querjtgoe.message_id = 'fk.boman_message'
       this.querjtgoe.send_time = tmie
+      if(this.querjtgoe.message_enclosure !== undefined){
+        this.querjtgoe.has_annex = 'Y'
+      }else{
+        this.querjtgoe.has_annex = 'N'
+      }
+
       this.faerform.fixedData = this.querjtgoe
       console.log(this.faerform)
       this.$refs["querjtgoe"].validate(valid => {
@@ -652,7 +792,12 @@ export default {
           this.config.splice(i, 1);
         }
       }
-      this.querjtgoe.message_upload = this.config
+      if(this.config.length == 0){
+        this.querjtgoe.message_upload = undefined
+      }else{
+        this.querjtgoe.message_upload = JSON.stringify(this.config)
+      }
+
     },
     reseImagetwo(file, fileList) {
       let urls = ""
@@ -667,12 +812,27 @@ export default {
         }
       }
      console.log(this.configtwo)
-     this.querjtgoe.message_enclosure = this.configtwo
+     if(this.configtwo.length == 0){
+       this.querjtgoe.message_enclosure = undefined
+     }else{
+       this.querjtgoe.message_enclosure = JSON.stringify(this.configtwo)
+     }
+
     },
+    // 图片预览
     handlePictureCardPreview(file) {
-      console.log(file)
+      console.log(file,87)
+      console.log(file.name.split('.'))
+      let hegs = file.name.split('.')
+      console.log(hegs[hegs.length - 1])
+      if(hegs[hegs.length - 1] == 'pdf'){
+        this.shouewhu = true
+      }else{
+        this.shouewhu = false
+      }
       this.dialogImageUrl = file.url;
       this.dialogVisible = true;
+      this.imashow = true
     },
     upImageFn(res, file) {
       if(res.code !== 200){
@@ -700,6 +860,16 @@ export default {
 
       console.log(this.configtwo)
     },
+    // 上传前控制
+    befors(res, file){
+      console.log(res,file)
+      if(res.type !== 'application/pdf'){
+        this.msgSuccess('只能上传pdf文件');
+        return false
+      }else{
+        return true
+      }
+    },
     // 时间控件
     iChange(){
 
@@ -716,7 +886,6 @@ export default {
       console.log(row)
       this.shouew =  false
       this.querjtgoe.message_code = row.message_code
-
     },
     // 树形结构
     // 节点单击事件
@@ -852,7 +1021,6 @@ export default {
            that.lisehtwo.push(dueg[i]);
          }
        }
-
        // for(var i = 0 ; i <this.lisehtwo.length; i++ ){
        //   if(this.lisehtwo[i].id == index.id){
        //     this.lisehtwo.splice(i,1)
@@ -875,7 +1043,7 @@ export default {
         // this.lisehtwo = response.data;
         // this.dhiuw = response.data
         this.mpany.ompany = response.deptNameList
-        this.mpany.name = response.roleNameList
+        this.mpany.name = response.nikeNameList
         console.log( this.mpany.ompany)
         if(response.code == 200){
           this.msgSuccess('操作成功');
@@ -1015,20 +1183,104 @@ export default {
         this.frowtse.businessType = res.data.id
       })
      },
+    // 查看流程进度
+    rogress(){
+     this.modalShowdu = true
+     this.weiug()
+     this.yidue()
+    },
+    // 催收文
+    eceive(row,index){
+      console.log(index)
+      if (this.multiple && index == undefined) {
+        this.msgInfo('请勾选一条信息')
+        return
+      }
+     const id = row.id || this.ids.join(',')
+     let huew = []
+     if(row !== undefined){
+       this.idee = []
+     }
+
+     if(this.idee.length > 0 || row == undefined){
+       console.log(345)
+       for(var j = 0 ; j < this.idee.length; j++ ){
+         this.eceivelist.dataList[j] = {message_id:0,receive_user_id:0,receive_user_name:'',message_title:'',send_user_name:'',send_user_id:0,message_time:''}
+         this.eceivelist.dataList[j].message_id = this.idee[j].message_id
+         this.eceivelist.dataList[j].receive_user_id = this.idee[j].receive_user_id
+         this.eceivelist.dataList[j].receive_user_name = this.idee[j].receive_user_name
+         this.eceivelist.dataList[j].message_title = this.querjtgoe.message_title
+         this.eceivelist.dataList[j].send_user_name = this.querjtgoe.send_user_name
+         this.eceivelist.dataList[j].send_user_id = this.querjtgoe.send_user_id
+         this.eceivelist.dataList[j].message_time = this.querjtgoe.message_time
+       }
+     }else{
+       this.eceivelist.dataList =[{message_id:0,receive_user_id:0,receive_user_name:'',message_title:'',send_user_name:'',send_user_id:0,message_time:''}]
+       this.eceivelist.dataList[0].message_id = row.message_id
+       this.eceivelist.dataList[0].receive_user_id = row.receive_user_id
+       this.eceivelist.dataList[0].receive_user_name = row.receive_user_name
+       this.eceivelist.dataList[0].message_title = this.querjtgoe.message_title
+       this.eceivelist.dataList[0].send_user_name = this.querjtgoe.send_user_name
+       this.eceivelist.dataList[0].send_user_id = this.querjtgoe.send_user_id
+       this.eceivelist.dataList[0].message_time = this.querjtgoe.message_time
+     }
+
+     console.log(this.eceivelist)
+     this.adege()
+
+     // this.querjtgoe
+     // this.eceivelist.fixedData.message_id = row.message_id
+     // this.eceivelist.fixedData.recieve_user_id = row.recieve_user_id
+     // this.eceivelist.fixedData.recieve_user_name = row.recieve_user_name
+    },
+    // 催办接口
+    adege(){
+      addbjectSawen(this.eceivelist).then(res =>{
+          console.log(res)
+          if(res.code == 200){
+            this.msgSuccess('提交成功');
+            this.weiug()
+          }
+      })
+    },
+
+    // 查看未读
+    weiug(){
+      this.loading = true;
+      weiduhegw(this.nread).then(res => {
+          console.log(res)
+          this.loading = false
+          this.listnemd = res.data.rows
+      })
+    },
+    // 查看已读
+    yidue(){
+      this.loading = true;
+      weiduhegw(this.nreadtwo).then(res => {
+          console.log(res)
+          this.loading = false
+          this.listnemrt = res.data.rows
+      })
+    },
      // 用户信息
            getUser() {
              getUserProfile().then(response => {
+               this.jeogq = response.data
                this.querjtgoe.send_user_id = response.data.id
                this.querjtgoe.send_user_name = response.data.userName
                this.querjtgoe.create_dept_nam = response.data.dept.deptName
+               this.nread.fixedData.condition.send_user_id = response.data.id
+               this.nreadtwo.fixedData.condition.send_user_id = response.data.id
                this.faerform.fixedData.send_user_id = response.data.id
                this.frowtse.initiator = response.data.id
+
                this.frowtse.userName = response.data.userName
                // this.user = response.data;
                // this.getLisalendar()
                // this.getLismemorandum()
-               this.init();
+               // this.init();
                this.getList();
+
              });
            },
            // 时间转换
@@ -1066,7 +1318,7 @@ export default {
 
 
 <style lang="scss">
-  .jeuhg{
+  .jeuhgs{
    .el-form-item{
      margin-bottom: 0;
      width: 100%;
@@ -1090,12 +1342,17 @@ export default {
     background-color: #1890ff !important;
     color: #fff !important;
   }
-  .renhdy{
+  .renhdys{
     .el-form-item__content{
       width: 85%;
     }
 
   }
+  .renhdytwo{
+    .el-form-item__content{
+      display: flex;
+    }
+  }
   .upload-demo{
      text-align: right;
      display: flex;
@@ -1103,6 +1360,7 @@ export default {
      //   display: flex;
      // }
   }
+
   .el-textarea__inner{
     background-color: #fff !important;
     border: 0 !important;
@@ -1115,23 +1373,20 @@ export default {
     color: #333;
   }
   }
-</style>
-<style scoped  lang="scss">
-  .app-container{
-    padding: 0 80px !important;
-    padding-top: 20px !important;
-  }
+
   .infinite-list {
-    height: 150px;
+    // height: 150px;
     margin-bottom: 20px;
+    flex-wrap: wrap;
     .infinite-list-item {
-      width: 20% !important;
+      // flex:1!important;
       display: flex;
       // justify-content: space-between;
       align-items: center;
       text-align: center;
       list-style: none;
-      height: 30px;
+      height: 23px;
+      margin-left: 10px;
       // line-height: 30px;
     }
     .infinite-list-itemss {
@@ -1142,17 +1397,19 @@ export default {
     display: flex;
     flex-wrap: wrap;
     .infinite-list-itemty {
-      width: 20%;
+      // flex:1;
       display: flex;
       // justify-content: space-between;
-      height: 40px;
-      line-height: 40px;
+      height: 23px;
+      line-height: 23px;
       // text-align: center;
       list-style: none;
+      margin-left: 10px;
       // border-radius: 40px;
       // border: 1px solid #eee;
       // border-bottom: 1px solid #eee;
     }
+
   }
   // 分发人员
   .infinite-listopma{
@@ -1160,11 +1417,21 @@ export default {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
+   align-items: center;
    li{
      list-style: none;
-     width: 20%;
+     // width: 20%;
+     margin-left: 10px;
+     line-height: 23px;
    }
   }
+</style>
+<style scoped  lang="scss">
+  .app-container{
+    padding: 0 80px !important;
+    padding-top: 20px !important;
+  }
+
   .tab_bott {
     display: flex;
   }

+ 41 - 7
ruoyi-ui/src/views/system/pdf/index.vue

@@ -101,20 +101,27 @@ export default {
       },
       shouwe:true,
       wfor:{
-        "table": "",
+        table: "",
         objId:0,
         fixedData:{
-          status:'Y'
+          status:'Y',
+          receive_time :''
         }
       }
     }
   },
   created() {
     console.log(this.$route.query.tables)
-    this.forew.table = this.$route.query.tables;
+    this.forew.table = 'boman_message';
     this.forew.fixedData.id = this.$route.query.id - 0;
+    this.wfor.objId = this.$route.query.index - 0;
     this.wfor.table = this.$route.query.tables;
-    this.wfor.objId = this.$route.query.id - 0;
+    // 获取当前时间戳
+    var  date1 =new Date();
+    // let tmie = Date.parse(date1) / 1000
+    let tmie = this.dateFormat()
+    console.log(tmie)
+    this.wfor.fixedData.receive_time = tmie
     if(this.$route.query.teiwog == 'weidu'){
       this.weideu()
     }
@@ -139,8 +146,7 @@ export default {
               this.name = res.data.message_title
               this.juegh.absolutePath = pdflis[0].absolutePath
             }
-
-            console.log(this.src)
+            console.log(this.src.split('.'))
           }
         }
       );
@@ -182,10 +188,38 @@ export default {
           this.msgSuccess('已读成功');
           // this.shouwe =  true
         }else{
+
           // this.shouwe =  false
         }
         })
-    }
+    },
+    // 时间转换
+    dateFormat() {
+          var date = new Date();
+              var month = date.getMonth() + 1;
+              var strDate = date.getDate();
+              var hours = date.getHours()
+              var minus = date.getMinutes()
+              var secong = date.getSeconds()
+              if (month >= 1 && month <= 9) {
+                  month = "0" + month;
+              }
+              if (strDate >= 0 && strDate <= 9) {
+                  strDate = "0" + strDate;
+              }
+              if (hours >= 0 && hours <= 9) {
+                  hours = "0" + hours;
+              }
+              if (minus >= 0 && minus <= 9) {
+                  minus = "0" + minus;
+              }
+              if (secong >= 0 && secong <= 9) {
+                  secong = "0" + secong;
+              }
+              var currentDate = date.getFullYear() + "-" + month + "-" + strDate
+                      + " " + hours + ":" + minus + ":" + secong;
+              return currentDate;
+        },
 
 
   }

+ 248 - 24
ruoyi-ui/src/views/system/surface/index.vue

@@ -4,9 +4,9 @@
       <!-- <p>单表</p>
       <el-divider></el-divider> -->
       <div class="table_headerBtun" v-if="queryData.buttonList">
-        <el-button type="primary" plain @click="headerBtn(item)" size="small" v-for="(item,index) in queryData.buttonList.split('').filter((res) => {return res!='S'})"
+        <el-button :type=" item == 'A' ? 'primary' : item == 'M' ? 'success' : item == 'D' ? 'danger' : 'primary'" :icon="item == 'A' ? 'el-icon-plus' : item == 'M' ? 'el-icon-edit' : item == 'D' ? 'el-icon-delete' : 'el-icon-view'" plain @click="headerBtn(item)" size="small" v-for="(item,index) in queryData.buttonList.split('').filter((res) => {return res!='S'})"
           :key="index +'name'">{{item | btnConversion}}</el-button>
-          <el-button v-if="tabnaem == 1" type="primary" plain @click="headerBtn('H')" size="small" >撤回</el-button>
+          <el-button  v-if="tabnaem == 1" type="warning" plain @click="headerBtn('H')" icon="el-icon-d-arrow-left" size="small" >撤回</el-button>
       </div>
       <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
         <dynamic-forms :type="0" :ref="item.columnName" :config="queryParams" @inputs="changeFn" :formConfig="item"
@@ -19,33 +19,94 @@
     </div>
     <!-- 内容 -->
     <div class="table_nav">
-      <el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
+      <el-table stripe v-loading="loading" :data="postList" @selection-change="handleSelectionChange" @row-click="rowclid">
         <el-table-column type="selection" width="45" style="color: red;" align="center" />
         <template v-for="(item, index) in tabData" >
-          <el-table-column :width="item.columnComment =='编号'? '50' : tabData.length>13?zjFn(item.columnComment)*19:'auto'" :label="item.columnComment" align="center" :prop="item.columnName" :key="index" show-overflow-tooltip>
+          <el-table-column :width="item.columnName =='message_title'? '200' : tabData.length>13?zjFn(item.columnComment)*19:'auto'" :label="item.columnComment" align="center" :prop="item.columnName" :key="index" show-overflow-tooltip v-if="item.columnName !== 'send_user_id'">
           <!-- :style="scope.row.list_class" scope.row[scope.column.property] -->
-            <template slot-scope="scope"  >
+            <template slot-scope="scope"  style="width: 100%;" >
               <img class="img_icon" v-if="item.htmlType=='imageUpload' && scope.row[scope.column.property] && scope.row[scope.column.property] !== '[]'" @click="imgBtn(JSON.parse(scope.row[scope.column.property])[0].url)"
                 :src="scope.row[scope.column.property] == '[]' ? '' : JSON.parse(scope.row[scope.column.property])[0].url  " alt="">
              <span :style="scope.row.list_class" v-else-if="item.htmlType=='imageUpload' && scope.row[scope.column.property] && scope.row[scope.column.property] == '[]'">暂无图片</span>
               <span :style="scope.row.list_class" v-else-if="item.columnName == 'status' ">{{ scope.row[scope.column.property] }}</span>
               <!-- && tabnaem == 'yidu' || tabnaem == 'weidu' -->
-              <div v-else-if="item.columnName == 'message_title'  && tabnaem == 'yidu' || tabnaem == 'weidu' " @click="titey(scope.row.id)">
+              <div v-else-if="item.columnName == 'message_title'  && tabnaem == 'yidu' || tabnaem == 'weidu' " @click="titey(scope.row.message_id,scope.row.id)">
                  {{scope.row[scope.column.property]}}
               </div>
-              <div v-else>
+              <div v-else   style="width: 100%;">
                 <span v-if="item.fkInfo">{{scope.row[scope.column.property].value}}</span>
                 <span v-else>{{scope.row[scope.column.property]}}</span>
               </div>
             </template>
           </el-table-column>
+
         </template>
+        <el-table-column v-if="tabnaem == 1" label="操作" align="center" class-name="small-padding fixed-width">
+          <template slot-scope="scope">
+            <el-button type="text" :icon="item == 'A' ? 'el-icon-plus' : item == 'M' ? 'el-icon-edit' : item == 'D' ? 'el-icon-delete' : 'el-icon-view'" plain @click.stop="headerBtn(item,scope.row)" size="small" v-for="(item,index) in queryData.buttonList.split('').filter((res) => {return res!='S' && res!='A'})"
+              :key="index +'name'">{{item | btnConversion}}</el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click.stop="rogress(scope.row)"
+
+            >查看进度</el-button>
+          </template>
+        </el-table-column>
       </el-table>
       <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
         @pagination="getList" />
     </div>
     <BigPicture ref="BigPicture" :urls="pir_imgs"></BigPicture>
+    <!-- 流程进度 -->
+    <el-dialog :close-on-click-modal="false" title="流程进度" :visible.sync="modalShowdu" width="1180px" append-to-body>
+      <div style="display: flex;">
+        <div style="width: 60%;">
+          <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+              <span style="margin-right: 10px;">未读收文</span>
+              <el-button
+                type="primary"
+                plain
+                size="mini"
+                @click="eceive"
+              >一键催收文</el-button>
+            </el-col>
+          </el-row>
+          <el-table v-loading="loading" :data="listnemd" @selection-change="handleSelectionChange" stripe>
+            <el-table-column type="selection" width="55" align="center" />
+            <el-table-column label="姓名" align="center" prop="receive_user_name" />
+            <el-table-column label="部门" align="center" prop="receive_dept_name" />
+            <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  @click="eceive(scope.row,2)"
+                >催收文</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+        <div style="width: 100%; margin-left: 20px;" >
+          <el-row :gutter="10" class="mb8">
+            <el-col style="margin-bottom: 8px;" :span="1.5">
+              <span >已读收文</span>
+            </el-col>
+          </el-row>
+          <el-table :border="false" v-loading="loading" :data="listnemrt" >
+            <el-table-column label="姓名" align="center" prop="receive_user_name" />
+            <el-table-column label="部门" align="center" prop="receive_dept_name" />
+            <el-table-column width="180px" label="收文时间" align="center" prop="send_message_time" />
+          </el-table>
+        </div>
+        <Flowshoe  :instanceId="instanceId"></Flowshoe>
+      </div>
+    </el-dialog>
   </div>
+
+
 </template>
 
 <script>
@@ -58,6 +119,8 @@
     getObject,
     isech
   } from '@/api/system/table.js'
+  import Flowshoe from '@/components/flowshoe'
+  import { weiduhegw,addbjectSawen } from "@/api/system/isses";
   import {getUserProfile} from "@/api/system/config";
   import {
     mapGetters,
@@ -65,6 +128,7 @@
   } from "vuex";
   export default {
     name: "index",
+    components: {Flowshoe },
     data() {
       return {
         pir_imgs: '', // 图片链接
@@ -106,7 +170,52 @@
             }
           }
         },
-        tabnaem:''
+        tabnaem:'',
+        opeid:0,
+        modalShowdu:false,
+        listnemd:[],
+        listnemrt:[],
+        nread:{
+          "table": "boman_message_receive",
+          "orderBy": "create_time desc",
+          pageNo:1,
+          pageSize:30,
+          fixedData:{
+            condition:{
+             message_id:0,
+             status:'N',
+             visible:'Y',
+             send_user_id:0,
+            }
+          }
+        },
+        nreadtwo:{
+          "table": "boman_message_receive",
+          "orderBy": "create_time desc",
+          pageNo:1,
+          pageSize:30,
+          fixedData:{
+            condition:{
+             message_id:0,
+             status:'Y',
+             visible:'Y',
+             send_user_id:0,
+            }
+          }
+        },
+        eceivelist:{
+          tableName: "urge_read_message",
+          objId:-1,
+          dataList:[{
+          message_id:0,
+          message_title:'',
+          send_user_name:'',
+          message_time:'',
+          recieve_user_id:'',
+          recieve_user_name:''
+          }]
+        },
+        instanceId: 0,
       };
     },
     filters: {
@@ -119,7 +228,7 @@
           case 'D':
             return '删除';
           case 'Q':
-            return '查';
+            return '查';
           case 'S':
             return '提交';
           case 'U':
@@ -175,8 +284,6 @@
 
       // this.queryParams.fixedData.condition.message_situation
       this.form.table = items.sysTableName
-
-
     },
     methods: {
       zjFn(str) {
@@ -199,13 +306,13 @@
         this.pir_imgs = url
         this.$refs.BigPicture.hidden.status = true
       },
-      routerFn(id, tables) {
+      routerFn(id, tables,index) {
 
         console.log(this.tabnaem)
         if (this.tabnaem == 'shouwen'  ) {
           console.log(34)
           this.$router.push({
-            path: '/business/issue',
+            path: '/business/collection',
             query: {
               id,
               tables,
@@ -225,7 +332,8 @@
           this.$router.push({
             path: '/system/pdf',
             query: {
-              id,
+              id:this.opeid,
+              index:id,
               tables:this.tabName,
               teiwog:this.tabnaem
             },
@@ -241,7 +349,8 @@
           })
         }
       },
-      headerBtn(item) {
+      headerBtn(item,inhe) {
+        console.log(inhe)
         const _this = this
         switch (item) {
           case 'A':
@@ -251,11 +360,20 @@
             }
           case 'M':
             {
-              if (this.single) {
+              if (this.single && inhe == undefined) {
                 this.msgInfo('请勾选一条信息')
                 return
               }
-              const id = this.ids.join(',')
+              // const id = inhe.id ||  this.ids.join(',')
+              let id = []
+              if(inhe !== undefined){
+                let jie = []
+                jie.push(inhe.id)
+                 id = jie
+              }else{
+                id =  _this.ids
+                console.log(id)
+              }
               this.routerFn(id, this.tabName)
               return
             }
@@ -284,18 +402,29 @@
               }
           case 'D':
             {
-              if (this.multiple) {
+              if (this.multiple && inhe == undefined) {
                 this.msgInfo('请勾选一条信息')
                 return
               }
-              this.$confirm('是否确认删除岗位编号为"' + this.ids + '"的数据项?', "警告", {
+              //  console.log(_this.ids.join(','))
+              let id = []
+              if(inhe !== undefined){
+                let jie = []
+                jie.push(inhe.id)
+                 id = jie
+              }else{
+                id =  _this.ids
+                console.log(id)
+              }
+              console.log(id)
+              this.$confirm('是否确认删除?', "警告", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
                 type: "warning"
               }).then(function() {
                 return delMenu({
                   table: _this.tabName,
-                  idList: _this.ids
+                  idList: id
                 });
               }).then(() => {
                 _this.getList();
@@ -310,7 +439,10 @@
                 this.msgInfo('请勾选一条信息')
                 return
               }
+              // const id = this.idsty.join(',')
               const id = this.ids.join(',')
+              const index = this.idsty.join(',')
+              this.opeid  =  index
               // const id = -1
               this.routerFn(id, this.tabName)
               // this.handleQuery()
@@ -331,6 +463,11 @@
             }
         }
       },
+      rowclid(row){
+       console.log(row)
+       this.opeid = row.message_id
+       this.routerFn(row.id,this.tabName)
+      },
       // 取消按钮
       cancel() {
         this.open = false;
@@ -345,6 +482,8 @@
       // 多选框选中数据
       handleSelectionChange(selection) {
         this.ids = selection.map(item => item.id)
+        this.idsty = selection.map(item => item.message_id)
+        this.idee = selection
         this.single = selection.length != 1
         this.multiple = !selection.length
       },
@@ -412,7 +551,7 @@
             this.queryData.buttonList = buy
             if(this.tabnaem == 'shouwen'){
               // this.queryData.buttonList = buy + 'Q'
-              this.queryData.buttonList = buy 
+              this.queryData.buttonList = buy
             }
           }else{
             this.queryData.buttonList = 'Q'
@@ -421,12 +560,13 @@
       },
       handleChange(val) {},
       // 点击标题
-      titey(id){
+      titey(id,index){
         console.log(id)
         this.$router.push({
           path: '/system/pdf',
           query: {
             id,
+            index,
             tables:this.tabName,
             teiwog:this.tabnaem
           },
@@ -447,8 +587,8 @@
             this.queryParams.fixedData.condition.receive_user_id = response.data.id
             this.queryParams.fixedData.condition.send_user_id = undefined
           }else if(this.tabnaem == 'shouwen'){
-            this.queryParams.fixedData.condition.visible =  'Y'
-            this.queryParams.fixedData.condition.receive_user_id = response.data.id
+            // this.queryParams.fixedData.condition.visible =  'Y'
+            // this.queryParams.fixedData.condition.receive_user_id = response.data.id
             this.queryParams.fixedData.condition.send_user_id = undefined
           }
           else{
@@ -460,10 +600,94 @@
           // this.user = response.data;
           // this.getLisalendar()
           // this.getLismemorandum()
+          this.nread.fixedData.condition.send_user_id = response.data.id
+          this.nreadtwo.fixedData.condition.send_user_id = response.data.id
+
           this.init();
           this.getList();
         });
       },
+      // 查看流程进度
+      rogress(row){
+       this.modalShowdu = true
+       this.instanceId = row.id
+       this.nread.fixedData.condition.message_id = row.id
+       this.nreadtwo.fixedData.condition.message_id = row.id
+      this.querjtgoe = row
+       this.weiug()
+       this.yidue()
+
+      },
+      // 查看未读
+      weiug(){
+        this.loading = true;
+        weiduhegw(this.nread).then(res => {
+            console.log(res)
+            this.loading = false
+            this.listnemd = res.data.rows
+        })
+      },
+      // 查看已读
+      yidue(){
+        this.loading = true;
+        weiduhegw(this.nreadtwo).then(res => {
+            console.log(res)
+            this.loading = false
+            this.listnemrt = res.data.rows
+        })
+      },
+      // 催收文
+      eceive(row,index){
+       if (this.multiple && index == undefined) {
+         this.msgInfo('请勾选一条信息')
+         return
+       }
+       const id = row.id || this.ids.join(',')
+       let huew = []
+       if(row !== undefined){
+         this.idee = []
+       }
+       if(this.idee.length > 0){
+         console.log(345)
+         for(var j = 0 ; j < this.idee.length; j++ ){
+           this.eceivelist.dataList[j] = {message_id:0,receive_user_id:0,receive_user_name:'',message_title:'',send_user_name:'',send_user_id:0,message_time:''}
+           this.eceivelist.dataList[j].message_id = this.idee[j].message_id
+           this.eceivelist.dataList[j].receive_user_id = this.idee[j].receive_user_id
+           this.eceivelist.dataList[j].receive_user_name = this.idee[j].receive_user_name
+           this.eceivelist.dataList[j].message_title = this.querjtgoe.message_title
+           this.eceivelist.dataList[j].send_user_name = this.querjtgoe.send_user_name
+           this.eceivelist.dataList[j].send_user_id = this.querjtgoe.send_user_id
+           this.eceivelist.dataList[j].message_time = this.querjtgoe.message_time
+         }
+       }else{
+         this.eceivelist.dataList =[{message_id:0,receive_user_id:0,receive_user_name:'',message_title:'',send_user_name:'',send_user_id:0,message_time:''}]
+         this.eceivelist.dataList[0].message_id = row.message_id
+         this.eceivelist.dataList[0].receive_user_id = row.receive_user_id
+         this.eceivelist.dataList[0].receive_user_name = row.receive_user_name
+         this.eceivelist.dataList[0].message_title = this.querjtgoe.message_title
+         this.eceivelist.dataList[0].send_user_name = this.querjtgoe.send_user_name
+         this.eceivelist.dataList[0].send_user_id = this.querjtgoe.send_user_id
+         this.eceivelist.dataList[0].message_time = this.querjtgoe.message_time
+       }
+
+       console.log(this.eceivelist)
+       this.adege()
+
+       // this.querjtgoe
+       // this.eceivelist.fixedData.message_id = row.message_id
+       // this.eceivelist.fixedData.recieve_user_id = row.recieve_user_id
+       // this.eceivelist.fixedData.recieve_user_name = row.recieve_user_name
+      },
+      // 催办接口
+      adege(){
+        addbjectSawen(this.eceivelist).then(res =>{
+            console.log(res)
+            if(res.code == 200){
+              this.msgSuccess('提交成功');
+              this.weiug()
+            }
+        })
+      },
     },
   };
 </script>

+ 2 - 38
ruoyi-ui/src/views/system/table/index.vue

@@ -34,33 +34,6 @@
 
         </el-form>
         <div>
-          <!-- :showde.sync="modalShow" -->
-          <el-dialog   :close-on-click-modal="false" title="选择人员" :visible.sync="modalShow" width="980px" append-to-body>
-            <!-- <Flowshoe  :instanceId="instanceId"></Flowshoe> -->
-            <div class="tab_bott">
-              <div class="tabBot_oje">
-                <el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
-                  <!-- :setCheckedKeys='setCheckedKeys' :getCheckedKeys = "getCheckedKeys" -->
-                  <el-tab-pane label="按部门" name="first">
-                    <el-tree :data="data" :props="defaultProps" show-checkbox   default-expand-all node-key="id" :setCheckedKeys='setCheckedKeys'  @check = "check"   ref="tree"  highlight-current @node-click="handleNodeClick" ></el-tree>
-                  </el-tab-pane>
-                  <el-tab-pane label="按角色" name="second">配置管理</el-tab-pane>
-                  <el-tab-pane label="按组" name="third">角色管理</el-tab-pane>
-                </el-tabs>
-              </div>
-              <div class="tabBot_two">
-                <el-card class="box-card" shadow="always">
-                  <div slot="header" class="clearfix">
-                    <span>人员对应的单位</span>
-                    <el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
-                  </div>
-                  <ul class="infinite-list infinite-listty" v-infinite-scroll="load" style="overflow:auto">
-                    <li v-for="i in count" class="infinite-list-item">{{ i }}</li>
-                  </ul>
-                </el-card>
-              </div>
-            </div>
-          </el-dialog>
         </div>
       </el-collapse>
     </div>
@@ -581,9 +554,7 @@ export default {
     border-top: 0;
   }
 }
-.infinite-list {
-  height: 200px;
-}
+
 .tab_bott {
   display: flex;
 }
@@ -646,14 +617,7 @@ p {
   right: 0;
   top: 5px;
 }
-.infinite-list {
-  // border: 1px solid #eee;
-  padding: 30px;
-}
-.infinite-listty {
-  margin-top: 20px;
-  // border: 1px solid #eee;
-}
+
 </style>
 
 <style scoped lang="scss">

+ 3 - 3
ruoyi-ui/src/views/system/user/index.vue

@@ -142,7 +142,7 @@
           <el-table-column type="selection" width="50" align="center" />
           <el-table-column label="用户编号" align="center" key="id" prop="id" v-if="columns[0].visible" />
           <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-          <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+          <el-table-column label="人员姓名" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
           <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
           <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
           <el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
@@ -208,8 +208,8 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-row>
           <el-col :span="12">
-            <el-form-item label="用户昵称" prop="nickName">
-              <el-input v-model="form.nickName" placeholder="请输入用户昵称" />
+            <el-form-item label="人员姓名" prop="nickName">
+              <el-input v-model="form.nickName" placeholder="请输入人员姓名" />
             </el-form-item>
           </el-col>
           <el-col :span="12">