| | |
| | | <template> |
| | | <Card> |
| | | <el-form |
| | | ref="form" |
| | | :model="form" |
| | | :rules="rules" |
| | | inline |
| | | label-position="top" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" inline label-position="top"> |
| | | <div class="header-title" style="margin-bottom: 38px"> |
| | | <div class="header-title-left"> |
| | | <img src="@/assets/public/headercard.png" /> |
| | | <div>所属实验调度</div> |
| | | </div> |
| | | <el-button |
| | | type="primary" |
| | | class="el-icon-plus" |
| | | @click="handleAddTask" |
| | | v-if="!isView" |
| | | >选择实验调度</el-button |
| | | > |
| | | <el-button type="primary" class="el-icon-plus" @click="handleAddTask" v-if="!isView">选择实验调度</el-button> |
| | | </div> |
| | | |
| | | <Table :data="taskTableData" :total="0" :height="null" class="rwuTable"> |
| | | <el-table-column |
| | | prop="projectName" |
| | | label="所属项目课题方案" |
| | | width="200" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentCode" |
| | | label="实验编号" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentName" |
| | | label="实验名称" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentDate" |
| | | label="通知时间" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentStartTime" |
| | | label="实验开始时间" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentEndTime" |
| | | label="实验结束时间" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="participantsName" |
| | | label="参加人员" |
| | | ></el-table-column> |
| | | <el-table-column prop="projectName" label="所属项目课题方案" width="200"></el-table-column> |
| | | <el-table-column prop="experimentCode" label="实验编号"></el-table-column> |
| | | <el-table-column prop="experimentName" label="实验名称"></el-table-column> |
| | | <el-table-column prop="experimentDate" label="通知时间"></el-table-column> |
| | | <el-table-column prop="experimentStartTime" label="实验开始时间"></el-table-column> |
| | | <el-table-column prop="experimentEndTime" label="实验结束时间"></el-table-column> |
| | | <el-table-column prop="participantsName" label="参加人员"></el-table-column> |
| | | <el-table-column prop="status" label="状态"> |
| | | <template slot-scope="scope"> |
| | | <el-tag :type="getStatusType(scope.row.status)"> |
| | |
| | | <div>一 、实验结果</div> |
| | | </div> |
| | | </div> |
| | | <Table |
| | | :data="experimentResultData" |
| | | :total="0" |
| | | :height="null" |
| | | class="rwuTable" |
| | | > |
| | | <el-table-column |
| | | prop="projectName" |
| | | label="项目课题方案名称" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentCode" |
| | | label="实验编号" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentName" |
| | | label="实验名称" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentDate" |
| | | label="实验日期" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="schemePersonName" |
| | | label="实验员" |
| | | ></el-table-column> |
| | | <Table :data="experimentResultData" :total="0" :height="null" class="rwuTable"> |
| | | <el-table-column prop="projectName" label="项目课题方案名称"></el-table-column> |
| | | <el-table-column prop="experimentCode" label="实验编号"></el-table-column> |
| | | <el-table-column prop="experimentName" label="实验名称"></el-table-column> |
| | | <el-table-column prop="experimentDate" label="实验日期"></el-table-column> |
| | | <el-table-column prop="schemePersonName" label="实验员"></el-table-column> |
| | | <el-table-column prop="createTime" label="创建日期"></el-table-column> |
| | | <el-table-column prop="createBy" label="创建人"></el-table-column> |
| | | <el-table-column prop="status" label="当前状态"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="操作" min-width="100" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" @click="handleViewDetail(scope.row)" |
| | | >详情</el-button |
| | | > |
| | | <el-button type="text" @click="handleViewDetail(scope.row)">详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </Table> |
| | |
| | | <div>二 、检验结果</div> |
| | | </div> |
| | | </div> |
| | | <Table |
| | | :data="inspectionResultData" |
| | | :total="0" |
| | | :height="null" |
| | | class="rwuTable" |
| | | > |
| | | <el-table-column |
| | | prop="projectName" |
| | | label="所属课题方案" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentCode" |
| | | label="所属实验编号" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentName" |
| | | label="实验名称" |
| | | ></el-table-column> |
| | | <Table :data="inspectionResultData" :total="0" :height="null" class="rwuTable"> |
| | | <el-table-column prop="projectName" label="所属课题方案"></el-table-column> |
| | | <el-table-column prop="experimentCode" label="所属实验编号"></el-table-column> |
| | | <el-table-column prop="experimentName" label="实验名称"></el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间"></el-table-column> |
| | | <el-table-column prop="createBy" label="创建人"></el-table-column> |
| | | <el-table-column prop="status" label="状态"> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="操作" min-width="100" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | @click="handleViewInspectionDetail(scope.row)" |
| | | >详情</el-button |
| | | > |
| | | <el-button type="text" @click="handleViewInspectionDetail(scope.row)">详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </Table> |
| | |
| | | </div> |
| | | <el-form :model="formMore" labelWidth="auto"> |
| | | <el-form-item label="" style="margin-bottom: 0"> |
| | | <el-input |
| | | v-model="formMore.createBy" |
| | | placeholder="请输入创建人" |
| | | ></el-input> |
| | | <el-input v-model="formMore.createBy" placeholder="请输入创建人"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="" style="margin-bottom: 0"> |
| | | <el-input |
| | | v-model="formMore.termName" |
| | | placeholder="请输入检测项名称" |
| | | ></el-input> |
| | | <el-input v-model="formMore.termName" placeholder="请输入检测项名称"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="" style="margin-bottom: 0"> |
| | | <el-button type="default" @click="resetForm">重置</el-button> |
| | | <el-button |
| | | type="primary" |
| | | style="margin-left: 10px" |
| | | @click="handleSearch" |
| | | >查询</el-button |
| | | > |
| | | <el-button type="primary" style="margin-left: 10px" @click="handleSearch">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <TableCustom |
| | | :tableData="tableDataMore" |
| | | :total="totalMore" |
| | | :height="null" |
| | | @handlePageChange="handlePageChange" |
| | | @handleSizeChange="handleSizeChange" |
| | | > |
| | | <TableCustom :tableData="tableDataMore" :total="totalMore" :height="null" @handleCurrentChange="handlePageChange" |
| | | @handleSizeChange="handleSizeChange"> |
| | | <template #table> |
| | | <el-table-column |
| | | prop="projectName" |
| | | label="所属项目课题方案" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="originalCode" |
| | | label="原始检验记录编号" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentCode" |
| | | label="所属实验编号" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="experimentName" |
| | | label="实验名称" |
| | | ></el-table-column> |
| | | <el-table-column prop="projectName" label="所属项目课题方案"></el-table-column> |
| | | <el-table-column prop="originalCode" label="原始检验记录编号"></el-table-column> |
| | | <el-table-column prop="experimentCode" label="所属实验编号"></el-table-column> |
| | | <el-table-column prop="experimentName" label="实验名称"></el-table-column> |
| | | <el-table-column prop="termCode" label="检测项编号"></el-table-column> |
| | | <el-table-column prop="termName" label="检测项名称"></el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间"></el-table-column> |
| | |
| | | <el-table-column label="操作" width="180"> |
| | | <template slot-scope="scope"> |
| | | <template> |
| | | <el-button type="text" @click="handleDetail(scope.row.id)" |
| | | >详情</el-button |
| | | > |
| | | <el-button type="text" @click="handleDetail(scope.row.id)">详情</el-button> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </div> |
| | | |
| | | <div class="content-box"> |
| | | <AiEditor |
| | | ref="analysisEditor" |
| | | :readOnly="isView" |
| | | :value="form.experimentResult" |
| | | height="400px" |
| | | placeholder="暂无实验数据分析及结论..." |
| | | /> |
| | | <AiEditor ref="analysisEditor" :readOnly="isView" :value="form.experimentResult" height="400px" |
| | | placeholder="暂无实验数据分析及结论..." /> |
| | | </div> |
| | | |
| | | <div class="header-title"> |
| | |
| | | |
| | | <div class="evaluate-card"> |
| | | <div class="evaluate-card-people"> |
| | | <div |
| | | v-for="technician in labTechnicians" |
| | | :key="technician.id" |
| | | class="evaluate-card-people-item" |
| | | :class="{ |
| | | 'active-people': selectedLabTechnician?.id == technician.id, |
| | | }" |
| | | @click="handleSelectLabTechnician(technician)" |
| | | > |
| | | <div v-for="technician in labTechnicians" :key="technician.id" class="evaluate-card-people-item" :class="{ |
| | | 'active-people': selectedLabTechnician?.id == technician.id, |
| | | }" @click="handleSelectLabTechnician(technician)"> |
| | | {{ technician.nickName }} |
| | | </div> |
| | | </div> |
| | | <div class="evaluate-card-cotent"> |
| | | <template v-if="selectedLabTechnician"> |
| | | <template v-if="selectedLabTechnician.data"> |
| | | <div |
| | | class="evaluate-table-wrapper" |
| | | @click="handleEvaluate('labTechnician')" |
| | | > |
| | | <EvaluateTable |
| | | class="evaluate-table" |
| | | :isReadonly="true" |
| | | :type="1" |
| | | :viewJson="selectedLabTechnician.data.resultEvaluateJson" |
| | | /> |
| | | <div class="evaluate-table-wrapper" @click="handleEvaluate('labTechnician')"> |
| | | <EvaluateTable class="evaluate-table" :isReadonly="true" :type="1" |
| | | :viewJson="selectedLabTechnician.data.resultEvaluateJson" /> |
| | | </div> |
| | | </template> |
| | | <template v-else> |
| | |
| | | |
| | | <div class="evaluate-card"> |
| | | <div class="evaluate-card-people"> |
| | | <div |
| | | v-for="experimenter in experimenters" |
| | | :key="experimenter.id" |
| | | class="evaluate-card-people-item" |
| | | :class="{ |
| | | 'active-people': selectedExperimenter?.id == experimenter.id, |
| | | }" |
| | | @click="handleSelectExperimenter(experimenter)" |
| | | > |
| | | <div v-for="experimenter in experimenters" :key="experimenter.id" class="evaluate-card-people-item" :class="{ |
| | | 'active-people': selectedExperimenter?.id == experimenter.id, |
| | | }" @click="handleSelectExperimenter(experimenter)"> |
| | | {{ experimenter.nickName }} |
| | | </div> |
| | | </div> |
| | | <div class="evaluate-card-cotent"> |
| | | <template v-if="selectedExperimenter"> |
| | | <template v-if="selectedExperimenter.data"> |
| | | <div |
| | | class="evaluate-table-wrapper" |
| | | @click="handleEvaluate('experimenter')" |
| | | > |
| | | <EvaluateTable |
| | | ref="experimenterEvaluateTable" |
| | | class="evaluate-table" |
| | | :isReadonly="true" |
| | | :viewJson="selectedExperimenter.data.resultEvaluateJson" |
| | | /> |
| | | <div class="evaluate-table-wrapper" @click="handleEvaluate('experimenter')"> |
| | | <EvaluateTable ref="experimenterEvaluateTable" class="evaluate-table" :isReadonly="true" |
| | | :viewJson="selectedExperimenter.data.resultEvaluateJson" /> |
| | | </div> |
| | | </template> |
| | | <template v-else> |
| | |
| | | |
| | | <div class="evaluate-card" v-if="isView"> |
| | | <div class="evaluate-card-people"> |
| | | <div |
| | | v-for="engineer in processEngineers" |
| | | :key="engineer.id" |
| | | class="evaluate-card-people-item" |
| | | :class="{ |
| | | 'active-people': selectedProcessEngineer?.id == engineer.id, |
| | | }" |
| | | @click="handleSelectProcessEngineer(engineer)" |
| | | > |
| | | <div v-for="engineer in processEngineers" :key="engineer.id" class="evaluate-card-people-item" :class="{ |
| | | 'active-people': selectedProcessEngineer?.id == engineer.id, |
| | | }" @click="handleSelectProcessEngineer(engineer)"> |
| | | {{ engineer.nickName }} |
| | | </div> |
| | | </div> |
| | | <div class="evaluate-card-cotent"> |
| | | <template v-if="selectedProcessEngineer"> |
| | | <template v-if="selectedProcessEngineer.data"> |
| | | <div |
| | | class="evaluate-table-wrapper" |
| | | @click="handleEvaluate('processEngineer')" |
| | | > |
| | | <EvaluateTable |
| | | class="evaluate-table" |
| | | :isReadonly="true" |
| | | :type="1" |
| | | :viewJson="selectedProcessEngineer.data.resultEvaluateJson" |
| | | /> |
| | | <div class="evaluate-table-wrapper" @click="handleEvaluate('processEngineer')"> |
| | | <EvaluateTable class="evaluate-table" :isReadonly="true" :type="1" |
| | | :viewJson="selectedProcessEngineer.data.resultEvaluateJson" /> |
| | | </div> |
| | | </template> |
| | | <template v-else> |
| | | <div class="no-data">暂未评定</div> |
| | | <div |
| | | v-if=" |
| | | isView && form.status == 2 && (userRole == 1 || userRole == 2) |
| | | " |
| | | class="to-evaluate" |
| | | @click="handleEvaluate('processEngineer')" |
| | | > |
| | | <div v-if=" |
| | | isView && form.status == 2 && (userRole == 1 || userRole == 2) |
| | | " class="to-evaluate" @click="handleEvaluate('processEngineer')"> |
| | | 去评价 |
| | | </div> |
| | | </template> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="add-project-footer" v-if="!isView"> |
| | | <el-button type="primary" class="save-btn" @click="handleSubmit(1)" |
| | | >提交</el-button |
| | | > |
| | | <el-button type="primary" class="save-btn" @click="handleSubmit(1)">提交</el-button> |
| | | <el-button @click="handleSubmit(-1)">存草稿</el-button> |
| | | </div> |
| | | <div |
| | | class="add-project-footer" |
| | | v-if="isView && form.status == 2 && (userRole == 1 || userRole == 2)" |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | class="save-btn" |
| | | @click="handleEvaluate('processEngineer')" |
| | | >工艺工程师评定</el-button |
| | | > |
| | | <div class="add-project-footer" v-if="isView && form.status == 2 && (userRole == 1 || userRole == 2)"> |
| | | <el-button type="primary" class="save-btn" @click="handleEvaluate('processEngineer')">工艺工程师评定</el-button> |
| | | <!-- <el-button @click="handleSubmit(-1)">存草稿</el-button> --> |
| | | </div> |
| | | </el-form> |
| | | <!-- 选择实验调度弹窗 --> |
| | | <experimental-scheduling |
| | | :show="schedulingDialogVisible" |
| | | @close="handleSchedulingClose" |
| | | @submit="handleSchedulingSelect" |
| | | /> |
| | | <experimental-scheduling :show="schedulingDialogVisible" @close="handleSchedulingClose" |
| | | @submit="handleSchedulingSelect" /> |
| | | <!-- 评价弹窗 --> |
| | | <evaluation-dialog |
| | | :modelValue="evaluationDialogVisible" |
| | | :type="currentEvaluationType" |
| | | :viewJson="currentEvaluationData ? currentEvaluationData : ''" |
| | | @update:modelValue="updateEvaluationDialogVisible" |
| | | @submit="handleEvaluationSubmit" |
| | | /> |
| | | <evaluation-dialog :modelValue="evaluationDialogVisible" :type="currentEvaluationType" |
| | | :viewJson="currentEvaluationData ? currentEvaluationData : ''" @update:modelValue="updateEvaluationDialogVisible" |
| | | @submit="handleEvaluationSubmit" /> |
| | | <!-- 检验结果详情弹窗 --> |
| | | <checkout-result |
| | | :visible="checkoutResultVisible" |
| | | :data="currentCheckoutResult" |
| | | @close="handleCheckoutResultClose" |
| | | /> |
| | | <checkout-result :visible="checkoutResultVisible" :data="currentCheckoutResult" |
| | | @close="handleCheckoutResultClose" /> |
| | | <!-- 新增组件弹窗 --> |
| | | <!-- <add-component-dialog |
| | | v-if="showNewDialog" |
| | |
| | | @confirm="handleAddComponent" |
| | | /> --> |
| | | <!-- 实验结果详情 --> |
| | | <ExperimentResultDialog |
| | | :visible.sync="experimentResultDialogVisible" |
| | | :type="'view'" |
| | | :data="currentExperimentResult" |
| | | /> |
| | | <RecordDetail |
| | | :visible.sync="recordDetailVisible" |
| | | :data="currentRecordDetail" |
| | | /> |
| | | <ExperimentResultDialog :visible.sync="experimentResultDialogVisible" :type="'view'" |
| | | :data="currentExperimentResult" /> |
| | | <RecordDetail :visible.sync="recordDetailVisible" :data="currentRecordDetail" /> |
| | | </Card> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | watch: { |
| | | selectedLabTechnician: { |
| | | handler(newVal) {}, |
| | | handler(newVal) { }, |
| | | }, |
| | | }, |
| | | computed: { |
| | |
| | | this.$message.success("删除成功"); |
| | | } |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { }); |
| | | }, |
| | | handleTaskSubmit(formData) { |
| | | const photos = formData.photos.map((file) => ({ |
| | |
| | | type == "labTechnician" |
| | | ? this.selectedLabTechnician.id |
| | | : type == "experimenter" |
| | | ? this.selectedExperimenter.id |
| | | : this.selectedProcessEngineer.id, |
| | | ? this.selectedExperimenter.id |
| | | : this.selectedProcessEngineer.id, |
| | | // teamId: this.selectedScheduling?.teamId, |
| | | status: 1, |
| | | }; |
| | |
| | | }; |
| | | this.taskTableData = [res.experimentDispatchVO]; |
| | | // 获取其他信息 |
| | | await this.getInfomationByDispatchId(res.experimentDispatchVO); |
| | | this.getInfomationByDispatchId(res.experimentDispatchVO); |
| | | |
| | | this.getOriginalPageList(res.experimentDispatchVO); |
| | | } |
| | | if (res.experimentDispatchParticipants) { |
| | | // 处理实验人员数据 |
| | |
| | | } |
| | | } |
| | | } catch (error) { |
| | | this.$message.error("获取详情失败"); |
| | | // this.$message.error("获取详情失败"); |
| | | console.log('errrrrrrrrrrrrrrr', error) |
| | | } |
| | | }, |
| | | // 判断是否可以评定 |
| | |
| | | this.getOriginalPageList(); |
| | | }, |
| | | getOriginalPageList(selectedData) { |
| | | console.log('taskTableData', this.taskTableData) |
| | | if (selectedData || this.taskTableData.length > 0) { |
| | | this.formMore.dispatchId = selectedData.id || this.taskTableData[0].id; |
| | | this.formMore.dispatchId = selectedData ? selectedData.id : this.taskTableData[0].id; |
| | | } else { |
| | | return ; |
| | | return; |
| | | } |
| | | |
| | | getOriginalPageListByDispatchId({ |