Commit 32fd464a authored by liangjingpeng's avatar liangjingpeng

Merge remote-tracking branch 'origin/master'

parents 572e1c0c 419e9f33
<template>
<div>
<el-steps :active="activeStep" align-center>
<el-step :title="stepTitles[0]" />
<el-step :title="stepTitles[1]" />
<el-step :title="stepTitles[2]" />
<el-steps :active="1" align-center>
<el-step title="项目申报中" />
<el-step title="中期评审完成" />
<el-step title="验收完成" />
</el-steps>
<div class="tabsBody">
<el-tabs v-model="activeTab" type="border-card" @change="handleTabChange(newTab)">
<el-tabs v-model="activeTab" type="border-card">
<el-button
style="float: right;
margin-right: 10px;
......@@ -159,142 +159,51 @@
课题主要参加者基本情况
</div>
<el-table :data="ProjectApprovalExpertList">
<el-table-column type="selection" width="55" />
<el-table-column min-width="80" label="姓名" prop="name" align="center" :show-overflow-tooltip="true" />
<el-table-column min-width="80" label="年龄" prop="age" align="center" :show-overflow-tooltip="true" />
<el-table-column min-width="150" label="专业技术职务" prop="position" align="center" :show-overflow-tooltip="true" />
<el-table-column min-width="170" label="工作单位(部门)" prop="unit" align="center" :show-overflow-tooltip="true" />
<el-table-column min-width="120" label="研究专长" prop="specialty" align="center" :show-overflow-tooltip="true" />
<el-table-column min-width="120" align="right">
<template slot="header" scope="scope">
<el-button icon="el-icon-plus" size="mini" @click="showForm = true" />
<el-button icon="el-icon-delete" size="mini" @click="deleteItem(scope.$index)" />
</template>
<template slot-scope="scope">
<el-button icon="el-icon-edit" size="mini" @click="editItem(scope.row, scope.$index)" />
<el-button icon="el-icon-delete" size="mini" @click="deleteItem(scope.$index)" />
</template>
</el-table-column>
</el-table>
<!-- 循环渲染列 -->
<el-table-column
v-for="(item, index) in columns"
:key="index"
:prop="item.prop"
:label="item.label"
:align="item.align"
/>
<!-- 弹出表单 -->
<el-dialog title="添加课题参加者" :visible.sync="showForm">
<el-form :model="formData">
<el-form-item label="姓名">
<el-input v-model="formData.name" />
</el-form-item>
<el-form-item label="年龄">
<el-input v-model="formData.age" />
</el-form-item>
<el-form-item label="专业技术职务">
<el-input v-model="formData.position" />
</el-form-item>
<el-form-item label="工作单位 (部门)">
<el-input v-model="formData.unit" />
</el-form-item>
<el-form-item label="研究专长">
<el-input v-model="formData.specialty" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="showForm = false">取消</el-button>
<el-button type="primary" @click="addData">确认</el-button>
</span>
</el-dialog>
<tr>
<th style="border: 1px solid black; width: 50px;">
<el-checkbox v-model="checked" />
</th>
<th style="border: 1px solid black; width: 120px;">姓名</th>
<th style="border: 1px solid black; width: 120px;">年龄</th>
<th style="border: 1px solid black; width: 250px;">专业技术职务</th>
<th style="border: 1px solid black; width: 260px;">工作单位 (部门)</th>
<th style="border: 1px solid black; width: 180px;">研究专长</th>
<th style="border: 1px solid black; width: 160px;">
<el-button icon="el-icon-plus" style="margin: 5px 0" @click="showForm = true" />
<el-button icon="el-icon-delete" />
</th>
</tr>
<!-- 循环渲染表格数据 -->
<tr v-for="(item, index) in tableData" :key="index">
<td style="text-align: center;"><el-checkbox v-model="item.checked" /></td>
<td style="text-align: center;">{{ item.name }}</td>
<td style="text-align: center;">{{ item.age }}</td>
<td style="text-align: center;">{{ item.position }}</td>
<td style="text-align: center;">{{ item.unit }}</td>
<td style="text-align: center;">{{ item.specialty }}</td>
<td style="text-align: center;">
<el-button icon="el-icon-edit" @click="editItem(item, index)" />
<el-button icon="el-icon-delete" @click="deleteItem(index)" />
</td>
</tr>
<!-- 循环渲染列 -->
<el-table-column
v-for="(item, index) in tableData"
:key="index"
:prop="item.name"
:label="item.name"
:align="item.align"
/>
<el-table v-for="(item, index) in tableData" :data="tableData" style="width: 100%">
<!-- 复选框列 -->
<el-table :data="tableData" style="width: 100%" border>
<el-table-column
type="selection"
width="55"
/>
<!-- 名称列 -->
<el-table-column
prop="name"
label="姓名"
align="center"
width="100"
/>
<!-- 年龄列 -->
<el-table-column
prop="age"
label="年龄"
align="center"
width="100"
/>
<!-- 职位列 -->
<el-table-column
prop="position"
label="职位"
label="专业技术职务"
align="center"
width="260"
/>
<!-- 单位列 -->
<el-table-column
prop="unit"
label="单位"
label="工作单位 (部门)"
align="center"
width="300"
/>
<!-- 专业列 -->
<el-table-column
prop="specialty"
label="专业"
label="研究专业"
align="center"
width="170"
/>
<!-- 操作列 -->
<el-table-column
label="操作"
align="center"
>
<el-table-column min-width="120" align="right">
<template slot="header" scope="scope">
<el-button icon="el-icon-plus" size="mini" @click="showForm = true" />
<el-button icon="el-icon-delete" size="mini" @click="deleteItem(scope.$index)" />
</template>
<template slot-scope="scope">
<el-button icon="el-icon-edit" size="mini" @click="editItem(scope.row, scope.$index)" />
<el-button icon="el-icon-delete" size="mini" @click="deleteItem(scope.$index)" />
</template>
<template slot-scope="scope">
<el-button icon="el-icon-edit" @click="editItem(scope.row, scope.$index)" />
<el-button icon="el-icon-delete" @click="deleteItem(scope.$index)" />
......@@ -746,37 +655,166 @@
<div style="text-align: center; margin: 20px 0; font-size: 24px; color: #000000">
主要阶段性成果(限10项)
</div>
<div style="padding:5px 10px">
<el-table v-loading="loading" border :data="busStudentInfoList">
<el-table-column min-width="50" label="序号" prop="id" align="center">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="成果名称" prop="topicType" :show-overflow-tooltip="true" />
<el-table-column label="成果形式" prop="topicName" :show-overflow-tooltip="true" />
<el-table-column label="署名人" prop="declarationType" :show-overflow-tooltip="true" />
<el-table-column width="160" label="刊物年期、出版社和出版日期、使用单位" prop="nameOfThePersonInCharge" :show-overflow-tooltip="true" />
</el-table>
</div>
<el-table :data="mainStages" style="width: 100%" border>
<el-table-column
type="selection"
width="55"
/>
<el-table-column min-width="50" label="序号" prop="id" align="center">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column
prop="nameOfTheAchievement"
label="成果名称"
align="center"
width="220"
/>
<el-table-column
prop="formOfResults"
label="成果形式"
align="center"
width="220"
/>
<el-table-column
prop="signed"
label="署名人"
align="center"
width="220"
/>
<el-table-column
prop="publishingHouse"
label="刊物年期、出版社和出版日期、使用单位"
align="center"
width="160"
style="margin: 0 30px"
/>
<el-table-column min-width="120" align="right">
<template slot="header" scope="scope">
<el-button icon="el-icon-plus" size="mini" @click="showForm = true" />
<el-button icon="el-icon-delete" size="mini" @click="achievementDeleteItem(scope.$index)" />
</template>
<template slot-scope="scope">
<el-button icon="el-icon-edit" size="mini" @click="editItem(scope.row)" />
<el-button icon="el-icon-delete" size="mini" @click="achievementDeleteItem(scope.$index)" />
</template>
</el-table-column>
</el-table>
<!-- 弹出表单 -->
<el-dialog title="主要阶段性成果" :visible.sync="showForm">
<el-form :model="formData">
<el-form-item label="成果名称">
<el-input v-model="formData.nameOfTheAchievement" />
</el-form-item>
<el-form-item label="成果形式">
<el-input v-model="formData.formOfResults" />
</el-form-item>
<el-form-item label="署名人">
<el-input v-model="formData.signed" />
</el-form-item>
<el-form-item label="刊物年期、出版社和出版日期、使用单位">
<el-input v-model="formData.publishingHouse" type="textarea" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="showForm = false">取消</el-button>
<el-button type="primary" @click="achievementAddData">确认</el-button>
</span>
</el-dialog>
<div style="text-align: center; margin: 30px 0; font-size: 24px; color: #000000">
主要研究人员
</div>
<div style="padding:5px 10px">
<el-table v-loading="loading" border :data="busStudentInfoList">
<el-table-column min-width="50" label="序号" prop="id" align="center">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column label="姓名" prop="topicType" :show-overflow-tooltip="true" />
<el-table-column label="年龄" prop="topicName" :show-overflow-tooltip="true" />
<el-table-column label="专业技术职务" prop="declarationType" :show-overflow-tooltip="true" />
<el-table-column width="160" label="工作单位(部门)" prop="nameOfThePersonInCharge" :show-overflow-tooltip="true" />
<el-table-column width="160" label="研究专长" prop="nameOfThePersonInCharge" :show-overflow-tooltip="true" />
<el-table-column width="160" label="对成果的贡献" prop="nameOfThePersonInCharge" :show-overflow-tooltip="true" />
</el-table>
</div>
<el-table :data="mainResearch" style="width: 100%" border>
<el-table-column
type="selection"
width="55"
/>
<el-table-column min-width="50" label="序号" prop="id" align="center">
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column
prop="name"
label="姓名"
align="center"
width="120"
/>
<el-table-column
prop="age"
label="年龄"
align="center"
/>
<el-table-column
prop="professionalAndTechnicalPositions"
label="专业技术职务"
align="center"
width="160"
/>
<el-table-column
prop="unit"
label="工作单位(部门)"
align="center"
width="160"
/>
<el-table-column
prop="researchExpertise"
label="研究专长"
align="center"
width="160"
/>
<el-table-column
prop="contribute"
label="对成果的贡献"
align="center"
width="160"
/>
<el-table-column min-width="120" align="right">
<template slot="header" scope="scope">
<el-button icon="el-icon-plus" size="mini" @click="showForm = true" />
<el-button icon="el-icon-delete" size="mini" @click="mainResearchDeleteItem(scope.$index)" />
</template>
<template slot-scope="scope">
<el-button icon="el-icon-edit" size="mini" @click="editItem(scope.row)" />
<el-button icon="el-icon-delete" size="mini" @click="mainResearchDeleteItem(scope.$index)" />
</template>
</el-table-column>
</el-table>
<!-- 弹出表单 -->
<el-dialog title="主要研究人员" :visible.sync="showForm">
<el-form :model="formData">
<el-form-item label="姓名">
<el-input v-model="formData.name" />
</el-form-item>
<el-form-item label="年龄">
<el-input v-model="formData.age" />
</el-form-item>
<el-form-item label="专业技术职务">
<el-input v-model="formData.professionalAndTechnicalPositions" />
</el-form-item>
<el-form-item label="工作单位(部门)">
<el-input v-model="formData.unit" />
</el-form-item>
<el-form-item label="研究专长">
<el-input v-model="formData.researchExpertise" />
</el-form-item>
<el-form-item label="对成果的贡献">
<el-input v-model="formData.contribute" />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="showForm = false">取消</el-button>
<el-button type="primary" @click="mainResearchAddData">确认</el-button>
</span>
</el-dialog>
<div style="text-align: center; margin: 20px 0; font-size: 24px; color: #000000">
项目研究计划的执行情况
</div>
......@@ -883,7 +921,8 @@ import ElDescriptionsItem from '@/components/descriptionsList/e-desc-item.vue'
import ElDescriptions from '@/components/descriptionsList/e-desc.vue'
export default {
components: {
ElDescriptions, ElDescriptionsItem
ElDescriptions, ElDescriptionsItem,
VueUeditorWrap
},
data() {
return {
......@@ -918,14 +957,14 @@ export default {
email: '123@qq.com'
},
{
nameOfTheExpert: '3',
expertSMobilePhoneNumber: '13688888888',
nameOfTheExpert: 'asdf22223',
expertSMobilePhoneNumber: '13685873188',
jobTitle: '教授',
office: '123',
unit: '123',
researchInterests: '12',
email: '123@qq.com'
},
office: '职务',
unit: '单位',
researchInterests: '研究方向',
email: ''
}
],
judgingContentInfoList: [
{
......@@ -1000,8 +1039,6 @@ export default {
],
loading: false,
busStudentInfoList: [],
activeStep: 1, // 默认显示第一个步骤
stepTitles: ['项目申报中', '中期评审完成', '验收完成'], // 默认的步骤标题
activeTab: 'first',
secondStatus: null, // 立项评审结果的状态
fifthStatus: null, // 月报的状态
......@@ -1023,6 +1060,12 @@ export default {
tableData: [
// 初始表格数据
],
mainResearch: [
],
mainStages: [
// 初始表格数据
],
editorConfig: {
// 后端服务地址,后端处理参考
// https://open-doc.modstart.com/ueditor-plus/backend.html
......@@ -1052,10 +1095,8 @@ export default {
},
watch: {
// 监听路由参数变化
'$route.params.tab'(newVal) {
if (newVal) {
this.activeTab = newVal
}
'$route.query.activeTab'(newVal) {
this.activeTab = newVal // 监听路由参数变化,更新激活的标签页
},
// 监听 activeTab 的变化,以确保当用户切换到相关标签页时,它们是可见的
activeName(newVal) {
......@@ -1069,9 +1110,19 @@ export default {
}
},
created() {
// 如果路由参数存在,则设置当前激活的标签页
if (this.$route.params.tab) {
this.activeTab = this.$route.params.tab
this.activeTab = this.$route.query.activeTab || 'first' // 组件挂载时,根据路由参数设置激活的标签页
const activeTab = this.$route.query.activeTab
if (activeTab === 'first') {
this.activeTab = 'first'
}
if (this.$route.query.state === '立项评审中') {
this.activeTab = 'second'
}
if (this.$route.query.state === '验收申请中') {
this.activeTab = 'fourth'
}
if (this.$route.query.state === '中期申请中') {
this.activeTab = 'third'
}
},
beforeDestroy() {
......@@ -1082,21 +1133,6 @@ export default {
this.updateStatus() // 在组件挂载时更新状态
},
methods: {
handleTabChange(newTab) {
console.log('获得标签:', newTab)
if (newTab === 'second') {
this.$set(this, 'stepTitles', ['立项评审完成', '中期申请中', '验收完成'])
this.$set(this, 'activeStep', 2)
} else if (newTab === 'third') {
this.$set(this, 'stepTitles', ['项目申报中', '中期评审完成', '验收完成'])
this.$set(this, 'activeStep', 1)
} else {
this.$set(this, 'stepTitles', ['项目申报中', '中期评审完成', '验收完成'])
this.$set(this, 'activeStep', 0)
}
console.log('stepTitles:', this.stepTitles)
console.log('activeStep:', this.activeStep)
},
updateStatus() {
this.secondStatus = '通过' // 假设立项评审结果是通过
this.fifthStatus = '通过' // 假设月报的评审结果是不通过
......@@ -1104,6 +1140,40 @@ export default {
onShowMonthlyReport() {
this.activeTab = 'first' // 显示申报信息签页
},
mainResearchAddData() {
// 将表单数据添加到表格数据中
this.mainResearch.push({
...this.formData,
checked: false
})
// 清空表单
this.formData = {
name: '',
age: '',
professionalAndTechnicalPositions: '',
unit: '',
researchExpertise: '',
contribute: ''
}
// 关闭表单
this.showForm = false
},
achievementAddData() {
// 将表单数据添加到表格数据中
this.mainStages.push({
...this.formData,
checked: false
})
// 清空表单
this.formData = {
nameOfTheAchievement: '',
formOfResults: '',
signed: '',
publishingHouse: ''
}
// 关闭表单
this.showForm = false
},
addData() {
// 将表单数据添加到表格数据中
this.tableData.push({
......@@ -1126,6 +1196,14 @@ export default {
this.formData = { ...item }
this.showForm = true
},
mainResearchDeleteItem(index) {
// 删除项
this.mainResearch.splice(index, 1)
},
achievementDeleteItem(index) {
// 删除项
this.mainStages.splice(index, 1)
},
deleteItem(index) {
// 删除项
this.tableData.splice(index, 1)
......
......@@ -74,8 +74,12 @@
<el-table-column label="操作" class-name="small-padding fixed-width" width="70">
<template slot-scope="scope">
<el-button v-if="scope.row.state === '验收完成' || scope.row.state === '立项评审中'" icon="el-icon-search" />
<el-button v-else icon="el-icon-edit-outline" />
<el-button
v-if="scope.row.state === '验收完成' || scope.row.state === '立项评审中'"
icon="el-icon-search"
@click="handleProject(scope.row)"
/>
<el-button v-else icon="el-icon-edit-outline" @click="handleProject(scope.row)" />
</template>
</el-table-column>
</el-table>
......@@ -99,6 +103,16 @@ export default {
total: 100,
loading: false,
busStudentInfoList: [
{
topicType: '2024YB01036',
topicName: '测试课题190530',
declarationType: '一般课题',
nameOfThePersonInCharge: '于力',
phoneNumber: '15821163326',
creationTime: '2024-05-28 10:10',
stage: '中期',
state: '中期申请中'
},
{
topicType: '2024YB01033',
topicName: 'text123456190528',
......@@ -262,13 +276,9 @@ export default {
},
methods: {
handleNewProject() {
// 先跳转到TabPage页面
this.$router.push({ name: 'TabPage', params: { tab: '申报信息' }})
// 然后发送事件通知TabPage页面显示月报标签页
this.$emit('showMonthlyReport')
this.$router.push({
path: '/myTopic/newTopic',
query: {}
query: { activeTab: 'first' }
})
},
/** 查询按钮操作 */
......@@ -276,6 +286,16 @@ export default {
this.queryParams.page = 1
this.getList()
},
/** 评审中操作按钮*/
handleProject(row) {
console.log('row', row)
this.$router.push({
path: '/myTopic/newTopic',
query: {
state: row.state
}
})
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
......
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