Commit 32fd464a authored by liangjingpeng's avatar liangjingpeng

Merge remote-tracking branch 'origin/master'

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