Commit 38158cf8 by taowenzhong

公开招聘详情样式修改

parent de57b1f9
...@@ -332,6 +332,15 @@ export function getStudent(id, examId) { ...@@ -332,6 +332,15 @@ export function getStudent(id, examId) {
// data: data // data: data
}) })
} }
// 查询公开招聘报名信息详细
export function getEnrollDetail(id) {
return request({
url: '/recruitExam/get-check-detail/' + id,
method: 'get',
})
}
// 考场分配查询列表 // 考场分配查询列表
export function addressList(id, query) { export function addressList(id, query) {
return request({ return request({
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
fit="fill" fit="fill"
:key="Math.random()" :key="Math.random()"
:class="{'custom-avatar': isUser, 'custom-image': !isUser}" :class="{'custom-avatar': isUser, 'custom-image': !isUser}"
:style="selfStyle ? selfStyle : ''"
:src="imageUrl" :src="imageUrl"
:preview-src-list="[imageUrl]"> :preview-src-list="[imageUrl]">
<div slot="error" class="image-slot" style="height: 36px; line-height: 36px;"> <div slot="error" class="image-slot" style="height: 36px; line-height: 36px;">
...@@ -34,6 +35,10 @@ export default { ...@@ -34,6 +35,10 @@ export default {
isUser: { isUser: {
type: Boolean, type: Boolean,
default: true default: true
},
selfStyle: {
type: [Object],
default: () => { return {} }
} }
}, },
data() { data() {
......
...@@ -54,6 +54,7 @@ import DictData from "@/components/DictData"; ...@@ -54,6 +54,7 @@ import DictData from "@/components/DictData";
import ListImage from "@/components/ListImage"; import ListImage from "@/components/ListImage";
// 扩展组件Pagination // 扩展组件Pagination
import ExPagination from "@/components/ExPagination"; import ExPagination from "@/components/ExPagination";
import '@/utils/filters/index'
// 导出组件 // 导出组件
import ExportTable from "@/components/ExportTable"; import ExportTable from "@/components/ExportTable";
import VueDND from "awe-dnd"; import VueDND from "awe-dnd";
......
/**
*格式化时间
*yyyy-MM-dd hh:mm:ss
*/
const REGEX = /(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})/
export function formatDate(val, format) {
if (val) {
/**
* @instructions 如果不是时间戳格式,且含有字符 '-' 则将 '-' 替换成 '/' && 删除小数点及后面的数字
* @reason 将 '-' 替换成 '/' && 删除小数点及后面的数字 的原因是safari浏览器仅支持 '/' 隔开的时间格式
*/
if (val.toString().indexOf('-') > 0) {
val = val.replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '').replace(/(-)/g, '/') // 将 '-' 替换成 '/'
val = val.slice(0, val.indexOf('.')) // 删除小数点及后面的数字
}
const date = new Date(val)
date.setHours(date.getHours() + 8)
// eslint-disable-next-line no-unused-vars
const [whole, yy, MM, dd, hh, mm, ss] = date.toISOString().match(REGEX)
if (format) {
return format
.replace('yyyy', yy)
.replace('yy', yy.slice(2))
.replace('MM', MM)
.replace('dd', dd)
.replace('hh', hh)
.replace('mm', mm)
.replace('ss', ss)
} else {
return [yy, MM, dd].join('-') + ' ' + [hh, mm, ss].join(':')
}
} else {
return '--'
}
}
/*
* 隐藏用户手机号中间四位
*/
export function hidePhone(phone) {
if (phone !== null && phone !== undefined) {
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
}
}
export function hideIdCard(idCard) {
if (idCard !== null && idCard !== undefined) {
const pat = /(\d{0})\d*(\d{4})/
return idCard.replace(pat, '$1***********$2')
} else {
return ''
}
}
export function hideName(str) {
if (str !== null && str !== undefined) {
if (str.length <= 3) {
return '*' + str.substring(1, str.length)
} else if (str.length > 3 && str.length <= 6) {
return '**' + str.substring(2, str.length)
} else if (str.length > 6) {
return str.substring(0, 2) + '****' + str.substring(6, str.length)
}
} else {
return ''
}
}
// 货币过滤器
export function moneyFormat(val, str) {
// str 规定 货币类型
if (!val) return '0.00'
let value = parseFloat(val).toFixed(2)// 提前保留两位小数
const intPart = Number(value) - Number(value) % 1
const intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断 ???
let floatPart = '.00' // 预定义小数部分
value = value.toString()// 将number类型转为字符串类型,方便操作
const value2Array = value.split('.')
if (value2Array.length === 2) { // =2表示数据有小数位
floatPart = value2Array[1].toString() // 拿到小数部分
if (floatPart.length === 1) { // 补0,实际上用不着
return str + intPartFormat + '.' + floatPart + '0'
} else {
return str + intPartFormat + '.' + floatPart
}
} else {
return str + intPartFormat + floatPart
}
}
// 通过id 获取对应name
export function getLabel(value, key, labelKey, arr) {
if (arr.length > 0) {
const label = arr.find(item => {
return item[key].toString() === value.toString()
})
return label[labelKey]
}
}
export function moneyToBig(money) {
// 汉字的数字
var cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
// 基本单位
var cnIntRadice = ['', '拾', '佰', '仟']
// 对应整数部分扩展单位
var cnIntUnits = ['', '万', '亿', '兆']
// 对应小数部分单位
var cnDecUnits = ['角', '分', '毫', '厘']
// 整数金额时后面跟的字符
var cnInteger = '整'
// 整型完以后的单位
var cnIntLast = '元'
// 最大处理的数字
var maxNum = 999999999999999.9999
// 金额整数部分
var integerNum
// 金额小数部分
var decimalNum
// 输出的中文金额字符串
var chineseStr = ''
// 分离金额后用的数组,预定义
var parts
// 传入的参数为空情况
if (money === '') {
return ''
}
money = parseFloat(money)
if (money >= maxNum) {
return ''
}
// 传入的参数为0情况
if (money === 0) {
chineseStr = cnNums[0] + cnIntLast + cnInteger
return chineseStr
}
// 转为字符串
money = money.toString()
// indexOf 检测某字符在字符串中首次出现的位置 返回索引值(从0 开始) -1 代表无
if (money.indexOf('.') === -1) {
integerNum = money
decimalNum = ''
} else {
parts = money.split('.')
integerNum = parts[0]
decimalNum = parts[1].substr(0, 4)
}
// 转换整数部分
if (parseInt(integerNum, 10) > 0) {
let zeroCount = 0
const IntLen = integerNum.length
for (let i = 0; i < IntLen; i++) {
const n = integerNum.substr(i, 1)
const p = IntLen - i - 1
const q = p / 4
const m = p % 4
if (n === '0') {
zeroCount++
} else {
if (zeroCount > 0) {
chineseStr += cnNums[0]
}
zeroCount = 0
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]
}
if (m === 0 && zeroCount < 4) {
chineseStr += cnIntUnits[q]
}
}
// 最后+ 元
chineseStr += cnIntLast
}
// 转换小数部分
if (decimalNum !== '') {
const decLen = decimalNum.length
for (let i = 0; i < decLen; i++) {
const n = decimalNum.substr(i, 1)
if (n !== '0') {
chineseStr += cnNums[Number(n)] + cnDecUnits[i]
}
}
}
if (chineseStr === '') {
chineseStr += cnNums[0] + cnIntLast + cnInteger
} else if (decimalNum === '') {
chineseStr += cnInteger
}
return chineseStr
}
export function getSimpleText(html, str) {
const re1 = new RegExp('<.+?>', 'g') // 匹配html标签的正则表达式,"g"是搜索匹配多个符合的内容
const arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"', 'ldquo': '“', 'mdash': '—', 'rdquo': '”' }
const result = html.replace(re1, '').replace(/&(lt|gt|nbsp|amp|quot|ldquo|mdash|rdquo);/ig, function(all, t) {
return arrEntities[t] || str
})
return result || str
}
import Vue from 'vue'
import * as filter from './filter'
import { formatDate, getLabel, getSimpleText, hideIdCard, hideName, hidePhone, moneyToBig } from './filter'
Object.keys(filter).forEach(k => Vue.filter(k, filter[k]))
Vue.filter('format', formatDate)
Vue.filter('getLabel', getLabel)
Vue.filter('hidePhone', hidePhone)
Vue.filter('hideName', hideName)
Vue.filter('hideIdCard', hideIdCard)
Vue.filter('moneyToBig', moneyToBig)
Vue.filter('getSimpleText', getSimpleText)
Vue.prototype.$formatDate = Vue.filter('formatDate')
Vue.prototype.$hidePhone = Vue.filter('hidePhone')
Vue.prototype.$label = Vue.filter('getLabel')
...@@ -101,26 +101,6 @@ ...@@ -101,26 +101,6 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="测试项目" align="center" prop="project" min-width="100" max-width="120"/> <el-table-column label="测试项目" align="center" prop="project" min-width="100" max-width="120"/>
<el-table-column label="联系方式1" prop="eduSchoolName" width="120" align="center"/>
<el-table-column label="联系方式2" prop="eduProject" align="center" width="120"/>
<el-table-column label="民族" prop="eduProject" width="100"/>
<el-table-column label="政治面貌" prop="eduProject" width="100"/>
<el-table-column label="出生日期" prop="eduProject" width="100"/>
<el-table-column label="婚姻状况" prop="eduProject" width="100"/>
<el-table-column label="户籍所在地" prop="eduProject" width="100"/>
<el-table-column label="生源地" prop="eduProject" width="100"/>
<el-table-column label="考生身份" prop="eduProject" width="100"/>
<el-table-column label="参加工作时间" prop="eduProject" width="100"/>
<el-table-column label="现工作单位职务" prop="eduProject" width="120"/>
<el-table-column label="报考学历是否全日制" prop="eduProject" width="140"/>
<el-table-column label="学历" prop="eduProject" width="100"/>
<el-table-column label="学位" prop="eduProject" width="100"/>
<el-table-column label="毕业院校" prop="eduProject" width="100"/>
<el-table-column label="所学专业" prop="eduProject" width="100"/>
<el-table-column label="最后毕业时间" prop="eduProject" width="100"/>
<el-table-column label="个人简历" prop="eduProject" width="100"/>
<el-table-column label="家庭成员情况" prop="eduProject" width="100"/>
<el-table-column label="资料" prop="eduProject" width="100"/>
<el-table-column <el-table-column
label="操作" align="center" label="操作" align="center"
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
...@@ -155,89 +135,63 @@ ...@@ -155,89 +135,63 @@
<!-- 添加或修改【请填写功能名称】对话框 --> <!-- 添加或修改【请填写功能名称】对话框 -->
<el-dialog :visible.sync="open" width="1200px" append-to-body @close="cancel"> <el-dialog :visible.sync="open" width="1200px" append-to-body @close="cancel">
<div style="display:flex ;width: 950px;"> <el-descriptions title="报名信息" border>
<div> <el-descriptions-item label="照片" span="3">
<!-- 个人信息 --> <ListImage
<div style="display:flex ;width:650px;margin: 18px 0 0 0;"> :image-url="isEmptyAvatar(form.photo, form.sex)"
<div style="width:320px"> :self-style="{ width: '150px', height: 'auto'}"
<div style="font-size: 18px; text-align: center">学生报名信息</div> ></ListImage>
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> </el-descriptions-item>
<el-form-item label="姓名" prop="studentName"> <el-descriptions-item label="姓名">{{ form.studentName }}</el-descriptions-item>
<el-input v-model="form.studentName" placeholder="请输入学生姓名" :readOnly="isHandle"/> <el-descriptions-item label="身份证号码">{{ form.idCard }}</el-descriptions-item>
</el-form-item>
<el-form-item label="身份证号" prop="idCard"> <el-descriptions-item label="性别">
<el-input v-model="form.idCard" placeholder="请输入身份证号" @change="searchInfo" readOnly/> <dict-tag :options="dict.type.sys_user_sex" :value="form.sex"/>
</el-form-item> </el-descriptions-item>
<el-form-item label="测试项目" prop="project" v-show="isHandle"> <el-descriptions-item label="测试项目">{{ form.project }}</el-descriptions-item>
<el-input v-model="form.project" placeholder="请选择测试项目" readOnly/> <el-descriptions-item label="联系方式1">{{ form.telephone1 }}</el-descriptions-item>
</el-form-item> <el-descriptions-item label="联系方式2">{{ form.telephone2 }}</el-descriptions-item>
<el-form-item label="性别:" prop="sex"> <el-descriptions-item label="民族">{{ form.mz }}</el-descriptions-item>
<el-select v-model="form.sex" placeholder="请选择学生性别" :disabled="isHandle"> <el-descriptions-item label="政治面貌">{{ form.zzmm }}</el-descriptions-item>
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label" <el-descriptions-item label="出生日期">{{ form.csrq }}</el-descriptions-item>
:value="dict.value"> <el-descriptions-item label="婚姻状况">{{ form.hyzk }}</el-descriptions-item>
{{ dict.label }} <el-descriptions-item label="户籍所在地">{{ form.hjszd }}</el-descriptions-item>
</el-option> <el-descriptions-item label="生源地">{{ form.syd }}</el-descriptions-item>
</el-select> <el-descriptions-item label="考生身份">{{ form.kssf }}</el-descriptions-item>
</el-form-item> <el-descriptions-item label="参加工作时间">{{ form.cjgzsj | format('yyyy-MM-dd') }}</el-descriptions-item>
<el-form-item label="联系方式1" prop="telephone1"> <el-descriptions-item label="现工作单位职务">{{ form.xgzdwzw }}</el-descriptions-item>
<el-input v-model="form.telephone1" placeholder="请输入联系方式" :readOnly="isHandle"/> <el-descriptions-item label="学历是否全日制">{{ form.bkxlsfqrz }}</el-descriptions-item>
</el-form-item> <el-descriptions-item label="学历">{{ form.xl }}</el-descriptions-item>
</el-form> <el-descriptions-item label="学位">{{ form.xw }}</el-descriptions-item>
</div> <el-descriptions-item label="毕业院校">{{ form.byxx }}</el-descriptions-item>
<!-- 照片 --> <el-descriptions-item label="所学专业">{{ form.sxzz }}</el-descriptions-item>
<div style="width:320px;padding: 0 0 0 20px;"> <el-descriptions-item label="最后毕业时间">{{ form.zhbysj | format('yyyy-MM-dd') }}</el-descriptions-item>
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-descriptions-item label="个人简历" :span="3">
<el-form-item> <el-table :data="form.resumeData" border stripe>
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*" <el-table-column label="起止年月">
:disabled="isHandle" :show-file-list="false" :on-success="handleAvatarSuccess" <template slot-scope="scope">{{ scope.row.ksny }} - {{ scope.row.jsny }}</template>
:before-upload="beforeAvatarUpload" :http-request="uploadImage"> </el-table-column>
<img v-if="form.photo" :src="baseUrl + form.photo" class="avatar" alt=""/> <el-table-column label="所在单位或学校" prop="szdwxx"/>
<i v-else class="el-icon-plus avatar-uploader-icon"></i> <el-table-column label="职务专业" prop="zwzy"/>
</el-upload> </el-table>
<div slot="error"> </el-descriptions-item>
<img :src="isEmptyAvatar(form.photo, form.sex)" <el-descriptions-item label="家庭成员情况" :span="3">
style="width: 178px; height: 178px; border-radius: 50%" alt=""> <el-table :data="form.remeberData" border stripe>
</div> <el-table-column label="称谓" prop="cw"/>
</el-form-item> <el-table-column label="姓名" prop="xm"/>
<el-form-item label="联系方式2" prop="telephone2"> <el-table-column label="工作单位及职务" prop="gzdwjzw"/>
<el-input v-model="form.telephone2" placeholder="请输入联系方式" :readOnly="isHandle"/> </el-table>
</el-form-item> </el-descriptions-item>
</el-form> <el-descriptions-item label="资料" :span="3">
</div> <template v-for="item in form.fileList">
</div> <ListImage
<div slot="footer" v-if="!isHandle" style="text-align: center;"> :image-url="baseUrl + item.fjlj"
<el-button type="primary" @click="submitForm">保 存</el-button> :is-user="false"
<el-button @click="cancel">取 消</el-button> :self-style="{ width: '150px', height: 'auto'}"
</div> ></ListImage>
<div slot="footer" v-if="isHandle" class="dialog-footer" </template>
style="z-index: 10;top: 0;position: relative;left: 0;"> </el-descriptions-item>
<el-button @click="cancel" style="pointer-events: auto;">取 消</el-button> </el-descriptions>
</div>
</div>
<!-- 教育局信息 -->
<div style="width:350px;padding:0 0 0 20px;">
<div style="font-size: 18px;text-align: center">教育局信息</div>
<el-form ref="form" :model="form" :rules="rules" label-width="80px" style="margin:18px 0 0 0 ;">
<el-form-item label="姓名" prop="eduStudentName">
<el-input v-model="form.eduStudentName" placeholder="请输入学生姓名"/>
</el-form-item>
<el-form-item label="身份证号" prop="eduIdCard">
<el-input v-model="form.eduIdCard" readOnly placeholder="请输入身份证号"/>
</el-form-item>
<el-form-item label="测试项目" prop="eduProject" v-show="isHandle">
<el-input v-model="form.eduProject" placeholder="请选择测试项目" readOnly/>
</el-form-item>
<el-form-item label="性别:" prop="eduSex">
<el-select v-model="form.eduSex" placeholder="请选择学生性别" :disabled="isHandle">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value">
{{ dict.label }}
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
</div>
</el-dialog> </el-dialog>
<!--导入文件对话框 --> <!--导入文件对话框 -->
<el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel"> <el-dialog :title="title" :visible.sync="uploadOpen" width="520px" append-to-body inline @close="cancel">
...@@ -345,6 +299,7 @@ import { ...@@ -345,6 +299,7 @@ import {
} from "@/api/smartSchool/openRecruitment"; } from "@/api/smartSchool/openRecruitment";
import {getToken} from "@/utils/auth"; import {getToken} from "@/utils/auth";
import {Gender, Nations} from "@/enums/common"; import {Gender, Nations} from "@/enums/common";
import {getEnrollDetail} from "../../../../../api/smartSchool/openRecruitment";
export default { export default {
name: "Relation", name: "Relation",
...@@ -618,7 +573,6 @@ export default { ...@@ -618,7 +573,6 @@ export default {
// this.$modal.msgSuccess(res.msg); // this.$modal.msgSuccess(res.msg);
msg = res.msg msg = res.msg
}); });
;
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + msg + '</div>', '退回修改结果', {dangerouslyUseHTMLString: true}) this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + msg + '</div>', '退回修改结果', {dangerouslyUseHTMLString: true})
...@@ -636,7 +590,6 @@ export default { ...@@ -636,7 +590,6 @@ export default {
// this.getList(); // this.getList();
msg = res.msg msg = res.msg
}); });
;
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + msg + '</div>', '驳回结果', {dangerouslyUseHTMLString: true}) this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + msg + '</div>', '驳回结果', {dangerouslyUseHTMLString: true})
...@@ -756,15 +709,11 @@ export default { ...@@ -756,15 +709,11 @@ export default {
const id = row.studentId const id = row.studentId
getStudent(id, this.examId).then(response => { getStudent(id, this.examId).then(response => {
this.form = response.data; this.form = response.data;
this.imageUrl = this.isEmptyAvatar(this.form.photo, this.form.sex);
this.open = true; this.open = true;
// this.isFullbg = "fullbg"
this.title = "查看"; this.title = "查看";
this.form.eduStudentName = row.eduStudentName this.form.eduStudentName = row.eduStudentName
this.form.idCard = row.infoIdCard this.form.idCard = row.infoIdCard
this.form.eduIdCard = row.eduIdCard this.form.eduIdCard = row.eduIdCard
this.form.eduStudentNumber = row.eduStudentNumber
this.form.eduSchoolName = row.eduSchoolName
this.form.eduProject = row.eduProject this.form.eduProject = row.eduProject
this.form.eduSex = row.eduSex this.form.eduSex = row.eduSex
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment