| | |
| | | method: 'get', |
| | | params: {} |
| | | }) |
| | | } |
| | | |
| | | export const reselfExamScore = (scoreId) => { |
| | | return request({ |
| | | url: '/api/examScore/refreshTrainExamInfo', |
| | | method: 'post', |
| | | data: { |
| | | scoreId |
| | | } |
| | | }) |
| | | } |
| | |
| | | <template> |
| | | <basic-container> |
| | | <avue-crud :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad"> |
| | | <basic-container |
| | | :class="[$store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '']" |
| | | > |
| | | <avue-crud |
| | | :option="option" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | ref="crud" |
| | | v-model="form" |
| | | :page.sync="page" |
| | | @search-change="searchChange" |
| | | @search-reset="searchReset" |
| | | @selection-change="selectionChange" |
| | | @current-change="currentChange" |
| | | @size-change="sizeChange" |
| | | @refresh-change="refreshChange" |
| | | @on-load="onLoad" |
| | | > |
| | | <template slot="menuLeft"> |
| | | <el-button type="primary" |
| | | size="mini" |
| | | icon="el-icon-circle-plus" |
| | | v-if="permission.flow_model_create" |
| | | plain |
| | | @click="handleCreate">创 建 |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | icon="el-icon-circle-plus" |
| | | v-if="permission.flow_model_create" |
| | | plain |
| | | @click="handleCreate" |
| | | >创 建 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | | v-if="permission.flow_model_delete" |
| | | plain |
| | | @click="handleDelete">删 除 |
| | | type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | v-if="permission.flow_model_delete" |
| | | plain |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="scope" |
| | | slot="menu"> |
| | | <el-button type="text" |
| | | size="mini" |
| | | icon="el-icon-setting" |
| | | v-if="permission.flow_model_update" |
| | | @click.stop="handleUpdate(scope.row,scope.index)">配置 |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_update" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleUpdate(scope.row, scope.index)" |
| | | >配置 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="mini" |
| | | icon="el-icon-upload2" |
| | | v-if="permission.flow_model_deploy" |
| | | @click.stop="handleDeploy(scope.row,scope.index)">部署 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_deploy" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleDeploy(scope.row, scope.index)" |
| | | >部署 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="mini" |
| | | icon="el-icon-delete" |
| | | v-if="permission.flow_model_delete" |
| | | @click.stop="handleSlotDelete(scope.row,scope.index)">删除 |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_download" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleDownload(scope.row, scope.index)" |
| | | >下载 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | v-if="permission.flow_model_delete" |
| | | plain |
| | | class="none-border" |
| | | @click.stop="handleSlotDelete(scope.row, scope.index)" |
| | | >删除 |
| | | </el-button> |
| | | </template> |
| | | <template slot-scope="{row}" |
| | | slot="version"> |
| | | <template slot-scope="{ row }" slot="version"> |
| | | <el-tag>v{{ row.version }}</el-tag> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="流程配置" |
| | | append-to-body |
| | | destroy-on-close |
| | | :visible.sync="flowBox" |
| | | :close-on-press-escape="false" |
| | | :fullscreen="true" |
| | | :before-close="handleNutflowClose" |
| | | custom-class="wf-dialog"> |
| | | <wf-design-base v-if="nutflowOption.step === 1" |
| | | class="animated fadeIn" |
| | | style="height: calc(100vh - 108px);" |
| | | ref="wf-design" |
| | | :options="nutflowOption.step1"></wf-design-base> |
| | | <wf-design-base v-if="nutflowOption.step === 2" |
| | | class="animated fadeIn" |
| | | style="height: calc(100vh - 108px);" |
| | | ref="wf-design-view" |
| | | :options="nutflowOption.step2"></wf-design-base> |
| | | <span slot="footer" |
| | | class="avue-dialog__footer"> |
| | | <el-button size="small" |
| | | @click="handleNutflowClose(() => {}, true)">取 消</el-button> |
| | | <el-button v-if="nutflowOption.step === 1" |
| | | size="small" |
| | | |
| | | @click="handleStep(1)">下 一 步</el-button> |
| | | <el-button v-if="nutflowOption.step === 2" |
| | | size="small" |
| | | |
| | | @click="handleStep(-1)">上 一 步</el-button> |
| | | <el-button v-if="nutflowOption.step === 2" |
| | | size="small" |
| | | type="primary" |
| | | @click="handleSubmitModel">确 定</el-button> |
| | | <el-dialog |
| | | title="流程配置" |
| | | append-to-body |
| | | :visible.sync="flowBox" |
| | | :fullscreen="true" |
| | | > |
| | | <iframe |
| | | :src="flowUrl" |
| | | width="100%" |
| | | height="700" |
| | | title="流程设计器" |
| | | frameBorder="no" |
| | | border="0" |
| | | marginWidth="0" |
| | | marginHeight="0" |
| | | scrolling="no" |
| | | allowTransparency="yes" |
| | | > |
| | | </iframe> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="flowBox = false">取 消</el-button> |
| | | <el-button type="primary" @click="handleRefresh">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="流程部署" |
| | | append-to-body |
| | | :visible.sync="deployBox" |
| | | width="20%"> |
| | | <avue-form ref="form" |
| | | :option="optionDeploy" |
| | | v-model="form" |
| | | @submit="handleSubmit"/> |
| | | <span slot="footer" |
| | | class="dialog-footer"> |
| | | <el-dialog |
| | | title="流程部署" |
| | | append-to-body |
| | | :visible.sync="deployBox" |
| | | width="20%" |
| | | > |
| | | <avue-form |
| | | ref="form" |
| | | :option="optionDeploy" |
| | | v-model="form" |
| | | @submit="handleSubmit" |
| | | /> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deployBox = false">取 消</el-button> |
| | | <el-button type="primary" |
| | | @click="handleDoDeploy" |
| | | :loading="deployLoading">确 定</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="handleDoDeploy" |
| | | :loading="deployLoading" |
| | | >确 定</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import {mapGetters} from "vuex"; |
| | | import {modelList, removeModel, deployModel, submitModel, detail} from "@/api/flow/flow"; |
| | | import {flowCategory} from "@/util/flow"; |
| | | import { mapGetters } from "vuex"; |
| | | import website from "@/config/website"; |
| | | import { modelList, removeModel, deployModel } from "@/api/flow/flow"; |
| | | import { flowCategory } from "@/util/flow"; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | dicUrl: "/api/blade-system/dict/dictionary?code=flow", |
| | | props: { |
| | | label: "dictValue", |
| | | value: "dictKey" |
| | | value: "dictKey", |
| | | }, |
| | | dataType: "number", |
| | | slot: true, |
| | | prop: "categoryValue", |
| | | search: true, |
| | | span: 24, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择流程类型", |
| | | trigger: "blur" |
| | | }] |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请选择流程类型", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "流程模式", |
| | |
| | | dicData: [ |
| | | { |
| | | label: "通用流程", |
| | | value: 1 |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "定制流程", |
| | | value: 2 |
| | | } |
| | | value: 2, |
| | | }, |
| | | ], |
| | | value: 1, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请选择流程模式', |
| | | trigger: 'blur' |
| | | } |
| | | message: "请选择流程模式", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属租户", |
| | | label: "所属保安单位", |
| | | prop: "tenantId", |
| | | type: "tree", |
| | | multiple: true, |
| | | dicUrl: "/api/blade-system/tenant/select", |
| | | props: { |
| | | label: "tenantName", |
| | | value: "tenantId" |
| | | value: "tenantId", |
| | | }, |
| | | display: false, |
| | | span: 24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: '请选择所属租户', |
| | | trigger: 'blur' |
| | | } |
| | | message: "请选择所属保安单位", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | selectionId: '', |
| | | selectionId: "", |
| | | selectionList: [], |
| | | query: {}, |
| | | loading: true, |
| | |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | total: 0, |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | deployBox: false, |
| | | flowBox: false, |
| | | flowUrl: "", |
| | | option: { |
| | | height: 'auto', |
| | | height: "auto", |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: true, |
| | |
| | | viewBtn: false, |
| | | delBtn: false, |
| | | dialogWidth: 900, |
| | | menuWidth: 250, |
| | | menuWidth: 150, |
| | | dialogClickModal: false, |
| | | size: 'mini', |
| | | searchSize: 'mini', |
| | | ...this.$store.state.control.clearOtherBut, |
| | | column: [ |
| | | { |
| | | label: '模型主键', |
| | | prop: 'id', |
| | | label: "模型主键", |
| | | prop: "id", |
| | | }, |
| | | { |
| | | label: '模型标识', |
| | | prop: 'modelKey', |
| | | label: "模型标识", |
| | | prop: "modelKey", |
| | | search: true, |
| | | overHidden: true |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: '模型名称', |
| | | prop: 'name', |
| | | label: "模型名称", |
| | | prop: "name", |
| | | search: true, |
| | | overHidden: true |
| | | width: 150, |
| | | }, |
| | | { |
| | | label: '流程版本', |
| | | prop: 'version', |
| | | label: "流程版本", |
| | | prop: "version", |
| | | slot: true, |
| | | overHidden: true |
| | | width: 80, |
| | | }, |
| | | { |
| | | label: '创建时间', |
| | | prop: 'created', |
| | | overHidden: true |
| | | label: "创建时间", |
| | | prop: "created", |
| | | width: 165, |
| | | }, |
| | | { |
| | | label: '更新时间', |
| | | prop: 'lastUpdated', |
| | | overHidden: true |
| | | label: "更新时间", |
| | | prop: "lastUpdated", |
| | | width: 165, |
| | | }, |
| | | ] |
| | | ], |
| | | }, |
| | | data: [], |
| | | nutflowOption: { |
| | | process: {}, |
| | | step: 1, |
| | | step1: { |
| | | toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'], |
| | | }, |
| | | step2: { |
| | | mode: 'view', |
| | | simulation: true, |
| | | minimap: true, |
| | | } |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'form.flowMode'() { |
| | | this.$refs.form.option.column.filter(item => { |
| | | "form.flowMode"() { |
| | | this.$refs.form.option.column.filter((item) => { |
| | | if (item.prop === "tenantId") { |
| | | item.display = this.form.flowMode === 2; |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | ids() { |
| | | let ids = []; |
| | | this.selectionList.forEach(ele => { |
| | | this.selectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | | } |
| | | }, |
| | | created(){ |
| | | console.log(this.nutflowOption,454545445545) |
| | | }, |
| | | }, |
| | | methods: { |
| | | handleSubmitModel() { |
| | | const registry = this.$refs['wf-design-view'].getElementRegistry().getAll() |
| | | const {businessObject} = registry[0] |
| | | const {id, name, documentation} = businessObject |
| | | const description = (documentation && documentation.length > 0) ? documentation[0].text : null |
| | | const params = { |
| | | ...this.nutflowOption.process, |
| | | modelKey: id, |
| | | name, |
| | | description, |
| | | modelEditorXml: this.nutflowOption.process.xml |
| | | } |
| | | submitModel(params).then(() => { |
| | | this.$message.success("操作成功") |
| | | this.handleNutflowClose() |
| | | this.onLoad(this.page, this.query) |
| | | }) |
| | | }, |
| | | handleStep(step) { |
| | | if (step === 1) { // 下一步 |
| | | this.$refs['wf-design'].getData('xml').then(data => { |
| | | this.$set(this.nutflowOption.step1, 'xml', data) |
| | | this.$set(this.nutflowOption.step2, 'xml', data) |
| | | this.$set(this.nutflowOption.process, 'xml', data) |
| | | this.$set(this.nutflowOption, 'step', 2) |
| | | }) |
| | | } else this.$set(this.nutflowOption, 'step', 1) |
| | | }, |
| | | handleNutflowClose(done, flag) { |
| | | const initOption = { |
| | | process: {}, |
| | | step: 1, |
| | | step1: { |
| | | toolbar: ['open', 'create', 'fit', 'zoom-in', 'zoom-out', 'undo', 'redo', 'import', 'preview'], |
| | | }, |
| | | step2: { |
| | | mode: 'view', |
| | | simulation: true, |
| | | minimap: true, |
| | | } |
| | | } |
| | | if (done || flag) { |
| | | this.$confirm('确定要关闭吗?关闭未保存的修改都会丢失。', '警告', { |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.$set(this, 'nutflowOption', initOption) |
| | | if (typeof done == 'function') done() |
| | | this.flowBox = false |
| | | }).catch(() => { |
| | | }) |
| | | } else { |
| | | this.$set(this, 'nutflowOption', initOption) |
| | | this.flowBox = false |
| | | } |
| | | }, |
| | | handleSubmit(form, done) { |
| | | this.deployLoading = true; |
| | | deployModel({ |
| | | modelId: this.selectionId, |
| | | category: flowCategory(form.categoryValue), |
| | | tenantIds: form.tenantId.join(",") |
| | | }).then(res => { |
| | | tenantIds: form.tenantId.join(","), |
| | | }).then((res) => { |
| | | const data = res.data; |
| | | if (data.success) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: data.msg |
| | | message: data.msg, |
| | | }); |
| | | done(); |
| | | this.$refs.form.resetForm(); |
| | |
| | | this.deployLoading = false; |
| | | this.$message({ |
| | | type: "warn", |
| | | message: data.msg |
| | | message: data.msg, |
| | | }); |
| | | } |
| | | }) |
| | | }); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeModel(this.ids); |
| | |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleCreate() { |
| | | this.flowUrl = `${website.flowDesignUrl}/index.html`; |
| | | this.flowBox = true; |
| | | }, |
| | | handleUpdate(row) { |
| | | detail({id: row.id}).then(res => { |
| | | const data = res.data.data |
| | | const {modelEditorXml} = data |
| | | this.$set(this.nutflowOption.step1, 'xml', modelEditorXml) |
| | | this.$set(this.nutflowOption, 'process', data) |
| | | this.flowBox = true; |
| | | }) |
| | | this.flowUrl = `${website.flowDesignUrl}/index.html#/editor/${row.id}`; |
| | | this.flowBox = true; |
| | | }, |
| | | handleDeploy(row) { |
| | | this.deployBox = true; |
| | |
| | | handleDoDeploy() { |
| | | this.$refs.form.submit(); |
| | | }, |
| | | handleDownload(row) { |
| | | window.open(`${website.flowDesignUrl}/app/rest/models/${row.id}/bpmn20`); |
| | | }, |
| | | handleSlotDelete(row) { |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return removeModel(row.id); |
| | |
| | | .then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.onLoad(this.page); |
| | | }); |
| | | }, |
| | | handleRefresh() { |
| | | this.flowBox = false; |
| | | this.onLoad(this.page); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | modelList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => { |
| | | modelList( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.query) |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | this.selectionClear(); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | |
| | | .wf-dialog { |
| | | .el-dialog__body { |
| | | padding: 5px; |
| | | } |
| | | |
| | | .avue-dialog__footer { |
| | | text-align: center; |
| | | } |
| | | <style> |
| | | .none-border { |
| | | border: 0; |
| | | background-color: transparent !important; |
| | | } |
| | | </style> |
| | |
| | | /* * @Author: Morpheus * @Date: 2021-07-05 16:31:54 * @Last Modified by: liu * |
| | | @Last Modified time: 2021-11-27 10:20:19 * menu-name 成绩管理 */ |
| | | <template> |
| | | <basic-container :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize', |
| | | $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : '' |
| | | ]"> |
| | | <avue-crud v-model="obj" class="company-box tablesss" :option="questionBankOption" :search.sync="questionBankSearch" |
| | | :table-loading="questionBankLoading" :data="questionBankData" :permission="permissionList" ref="questionBankCrud" |
| | | :page.sync="questionBankPage" @sort-change="sortChange" @on-load="questionBankOnLoad" |
| | | @selection-change="questionBankSelectionChange" @search-change="questionBankSearchChange" |
| | | @search-reset="questionBankSearchReset" @current-change="questionBankCurrentChange" |
| | | @size-change="questionBankSizeChange" @row-update="questionBankRowUpdate" @refresh-change="refreshChange"> |
| | | <basic-container |
| | | :class="[ |
| | | 'exam-card-body', |
| | | $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize', |
| | | $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : '', |
| | | ]" |
| | | > |
| | | <avue-crud |
| | | v-model="obj" |
| | | class="company-box tablesss" |
| | | :option="questionBankOption" |
| | | :search.sync="questionBankSearch" |
| | | :table-loading="questionBankLoading" |
| | | :data="questionBankData" |
| | | :permission="permissionList" |
| | | ref="questionBankCrud" |
| | | :page.sync="questionBankPage" |
| | | @sort-change="sortChange" |
| | | @on-load="questionBankOnLoad" |
| | | @selection-change="questionBankSelectionChange" |
| | | @search-change="questionBankSearchChange" |
| | | @search-reset="questionBankSearchReset" |
| | | @current-change="questionBankCurrentChange" |
| | | @size-change="questionBankSizeChange" |
| | | @row-update="questionBankRowUpdate" |
| | | @refresh-change="refreshChange" |
| | | > |
| | | <template slot-scope="{ row }" slot="theoryGrade"> |
| | | {{ row.theoryGrade }} |
| | | </template> |
| | |
| | | <template slot-scope="{ row }" slot="qualified"> |
| | | {{ |
| | | row.qualified == "" |
| | | ? "" |
| | | : row.qualified == 0 |
| | | ? "" |
| | | : row.qualified == 0 |
| | | ? "合格" |
| | | : row.qualified == 1 |
| | | ? "不合格" |
| | | : row.qualified == 3 |
| | | ? "缺考,成绩无效" |
| | | : "" |
| | | ? "不合格" |
| | | : row.qualified == 3 |
| | | ? "缺考,成绩无效" |
| | | : "" |
| | | }} |
| | | </template> |
| | | |
| | |
| | | plain |
| | | @click="handleDelete">删除 |
| | | </el-button> --> |
| | | <el-button type="success" size="small" plain icon="el-icon-upload2" v-if="permission.trainExam_performance_import" |
| | | @click="handleImport">实操成绩导入 |
| | | <el-button |
| | | type="success" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | v-if="permission.trainExam_performance_import" |
| | | @click="handleImport" |
| | | >实操成绩导入 |
| | | </el-button> |
| | | <el-button type="warning" size="small" plain icon="el-icon-download" |
| | | v-if="permission.trainExam_performance_export" @click="handleExport">成绩导出 |
| | | <el-button |
| | | type="warning" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-download" |
| | | v-if="permission.trainExam_performance_export" |
| | | @click="handleExport" |
| | | >成绩导出 |
| | | </el-button> |
| | | <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.trainExam_performance_delete" |
| | | @click="handleDelete">删 除 |
| | | <el-button |
| | | type="danger" |
| | | size="small" |
| | | plain |
| | | icon="el-icon-delete" |
| | | v-if="permission.trainExam_performance_delete" |
| | | @click="handleDelete" |
| | | >删 除 |
| | | </el-button> |
| | | <el-button type="primary" size="small" plain v-if="permission.trainExam_performance_paper_apply" |
| | | style="display: none;" icon="el-icon-collection-tag" @click="handleSecurityPaperApply">证书制证申请 |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | plain |
| | | v-if="permission.trainExam_performance_paper_apply" |
| | | style="display: none" |
| | | icon="el-icon-collection-tag" |
| | | @click="handleSecurityPaperApply" |
| | | >证书制证申请 |
| | | </el-button> |
| | | <el-button type="primary" size="small" plain v-if="permission.trainExam_performance_worker_paper_apply" |
| | | style="display: none;" icon="el-icon-collection-tag" @click="handleWorkerPaperApply">上岗证制证申请 |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | plain |
| | | v-if="permission.trainExam_performance_worker_paper_apply" |
| | | style="display: none" |
| | | icon="el-icon-collection-tag" |
| | | @click="handleWorkerPaperApply" |
| | | >上岗证制证申请 |
| | | </el-button> |
| | | </template> |
| | | |
| | | <template slot-scope="{ type, size, row }" slot="menu"> |
| | | <el-button style="display: none" icon="el-icon-s-flag" @click="absent(row)" :size="size" |
| | | :type="type">缺考标记</el-button> |
| | | <el-button icon="el-icon-s-promotion" @click="openzhengjian(row)" :disabled="row.qualified != 0" :size="size" |
| | | :type="type">查看证件</el-button> |
| | | <el-button icon="el-icon-edit" @click="modifiedGrades(row)" :size="size" :type="type">申请修改成绩</el-button> |
| | | <el-button icon="el-icon-edit" v-if="row.isPaper == 6" @click="securityPaperApply(row)" :size="size" |
| | | :type="type">补证申请</el-button> |
| | | <el-button |
| | | style="display: none" |
| | | icon="el-icon-s-flag" |
| | | @click="absent(row)" |
| | | :size="size" |
| | | :type="type" |
| | | >缺考标记</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-s-promotion" |
| | | @click="openzhengjian(row)" |
| | | :disabled="row.qualified != 0" |
| | | :size="size" |
| | | :type="type" |
| | | >查看证件</el-button |
| | | > |
| | | <el-button |
| | | v-show="row.theoryGrade < 60 && row.theoryGrade != null && row.theoryGrade != '' && row.theoryGrade > -1" |
| | | icon="el-icon-refresh" |
| | | @click="reself(row)" |
| | | :size="size" |
| | | :type="type" |
| | | >重置考试</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-edit" |
| | | @click="modifiedGrades(row)" |
| | | :size="size" |
| | | :type="type" |
| | | >申请修改成绩</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-edit" |
| | | v-if="row.isPaper == 6" |
| | | @click="securityPaperApply(row)" |
| | | :size="size" |
| | | :type="type" |
| | | >补证申请</el-button |
| | | > |
| | | </template> |
| | | </avue-crud> |
| | | |
| | | <el-dialog title="实操成绩导入" append-to-body :visible.sync="excelBox" width="555px"> |
| | | <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter"> |
| | | <el-dialog |
| | | title="实操成绩导入" |
| | | append-to-body |
| | | :visible.sync="excelBox" |
| | | width="555px" |
| | | > |
| | | <avue-form |
| | | :option="excelOption" |
| | | v-model="excelForm" |
| | | :upload-after="uploadAfter" |
| | | > |
| | | <template slot="excelTemplate"> |
| | | <el-button type="primary" @click="handleTemplate"> |
| | | 点击下载<i class="el-icon-download el-icon--right"></i> |
| | |
| | | </avue-form> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="申请修改成绩" :visible.sync="gradeBoxVisible" width="width" :modal="true" :modal-append-to-body="true" |
| | | :append-to-body="true" :close-on-click-modal="false" :close-on-press-escape="false" |
| | | :before-close="dialogBeforeClose"> |
| | | <el-dialog |
| | | title="申请修改成绩" |
| | | :visible.sync="gradeBoxVisible" |
| | | width="width" |
| | | :modal="true" |
| | | :modal-append-to-body="true" |
| | | :append-to-body="true" |
| | | :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | :before-close="dialogBeforeClose" |
| | | > |
| | | <div> |
| | | <!-- <el-form |
| | | ref="gradeForm" |
| | |
| | | <el-button @click="gradeBoxVisible = false">取 消</el-button> |
| | | </el-form-item> |
| | | </el-form> --> |
| | | <avue-form ref="form" :option="option" v-model="form" @reset-change="emptytChange" @submit="submit"> |
| | | <avue-form |
| | | ref="form" |
| | | :option="option" |
| | | v-model="form" |
| | | @reset-change="emptytChange" |
| | | @submit="submit" |
| | | > |
| | | </avue-form> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | :modal-append-to-body="false" |
| | | > --> |
| | | <div class="dialogVisiblezhengjian" v-if="dialogVisiblezhengjian"> |
| | | <baoanz :data="baoanzdata" :close="1" @close="closezhengjian" :closePrint="1"></baoanz> |
| | | <baoanz |
| | | :data="baoanzdata" |
| | | :close="1" |
| | | @close="closezhengjian" |
| | | :closePrint="1" |
| | | ></baoanz> |
| | | </div> |
| | | </basic-container> |
| | | </template> |
| | |
| | | updateAbsent, |
| | | updateGrade, |
| | | remove, |
| | | getNowDate |
| | | getNowDate, |
| | | reselfExamScore, |
| | | } from "@/api/examapi/performance"; |
| | | import { mapGetters } from "vuex"; |
| | | import { getRoleDetail } from "@/api/system/role"; |
| | | import { |
| | | securityApply, |
| | | add |
| | | add, |
| | | } from "@/api/accreditationRecords/accreditationRecords"; |
| | | import Qs from "qs"; |
| | | import { getToken } from "@/util/auth"; |
| | | import { putFile, removeFile } from "@/api/resource/oss"; |
| | | export default { |
| | | components: { |
| | | baoanz |
| | | baoanz, |
| | | }, |
| | | data() { |
| | | var validatePass = (rule, value, callback) => { |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入考试名称", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "姓名", |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入姓名", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "身份证号", |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入身份证号", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "准考证号", |
| | |
| | | { |
| | | required: false, |
| | | message: "请输入准考证号", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "原理论成绩", |
| | |
| | | { |
| | | required: false, |
| | | message: "请输入原理论成绩", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "修改考试成绩", |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入修改考试成绩", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "实操成绩", |
| | |
| | | { |
| | | required: false, |
| | | message: "请输入实操成绩", |
| | | trigger: "blur" |
| | | } |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | dicData: [ |
| | | { |
| | | label: "合格", |
| | | value: 0 |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "不合格", |
| | | value: 1 |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "暂未录实操成绩", |
| | | value: 2 |
| | | } |
| | | value: 2, |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | |
| | | tip: "只能上传jpg/png文件,最多上传5张", |
| | | propsHttp: { |
| | | res: "data", |
| | | url: "url" |
| | | url: "url", |
| | | }, |
| | | action: "/api/blade-resource/oss/endpoint/put-files" |
| | | action: "/api/blade-resource/oss/endpoint/put-files", |
| | | }, |
| | | { |
| | | label: "修改理由", |
| | | labelWidth: 110, |
| | | span: 24, |
| | | type: "textarea", |
| | | prop: "editReason" |
| | | } |
| | | ] |
| | | prop: "editReason", |
| | | }, |
| | | ], |
| | | }, |
| | | form: {}, |
| | | limit: 5, |
| | |
| | | disabled: false, |
| | | rules: { |
| | | editGrades: [ |
| | | { validator: validatePass2, required: true, trigger: "blur" } |
| | | ] |
| | | { validator: validatePass2, required: true, trigger: "blur" }, |
| | | ], |
| | | }, |
| | | gradeForm: { |
| | | id: null, |
| | |
| | | allGrade: "", |
| | | editGrades: "", |
| | | editReason: "", |
| | | fileList: [] |
| | | fileList: [], |
| | | }, |
| | | gradeBoxVisible: false, |
| | | dialogVisiblezhengjian: false, |
| | | baoanzdata: {}, |
| | | obj: { |
| | | name: "张三" |
| | | name: "张三", |
| | | }, |
| | | excelBox: false, |
| | | questionBankOption: { |
| | |
| | | viewBtn: false, |
| | | selection: true, |
| | | reserveSelection: true, |
| | | selectable: row => { |
| | | selectable: (row) => { |
| | | if (row.isExam == 3) { |
| | | return false; |
| | | } else { |
| | |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | viewDisplay: false |
| | | viewDisplay: false, |
| | | }, |
| | | { |
| | | label: "考试时间", |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入试卷名称", |
| | | trigger: "blur" |
| | | } |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | overHidden: true |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: "姓名", |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入试卷名称", |
| | | trigger: "blur" |
| | | } |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 80 |
| | | width: 80, |
| | | // overHidden:true, |
| | | }, |
| | | { |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入保安姓名", |
| | | trigger: "blur" |
| | | } |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 140 |
| | | width: 140, |
| | | }, |
| | | { |
| | | label: "准考证号", |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入保安姓名", |
| | | trigger: "blur" |
| | | } |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 110 |
| | | width: 110, |
| | | }, |
| | | { |
| | | label: "照片", |
| | |
| | | // 表单编辑时是否可见 |
| | | editDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false |
| | | editDetail: false, |
| | | }, |
| | | { |
| | | label: "从业单位", |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入从业单位", |
| | | trigger: "blur" |
| | | } |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | width: 180, |
| | | overHidden: true |
| | | overHidden: true, |
| | | }, |
| | | { |
| | | label: "考试开始时间", |
| | |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false |
| | | editDetail: false, |
| | | }, |
| | | { |
| | | label: "考试结束时间", |
| | |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false |
| | | editDetail: false, |
| | | }, |
| | | { |
| | | label: "考试状态", |
| | |
| | | dicData: [ |
| | | { |
| | | label: "发布成绩", |
| | | value: 2 |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "考试中", |
| | | value: 3 |
| | | value: 3, |
| | | }, |
| | | { |
| | | label: "纸质考试", |
| | | value: 5 |
| | | value: 5, |
| | | }, |
| | | { |
| | | label: "缺考", |
| | | value: 4 |
| | | } |
| | | value: 4, |
| | | }, |
| | | ], |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | |
| | | { |
| | | required: true, |
| | | message: "请输入考试名称", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "理论成绩", |
| | |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false, |
| | | width: 95 |
| | | width: 95, |
| | | }, |
| | | { |
| | | label: "实操成绩", |
| | |
| | | dicData: [ |
| | | { |
| | | label: "合格", |
| | | value: 0 |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "不合格", |
| | | value: 1 |
| | | } |
| | | value: 1, |
| | | }, |
| | | ], |
| | | }, |
| | | // { |
| | |
| | | dicData: [ |
| | | { |
| | | label: "合格", |
| | | value: 0 |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "不合格", |
| | | value: 1 |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "暂未录实操成绩", |
| | | value: 2 |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "缺考,成绩无效", |
| | | value: 3 |
| | | } |
| | | value: 3, |
| | | }, |
| | | ], |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | |
| | | viewDetail: false, |
| | | viewDisplay: false, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false |
| | | editDetail: false, |
| | | }, |
| | | { |
| | | label: "是否合格", |
| | |
| | | dicData: [ |
| | | { |
| | | label: "合格", |
| | | value: 0 |
| | | value: 0, |
| | | }, |
| | | { |
| | | label: "不合格", |
| | | value: 1 |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "暂未录实操成绩", |
| | | value: 2 |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "缺考,成绩无效", |
| | | value: 3 |
| | | } |
| | | value: 3, |
| | | }, |
| | | ], |
| | | // 表单新增时是否禁止 |
| | | addDisabled: false, |
| | |
| | | // 表单编辑时是否可见 |
| | | editDisplay: true, |
| | | // 表单编辑时是否为查看模式 |
| | | editDetail: false |
| | | editDetail: false, |
| | | }, |
| | | // { |
| | | // label: "是否制证", |
| | |
| | | dicData: [ |
| | | { |
| | | label: "全部", |
| | | value: 3 |
| | | value: 3, |
| | | }, |
| | | { |
| | | label: "有", |
| | | value: 1 |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "无", |
| | | value: 2 |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | value: 2, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | questionBankSearch: {}, |
| | | questionBankLoading: true, |
| | |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 16, |
| | | ...this.$store.state.control.changePageSize |
| | | ...this.$store.state.control.changePageSize, |
| | | }, |
| | | questionBankQuery: {}, |
| | | selectionList: [], |
| | |
| | | loadText: "模板上传中,请稍等", |
| | | span: 24, |
| | | propsHttp: { |
| | | res: "data" |
| | | res: "data", |
| | | }, |
| | | tip: "请上传 .xls,.xlsx 标准格式文件", |
| | | action: "/api/examScore/import-examScore" |
| | | action: "/api/examScore/import-examScore", |
| | | }, |
| | | // { |
| | | // label: "数据覆盖", |
| | |
| | | label: "模板下载", |
| | | prop: "excelTemplate", |
| | | formslot: true, |
| | | span: 24 |
| | | } |
| | | ] |
| | | span: 24, |
| | | }, |
| | | ], |
| | | }, |
| | | choiceList: [] |
| | | choiceList: [], |
| | | }; |
| | | }, |
| | | created() { }, |
| | | created() {}, |
| | | mounted() { |
| | | this.$store.commit("setWindowSizeHeightAdd"); |
| | | }, |
| | |
| | | ...mapGetters(["userInfo", "permission"]), |
| | | ids() { |
| | | let ids = []; |
| | | this.questionBankSelectionList.forEach(ele => { |
| | | this.questionBankSelectionList.forEach((ele) => { |
| | | ids.push(ele.id); |
| | | }); |
| | | return ids.join(","); |
| | |
| | | excelBtn: this.vaildData( |
| | | this.permission.trainExam_performance_export, |
| | | false |
| | | ) |
| | | ), |
| | | }; |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | // 考试重置 |
| | | reself({id}) { |
| | | reselfExamScore(id).then((res) => { |
| | | if (res.data.success == true) { |
| | | this.$message({ |
| | | showClose: true, |
| | | message: "重置成功", |
| | | type: "success", |
| | | }); |
| | | |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | } else { |
| | | this.$message({ |
| | | showClose: true, |
| | | message: "重置错误!请联系管理员", |
| | | type: "warning", |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // 批量删除 |
| | | handleDelete() { |
| | | if (this.questionBankSelectionList.length === 0) { |
| | |
| | | this.$confirm("确定将选择考试成绩删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | return remove(this.ids); |
| | |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | |
| | | that.$refs.form.resetFields(); |
| | | that.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | that.gradeBoxVisible = false; |
| | | |
| | | done(); |
| | | }, |
| | | error => { |
| | | (error) => { |
| | | window.console.log(error); |
| | | done(); |
| | | } |
| | |
| | | const form = new FormData(); |
| | | // 文件对象 |
| | | form.append("file", file); |
| | | putFile(form).then(res => { |
| | | putFile(form).then((res) => { |
| | | that.gradeForm.fileList.push({ |
| | | name: res.data.data.name, |
| | | url: res.data.data.url |
| | | url: res.data.data.url, |
| | | }); |
| | | // console.log(that.gradeForm.fileList, 365441); |
| | | }); |
| | |
| | | this.choiceList = []; |
| | | for (let k in list) { |
| | | this.choiceList.push({ |
| | | id: list[k].userId |
| | | id: list[k].userId, |
| | | }); |
| | | } |
| | | }, |
| | |
| | | { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | } |
| | | ) |
| | | .then(() => { |
| | |
| | | const data = { |
| | | ids: str, |
| | | createUser: this.userInfo.user_id, |
| | | type: 2 |
| | | type: 2, |
| | | }; |
| | | return securityApply(data); |
| | | }) |
| | |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | |
| | | } |
| | | this.$confirm( |
| | | "共选择上岗证制证申请人数" + |
| | | this.choiceList.length + |
| | | "人,确定申请制证?", |
| | | this.choiceList.length + |
| | | "人,确定申请制证?", |
| | | { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | } |
| | | ) |
| | | .then(() => { |
| | |
| | | const data = { |
| | | ids: str, |
| | | createUser: this.userInfo.user_id, |
| | | type: 1 |
| | | type: 1, |
| | | }; |
| | | return securityApply(data); |
| | | }) |
| | |
| | | this.$refs.questionBankCrud.toggleSelection(); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | |
| | | $sex: row.sex == 1 ? "男" : "女", |
| | | securitynumber: row.securityNumber, |
| | | paperTime: row.paperTime, |
| | | avatar: row.avatar |
| | | avatar: row.avatar, |
| | | }; |
| | | this.dialogVisiblezhengjian = true; |
| | | }, |
| | |
| | | var that = this; |
| | | //获取当前登录人员的角色信息 |
| | | var roleIds = this.userInfo.role_id.split(","); |
| | | roleIds.forEach(roleId => { |
| | | getRoleDetail(roleId).then(res => { |
| | | roleIds.forEach((roleId) => { |
| | | getRoleDetail(roleId).then((res) => { |
| | | var roleAlias = res.data.data.roleAlias; |
| | | if (roleAlias == "保安公司管理员" || roleAlias == "保安") { |
| | | //如果是保安公司管理员 |
| | |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign(params, this.questionBankQuery) |
| | | ).then(res => { |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | |
| | | data.records.forEach(item => { |
| | | data.records.forEach((item) => { |
| | | if (item.isPaper == null || item.isPaper == -1) { |
| | | item.isPaper = ""; |
| | | } |
| | |
| | | this.$confirm("当前保安员已制证,确定要继续申请制证?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }).then(() => { |
| | | const data = { |
| | | createUser: this.userInfo.user_id, |
| | | type: 2, |
| | | userId: row.userId |
| | | userId: row.userId, |
| | | }; |
| | | add(data).then( |
| | | () => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | error => { |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | |
| | | this.$confirm("确定缺考标记?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }).then(() => { |
| | | row.qualified = 3; |
| | | updateAbsent(row).then( |
| | |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | error => { |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | |
| | | //得到时间戳 |
| | | var longtime = new Date(endTime).getTime(); |
| | | // console.log(longtime,123466); |
| | | getNowDate().then(res => { |
| | | getNowDate().then((res) => { |
| | | var num = 24 * 3600 * 1000; |
| | | if (this.userInfo.role_name == "培训公司管理员") { |
| | | // if (res.data.data - longtime <= num) { |
| | |
| | | securityName: row.securityName, |
| | | theoryGrade: row.theoryGrade, |
| | | learnGrade: row.learnGrade, |
| | | allGrade: row.allGrade |
| | | allGrade: row.allGrade, |
| | | }; |
| | | this.gradeBoxVisible = true; |
| | | // } else { |
| | |
| | | securityName: row.securityName, |
| | | theoryGrade: row.theoryGrade, |
| | | learnGrade: row.learnGrade, |
| | | allGrade: row.allGrade |
| | | allGrade: row.allGrade, |
| | | }; |
| | | this.gradeBoxVisible = true; |
| | | } |
| | |
| | | uploadGrade(formName) { |
| | | var that = this; |
| | | |
| | | this.$refs[formName].validate(valid => { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | var obj = {}; |
| | | obj.oldScore = this.gradeForm.theoryGrade; |
| | |
| | | that.questionBankOnLoad(that.questionBankPage); |
| | | that.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | |
| | | that.gradeBoxVisible = false; |
| | | }, |
| | | error => { |
| | | (error) => { |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | |
| | | this.choiceList = []; |
| | | for (let k in list) { |
| | | this.choiceList.push({ |
| | | id: list[k].userId |
| | | id: list[k].userId, |
| | | }); |
| | | } |
| | | }, |
| | |
| | | theoryGrade: row.theoryGrade, |
| | | learnGrade: row.learnGrade, |
| | | examId: row.examId, |
| | | id: row.id |
| | | id: row.id, |
| | | }).then( |
| | | () => { |
| | | this.questionBankOnLoad(this.questionBankPage); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | error => { |
| | | (error) => { |
| | | window.console.log(error); |
| | | loading(); |
| | | } |
| | |
| | | }, |
| | | handleTemplate() { |
| | | window.open( |
| | | `/api/examScore/export-template?${this.website.tokenHeader |
| | | `/api/examScore/export-template?${ |
| | | this.website.tokenHeader |
| | | }=${getToken()}&` |
| | | ); |
| | | }, |
| | |
| | | this.$confirm("是否导出成绩数据?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | type: "warning", |
| | | }).then(() => { |
| | | //获取查询条件 |
| | | // console.log(this.questionBankSearch, 456); |
| | |
| | | securityName: this.questionBankSearch.securityName, |
| | | examName: this.questionBankSearch.examName, |
| | | isAvatar: this.questionBankSearch.isAvatar, |
| | | isPaper: this.questionBankSearch.isPaper |
| | | isPaper: this.questionBankSearch.isPaper, |
| | | }; |
| | | //导出 |
| | | if ( |
| | |
| | | //序列号url形式,用&拼接 |
| | | data = Qs.stringify(data); |
| | | window.open( |
| | | `/api/examScore/export-examScore?${this.website.tokenHeader |
| | | `/api/examScore/export-examScore?${ |
| | | this.website.tokenHeader |
| | | }=${getToken()}&` + data |
| | | ); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |