瀏覽代碼

消息通知,权限按钮

cxmo 1 年之前
父節點
當前提交
06c396a27f

+ 66 - 0
src/components/notificationMsg.vue

@@ -0,0 +1,66 @@
+<template>
+    <!-- 消息通知 -->
+    <el-popover
+        placement="bottom"
+        width="443"
+        trigger="click">
+        <div class="notifation-wrap">
+            <el-tabs v-model="activeName">
+                <el-tab-pane label="研报审批" name="first"></el-tab-pane>
+                <el-tab-pane label="hidden" name="hidden"></el-tab-pane>
+            </el-tabs>
+            <div class="massage-list">
+                <div class="message-item">
+                    <span class="icon">!</span>
+                    <div class="info">
+                        <div class="head">
+                            <span class="title">您有新的代办任务</span>
+                            <span class="time">2023-11-17 09:10</span>
+                        </div>
+                        <div class="content">张三 提交的【研报审批】需要您审批,请及时处理</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <span slot="reference">消息</span>
+    </el-popover>
+</template>
+
+<script>
+export default {
+    data() {
+        return {
+            activeName:'first'
+        };
+    },
+    methods: {
+
+    },
+};
+</script>
+
+<style lang="scss">
+.notifation-wrap{
+    #tab-hidden{
+        color:#fff;
+        pointer-events: none;
+    }
+    .massage-list{
+        padding: 10px;
+        .message-item{
+            display: flex;
+            .icon{
+                width:40px;
+            }
+            .info{
+                flex:1;
+                .head{
+                    display: flex;
+                    justify-content: space-between;
+                }
+
+            }
+        }
+    }
+}
+</style>

+ 21 - 1
src/utils/buttonConfig.js

@@ -617,6 +617,25 @@ export const outlinkConfigPermission = {
     outlinkListConfig_edit:'outlinkListConfig:edit',//编辑
     outlinkListConfig_del:'outlinkListConfig:del',//删除
 }
+/*----------审批流配置----*/
+export const approveFlowPermission = {
+    reportApprove_save:'reportApprove:save',//保存
+    reportApprove_remove:'reportApprove:remove',//删除
+    reportApprove_edit:'reportApprove:edit',//编辑审批流(按钮)
+    reportApprove_add:'reportApprove:add',//添加审批流
+}
+/*
+ * --------------------------------------------------------------------------审批管理------------------------------------------------
+*/
+export const approvePermission = {
+    reportApprove_approve:'reportApprove:approve',//审批(列表中的按钮)
+    reportApprove_reject:'reportApprove:reject',//驳回(列表中的按钮)
+    reportApprove_agree:'reportApprove:agree',//通过(审批详情-通过按钮)
+    reportApprove_detail:'reportApprove:detail',//详情(列表中的按钮)
+    reportApprove_rejectreason:'reportApprove:rejectreason',//驳回理由(列表中的按钮)
+    reportApprove_return:'reportApprove:return',//返回(审批详情-返回按钮)
+    reportApprove_repeal:'reportApprove:repeal',//撤回(列表中的按钮,审批详情-撤回按钮)
+}
 
 
 //创建了新的ManageBtn记得添加到这里
@@ -632,7 +651,8 @@ const btnMap  = {
     statisticPermission,stockPlantPermission,
     productPricePermission,sysDepartPermission,
     operateAuthPermission,baseConfigPermission,
-    outlinkConfigPermission
+    outlinkConfigPermission,approveFlowPermission,
+    approvePermission
 }
 
 /**

+ 5 - 2
src/views/Home.vue

@@ -248,7 +248,8 @@
                 style="width: 84px;height: 24; cursor: pointer;" />
                 </div>
               </div>
-
+               <!-- 消息通知 -->
+              <notification-msg />
               <el-dropdown trigger="click" style="width:130px;">
                 <span class="el-dropdown-link userinfo-inner">
                   <img src="~@/assets/img/home/avatar.png"/>
@@ -316,13 +317,15 @@ import questionnaireDia from "../components/questionnaireDia.vue";
 import EventBus from "@/api/bus.js";
 
 import {recordActiveLoginFun,loginEndCalc} from "@/utils/TimeOnPage.js"
+import NotificationMsg from "../components/notificationMsg.vue";
 
 export default {
   components: {
     PwdDlg,
     questionMsgDia,
     questionnaireDia,
-  },
+    NotificationMsg
+},
   inject: ["reload"],
   filters: {
     formatDate(e) {

+ 0 - 1
src/views/approve_manage/approveEdit.vue

@@ -64,7 +64,6 @@ export default {
                 name:[{ required: true, message: '请输入审批流名称名称', trigger: 'blur' },],
                 classify:[{ required: true, message: '请选择关联报告', trigger: 'blur' },]
             },
-            classifyTree:[],
 
         };
     },

+ 49 - 17
src/views/approve_manage/approveList.vue

@@ -10,24 +10,39 @@
         </div>
         <div class="approve-list">
             <div class="select-box">
-                <div class="box">
-                    <el-select placeholder="请选择关联报告" style="margin-right: 20px;"></el-select>
-                    <el-select v-show="activeTab!=='pending'" placeholder="时间类型" style="width:120px;">
-                        <el-option label="提交时间" :value="1" />
-                        <el-option label="处理时间" :value="2" v-if="activeTab==='processed'"/>
-                        <el-option label="审批时间" :value="3" v-if="activeTab==='originate'"/>
-                    </el-select>
-                    <el-date-picker type="daterange"
-                        range-separator="至"
-                        start-placeholder="开始日期"
-                        end-placeholder="结束日期">
-                    </el-date-picker>
-                    <el-select placeholder="请选择处理状态" style="margin-left: 20px;">
+                <el-cascader v-model="classify"
+                    placeholder="请选择关联报告" clearable
+                    :options="classifyTree"
+                    :props="{value:'ClassifyId',label:'ClassifyName',children:'Children'}"
+                    @change="handleSearchChange">
+                </el-cascader>
+                <el-select v-show="activeTab!=='pending'" v-model="timeType" placeholder="时间类型" style="width:120px;">
+                    <el-option label="提交时间" :value="1" />
+                    <el-option label="处理时间" :value="2" v-if="activeTab==='processed'"/>
+                    <el-option label="审批时间" :value="3" v-if="activeTab==='originate'"/>
+                </el-select>
+                <el-date-picker v-model="timeDate"
+                    type="daterange"
+                    range-separator="至"
+                    start-placeholder="开始日期"
+                    end-placeholder="结束日期">
+                </el-date-picker>
+                <el-select placeholder="请选择处理状态" v-model="statusType">
+                    <template v-if="activeTab==='processed'">
                         <el-option label="已同意" :value="1" />
                         <el-option label="已驳回" :value="2" />
-                    </el-select>
-                </div>
-                <el-input placeholder="请输入报告标题" style="width:260px;"></el-input>
+                    </template>
+                    <template v-if="activeTab==='originate'">
+                        <el-option label="待审批" :value="1" />
+                        <el-option label="已通过" :value="2" />
+                        <el-option label="已驳回" :value="1" />
+                        <el-option label="已撤销" :value="2" />
+                    </template>
+                    
+                </el-select>
+
+                <el-input v-model="keyword"
+                    placeholder="请输入报告标题" style="width:260px;margin-left: auto;"></el-input>
             </div>
             <div class="list-box">
                 <el-table :data="tableData" @sort-change="sortChange" border>
@@ -81,6 +96,7 @@
 
 <script>
 import RejectDialog from './components/rejectDialog.vue';
+import approveMixins from './mixins/approveMixins';
 import {
         approve_pending_columns,
         approve_processed_columns,
@@ -92,14 +108,23 @@ const columnsMap = {
     'originate':approve_originate_columns
 }
 export default {
+    mixins:[approveMixins],
     data() {
         return {
             activeTab: 'pending',
+            /* 筛选项 */
+            timeType:1,
+            timeDate:'',
+            statusType:'',
+            keyword:'',
+            classify:'',
+
             tableData: [{ name: 1 }],
             tableColumns: approve_pending_columns,
             page: 1,
             pageSize: 10,
             total: 0,
+
             currentData: {},
             isDetailDialogShow: false
         };
@@ -111,12 +136,18 @@ export default {
         sortChange({ prop, order }) {
         },
         handleClick() {
+            this.timeType = 1
+            this.timeDate=''
             this.tableColumns = columnsMap[this.activeTab];
         },
         handleShowDetail(data) {
             this.currentData = data;
             this.isDetailDialogShow = true;
-        }
+        },
+        handleSearchChange(){},
+    },
+    mounted(){
+        this.getClassifyTree()
     },
     components: { RejectDialog }
 };
@@ -132,6 +163,7 @@ export default {
         .select-box{
             display: flex;
             justify-content: space-between;
+            gap:10px;
         }
     }
     .list-box{

+ 0 - 1
src/views/approve_manage/approveSetting.vue

@@ -59,7 +59,6 @@ export default {
             SortRule:0,//排序规则:1-正序; 2-倒序(默认)
             Keyword:'',
             classify:'',
-            classifyTree:[],
 
             tableData:[],
             tableColumns:[{

+ 5 - 0
src/views/approve_manage/mixins/approveMixins.js

@@ -10,6 +10,11 @@ const filterNodes = (arr)=>{
 }
 
 export default{
+    data(){
+        return {
+            classifyTree:[],
+        }
+    },
     methods:{
         getClassifyTree(){
             approveInterence.getReportClassifyTree().then(res=>{