Преглед изворни кода

Merge branch '深圳三院' of http://119.23.210.103:3000/wy/zdqy_firm_former into 深圳三院

shenqilong пре 10 месеци
родитељ
комит
9be900cdc2

+ 114 - 111
src/plugins/export/_export2Excel.js

@@ -5,143 +5,146 @@ import './_blob'
 import FileSaver from 'file-saver'
 import * as XLSX from 'xlsx'
 
-function generateArray(table) {
-  var out = []
-  var rows = table.querySelectorAll('tr')
-  var ranges = []
-  for (var R = 0; R < rows.length; ++R) {
-    var outRow = []
-    var row = rows[R]
-    var columns = row.querySelectorAll('td')
-    for (var C = 0; C < columns.length; ++C) {
-      var cell = columns[C]
-      var colspan = cell.getAttribute('colspan')
-      var rowspan = cell.getAttribute('rowspan')
-      var cellValue = cell.innerText
-      if (cellValue !== '' && cellValue === +cellValue) cellValue = +cellValue
-
-      // Skip ranges
-      ranges.forEach(function(range) {
-        if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {
-          for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null)
+function generateArray (table) {
+    var out = []
+    var rows = table.querySelectorAll('tr')
+    var ranges = []
+    for (var R = 0; R < rows.length; ++R) {
+        var outRow = []
+        var row = rows[R]
+        var columns = row.querySelectorAll('td')
+        for (var C = 0; C < columns.length; ++C) {
+            var cell = columns[C]
+            var colspan = cell.getAttribute('colspan')
+            var rowspan = cell.getAttribute('rowspan')
+            var cellValue = cell.innerText
+            if (cellValue !== '' && cellValue === +cellValue) cellValue = +cellValue
+
+            // Skip ranges
+            ranges.forEach(function (range) {
+                if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) {
+                    for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null)
+                }
+            })
+
+            // Handle Row Span
+            if (rowspan || colspan) {
+                rowspan = rowspan || 1
+                colspan = colspan || 1
+                ranges.push({ s: { r: R, c: outRow.length }, e: { r: R + rowspan - 1, c: outRow.length + colspan - 1 }})
+            }
+
+            // Handle Value
+            outRow.push(cellValue !== '' ? cellValue : null)
+
+            // Handle Colspan
+            if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null)
         }
-      })
-
-      // Handle Row Span
-      if (rowspan || colspan) {
-        rowspan = rowspan || 1
-        colspan = colspan || 1
-        ranges.push({ s: { r: R, c: outRow.length }, e: { r: R + rowspan - 1, c: outRow.length + colspan - 1 }})
-      }
-
-      // Handle Value
-      outRow.push(cellValue !== '' ? cellValue : null)
-
-      // Handle Colspan
-      if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null)
+        out.push(outRow)
     }
-    out.push(outRow)
-  }
-  return [out, ranges]
+    return [out, ranges]
 }
 
-function datenum(v, date1904) {
-  if (date1904) v += 1462
-  var epoch = Date.parse(v)
-  return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000)
+function datenum (v, date1904) {
+    if (date1904) v += 1462
+    var epoch = Date.parse(v)
+    return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000)
 }
 
-function sheet_from_array_of_arrays(data, opts) {
-  var ws = {}
-  var range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 }}
-  for (var R = 0; R !== data.length; ++R) {
-    for (var C = 0; C !== data[R].length; ++C) {
-      if (range.s.r > R) range.s.r = R
-      if (range.s.c > C) range.s.c = C
-      if (range.e.r < R) range.e.r = R
-      if (range.e.c < C) range.e.c = C
-      var cell = { v: data[R][C] }
-      if (cell.v == null) continue
-      var cell_ref = XLSX.utils.encode_cell({ c: C, r: R })
-
-      if (typeof cell.v === 'number') cell.t = 'n'
-      else if (typeof cell.v === 'boolean') cell.t = 'b'
-      else if (cell.v instanceof Date) {
-        cell.t = 'n'
-        cell.z = XLSX.SSF._table[14]
-        cell.v = datenum(cell.v)
-      } else cell.t = 's'
-
-      ws[cell_ref] = cell
+function sheet_from_array_of_arrays (data, opts) {
+    var ws = {}
+    var range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 }}
+    for (var R = 0; R !== data.length; ++R) {
+        for (var C = 0; C !== data[R].length; ++C) {
+            if (range.s.r > R) range.s.r = R
+            if (range.s.c > C) range.s.c = C
+            if (range.e.r < R) range.e.r = R
+            if (range.e.c < C) range.e.c = C
+            var cell = { v: data[R][C] }
+            if (cell.v == null) continue
+            var cell_ref = XLSX.utils.encode_cell({ c: C, r: R })
+
+            if (typeof cell.v === 'number') cell.t = 'n'
+            else if (typeof cell.v === 'boolean') cell.t = 'b'
+            else if (cell.v instanceof Date) {
+                cell.t = 'n'
+                cell.z = XLSX.SSF._table[14]
+                cell.v = datenum(cell.v)
+            } else cell.t = 's'
+
+            ws[cell_ref] = cell
+        }
     }
-  }
-  if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range)
-  return ws
+    if (range.s.c < 10000000) ws['!ref'] = XLSX.utils.encode_range(range)
+    return ws
 }
 
-function Workbook() {
-  if (!(this instanceof Workbook)) return new Workbook()
-  this.SheetNames = []
-  this.Sheets = {}
+function Workbook () {
+    if (!(this instanceof Workbook)) return new Workbook()
+    this.SheetNames = []
+    this.Sheets = {}
 }
 
-function s2ab(s) {
-  var buf = new ArrayBuffer(s.length)
-  var view = new Uint8Array(buf)
-  for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF
-  return buf
+function s2ab (s) {
+    var buf = new ArrayBuffer(s.length)
+    var view = new Uint8Array(buf)
+    for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF
+    return buf
 }
 
-export function export_table_to_excel(id) {
-  var theTable = document.getElementById(id)
-  console.log('a')
-  var oo = generateArray(theTable)
-  var ranges = oo[1]
+export function export_table_to_excel (id) {
+    var theTable = document.getElementById(id)
+    console.log('a')
+    var oo = generateArray(theTable)
+    var ranges = oo[1]
 
-  /* original data */
-  var data = oo[0]
-  var ws_name = 'SheetJS'
-  console.log(data)
+    /* original data */
+    var data = oo[0]
+    var ws_name = 'SheetJS'
+    console.log(data)
 
-  var wb = new Workbook(); var ws = sheet_from_array_of_arrays(data)
+    var wb = new Workbook(); var ws = sheet_from_array_of_arrays(data)
 
-  /* add ranges to worksheet */
-  // ws['!cols'] = ['apple', 'banan'];
-  ws['!merges'] = ranges
+    /* add ranges to worksheet */
+    // ws['!cols'] = ['apple', 'banan'];
+    ws['!merges'] = ranges
 
-  /* add worksheet to workbook */
-  wb.SheetNames.push(ws_name)
-  wb.Sheets[ws_name] = ws
+    /* add worksheet to workbook */
+    wb.SheetNames.push(ws_name)
+    wb.Sheets[ws_name] = ws
 
-  var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' })
+    var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' })
 
-  FileSaver.saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), 'test.xlsx')
+    FileSaver.saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), 'test.xlsx')
+}
+function truncateString (str) {
+    if (!str) return ''
+    return str.length > 10 ? str.replace(/^(.{28}).+$/, '$1...') : str
 }
-
 // function formatJson(jsonData) {
 //   console.log(jsonData)
 // }
-export function export_json_to_excel(th, jsonData, defaultTitle, options = { merges: [], header: null }) {
-  /* original data */
+export function export_json_to_excel (th, jsonData, defaultTitle, options = { merges: [], header: null }) {
+    /* original data */
 
-  var data = jsonData
-  data.unshift(th)
-  if (options.header) data.unshift([options.header])
-  var ws_name = defaultTitle || 'SheetJS'
+    var data = jsonData
+    data.unshift(th)
+    if (options.header) data.unshift([options.header])
+    var ws_name = truncateString(defaultTitle) || 'SheetJS'
 
-  var wb = new Workbook(); var ws = sheet_from_array_of_arrays(data)
+    var wb = new Workbook(); var ws = sheet_from_array_of_arrays(data)
 
-  /* add merges area to worksheet */
-  let { merges } = options
-  if (typeof merges[0] === 'string' && merges.length === 2) merges = [merges] // just one # ['A1', 'C1'] = > [['A1', 'C1']]
-  merges = merges.map(i => i instanceof Array ? { s: i[0], e: i[1] } : i) // be sort :) # ['A1', 'C1'] => { s: 'A1', e: 'C3' }
-  ws['!merges'] = merges
+    /* add merges area to worksheet */
+    let { merges } = options
+    if (typeof merges[0] === 'string' && merges.length === 2) merges = [merges] // just one # ['A1', 'C1'] = > [['A1', 'C1']]
+    merges = merges.map(i => i instanceof Array ? { s: i[0], e: i[1] } : i) // be sort :) # ['A1', 'C1'] => { s: 'A1', e: 'C3' }
+    ws['!merges'] = merges
 
-  /* add worksheet to workbook */
-  wb.SheetNames.push(ws_name)
-  wb.Sheets[ws_name] = ws
+    /* add worksheet to workbook */
+    wb.SheetNames.push(ws_name)
+    wb.Sheets[ws_name] = ws
 
-  var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' })
-  var title = defaultTitle || '列表'
-  FileSaver.saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), title + '.xlsx')
+    var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' })
+    var title = defaultTitle || '列表'
+    FileSaver.saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), title + '.xlsx')
 }

+ 128 - 0
src/views/component/specialForm/specialForm.vue

@@ -0,0 +1,128 @@
+<template>
+    <div>
+        <div class="reagentQualitative">
+            <el-row type="flex">
+                <el-col>
+                    <el-table ref="external" :data="reagentBatchDataFilter">
+                        <el-table-column type="index" label="序号" />
+                        <el-table-column label="比对人" prop="bi_dui_ren_">
+                            <template scope="{row}">
+                                <ibps-user-selector
+                                    v-model="row.bi_dui_ren_"
+                                    type="user"
+                                    readonly-text="text"
+                                    :disabled="true"
+                                    :multiple="false"
+                                    size="mini"
+                                    style="width:100%"
+                                    :filter="filter"
+                                    filtrate
+                                />
+                            </template>
+                        </el-table-column>
+                        <el-table-column label="状态" prop="shi_fou_guo_shen_">
+                            <template slot-scope="{row}">
+                                <span>{{ row.shi_fou_guo_shen_=='已完成'?'已完成':'未完成' }}</span>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                    <el-pagination
+                        layout="total,sizes,prev, pager, next,jumper"
+                        :current-page="requestPage.pageNo"
+                        :page-size="requestPage.limit"
+                        :page-sizes="[10,15,20,30,50,100]"
+                        :total="reagentBatchData.length"
+                        @size-change="handleSizeChange"
+                        @current-change="handleCurrentChange"
+                    />
+                </el-col>
+            </el-row>
+        </div>
+    </div>
+</template>
+<script>
+import ibpsUserSelector from '@/business/platform/org/selector'
+export default {
+    components: {
+        ibpsUserSelector
+    },
+    props: {
+        formData: {
+            type: Object,
+            default: () => {}
+        },
+        readonly: {
+            type: Boolean,
+            default: false
+        },
+        params: {
+            type: Object,
+            default: () => {}
+        }
+    },
+    data () {
+        return {
+            reagentBatchData: [],
+            requestPage: {
+                limit: 10,
+                pageNo: 1
+            },
+            multipleSelection: [],
+            filter: [{
+                descVal: '1',
+                includeSub: true,
+                old: 'position',
+                partyId: this.$store.getters.userInfo.employee.positions,
+                partyName: '',
+                scriptContent: '',
+                type: 'user',
+                userType: 'position'
+            }]
+        }
+    },
+    computed: {
+        reagentBatchDataFilter () {
+            return this.reagentBatchData.slice((this.requestPage.pageNo - 1) * (this.requestPage.limit), (this.requestPage.pageNo - 1) * (this.requestPage.limit) + this.requestPage.limit)
+        }
+    },
+    watch: {
+        'formData.pid': {
+            handler (value) {
+                if (value) {
+                    this.initData()
+                }
+            },
+            immediate: true
+        }
+    },
+    mounted () {
+
+    },
+    methods: {
+        initData () {
+            // const sql = `select * from t_ymsyrybdb where pid_ = '${this.formData.pid}' and type != 'startRecord'`
+            if (this.formData.pid) {
+                this.$common.request('query', { key: 'ymsyrybd', params: [this.formData.pid] }).then(res => {
+                    console.log(res.variables.data)
+                    this.reagentBatchData = res.variables.data || []
+                })
+            }
+        },
+        // 当前页码改变
+        handleCurrentChange (val) {
+            this.requestPage.pageNo = val
+        },
+        // 页码选择器改变
+        handleSizeChange (val) {
+            this.requestPage.limit = val
+            this.requestPage.pageNo = 1
+        }
+    }
+}
+</script>
+<style lang="scss" scoped>
+.reagentQualitative{
+    margin-bottom: 20px;
+}
+
+</style>

+ 338 - 332
src/views/component/trainingManage/registerInfoDialog.vue

@@ -1,355 +1,361 @@
 <template>
-    <div>
-        <el-dialog
-            title="签到信息"
-            center
-            :visible.sync="dialogVisible"
-            width="70%"
-            append-to-body
-            top
-            style="margin-top:100px"
-            :close-on-click-modal="false"
-            :show-close="true"
-            :close-on-press-escape="false"
-        >
-            <div class="contain">
-                <div class="selector">
-                    <div>
-                        签到状态:
-                        <el-select v-model="selectItem" placeholder="请选择" @change="onSelectorChange">
-                            <el-option
-                                v-for="item in ['全部','已签到','未签到','已补签']"
-                                :key="item"
-                                :label="item"
-                                :value="item"
-                            />
-                        </el-select>
-                    </div>
-                    <div class="rate">
-                        <div>
-                            <el-popover
-                                placement="top-start"
-                                width="300"
-                                trigger="hover"
-                                :content="`应到:${calRate.mustPeople}人,应到人员中实际签到:${calRate.mustSignIn}人(总计签到人数:${calRate.signIn}人,其他签到人数:${calRate.signIn-calRate.mustSignIn}人)`"
-                            >
-                                <div slot="reference" style="cursor: pointer;">出勤率:{{ calRate.signInRate }}%</div>
-                            </el-popover>
-                        </div>
-                        <div>
-                            <el-popover
-                                placement="top-start"
-                                width="300"
-                                trigger="hover"
-                                :content="`应到:${calRate.mustPeople}人,未到:${calRate.noSignIn}人`"
-                            >
-                                <div slot="reference" style="cursor: pointer;">缺勤率:{{ calRate.noSignInRate }}%</div>
-                            </el-popover>
-                        </div>
-                        <div>
-                            <el-popover
-                                placement="top-start"
-                                width="300"
-                                trigger="hover"
-                                :content="`应到:${calRate.mustPeople}人,补签:${calRate.laterSignIn}人`"
-                            >
-                                <div slot="reference" style="cursor: pointer;">补签率:{{ calRate.laterSignInRate }}%</div>
-                            </el-popover>
-                        </div>
-                    </div>
-
-                </div>
-                <div class="table">
-                    <el-table :data="showPaperList" row-key="ren_yuan_id_">
-                        <el-table-column
-                            prop=""
-                            label="序号"
-                            type="index"
-                            width="100"
-                            :index="showIndex"
-                        />
-                        <el-table-column
-                            prop="ren_yuan_id_"
-                            label="应参训人员"
-                            width="150"
-                        >
-                            <template slot-scope="{row}">
-                                <ibps-user-selector
-                                    type="user"
-                                    :value="row.ren_yuan_id_"
-                                    readonly-text="text"
-                                    :disabled="true"
-                                    :multiple="true"
-                                />
-                            </template>
-                        </el-table-column>
-                        <el-table-column
-                            prop="status"
-                            label="签到状态"
-                            width="150"
-                        >
-                            <template slot-scope="{row}">
-                                <el-tag :type="showType(row)">{{ row.status }}</el-tag>
-                            </template>
-                        </el-table-column>
-                        <el-table-column
-                            prop="qian_dao_shi_jian"
-                            label="签到时间"
-                            align="center"
-                        />
-                    </el-table>
-                </div>
+  <div>
+    <el-dialog
+      title="签到信息"
+      center
+      :visible.sync="dialogVisible"
+      width="70%"
+      append-to-body
+      top
+      style="margin-top:100px"
+      :close-on-click-modal="false"
+      :show-close="true"
+      :close-on-press-escape="false"
+    >
+      <div class="contain">
+        <div class="selector">
+          <div>
+            签到状态:
+            <el-select v-model="selectItem" placeholder="请选择" @change="onSelectorChange">
+              <el-option
+                v-for="item in ['全部','已签到','未签到','已补签']"
+                :key="item"
+                :label="item"
+                :value="item"
+              />
+            </el-select>
+          </div>
+          <div class="rate">
+            <div>
+              <el-popover
+                placement="top-start"
+                width="300"
+                trigger="hover"
+                :content="`应到:${calRate.mustPeople}人,应到人员中实际签到:${calRate.mustSignIn}人(总计签到人数:${calRate.signIn}人,其他签到人数:${calRate.signIn-calRate.mustSignIn}人)`"
+              >
+                <div slot="reference" style="cursor: pointer;">出勤率:{{ calRate.signInRate }}%</div>
+              </el-popover>
+            </div>
+            <div>
+              <el-popover
+                placement="top-start"
+                width="300"
+                trigger="hover"
+                :content="`应到:${calRate.mustPeople}人,未到:${calRate.noSignIn}人`"
+              >
+                <div slot="reference" style="cursor: pointer;">缺勤率:{{ calRate.noSignInRate }}%</div>
+              </el-popover>
+            </div>
+            <div>
+              <el-popover
+                placement="top-start"
+                width="300"
+                trigger="hover"
+                :content="`应到:${calRate.mustPeople}人,补签:${calRate.laterSignIn}人`"
+              >
+                <div slot="reference" style="cursor: pointer;">补签率:{{ calRate.laterSignInRate }}%</div>
+              </el-popover>
+            </div>
+          </div>
 
-                <el-pagination
-                    style="margin-top: 5px; padding-bottom: 10px"
-                    :current-page="pagination.currentPage"
-                    :page-sizes="[10, 20,30, 50]"
-                    :page-size="pagination.pageSize"
-                    layout="prev,pager,next,jumper,sizes,->,total"
-                    :total="categoryList.length"
-                    @size-change="handleSizeChange"
-                    @current-change="handleCurrentChange"
+        </div>
+        <div class="table">
+          <el-table :data="showPaperList" row-key="ren_yuan_id_">
+            <el-table-column
+              prop=""
+              label="序号"
+              type="index"
+              width="100"
+              :index="showIndex"
+            />
+            <el-table-column
+              prop="ren_yuan_id_"
+              label="应参训人员"
+              width="150"
+            >
+              <template slot-scope="{row}">
+                <ibps-user-selector
+                  type="user"
+                  :value="row.ren_yuan_id_"
+                  readonly-text="text"
+                  :disabled="true"
+                  :multiple="true"
                 />
-            </div>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="status"
+              label="签到状态"
+              width="150"
+            >
+              <template slot-scope="{row}">
+                <el-tag :type="showType(row)">{{ row.status }}</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="qian_dao_shi_jian"
+              label="签到时间"
+              align="center"
+            />
+          </el-table>
+        </div>
+
+        <el-pagination
+          style="margin-top: 5px; padding-bottom: 10px"
+          :current-page="pagination.currentPage"
+          :page-sizes="[10, 20,30, 50]"
+          :page-size="pagination.pageSize"
+          layout="prev,pager,next,jumper,sizes,->,total"
+          :total="categoryList.length"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+        />
+      </div>
 
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="close">关 闭</el-button>
-            </span>
-        </el-dialog>
-    </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="close">关 闭</el-button>
+      </span>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
 import ibpsUserSelector from '@/business/platform/org/selector'
 export default {
-    components: {
-        ibpsUserSelector
+  components: {
+    ibpsUserSelector
+  },
+  props: {
+    visible: {
+      type: Boolean,
+      default: false
     },
-    props: {
-        visible: {
-            type: Boolean,
-            default: false
-        },
-        params: {
-            type: Object,
-            default: () => {
-                return {}
-            }
+    params: {
+      type: Object,
+      default: () => {
+        return {}
+      }
+    }
+  },
+  data () {
+    return {
+      pagination: {
+        pageSize: 10,
+        currentPage: 1
+      },
+
+      dialogVisible: true,
+      tableList: [],
+      selectItem: '全部'
+    }
+  },
+  computed: {
+    // 计算各种统计率
+    calRate () {
+      const total = this.tableList.length
+      let mustPeople = this.tableList.filter(i => i.flag).length
+      let noSignIn = 0
+      let signIn = 0
+      let mustSignIn = 0 // 应参人数中签到的人数
+      let laterSignIn = 0
+      this.tableList.forEach(item => {
+        if (item.status === '已签到') {
+          signIn++
+          if (item.flag) mustSignIn++
         }
+        if (item.status === '未签到') noSignIn++
+        if (item.status === '已补签') laterSignIn++
+      })
+      if (mustPeople === 0) { // 没有确定参会人员的情况
+        mustPeople = total
+        mustSignIn = signIn
+      }
+      const signInRate = mustPeople === 0 ? 0 : mustSignIn / mustPeople * 100
+      const noSignInRate = mustPeople === 0 ? 0 : noSignIn / mustPeople * 100
+      const laterSignInRate = mustPeople === 0 ? 0 : laterSignIn / mustPeople * 100
+      return {
+        mustSignIn,
+        mustPeople,
+        total,
+        signIn,
+        noSignIn,
+        laterSignIn,
+        signInRate: signInRate.toFixed(2),
+        noSignInRate: noSignInRate.toFixed(2),
+        laterSignInRate: laterSignInRate.toFixed(2)
+      }
     },
-    data () {
-        return {
-            pagination: {
-                pageSize: 10,
-                currentPage: 1
-            },
-
-            dialogVisible: true,
-            tableList: [],
-            selectItem: '全部'
+    categoryList () {
+      const list = { '已签到': 1, '已补签': 2, '未签到': 3 }
+      const tempList = this.selectItem === '全部' ? this.tableList : this.tableList.filter(item => item.status === this.selectItem)
+      // 默认排序显示
+      tempList.sort((a, b) => {
+        if (list[a.status] && list[b.status]) { return list[a.status] - list[b.status] }
+      })
+      return tempList
+    },
+    showPaperList () {
+      const start = (this.pagination.currentPage - 1) * this.pagination.pageSize
+      const end = start + this.pagination.pageSize
+      return this.categoryList.slice(start, end)
+    }
+  },
+  async mounted () {
+    console.log(this.params)
+    await this.getAllPeople()
+  },
+  methods: {
+    // 选择器切换
+    onSelectorChange () {
+      this.pagination = {
+        pageSize: 10,
+        currentPage: 1
+      }
+    },
+    // tag 类型
+    showType (row) {
+      let type = ''
+      switch (row.status) {
+        case '已签到':
+          type = 'success'
+          break
+        case '未签到':
+          type = 'danger'
+          break
+        case '已补签':
+          type = 'warning'
+          break
+        default:
+          break
+      }
+      return type
+    },
+    // 手动签到的
+    addPeople () {
+      if (!this.params.addPeople) return
+      this.params.addPeople.split(',').forEach(person => {
+        const p = this.tableList.find(item => item.ren_yuan_id_ === person)
+        if (!p) {
+          this.tableList.push({
+            ren_yuan_id_: person,
+            status: '已签到'
+          })
+        } else {
+          p.status = '已签到'
         }
+      })
     },
-    computed: {
-        // 计算各种统计率
-        calRate () {
-            const total = this.tableList.length
-            let mustPeople = this.tableList.filter(i => i.flag).length
-            let noSignIn = 0
-            let signIn = 0
-            let mustSignIn = 0 // 应参人数中签到的人数
-            let laterSignIn = 0
-            this.tableList.forEach(item => {
-                if (item.status === '已签到') {
-                    signIn++
-                    if (item.flag) mustSignIn++
-                }
-                if (item.status === '未签到') noSignIn++
-                if (item.status === '已补签') laterSignIn++
-            })
-            if (mustPeople === 0) { // 没有确定参会人员的情况
-                mustPeople = total
-                mustSignIn = signIn
-            }
-            const signInRate = mustPeople === 0 ? 0 : mustSignIn / mustPeople * 100
-            const noSignInRate = mustPeople === 0 ? 0 : noSignIn / mustPeople * 100
-            const laterSignInRate = mustPeople === 0 ? 0 : laterSignIn / mustPeople * 100
-            return {
-                mustSignIn,
-                mustPeople,
-                total,
-                signIn,
-                noSignIn,
-                laterSignIn,
-                signInRate: signInRate.toFixed(2),
-                noSignInRate: noSignInRate.toFixed(2),
-                laterSignInRate: laterSignInRate.toFixed(2)
+    // 获取全部培训人员  7.15通用性调整
+    async getAllPeople () {
+      // const sql = `select * from ${this.params.tableName} where id_='${this.params.guan_lian_id_}'`
+      const { tableName, guan_lian_id_ } = this.params || {}
+      const keyMap = {
+        t_rypxcjb: 'getSignInBizInfo1',
+        t_fwxyhyqdb: 'getSignInBizInfo2',
+        t_nshyjyb: 'getSignInBizInfo3',
+        t_gshyjyb: 'getSignInBizInfo4',
+        t_jykzjbdjb: 'getSignInBizInfo5'
+      }
+      const { variables: { data } } = await this.$common.request('query', {
+        key: keyMap[tableName],
+        params: [guan_lian_id_]
+      })
+      if (data.length <= 0) {
+        return this.$message.warning('数据异常!')
+      }
+      // console.log('全部人员', data)
+      let peopleList = []
+      switch (this.params.tableName) {
+        case 't_fwxyhyqdb':
+          peopleList = data[0].bian_zhi_can_hui_?.split(',')
+          break
+        case 't_rypxcjb':
+          peopleList = data[0].pei_xun_ren_yuan_?.split(',')
+          break
+        default:
+          break
+      }
+      peopleList.forEach(person => {
+        if (person) {
+          this.tableList.push({
+            ren_yuan_id_: person,
+            status: '未签到',
+            qian_dao_shi_jian: '',
+            flag: true // 原本应参人员的标记
+          })
+        }
+      })
+      await this.getRegisterPeople()
+      if (this.params.tableName === 't_rypxcjb') {
+        if (data[0].shi_fou_guo_shen_ === '进行中') {
+          this.addPeople()
+        }
+        if (data[0].shi_fou_guo_shen_ === '已结束' && data[0].bu_qian_ren_yuan_) {
+          data[0].bu_qian_ren_yuan_.split(',').forEach(person => {
+            const p = this.tableList.find(item => item.ren_yuan_id_ === person)
+            if (p) {
+              p.status = '已补签'
+            } else {
+              this.tableList.push({
+                ren_yuan_id_: person,
+                status: '已补签',
+                qian_dao_shi_jian: ''
+              })
             }
-        },
-        categoryList () {
-            const list = { '已签到': 1, '已补签': 2, '未签到': 3 }
-            const tempList = this.selectItem === '全部' ? this.tableList : this.tableList.filter(item => item.status === this.selectItem)
-            // 默认排序显示
-            tempList.sort((a, b) => {
-                if (list[a.status] && list[b.status]) { return list[a.status] - list[b.status] }
-            })
-            return tempList
-        },
-        showPaperList () {
-            const start = (this.pagination.currentPage - 1) * this.pagination.pageSize
-            const end = start + this.pagination.pageSize
-            return this.categoryList.slice(start, end)
+          })
         }
+      } else if (this.params.tableName === 't_fwxyhyqdb' || this.params.tableName === 't_nshyjyb' || this.params.tableName === 't_gshyjyb' || this.params.tableName === 't_jykzjbdjb') {
+        if (data[0].shi_fou_guo_shen_ !== '已完成') {
+          this.addPeople()
+        }
+      }
     },
-    async mounted () {
-        console.log(this.params)
-        await this.getAllPeople()
-    },
-    methods: {
-        // 选择器切换
-        onSelectorChange () {
-            this.pagination = {
-                pageSize: 10,
-                currentPage: 1
-            }
-        },
-        // tag 类型
-        showType (row) {
-            let type = ''
-            switch (row.status) {
-                case '已签到':
-                    type = 'success'
-                    break
-                case '未签到':
-                    type = 'danger'
-                    break
-                case '已补签':
-                    type = 'warning'
-                    break
-                default:
-                    break
-            }
-            return type
-        },
-        // 手动签到的
-        addPeople () {
-            if (!this.params.addPeople) return
-            this.params.addPeople.split(',').forEach(person => {
-                const p = this.tableList.find(item => item.ren_yuan_id_ === person)
-                if (!p) {
-                    this.tableList.push({
-                        ren_yuan_id_: person,
-                        status: '已签到'
-                    })
-                } else {
-                    p.status = '已签到'
-                }
-            })
-        },
-        // 获取全部培训人员  7.15通用性调整
-        async getAllPeople () {
-            // const sql = `select * from ${this.params.tableName} where id_='${this.params.guan_lian_id_}'`
-            const { tableName, guan_lian_id_ } = this.params || {}
-            const keyMap = {
-                t_rypxcjb: 'getSignInBizInfo1',
-                t_fwxyhyqdb: 'getSignInBizInfo2',
-                t_nshyjyb: 'getSignInBizInfo3',
-                t_gshyjyb: 'getSignInBizInfo4',
-                t_jykzjbdjb: 'getSignInBizInfo5'
-            }
-            const { variables: { data }} = await this.$common.request('query', {
-                key: keyMap[tableName],
-                params: [guan_lian_id_]
-            })
-            if (data.length <= 0) {
-                return this.$message.warning('数据异常!')
-            }
-            // console.log('全部人员', data)
-            let peopleList = []
-            switch (this.params.tableName) {
-                case 't_fwxyhyqdb':
-                    peopleList = data[0].bian_zhi_can_hui_?.split(',')
-                    break
-                case 't_rypxcjb':
-                    peopleList = data[0].pei_xun_ren_yuan_?.split(',')
-                    break
-                default:
-                    break
-            }
-            peopleList.forEach(person => {
-                if (person) {
-                    this.tableList.push({
-                        ren_yuan_id_: person,
-                        status: '未签到',
-                        qian_dao_shi_jian: '',
-                        flag: true // 原本应参人员的标记
-                    })
-                }
-            })
-            await this.getRegisterPeople()
-            if (this.params.tableName === 't_rypxcjb') {
-                if (data[0].shi_fou_guo_shen_ === '进行中') {
-                    this.addPeople()
-                }
-                if (data[0].shi_fou_guo_shen_ === '已结束' && data[0].bu_qian_ren_yuan_) {
-                    data[0].bu_qian_ren_yuan_.split(',').forEach(person => {
-                        const p = this.tableList.find(item => item.ren_yuan_id_ === person)
-                        if (p) {
-                            p.status = '已补签'
-                        } else {
-                            this.tableList.push({
-                                ren_yuan_id_: person,
-                                status: '已补签',
-                                qian_dao_shi_jian: ''
-                            })
-                        }
-                    })
-                }
-            } else if (this.params.tableName === 't_fwxyhyqdb' || this.params.tableName === 't_nshyjyb' || this.params.tableName === 't_gshyjyb' || this.params.tableName === 't_jykzjbdjb') {
-                if (data[0].shi_fou_guo_shen_ !== '已完成') {
-                    this.addPeople()
-                }
-            }
-        },
 
-        // 获取已签到人员
-        async getRegisterPeople () {
-            // const sql = `select * from t_qdxxb where guan_lian_id_='${this.params.guan_lian_id_}'`
-            const { variables: { data }} = await this.$common.request('query', {
-                key: 'getSignInfoByBizKey',
-                params: [this.params.guan_lian_id_]
-            })
-            // console.log('已签到', data)
-            data.forEach(person => {
-                const p = this.tableList.find(item => item.ren_yuan_id_ === person.ren_yuan_id_)
-                if (!p) {
-                    this.tableList.push({
-                        ren_yuan_id_: person.ren_yuan_id_,
-                        status: '已签到',
-                        qian_dao_shi_jian: person.qian_dao_shi_jian
-                    })
-                } else {
-                    p.status = '已签到'
-                    p.qian_dao_shi_jian = person.qian_dao_shi_jian
-                }
-            })
-        },
-        // 当前页码改变
-        handleCurrentChange (val) {
-            this.pagination.currentPage = val
-        },
-        // 页码选择器改变
-        handleSizeChange (val) {
-            this.pagination.pageSize = val
-            this.pagination.currentPage = 1
-        },
-        // 分页连续序号
-        showIndex (index) {
-            return index + 1 + (this.pagination.currentPage - 1) * this.pagination.pageSize
-        },
-        close () {
-            this.dialogVisible = false
+    // 获取已签到人员
+    async getRegisterPeople () {
+      // const sql = `select * from t_qdxxb where guan_lian_id_='${this.params.guan_lian_id_}'`
+      const { variables: { data } } = await this.$common.request('query', {
+        key: 'getSignInfoByBizKey',
+        params: [this.params.guan_lian_id_]
+      })
+      // console.log('已签到', data)
+      data.forEach((person) => {
+        const p = this.tableList.find(
+          (item) => item.ren_yuan_id_ === person.ren_yuan_id_
+        )
+        if (!p) {
+          this.tableList.push({
+            ren_yuan_id_: person.ren_yuan_id_,
+            status: '已签到',
+            qian_dao_shi_jian:
+                    person.qian_dao_lei_xing === '手动'
+                      ? ''
+                      : person.qian_dao_shi_jian
+          })
+        } else {
+          p.status = '已签到'
+          p.qian_dao_shi_jian =
+                  person.qian_dao_lei_xing === '手动' ? '' : person.qian_dao_shi_jian
         }
+      })
+    },
+    // 当前页码改变
+    handleCurrentChange (val) {
+      this.pagination.currentPage = val
+    },
+    // 页码选择器改变
+    handleSizeChange (val) {
+      this.pagination.pageSize = val
+      this.pagination.currentPage = 1
+    },
+    // 分页连续序号
+    showIndex (index) {
+      return index + 1 + (this.pagination.currentPage - 1) * this.pagination.pageSize
+    },
+    close () {
+      this.dialogVisible = false
     }
+  }
 
 }
 </script>

+ 97 - 28
src/views/peopleManages/taskStatistics/index.vue

@@ -172,11 +172,12 @@ export default {
     data () {
         const { level, userList = [] } = this.$store.getters
         userList.filter(i => i.userName === 'admin').map(i => i.id)
-        const colorGroup1 = ['#d20962', '#f47721', '#00bce4', '#7552cc']
+        const colorGroup1 = ['#d20962', '#f47721', '#00bce4', '#7552cc','#00a78e']
         const colorGroup2 = ['#00a78e', '#7d3f98', '#f85a40']
         return {
             level: level.second || level.first,
             userList,
+            dept3:'',
             monthValues: [],
             startDate: '',
             endDate: '',
@@ -387,6 +388,10 @@ export default {
             degreePieData: {
                 // 学位学历
                 data: [
+                    {
+                        name: '高中',
+                        value: 0
+                    },
                     {
                         name: ' 大专',
                         value: 0
@@ -419,12 +424,16 @@ export default {
                         name: '中级',
                         value: 0
                     },
+                    {
+                        name: '副高',
+                        value: 0
+                    },
                     {
                         name: '高级',
                         value: 0
                     }
                 ],
-                color: colorGroup2,
+                color: colorGroup1,
                 config: { title: '职称统计', idSelector: 'ranksid' }
             },
             // 部门学位学历信息统计配置表
@@ -481,6 +490,29 @@ export default {
                 ],
                 // " 大专", "本科", "硕士", "博士", "初级职称", "中级职称", "高级职称"
                 series: [
+                {
+                        name: ' 高中',
+                        type: 'bar',
+                        emphasis: {
+                            focus: 'series'
+                        },
+                        stack: 'Search Engine',
+                        data: [],
+                        label: {
+                            // 柱体上显示数值
+                            show: true, // 开启显示
+                            textStyle: {
+                                // 数值样式
+                                fontSize: '12px',
+                                color: '#fff'
+                            },
+                            formatter: function (name) {
+                                return name.value === 0
+                                    ? ''
+                                    : '高:' + name.value
+                            }
+                        }
+                    },
                     {
                         name: ' 大专',
                         type: 'bar',
@@ -595,7 +627,7 @@ export default {
                         color: '#fff'
                     }
                 },
-                color: colorGroup2,
+                color: colorGroup1,
                 grid: {
                     left: '3%',
                     right: '4%',
@@ -680,6 +712,29 @@ export default {
                             }
                         }
                     },
+                    {
+                        name: '副高级职称',
+                        type: 'bar',
+                        stack: 'Search Engine',
+                        emphasis: {
+                            focus: 'series'
+                        },
+                        data: [],
+                        label: {
+                            // 柱体上显示数值
+                            show: true, // 开启显示
+                            textStyle: {
+                                // 数值样式
+                                fontSize: '12px',
+                                color: 'rgba(251, 251, 251, 1)'
+                            },
+                            formatter: function (name) {
+                                return name.value === 0
+                                    ? ''
+                                    : '副高:' + name.value
+                            }
+                        }
+                    },
                     {
                         name: '高级职称',
                         type: 'bar',
@@ -844,7 +899,8 @@ export default {
             // const sql = `select a.id_, a.parent_id_, a.zui_gao_xue_li_x_, a.zhi_cheng_deng_ji, a.ren_zhi_shi_jian_, a.ru_zhi_shi_jian_, ee.name_, ee.jian_ding_zi_ge_z from t_ryjbqk as a join ibps_party_employee as ee on a.parent_id_= ee.id_`
             // const { variables: { data = [] }} = await this.$common.request('query', { key: 'empManageBoard1', params: [null] }) || {}
             const deptUserList = this.userList.filter(item => item.positionId.includes(this.selection))
-            this.employeeNum = this.userList.length
+            const deptUserList1 = this.userList.filter(item => !item.userName.includes('系统')&&!item.userName.includes('金通')&&!item.userName.includes('管理')&&!item.userId.includes('702117247933480960'))
+            this.employeeNum = deptUserList1.length
             this.personIds = deptUserList.map(i => i.userId).join(',')
             this.optionPerson.yAxis.data = deptUserList.map(i => i.userName)
             // this.getTtaskMattersData()
@@ -855,9 +911,11 @@ export default {
             this.degreePieData.data[1].value = 0
             this.degreePieData.data[2].value = 0
             this.degreePieData.data[3].value = 0
+            this.degreePieData.data[4].value = 0
             this.ranksPieData.data[0].value = 0
             this.ranksPieData.data[1].value = 0
             this.ranksPieData.data[2].value = 0
+            this.ranksPieData.data[3].value = 0
             // const sql = `select sum(a.zui_gao_xue_li_x_ like '%博士%') as boShi, sum(a.zui_gao_xue_li_x_ like '%硕士%') as shuoShi, sum(a.zui_gao_xue_li_x_ = '本科') as benKe, sum(a.zui_gao_xue_li_x_ = '大专') as daZhuan, sum(a.zhi_cheng_deng_ji = '初级') as chuJi, sum(a.zhi_cheng_deng_ji = '中级') as zhongJi, sum(a.zhi_cheng_deng_ji = '高级') as gaoJi, sum(a.zhi_cheng_deng_ji = '' || a.zhi_cheng_deng_ji is null) as other from t_ryjbqk as a join ibps_party_employee as ee on a.parent_id_= ee.id_`
             const { variables: { data = [] }} = await this.$common.request('query', {
                 key: 'empManageBoard3',
@@ -866,22 +924,24 @@ export default {
             if (!data.length) {
                 return
             }
-            this.degreePieData.data[0].value = data[0]?.daZhuan || 0
-            this.degreePieData.data[1].value = data[0]?.benKe || 0
-            this.degreePieData.data[2].value = data[0]?.shuoShi || 0
-            this.degreePieData.data[3].value = data[0]?.boShi || 0
+            this.degreePieData.data[0].value = data[0]?.gaozhong || 0
+            this.degreePieData.data[1].value = data[0]?.daZhuan || 0
+            this.degreePieData.data[2].value = data[0]?.benKe || 0
+            this.degreePieData.data[3].value = data[0]?.shuoShi || 0
+            this.degreePieData.data[4].value = data[0]?.boShi || 0
 
             this.ranksPieData.data[0].value = data[0]?.chuJi || 0
             this.ranksPieData.data[1].value = data[0]?.zhongJi || 0
-            this.ranksPieData.data[2].value = data[0]?.gaoJi || 0
+            this.ranksPieData.data[2].value = data[0]?.fugao || 0
+            this.ranksPieData.data[3].value = data[0]?.gaoJi || 0
         },
         // 部门信息统计
         positionsInfoData () {
             // const sql = `select jh.* from (select en.id_, en.name_ AS enName, sum(gy.zui_gao_xue_li_x_ like '%博士%') as boShi, sum(gy.zui_gao_xue_li_x_ like '%硕士%') as shuoShi, sum(gy.zui_gao_xue_li_x_ = '本科') as benKe, sum(gy.zui_gao_xue_li_x_ = '大专') as daZhuan, sum(gy.zhi_cheng_deng_ji = '初级') AS chuJi, sum(gy.zhi_cheng_deng_ji = '中级') AS zhongJi, sum(gy.zhi_cheng_deng_ji = '高级') AS gaoJi FROM (SELECT ee.id_ AS eeID, ee.name_ AS eeName, ee.positions_, ry.zui_gao_xue_li_x_, ry.zhi_cheng_deng_ji FROM t_ryjbqk AS ry JOIN ibps_party_employee AS ee ON ry.parent_id_= ee.id_) gy LEFT JOIN ibps_party_entity en ON FIND_IN_SET(en.id_, gy.positions_) GROUP BY enName) jh where enName is not null`
             const filterDeptIds = this.filterDept.map(i => i.positionId).join(',')
             this.$common.request('query', {
-                key: 'empManageBoard2',
-                params: [filterDeptIds]
+                key: 'empManageBoard4',
+                params: [this.dept3,this.dept3,this.dept3]
             }).then(res => {
                 const { data = [] } = res.variables || {}
                 // 组装数据集,以学历职称为列,以部门为行:{" 大专":['1','2','3']}
@@ -896,7 +956,7 @@ export default {
                     return
                 }
                 // 跟《部门信息统计配置表》排列顺序一致
-                const shuZuList = ['daZhuan', 'benKe', 'shuoShi', 'boShi', 'chuJi', 'zhongJi', 'gaoJi']
+                const shuZuList = ['gaozhong','daZhuan', 'benKe', 'shuoShi', 'boShi', 'chuJi', 'zhongJi','fuGao', 'gaoJi']
                 data.forEach(item => {
                     PositionsDegreeOption.xAxis[0].data.push(item.enName)
                     PositionsRanksOption.xAxis[0].data.push(item.enName)
@@ -908,7 +968,7 @@ export default {
 
                     // 设置职级系列数据
                     ranksSeries.forEach((series, i) => {
-                        series.data.push(item[shuZuList[i + 4]])
+                        series.data.push(item[shuZuList[i + 5]])
                     })
                 })
                 console.log(PositionsDegreeOption)
@@ -977,36 +1037,43 @@ export default {
             }
             const deptUserList = this.getPositionPeopleIds(this.selection)
             const deptUserIdList = deptUserList.map(user => user.userId)
-            // const sql = `select * from t_examination where zhuang_tai_ = '已完成' and find_in_set(kao_shi_ren_, '${deptUserIdList.join(',')}')`
-            let { variables: { data }} = await this.$common.request('query', {
-                key: 'empManageBoard0',
+            const parm = deptUserIdList.join(',') !== '' ? {
+                key: 'empManageBoard5',
                 params: [deptUserIdList.join(',')]
-            })
+            } : {
+                key: 'empManageBoard0',
+                params: [null]
+            }
+            
+            // const sql = `select * from t_examination where zhuang_tai_ = '已完成' and find_in_set(kao_shi_ren_, '${deptUserIdList.join(',')}')`
+            let { variables: { data }} = await this.$common.request('query', parm)
             if (this.startDate && this.endDate) {
                 data = data.filter(item => {
-                    // return new Date(item.jie_shu_shi_jian_).getTime() >= new Date(this.startDate).getTime() && new Date(item.jie_shu_shi_jian_).getTime() <= new Date(this.endDate).getTime()
-                    const itemTime = new Date(item.jie_shu_shi_jian_).getTime()
-                    return itemTime >= +new Date(this.startDate) && itemTime <= +new Date(this.endDate)
+                    return new Date(item.startDate).getTime() >= new Date(this.startDate).getTime() && new Date(item.startDate).getTime() <= new Date(this.endDate).getTime()
                 })
             }
             const resultData = deptUserList.map(user => {
-                const userExams = data.filter(item => item.kao_shi_ren_ === user.userId)
-                const count = userExams.length
-                const passCount = userExams.filter(item =>
-                    +item.de_fen_ * 100 >= +item.ti_ku_zong_fen_ * +item.da_biao_zhan_bi_
-                ).length
-
+                let count = 0
+                let passCount = 0
+                data.forEach(item => {
+                    if (item.examinee === user.userId) {
+                        count++
+                        if (+(item.scoringType === '平均分' ? item.averageScore : item.scoringType === '最高分' ? item.maxScore : item.recentScore) * 100 >= +item.totalScore * +item.qualifiedRadio) {
+                            passCount++
+                        }
+                    }
+                })
                 return {
                     ...user,
                     count,
                     passCount,
-                    passRate: count ? `${(passCount / count * 100).toFixed(2)}%` : '0%'
+                    passRate: (count === 0 ? 0 : (passCount / count * 100).toFixed(2)) + '%'
                 }
             })
+            console.log(deptUserList,resultData,'resultDataresultDataresultDataresultData')
             resultData.sort((a, b) => {
                 return a.userId - b.userId
             })
-            // console.log('考试', resultData)
             // 格式化统计图需要的数据
             this.optionExamStatisticsConfig.xAxis.data = resultData.map(item => item.userName)
             this.optionExamStatisticsConfig.series[0].data = resultData.map(item => item.count)
@@ -1038,6 +1105,8 @@ export default {
             this.selection = selection
             this.selectionDept = selectionDept
             this.filterDept = filterDept
+            console.log(selection, selectionDept, filterDept,'2132321321321')
+            this.dept3 = filterDept.filter(i=>i.depth===3)[0].positionId
             this.handleAllGetFunc()
             // clearInterval(this.interval)
             this.getTrainingStatisticsData()

+ 6 - 1
src/views/platform/examination/questionBank/edit.vue

@@ -484,6 +484,8 @@ export default {
         showPaperList () {
             const start = (this.currentPage - 1) * this.pageSize
             const end = start + this.pageSize
+            console.log('this.questionData.slice(start, end)', this.questionData.slice(start, end))
+            // this.quesIdList=["1380196951529619456"]
             return this.questionData.slice(start, end)
         }
     },
@@ -496,6 +498,7 @@ export default {
         },
         quesIdList: {
             handler (val, oldVal) {
+                console.log('val', val)
                 this.addSelectQuestion(val)
             }
         }
@@ -632,6 +635,7 @@ export default {
                 this.questionData = questionData
                 this.initialData = JSON.parse(JSON.stringify(questionData))
                 this.form = bank
+                this.quesIdList= questionData.map(item => item.quesId).join(',')
             })
         },
         addSelectQuestion () {
@@ -641,7 +645,8 @@ export default {
                 params: [this.quesIdList]
             }).then(res => {
                 const { data = [] } = res.variables || {}
-                this.questionData = data.concat(this.questionData)
+                this.questionData = data
+                // this.questionData = data.concat(this.questionData)
             })
         },
         // 查询使用该题库的考试