فهرست منبع

本部部门配置与业绩指标计划页面根据需求修改相应逻辑,服务联调;绩效结果考核申报页面根据需求修改相应功能;

SunZehao 1 سال پیش
والد
کامیت
4dbc89e754

+ 1 - 1
src/api/api.js

@@ -425,7 +425,7 @@ export function apiGetevaluationdeptassessmentDetailHeader(params) {
 //----"单位--考评启动-详情--删除"
 export function apiGetevaluationdeptplandelete(params) {
     return httpRequest({
-        url: `evaluation-dept-plan/delete/${params}`,
+        url: `evaluation-dept-plan/delete/${params.id}/${params.deptId}`,
         method: 'post'
     })
 }

+ 6 - 2
src/components/assessment/evaluationDeptStartFrom.vue

@@ -300,7 +300,11 @@ export default {
                 type: 'warning'
             }).then(() => {
                 let that = this
-                apiGetevaluationdeptplandelete(row.id).then(datas =>{
+                let params = {
+                    id: row.id,
+                    deptId: that.userMes.deptId
+                }
+                apiGetevaluationdeptplandelete(params).then(datas =>{
                     that.$message({
                         type: 'success',
                         message: '删除成功!'
@@ -316,7 +320,7 @@ export default {
             that.quantifiedList = []
             that.departData = []
             let params = {
-                id: id,
+                // id: id,
                 deptId: that.userMes.deptId
             }
             // 获取部门数据

+ 28 - 4
src/components/gateWay/gateWayNotificationDetail.vue

@@ -49,12 +49,12 @@
                             <div class="fliesMain">
                                 <div>
                                     <img :src="file" style="margin-right: 10px" >
-                                    <span class="fliesMainSpan spanOne">{{it}}</span>
+                                    <span class="fliesMainSpan spanOne">{{it.name}}</span>
                                 </div>
-                                <span class="fliesMainSpan spanTwo" style="font-size:14px">{{it.releaseDeptName}}</span>
+                                <span class="fliesMainSpan spanTwo" style="font-size:14px">{{it.deptName}}</span>
                                 <!-- <span>{{userMes.unitName}}</span> -->
                                 <div class="fileOperate">
-                                    <div @click="previewFile(it)" style="cursor:pointer">
+                                    <div @click="previewFile(it.name)" style="cursor:pointer">
                                         <img :src="yulan" style="margin-right: 10px;" >
                                         <span style="font-size:14px">预览</span>
                                     </div>
@@ -71,6 +71,7 @@
 <script>
 import yulan from '../../assets/btnIcon/yulan.png'
 import fileDelete from '../../assets/btnIcon/fileDelete.png'
+import {apiGetevaluationdeptnoticeFilePreview} from '../../api/api'
 export default {
     data() {
         return {
@@ -104,8 +105,31 @@ export default {
             }
             if (row.noticeAnnex !== '') {
                 let filesArr = row.noticeAnnex.split(',')
-                this.filesListEdit = filesArr
+                let filesArrNew = []
+                filesArr.forEach(it => {
+                    let obj = {
+                        name: it,
+                        deptName: row.releaseDeptName
+                    }
+                    filesArrNew.push(obj)
+                })
+                this.filesListEdit = filesArrNew
+            }
+        },
+        previewFile(it) {
+            // this.filesVisible = true
+            let params = {
+                url: it
             }
+            apiGetevaluationdeptnoticeFilePreview(params).then(datas =>{
+                if (datas) {
+                    // const blob = new Blob([datas], {type: 'application/pdf'})
+                    // const url = URL.createObjectURL(blob)
+                    // window.open(url)
+                    // console.log('files', datas)
+                    window.open(datas.data, 'target')
+                }
+            })
         },
     }
 }

+ 6 - 2
src/components/taskCenter/taskCenterDeptStartFrom.vue

@@ -261,7 +261,7 @@ export default {
             //     }
             // })
             let params = {
-                id: datas.bizKey,
+                // id: datas.bizKey,
                 deptId: that.userMes.deptId
             }
             // 获取部门数据
@@ -295,7 +295,11 @@ export default {
                 type: 'warning'
             }).then(() => {
                 let that = this
-                apiGetevaluationdeptplandelete(row.id).then(datas =>{
+                let params = {
+                    id: row.id,
+                    deptId: that.userMes.deptId
+                }
+                apiGetevaluationdeptplandelete(params).then(datas =>{
                     that.$message({
                         type: 'success',
                         message: '删除成功!'

+ 14 - 10
src/mobeilComponent/notificationPage.vue

@@ -47,16 +47,16 @@
                     v-if="showSelect"
                     />
                 <div class="mainModel">
-                    <el-table :data="noticeData" style="width: 100%">
-                    <el-table-column type="index" label="序号" align="center"></el-table-column>
-                    <el-table-column label="公告名称" prop="noticeTitle" width="130" />
-                    <el-table-column label="所属部门" prop="releaseDeptName" width="150" />
-                    <el-table-column label="创建时间" width="100">
-                        <template #default="scope">
-                            <span>{{scope.row.createTime.substring(0, scope.row.createTime.indexOf(' '))}}</span>
-                        </template>
-                    </el-table-column> 
-                </el-table>
+                    <el-table :data="noticeData" style="width: 100%" @row-click="noticDetail">
+                        <el-table-column type="index" label="序号" align="center"></el-table-column>
+                        <el-table-column label="公告名称" prop="noticeTitle" width="130" />
+                        <el-table-column label="所属部门" prop="releaseDeptName" width="150" />
+                        <el-table-column label="创建时间" width="100">
+                            <template #default="scope">
+                                <span>{{scope.row.createTime.substring(0, scope.row.createTime.indexOf(' '))}}</span>
+                            </template>
+                        </el-table-column> 
+                    </el-table>
                 </div>
             </div>
         </div>
@@ -125,6 +125,10 @@ export default {
             }
             return options;
         },
+        noticDetail(row) {
+            let detailObj = JSON.stringify(row)
+            this.$router.push({ path: "/notificationDetail", query: {rowObj: detailObj}})
+        },
         chooseMenu() {
             this.$router.push({ path: "/menu"})
         },

+ 245 - 0
src/mobeilComponent/notificationPageDetail.vue

@@ -0,0 +1,245 @@
+<template>
+    <div class="notificationDetail">
+        <van-nav-bar title="对标考评公告详情" left-text="返回" @click-left="onClickLeft" />
+        <div class="mobeilVant">
+            <div class="mobeilTop">
+                <div class="topLeft">
+                    <!-- <van-icon name="star" size="20" /> -->
+                    <img :src="logoImg" alt="">
+                    <span>全业务域考评系统</span>
+                </div>
+                <div class="topRight">
+                    <span>系统导航</span>
+                    <!-- <van-icon name="wap-nav"  size="23" /> -->
+                    <img :src="daohangImg" alt="" @click="chooseMenu">
+                </div>
+            </div>
+            <div class="notificationDetailMain">
+                <div class="cssCommon">
+                    <p>公告标题:</p>
+                    <el-input v-model="ruleForm.noticeTitle" />
+                </div>
+                <div class="cssCommon">
+                    <p>公告内容:</p>
+                    <el-input v-model="ruleForm.noticeContent" type="textarea" :rows="10"></el-input>
+                </div>
+                <div class="cssCommon">
+                    <p>发布对象:</p>
+                    <el-input v-model="ruleForm.sendTo" />
+                </div>
+                <div class="cssCommon">
+                    <p>排序:</p>
+                    <el-input-number v-model="ruleForm.serialNumber" :min="1" />
+                </div>
+                <div class="cssCommon">
+                    <p>附件:</p>
+                    <el-table :data="filesListEdit" style="width: 100%">
+                        <el-table-column label="附件名" prop="name" width="130" />
+                        <el-table-column label="发送单位" prop="deptName" width="150" />
+                        <el-table-column label="操作" width="100">
+                            <template #default="scope">
+                            <div @click="previewFile(scope.row)" style="cursor:pointer">
+                                    <img :src="yulan" style="margin-right: 10px;" >
+                                    <!-- <span style="font-size:14px">预览</span> -->
+                                </div>
+                            </template>
+                        </el-table-column> 
+                    </el-table>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import logoImg from '../assets/mobeilImg/logo.png'
+import daohangImg from '../assets/mobeilImg/daohang.png'
+import dateImg from '../assets/mobeilImg/date.png'
+import sortImg from '../assets/mobeilImg/sort.png'
+import seachImg from '../assets/mobeilImg/seach.png'
+import yulan from '../assets/btnIcon/yulan.png'
+
+import {apiGetevaluationdeptnoticeFilePreview} from '../api/api'
+
+export default {
+    data() {
+        return {
+            logoImg: logoImg,
+            daohangImg: daohangImg,
+            dateImg: dateImg,
+            sortImg: sortImg,
+            seachImg: seachImg,
+            yulan: yulan,
+            showDate: '',
+            binSection: '',
+            noticDetail: {},
+            ruleForm: {
+                serialNumber: 1,
+                noticeTitle: '',
+                noticeContent: '',
+                sendTo: '',
+                sendToContent: [],
+                releaseDept: '',
+                releasePeople: '',
+            },
+            filesListEdit: []
+        }
+    },
+    created() {
+        if (this.$route?.query?.rowObj) {
+            this.noticDetail = JSON.parse(this.$route.query.rowObj)
+            this.init(this.noticDetail)
+        }
+    },
+    methods: {
+        init(row) {
+            this.filesListEdit = []
+            this.ruleForm = {
+                serialNumber: row.serialNumber*1,
+                noticeTitle: row.noticeTitle,
+                noticeContent: row.noticeContent,
+                sendTo: row.sendTo,
+                sendToContent: row.sendToContent.split(','),
+                releaseDept: row.releaseDept,
+                releasePeople: row.releasePeople
+            }
+            if (row.noticeAnnex !== '') {
+                let filesArr = row.noticeAnnex.split(',')
+                let filesArrNew = []
+                filesArr.forEach(it => {
+                    let obj = {
+                        name: it,
+                        deptName: row.releaseDeptName
+                    }
+                    filesArrNew.push(obj)
+                })
+                this.filesListEdit = filesArrNew
+            }
+        },
+        chooseMenu() {
+            this.$router.push({ path: "/menu"})
+        },
+        onClickLeft() {
+            this.$router.push({ path: "/notification"})
+        },
+        previewFile(it) {
+            // this.filesVisible = true
+            let params = {
+                url: it
+            }
+            apiGetevaluationdeptnoticeFilePreview(params).then(datas =>{
+                if (datas) {
+                    // const blob = new Blob([datas], {type: 'application/pdf'})
+                    // const url = URL.createObjectURL(blob)
+                    // window.open(url)
+                    // console.log('files', datas)
+                    window.open(datas.data, 'target')
+                }
+            })
+        },
+    }
+}
+</script>
+
+<style lang="less">
+.notificationDetail {
+    background-color: #184FB4;
+    .van-nav-bar{
+        width: 100%;
+        background-color: #184FB4;
+        color: #fff;
+        position: fixed;
+        top: 0;        
+        z-index: 111111;
+        .van-nav-bar__content{
+            .van-nav-bar__left{
+                .van-nav-bar__text{
+                    color: #fff;
+                }
+            }
+        }
+    }
+    .mobeilVant{
+        height: 100%;
+        margin-top: 45px;
+        border-radius: 10px 10px 0 0;
+        background-color: #fff;
+        .mobeilTop{
+            height: 60px;
+            display: flex;
+            justify-content: space-around;
+            .topLeft{
+                display: flex;
+                img{
+                    width: 24px;
+                    height: 28px;
+                    position: relative;
+                    top: 18px;
+                    left: -10px;
+                }
+                span{
+                    font-family: MicrosoftYaHei;
+                    font-weight: 600;
+                    font-size: 16px;
+                    color: #444950;
+                    line-height: 60px;
+                }
+            }
+            .topRight{
+                display: flex;
+                img{
+                    width: 22px;
+                    height: 18px;
+                    position: relative;
+                    top: 21px;
+                    left: 5px;
+                }
+                span{
+                    font-family: MicrosoftYaHei;
+                    font-weight: 400;
+                    font-size: 14px;
+                    color: #545960;
+                    line-height: 60px;
+                    margin-right: 5px;
+                }
+            }
+        }
+        .notificationDetailMain{
+            background-color: #ededf5;
+            padding: 17px 20px;
+            width: calc(100% - 40px);
+            .cssCommon{
+                margin-bottom: 20px;
+                p{
+                    font-size: 16px;
+                    font-weight: bold;
+                    margin-bottom: 5px;
+                }
+            }
+            .el-table{
+                .el-table__header-wrapper{
+                    .el-table__header{
+                        tr{
+                            .cell{
+                                line-height: 18px !important;
+                            }
+                        }
+                    }
+                }
+                .el-table__body-wrapper{
+                    .el-table__body{
+                        tr{
+                            .cell{
+                                img{
+                                    width: 20px;
+                                    height: 14px;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+</style>

+ 11 - 0
src/router/index.js

@@ -435,6 +435,17 @@ const routes = [
             import(
                 '../mobeilComponent/notificationPage.vue'
             ),
+    },
+    {
+        path: '/notificationDetail',
+        name: 'notificationDetail',
+        meta: {
+            title: '对标考评公告详情',
+        },
+        component: () =>
+            import(
+                '../mobeilComponent/notificationPageDetail.vue'
+            ),
     }
 ]