[update 委员信息] 上传个人照片
This commit is contained in:
@@ -13,10 +13,15 @@
|
|||||||
:span="label.span ? label.span : 1"
|
:span="label.span ? label.span : 1"
|
||||||
:class="{'descriptions-item-none': label.type === 'none'}"
|
:class="{'descriptions-item-none': label.type === 'none'}"
|
||||||
:label="label.label">
|
:label="label.label">
|
||||||
<template v-if="!label.type">{{ model[label.valueField] }}</template>
|
<!-- 默认的直接显示 -->
|
||||||
<template v-else-if="label.type === 'img'">
|
<span v-if="!label.type">{{ model[label.valueField] }}</span>
|
||||||
<img :src="getImgUrl(model[label.valueField])" alt="" class="descriptions-item-content-img">
|
<!-- 多个字段数组用函数处理好内容显示 -->
|
||||||
</template>
|
<span v-else-if="label.type === 'arr'">{{ fieldArrToContent(label.split, label.valueField) }}</span>
|
||||||
|
<!-- 图片 -->
|
||||||
|
<div v-else-if="label.type === 'img'" class="descriptions-item-content-img">
|
||||||
|
<img v-if="model[label.valueField]" :src="getImgUrl(model[label.valueField])" alt="">
|
||||||
|
<a-avatar v-else :size="90" icon="user" />
|
||||||
|
</div>
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
</a-descriptions>
|
</a-descriptions>
|
||||||
</a-card>
|
</a-card>
|
||||||
@@ -90,14 +95,14 @@ export default {
|
|||||||
isOpen: true,
|
isOpen: true,
|
||||||
column: 2,
|
column: 2,
|
||||||
labelList: [
|
labelList: [
|
||||||
{label: '毕业院校', valueField: 'graduationInstitution'},
|
{ label: '毕业院校', valueField: 'graduationInstitution' },
|
||||||
{label: '所学专业', valueField: 'majorStudied'},
|
{ label: '所学专业', valueField: 'majorStudied' },
|
||||||
{label: '学历', valueField: 'educationalBackground'},
|
{ label: '学历', valueField: 'educationalBackground' },
|
||||||
{label: '学位', valueField: 'degree'},
|
{ label: '学位', valueField: 'degree' },
|
||||||
{label: '专业技术特长', valueField: 'professionalTechnicalExpertise'},
|
{ label: '专业技术特长', valueField: 'professionalTechnicalExpertise' },
|
||||||
{label: '会何种外语及熟练程度', valueField: 'foreignLanguage'},
|
{ label: '会何种外语及熟练程度', valueField: ['foreignLanguage', 'foreignLanguageProficiencyLevel'], split: ' ', type: 'arr' },
|
||||||
{label: '其他语言及熟练程度', valueField: 'foreignLanguageProficiencyLevel'},
|
{ label: '其他语言及熟练程度', valueField: 'otherLanguagesAndProficiencyLevels' },
|
||||||
{label: '两院院士', valueField: 'isAcademician'},
|
{ label: '两院院士', valueField: 'isAcademician' },
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -129,6 +134,22 @@ export default {
|
|||||||
// 获取图片url
|
// 获取图片url
|
||||||
getImgUrl (id) {
|
getImgUrl (id) {
|
||||||
return getFileAccessHttpUrl(id)
|
return getFileAccessHttpUrl(id)
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 将字段数组转内容
|
||||||
|
* @param split - 分隔符
|
||||||
|
* @param fieldArr - 字段的数组
|
||||||
|
* @return {string} - 返回拼接的内容
|
||||||
|
*/
|
||||||
|
fieldArrToContent (split, fieldArr) {
|
||||||
|
let arr = []
|
||||||
|
fieldArr.forEach(field => {
|
||||||
|
const val = this.model[field]
|
||||||
|
if (val || val === 0) {
|
||||||
|
arr.push(val)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return arr.join(split)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -75,10 +75,18 @@
|
|||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!--操作-->
|
||||||
|
<span slot="action" class="action-span-cell" slot-scope="record">
|
||||||
|
<a v-has="'committeeMemberInfo:uploadPhoto'" @click="uploadPhoto(record)">上传个人头像</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
</a-table>
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
<!-- /table表格区域-->
|
<!-- /table表格区域-->
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|
||||||
|
<!-- 上传图片 -->
|
||||||
|
<upload-photo-modal ref="uploadPhotoModal" @ok="handleUploadPhotoOk"></upload-photo-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -86,9 +94,10 @@
|
|||||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||||
import IconImg from '@/assets/imgs/icon/icon_organizational_manage.png'
|
import IconImg from '@/assets/imgs/icon/icon_organizational_manage.png'
|
||||||
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
import {JeroListMixin} from '@/mixins/JeroListMixin'
|
||||||
|
import UploadPhotoModal from '@views/organizationalManage/committeeMemberInfo/modules/UploadPhotoModal'
|
||||||
export default {
|
export default {
|
||||||
name: 'CommitteeMemberInfoList',
|
name: 'CommitteeMemberInfoList',
|
||||||
components: {PageHeaderTitle},
|
components: {UploadPhotoModal, PageHeaderTitle},
|
||||||
mixins: [JeroListMixin],
|
mixins: [JeroListMixin],
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
@@ -129,14 +138,14 @@ export default {
|
|||||||
align: 'center',
|
align: 'center',
|
||||||
width: 140,
|
width: 140,
|
||||||
dataIndex: 'committeeNumber',
|
dataIndex: 'committeeNumber',
|
||||||
scopedSlots: { customRender: 'detail' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '委员姓名',
|
title: '委员姓名',
|
||||||
align: 'center',
|
align: 'center',
|
||||||
width: 140,
|
width: 140,
|
||||||
dataIndex: 'name',
|
dataIndex: 'name',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'detail' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '性别',
|
title: '性别',
|
||||||
@@ -173,6 +182,13 @@ export default {
|
|||||||
dataIndex: 'appointmentLetterNumber',
|
dataIndex: 'appointmentLetterNumber',
|
||||||
scopedSlots: { customRender: 'text' }
|
scopedSlots: { customRender: 'text' }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: '',
|
||||||
|
align: 'center',
|
||||||
|
width: 100,
|
||||||
|
scopedSlots: { customRender: 'action' }
|
||||||
|
},
|
||||||
],
|
],
|
||||||
url: {
|
url: {
|
||||||
list: '/PayCommitteeMemberInfo/page'
|
list: '/PayCommitteeMemberInfo/page'
|
||||||
@@ -193,6 +209,19 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
* 上传个人头像
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
uploadPhoto (record) {
|
||||||
|
this.$refs.uploadPhotoModal.edit(record)
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 上传个人头像完成
|
||||||
|
*/
|
||||||
|
handleUploadPhotoOk () {
|
||||||
|
this.loadData()
|
||||||
|
},
|
||||||
// 下拉框的搜索
|
// 下拉框的搜索
|
||||||
filterOption(input, option) {
|
filterOption(input, option) {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
<template>
|
||||||
|
<j-modal
|
||||||
|
:title="title"
|
||||||
|
:width="width"
|
||||||
|
:visible="visible"
|
||||||
|
:confirmLoading="confirmLoading"
|
||||||
|
switchFullscreen
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
cancelText="关闭">
|
||||||
|
<a-spin :spinning="confirmLoading">
|
||||||
|
<a-form :form="form">
|
||||||
|
<a-form-item label="个人照片" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<j-image-upload v-decorator="['photo', validatorRules.photo]" :return-id="true"></j-image-upload>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-spin>
|
||||||
|
</j-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import JImageUpload from '@comp/jero/JImageUpload'
|
||||||
|
import pick from 'lodash.pick'
|
||||||
|
import {postAction} from '@api/manage'
|
||||||
|
export default {
|
||||||
|
name: 'UploadPhotoModal',
|
||||||
|
components: {JImageUpload},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
form: this.$form.createForm(this),
|
||||||
|
title: '操作',
|
||||||
|
width: 600,
|
||||||
|
visible: false,
|
||||||
|
model: {},
|
||||||
|
labelCol: {
|
||||||
|
xs: {span: 24},
|
||||||
|
sm: {span: 5}
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: {span: 24},
|
||||||
|
sm: {span: 10}
|
||||||
|
},
|
||||||
|
confirmLoading: false,
|
||||||
|
validatorRules: {
|
||||||
|
photo: {
|
||||||
|
rules: [{required: true, message: '请上传个人照片'}],
|
||||||
|
validateTrigger: 'change'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
url: {
|
||||||
|
edit: '/PayCommitteeMemberInfo/uploadPhoto'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
add() {
|
||||||
|
this.edit({})
|
||||||
|
},
|
||||||
|
edit(record) {
|
||||||
|
this.model = Object.assign({}, record)
|
||||||
|
this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.form.setFieldsValue(pick(this.model, 'photo'))
|
||||||
|
})
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.form.resetFields()
|
||||||
|
this.$emit('close')
|
||||||
|
this.visible = false
|
||||||
|
},
|
||||||
|
handleOk() {
|
||||||
|
const that = this
|
||||||
|
// 触发表单验证
|
||||||
|
this.form.validateFields((err, values) => {
|
||||||
|
if (!err) {
|
||||||
|
that.confirmLoading = true
|
||||||
|
const formData = Object.assign({ id: this.model.id }, values)
|
||||||
|
console.log('表单提交数据', formData)
|
||||||
|
postAction(this.url.edit, formData).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message)
|
||||||
|
that.$emit('ok')
|
||||||
|
that.close()
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
that.confirmLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel() {
|
||||||
|
this.close()
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user