Files
UNION_HUTB/target/classes/views/platform/hy/hygl/grxx.html
T
2026-09-09 09:14:28 +08:00

471 lines
16 KiB
HTML

<!--#
layout("/layouts/platform.html"){
#-->
<style>
.is-flex {
display: flex;
}
.is-flex .el-form-item {
width: 50%;
}
#grjl {
height: 200px;
}
.el-table-container {
padding-top: 0px;
padding-left: 5px;
padding-right: 5px;
}
.el-collapse-item__content {
padding-bottom: 0px;
font-size: 13px;
color: #303133;
line-height: 1.769230769230769;
}
.note {
height: 250px;
}
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409EFF;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 120px;
height: 120px;
line-height: 120px;
text-align: center;
}
.avatar {
width: 120px;
height: 120px;
display: block;
}
input[type=file] {
display: none;
}
#zw .el-table__header th {
padding: 0;
height: 150px;
}
el-table__header th {
border: black;
}
#showtb .el-table td div {
font-size: 12px;
}
#showtb .el-form-item__label {
font-size: 12px;
}
#rh .el-col {
border: 1px solid #e5e9f2;
line-height: 40px;
height: 40px;
text-align: center;
}
.tpa {
padding: 10px;
text-align: center;
width: 12%;
background-color: rgb(250, 250, 250);
border: 1px solid rgb(220, 220, 220);
}
.tpb {
padding: 10px;
text-align: center;
color: #a0a9b4;
width: 16%;
border: 1px solid rgb(220, 220, 220);
}
.disabled .el-upload--picture-card {
display: none;
}
.el-upload-list__item {
transition: none !important;
}
.flexbox {
display: flex;
}
.flexbox .el-form-item {
width: 50%;
}
.v-modal {
z-index: 99999 !important;
}
.el-dialog__wrapper {
z-index: 999999 !important;
}
</style>
<div id="app" v-cloak>
<div style="text-align: right" class="pr20 mt25 mb25">
<el-button type="primary" @click="doHandle">确 定</el-button>
</div>
<el-form :model="formData" ref="addForm" style="width: 90%;margin: 0px auto" :rules="formRules" label-width="86px">
<el-divider content-position="left">
<span style="color: rgb(121, 187, 255);font-size: 17px">基本资料</span>
</el-divider>
<el-form-item prop="loginname" label="用&ensp;户&ensp;名">
<el-input readonly v-model="formData.loginname" disabled></el-input>
</el-form-item>
<div class="is-flex">
<el-form-item prop="username" label="姓&emsp;&emsp;名">
<el-input readonly v-model="formData.username" disabled></el-input>
</el-form-item>
<el-form-item prop="sex" label="性&emsp;&emsp;别">
<el-radio v-model="formData.sex" label="男" border size="small"></el-radio>
<el-radio v-model="formData.sex" label="女" border size="small"></el-radio>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="birthday" label="出生日期">
<el-date-picker style="width: 100%" v-model="formData.birthday" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" type="date" placeholder="出生日期"></el-date-picker>
</el-form-item>
<el-form-item prop="birthday" label="出生地点">
<el-input v-model="formData.csdd"></el-input>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item label="兴趣爱好">
<el-input maxlength="255" placeholder="兴趣爱好" v-model="formData.hobby"></el-input>
</el-form-item>
<el-form-item label="婚&emsp;&emsp;否">
<el-radio-group v-model="formData.sfhf">
<el-radio label="已婚" border></el-radio>
<el-radio label="未婚" border></el-radio>
</el-radio-group>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="rsbz" label="人事编制">
<el-select v-model="formData.rsbz" style="width: 100%">
<el-option v-for="i in bzOptions" :label="i" :value="i"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="xl" label="学&emsp;&emsp;历">
<el-select v-model="formData.xl" style="width: 100%;">
<el-option v-for="i in xloptions" :label="i" :value="i"></el-option>
</el-select>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="jg" label="籍&emsp;&emsp;贯">
<el-input v-model="formData.jg"></el-input>
</el-form-item>
<el-form-item prop="gz" label="工&emsp;&emsp;资">
<el-input v-model="formData.gz"></el-input>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="mz" label="民&emsp;&emsp;族">
<el-select placeholder="民族" style="width: 100%" filterable v-model="formData.mz">
<el-option v-for="mz in mzlist" :value="mz.mzmc" :label="mz.mzmc"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="zzmm" label="政治面貌">
<el-input maxlength="100" placeholder="政治面貌"
v-model="formData.zzmm"></el-input>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="zw" label="职&emsp;&emsp;务">
<el-input maxlength="100" placeholder="职务"
v-model="formData.zw"></el-input>
</el-form-item>
<el-form-item prop="zc" label="职&emsp;&emsp;称">
<el-select v-model="formData.zc" style="width: 100%">
<el-option v-for="i in zclist" :label="i" :value="i"></el-option>
</el-select>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="mobile" label="手&ensp;机&ensp;号">
<el-input maxlength="100" placeholder="手机号"
v-model="formData.mobile"></el-input>
</el-form-item>
<el-form-item prop="email" label="邮&emsp;&emsp;箱">
<el-input maxlength="100" placeholder="邮箱"
v-model="formData.email"></el-input>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="unionid" label="所属工会">
<el-input readonly v-model="formData.ghname"></el-input>
</el-form-item>
<el-form-item prop="unitid" label="用户单位">
<el-input readonly v-model="formData.dwname"></el-input>
</el-form-item>
</div>
<el-form-item prop="zzzt" label="在职状态">
<dict-select v-model="formData.zzzt" style="width: 100%" placeholder="请选择在职状态"
code="UserState"></dict-select>
</el-form-item>
<el-form-item label="家庭成员">
<span style="color: red">(已结婚填配偶信息,未结婚填父母信息)</span>
<el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus" size="mini"
@click="formData.jtcy.push({})"> 添加成员
</el-button>
<el-table
:data="formData.jtcy"
border
size="mini"
style="width: 100%">
<el-table-column prop="gx" label="与本人关系" align="center" header-align="center">
<template slot-scope="scope">
<el-input placeholder="请输入与本人关系" maxlength="30" v-model="scope.row.gx" clearable></el-input>
</template>
</el-table-column>
<el-table-column prop="xm" label="姓名" align="center" header-align="center">
<template slot-scope="scope">
<el-input placeholder="请输入姓名" maxlength="100" v-model="scope.row.xm" clearable></el-input>
</template>
</el-table-column>
<el-table-column prop="dw" label="单位" align="center" header-align="center">
<template slot-scope="scope">
<el-input placeholder="请输入单位" maxlength="100" v-model="scope.row.dw" clearable></el-input>
</template>
</el-table-column>
<el-table-column prop="bz" label="备注" align="center" header-align="center">
<template slot-scope="scope">
<el-input placeholder="请输入备注" maxlength="100" v-model="scope.row.bz" clearable></el-input>
</template>
</el-table-column>
<el-table-column label="操作" width="100px" align="center" header-align="center">
<template slot-scope="scope">
<el-button type="danger" icon="el-icon-delete" circle
:disabled="formData.jtcy.length==0"
@click="formData.jtcy.splice(scope.$index,1)"></el-button>
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item prop="grjl" label="个人经历" style="width: 100%">
<span style="color: red">(有工作经历要填写工作经历,无工作经历从本科学历开始)</span>
<div id="grjl" class="grjl"></div>
</el-form-item>
<el-form-item label="照片上传" style="margin-top: 200px">
<el-upload
:action="FILE_UPLOAD_ADDRESS"
list-type="picture-card"
:file-list="imagelist"
:class="{disabled:uploadDisabled}"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove"
limit="1"
:before-upload="beforeAvatarUpload"
:on-success="handleAvatarSuccess">
<i class="el-icon-plus"></i>
<div class="el-upload__tip" slot="tip" style="color: red">*只能上传jpg/png文件,且不超过2MB的一寸电子照片</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible" append-to-body>
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</el-form-item>
<div style="float: right;margin: 20px 0">
<el-button type="primary" @click="doHandle">确 定</el-button>
</div>
</el-form>
</div>
<script>
let E = window.wangEditor
let editor = null
const vue = new Vue({
el: '#app',
data() {
return {
formData: {
/* jtcy:[]*/
},
formRules: {
grjl: [{required: true, message: '请填写经历', trigger: ['blur', 'change']}],
},
mzlist: [],
dwghinfo: {},
umGrjl: null,
zclist: ["教授", "副教授", "讲师", "研究员", "副研究员", "高级工程师", "其他"],
bzOptions: ['事业编制职工(正式职工)', '合同制职工', '人事代理职工', '集体职工', '流动编制职工', '非事业编制职工', '博士后进站人员', '劳务派遣人员', '聘用工(各二级单位聘用)'],
xloptions: ['博士', '硕士', '本科', '专科', '其他'],
imagelist: [],
dialogVisible: false,
dialogImageUrl: "",
}
},
components: {
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.4'),
},
mounted() {
},
created() {
this.getmzlist();
this.getGrxx();
//this.formData=${@shiro.getPrincipal()};
},
methods: {
getGrxx() {
$.post(base + '/platform/hy/grxx/getGrxx').then(res => {
this.formData = res;
if (this.formData.jtcy !== null && this.formData.jtcy !== '') {
this.formData.jtcy = JSON.parse(this.formData.jtcy);
} else {
this.formData.jtcy = [];
}
this.imagelist = []
if (this.formData.imgurl != null && this.formData.imgurl != undefined) {
this.dialogImageUrl = FILE_DOMAIN + this.formData.imgurl
this.imagelist.push({name: "_.jpg", url: this.dialogImageUrl, status: "success"})
}
// this.umGrjl=UM.getEditor('grjl',{initialFrameWidth:'100%'});
// this.umGrjl.setContent(this.formData.grjl);
editor = new E('#grjl')
editor.create()
editor.txt.html(this.formData.grjl)
})
},
getmzlist() {
$.post(base + '/platform/hy/grxx/getmzlist').then(res => {
this.mzlist = res
})
},
doHandle() {
const loading = this.$loading({
lock: true,
text: '数据更新中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.formData.jtcy = JSON.stringify(this.formData.jtcy);
this.formData.imgUrl = this.formData.imgurl;
console.log(this.formData.imgUrl)
$.post(base + '/platform/hy/grxx/updateHyxx', this.formData).then(res => {
loading.close();
this.getGrxx();
this.$message.success('更新成功');
});
},
handleRemove: function (file) {
this.imagelist.splice(0, 1);
if (this.formData.imgurl != "") {
$.post(base + "/platform/hy/sqrh/delImg", {"imgurl": this.formData.imgurl})
this.formData.imgurl = ""
}
},
handlePictureCardPreview: function (file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
handleAvatarSuccess: function (res, file) {
var self = this;
if (res.code == 0) {
const {data: {filepath}} = res
self.formData.imgurl = filepath;
self.$message({
message: res.msg,
type: 'success'
});
} else {
self.$message({
message: res.msg,
type: 'error'
});
}
},
beforeAvatarUpload: function (file) {
var isLt2M = file.size / 1024 / 1024 < 2;
var isJPG = file.type === 'image/jpeg';
var isPng = file.type === 'image/png';
if (!isJPG && !isPng) {
this.$message.error('上传头像图片只能是 JPG和PNG格式!');
}
if (!isLt2M) {
this.$message.error('上传头像图片大小不能超过 2MB!');
}
return (isJPG || isPng) && isLt2M;
},
},
computed: {
uploadDisabled: function () {
return this.imagelist.length > 0
},
},
})
</script>
<!--#
}
#-->