|
|
@@ -0,0 +1,362 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <!--顶部显示-->
|
|
|
+ <el-breadcrumb class="heading">
|
|
|
+ <el-breadcrumb-item :to="{ path: '/' }">平台首页</el-breadcrumb-item>
|
|
|
+ <el-breadcrumb-item>HSE成绩</el-breadcrumb-item>
|
|
|
+ </el-breadcrumb>
|
|
|
+ <!--内框顶部显示-->
|
|
|
+ <el-card class="box-card" style="height: calc(100vh - 115px);position:relative">
|
|
|
+ <div slot="header">
|
|
|
+ <span>
|
|
|
+ <i class="icon icon-table2"></i>
|
|
|
+ </span>
|
|
|
+
|
|
|
+ <el-form :model="searchForm" ref="searchformRef" :inline="true" style="float: right;position:absolute;right:15px;top:10.5px">
|
|
|
+ <el-form-item label="准入证号">
|
|
|
+ <el-input size="mini" style="width:110px" v-model="searchForm.AccessCardNo" clearable placeholder="准入证号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工商注册号">
|
|
|
+ <el-input size="mini" style="width:122px" v-model="searchForm.CommercialNo" clearable placeholder="工商注册号"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="企业名称">
|
|
|
+ <el-input size="mini" style="width:110px" v-model="searchForm.SupplierName" clearable placeholder="企业名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="有效期">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="searchForm.ApplyTime"
|
|
|
+ size="mini"
|
|
|
+ type="date"
|
|
|
+ format="yyyy 年 MM 月 dd 日"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择有效期"
|
|
|
+ style="width: 100%"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="姓名">
|
|
|
+ <el-input size="mini" style="width:100px" v-model="searchForm.Name" clearable placeholder="姓名"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item>
|
|
|
+ <el-dropdown
|
|
|
+ split-button
|
|
|
+ type="primary"
|
|
|
+ size="mini"
|
|
|
+ @click="initDatas($event)"
|
|
|
+ @command="searchCommand"
|
|
|
+ >
|
|
|
+ 查询
|
|
|
+ <el-dropdown-menu slot="dropdown">
|
|
|
+ <el-dropdown-item command="clear">查询重置</el-dropdown-item>
|
|
|
+ </el-dropdown-menu>
|
|
|
+ </el-dropdown>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!--内框表格显示-->
|
|
|
+ <el-table
|
|
|
+ id="rebateSetTable"
|
|
|
+ :data="entityList"
|
|
|
+ size="mini"
|
|
|
+ v-loading="tableLoading"
|
|
|
+ border
|
|
|
+ height="calc(100vh - 243px)"
|
|
|
+ style="width: 100%"
|
|
|
+ @sort-change="orderby"
|
|
|
+ @selection-change="onSelect"
|
|
|
+ highlight-current-row
|
|
|
+ stripe
|
|
|
+ >
|
|
|
+ <el-table-column label="操作" width="120px" align="center" fixed="right" show-overflow-tooltip>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="primary" plain title="打印证书" size="mini" @click="download(scope.row)">打印证书</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <!--内框表格剩余栏显示-->
|
|
|
+ <el-table-column align="center" width="70" label="序号">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{scope.$index+(currentPage - 1) * size + 1}} </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="企业名称" min-width="300px" prop="SupplierName" sortable align="center"></el-table-column>
|
|
|
+ <el-table-column label="姓名" width="120px" prop="Name" sortable align="center"></el-table-column>
|
|
|
+ <el-table-column label="考号" width="120px" prop="TestNumber" sortable align="center"></el-table-column>
|
|
|
+ <el-table-column label="身份证号" width="200px" prop="IdNumber" sortable align="center"></el-table-column>
|
|
|
+ <el-table-column label="有效期" width="120px" prop="ApplyTime" sortable align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ jstimehandle(scope.row.ApplyTime+'') }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="考试成绩" width="120px" prop="Score" sortable align="center"></el-table-column>
|
|
|
+ <el-table-column label="培训开始日期" width="120px" prop="StartTime" sortable align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ jstimehandle(scope.row.StartTime+'') }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="培训结束日期" width="120px" prop="EndTime" sortable align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ jstimehandle(scope.row.EndTime+'') }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <!-- 分页 -->
|
|
|
+ <el-pagination
|
|
|
+ style="float: right; margin-top: 10px; margin-bottom: 5px"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ :current-page="currentPage"
|
|
|
+ :page-sizes="[10, 50, 100, 200, 500]"
|
|
|
+ :page-size="size"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="currentItemCount"
|
|
|
+ ></el-pagination>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import hseApi from '@/api/hsescore/hsescore'
|
|
|
+import uploadajax from '@/assets/js/uploadajax.js'
|
|
|
+import {mapGetters} from "vuex"
|
|
|
+import axios from "axios";
|
|
|
+
|
|
|
+export default {
|
|
|
+ computed: {
|
|
|
+ ...mapGetters({
|
|
|
+ authUser: 'authUser'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ data () {
|
|
|
+ const checkIdNumber = (rule, value, callback) => {
|
|
|
+ if (value === '') {
|
|
|
+ callback(new Error('请填写身份证号'))
|
|
|
+ } else {
|
|
|
+ let re1 = /(^\d{18}$)|(^\d{17}(\d|X|x)$)/
|
|
|
+ if (!re1.test(this.updateData.IdNumber)) {
|
|
|
+ callback(new Error('请输入正确格式的身份证号'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const validDate = (rule, value, callback) => {
|
|
|
+ if (!value || !value[0] || !value[1]) {
|
|
|
+ callback(new Error('请选择培训开始日期'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const validStartDate = (rule, value, callback) => {
|
|
|
+ if (!value || !value[0] || !value[1]) {
|
|
|
+ callback(new Error('请选择培训结束日期'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ title: '',
|
|
|
+ disabled: false,
|
|
|
+ uploadShow: false,
|
|
|
+ id: 0,
|
|
|
+ addDialog: false,
|
|
|
+ addDialog1: false,
|
|
|
+ tableLoading: false,
|
|
|
+ addLoading: false,
|
|
|
+ status: false,
|
|
|
+ importLoading: false,
|
|
|
+ entityList: [],
|
|
|
+ supplierSelectList: [], // 企业名称列表
|
|
|
+ rules: {
|
|
|
+ SupplierId: [
|
|
|
+ {required: true, message: '请选择企业名称', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ Score: [
|
|
|
+ {required: true, message: '请填写考试成绩', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ Name: [
|
|
|
+ {required: true, message: '请填写姓名', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ SupplierName: [
|
|
|
+ {required: true, message: '请填写企业名称', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ StartTime: [
|
|
|
+ {required: true, validator: validDate, trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ EndTime: [
|
|
|
+ {required: true, validator: validStartDate, trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ TestNumber: [
|
|
|
+ {required: true, message: '请填写考号', trigger: 'blur'}
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ rules1: {
|
|
|
+ IdNumber: [
|
|
|
+ {required: true, validator: checkIdNumber, trigger: 'change'}
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ size: 10,
|
|
|
+ currentPage: 1,
|
|
|
+ currentItemCount: 0,
|
|
|
+ searchForm: {
|
|
|
+ AccessCardNo: '',
|
|
|
+ SupplierName: '',
|
|
|
+ CommercialNo: '',
|
|
|
+ ApplyTime: '',
|
|
|
+ IdNumber: '',
|
|
|
+ Name: '',
|
|
|
+ },
|
|
|
+ updateData: {
|
|
|
+ SupplierId: '',
|
|
|
+ SupplierName: '',
|
|
|
+ Name: '',
|
|
|
+ IdNumber: '',
|
|
|
+ TestNumber: '',
|
|
|
+ Score: 0,
|
|
|
+ StartTime: '',
|
|
|
+ EndTime: '',
|
|
|
+ ApplyTime: ''
|
|
|
+ },
|
|
|
+ // 列表排序
|
|
|
+ Column: {
|
|
|
+ Order: '',
|
|
|
+ Prop: ''
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created () {
|
|
|
+ this.getSupplierList()
|
|
|
+ this.initDatas()
|
|
|
+ if (this.authUser.Profile.IsCompanyUser === 1) {
|
|
|
+ this.disabled = true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ jstimehandle (val) {
|
|
|
+ if (val === '' || val === '0001-01-01T08:00:00+08:00' || val === '0001-01-01T00:00:00Z') {
|
|
|
+ return '----'
|
|
|
+ }else if (val === '5000-01-01T23:59:59+08:00') {
|
|
|
+ return '永久'
|
|
|
+ } else {
|
|
|
+ val = val.replace('T', ' ')
|
|
|
+ return val.substring(0, 10)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 打印证书word
|
|
|
+ download(row) {
|
|
|
+ this.tableLoading = true
|
|
|
+ let params = {
|
|
|
+ SupplierId: row.SupplierId,
|
|
|
+ Ip: window.location.host
|
|
|
+ }
|
|
|
+ hseApi.exportWord(row.Id, params, this.$axios).then(res => {
|
|
|
+ // 内网服务器专用
|
|
|
+ if (process.client && res.data.indexOf('upfile') === 0) {
|
|
|
+ const myDomain = window.location.host
|
|
|
+ window.open('http://' + myDomain + '/' + res.data)
|
|
|
+ } else {
|
|
|
+ window.open('http://' + res.data)
|
|
|
+ }
|
|
|
+ this.tableLoading = false
|
|
|
+ }).catch(err => {
|
|
|
+ this.tableLoading = false
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onSelect (e) {
|
|
|
+ var list = []
|
|
|
+ e.map((item, index) => {
|
|
|
+ list.push(item.CertId)
|
|
|
+ })
|
|
|
+ this.selectedCertIdList = String(list)
|
|
|
+ },
|
|
|
+ // 列表排序功能
|
|
|
+ orderby (column) {
|
|
|
+ if (column.order === 'ascending') {
|
|
|
+ this.Column.Order = 'asc'
|
|
|
+ } else if (column.order === 'descending') {
|
|
|
+ this.Column.Order = 'desc'
|
|
|
+ }
|
|
|
+ this.Column.Prop = column.prop
|
|
|
+ this.initDatas()
|
|
|
+ },
|
|
|
+ // 初始化列表方法
|
|
|
+ initDatas (event) {
|
|
|
+ if (event != null) {
|
|
|
+ this.currentPage = 1
|
|
|
+ }
|
|
|
+ let params = {
|
|
|
+ _size: this.size,
|
|
|
+ _currentPage: this.currentPage,
|
|
|
+ Order: this.Column.Order,
|
|
|
+ Prop: this.Column.Prop
|
|
|
+ }
|
|
|
+ // 查询条件
|
|
|
+ Object.assign(params, this.searchForm)
|
|
|
+ this.tableLoading = true
|
|
|
+ console.log(params, 'params----')
|
|
|
+ hseApi.getHSEList(params, this.$axios).then(res => {
|
|
|
+ this.entityList = res.data.items
|
|
|
+ this.currentItemCount = res.data.currentItemCount
|
|
|
+ this.tableLoading = false
|
|
|
+ }).catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ this.tableLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getSupplierList() {
|
|
|
+ hseApi.getSupplierList(this.$axios).then(res => {
|
|
|
+ this.supplierSelectList = res.data.items
|
|
|
+ }).catch(err => {
|
|
|
+ console.error(err)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 分页方法
|
|
|
+ handleCurrentChange (value) {
|
|
|
+ this.currentPage = value
|
|
|
+ this.initDatas()
|
|
|
+ },
|
|
|
+ handleSizeChange (value) {
|
|
|
+ this.size = value
|
|
|
+ this.currentPage = 1
|
|
|
+ this.initDatas()
|
|
|
+ },
|
|
|
+ searchCommand (command) {
|
|
|
+ if (command === 'search') {
|
|
|
+ this.dialogVisible = true
|
|
|
+ } else if (command === 'clear') {
|
|
|
+ this.clearSearch()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ clearSearch () {
|
|
|
+ Object.assign(this.searchForm, this.searchFormReset)
|
|
|
+ if (process.client) {
|
|
|
+ window.localStorage.setItem('companySearchParams', '')
|
|
|
+ }
|
|
|
+ this.CityAry = []
|
|
|
+ this.SetupTime = ''
|
|
|
+ this.auditorg = ''
|
|
|
+ this.selectDept = ''
|
|
|
+ this.OperType = ''
|
|
|
+ this.hidden = true
|
|
|
+ this.Grade = ''
|
|
|
+ this.LinkCityAry = []
|
|
|
+ this.currentPage = 1
|
|
|
+ this.initDatas()
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+.eldialog .el-input__inner {
|
|
|
+ border: none;
|
|
|
+}
|
|
|
+.eldialog .el-textarea__inner {
|
|
|
+ border: none;
|
|
|
+ resize: none;
|
|
|
+ height: 70px;
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|