瀏覽代碼

重构部门配置页面,服务联调(列表新增修改删除);业绩指标计划(包括任务中心)甲方提出的相关功能修改;

SunZehao 1 年之前
父節點
當前提交
45540bd7f1

+ 14 - 4
src/api/api.js

@@ -415,6 +415,13 @@ export function apiGetevaluationdeptassessmentDetailHeader(params) {
         method: 'get'
     })
 }
+//----"单位--考评启动-详情--删除"
+export function apiGetevaluationdeptplandelete(params) {
+    return httpRequest({
+        url: `evaluation-dept-plan/delete/${params}`,
+        method: 'post'
+    })
+}
 
 
 //------单位考评启动-详情-修改
@@ -926,7 +933,8 @@ export function apiGetOrganizationList(params) {
 //----考评部门配置列表信息
 export function apiGetEvaluationDeptList(params) {
     return httpRequest({
-        url: 'evaluation-dept/list',
+        // url: 'evaluation-dept/list',
+        url: 'evaluation-dept-allocation/list',
         method: 'get',
         params: params
     })
@@ -937,7 +945,8 @@ export function apiGetorganizationSaveList(params) {
 }
 //----"部门考评配置-保存/修改"
 export function apiGetevaluationdeptSave(params) {
-    return httpRequest.post('evaluation-dept/save', params)
+    // return httpRequest.post('evaluation-dept/save', params)
+    return httpRequest.post('evaluation-dept-allocation/save', params)
 }
 //----"单位考评配置-删除"
 export function apiGetorganizationdeleteList(params) {
@@ -949,14 +958,15 @@ export function apiGetorganizationdeleteList(params) {
 //----"部门考评配置-删除"
 export function apiGetevaluationdeptremoveAll(params) {
     return httpRequest({
-        url: `evaluation-dept/removeAll/${params}`,
+        // url: `evaluation-dept/removeAll/${params}`,
+        url: `evaluation-dept-allocation/removeAll/${params}`,
         method: 'post'
     })
 }
 //----"部门考评配置--指标项-删除"
 export function apiGetevaluationdeptremoveItem(params) {
     return httpRequest({
-        url: `evaluation-dept/remove/${params}`,
+        url: `evaluation-dept-allocation/removeAll/${params}`,
         method: 'post'
     })
 }

+ 38 - 10
src/components/assessment/evaluationDeptStartFrom.vue

@@ -86,37 +86,34 @@
                             </el-table-column>
                             <el-table-column label="排序" width="100" >
                                 <template #default="scope">
-                                    <el-input v-model="scope.row.serialNumber"
-                                     :disabled="scope.row.dataPermission === '-1' && scope.row.serialNumber !== ''"
-                                     placeholder="请输入排序"></el-input>
+                                     <el-input-number v-model="scope.row.serialNumber"
+                                      :disabled="scope.row.dataPermission === '-1' && scope.row.serialNumber !== ''" :min="1" />
                                 </template>
                             </el-table-column>
                             <el-table-column label="指标名称" >
                                 <template #default="scope">
                                     <el-input v-model="scope.row.targetName"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.targetName !== ''"
+                                    :disabled="scope.row.dataPermission === '-1'"
                                      placeholder="请输入指标名称"></el-input>
                                 </template>
                             </el-table-column>
                             <el-table-column label="目标值" width="500">
                                 <template #default="scope">
                                     <el-input v-model="scope.row.targetValue"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.targetValue !== ''"
+                                    :disabled="scope.row.dataPermission === '-1'"
                                      type="textarea" :rows="2" placeholder="请输入目标值"></el-input>
                                 </template>
                             </el-table-column>
                             <el-table-column label="基础分" width="150">
                                 <template #default="scope">
                                     <el-input-number v-model="scope.row.baseScore"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.baseScore !== ''"
                                      :precision="2" :step="0.1" :min="0" />
                                 </template>
                             </el-table-column>
                             <el-table-column label="评价标准" >
                                 <template #default="scope">
                                     <el-input v-model="scope.row.evaluationCriteria"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.evaluationCriteria !== ''"
-                                     placeholder="请输入评价标准"></el-input>
+                                    type="textarea" :rows="2" placeholder="请输入评价标准"></el-input>
                                 </template>
                             </el-table-column>
                             <el-table-column label="审核状态" width="200" >
@@ -127,11 +124,16 @@
                                         :key="item.id"
                                         :label="item.name"
                                         :value="item.id"
-                                        :disabled="scope.row.dataPermission === '-1' && scope.row.auditStatus !== ''">
+                                        :disabled="(scope.row.dataPermission === '-1' && scope.row.auditStatus !== '') || userMes.deptId === '23031009'">
                                         </el-option>
                                     </el-select>
                                 </template>
                             </el-table-column>
+                            <el-table-column label="操作" width="80" align="center">
+                                <template #default="scope">
+                                    <p class="indicitem" v-if="scope.row.dataPermission !== '-1'" @click="handleDelete(scope.row)">删除</p>
+                                </template>
+                            </el-table-column>
                         </el-table>
                         <el-pagination
                             @current-change="handleCurrentChangeLeft"
@@ -156,7 +158,7 @@
 
 <script>
 import importDailog from '../importPage/importDailog.vue'
-import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiPostIsdoAction, apiGetevaluationdetailDeptData} from '../../api/api'
+import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiGetevaluationdeptplandelete, apiGetevaluationdetailDeptData} from '../../api/api'
 import ExcelJS from 'exceljs'
 import fileSave from 'file-saver'
 import addIcon from '../../assets/btnIcon/add.png'
@@ -291,6 +293,23 @@ export default {
         handleCurrentChangeRight(val) {
             this.pageRight.currentPage = val
         },
+        handleDelete(row) {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                apiGetevaluationdeptplandelete(row.id).then(datas =>{
+                    that.$message({
+                        type: 'success',
+                        message: '删除成功!'
+                    });
+                    that.getevaluStartList()
+                    that.changeDateSelect = []
+                })
+            })
+        },
         //获取详情
         getDetails(id) {
             let that = this
@@ -575,6 +594,15 @@ export default {
                             .error-row {
                                 --el-table-tr-bg-color: #fdecec;
                             }
+                            .indicitem{
+                                color: #409EFF;
+                                font-size: 12px;
+                                margin-right: 20px;
+                                cursor:pointer;
+                                &:hover{
+                                    text-decoration: underline;
+                                }
+                            }
                         }
                     }
                 }

+ 22 - 22
src/components/assessment/evaluationDeptStartPage.vue

@@ -79,7 +79,7 @@
             <el-dialog :title="title" custom-class="startToDia" v-model="dialogVisible" width="600px" :close-on-click-modal="false">
                 <div class="periodFrom">
                     <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
-                        <el-form-item label="考评部门" prop="department">
+                        <!-- <el-form-item label="考评部门" prop="department">
                             <el-select v-model="ruleForm.department" multiple collapse-tags  placeholder="请选择所属部门">
                                 <el-option
                                 v-for="item in departData"
@@ -88,7 +88,7 @@
                                 :value="item.id">
                                 </el-option>
                             </el-select>
-                        </el-form-item>
+                        </el-form-item> -->
                         <el-form-item label="考评类别" prop="organizationType">
                             <el-select v-model="ruleForm.organizationType" placeholder="请选择考评类别" disabled>
                                 <el-option
@@ -178,7 +178,7 @@ export default {
                 total: 0
             },
             ruleForm: {
-                department: [],
+                // department: [],
                 organizationType: '',
                 evaluationCycle: '',
                 evaluateRule: '',
@@ -187,9 +187,9 @@ export default {
                 desc: ''
             },
             rules: {
-                department: [
-                    { required: true, message: '请选择考评部门', trigger: 'change' }
-                ],
+                // department: [
+                //     { required: true, message: '请选择考评部门', trigger: 'change' }
+                // ],
                 organizationType: [
                     { required: true, message: '请选择考评类别', trigger: 'change' }
                 ],
@@ -228,7 +228,7 @@ export default {
         ]
         this.getevaluStartList()
         this.getPeriodData()
-        this.getDepartmentFromTreeData()
+        // this.getDepartmentFromTreeData()
     },
     methods:{
         // 查询列表页面
@@ -308,21 +308,21 @@ export default {
         saveAndEditIndicatorData() {
             let that = this
             let userMes = JSON.parse(window.sessionStorage.getItem('user'))
-            let deptData = []
-            that.ruleForm.department.forEach(it =>{
-                that.departData.forEach(itv =>{
-                    if (itv.id === it) {
-                        let obj = {
-                            // dataKey: itv.dataKey,
-                            id: itv.id,
-                            keyName: itv.name
-                        }
-                        deptData.push(obj)
-                    }
-                })
-            })
+            // let deptData = []
+            // that.ruleForm.department.forEach(it =>{
+            //     that.departData.forEach(itv =>{
+            //         if (itv.id === it) {
+            //             let obj = {
+            //                 // dataKey: itv.dataKey,
+            //                 id: itv.id,
+            //                 keyName: itv.name
+            //             }
+            //             deptData.push(obj)
+            //         }
+            //     })
+            // })
             let params = {
-                deptData: JSON.stringify(deptData),
+                // deptData: JSON.stringify(deptData),
                 evaluationCategory: that.ruleForm.organizationType,
                 businessClass: that.ruleForm.evaluationCycle,
                 appraisalYear: that.ruleForm.year,
@@ -469,7 +469,7 @@ export default {
             this.$nextTick(() =>{
                 this.$refs['ruleForm'].resetFields()
                 this.ruleForm = {
-                    department: [],
+                    // department: [],
                     organizationType: 'BMKP',
                     evaluationCycle: 'NDKP',
                     // evaluateRule: '',

+ 95 - 419
src/components/evaluationSystem/evaluationDepartmentPage.vue

@@ -6,6 +6,10 @@
                     <span class="exceedSpan">部门名称:</span>
                     <el-input v-model="departmentS" placeholder="请输入部门名称"></el-input>
                 </div>
+                <div class="exceed">
+                    <span class="exceedSpan">部门领导:</span>
+                    <el-input v-model="leaderS" placeholder="请输入部门领导"></el-input>
+                </div>
                 <seachs @handleSeach="getSeachData" @handleRest="resetSeach"></seachs>
             </div>
             <div class="PeriodBtn">
@@ -25,17 +29,15 @@
                 @handleAdd="handleAdd"
                 @handleEdit="handleEdit"
                 @handleDelete="handleDelete"
-                @handleImport="handleImport"
-                @handleExport="handleExport"
                 ></btns>
             </div>
             <div class="evaluationDepartmentTableData">
                 <el-table :data="evaluationDepartmentData" style="width: 100%" @select="rowClick" @select-all="rowClick">
                     <el-table-column type="selection" label="操作" align="center"></el-table-column>
-                    <el-table-column label="部门编码" prop="shortDeptName" />
-                    <el-table-column label="部门名称" prop="deptName"  width="300" />
-                    <!-- <el-table-column label="部门简称" prop="shortDeptName" /> -->
-                    <el-table-column label="考评类型" >
+                    <!-- <el-table-column label="部门编码" prop="shortDeptName" /> -->
+                    <el-table-column label="部门名称" prop="deptName" />
+                    <el-table-column label="部门领导名称" prop="chargePersonName" />
+                    <!-- <el-table-column label="考评类型" >
                         <template #default="scope">
                                 <span>{{scope.row.evaluationCategory === 'BMKP'?'部门考评':''}}</span>
                             </template>
@@ -43,7 +45,7 @@
                     <el-table-column label="指标名称" prop="indicatorDatasAll" width="400" />
                     <el-table-column label="年" prop="annual" />
                     <el-table-column label="描述" prop="des" />
-                    <el-table-column label="创建时间" prop="createTime" />
+                    <el-table-column label="创建时间" prop="createTime" /> -->
                 </el-table>
                 <el-pagination
                     @size-change="handleSizeChange"
@@ -54,145 +56,39 @@
                     :total="page.total">
                 </el-pagination>
             </div>
-            <div class="indexdialog">
-                <el-dialog :title="title" v-model="dialogVisible" width="70vw" :close-on-click-modal="false">
-                    <el-row class="periodFrom">
-                        <el-col :span="8">
-                            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="DruleForm" :validate-on-rule-change="false">
-                                <el-form-item label="考评部门" prop="department">
-                                    <el-select v-model="ruleForm.department" placeholder="请选择所属部门" :disabled="isSave">
-                                        <el-option
-                                        v-for="item in departData"
-                                        :key="item.id"
-                                        :label="item.keyName"
-                                        :value="item.id">
-                                        </el-option>
-                                    </el-select>
-                                </el-form-item>
-                                <el-form-item label="考评类别" prop="indicatorType">
-                                    <el-select v-model="ruleForm.indicatorType" placeholder="请选择指标类别" disabled>
-                                        <el-option
-                                        v-for="item in indicatorTypeData"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value">
-                                        </el-option>
-                                    </el-select>
-                                </el-form-item>
-                                <el-form-item label="年份" prop="year">
-                                    <el-date-picker
-                                        v-model="ruleForm.year"
-                                        :disabled="isSave"
-                                        type="year"
-                                        value-format="YYYY"
-                                        placeholder="请选择年份"
-                                        />
-                                </el-form-item>
-                                <!-- <el-form-item label="指标顺序" prop="orderNum">
-                                    <el-input-number v-model="ruleForm.orderNum" :min="1" />
-                                </el-form-item> -->
-                                <el-form-item label="描述" prop="desc">
-                                    <el-input v-model="ruleForm.desc" :rows="5" type="textarea" placeholder="请输入描述"></el-input>
-                                </el-form-item>
-                            </el-form>
-                        </el-col>
-                        <el-col :span="16" class="indicatorItemBtn">
-                            <div class="PeriodBtnDia">
-                                <p class="indItemC">指标项配置管理</p>
-                                <el-button
-                                type="primary"
-                                size="mini"
-                                @click="handleAddChild"
-                                >
-                                <img :src="addW" style="margin-right: 10px">
-                                <span>新增</span>
-                                </el-button>
-                            </div>
-                            <div class="indicatorItemTableData">
-                                <div class="datasMsg" v-if="indicatoroptions.length>0" >
-                                    <el-collapse accordion>
-                                        <el-collapse-item v-for="item in indicatoroptions" :key="item" :name="item.id">
-                                            <template #title>
-                                                <div style="display:flex;height:30px">
-                                                    <div style="display:flex;height:30px">
-                                                        <span class="nameTit">指标名称:</span>
-                                                        <el-input v-model="item.indicatorName" placeholder="请输入子指标项名称"></el-input>
-                                                    </div>
-                                                    <div style="display:flex">
-                                                        <span class="nameTit">指标编码:</span>
-                                                        <el-input v-model="item.indicatorCode" placeholder="请输入子指标项编码"></el-input>
-                                                    </div>
-                                                </div>
-                                            </template>
-                                            <div style="padding:10px 20px;max-height: 50vh;overflow-y: auto;">
-                                                <div class="tableBtn add" @click="handleAddTableChild(item)">
-                                                    <img :src="addIcon" alt="">
-                                                    <span>新增</span>
-                                                </div>
-                                                <el-table :data="item.evaluationDeptIndicatorItemList">
-                                                    <el-table-column label="序号" type="index"  align="center" />
-                                                    <el-table-column label="指标项名称" prop="indicatorItemName">
-                                                        <template #default="scope">
-                                                            <!-- <el-select v-model="scope.row.indicatorItemName" filterable placeholder="请选择指标项名称" @change="(val)=>changeOptionName(val,scope.row)">
-                                                                <el-option
-                                                                    v-for="item in indicItemoptions"
-                                                                    :key="item.keyValue"
-                                                                    :label="item.keyName"
-                                                                    :value="item.keyName">
-                                                                </el-option>
-                                                            </el-select> -->
-                                                            <el-input v-model="scope.row.indicatorItemName" placeholder="请输入指标项名称"></el-input>
-                                                        </template>
-                                                    </el-table-column>
-                                                    <el-table-column label="指标项编码" prop="indicatorItemCode">
-                                                        <template #default="scope">
-                                                            <!-- <span>{{scope.row.indicatorItemCode}}</span> -->
-                                                            <el-input v-model="scope.row.indicatorItemCode" placeholder="请输入指标项编码"></el-input>
-                                                        </template>
-                                                    </el-table-column>
-                                                    <el-table-column label="指标项类别" prop="indicatorCategory">
-                                                        <template #default="scope">
-                                                            <el-select v-model="scope.row.indicatorCategory" placeholder="请选择指标项类别">
-                                                                <el-option
-                                                                    v-for="item in indicatorCategorys"
-                                                                    :key="item.value"
-                                                                    :label="item.label"
-                                                                    :value="item.value">
-                                                                </el-option>
-                                                            </el-select>
-                                                        </template>
-                                                    </el-table-column>
-                                                    <el-table-column label="描述">
-                                                        <template #default="scope">
-                                                            <el-input v-model="scope.row.des" :rows="1" type="textarea" placeholder="请输入描述"></el-input>
-                                                        </template>
-                                                    </el-table-column>
-                                                    <el-table-column label="操作" width="100">
-                                                        <template #default="scope">
-                                                            <p class="indicitem" @click="handleDeleteTableChild(item, scope.row)">删除</p>
-                                                        </template>
-                                                    </el-table-column>
-                                                </el-table>
-                                            </div>
-                                        </el-collapse-item>
-                                    </el-collapse>
-                                </div>
-                                <div v-else>
-                                    <span class="emptyData">暂无数据</span>
-                                </div>
-                            </div>
-                        </el-col>
-                    </el-row>
-                    <template #footer>
-                        <span class="dialog-footer">
-                            <el-button @click="dialogVisible = false">取 消</el-button>
-                            <el-button type="primary" @click="saveevaluationDepartmentMsg('ruleForm')">确 定</el-button>
-                        </span>
-                    </template>
-                </el-dialog>
-            </div>
+            <el-dialog :title="title" v-model="dialogVisible" width="600px" :close-on-click-modal="false">
+                <div class="periodFrom">
+                    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm" :validate-on-rule-change="false">
+                        <el-form-item label="考评部门" prop="department">
+                            <el-select v-model="ruleForm.department" placeholder="请选择所属部门" @change="changeDeptLead">
+                                <el-option
+                                v-for="item in departData"
+                                :key="item.id"
+                                :label="item.name"
+                                :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <el-form-item label="部门领导" prop="departmentLeader">
+                            <el-select v-model="ruleForm.departmentLeader" placeholder="请选择部门领导">
+                                <el-option
+                                v-for="item in deptLeaderOption"
+                                :key="item.id"
+                                :label="item.name"
+                                :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-form>
+                </div>
+                <template #footer>
+                    <span class="dialog-footer">
+                        <el-button @click="dialogVisible = false">取 消</el-button>
+                        <el-button type="primary" @click="saveevaluationDepartmentMsg('ruleForm')">确 定</el-button>
+                    </span>
+                </template>
+            </el-dialog>
         </div>
-        <import-dailog ref="importPage" @successImport="successImport" @importLoading="importLoading"></import-dailog>
     </div>
 </template>
 
@@ -202,8 +98,8 @@ import btns from '../elbuttonS.vue'
 import seachs from '../seachGroup.vue'
 import addW from '../../assets/btnIcon/addW.png'
 import addIcon from '../../assets/btnIcon/add.png'
-import {apiGetEvaluationDeptList, apiGetevaluationdeptSave, apiGetevaluationdeptremoveAll, apiGetdataZBXList,
-apiGetdatadictionaryList, apiGetevaluationdeptremoveItem} from '../../api/api'
+import {apiGetEvaluationDeptList, apiGetevaluationdeptSave, apiGetevaluationdeptremoveAll, apiGetorganizationstructureFromTree,
+apiGetuserPageList, apiGetevaluationdeptremoveItem} from '../../api/api'
 export default {
   components: { importDailog, btns, seachs },
     data() {
@@ -212,32 +108,23 @@ export default {
             title: '',
             isSave: false,
             changeDateSelect: [],
-            indicatoroptions: [],
             departmentS: '',
+            leaderS: '',
             evaluationDepartmentData:[],
             departData: [],
+            deptLeaderOption: [],
             addW: addW,
             addIcon: addIcon,
-            indicItemoptions: [],
-            indicatorTypeData: [],
             ruleForm: {
                 department: '',
-                indicatorType: 'BMKP',
-                year: '',
-                desc: ''
+                departmentLeader: ''
             },
             rules: {
                 department: [
                     { required: true, message: '请选择部门名称', trigger: 'change' }
                 ],
-                indicatorType: [
-                    { required: true, message: '请选择考评类别', trigger: 'change' }
-                ],
-                year: [
-                    { required: true, message: '请选择年份', trigger: 'change' }
-                ],
-                desc: [
-                    { required: true, message: '请输入描述', trigger: 'blur' }
+                departmentLeader: [
+                    { required: true, message: '请选择部门领导', trigger: 'change' }
                 ]
             },
             page:{
@@ -251,7 +138,6 @@ export default {
     },
     created() {
         this.getEvalCompanyData()
-        this.getindicItemData()
         this.getDepartmentFromTreeData()
         this.indicatorCategorys = [
             {
@@ -263,12 +149,6 @@ export default {
                 value: '指标结果'
             }
         ]
-        this.indicatorTypeData = [
-            {
-                label: '部门考评',
-                value: 'BMKP'
-            }
-        ]
     },
     methods:{
         // 查询部门列表数据
@@ -277,21 +157,11 @@ export default {
             let params = {
                 pageNum: that.page.currentPage,
                 pageSize: that.page.pagesize,
-                deptName: that.departmentS
+                deptName: that.departmentS,
+                chargePersonName: that.leaderS
             }
             apiGetEvaluationDeptList(params).then(datas =>{
                 if (datas && datas.data) {
-                    for(let i =0; i<datas.data.records.length; i++) {
-                        let item = datas.data.records[i]
-                        let indicatorDatasAll = ''
-                        if (item.evaluationDeptIndicatorList.length>0) {
-                            for(let j =0; j<item.evaluationDeptIndicatorList.length; j++) {
-                                let iten = item.evaluationDeptIndicatorList[j]
-                                indicatorDatasAll += iten.indicatorName + '; '
-                            }
-                        }
-                        item.indicatorDatasAll = indicatorDatasAll
-                    }
                     that.evaluationDepartmentData = datas.data.records
                     that.page.total = datas.data.total
                 }
@@ -301,23 +171,27 @@ export default {
         getDepartmentFromTreeData() {
             let that = this
             let params = {
-                superKey: 'BM0001'
+                id: '23031001',
+                num: 1
             }
-            apiGetdatadictionaryList(params).then(datas =>{
+            apiGetorganizationstructureFromTree(params).then(datas =>{
                 if (datas && datas.data) {
-                    that.departData = datas.data
+                    that.departData = datas.data[0].children
+                    that.changeDeptLead(that.departData[0].id)
                 }
             })
         },
-        // 查询指标项条目
-        getindicItemData() {
+        // 根据部门查询人员
+        changeDeptLead(val) {
             let that = this
             let params = {
-                superKey: 'ZBX0001'
+                current: 1,
+                size: 500,
+                orgId: val
             }
-            apiGetdataZBXList(params).then(datas =>{
+            apiGetuserPageList(params).then(datas =>{
                 if (datas && datas.data) {
-                    that.indicItemoptions = datas.data
+                    that.deptLeaderOption = datas.data.records
                 }
             })
         },
@@ -326,42 +200,12 @@ export default {
             this.isSave = false
             this.title = '新增考评部门'
             this.$nextTick(() =>{
-                // this.$refs['ruleForm'].resetFields()
                 this.ruleForm = {
                     department: '',
-                    indicatorType: 'BMKP',
-                    year: '',
-                    desc: ''
-                }
-                this.indicatoroptions = []
-            })
-        },
-        //新增子指标
-        handleAddChild() {
-            this.$nextTick(() =>{
-                let itemForm = {
-                    indicatorName: '输入子指标名称',
-                    indicatorCode: '输入子指标编码',
-                    evaluationDeptIndicatorItemList: []
+                    departmentLeader: ''
                 }
-                this.indicatoroptions.push(itemForm)
             })
         },
-        changeOptionName(val, row) {
-            this.indicItemoptions.forEach(item =>{
-                if (item.keyName === val) {
-                    row.indicatorItemCode = item.keyValue
-                }
-            })
-        },
-        //新增子指标
-        handleAddTableChild(row) {
-            let childitemForm = {
-                indicatorItemName: '',
-                indicatorItemCode: ''
-            }
-            row.evaluationDeptIndicatorItemList.push(childitemForm)
-        },
         handleEdit() {
             this.dialogVisible = true
             this.isSave = true
@@ -369,11 +213,8 @@ export default {
             this.evalradio = this.changeDateSelect[0]
             this.ruleForm = {
                 department: this.evalradio.deptId,
-                indicatorType: this.evalradio.evaluationCategory,
-                year: this.evalradio.annual,
-                desc: this.evalradio.des
+                departmentLeader: this.evalradio.chargePersonId
             }
-            this.indicatoroptions = this.evalradio.evaluationDeptIndicatorList
         },
         saveevaluationDepartmentMsg(formName) {
             let that = this
@@ -386,23 +227,23 @@ export default {
         //新增/修改指标数据
         saveAndEditIndicatorData() {
             let that = this
-            let orgName = ''
-            let shortName = ''
+            let deptNameS = ''
+            let deptLeaderNameS = ''
             that.departData.forEach(item =>{
                 if (item.id === that.ruleForm.department) {
-                    orgName = item.keyName
-                    shortName = item.dataKey
+                    deptNameS = item.name
+                }
+            })
+            that.deptLeaderOption.forEach(item =>{
+                if (item.id === that.ruleForm.departmentLeader) {
+                    deptLeaderNameS = item.name
                 }
             })
             let params = {
-                deptName: orgName,
-                shortDeptName: shortName,
                 deptId: that.ruleForm.department,
-                evaluationCategory: 'BMKP',
-                annual: that.ruleForm.year,
-                monthly: that.ruleForm.month,
-                des: that.ruleForm.desc,
-                evaluationDeptIndicatorList: that.indicatoroptions
+                deptName: deptNameS,
+                chargePersonId: that.ruleForm.departmentLeader,
+                chargePersonName: deptLeaderNameS
             }
             if (that.isSave) {
                 params.id = that.evalradio.id
@@ -455,31 +296,6 @@ export default {
                 })
             })
         },
-        //删除指标项数据
-        handleDeleteTableChild(data, row) {
-            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-            }).then(() => {
-                let that = this
-                if (data.evaluationDeptIndicatorItemList && data.evaluationDeptIndicatorItemList.length>0) {
-                    data.evaluationDeptIndicatorItemList.forEach((it,index) =>{
-                        if (it.indicatorItemCode === row.indicatorItemCode) {
-                            data.evaluationDeptIndicatorItemList.splice(index, 1)
-                            if (row.id) {
-                                apiGetevaluationdeptremoveItem(row.id).then(datas =>{
-                                    that.$message({
-                                        type: 'success',
-                                        message: '删除成功!'
-                                    });
-                                })
-                            }
-                        }
-                    })
-                }
-            })
-        }, 
         rowClick(selection, row) {
             this.changeDateSelect = selection
         },
@@ -490,15 +306,9 @@ export default {
         resetSeach() {
             this.page.currentPage = 1
             this.departmentS = ''
+            this.leaderS = ''
             this.getEvalCompanyData()
         },
-        successImport(val) {
-            this.loadingImport = false
-            this.getEvalCompanyData()
-        },
-        importLoading(val) {
-            this.loadingImport = true
-        },
         handleSizeChange(val){
             this.page.pagesize = val
             this.getEvalCompanyData()
@@ -507,10 +317,6 @@ export default {
             this.page.currentPage =val
             this.getEvalCompanyData()
         },
-        handleImport() {
-            this.$refs.importPage.upload.title = "考评指标管理信息导入"
-            this.$refs.importPage.upload.open = true
-        },
     }
 }
 </script>
@@ -575,157 +381,27 @@ export default {
                 margin:0;
             }
         }
-        .indexdialog{
-            .el-overlay{
-                .el-dialog{
-                    margin-top: 10vh;
-                    .el-dialog__body{
-                        padding: 0px 20px 0px 20px !important;
-                        border-top: 1px solid #D6DBEA;
-                        border-bottom: 1px solid #D6DBEA;
-                        .periodFrom{
-                            
-                            .DruleForm{
-                                padding: 20px 60px 20px 20px;
-                                .el-select, .el-input{
-                                    width: 100%;
-                                }
-                                .el-date-editor{
-                                    height:30px !important;
-                                }
-                                .el-select{
-                                    .el-input__inner, .is-disabled{
-                                        height:30px !important;
-                                    }
-                                }
-                            }
-                            .indicatorItemBtn{
-                                padding: 10px 20px 0 20px;
-                                border-left: 1px solid #D6DBEA;
-                                span{
-                                    font-size:14px;
-                                }
-                                .PeriodBtnDia{
-                                    display: flex;
-                                    justify-content: space-between;
-                                    padding: 20px 0;
-                                    .indItemC{
-                                        position: relative;
-                                        // left: -600px;
-                                        top: 15px;
-                                        font-size: 16px;
-                                        font-family: Microsoft YaHei;
-                                        font-weight: 600;
-                                        color: #3B7AD1;
-                                    }
-                                    .el-button{
-                                        height: 30px;
-                                        padding: 0 30px ;
-                                        span{
-                                            margin:0;
-                                        }
-                                    }
-                                    .is-disabled{
-                                        opacity: 0.5;
-                                    }
-                                }
-                                .indicatorItemTableData{
-                                    height: 55vh !important;
-                                    overflow-y: auto;
-                                    .datasMsg{
-                                        .tableBtn {
-                                            display: flex;
-                                            justify-content: end;
-                                            margin-right: 30px;
-                                            img{
-                                                margin-right: 5px;
-                                                margin-top: 1px;
-                                                width: 18px;
-                                                height: 18px;
-                                            }
-                                            span{
-                                                position: relative;
-                                                top: -2px;
-                                                font-size: 14px;
-                                                font-family: Microsoft YaHei;
-                                                font-weight: 400;
-                                            }
-                                        }
-                                        .add{
-                                            cursor: pointer;
-                                            span{
-                                                color: #3B7AD1;
-                                            }
-                                        }
-                                        .el-collapse{
-                                            .el-collapse-item{
-                                                .el-collapse-item__header{
-                                                    .nameTit{
-                                                        display: inline-block;
-                                                        height: 20px;
-                                                        font-size: 12px;
-                                                        font-weight: bold;
-                                                        position: relative;
-                                                        top: -8px;
-                                                    }
-                                                    .el-input{
-                                                        width: 150px;
-                                                        margin-right: 10px;
-                                                    }
-                                                }
-                                                .el-table{
-                                                    .el-table__body-wrapper{
-                                                    }
-                                                    .el-input__inner{
-                                                        height: 30px !important;
-                                                    }
-                                                    .el-radio__label{
-                                                        display: none;
-                                                    }
-                                                }
-                                                .indicitem{
-                                                    color: #409EFF;
-                                                    font-size: 12px;
-                                                    margin-right: 20px;
-                                                    cursor:pointer;
-                                                    &:hover{
-                                                        text-decoration: underline;
-                                                    }
-                                                }
-                                                .el-pagination{
-                                                    margin-top: 20px;
-                                                    text-align: end;
-                                                    position: relative;
-                                                }
-                                                .el-button{
-                                                    height: 26px;
-                                                    padding: 0 15px ;
-                                                    span{
-                                                        margin:0;
-                                                    }
-                                                }
-                                            }
-                                        }
-                                    }
-                                    .emptyData{
-                                        display: inline-block;
-                                        width: 100%;
-                                        // border: 1px solid #d9d9d9;
-                                        text-align: center;
-                                        margin-top: 50px;
-                                    }
-                                }
-                            }
+        .el-overlay{
+            .el-dialog{
+                margin-top: 10vh;
+                .el-dialog__body{
+                    padding: 30px 60px 30px 20px !important;
+                    .periodFrom{
+                        .el-select, .el-input{
+                            width: 100%;
+                        }
+                        .el-input{
+                            height: 30px;
                         }
                     }
-                    .el-dialog__footer{
-                        .dialog-footer{
-                            display: flex;
-                            justify-content: center;
-                            .el-button{
-                                width: 180px !important;
-                                height: 40px !important;
-                            }
+                }
+                .el-dialog__footer{
+                    .dialog-footer{
+                        display: flex;
+                        justify-content: center;
+                        .el-button{
+                            width: 180px !important;
+                            height: 40px !important;
                         }
                     }
                 }

+ 72 - 26
src/components/taskCenter/taskCenterDeptStartFrom.vue

@@ -76,7 +76,7 @@
                                         <el-option
                                         v-for="item in departData"
                                         :key="item.id"
-                                        :label="item.keyName"
+                                        :label="item.name"
                                         :value="item.id"
                                         :disabled="scope.row.dataPermission === '-1' && scope.row.deptName !== ''">
                                         </el-option>
@@ -86,37 +86,34 @@
                             </el-table-column>
                             <el-table-column label="排序" width="100" >
                                 <template #default="scope">
-                                    <el-input v-model="scope.row.serialNumber"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.serialNumber !== ''"
-                                     placeholder="请输入排序"></el-input>
+                                    <el-input-number v-model="scope.row.serialNumber"
+                                      :disabled="scope.row.dataPermission === '-1' && scope.row.serialNumber !== ''" :min="1" />
                                 </template>
                             </el-table-column>
                             <el-table-column label="指标名称" >
                                 <template #default="scope">
                                     <el-input v-model="scope.row.targetName"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.targetName !== ''"
+                                    :disabled="scope.row.dataPermission === '-1'"
                                      placeholder="请输入指标名称"></el-input>
                                 </template>
                             </el-table-column>
                             <el-table-column label="目标值" width="500">
                                 <template #default="scope">
                                     <el-input v-model="scope.row.targetValue"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.targetValue !== ''"
+                                    :disabled="scope.row.dataPermission === '-1'"
                                      type="textarea" :rows="2" placeholder="请输入目标值"></el-input>
                                 </template>
                             </el-table-column>
                             <el-table-column label="基础分" width="150">
                                 <template #default="scope">
                                     <el-input-number v-model="scope.row.baseScore"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.baseScore !== ''"
                                      :precision="2" :step="0.1" :min="0" />
                                 </template>
                             </el-table-column>
                             <el-table-column label="评价标准" >
                                 <template #default="scope">
                                     <el-input v-model="scope.row.evaluationCriteria"
-                                    :disabled="scope.row.dataPermission === '-1' && scope.row.evaluationCriteria !== ''"
-                                     placeholder="请输入评价标准"></el-input>
+                                    type="textarea" :rows="2" placeholder="请输入评价标准"></el-input>
                                 </template>
                             </el-table-column>
                             <el-table-column label="审核状态" width="200" >
@@ -127,11 +124,16 @@
                                         :key="item.id"
                                         :label="item.name"
                                         :value="item.id"
-                                        :disabled="scope.row.dataPermission === '-1' && scope.row.auditStatus !== ''">
+                                        :disabled="(scope.row.dataPermission === '-1' && scope.row.auditStatus !== '') || userMes.deptId === '23031009'">
                                         </el-option>
                                     </el-select>
                                 </template>
                             </el-table-column>
+                            <el-table-column label="操作" width="80" align="center">
+                                <template #default="scope">
+                                    <p class="indicitem" v-if="scope.row.dataPermission !== '-1'" @click="handleDelete(scope.row)">删除</p>
+                                </template>
+                            </el-table-column>
                         </el-table>
                         <el-pagination
                             @current-change="handleCurrentChangeLeft"
@@ -160,8 +162,8 @@
 
 <script>
 import importDailog from '../importPage/importDailog.vue'
-import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiGetdatadictionaryList,apiGetcheckAuditStatus,
-apiPostIsdoAction, apiGetevaluationdeptplanDetailHeader} from '../../api/api'
+import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiGetdatadictionaryList,apiGetcheckAuditStatus,apiGetevaluationdetailDeptData,
+apiPostIsdoAction, apiGetevaluationdeptplanDetailHeader, apiGetevaluationdeptplandelete} from '../../api/api'
 import ExcelJS from 'exceljs'
 import fileSave from 'file-saver'
 import addIcon from '../../assets/btnIcon/add.png'
@@ -215,7 +217,8 @@ export default {
             },
             departData: [],
             instanceChild: {},
-            importId: ''
+            importId: '',
+            userMes: {}
         }
     },
     created() {
@@ -240,31 +243,65 @@ export default {
             this.instanceChild = datas
             this.activeName = 'first'
             this.importId = id
+            this.userMes = JSON.parse(window.sessionStorage.getItem('user'))
             this.getDetails(id)
-            this.getDepartmentFromTreeData(row)
+            this.getDepartmentFromTreeData(datas)
             this.rowMsg = row
         },
         // 查询部门
-        getDepartmentFromTreeData(row) {
+        getDepartmentFromTreeData(datas) {
             let that = this
+            // let params = {
+            //     superKey: 'BM0001'
+            // }
+            // apiGetdatadictionaryList(params).then(datas =>{
+            //     if (datas && datas.data) {
+            //         let departData = datas.data
+            //         that.getshowDepartDataFn(row, departData)
+            //     }
+            // })
             let params = {
-                superKey: 'BM0001'
+                id: datas.bizKey,
+                deptId: that.userMes.deptId
             }
-            apiGetdatadictionaryList(params).then(datas =>{
+            // 获取部门数据
+            apiGetevaluationdetailDeptData(params).then(datas =>{
                 if (datas && datas.data) {
-                    let departData = datas.data
-                    that.getshowDepartDataFn(row, departData)
+                    for(let i in datas.data) {
+                        let obj = {
+                            id: i,
+                            name: datas.data[i]
+                        } 
+                        that.departData.push(obj)
+                    }
                 }
             })
         },
         // 整合部门数据
-        getshowDepartDataFn(row, deptData) {
-            let deptIdArr = row.deptId.split(',')
-            deptIdArr.forEach(it =>{
-                deptData.forEach(itv =>{
-                    if (itv.id === it) {
-                        that.departData.push(itv)
-                    }
+        // getshowDepartDataFn(row, deptData) {
+        //     let deptIdArr = row.deptId.split(',')
+        //     deptIdArr.forEach(it =>{
+        //         deptData.forEach(itv =>{
+        //             if (itv.id === it) {
+        //                 that.departData.push(itv)
+        //             }
+        //         })
+        //     })
+        // },
+        handleDelete(row) {
+            this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                let that = this
+                apiGetevaluationdeptplandelete(row.id).then(datas =>{
+                    that.$message({
+                        type: 'success',
+                        message: '删除成功!'
+                    });
+                    that.getevaluStartList()
+                    that.changeDateSelect = []
                 })
             })
         },
@@ -627,6 +664,15 @@ export default {
                                     }
                                 }
                             }
+                            .indicitem{
+                                color: #409EFF;
+                                font-size: 12px;
+                                margin-right: 20px;
+                                cursor:pointer;
+                                &:hover{
+                                    text-decoration: underline;
+                                }
+                            }
                         }
                     }
                 }

+ 1 - 1
src/router/index.js

@@ -294,7 +294,7 @@ const routes = [
                     },
                     {
                         path: '/evaluationSystem/multiSequence',
-                        name: 'partyBuildingK',
+                        name: 'multiSequence',
                         meta: {
                             title: '多序列计算指标',
                         },

+ 2 - 0
src/views/Login.vue

@@ -78,10 +78,12 @@ export default {
             console.log('有iamCode===>>>', this.$route )
             window.localStorage.setItem('token', this.$route.query.iamAccessToken)
             window.localStorage.setItem('code', this.$route.query.iamCode)
+            window.localStorage.setItem('singlePoint', 'singlePoint')
             // this.$router.push({ path: "/home"})
             this.getUserMsg(this.$route.query.iamCode)
         } else {
             console.log('没有iamCode===>>>', this.$route)
+            window.localStorage.setItem('singlePoint', 'noSinglePoint')
             if (window.localStorage.getItem('userData')) {
                 let userData = JSON.parse(window.localStorage.getItem('userData'))
                 this.inputUser = userData.user

+ 4 - 2
src/views/homePage.vue

@@ -19,7 +19,7 @@
                     </div>
                     <div class="settingMsg">
                         <span>{{userName}}</span>
-                        <img :src="closeBtn" @click="closeSys">
+                        <img :src="closeBtn" @click="closeSys" v-if="isSinglePoint">
                     </div>
                 </div>
                 <div class="mainMessage" :style="$route.path === '/home' ? '': 'padding: 0 10px;'">
@@ -67,7 +67,8 @@
                     label: 'label',
                 },
                 closeBtn: closeBtn,
-                userName: ''
+                userName: '',
+                isSinglePoint: true
             }
         },
         created() {
@@ -278,6 +279,7 @@
             // 获取菜单数据
             getMenuData() {
                 let that = this
+                that.isSinglePoint = window.localStorage.getItem('singlePoint') === 'singlePoint' ? false : true
                 apiGetMenuData().then(datas => {
                     if (datas && datas.data) {
                         let arr = []