Commit 0d39c453 authored by 徐俊's avatar 徐俊

xujun

parent 459b77d9
......@@ -33,14 +33,21 @@
</template>
</a-table>
<a-pagination v-if="pagination.total > 0" :total="pagination.total" show-size-changer show-quick-jumper v-model="pagination.pageIndex" :page-size="pagination.pageSize" :page-size-options="pagination.pageSizeOptions" @showSizeChange="showSizeChange" @change="change" :showTotal="() => `共 ${pagination.total} 条`" />
<a-modal v-model="visibleEdit" v-if="visibleEdit" title="人才申报创建/修改" width="94%" :footer="null" :dialog-style="{ top: '8%' }" destroyOnClose :maskClosable="false">
<talent-create v-model="id" @close="closeWindow"></talent-create>
</a-modal>
</div>
</template>
<script>
import { isEmptyParams, filterExportExcelData, tableColumnsName } from "@/views/utils/common"
import talentCreate from "@/views/report/talent/components/talentCreate"
export default {
name: "reportTalent",
components: {
talentCreate
},
data() {
return {
form: this.$form.createForm(this, { name: 'advanced_search' }),
......@@ -73,6 +80,8 @@ export default {
isButten: true,//false
display: true,
loading: false,
visibleView: false,
visibleEdit: false,
};
},
created () {
......@@ -128,7 +137,21 @@ export default {
this.getListByPage()
},
ApplyTalent () {
this.id = null
this.visibleEdit = true
},
closeWindow (value) {
if (value === 'submit') {
this.visibleEdit = false
this.getListByPage()
} else if (value === 'save') {
this.getListByPage()
}
else if (value === 'error') {
this.id = null
this.visibleEdit = false
this.visibleView = false
}
},
exportData() {
......
......@@ -2,6 +2,328 @@
<div>
<a-form-model ref="form" :model="formData" :rules="rules" style="border-top: 0px" class="from-table font-line-space">
<div v-if="stepsArray[0].showStatus">
<a-row>
<a-col :span="24" style="border-top: 0px;text-align: center;">
<div class="main-title">
<span>申报人基本情况</span>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>身份证号</div>
</div>
</a-col>
<a-col :span="21">
<div class="special-middle">
<div>
<a-form-model-item prop="address">
<a-input v-model="formData.certId" :maxLength="18" style="width: 200px;" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>姓名</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="personName">
<a-input placeholder="姓名(限10字)" v-model="formData.personName" :maxLength="10" style="width:80%" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>性别</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="sex">
<base-select v-model="formData.sex" :type="16" :isAll="true" :width="120" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>民族</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="nation">
<base-select v-model="formData.nation" :type="11" :isAll="true" :width="120" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>出生年月</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="birthday">
<a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.birthday" style="width: 60%" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>最高学位</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="degree">
<para-select v-model="formData.degree" :typeId="9" :width="120" @changeTitle="(e)=>{ formData.degreeName = e}" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>最高学位授予时间</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="degreeTime">
<a-date-picker format="YYYY-MM-DD" valueFormat="YYYY-MM-DD HH:mm:ss" v-model="formData.degreeTime" style="width: 60%" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>最高学位授予单位</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="degreeUnit">
<a-input placeholder="最高学位授予单位(限50字)" v-model="formData.degreeUnit" :maxLength="50" style="width:80%" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>目前从事专业</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="spec">
<cascader-select v-model="formData.spec" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>是否为研究生导师</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="graduateTeacher">
<para-check v-model="formData.graduateTeacher" :typeId="18" :disabled="false" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>专业技术职称</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="title">
<para-multi-select v-model="formData.title" :typeId="7" :width="120" @changeTitle="(e)=>{ formData.titleName = e}" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>党派</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="politicalParty">
<a-input placeholder="党派(限20字)" v-model="formData.politicalParty" :maxLength="20" style="width:80%" />
</a-form-model-item>
</div>
</div>
</a-col>
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>行政职务</div>
</div>
</a-col>
<a-col :span="5">
<div class="special-middle">
<div>
<a-form-model-item prop="duty">
<a-input placeholder="行政职务(限20字)" v-model="formData.duty" :maxLength="20" style="width:80%" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>是否是省级或省级以上人才</div>
</div>
</a-col>
<a-col :span="21">
<div class="special-middle">
<div>
<a-form-model-item prop="talentType">
<para-check v-model="formData.talentType" :typeId="16" :disabled="false" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>省级及以上劳动模范、先进工作者等荣誉称号</div>
</div>
</a-col>
<a-col :span="21">
<div class="special-middle">
<div>
<a-form-model-item prop="honoraryTitle">
<a-textarea placeholder="荣誉称号(限1000字)" v-model="formData.honoraryTitle" :maxLength="1000" style="width: 80%; height: 160px; margin-top: 12px" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>在国家、省级一级学术团体任职情况(包括任职时间和职务)</div>
</div>
</a-col>
<a-col :span="21">
<div class="special-middle">
<div>
<a-form-model-item prop="holdPost1">
<a-textarea placeholder="任职情况(限1000字)" v-model="formData.holdPost1" :maxLength="1000" style="width: 80%; height: 160px; margin-top: 12px" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>担任国内统计源期刊职务情况(包括任职时间和职务)</div>
</div>
</a-col>
<a-col :span="21">
<div class="special-middle">
<div>
<a-form-model-item prop="holdPost2">
<a-textarea placeholder="职务情况(限1000字)" v-model="formData.holdPost2" :maxLength="1000" style="width: 80%; height: 160px; margin-top: 12px" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>担任国家或省级重点学科/专科、重点实验室、内设研究机构负责人情况(包括任职时间和职务)</div>
</div>
</a-col>
<a-col :span="21">
<div class="special-middle">
<div>
<a-form-model-item prop="holdPost3">
<a-textarea placeholder="机构负责人情况(限1000字)" v-model="formData.holdPost3" :maxLength="1000" style="width: 80%; height: 160px; margin-top: 12px" />
</a-form-model-item>
</div>
</div>
</a-col>
</a-row>
<a-row type="flex">
<a-col :span="3" class="bg-gray">
<div class="special-middle">
<div>联系方式</div>
</div>
</a-col>
<a-col :span="21">
<a-row>
<a-col :span="4" class="bg-gray">
<div style="margin-top: 10px;">电话</div>
</a-col>
<a-col :span="8">
<div>
<a-form-model-item prop="telephone">
<a-input v-model="formData.telephone" :maxLength="50" style="width:80%" />
</a-form-model-item>
</div>
</a-col>
<a-col :span="4" class="bg-gray">
<div style="margin-top: 10px;">传真</div>
</a-col>
<a-col :span="8">
<div>
<a-form-model-item prop="fax">
<a-input v-model="formData.fax" :maxLength="50" style="width:80%" />
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row>
<a-col :span="4" class="bg-gray">
<div style="margin-top: 10px;">Email</div>
</a-col>
<a-col :span="20">
<div>
<a-form-model-item prop="email">
<a-input v-model="formData.email" :maxLength="50" style="width:40%" />
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-col>
</a-row>
</div>
<div v-if="stepsArray[1].showStatus">
</div>
......@@ -9,6 +331,10 @@
</div>
<div v-if="stepsArray[3].showStatus">
</div>
<div v-if="stepsArray[4].showStatus">
</div>
<div v-if="stepsArray[5].showStatus">
</div>
</a-form-model>
</div>
</template>
......@@ -16,11 +342,14 @@
<script>
import moment from 'moment'
import { isEmptyParams } from "@/views/utils/common"
import paraRadio from '@/views/components/common/paraRadio'
import paraCheck from '@/views/components/common/paraCheck'
import cascaderSelect from '@/views/components/common/cascaderSelect'
export default {
name: "talentEdit",
components: {
paraRadio, paraCheck, cascaderSelect
},
props: {
value: {
......@@ -43,13 +372,155 @@ export default {
},
},
data() {
return {};
return {
formData: {
certId: null,
personName: null,
nation: null,
sex: null,
birthday: null,
degree: null,
degreeTime: null,
degreeUnit: null,
spec: null,
graduateTeacher: null,
title: null,
politicalParty: null,
duty: null,
talentType: null,
honoraryTitle: null,
holdPost1: null,
holdPost2: null,
holdPost3: null,
telephone: null,
},
rules: {
certId: [{ required: true, message: '*', trigger: 'blur' },],
personName: [{ required: true, message: '*', trigger: 'blur' },],
nation: [{ required: true, message: '*', trigger: 'blur' },],
sex: [{ required: true, message: '*', trigger: 'change' },],
birthday: [{ required: true, message: '*', trigger: 'change' },],
degree: [{ required: true, message: '*', trigger: 'change' },],
degreeTime: [{ required: true, message: '*', trigger: 'change' },],
degreeUnit: [{ required: true, message: '*', trigger: 'blur' },],
spec: [{ required: false, message: '*', trigger: 'change' }],
graduateTeacher: [{ required: false, message: '*', trigger: 'change' }],
title: [{ required: true, message: '*', trigger: 'change' },],
politicalParty: [{ required: true, message: '*', trigger: 'blur' },],
duty: [{ required: false, message: '*', trigger: 'change' }],
talentType: [{ required: false, message: '*', trigger: 'change' }],
honoraryTitle: [{ required: true, message: '*', trigger: 'blur' },],
holdPost1: [{ required: true, message: '*', trigger: 'blur' },],
holdPost2: [{ required: true, message: '*', trigger: 'blur' },],
holdPost3: [{ required: true, message: '*', trigger: 'blur' },],
telephone: [{ required: true, message: '*', trigger: 'blur' }],
fax: [{ required: true, message: '*', trigger: 'blur' }],
email: [{ required: true, message: '*', trigger: 'blur' }],
},
};
},
created () {
},
methods: {
moment,
save (step) {
},
submit (step, next) {
if (this.checkInfo(step)) {
this.$refs.form.validate(valid => {
if (valid) {
this.$emit('load', true)
var arr = this.completeStatus.split(',');
arr[step] = "1";
this.formData.completeStatus = arr.toString()
var obj = this.getObj(step)
obj.step = step
let state = obj.projState
if (state != 30 && step == 5)
obj.projState = 10
let pars = isEmptyParams(obj)
let par = { ...pars }
this.$api.project.save(par).then(({ data = {} }) => {
if (data) {
this.formData.id = data
if (next) {
this.$emit('close', 'save')
this.$emit('onStepChange', { step: step + 1, state: arr.toString() })
} else {
this.$message.success('成功!')
this.$emit('close', 'submit')
}
}
this.$emit('load', false)
}).catch(() => {
this.$emit('load', false)
})
} else {
this.$message.error('信息未填写完全!')
return false
}
})
}
},
checkInfo (step) {
switch (step) {
case 0:
if (this.formData.certId == "" || this.formData.certId == null) {
alert('身份证号不能为空')
return false
}
if (this.formData.personName == "" || this.formData.personName == null) {
alert('人员姓名不能为空')
return false
} else return true
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
}
},
getTalent () {
this.$emit('load', true)
if (!!this.value) {
this.$api.talent.getTalentInfoById({ id: this.value }).then(({ data = {} }) => {
if (data) {
this.formData = data
this.$emit('onStepChange', { step: 0, state: data.completeStatus })
this.loadList()
} else
this.$emit('close', 'error')
this.$emit('load', false)
}).catch(() => {
this.$emit('close', 'error')
this.$emit('load', false)
})
} else {
this.$api.talent.getNewTalent({ projType: getType() }).then(({ data = {} }) => {
if (data) {
this.formData = data
this.$emit('onStepChange', { step: 0, state: data.completeStatus })
this.loadList()
} else
this.$emit('close', 'error')
this.$emit('load', false)
}).catch(() => {
this.$emit('close', 'error')
this.$emit('load', false)
})
}
},
loadList () {
},
}
};
</script>
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