瀏覽代碼

月度绩效结果考核申报页面增加流程查看功能;任务中心包含月季年单位考评关于事项得页签增加详情功能,并且与后端服务联调;

SunZehao 1 年之前
父節點
當前提交
5223b8a14b

+ 14 - 3
src/components/assessment/assessmentApplicationPage.vue

@@ -163,6 +163,9 @@
             </el-dialog>
             <el-dialog title="流程详情" v-model="statesVisible" :fullscreen="true" :close-on-click-modal="false">
                 <div class="flowSty">
+                    <iframe id="iframeContain" width="100%" height="500px"
+                     frameborder="0" class="iframe" name="iframeContain" seamless scrolling="no" :src="iframeURL">            
+                    </iframe>
                     <el-table :data="stageArr" style="width: 100%">
                         <el-table-column type="index" label="序号" align="center" />
                         <el-table-column label="任务名称" prop="taskName" />
@@ -279,6 +282,7 @@ export default {
             orderNumber: '',
             departNameS: '',
             timeIds: '',
+            iframeURL: '',
             stageArr: [],
             departData: [],
             DepartmentLeaderObj: {},
@@ -312,14 +316,14 @@ export default {
         // 查询列表页面
         getassessmentApplicationList() {
             let that = this
-            let userMes = JSON.parse(window.sessionStorage.getItem('user'))
+            // let userMes = JSON.parse(window.sessionStorage.getItem('user'))
             let params = {
                 pageNum: that.page.currentPage,
                 pageSize: that.page.pagesize,
                 orderNumber: that.orderNumber,
                 deptName: that.departNameS,
-                deptId: userMes.deptId,
-                // deptId: '',
+                // deptId: userMes.deptId,
+                deptId: '',
                 annual: that.timeIds ? this.timeIds.substring(0, this.timeIds.indexOf('-'))*1 : null,
                 declarationMonth: that.timeIds ? this.timeIds.substring(this.timeIds.indexOf('-')+1, this.timeIds.length)*1 : null
             }
@@ -542,6 +546,13 @@ export default {
                 });
             } else {
                 this.statesVisible = true
+                let url = ''
+                if (window.location.hostname === '10.65.78.81') {
+                    url = 'http://10.65.79.85:8080'
+                } else {
+                    url = 'http://10.65.78.23:8080'
+                }
+                this.iframeURL = url+'/agilebpm-ui/bpm/instance/instanceImageDialog.html?instanceId='+row.instId+'&iamCode='+window.localStorage.getItem('code')
                 this.getstageData(row.instId)
             }
         },

+ 219 - 8
src/components/taskCenter/taskCenterEvlNewFrom.vue

@@ -60,7 +60,7 @@
                                         <el-input v-model="compNameSa" placeholder="请输入单位名称" @keyup.enter="getTableData(isClickTagId)"></el-input>
                                         <!-- <el-icon :size="20" color="#3B7AD1" @click="getTableData(isClickTagId)"><Search /></el-icon> -->
                                     </div>
-                                    <div class="tableBtn add" @click="addTableDetail"
+                                    <!-- <div class="tableBtn add" @click="addTableDetail"
                                      v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
                                         <img :src="addIcon" alt="">
                                         <span>新增</span>
@@ -69,8 +69,8 @@
                                     v-if="(activeName === 'ZDZX' || activeName === 'GLSX') && indicatorList.length > 0">
                                         <img :src="saveIcon" alt="">
                                         <span>保存</span>
-                                    </div>
-                                    <div class="tableBtn save" @click="saveDetail" v-else>
+                                    </div> -->
+                                    <div class="tableBtn save" @click="saveDetail">
                                         <img :src="saveIcon" alt="">
                                         <span>保存</span>
                                     </div>
@@ -84,7 +84,47 @@
                                     </div>
                                 </div>
                             </div>
+                            <el-table :data="monthQuarterYearData" style="width: 100%" ref="monthQuarterYearTT" 
+                            v-if="activeName === 'ZDZX' || activeName === 'GLSX'"
+                             :row-class-name="tableRowClassName" :border="true" >
+                                <el-table-column type="index" label="排名" align="center"></el-table-column>
+                                <el-table-column label="考评单位" prop="organizationShortName" width="300">
+                                    <template #default="scope">
+                                        <el-select v-model="scope.row.organizationShortName" placeholder="请选择审核状态">
+                                            <el-option
+                                            v-for="item in organizationData"
+                                            :key="item.organizationId"
+                                            :label="item.organizationShortName"
+                                            :value="item.organizationId">
+                                            </el-option>
+                                        </el-select>
+                                    </template>
+                                </el-table-column>
+                                <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index"
+                                 :label="it.name" align="center">
+                                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key"
+                                     align="center" width="150" sortable :sort-method="(a,b)=>sortMethods(a,b,iv.code)">
+                                        <template #default="scope">
+                                            <el-select v-model="scope.row[iv.code]" class="selectSty" placeholder="请选择审核状态" v-if="scope.row['IS_LH_'+iv.code] === '3'">
+                                                <el-option
+                                                v-for="item in statusData"
+                                                :key="item.id"
+                                                :label="item.name"
+                                                :value="item.id">
+                                                </el-option>
+                                            </el-select>
+                                            <span class="inputSty" v-else>{{scope.row[iv.code]}}</span>
+                                        </template>
+                                    </el-table-column>
+                                </el-table-column>
+                                <el-table-column label="操作" width="100">
+                                    <template #default="scope">
+                                        <span class="indicitem" @click="changeDetail(scope.row)">详情</span>
+                                    </template>
+                                </el-table-column>
+                            </el-table>
                             <el-table :data="monthQuarterYearData" style="width: 100%" ref="monthQuarterYearTT"
+                            v-else
                              :row-class-name="tableRowClassName" :border="true" >
                                 <el-table-column type="index" label="排名" align="center"></el-table-column>
                                 <el-table-column label="考评单位" prop="organizationShortName" width="300">
@@ -99,11 +139,12 @@
                                         </el-select>
                                     </template>
                                 </el-table-column>
-                                <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index" :label="it.name" align="center">
+                                <el-table-column  v-for="(it, index) in monthQuarterYearHeader" :key="index"
+                                 :label="it.name" align="center">
                                     <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key"
                                      align="center" width="150" sortable :sort-method="(a,b)=>sortMethods(a,b,iv.code)">
                                         <template #default="scope">
-                                            <el-select v-model="scope.row[iv.code]" placeholder="请选择审核状态" v-if="scope.row['IS_LH_'+iv.code] === '3'">
+                                            <el-select v-model="scope.row[iv.code]" class="selectSty" placeholder="请选择审核状态" v-if="scope.row['IS_LH_'+iv.code] === '3'">
                                                 <el-option
                                                 v-for="item in statusData"
                                                 :key="item.id"
@@ -111,8 +152,8 @@
                                                 :value="item.id">
                                                 </el-option>
                                             </el-select>
-                                            <el-input v-model="scope.row[iv.code]" v-else-if="scope.row['IS_LH_'+iv.code] === '2'"></el-input>
-                                            <el-input-number v-model="scope.row[iv.code]" :precision="2" :step="0.1" v-else />
+                                            <el-input v-model="scope.row[iv.code]" class="inputSty" v-else-if="scope.row['IS_LH_'+iv.code] === '2'"></el-input>
+                                            <el-input-number v-model="scope.row[iv.code]" class="numberSty" :precision="2" :step="0.1" v-else />
                                         </template>
                                     </el-table-column>
                                 </el-table-column>
@@ -145,6 +186,37 @@
                 </span>
             </template>
         </el-dialog>
+        <el-dialog title="详情填报" v-model="detailVisible" :fullscreen="true" :close-on-click-modal="false">
+            <div class="detailSeach">
+                <div class="tableBtn add" @click="addTableDetailInfo">
+                    <img :src="addIcon" alt="">
+                    <span>新增</span>
+                </div>
+                <div class="tableBtn save" @click="saveAddDetailInfo">
+                    <img :src="saveIcon" alt="">
+                    <span>保存</span>
+                </div>
+            </div>
+            <el-table :data="monthQuarterYearDetailData" style="width: 100%" ref="monthQuarterYearTT"
+                :row-class-name="tableRowClassName" :border="true" >
+                <el-table-column type="index" label="序号" align="center"></el-table-column>
+                <el-table-column label="部门名称" prop="deptName" align="center" width="200"></el-table-column>
+                <el-table-column  v-for="(it, index) in monthQuarterYearDetailHeader" :key="index"
+                    :label="it.name" align="center">
+                    <el-table-column v-for="(iv, index) in it.children" :key="index" :label="iv.key" align="center">
+                        <template #default="scope">
+                            <el-input v-model="scope.row[iv.code]" class="inputSty" v-if="scope.row['IS_LH_'+iv.code] === '2'"></el-input>
+                            <el-input-number v-model="scope.row[iv.code]" class="numberSty" :precision="2" :step="0.1" v-else-if="scope.row['IS_LH_'+iv.code] === '1'" />
+                        </template>
+                    </el-table-column>
+                </el-table-column>
+                <el-table-column label="操作" width="100">
+                    <template #default="scope">
+                        <span class="indicitem" @click="removeDetailData(scope.row)">删除</span>
+                    </template>
+                </el-table-column>
+            </el-table>
+        </el-dialog>
         <import-dailog ref="importPage" @successImport="successImport"></import-dailog>
     </div>
 </template>
@@ -153,7 +225,7 @@
 import importDailog from '../importPage/importDailog.vue'
 import {apiGetEvaluationIndicatorList,apiGetgetEvaluationInfoDataList,apiGetbinsectionList, apiGetbinstageList,apiGetExportMsg,
 apiPostorganizationUpdateEvaluationInfo, apiPostorganizationUpdateAddEvaluationInfo,apiGetHeaderOrganizationEvaluation,
-apiPostIsdoAction} from '../../api/api'
+apiPostIsdoAction, apiGetorganizationevaluationcommoninfo, apiPostsaveEvaluationCommonInfo, apiPostremoveEvaluationCommonInfo} from '../../api/api'
 import * as XLSX from 'xlsx'
 import { saveAs } from 'file-saver'
 import  * as XLSXD from 'xlsx-js-style'
@@ -174,9 +246,12 @@ export default {
     data() {
         return {
             dialogVisible: false,
+            detailVisible: false,
             activeName: '',
             monthQuarterYearData: [],
             monthQuarterYearHeader: [],
+            monthQuarterYearDetailData: [],
+            monthQuarterYearDetailHeader: [],
             indicatorList: [],
             isClickTagId: '',
             compNameSa: '',
@@ -206,6 +281,7 @@ export default {
             descMsg: '',
             statusData: [],
             organizationData: [],
+            detailMsg: {}
         }
     },
     created() {
@@ -572,6 +648,95 @@ export default {
                 }
             })
         },
+        changeDetail(row) {
+            this.detailVisible = true
+            this.detailMsg = row
+            this.changeDetailList(row)
+        },
+        changeDetailList(row) {
+            let that = this
+            let params = {
+                organizationEvaluationId: that.tastbizKey,
+                indicatorId: that.isClickTagId,
+                organizationId: row.organizationId
+            }
+            apiGetorganizationevaluationcommoninfo(params).then(datas =>{
+                if (datas && datas.data) {
+                    if (datas.data.title) {
+                        let header = []
+                        for(let i in datas.data.title) {
+                            let obj = {
+                                name: i,
+                                children: datas.data.title[i]
+                            }
+                            header.push(obj)
+                        }
+                        that.monthQuarterYearDetailHeader = header
+                    }
+                    that.monthQuarterYearDetailData = datas.data.value
+                }
+            })
+        },
+        addTableDetailInfo() {
+            if (this.monthQuarterYearDetailHeader.length>0) {
+                let headerArr = []
+                this.monthQuarterYearDetailHeader.forEach(item =>{
+                    headerArr = headerArr.concat(item.children)
+                })
+
+                let obj = {
+                    isAdd: true,
+                    deptName: this.userMes.deptName
+                }
+                headerArr.forEach(it =>{
+                    if (it.flag === '1') {
+                        obj[it.code] = '1.00'
+                    } else {
+                        obj[it.code] = ''
+                    }
+                    obj['IS_LH_'+it.code] = it.flag
+                })
+                this.monthQuarterYearDetailData.unshift(obj)
+            }
+        },
+        saveAddDetailInfo() {
+            let that = this
+            let addParams = []
+            let addObj = {}
+            that.monthQuarterYearDetailData.forEach(it =>{
+                addObj.organizationEvaluationId = that.tastbizKey
+                addObj.indicatorId = that.isClickTagId
+                addObj.organizationId = that.detailMsg.organizationId
+                addObj.optionMap = it
+                addParams.push(addObj)
+            })
+            apiPostsaveEvaluationCommonInfo(addParams).then(datas =>{
+                if (datas) {
+                    that.detailVisible = false
+                    that.responseData(datas)
+                }
+            })
+        },
+        removeDetailData(row) {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                let parArr = []
+                for(let i in row) {
+                    if (i.indexOf('ID_') !== -1) {
+                        parArr.push(row[i])
+                    }
+                }
+                apiPostremoveEvaluationCommonInfo(parArr.join(',')).then(datas =>{
+                    if (datas) {
+                        that.changeDetailList(that.detailMsg)
+                    }
+                })
+            })
+        }
     }
 }
 </script>
@@ -850,6 +1015,52 @@ export default {
                         }
                     }
                 }
+                .detailSeach{
+                    display: flex;
+                    justify-content: flex-end;
+                    margin: 15px 0;
+                    .tableBtn {
+                        display: flex;
+                        height: 20px;
+                        margin: 5px 8px 0 8px;
+                        // width: 20%;
+                        width: fit-content;
+                        img{
+                            margin-right: 5px;
+                            margin-top: 1px;
+                        }
+                        span{
+                            display: inline-block;
+                            width: 35px;
+                            font-size: 14px;
+                            font-family: Microsoft YaHei;
+                            font-weight: 400;
+                        }
+                    }
+                    .add{
+                        cursor: pointer;
+                        span{
+                            color: #3B7AD1;
+                        }
+                    }
+                    .save{
+                        cursor: pointer;
+                        span{
+                            color: #50C14E;
+                        }
+                    }
+                }
+                .el-table {
+                    .indicitem{
+                        color: #409EFF;
+                        font-size: 12px;
+                        margin-right: 20px;
+                        cursor:pointer;
+                        &:hover{
+                            text-decoration: underline;
+                        }
+                    }
+                }
             }
             .el-dialog__footer{
                 .dialog-footer{

+ 2 - 2
src/utils/baseUrl.js

@@ -10,8 +10,8 @@ switch (process.env.NODE_ENV) {
     case 'development': 
         baseUrl.ROOT = "/api"  //开发环境url
         // baseUrl.URL = "http://10.65.59.67:28800"
-        // baseUrl.URL = "http://192.168.2.8:28800"
-        baseUrl.URL = "http://192.168.100.249:28800"
+        baseUrl.URL = "http://172.20.10.2:28800"
+        // baseUrl.URL = "http://192.168.100.249:28800"
         // baseUrl.URL = "http://10.65.78.23:28800"  //测试环境
         // baseUrl.URL = "http://10.65.78.81:28800"  // 正式环境
         break