| | |
| | | <template #search> |
| | | <el-form :model="form" label-width="140px" inline> |
| | | <el-form-item label="项目组名称:"> |
| | | <el-input v-model="form.name" placeholder="请输入"></el-input> |
| | | <el-input v-model="form.name" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item label="项目负责人:"> |
| | | <el-input v-model="form.name" placeholder="请输入"></el-input> |
| | | <el-form-item label="课题类型:"> |
| | | <el-input v-model="form.name" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item label="创建日期:"> |
| | | <el-date-picker v-model="value1" type="daterange" range-separator="至" start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | <el-form-item label="课题名称:"> |
| | | <el-input v-model="form.name" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item label="提交人:"> |
| | | <el-input v-model="form.name" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item label="状态:"> |
| | | <el-select v-model="form.name" placeholder="请选择" /> |
| | | </el-form-item> |
| | | <el-form-item class="search-btn-box"> |
| | | <el-button>重置</el-button> |
| | |
| | | </el-form> |
| | | </template> |
| | | <template #setting> |
| | | <el-button @click="handleAddProject" class="el-icon-plus" type="primary"> |
| | | 新增项目组</el-button> |
| | | <div class="top-box-integral"> |
| | | <div style="background-color:rgba(232, 250, 246, 1)" v-for="item in 3" :key="item" |
| | | class="top-box-integral-card"> |
| | | <div class="top-box-integral-card-title">{{ ['课题合计数量', '待评定', '已评定'][item - 1] }}</div> |
| | | <div style="color:rgba(4, 156, 154, 1)" class="top-box-integral-card-num">99.9</div> |
| | | </div> |
| | | </div> |
| | | <div class="tip-warring"> |
| | | <div> |
| | | 【注意】每个课题交付评分标准: |
| | | </div> |
| | | <div> |
| | | 1、课题由工程师/化验师设定,并清晰完整完成课题目标,评优秀3分; |
| | | </div> |
| | | <div> |
| | | 2、课题由工程师/化验师设定,并清晰完整完成课题目标,评优秀3分; |
| | | </div> |
| | | <div> |
| | | 3、课题由上级设定,工程师/化验师清晰完整完成课题目标,评正常2分; |
| | | </div> |
| | | <div> |
| | | 4、课题由上级设定,工程师/化验师只能阐述课题内容,无法延伸工作思路,无开发思维的运行能力、创新能力,无法实现专题目标,评失误0分; |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <template #table> |
| | | <el-table-column prop="name" label="项目组名称" /> |
| | | <el-table-column prop="age" label="项目负责人" /> |
| | | <el-table-column prop="age" label="项目组成员" /> |
| | | <el-table-column prop="age" label="项目创建时间" /> |
| | | <el-table-column prop="name" label="所属项目组" /> |
| | | <el-table-column prop="age" label="课题类型" /> |
| | | <el-table-column prop="age" label="报告编号" /> |
| | | <el-table-column prop="age" label="报告名称" /> |
| | | <el-table-column prop="age" label="提交人" /> |
| | | <el-table-column prop="age" label="评定结果" /> |
| | | <el-table-column prop="age" label="累积分值" /> |
| | | <el-table-column prop="age" label="评定时间" /> |
| | | <el-table-column prop="age" label="状态"> |
| | | <template #default="{ row }"> |
| | | <el-tag v-if="row.status == 1" type="success">正常运作</el-tag> |
| | | <el-tag v-else type="danger">已封存</el-tag> |
| | | <el-tag v-if="row.status == 1" type="success">已评定</el-tag> |
| | | <el-tag v-else type="danger">待评定</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="age" label="操作"> |
| | | <template #default="{ row }"> |
| | | <el-button type="text" @click="handleChangeStatus(row, 1)">封存</el-button> |
| | | <el-button type="text" @click="handleChangeStatus(row, 0)">解封</el-button> |
| | | <el-button type="text">编辑</el-button> |
| | | <el-button type="text">详情</el-button> |
| | | <el-button type="text" @click="handleDel(row)">删除</el-button> |
| | | <el-button type="text">评定</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </TableCustom> |
| | | <ShowDelConfirm :show="showDelConfirm" @close="showDelConfirm = false" @confirm="handleDelConfirm" /> |
| | | <ShowDelConfirm :title="changeStatusTitle" :tip="changeStatusTip" :show="changeStatus" |
| | | @close="changeStatus = false" @confirm="handleChangeStatusConfirm" /> |
| | | |
| | | <AssessmentDialog :modelValue="assessmentVisible" :reportData="currentReport" @submit="handleAssessmentSubmit" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import AssessmentDialog from './components/AssessmentDialog.vue' |
| | | |
| | | export default { |
| | | name: 'ProjectList', |
| | | components: { |
| | | AssessmentDialog |
| | | }, |
| | | data() { |
| | | return { |
| | | form: { |
| | | name: '' |
| | | }, |
| | | showDelConfirm: false, |
| | | rowId: '', |
| | | changeStatus: false, |
| | | changeStatusTitle: '', |
| | | changeStatusTip: '', |
| | | tableData: [], |
| | | queryForm: { |
| | | pageSize: 10, |
| | | pageNum: 1 |
| | | }, |
| | | total: 0 |
| | | total: 0, |
| | | assessmentVisible: true, |
| | | currentReport: null |
| | | } |
| | | }, |
| | | methods: { |
| | | handleAddProject() { |
| | | this.$router.push({ |
| | | path: '/projectList/addProject' |
| | | }) |
| | | }, |
| | | handleDel(row) { |
| | | this.rowId = row.id |
| | | this.showDelConfirm = true |
| | | }, |
| | | handleDelConfirm() { |
| | | this.showDelConfirm = false |
| | | this.msgsuccess('删除成功') |
| | | this.rowId = '' |
| | | this.getList() |
| | | }, |
| | | handleChangeStatus(row, status) { |
| | | this.rowId = row.id |
| | | this.changeStatusTitle = status == 1 ? '确认要封存这个项目组吗?' : '确认要解封该项目组吗?' |
| | | this.changeStatusTip = status == 1 ? '封存后项目组内人员看不到数据,审批人仍然可见数据。' : '解封后项目组内人员数据恢复。' |
| | | this.changeStatus = true |
| | | }, |
| | | handleChangeStatusConfirm() { |
| | | this.changeStatus = false |
| | | this.msgsuccess('操作成功') |
| | | this.rowId = '' |
| | | this.changeStatusTitle = '' |
| | | this.changeStatusTip = '' |
| | | this.getList() |
| | | }, |
| | | handleCurrentChange(page) { |
| | | this.queryForm.pageNum = page |
| | | this.getList() |
| | |
| | | }, |
| | | getList() { |
| | | |
| | | }, |
| | | handleDetail(row) { |
| | | // 处理详情 |
| | | }, |
| | | handleAssessment(row) { |
| | | this.currentReport = row; |
| | | this.assessmentVisible = true; |
| | | }, |
| | | handleAssessmentSubmit(data) { |
| | | console.log('评定提交数据:', data); |
| | | // 处理评定提交 |
| | | } |
| | | } |
| | | } |
| | |
| | | .list { |
| | | height: 100%; |
| | | } |
| | | |
| | | .top-box-integral { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | flex-wrap: wrap; |
| | | gap: 28px; |
| | | |
| | | &-card { |
| | | flex: 1; |
| | | background: #E8FAF6; |
| | | box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.06); |
| | | border-radius: 10px; |
| | | padding: 21px 20px; |
| | | |
| | | &-title { |
| | | font-family: 'SourceHanSansCN-Medium'; |
| | | font-size: 14px; |
| | | color: rgba(0, 0, 0, 0.8); |
| | | } |
| | | |
| | | &-num { |
| | | font-family: 'SF Compact Display Black'; |
| | | text-align: center; |
| | | font-weight: 900; |
| | | font-size: 50px; |
| | | color: #049C9A; |
| | | line-height: 60px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .tip-warring { |
| | | margin-top: 20px; |
| | | color: rgba(255, 73, 85, 1); |
| | | } |
| | | </style> |