ソースを参照

task-5466 人员档案同步dev1
task-5505 考试管理新增错题分析

tianxinyu 4 ヶ月 前
コミット
262540d6e7

+ 2 - 1
src/views/component/personnelFile/components/SCIwzglbTag.vue

@@ -230,10 +230,11 @@ export default {
       )
     },
     handleClick(val) {
+      const { setting } = this.$store.getters
       this.dialogDetails = true
       this.dialogData = [
         [
-          { name: '文章编号', contant: val.wenZhangBianHao, type: 'text' },
+          { name: '文章编号', contant: val.wenZhangBianHao, type: 'text', show: setting?.system?.isJYB ? 'N' : '' },
           { name: 'JCR分区', contant: val.qiJuanHao, type: 'text' }
         ],
         [

+ 2 - 2
src/views/component/personnelFile/components/dialogDeltail.vue

@@ -22,9 +22,9 @@
         :key="'item' + t"
         :span="item.length < 2 ? 24 : 12"
       >
-        <div class="rowSty">
+        <div class="rowSty" v-if="!e.show">
           <div class="nameSty">{{ e.name }}</div>
-          <div v-if="e.type === 'text'" class="contant">{{ e.contant }}</div>
+          <div v-if="e.type === 'text'" class="contant">{{ e.contant}}</div>
           <div
             v-else-if="e.type === 'user' || e.type === 'position'"
             class="contant"

+ 2 - 1
src/views/component/personnelFile/components/kyzlglbTag.vue

@@ -252,10 +252,11 @@ export default {
       )
     },
     handleClick(val) {
+      const { setting } = this.$store.getters
       this.dialogDetails = true
       this.dialogData = [
         [
-          { name: '专利编号', contant: val.zhuanLiBianHao, type: 'text' },
+          { name: '专利编号', contant: val.zhuanLiBianHao, type: 'text', show: setting?.system?.isJYB ? 'N' : '' },
           { name: '类别', contant: val.leiBie, type: 'text' }
         ],
         [

+ 2 - 1
src/views/component/personnelFile/components/kyzzglbTag.vue

@@ -208,10 +208,11 @@ export default {
       )
     },
     handleClick(val) {
+      const { setting } = this.$store.getters
       this.dialogDetails = true
       this.dialogData = [
         [
-          { name: '专著编号', contant: val.zhuanZhuoBianHao, type: 'text' },
+          { name: '专著编号', contant: val.zhuanZhuoBianH, type: 'text', show: setting?.system?.isJYB ? 'N' : '' },
           { name: '出版社', contant: val.chuBanShe, type: 'text' }
         ],
         [

+ 22 - 3
src/views/component/personnelFile/components/modulesTag.vue

@@ -250,7 +250,7 @@
         </div>
       </el-tab-pane>
       <el-tab-pane
-        v-if="judgeTagStair(['jyrykhjlbsz','jyrykhjlb', 'lhrynlqr'], 'activeNameTabInnerRY')"
+        v-if="judgeTagStair(['jyrykhjlbsz','jyrykhjlb', 'lhrynlqr', 'lhryjdjlb'], 'activeNameTabInnerRY')"
         label="人员考核与授权"
         name="rykhysq"
         class="tabPane"
@@ -282,7 +282,7 @@
             </el-tab-pane>
             <el-tab-pane
               v-if="judgeTag('jyrykhjlb')"
-              label="考核记录"
+              label="人员能力评估"
               name="jyrykhjlb"
               class="tabPane shadowNone paddingInner"
             >
@@ -316,6 +316,24 @@
                 @changeBaseData="changeBaseData"
               />
             </el-tab-pane>
+            <el-tab-pane
+              v-if="judgeTag('lhryjdjlb')"
+              label="人员监督记录"
+              name="lhryjdjlb"
+              class="tabPane shadowNone paddingInner"
+            >
+              <public-list
+                ref="lhryjdjlb"
+                class="paneAll"
+                :plane-data="judgeDataAll('lhryjdjlb')"
+                :tab-name="'lhryjdjlb'"
+                :button-type="buttonType"
+                :btn-show="btnShow"
+                :btn-type="btnType"
+                @changeButtonShow="changeButtonShow"
+                @changeBaseData="changeBaseData"
+              />
+            </el-tab-pane>
           </el-tabs>
         </div>
       </el-tab-pane>
@@ -570,7 +588,8 @@ export default {
         'lhrypxjlb',
         'lhpxsqb',
         'kaoshijilu',
-        'tjbgb'
+        'tjbgb',
+        'lhryjdjlb'
       ]
       arr.forEach((item) => {
         if (

+ 4 - 3
src/views/component/personnelFile/components/personnelInfo.vue

@@ -236,7 +236,7 @@
         $parent.$attrs.params &&
         ($parent.$attrs.params.instanceId || $parent.$attrs.params.taskId)
           ? ''
-          : '1315609540510613504'
+          : processId
       "
       :task-id="
         $parent.$attrs.hasOwnProperty('params') &&
@@ -307,7 +307,7 @@ export default {
     }
   },
   data() {
-    const { userId, userList = [], userInfo } = this.$store.getters
+    const { userId, userList = [], userInfo, setting } = this.$store.getters
     return {
       userList,
       submitperInfoData: {},
@@ -315,7 +315,8 @@ export default {
       flowDiagramVisible: false,
       approvalHistoryVisible: false,
       moreShow: false,
-      processKey: 'Process_08xwabfNEW'
+      processKey: setting?.system?.isJYB ? 'Process_0v35zf8' : 'Process_08xwabfNEW',
+      processId: setting?.system?.isJYB ? '1453020655493578752' : '1315609540510613504',
     }
   },
   watch: {

+ 2 - 2
src/views/component/personnelFile/components/zwlwglbTag.vue

@@ -255,7 +255,7 @@ export default {
       this.dialogDetails = true
       this.dialogData = [
         [
-          { name: '文章编号', contant: val.wenZhangBianHao, type: 'text' },
+         // { name: '文章编号', contant: val.wenZhangBianHao, type: 'text' },
           { name: '发表日期', contant: val.faBiaoShiJian, type: 'text' }
         ],
         [
@@ -279,7 +279,7 @@ export default {
           { name: '备注', contant: val.childBeiZhu, type: 'text' }
         ]
       ]
-      console.log(this.dialogData)
+      // console.log(this.dialogData)
     },
     changeDetails(val) {
       this.dialogDetails = val

+ 79 - 20
src/views/component/personnelFile/constants/simulated.js

@@ -423,15 +423,6 @@ export const data =
 export function correlationSql(type, val) {
   const sql = ``
   const parm = { key: '', params: [] }
-  const col = {
-    jyrykhjlb: 'bei_kao_he_ren_yu',
-    jyrykhjlbsz: 'kao_he_ren_',
-    lhrynlqr: 'bei_shou_quan_ren',
-    lhrypxjlb: 'peixunrenyuan',
-    lhpxsqb: 'can_jia_ren_yuan_',
-    kaoshijilu: 'examinee',
-    tjbgb: 'xing_ming_'
-  }
   const colKey = {
     jyrykhjlb: 'blrydakhtabcx',
     jyrykhjlbsz: 'blrydakhsztabcx',
@@ -439,17 +430,20 @@ export function correlationSql(type, val) {
     lhrypxjlb: 'blrydapxtabcx',
     lhpxsqb: 'blrydwbpxtabcx',
     kaoshijilu: 'blrydakstabcx',
-    tjbgb: 'blrydasjcx'
+    tjbgb: 'blrydasjcx',
+    lhryjdjlb: 'blrydajdtabcx'
   }
   if (
     type === 'jyrykhjlb' ||
     type === 'jyrykhjlbsz' ||
     type === 'lhrynlqr' ||
-    type === 'lhpxsqb'
+    type === 'lhpxsqb' ||
+    type === 'lhryjdjlb'
   ) {
     // sql = `select * from t_${type} where FIND_IN_SET('${val}',${col[type]}) and shi_fou_guo_shen_ = '已完成' `
     parm.key = colKey[type]
     parm.params = [val]
+    console.log('parm', parm)
   } else if (type === 'kaoshijilu') {
     parm.key = colKey[type]
     parm.params = [val]
@@ -469,7 +463,7 @@ export const correlationConfig = {
   jyrykhjlb: {
     config: [
       {
-        label: '考核时机',
+        label: '评估时机',
         width: '15%',
         type: 'text',
         field: 'kao_he_shi_ji_'
@@ -481,14 +475,14 @@ export const correlationConfig = {
         field: 'gang_wei_lei_xing'
       },
       {
-        label: '考核时间',
+        label: '评估时间',
         width: '15%',
         type: 'text',
         field: 'bian_zhi_shi_jian'
       },
       { label: '总分', width: '10%', type: 'text', field: 'zong_fen_' },
       {
-        label: '考核结果',
+        label: '评估结果',
         width: '12%',
         type: 'text',
         field: 'kao_he_jie_guo_'
@@ -498,17 +492,82 @@ export const correlationConfig = {
     ],
     dialog: [
       [
-        { name: '被考核人员', field: 'bei_kao_he_ren_yu', type: 'user' },
-        { name: '考核时间', field: 'bian_zhi_shi_jian', type: 'text' }
+        { name: '被评估人员', field: 'bei_kao_he_ren_yu', type: 'user' },
+        { name: '评估时间', field: 'bian_zhi_shi_jian', type: 'text' }
       ],
       [
-        { name: '考核时机', field: 'kao_he_shi_ji_', type: 'text' },
+        { name: '评估时机', field: 'kao_he_shi_ji_', type: 'text' },
         { name: '总分', field: 'zong_fen_', type: 'text' }
       ],
       [
         { name: '岗位类型', field: 'gang_wei_lei_xing', type: 'text' },
-        { name: '考核结果', field: 'kao_he_jie_guo_', type: 'text' }
+        { name: '评估结果', field: 'kao_he_jie_guo_', type: 'text' }
+      ],
+      [{ name: '附件', field: 'shang_chuan_fu_ji', type: 'file' }],
+      [{ name: '表单', field: 'kuai_zhao_', type: 'file' }]
+    ]
+  },
+  lhryjdjlb: {
+    config: [
+      {
+        label: '监督岗位',
+        width: '15%',
+        type: 'dialog',
+        field: 'jian_du_gang_wei_',
+        dialogKey: 'gwzzdhkrysqy'
+      },
+      {
+        label: '监督事由',
+        width: '10%',
+        type: 'text',
+        field: 'jian_du_shi_you_'
+      },
+      {
+        label: '监督方式',
+        width: '10%',
+        type: 'text',
+        field: 'jian_du_fang_shi_'
+      },
+      { label: '监督开始时间', width: '10%', type: 'text', field: 'jian_du_kai_shi_s' },
+      {
+        label: '监督结束时间',
+        width: '12%',
+        type: 'text',
+        field: 'jian_du_jie_shu_s'
+      },
+      {
+        label: '监督意见',
+        width: '12%',
+        type: 'text',
+        field: 'jie_guo_'
+      },
+      {
+        label: '发现问题描述',
+        width: '12%',
+        type: 'text',
+        field: 'fa_xian_wen_ti_mi'
+      },
+      { label: '附件', width: '14%', type: 'file', field: 'shang_chuan_fu_ji' },
+      { label: '表单', width: '14%', type: 'file', field: 'kuai_zhao_' }
+    ],
+    dialog: [
+      [
+        { name: '监督岗位', field: 'jian_du_gang_wei_', type: 'dialog', dialogKey: 'gwzzdhkrysqy' },
+        { name: '监督事由', field: 'jian_du_shi_you_', type: 'text' }
       ],
+      [
+        { name: '监督意见', field: 'jie_guo_', type: 'text' },
+        { name: '监督方式', field: 'jian_du_fang_shi_', type: 'text' },
+      ],
+      [
+        { name: '检测单号', field: 'jian_ce_wei_tuo_d', type: 'text' },
+        { name: '检测日期', field: 'jian_ce_shi_jian_', type: 'text' },
+      ],
+      [
+        { name: '监督开始时间', field: 'jian_du_kai_shi_s', type: 'text' },
+        { name: '监督结束时间', field: 'jian_du_jie_shu_s', type: 'text' }
+      ],
+      [{ name: '发现问题描述', field: 'fa_xian_wen_ti_mi', type: 'text' }],
       [{ name: '附件', field: 'shang_chuan_fu_ji', type: 'file' }],
       [{ name: '表单', field: 'kuai_zhao_', type: 'file' }]
     ]
@@ -629,7 +688,7 @@ export const correlationConfig = {
       {
         label: '培训老师',
         width: '12%',
-        type: 'text',
+        type: 'user',
         field: 'pei_xun_lao_shi_'
       },
       {
@@ -668,7 +727,7 @@ export const correlationConfig = {
         { name: '培训结束时间', field: 'pei_xun_jie_shu_s', type: 'text' }
       ],
       [
-        { name: '培训老师', field: 'pei_xun_lao_shi_', type: 'text' },
+        { name: '培训老师', field: 'pei_xun_lao_shi_', type: 'user' },
         { name: '培训地点', field: 'pei_xun_di_dian_', type: 'text' }
       ],
       [{ name: '培训内容', field: 'pei_xun_xue_xi_ne', type: 'text' }],

+ 7 - 7
src/views/component/personnelFile/index.vue

@@ -150,7 +150,7 @@ export default {
     }
   },
   data() {
-    const { userId, userList = [], userInfo } = this.$store.getters
+    const { userId, userList = [], userInfo, setting } = this.$store.getters
     return {
       userId,
       userList,
@@ -166,7 +166,7 @@ export default {
       seal,
       stauts: '',
       tipsControls: false,
-      processKey: 'Process_08xwabfNEW'
+      processKey: setting?.system?.isJYB ? 'Process_0v35zf8' : 'Process_08xwabfNEW'
     }
   },
   watch: {
@@ -203,7 +203,7 @@ export default {
       // const sql1 = `select a.CREATE_BY_ from ibps_bpm_inst a join ibps_bpm_task_pendding b on b.proc_inst_id_=a.id_ where b.PROC_DEF_KEY_ = '${processKey}' and b.task_id_ ='${taskId}'`
       // // const sql1 = `select CREATE_BY_ FROM ibps_bpm_oper_log WHERE PROC_INST_ID_ = (SELECT PROC_INST_ID_ FROM ibps_bpm_bus_rel WHERE BUSINESSKEY_ = "${this.$attrs.params.attrs.id}" LIMIT 1 )AND OPER_TYPE_ IN('start')`
       // const sql2 = `select CREATE_BY_ FROM ibps_bpm_oper_log WHERE PROC_INST_ID_ = '${instanceId}' AND OPER_TYPE_ IN('start') ORDER BY CREATE_TIME_ asc limit 1`
-      debugger
+
       this.$common.request('query', { key, params }).then((r) => {
         const datas =
           r.variables.data.length > 0 ? r.variables.data[0].CREATE_BY_ : ''
@@ -220,7 +220,7 @@ export default {
   },
   methods: {
     init(val) {
-      debugger
+
       getInfo({ id: val }).then((res) => {
         this.personInfoData = res.data
         this.stauts =
@@ -341,7 +341,7 @@ export default {
         if (this.infoNumArr.length === 4) {
           if (this.btnType === 'submit') {
             startFlow({
-              defId: '1315609540510613504',
+              defId: this.processKey == 'Process_0v35zf8' ? '1453020655493578752' : '1315609540510613504',
               version: '0',
               data: simulated.data
             }).then((res) => {
@@ -350,7 +350,7 @@ export default {
                 callback: (action) => {
                   this.$children[0].buttonShow = true
                   this.infoNumArr = []
-                  debugger
+
                   this.saveData(this.personInfoData, 'Refresh')
                 }
               })
@@ -449,7 +449,7 @@ export default {
     },
     saveData(val, r) {
       setInfo(val).then((res) => {
-        debugger
+
         this.showTF(false)
         if (r === 'Refresh') {
           location.reload()

+ 21 - 1
src/views/platform/examination/exam/detail.vue

@@ -143,6 +143,13 @@
           </el-select>
         </div>
         <div class="table-bar">
+          <el-button
+            type="primary"
+            size="mini"
+            icon="ibps-icon-file-text"
+            @click="showAnalysis"
+            >错题分析</el-button
+          >
           <el-button
             type="primary"
             size="mini"
@@ -243,6 +250,12 @@
       @close="paperDialogVisible = false"
     />
     <Statistics ref="statisticsRef" :department-data="departmentData" />
+    <mistake-analysis
+      v-if="mistakeDialogVisible"
+      :visible.sync="mistakeDialogVisible"
+      :exam-id="examId"
+      @close="mistakeDialogVisible = false"
+    />
   </el-dialog>
 </template>
 
@@ -271,6 +284,7 @@ export default {
   components: {
     IbpsImage: () => import('@/business/platform/file/image'),
     PaperDetail: () => import('../questionBank/detail'),
+    mistakeAnalysis: () => import('./mistakeAnalysis'),
     IbpsUserSelector,
     Statistics
   },
@@ -330,7 +344,8 @@ export default {
       selectValue: 'all',
       pageSize: 10,
       currentPage: 1,
-      departmentData: [] // 数据统计
+      departmentData: [], // 数据统计
+      mistakeDialogVisible: false
     }
   },
   computed: {
@@ -718,6 +733,11 @@ export default {
         const msg = message || '导出成功'
         ActionUtils.success(msg)
       })
+    },
+    // 错题分析按钮
+    showAnalysis() {
+      console.log('错题分析', this.mistakeDialogVisible)
+      this.mistakeDialogVisible = true
     }
   }
 }

+ 107 - 0
src/views/platform/examination/exam/mistakeAnalysis.vue

@@ -0,0 +1,107 @@
+<template>
+  <div>
+    <el-dialog
+      center
+      append-to-body
+      title="错题分析"
+      :visible.sync="dialogVisible"
+      width="1080px"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+    >
+     <div class="mistake-tips">本次考试错题TOP10</div>
+     <el-table
+        ref="elTable"
+        :data="mistakeList"
+        border
+        stripe
+        highlight-current-row
+        header-row-class-name="exam-table-header"
+        style="width: 100%;min-height: 500px"
+        class="exam-table"
+      >
+        <el-table-column
+          label="序号"
+          type="index"
+          width="50"
+        />
+        <el-table-column prop="question_title" label="题干" width="500" />
+        <el-table-column prop="ti_xing_" label="题型" width="100">
+        </el-table-column>
+        <el-table-column prop="error_count" label="答错次数" width="90" />
+
+      </el-table>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button type="info" @click="closeDialog">关闭</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
+    },
+    examId: {
+      type: String,
+      default: ''
+    },
+  
+  },
+  data() {
+    return {
+      mistakeList: [],
+      dialogVisible: this.visible,
+    }
+  },
+  mounted() {
+    this.loadData()
+  },
+  methods: {
+    async loadData() {
+      const res = await this.$common.request('query', {
+        key: 'cxksctcs',
+        params: [this.examId]
+      })
+      
+      const { data = [] } = res.variables || {}
+      this.mistakeList = data
+    },
+
+    // 关闭当前窗口
+    closeDialog() {
+      this.$emit('close', false)
+    },
+  
+  }
+}
+</script>
+
+<style scoped lang="scss">
+  ::v-deep {
+    .el-dialog__body {
+      position: relative;
+      width: 1080px;
+      margin: 0 auto;
+    }
+  }
+.dialog-footer {
+  display: flex;
+  justify-content: center;
+}
+
+.mistake-tips{
+  width: 100%;
+  height: 40px;
+  line-height: 40px;
+  background-color: #e7ffff;
+  padding: 0 20px;
+  box-sizing: border-box;
+}
+
+</style>