Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory
| | |
| | | }, |
| | | total: { |
| | | type: Number, |
| | | default: 20 |
| | | default: 0 |
| | | }, |
| | | queryForm: { |
| | | type: Object, |
| | |
| | | keepAlive: true, |
| | | }, |
| | | component: () => import("../views/dataManagement/sampleRecordList/changeRecord"), |
| | | },{ |
| | | }, { |
| | | path: "submissionList", |
| | | meta: { |
| | | title: "送样单列表", |
| | |
| | | component: () => import("../views/dataManagement/sampleSubmissionList/submission"), |
| | | }, |
| | | ] |
| | | |
| | | |
| | | }, |
| | | { |
| | | path: "deliveryRecord", |
| | |
| | | }, |
| | | component: () => import("../views/dataManagement/SampleDeliveryRecord/deliveryRecord"), |
| | | }, |
| | | |
| | | ], |
| | | }, |
| | | { |
| | |
| | | }, |
| | | component: () => import("../views/deliveryAssessment/taskList"), |
| | | }, |
| | | { |
| | | path: "restsTask", |
| | | meta: { |
| | | title: "实验员其他任务", |
| | | }, |
| | | component: () => import("../views/deliveryAssessment/restsTask"), |
| | | }, |
| | | { |
| | | path: "clinicalTrial", |
| | | meta: { |
| | | title: "临床试验积分列表", |
| | | }, |
| | | component: () => import("../views/deliveryAssessment/clinicalTrial"), |
| | | }, |
| | | ] |
| | | } |
| | | ]; |
New file |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="dialogVisible" title="新增临床试验" width="50%" @close="handleClose"> |
| | | <div class="content-box"> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>所属项目组</div> |
| | | </div> |
| | | <Table :data="criteriaList" :height="null"> |
| | | <el-table-column prop="name" label="项目组名称" /> |
| | | <el-table-column prop="name" label="项目负责人" /> |
| | | <el-table-column prop="name" label="项目组成员" /> |
| | | <el-table-column prop="name" label="创建时间" /> |
| | | </Table> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>临床试验内容</div> |
| | | </div> |
| | | <el-input type="textarea" :rows="4" placeholder="请输入" v-model="form.textarea" /> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>临床试验时间</div> |
| | | </div> |
| | | <el-date-picker v-model="form.value1" type="datetime" placeholder="请选择" /> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>评定积分</div> |
| | | </div> |
| | | <el-input-number placeholder="请输入" v-model="form.score" :min="0" :max="form.fullScore" :precision="1" |
| | | :step="1" /> |
| | | </div> |
| | | <template #footer> |
| | | <span class="dialog-footer select-member-footer"> |
| | | <el-button type="primary">确认</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'Detail', |
| | | props: { |
| | | modelValue: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | reportData: { |
| | | type: Object, |
| | | default: () => { } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | form: { |
| | | textarea: '', |
| | | value1: '', |
| | | score: null, |
| | | fullScore: 3 |
| | | }, |
| | | rules: { |
| | | reportName: [ |
| | | { required: true, message: '请输入报告名称', trigger: 'blur' } |
| | | ], |
| | | }, |
| | | criteriaList: [] |
| | | } |
| | | }, |
| | | watch: { |
| | | modelValue: { |
| | | handler(val) { |
| | | this.dialogVisible = val; |
| | | }, |
| | | immediate: true |
| | | }, |
| | | reportData: { |
| | | handler(val) { |
| | | if (val) { |
| | | this.form = val || {}; |
| | | } |
| | | }, |
| | | immediate: true |
| | | } |
| | | }, |
| | | methods: { |
| | | handleClose() { |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .header-title-left { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 13px; |
| | | margin: 10px 0; |
| | | |
| | | img { |
| | | width: 12px; |
| | | height: 19px; |
| | | } |
| | | |
| | | div { |
| | | flex-shrink: 0; |
| | | font-weight: bold; |
| | | font-size: 18px; |
| | | color: #222222; |
| | | line-height: 27px; |
| | | font-family: 'Source Han Sans CN Bold Bold'; |
| | | } |
| | | |
| | | |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="list"> |
| | | <TableCustom :queryForm="queryForm" :tableData="tableData" :total="total" @currentChange="handleCurrentChange" |
| | | @sizeChange="handleSizeChange"> |
| | | <template #search> |
| | | <el-form :model="form" label-width="140px" inline> |
| | | <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 class="search-btn-box"> |
| | | <el-button>重置</el-button> |
| | | <el-button type="primary">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </template> |
| | | <template #setting> |
| | | <el-button @click="assessmentVisible = true, currentReport = {}" class="el-icon-plus" type="primary"> |
| | | 新增临床试验</el-button> |
| | | </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="age" label="评定积分" /> |
| | | <el-table-column prop="age" label="累计分数" /> |
| | | <el-table-column prop="age" label="评定时间" /> |
| | | <el-table-column prop="age" label="操作"> |
| | | <template #default="{ row }"> |
| | | <el-button type="text">详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </TableCustom> |
| | | |
| | | <Detail :modelValue="assessmentVisible" :reportData="currentReport" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Detail from './components/detail.vue' |
| | | |
| | | export default { |
| | | name: 'ClinicalTrial', |
| | | components: { |
| | | Detail |
| | | }, |
| | | data() { |
| | | return { |
| | | form: { |
| | | }, |
| | | tableData: [], |
| | | queryForm: { |
| | | pageSize: 10, |
| | | pageNum: 1 |
| | | }, |
| | | total: 0, |
| | | assessmentVisible: false, |
| | | currentReport: {} |
| | | } |
| | | }, |
| | | methods: { |
| | | handleCurrentChange(page) { |
| | | this.queryForm.pageNum = page |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(size) { |
| | | this.queryForm.pageSize = size |
| | | this.getList() |
| | | }, |
| | | getList() { |
| | | |
| | | }, |
| | | handleDetail(row) { |
| | | // 处理详情 |
| | | }, |
| | | handleAssessment(row) { |
| | | this.currentReport = row; |
| | | this.assessmentVisible = true; |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .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> |
New file |
| | |
| | | <template> |
| | | <el-dialog :visible.sync="dialogVisible" title="其他任务详情" width="70%" @close="handleClose"> |
| | | <div class="content-box"> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>所属项目组</div> |
| | | </div> |
| | | <Table :data="criteriaList" :height="null"> |
| | | <el-table-column prop="name" label="项目组名称" /> |
| | | <el-table-column prop="name" label="项目负责人" /> |
| | | <el-table-column prop="name" label="项目组成员" /> |
| | | <el-table-column prop="name" label="创建时间" /> |
| | | </Table> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>任务内容</div> |
| | | </div> |
| | | <div>清理</div> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>任务时间</div> |
| | | </div> |
| | | <div>2020-12-31 12:00:00</div> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>评定积分</div> |
| | | </div> |
| | | <div>2</div> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'Detail', |
| | | props: { |
| | | modelValue: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | reportData: { |
| | | type: Object, |
| | | default: () => { } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | form: {}, |
| | | rules: { |
| | | reportName: [ |
| | | { required: true, message: '请输入报告名称', trigger: 'blur' } |
| | | ], |
| | | }, |
| | | criteriaList: [] |
| | | } |
| | | }, |
| | | watch: { |
| | | modelValue: { |
| | | handler(val) { |
| | | this.dialogVisible = val; |
| | | }, |
| | | immediate: true |
| | | }, |
| | | reportData: { |
| | | handler(val) { |
| | | if (val) { |
| | | this.form = val || {}; |
| | | } |
| | | }, |
| | | immediate: true |
| | | } |
| | | }, |
| | | methods: { |
| | | handleClose() { |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .header-title-left { |
| | | display: flex; |
| | | align-items: center; |
| | | gap: 13px; |
| | | margin: 10px 0; |
| | | |
| | | img { |
| | | width: 12px; |
| | | height: 19px; |
| | | } |
| | | |
| | | div { |
| | | flex-shrink: 0; |
| | | font-weight: bold; |
| | | font-size: 18px; |
| | | color: #222222; |
| | | line-height: 27px; |
| | | font-family: 'Source Han Sans CN Bold Bold'; |
| | | } |
| | | |
| | | |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="list"> |
| | | <TableCustom :queryForm="queryForm" :tableData="tableData" :total="total" @currentChange="handleCurrentChange" |
| | | @sizeChange="handleSizeChange"> |
| | | <template #search> |
| | | <el-form :model="form" label-width="140px" inline> |
| | | <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 class="search-btn-box"> |
| | | <el-button>重置</el-button> |
| | | <el-button type="primary">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </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="age" label="评定积分" /> |
| | | <el-table-column prop="age" label="累计分数" /> |
| | | <el-table-column prop="age" label="评定时间" /> |
| | | <el-table-column prop="age" label="操作"> |
| | | <template #default="{ row }"> |
| | | <el-button type="text">详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </TableCustom> |
| | | |
| | | <Detail :modelValue="assessmentVisible" :reportData="currentReport" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Detail from './components/detail.vue' |
| | | |
| | | export default { |
| | | name: ' RestsTask', |
| | | components: { |
| | | Detail |
| | | }, |
| | | data() { |
| | | return { |
| | | form: { |
| | | }, |
| | | tableData: [], |
| | | queryForm: { |
| | | pageSize: 10, |
| | | pageNum: 1 |
| | | }, |
| | | total: 0, |
| | | assessmentVisible: false, |
| | | currentReport: {} |
| | | } |
| | | }, |
| | | methods: { |
| | | handleCurrentChange(page) { |
| | | this.queryForm.pageNum = page |
| | | this.getList() |
| | | }, |
| | | handleSizeChange(size) { |
| | | this.queryForm.pageSize = size |
| | | this.getList() |
| | | }, |
| | | getList() { |
| | | |
| | | }, |
| | | handleDetail(row) { |
| | | // 处理详情 |
| | | }, |
| | | handleAssessment(row) { |
| | | this.currentReport = row; |
| | | this.assessmentVisible = true; |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .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> |
| | |
| | | </el-form> |
| | | <div class="content-box"> |
| | | <el-row :gutter="16"> |
| | | <el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6"> |
| | | <el-col :xs="24" :sm="24" :md="4" :lg="4" :xl="4"> |
| | | <div class="content-box-left"> |
| | | <div class="content-box-left-th">设立课题规则</div> |
| | | <div class="content-box-left-body"> |
| | | <div class="content-box-left-body" :style="{ height: `calc(${$baseTableHeight()}px - 40px)`}"> |
| | | 1、根据可研报告、产品构思设计的工艺研究路线,一条工艺路线设立一个课题。如果一个课题中有多个化合物需要开发研究,则每个化合物作为一个分题;分题归集到该课题中,最终形成课题报告。不同课题报告中的分题不能重复使用。 |
| | | 2、在可行研究阶段,工艺开发升级,重新规划工艺研究路线,则以新规划的工艺路线方案来设定课题</div> |
| | | </div> |
| | | </el-col> |
| | | <el-col style="margin-top: 5px;" :xs="24" :sm="24" :md="18" :lg="18" :xl="18"> |
| | | <el-col style="margin-top: 5px;" :xs="24" :sm="24" :md="19" :lg="19" :xl="19"> |
| | | <Table :total="0" :data="criteriaList" show-summary :summary-method="getSummaries" |
| | | :span-method="arraySpanMethod"> |
| | | <el-table-column type="index" label="序号" width="80" /> |
| | |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="assessed"> |
| | | <div>评定时间:2025-2-20 11:08:00</div> |
| | | <div>评定人:张三</div> |
| | | </div> |
| | | <template #footer> |
| | | <span class="dialog-footer select-member-footer"> |
| | | <el-button type="primary" @click="handleSubmit">提交评定结果</el-button> |
| | |
| | | }, |
| | | reportData: { |
| | | type: Object, |
| | | default: () => ({}) |
| | | default: () => { } |
| | | } |
| | | }, |
| | | data() { |
| | |
| | | } |
| | | |
| | | &-body { |
| | | flex: 1; |
| | | padding: 0 10px; |
| | | line-height: 23px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .assessed { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | align-items: center; |
| | | gap: 25px; |
| | | margin-top: 20px; |
| | | } |
| | | </style> |
| | |
| | | </template> |
| | | </TableCustom> |
| | | |
| | | <AssessmentDialog :modelValue="assessmentVisible" :reportData="currentReport" @submit="handleAssessmentSubmit" /> |
| | | <AssessmentDialog :modelValue="assessmentVisible" :reportData="currentReport" |
| | | @submit="handleAssessmentSubmit" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import AssessmentDialog from './components/AssessmentDialog.vue' |
| | | |
| | | export default { |
| | | name: 'ProjectList', |
| | | name: 'TaskList', |
| | | components: { |
| | | AssessmentDialog |
| | | }, |
| | |
| | | pageNum: 1 |
| | | }, |
| | | total: 0, |
| | | assessmentVisible: true, |
| | | currentReport: null |
| | | assessmentVisible: false, |
| | | currentReport: {} |
| | | } |
| | | }, |
| | | methods: { |