Просмотр исходного кода

feat: 我的抄送增加已读未读功能

liujt 2 дней назад
Родитель
Сommit
c76a3fdbcb
2 измененных файлов с 53 добавлено и 3 удалено
  1. 9 0
      src/api/bpm/task.js
  2. 44 3
      src/views/bpm/carbonCopy/index.vue

+ 9 - 0
src/api/bpm/task.js

@@ -378,4 +378,13 @@ export function withdrawTask(query) {
     method: 'get',
     params: query
   });
+}
+
+// 我的抄送已读未读
+export function ccReaderTask(query) {
+  return request({
+    url: 'bpm/task/cc-reader',
+    method: 'post',
+    data: query 
+  });
 }

+ 44 - 3
src/views/bpm/carbonCopy/index.vue

@@ -38,9 +38,17 @@
                 />
               </el-form-item>
             </el-col>
+            <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
+              <el-form-item label="是否已读:" prop="isRead">
+                <el-select style="width: 100%" v-model="params.isRead" placeholder="请选择">
+                  <el-option label="已读" value="1"></el-option>
+                  <el-option label="未读" value="0"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
             <el-col
               style="display: flex; justify-content: flex-end"
-              v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }"
+              v-bind="styleResponsive ? { lg: 24, md: 24 } : { span: 6 }"
             >
               <div class="ele-form-actions">
                 <el-button
@@ -90,7 +98,9 @@
           {{ getDateTime(row.durationInMillis) }}
         </template>
         <template v-slot:name="{ row }">
+          <span class="dot" v-if="row.isRead == 0"></span>
           <el-link type="primary" :underline="false" @click="handleAudit(row)">
+            
             {{ row.name }}</el-link
           >
         </template>
@@ -112,7 +122,7 @@
 
 <script>
   import dictMixins from '@/mixins/dictMixins';
-  import { ccPage } from '@/api/bpm/task';
+  import { ccPage, ccReaderTask } from '@/api/bpm/task';
   import { getDate } from '@/utils/dateUtils';
   import detail from '@/views/bpm/done/detailDialog.vue';
 
@@ -236,6 +246,16 @@
             align: 'center',
             showOverflowTooltip: true,
             minWidth: 130
+          },
+          {
+            prop: 'isRead',
+            label: '是否已读',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 130,
+            formatter: (row) => {
+              return row.isRead == 1 ? '已读' : '未读';
+            }
           }
         ]
       };
@@ -267,7 +287,15 @@
         this.reload();
       },
       /** 处理审批按钮 */
-      handleAudit(row) {
+      async handleAudit(row) {
+        const readStatus = await ccReaderTask({
+          id: row.id
+        });
+
+        console.log('readStatus~~', readStatus);
+        if(readStatus) {
+          row.isRead = 1;
+        }
         const params = {
           ...row,
           processInstance: {
@@ -307,3 +335,16 @@
     }
   };
 </script>
+
+<style scoped>
+.dot {
+  display: inline-block;
+  width: 5px;
+  height: 5px;
+  background-color: red;
+  border-radius: 50%;
+  position: absolute;
+  top: 10px;
+  left: 4px;
+}
+</style>