| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- <template>
- <div class="sign-body">
- <span class="sign-title-2"> 批量开通申请表</span>
- <div class="sign-content-box">
- <el-row :gutter="24" align="center" >
- <el-col :span="9">
- <span style="color: #909399;font-size: 1rem;">信用统一代码:</span>
- <el-button type="text" @click="editCompany" > {{info.companyNo}} </el-button>
- </el-col>
- <el-col :span="9">
- <span style="color: #909399;font-size: 1rem;">邮件地址:</span>
- <el-button type="text" @click="editCompany" >{{info.email}}</el-button>
- </el-col>
- <el-col :span="6">
- <el-button type="primary" class="el-icon-plus" @click="addNewUser">
- 添加用户
- </el-button>
- </el-col>
- </el-row>
- <el-table v-loading="listLoading" :data="list.slice( page*size-size, page*size)" border fit highlight-current-row>
- <el-table-column label="姓名" align="center" prop="nickname" />
- <el-table-column label="手机号" align="center" prop="phone" />
- <el-table-column label="最高学历" align="center" prop="education" />
- <el-table-column label="岗位" align="center" prop="courseName" />
- <el-table-column label="年度" align="center" prop="nd" />
- <el-table-column label="证书编号" align="center" prop="rzCode" />
- <el-table-column label="操作" fixed="right" align="center" width="120">
- <template slot-scope="{row}">
- <el-button @click="editRow( row )" type="text" size="small">修改</el-button>
- <el-button @click="deleteRow( row )" type="text" size="small" style="color: brown;">删除</el-button>
- </template>
- </el-table-column>
- </el-table>
- </el-table>
- <el-pagination @current-change="handleCurrentChange" :current-page="page" :page-size="size"
- layout="total, prev,pager, next" :total="list.length">
- </el-pagination>
- <el-dialog title="修改企业信息" center :visible.sync="updateCompanyDialog" width="500px">
- <el-form :model="info" :rules="rules2" label-width="120px" ref="updateCompanyDialog" >
- <el-form-item label="信用统一代码" prop="companyNo" >
- <el-input v-model="info.companyNo" type="text" style="width: 250px;" />
- </el-form-item>
- <el-form-item label="邮件地址" prop="email" >
- <el-input v-model="info.email" type="text" style="width: 250px;" />
- </el-form-item>
- </el-form>
- <div class="dialog-footer" slot="footer">
- <el-button @click="updateCompanyDialog = false">取 消</el-button>
- <el-button @click="doEditCompany()" type="primary">确 定</el-button>
- </div>
- </el-dialog>
- </div>
- <el-dialog title="选择证书" center :visible.sync="selectRzCodeDialog" width="80%">
- <el-table v-loading="listLoading" :data="recodeList" border fit highlight-current-row>
- <el-table-column label="证书编号" align="center" prop="certificateNum" />
- <el-table-column label="岗位类型" align="center" prop="certificateType" />
- <el-table-column label="岗位名称" align="center" prop="positionName" />
- <el-table-column label="发证机关" align="center" prop="certificateOrgan" />
- <el-table-column label="证书状态" align="center" prop="certificateStatus" />
- <el-table-column label="有效期" fixed="right" align="center" >
- <template slot-scope="{row}">
- <span>{{row.startTime}}-{{row.endTime}}</span>
- </template>
- </el-table-column>
- <el-table-column label="操作" fixed="right" align="center">
- <template slot-scope="{row}">
- <el-button @click="selectRzCode( row )" type="text" size="small">选择</el-button>
- </template>
- </el-table-column>
- </el-table>
- </el-table>
- </el-dialog>
- <el-dialog title="添加用户" center :visible.sync="addUserDialog" width="520px" :close-on-click-modal="false">
- <el-form :model="form" :rules="rules" label-width="120px" ref="addUserDialog" >
- <el-form-item label="用户名字" prop="nickname">
- <el-input v-model="form.nickname" type="text" style="width: 300px;" name="nickname" autocomplete="on" />
- </el-form-item>
- <el-form-item label="身份证号" prop="cardId" >
- <el-input v-model="form.cardId" type="text" style="width: 300px;" name="cardId" autocomplete="on"/>
- </el-form-item>
- <el-form-item label="证书编号" prop="rzCode" >
- <el-input v-model="form.rzCode" type="text" style="width: 230px;" />
- <el-button style="width: 70px;" type="primary" @click="reloadRzCode" :disabled="form.cardId.length!=18 || !form.nickname" >查询</el-button>
- </el-form-item>
- <el-form-item label="最高学历" prop="education" >
- <el-select v-model="form.education" style="width: 300px;" >
- <el-option v-for="item in educationList" :value="item" :label="item" :key="item"/>
- </el-select>
- </el-form-item>
- <el-form-item label="手机号码" prop="phone" >
- <el-input v-model="form.phone" type="text" style="width: 300px;" name="phone" autocomplete="on" />
- </el-form-item>
- <el-form-item label="选择岗位" prop="courseId">
- <el-select v-model="form.courseId" style="width: 300px;" >
- <el-option :value="0" label="选择课程" />
- <el-option v-for="item in courseList" :value="item.courseId" :label="item.courseName+'|'+item.nd" :key="item.id"/>
- </el-select>
- </el-form-item>
- </el-form>
- <div class="dialog-footer" slot="footer">
- <el-button @click="closeAddUserDialog()">取 消</el-button>
- <el-button @click="doAddUser()" type="primary">确 定</el-button>
- </div>
- </el-dialog>
- </div>
- </div>
- </template>
- <script>
- import {
- httpServer
- } from "@/components/httpServer/httpServer.js";
- import { MessageBox } from "element-ui";
- const defaultForm = {
- cardId:'',
- nickname:'',
- email:'',
- phone:'',
- courseId: 0,
- education:'',
- rzCode: ''
- };
- export default {
- data() {
- return {
- param: {
- taskId: 0,
- secret: ''
- },
- info:{
- company:'',
- email:'',
- companyNo:''
- },
- educationList: window.baseConfig.educationList,
- listLoading: false,
- addUserDialog: false,
- updateCompanyDialog: false,
- page: 1,
- size: 10,
- list: [],
- courseList: [],
- selectRzCodeDialog: false,
- recodeList:[],
- form: Object.assign({}, defaultForm),
- rules: {
- nickname: [{required: true, message: "请输入名字", trigger: "blur", min: 2 }],
- education: [{ required: true, message: "请选择学历", trigger: "blur"}],
- cardId: [
- { required: true, message: '请输入身份证号码', trigger: 'blur' },
- {
- validator: (rule, value, callback) => {
- if (!value) {
- return callback(new Error('请输入身份证号码'));
- }
- const cleanValue = value.replace(/[\s()]/g, '').toUpperCase();
- const mainlandReg = /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/;
- const hkReg = /^(?:C(?:\d{8}|[A-HJ-NP-Z]\d{7})|[HM](?:\d{10}|\d{8}))$/;
- if (mainlandReg.test(cleanValue) || hkReg.test(cleanValue)) {
- callback();
- } else {
- callback(new Error('请输入正确的大陆身份证(18位)或香港身份证(如 A1234567)'));
- }
- },
- trigger: 'blur'
- }
- ],
- phone: [ { required: true, message: "请输入手机号", trigger: "blur", min: 11, max:11 }],
- courseId: [ { required: true, message: "请选择岗位", trigger: "blur" }]
- },
- rules2: {
- companyNo: [{required: true, message: "请输入信用统一代码", trigger: "blur", min: 2 }],
- email: [{ required: true, message: "请输入邮箱地址", trigger: "blur", min: 6 }],
- }
- }
- },
- methods: {
- gotoDetail() {
- let param = this.param;
- httpServer("User.GetOpenCourseList", param).then(res => {
- if (res.code != 200) return;
- this.info = res.data.info||{}
- this.list = res.data.list || []
- this.courseList = res.data.courseList||[]
- })
- },
- reloadRzCode(){
- let {nickname,cardId} = this.form;
- if( !nickname || cardId.length <15 || cardId.length> 18){
- this.$message({message:'请输入大陆身份证(15-18位)'})
- return
- }
- httpServer("User.ReLoadRzCode", {nickname,cardId}).then( res=>{
- if( res.code != 200) return;
- this.recodeList = res.data;
- this.selectRzCodeDialog = true;
- })
- },
- closeAddUserDialog(){
- this.addUserDialog = false;
- this.$refs["ddUserDialog"] && this.$refs["ddUserDialog"].reseFields();
- },
- selectRzCode(row){
- this.form.rzCode = row.certificateNum||''
- this.selectRzCodeDialog = false;
- },
- editCompany(){
- this.updateCompanyDialog = true
- },
- doAddUser(){
- let cardId = this.form.cardId;
- this.$refs["addUserDialog"].validate((valid) => {
- if (!valid) return;
- let param = Object.assign({}, this.form, this.param);
- httpServer("User.AddOpenCourseInfo", param).then( res=>{
- if (res.code != 200) return;
- this.addUserDialog = false;
- this.$message.successMsg("申请完成", 3)
- this.gotoDetail();
- })
- })
- },
- doEditCompany(){
- this.$refs["updateCompanyDialog"].validate((valid) => {
- if (!valid) return;
- let param = Object.assign({}, this.info, this.param);
- httpServer("User.UpdateOpenCourseTask", param).then( res=>{
- if (res.code != 200) return;
- this.updateCompanyDialog = false;
- this.$message.successMsg("更新成功", 2)
- })
- })
- },
- doDeleteUser(row, cb){
- let param = Object.assign({}, {id:row.id}, this.param);
- httpServer("User.DelOpenCourseInfo", param).then( res=>{
- if (res.code != 200) return;
- this.$message.successMsg("删除完成", 2)
- cb&&cb();
- this.gotoDetail();
- })
- },
- editRow(row){
- this.form = Object.assign(this.form, row);
- this.addUserDialog = true
- },
- deleteRow(row){
- let that = this
- MessageBox({
- title: "删除提醒",
- message: "删除动作不可恢复,请确认是否删除",
- showCancelButton: true,
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- beforeClose: (action, instance, done) => {
- if (action === "confirm") {
- instance.confirmButtonLoading = true;
- instance.confirmButtonText = '提交中...';
- that.doDeleteUser(row, done);
- done();
- instance.confirmButtonLoading = false;
- that.addUserDialog = false;
- } else{
- done();
- }
- }
- })
- },
- addNewUser(){
- this.form = Object.assign(this.form, defaultForm);
- if(!this.info.email){
- this.$message.successMsg("请先补充企业邮箱地址", 3)
- return;
- }
- this.addUserDialog = true
- },
- handleCurrentChange: function(page) {
- this.page = page
- }
- },
- created() {
- this.param.taskId = +this.$route.query.id || '';
- this.param.secret = this.$route.query.secret || '';
- if (this.param.taskId && this.param.secret) {
- this.gotoDetail();
- }
- }
- }
- </script>
- <style>
- @import url("./index.css");
- </style>
|