| | |
| | | import { |
| | | newPersonnelAddedToTrainingRecords, |
| | | outOfFocusPreservation, trainingAndAssessmentRecordsAdded, trainingAndAssessmentRecordsEvaluate, |
| | | trainingAndAssessmentRecordsPage |
| | | trainingAndAssessmentRecordsPage, deleteTrainingAndAssessmentRecords |
| | | } from "@/api/cnas/personal/personalTraining"; |
| | | |
| | | export default { |
| | |
| | | }, |
| | | addUserTableInfo: { |
| | | name: null, |
| | | type: 2 |
| | | }, |
| | | multipleSelection: [], |
| | | userList: [], |
| | |
| | | }, |
| | | batchDelete() { |
| | | if (this.multipleSelection.length > 0) { |
| | | let ids = this.multipleSelection.map(item => item.trainingRecordId) |
| | | let ids = this.multipleSelection.map(item => item.trainingRecordId).join(',') |
| | | this.$confirm('是否确认删除所选择的数据?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | let formData = new FormData() |
| | | formData.append('ids', ids) |
| | | deleteTrainingAndAssessmentRecords(formData).then(res => { |
| | | deleteTrainingAndAssessmentRecords({ids: ids}).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('删除成功'); |
| | | this.getInfo() |
| | |
| | | <!-- 设备总览 --> |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | height: 50px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_thing { |
| | | width: 350px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 110px; |
| | | font-size: 14px; |
| | | text-align: left; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 110px); |
| | | } |
| | | |
| | | .table { |
| | | background-color: #fff; |
| | | height: calc(100vh - 17em); |
| | | /* padding: 10px; */ |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .card { |
| | | list-style-type: none; |
| | | display: grid; |
| | | grid-template-columns: repeat(auto-fit, 330px); |
| | | justify-content: start; |
| | | grid-gap: 16px; |
| | | min-height: 300px; |
| | | padding-left: 0; |
| | | } |
| | | |
| | | .card li { |
| | | width: 330px; |
| | | height: 165px; |
| | | border-radius: 8px 8px 8px 8px; |
| | | border: 1px solid #EEEEEE; |
| | | margin: 0 !important; |
| | | display: flex; |
| | | align-items: center; |
| | | box-sizing: border-box; |
| | | padding: 16px; |
| | | font-size: 14px; |
| | | color: #666666; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .card li .img { |
| | | width: 90px; |
| | | height: 90px; |
| | | border-radius: 16px; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .list-left .list-left-info { |
| | | line-height: 36px; |
| | | display: flex; |
| | | } |
| | | |
| | | .text-truncate { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap |
| | | } |
| | | |
| | | .circles { |
| | | position: absolute; |
| | | width: 70px; |
| | | height: 70px; |
| | | right: 0; |
| | | top: 0; |
| | | z-index: 0; |
| | | } |
| | | |
| | | .circles .circle { |
| | | border-radius: 50%; |
| | | opacity: 0.2; |
| | | } |
| | | |
| | | .circle0, |
| | | .circle1, |
| | | .circle2 { |
| | | width: 60px; |
| | | height: 60px; |
| | | position: absolute; |
| | | } |
| | | |
| | | .circle3 { |
| | | width: 16px; |
| | | height: 16px; |
| | | position: absolute; |
| | | } |
| | | |
| | | .circle0 { |
| | | bottom: 6px; |
| | | left: 0; |
| | | } |
| | | |
| | | .circle1 { |
| | | bottom: 0; |
| | | right: -30px; |
| | | } |
| | | |
| | | .circle2 { |
| | | left: 0; |
| | | top: -30px; |
| | | } |
| | | |
| | | .circle3 { |
| | | top: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | .success .circle { |
| | | background: #34BD66; |
| | | } |
| | | |
| | | .danger .circle { |
| | | background: #FF3838; |
| | | } |
| | | |
| | | .warning .circle { |
| | | background: #FBB247; |
| | | } |
| | | |
| | | .info .circle { |
| | | background: #909399; |
| | | } |
| | | |
| | | .el-form-item { |
| | | margin-top: 11px; |
| | | margin-bottom: 11px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="role_manage"> |
| | | <div> |
| | | <el-form :model="entity" inline label-position="right" label-width="80px"> |
| | | <el-form :model="entity" inline label-position="right"> |
| | | <el-form-item label="状态:"> |
| | | <el-select v-model="entity.deviceStatus" placeholder="全部" size="small" clearable> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
| | |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .table { |
| | | background-color: #fff; |
| | | height: calc(100vh - 17em); |
| | | /* padding: 10px; */ |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .card { |
| | | list-style-type: none; |
| | | display: grid; |
| | | grid-template-columns: repeat(auto-fit, 330px); |
| | | justify-content: start; |
| | | grid-gap: 16px; |
| | | min-height: 300px; |
| | | padding-left: 0; |
| | | } |
| | | |
| | | .card li { |
| | | width: 330px; |
| | | height: 165px; |
| | | border-radius: 8px 8px 8px 8px; |
| | | border: 1px solid #EEEEEE; |
| | | margin: 0 !important; |
| | | display: flex; |
| | | align-items: center; |
| | | box-sizing: border-box; |
| | | padding: 16px; |
| | | font-size: 14px; |
| | | color: #666666; |
| | | position: relative; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .card li .img { |
| | | width: 90px; |
| | | height: 90px; |
| | | border-radius: 16px; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .list-left .list-left-info { |
| | | line-height: 36px; |
| | | display: flex; |
| | | } |
| | | |
| | | .text-truncate { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | white-space: nowrap |
| | | } |
| | | |
| | | .circles { |
| | | position: absolute; |
| | | width: 70px; |
| | | height: 70px; |
| | | right: 0; |
| | | top: 0; |
| | | z-index: 0; |
| | | } |
| | | |
| | | .circles .circle { |
| | | border-radius: 50%; |
| | | opacity: 0.2; |
| | | } |
| | | |
| | | .circle0, |
| | | .circle1, |
| | | .circle2 { |
| | | width: 60px; |
| | | height: 60px; |
| | | position: absolute; |
| | | } |
| | | |
| | | .circle3 { |
| | | width: 16px; |
| | | height: 16px; |
| | | position: absolute; |
| | | } |
| | | |
| | | .circle0 { |
| | | bottom: 6px; |
| | | left: 0; |
| | | } |
| | | |
| | | .circle1 { |
| | | bottom: 0; |
| | | right: -30px; |
| | | } |
| | | |
| | | .circle2 { |
| | | left: 0; |
| | | top: -30px; |
| | | } |
| | | |
| | | .circle3 { |
| | | top: 0; |
| | | right: 0; |
| | | } |
| | | |
| | | .success .circle { |
| | | background: #34BD66; |
| | | } |
| | | |
| | | .danger .circle { |
| | | background: #FF3838; |
| | | } |
| | | |
| | | .warning .circle { |
| | | background: #FBB247; |
| | | } |
| | | |
| | | .info .circle { |
| | | background: #909399; |
| | | } |
| | | |
| | | .el-form-item { |
| | | margin-top: 11px; |
| | | margin-bottom: 11px; |
| | | } |
| | | </style> |
| | |
| | | <div> |
| | | <div> |
| | | <div style="margin: 10px 0;display: flex;align-items: center;justify-content: space-between;"> |
| | | <span>年度计划表</span> |
| | | <div class="title"> |
| | | <span style="font-weight: bold">年度计划表</span> |
| | | </div> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="getYearTableData">刷新</el-button> |
| | | <el-button style="margin-right: 10px" size="small" type="primary" @click="addYearPlan('add')">新增</el-button> |
| | | <el-button size="small" type="primary" @click="addYearPlan('add')">新增</el-button> |
| | | <!-- <el-button size="small" type="primary" @click="record">导入</el-button>--> |
| | | </div> |
| | | </div> |
| | |
| | | <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column> |
| | | <el-table-column label="计划名称" min-width="180" prop="planName"></el-table-column> |
| | | <el-table-column label="编制人" min-width="100" prop="writeName"></el-table-column> |
| | | <el-table-column label="编制日期" min-width="150" prop="writeTime"></el-table-column> |
| | | <el-table-column label="编制日期" min-width="160" prop="writeTime"></el-table-column> |
| | | <el-table-column label="批准状态" min-width="100" prop="ratifyStatus"> |
| | | <template slot-scope="scope"> |
| | | <el-tag v-if="scope.row.ratifyStatus === 1" type="success">批准</el-tag> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | background :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | @size-change="handleSizeChange" @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <span>年度计划明细表</span> |
| | | <div class="title"> |
| | | <div class="title-search"> |
| | | <span style="width: 120px;font-size: 14px">设备名称及型号:</span> |
| | | <el-input v-model="searchForm.deviceName" clearable size="small" |
| | | style="margin-right: 10px;width: 220px"></el-input> |
| | | <span style="width: 80px;font-size: 14px">仪器编号:</span> |
| | | <el-input v-model="searchForm.deviceNumber" clearable size="small" |
| | | style="margin-right: 10px;width: 220px"></el-input> |
| | | <el-button size="mini" type="primary" @click="getYearTableDetailData(currentRow)">查询</el-button> |
| | | <span style="font-weight: bold">年度计划明细表</span> |
| | | </div> |
| | | <div class="search"> |
| | | <div> |
| | | <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> |
| | | <el-form-item label="设备名称及型号" prop="deviceName"> |
| | | <el-input v-model="searchForm.deviceName" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="仪器编号" prop="deviceNumber"> |
| | | <el-input v-model="searchForm.deviceNumber" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="mini" @click="getYearTableDetailData(currentRow)">查询</el-button> |
| | | <el-button size="mini" @click="reset">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="handleForm('add')">新增</el-button> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | background :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | |
| | | <style scoped> |
| | | .title { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | position: relative; |
| | | font-size: 16px; |
| | | color: #333; |
| | | font-weight: 400; |
| | | padding-left: 10px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .title-search { |
| | | .title::before { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 4px; |
| | | content: ''; |
| | | width: 4px; |
| | | height: 16px; |
| | | background-color: #3A7BFA; |
| | | border-radius: 2px; |
| | | } |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 10px 0; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
| | |
| | | width="70"></el-table-column> |
| | | <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column> |
| | | <el-table-column label="编制人" min-width="120" prop="compiler"></el-table-column> |
| | | <el-table-column label="编制时间" min-width="150" prop="datePreparation"></el-table-column> |
| | | <el-table-column label="编制时间" min-width="160" prop="datePreparation"></el-table-column> |
| | | <el-table-column label="审核人" min-width="150" prop="audit"></el-table-column> |
| | | <el-table-column label="审核时间" min-width="180" prop="auditDate"></el-table-column> |
| | | <el-table-column label="审核状态" min-width="180" prop="status"> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | <div> |
| | | <div> |
| | | <div style="margin: 10px 0;display: flex;align-items: center;justify-content: space-between;"> |
| | | <span>年度计划表</span> |
| | | <div class="title"> |
| | | <span style="font-weight: bold">年度计划表</span> |
| | | </div> |
| | | <div style="display: flex;align-items: center;"> |
| | | <el-button style="margin-right: 10px" size="small" type="primary" @click="getYearTableData">刷新</el-button> |
| | | <el-button style="margin-right: 10px" size="small" type="primary" @click="addYearPlan('add')">新增</el-button> |
| | | <el-button size="small" type="primary" @click="getYearTableData">刷新</el-button> |
| | | <el-button size="small" type="primary" @click="addYearPlan('add')">新增</el-button> |
| | | <!-- <el-upload ref="upload" :action="action"--> |
| | | <!-- :before-upload="beforeUpload" :headers="uploadHeader" :on-error="onError"--> |
| | | <!-- :on-success="handleSuccessUp" :show-file-list="false" accept='.xls,.xlsx'>--> |
| | |
| | | <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column> |
| | | <el-table-column label="计划名称" min-width="180" prop="planName"></el-table-column> |
| | | <el-table-column label="编制人" min-width="100" prop="writeName"></el-table-column> |
| | | <el-table-column label="编制日期" min-width="150" prop="writeTime"></el-table-column> |
| | | <el-table-column label="编制日期" min-width="160" prop="writeTime"></el-table-column> |
| | | <el-table-column label="批准状态" min-width="100" prop="ratifyStatus"> |
| | | <template slot-scope="scope"> |
| | | <el-tag v-if="scope.row.ratifyStatus === 1" type="success">批准</el-tag> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | background :total="pagination.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | @size-change="handleSizeChange" @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <span>年度计划明细表</span> |
| | | <div class="title"> |
| | | <div class="title-search"> |
| | | <span style="width: 120px;font-size: 14px">设备编号:</span> |
| | | <el-input v-model="searchForm.deviceNumber" clearable size="small" |
| | | style="margin-right: 10px;width: 220px"></el-input> |
| | | <span style="width: 80px;font-size: 14px">设备名称:</span> |
| | | <el-input v-model="searchForm.deviceName" clearable size="small" |
| | | style="margin-right: 10px;width: 220px"></el-input> |
| | | <el-button size="mini" type="primary" @click="getYearTableDetailData(currentRow)">查询</el-button> |
| | | <span style="font-weight: bold">年度计划明细表</span> |
| | | </div> |
| | | <div class="search"> |
| | | <div> |
| | | <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> |
| | | <el-form-item label="设备编号" prop="deviceNumber"> |
| | | <el-input v-model="searchForm.deviceNumber" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="设备名称" prop="deviceName"> |
| | | <el-input v-model="searchForm.deviceName" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="mini" @click="getYearTableDetailData(currentRow)">查询</el-button> |
| | | <el-button size="mini" @click="reset">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="handleForm('add')">新增</el-button> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | .title { |
| | | position: relative; |
| | | font-size: 16px; |
| | | color: #333; |
| | | font-weight: 400; |
| | | padding-left: 10px; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .title-search { |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 10px 0; |
| | | .title::before { |
| | | position: absolute; |
| | | left: 0; |
| | | top: 4px; |
| | | content: ''; |
| | | width: 4px; |
| | | height: 16px; |
| | | background-color: #3A7BFA; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | |
| | | <el-table-column prop="quantity" label="份数" min-width="80" /> |
| | | <el-table-column prop="pageCount" label="页码" min-width="80" /> |
| | | <el-table-column prop="provider" label="提供者" min-width="150" /> |
| | | <el-table-column prop="provideDate" label="归档日期" min-width="150" /> |
| | | <el-table-column prop="provideDate" label="归档日期" min-width="170" /> |
| | | <el-table-column prop="comments" label="备注" min-width="150" /> |
| | | <el-table-column fixed="right" label="操作" min-width="180"> |
| | | <el-table-column fixed="right" label="操作" min-width="180" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small" @click="handleAttachmentClick(scope.row)">下载附件</el-button> |
| | | <el-button type="text" size="small" @click="handleViewClick(scope.row)">编辑</el-button> |
| | |
| | | .page-header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | h4 { |
| | |
| | | <!-- 设备工具明细 --> |
| | | <template> |
| | | <div class="role_manage"> |
| | | <div class="search" v-show="!showData"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">状态:</div> |
| | | <div class="search"> |
| | | <div> |
| | | <el-form :model="queryParams" ref="queryParams" size="small" :inline="true"> |
| | | <el-form-item label="状态" prop="deviceStatus" class="form-item"> |
| | | <el-select v-model="queryParams.deviceStatus" placeholder="全部" size="small"> |
| | | <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">设备名称:</div> |
| | | <div class="search_input"> |
| | | </el-form-item> |
| | | <el-form-item label="设备名称" prop="deviceName"> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="queryParams.deviceName" |
| | | @keyup.enter.native="refreshTable()"> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing"> |
| | | <div class="search_label">规格型号:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable |
| | | </el-form-item> |
| | | <el-form-item label="规格型号" prop="specificationModel"> |
| | | <el-input size="small" placeholder="请输入" clearable |
| | | v-model="queryParams.specificationModel" @keyup.enter.native="refreshTable()"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="mini" @click="refreshTable">查询</el-button> |
| | | <el-button size="mini" @click="refresh">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div style="padding-left: 30px;"> |
| | | <el-button size="mini" type="primary" @click="refreshTable()">查询</el-button> |
| | | <el-button size="mini" @click="refresh()">重置</el-button> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="dialogVisible2 = true">新增</el-button> |
| | | <el-button size="small" type="primary" @click="handleDownOne">导出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table" v-show="!showData"> |
| | | <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 320px)'" |
| | | <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 300px)'" |
| | | :page="page" @pagination="pagination"></lims-table> |
| | | </div> |
| | | <el-dialog :title="isUp ? '设备详情' : '档案修订'" :visible.sync="dialogVisible" width="70%" top="5vh" |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .role_manage { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .title { |
| | | line-height: 15px; |
| | | } |
| | | |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | margin-top: 10px; |
| | | } |
| | |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 80px); |
| | | } |
| | | |
| | | .table { |
| | | margin-top: 12px; |
| | | background-color: #fff; |
| | | height: calc(100vh - 17em); |
| | | height: calc(100vh - 16em); |
| | | } |
| | | |
| | | .el-form-item { |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .picName { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | |
| | | word-break: break-all; |
| | | width: 120px; |
| | | } |
| | | .form-item >>>.el-form-item__content { |
| | | width: 120px; |
| | | } |
| | | </style> |
| | |
| | | <el-table-column label="年份" min-width="80" prop="planYear"></el-table-column> |
| | | <el-table-column label="文件名称" min-width="120" prop="compiler"></el-table-column> |
| | | <el-table-column label="编制人" min-width="150" prop="compiler"></el-table-column> |
| | | <el-table-column label="编制时间" min-width="150" prop="datePreparation"></el-table-column> |
| | | <el-table-column label="编制时间" min-width="160" prop="datePreparation"></el-table-column> |
| | | <el-table-column label="批准人" min-width="180" prop="audit"></el-table-column> |
| | | <el-table-column label="批准状态" min-width="180" prop="status"> |
| | | <template slot-scope="scope"> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | <template> |
| | | <div> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">样品编号:</div> |
| | | <el-input v-model="search.sampleCode" clearable placeholder="请输入" size="small" style="width: 60%;" |
| | | <el-form :model="search" ref="search" size="small" :inline="true"> |
| | | <el-form-item label="样品编号"> |
| | | <el-input v-model="search.sampleCode" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input> |
| | | <div class="search_label">管理编号:</div> |
| | | <el-input v-model="search.managementNumber" clearable placeholder="请输入" size="small" style="width: 60%;" |
| | | </el-form-item> |
| | | <el-form-item label="管理编号"> |
| | | <el-input v-model="search.managementNumber" clearable placeholder="请输入" size="small" |
| | | @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="mini" type="primary" @click="getTableList(clickNodeVal.value)">查询</el-button> |
| | | <el-button size="mini" @click="resetSearch">重置</el-button> |
| | | </div> |
| | | <div class="btns" v-if="isMenuList != 1"> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="dialogVisible = true, openAdd()">新 建</el-button> |
| | | <el-button :loading="outLoading" size="small" type="primary" @click="openHandleOut">导 出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="tables" style="margin-top: 10px;"> |
| | | <div> |
| | | <el-table ref="Recordtable" :data="formParamList" height="calc(100vh - 20em)" |
| | | v-loading="tableLoading" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border> |
| | | <!-- 表格列 --> |
| | | <el-table-column label="序号" type="index" width="120"> |
| | | <el-table-column label="序号" type="index" width="70" align="center"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | | </template> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="异常情况" min-width="120" prop="abnormal" />--> |
| | | <el-table-column label="使用开始日期" min-width="150" prop="useStartDate" /> |
| | | <el-table-column label="使用结束日期" min-width="150" prop="useEndDate" /> |
| | | <el-table-column label="使用开始日期" min-width="170" prop="useStartDate" /> |
| | | <el-table-column label="使用结束日期" min-width="170" prop="useEndDate" /> |
| | | <el-table-column label="使用人" min-width="120" prop="usePerson" /> |
| | | <el-table-column label="备注" min-width="120" prop="remark" /> |
| | | <!-- 操作按钮 --> |
| | |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | @current-change="handleCurrentChange" background> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog :visible.sync="dialogVisible" title="仪器设备使用记录表" top="5vh" width="55%"> |
| | |
| | | dialogVisible: false, |
| | | operationType: '', |
| | | formParamList: [], |
| | | tableLoading: false |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | if (deviceId === undefined) { |
| | | deviceId = '' |
| | | } |
| | | this.tableLoading = true |
| | | await deviceRecordPage({ |
| | | deviceId: deviceId, |
| | | ...this.search |
| | | }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code == 200) { |
| | | this.formParamList = res.data.records |
| | | this.search.total = res.data.total |
| | | } |
| | | }).catch(err => { |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | // 打开导出弹框选择编制人、批准人 |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .tables { |
| | | width: 100%; |
| | | height: calc(100vh - 15em); |
| | | } |
| | | |
| | | .el-from { |
| | | max-width: 400px; |
| | | margin: 0 auto; |
| | | } |
| | | |
| | | .form-row { |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .el-input { |
| | | width: calc(100% - 120px); |
| | | /* 确保输入框宽度一致 */ |
| | | } |
| | | |
| | | .form-row .el-form-item { |
| | | flex: 1; |
| | | /* 每个表单项占据相同比例的空间 */ |
| | | margin-right: 100px; |
| | | /* 可选:为右侧元素添加间距 */ |
| | | } |
| | | |
| | | /* 移除最后一个元素的右边距 */ |
| | | .form-row .el-form-item:last-child { |
| | | margin-right: 0; |
| | | |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | margin-top: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | position: relative; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 40px; |
| | | |
| | | } |
| | | |
| | | .search_label { |
| | | width: 140px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .btns { |
| | | position: absolute; |
| | | right: 0px; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | } |
| | | </style> |
| | |
| | | <div> |
| | | <div> |
| | | <div class="title"> |
| | | <div class="title-search"> |
| | | <span style="width: 80px;font-size: 14px">单位名称:</span> |
| | | <el-input v-model="searchForm.unitName" clearable size="small" |
| | | style="margin-right: 10px;width: 220px"></el-input> |
| | | <el-button size="mini" type="primary" @click="getYearTableDetailData">查询</el-button> |
| | | <div> |
| | | <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> |
| | | <el-form-item label="单位名称" prop="unitName"> |
| | | <el-input v-model="searchForm.unitName" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="mini" @click="getYearTableDetailData">查询</el-button> |
| | | <el-button size="mini" @click="reset">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="handleForm('')">新增</el-button> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="pagination1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | :total="pagination1.total" layout="->,total, sizes, prev, pager, next, jumper" background |
| | | @size-change="handleSizeChange1" @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </div> |
| | |
| | | |
| | | <style scoped> |
| | | .title { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | |
| | | .title-search { |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 10px 0; |
| | | margin-top: 10px; |
| | | } |
| | | </style> |
| | |
| | | </div> |
| | | </div> |
| | | <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" |
| | | :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0"> |
| | | :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" |
| | | key="tableData0"> |
| | | <div slot="action" slot-scope="scope"> |
| | | <el-button size="small" type="text" @click="handleDataLook(scope.row)">数据查看</el-button> |
| | | <el-button type="text" size="small" |
| | |
| | | scope.row.insState == 3 || |
| | | scope.row.insState == 5 || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)) |
| | | )" @click="handleInspection(scope.row)">检验</el-button> |
| | | )" |
| | | @click="handleInspection(scope.row)">检验</el-button> |
| | | <el-button type="text" size="small" :disabled="( |
| | | scope.row.userName == null || |
| | | scope.row.insState == 5 || |
| | | scope.row.insState == 3 || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)) |
| | | )" @click="handleConnect(scope.row)">交接</el-button> |
| | | )" |
| | | @click="handleConnect(scope.row)">交接</el-button> |
| | | <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">原始记录</el-button> |
| | | <el-popover placement="bottom" trigger="hover" style="margin-left: 6px"> |
| | | <template #reference> |
| | |
| | | </template> |
| | | <div> |
| | | <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px" |
| | | type="text" size="small" @click="download(scope.row)">下载报告</el-button> |
| | | <el-upload ref='upload' :action="javaApi + '/insReport/inReport'" :before-upload="beforeUpload" |
| | | :data="{ id: scope.row.insReportId }" :headers="uploadHeader" :on-error="onError" |
| | | :on-success="handleSuccessUp" :show-file-list="false" style="display: inline;margin: 0 6px" |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px" type="text" size="small" @click="download(scope.row)">下载报告</el-button> |
| | | <el-upload ref='upload' |
| | | :action="javaApi + '/insReport/inReport'" |
| | | :before-upload="beforeUpload" |
| | | :data="{id: scope.row.insReportId}" |
| | | :headers="uploadHeader" :on-error="onError" |
| | | :on-success="handleSuccessUp" |
| | | :show-file-list="false" |
| | | style="display: inline;margin: 0 6px" |
| | | accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'> |
| | | <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small" |
| | | type="text">上传</el-button> |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small" type="text">上传</el-button> |
| | | </el-upload> |
| | | <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" |
| | | @click="handleRestore(scope.row)">还原</el-button> |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleRestore(scope.row)">还原</el-button> |
| | | <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" |
| | | @click="handleIssued(scope.row)">查看报告</el-button> |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleIssued(scope.row)">查看报告</el-button> |
| | | </div> |
| | | </el-popover> |
| | | </div> |
| | |
| | | <!--查看工时弹框--> |
| | | <viewManHourDia ref="viewManHourDia"></viewManHourDia> |
| | | <!--不合格复测查看弹框--> |
| | | <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" |
| | | @closeRetestLook="closeRetestLook"></un-pass-retest-result> |
| | | <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result> |
| | | <!--报告查看--> |
| | | <el-dialog title="报告查看" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false" |
| | | :fullscreen="fullscreen"> |
| | |
| | | claimVisible: false, |
| | | tabList: [ |
| | | { label: "委托", value: 0 }, |
| | | { label: "原辅料", value: 1 }, |
| | | { label: "原材料", value: 1 }, |
| | | ], |
| | | active: 1, |
| | | tabIndex: 0, |
| | |
| | | planTotal: 0, |
| | | insStateList: [], |
| | | state: 0, // 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看 |
| | | typeSource: null, // 0:成品下单,1:原辅料下单 |
| | | sonLaboratory: null, // 0:委托,1:原辅料 |
| | | typeSource: null, // 0:成品下单,1:原材料下单 |
| | | sonLaboratory: null, // 0:委托,1:原材料 |
| | | activeFace: 0, // 1:下单,2:查看,3:审核,默认为0 |
| | | currentId: null, |
| | | entityCopy: {}, |
| | |
| | | sonLaboratoryList: [], |
| | | typeSourceList: [ |
| | | { label: "成品下单", value: 0 }, |
| | | { label: "原辅料下单", value: 1 }, |
| | | { label: "原材料下单", value: 1 }, |
| | | ], |
| | | customsInspection: {}, |
| | | showInfoDialog: false, // 产业链信息查看 |
| | |
| | | if (params == 0) { |
| | | return "成品下单"; |
| | | } else { |
| | | return "原辅料下单"; |
| | | return "原材料下单"; |
| | | } |
| | | }, |
| | | }, |
| | |
| | | this.currentId = parseInt(row.id); |
| | | switch (row.isCopper) { |
| | | case 0: |
| | | // 原辅料 |
| | | // 原材料 |
| | | this.$router.push({ |
| | | path: "/materialOrder/customsInspection", query: { |
| | | customsInspection: row, |
| | |
| | | border-color: #3a7bfa; |
| | | color: #3a7bfa; |
| | | } |
| | | |
| | | .center-options { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | </div> |
| | | <el-drawer :size="550" :visible.sync="sampleVisible" title="样品切换"> |
| | | <el-table v-if="sampleVisible" ref="productTable" :current-row-key="currentKey" :data="sampleProduct" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :row-class-name="tableRowClassName" |
| | | :row-key="(record) => record.index" border class="el-table" height="100%" highlight-current-row |
| | | tooltip-effect="dark" @row-click="handleChangeSample"> |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | :row-class-name="tableRowClassName" :row-key="(record) => record.index" border class="el-table" height="100%" |
| | | highlight-current-row tooltip-effect="dark" @row-click="handleChangeSample"> |
| | | <el-table-column :key="Math.random()" align="center" label="序号" type="index" width="70px"> |
| | | </el-table-column> |
| | | <el-table-column label="样品编号" min-width="100px" prop="sampleCode" show-overflow-tooltip></el-table-column> |
| | |
| | | humidity: this.insOrder.humidity ? this.insOrder.humidity : null, |
| | | }; |
| | | if (this.typeSource == "1") { |
| | | this.getRawMaterialTag(this.currentSample.id); // 原辅料的检验任务查询批数 |
| | | this.getRawMaterialTag(this.currentSample.id); // 原材料的检验任务查询批数 |
| | | this.rawMaterialTag = "1"; |
| | | } |
| | | this.getEquipOptions(1); |
| | |
| | | <div class="table-tab"> |
| | | <div> |
| | | <ul class="tab"> |
| | | <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" |
| | | @click="handleTab(2)">委托已检</li> |
| | | <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)"> |
| | | 抽样已检</li> |
| | | <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回 |
| | | </li> |
| | | <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)"> |
| | | 撤销</li> |
| | | <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">待审核</li> |
| | | <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">检验中</li> |
| | | <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">委托已检</li> |
| | | <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">抽样已检</li> |
| | | <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">退回</li> |
| | | <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">撤销</li> |
| | | <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">全部</li> |
| | | </ul> |
| | | </div> |
| | |
| | | </el-dialog> |
| | | <!-- 撤销 --> |
| | | <el-dialog :before-close="handleClose" :visible.sync="quashDialogVisible" title="下单撤销" width="30%"> |
| | | <p v-if="!isQuash" style="font-size:16px;color:#333333">委托编号<span style="color:#34BD66">{{ |
| | | this.insOrderRow.entrustCode }}</span>的信息是否撤销</p> |
| | | <p v-if="!isQuash" style="font-size:16px;color:#333333">委托编号<span |
| | | style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>的信息是否撤销</p> |
| | | <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px"> |
| | | <el-form-item label="请输入撤销原因:"> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="handleNo">{{ deleteTilte == '撤销' ? '取 消' : '不通过' }}</el-button> |
| | | <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? '确 定' : |
| | | '通过'}}</el-button> |
| | | <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '撤销' ? '确 定' : '通过'}}</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | <el-row style="margin-top: 0.01cm;font-size: 0.20cm;"> |
| | | <el-col style="display: flex;align-items: center;"><span>样品状态: |
| | | </span> |
| | | <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span |
| | | v-if="item.insState != 0" class="scor"></span>待检 |
| | | <span style="white-space: nowrap;"><span v-if="item.insState == 0">√</span><span v-if="item.insState != 0" |
| | | class="scor"></span>待检 |
| | | <span v-if="item.insState == 1">√</span><span v-if="item.insState != 1" class="scor"></span>在检 |
| | | <span v-if="item.insState == 2">√</span><span v-if="item.insState != 2" class="scor"></span>已检 |
| | | <span v-if="item.isLeave == 1">√</span><span v-if="item.isLeave != 1" class="scor"></span>留样</span> |
| | |
| | | state: 0,// 0:台账页,1:检验页面,2检验页面(复核),默认为0,3数据查看 |
| | | InspectionKey: 1, |
| | | inspectorList: [],//检验人员列表 |
| | | sonLaboratory: null,// 0:委托,1:原辅料 |
| | | typeSource: null,// 0:成品下单,1:原辅料下单 |
| | | sonLaboratory: null,// 0:委托,1:原材料 |
| | | typeSource: null,// 0:成品下单,1:原材料下单 |
| | | deleteTilte: '撤销', |
| | | examine: null, |
| | | deleteList: [], |
| | |
| | | <el-button size="small" style="height: 38px" type="primary">附件上传</el-button> |
| | | </el-upload> |
| | | </div> |
| | | <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" key="tableDataFile" |
| | | :tableLoading="tableLoadingFile"></lims-table> |
| | | <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" |
| | | key="tableDataFile" :tableLoading="tableLoadingFile"></lims-table> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | loadingVerify: false, // 审核人员 |
| | | typeSourceList: [ |
| | | { label: '成品下单', value: 0 }, |
| | | { label: '原辅料下单', value: 1 }, |
| | | { label: '原材料下单', value: 1 }, |
| | | ], |
| | | orderTypeList: [ |
| | | { label: '委托试验', value: 'Customer-ordered test' }, |
| | |
| | | orderId: 0, |
| | | inspectorList: [],//检验人员列表 |
| | | InspectionKey: 1, |
| | | typeSource: null,// 0:成品下单,1:原辅料下单 |
| | | typeSource: null,// 0:成品下单,1:原材料下单 |
| | | sonLaboratory: '', // 试验室 |
| | | filesDialogVisible: false, |
| | | filesLookInfo: {}, |
| | |
| | | if (params == 0) { |
| | | return "成品下单"; |
| | | } else { |
| | | return "原辅料下单"; |
| | | return "原材料下单"; |
| | | } |
| | | }, |
| | | }, |
| | |
| | | this.currentId = parseInt(row.insOrderId) |
| | | switch (row.isCopper) { |
| | | case 0: |
| | | // 原辅料 |
| | | // 原材料 |
| | | this.$router.push({ |
| | | path: "/materialOrder/customsInspection", query: { |
| | | customsInspection: row, |
| | |
| | | isShow: this.unPassDialog, |
| | | unPassForm: { // 不合格处理数据 |
| | | headline: '', // 标题 |
| | | inventoryQuantityId: '', // 原辅料id,不做展示,只传值 |
| | | inventoryQuantityId: '', // 原材料id,不做展示,只传值 |
| | | supplierName: '', // 供应商名称 |
| | | materialName: '', // 物料名称 |
| | | productionBatch: '', // 生产批次 |
| | |
| | | this.unPassForm.insOrderId = res.data.insOrder.id // 订单id |
| | | this.unPassForm.materialName = res.data.insOrder.sampleType // 物料名称 |
| | | this.unPassForm.specsModels = res.data.insOrder.partDetail // 规格型号 |
| | | this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // 原辅料id |
| | | this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // 原材料id |
| | | this.unPassForm.supplierName = res.data.insOrderTemplate.supplierName // 供应商名称 |
| | | this.unPassForm.productionBatch = res.data.insOrderTemplate.updateBatchNo // 生产批次 |
| | | this.unPassForm.cargoQuantity = res.data.insOrderTemplate.qtyArrived + res.data.insOrderTemplate.buyUnitMeas // 到货数量 |
| | |
| | | <div v-if="!isShowDataCom"> |
| | | <el-form ref="entity" size="small" :inline="true"> |
| | | <el-form-item style="width: 16%;"> |
| | | <el-date-picker v-model="datePicker" end-placeholder="结束日期" format="yyyy-MM-dd" placeholder="选择日期" |
| | | range-separator="至" size="small" start-placeholder="开始日期" style="width: 100%;" type="daterange" |
| | | <el-date-picker |
| | | v-model="datePicker" |
| | | end-placeholder="结束日期" |
| | | format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | range-separator="至" |
| | | size="small" |
| | | start-placeholder="开始日期" |
| | | style="width: 100%;" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | <el-input v-model="supplierName" clearable placeholder="请输入供应商名称" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="检验项名称" prop="supplierName"> |
| | | <el-select v-model="itemNames" :loading="selectLoading" clearable multiple placeholder="请选择" size="small" |
| | | style="width: 90%;" @focus="getItemList"> |
| | | <el-option v-for="item in itemNamesList" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select v-model="itemNames" :loading="selectLoading" clearable multiple placeholder="请选择" |
| | | size="small" style="width: 90%;" @focus="getItemList"> |
| | | <el-option |
| | | v-for="item in itemNamesList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <el-col :span="24"> |
| | | <div class="inspection-card"> |
| | | <div style="display: flex;align-items: center;margin-bottom: 10px;justify-content: space-between;"> |
| | | <div>原辅料项检分析列表</div> |
| | | <div>原材料项检分析列表</div> |
| | | <el-button size="small" type="primary" @click="openShowData">查看数据分析</el-button> |
| | | </div> |
| | | <lims-table :tableData="editTableData" :column="editColumn" height="400" key="tableData" :isSelection="true" |
| | | :handleSelectionChange="handleSelectionChange" :tableLoading="editLoading"></lims-table> |
| | | <lims-table :tableData="editTableData" :column="editColumn" |
| | | height="400" key="tableData" :isSelection="true" |
| | | :handleSelectionChange="handleSelectionChange" |
| | | :tableLoading="editLoading"></lims-table> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="6" style="padding-top: 14px"> |
| | | <div style="display: flex;margin-left: 10px;align-items: center"> |
| | | <span style="width: 100px">分组类型:</span> |
| | | <el-select v-model="groupType" clearable placeholder="请选择" size="small" style="width: 90%;" |
| | | @change="getBarInfo"> |
| | | <el-option v-for="item in groupTypeList" :key="item.value" :label="item.label" :value="item.value"> |
| | | <el-select v-model="groupType" clearable placeholder="请选择" |
| | | size="small" |
| | | style="width: 90%;" @change="getBarInfo"> |
| | | <el-option |
| | | v-for="item in groupTypeList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <el-col :span="24"> |
| | | <div class="inspection-card"> |
| | | <div class="title">检验项数据对比</div> |
| | | <Echarts ref="chart" :chartStyle="chartStyle" :dataset="dataset" :grid="grid" :options="echartsOptions" |
| | | :series="echartsSeries" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis" style="height: 40vh;"></Echarts> |
| | | <Echarts ref="chart" |
| | | :chartStyle="chartStyle" |
| | | :dataset="dataset" |
| | | :grid="grid" |
| | | :options="echartsOptions" |
| | | :series="echartsSeries" |
| | | :tooltip="tooltip" |
| | | :xAxis="xAxis" |
| | | :yAxis="yAxis" |
| | | style="height: 40vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <div class="inspection-card"> |
| | | <div class="title">原辅料项检合格率</div> |
| | | <Echarts ref="chart" :chartStyle="chartStyle" :dataset="dataset1" :grid="grid" :options="echartsOptions1" |
| | | :series="echartsSeries1" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis1" style="height: 40vh;"> |
| | | </Echarts> |
| | | <div class="title">原材料项检合格率</div> |
| | | <Echarts ref="chart" |
| | | :chartStyle="chartStyle" |
| | | :dataset="dataset1" |
| | | :grid="grid" |
| | | :options="echartsOptions1" |
| | | :series="echartsSeries1" |
| | | :tooltip="tooltip" |
| | | :xAxis="xAxis" |
| | | :yAxis="yAxis1" |
| | | style="height: 40vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%"> |
| | | <div v-if="dataDialogVisible" style="height: 70vh;overflow-y: auto;"> |
| | | <lims-table :tableData="tableData" :column="column" @pagination="pagination" key="tableData" :page="page" |
| | | :tableLoading="tableLoading"></lims-table> |
| | | <lims-table :tableData="tableData" :column="column" |
| | | @pagination="pagination" key="tableData" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | </el-dialog> |
| | | <DataComparison v-if="isShowDataCom" :comparisonData="comparisonData" :selectRow="selectRow" @goBack="goBack"> |
| | | </DataComparison> |
| | | <DataComparison v-if="isShowDataCom" :comparisonData="comparisonData" |
| | | :selectRow="selectRow" @goBack="goBack"></DataComparison> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | return |
| | | } |
| | | for (let i = 0; i < res.data.itemNames.length; i++) { |
| | | this.echartsSeries.push({ |
| | | type: 'line', label: { |
| | | this.echartsSeries.push({type: 'line', label: { |
| | | show: true, |
| | | position: 'top' |
| | | }, |
| | | }) |
| | | },}) |
| | | } |
| | | this.dataset.dimensions = this.HaveJson(res.data.itemNames) |
| | | this.dataset.dimensions.unshift('product') |
| | |
| | | return |
| | | } |
| | | for (let i = 0; i < res.data.itemNames.length; i++) { |
| | | this.echartsSeries1.push({ |
| | | type: 'line', tooltip: { |
| | | this.echartsSeries1.push({type: 'line',tooltip: { |
| | | valueFormatter: function (value) { |
| | | return value + '%'; |
| | | } |
| | |
| | | show: true, |
| | | position: 'top', |
| | | formatter: (params) => params.value[params.dimensionNames[params.encode.y[0]]] + '%' |
| | | }, |
| | | }) |
| | | },}) |
| | | } |
| | | this.dataset1.dimensions = this.HaveJson(res.data.itemNames) |
| | | this.dataset1.dimensions.unshift('product') |
| | |
| | | <el-col :span="20"> |
| | | <el-form ref="entity" size="small" :inline="true"> |
| | | <el-form-item style="width: 20%;"> |
| | | <el-date-picker v-model="datePicker" end-placeholder="结束日期" format="yyyy-MM-dd" placeholder="选择日期" |
| | | range-separator="至" size="small" start-placeholder="开始日期" type="daterange" style="width: 100%;" |
| | | value-format="yyyy-MM-dd" @change="changeDatePicker"> |
| | | <el-date-picker |
| | | v-model="datePicker" |
| | | end-placeholder="结束日期" |
| | | format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | range-separator="至" |
| | | size="small" |
| | | start-placeholder="开始日期" |
| | | type="daterange" |
| | | style="width: 100%;" |
| | | value-format="yyyy-MM-dd" |
| | | @change="changeDatePicker"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="样品名称" prop="sampleName"> |
| | |
| | | <el-input v-model="modelName" clearable placeholder="请输入型号" size="small" @change="changeDate"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="供应商名称" prop="supplierName"> |
| | | <el-input v-model="supplierName" clearable placeholder="请输入供应商名称" size="small" |
| | | @change="changeDate"></el-input> |
| | | <el-input v-model="supplierName" clearable placeholder="请输入供应商名称" size="small" @change="changeDate"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | |
| | | <el-row :gutter="20"> |
| | | <el-col :span="8"> |
| | | <div class="pie-card"> |
| | | <div class="title">原辅料合格率</div> |
| | | <div class="title">原材料合格率</div> |
| | | <span class="data">{{ passRate }}</span> |
| | | <Echarts ref="chart" :legend="pieLegend" :series="materialPieSeries" :tooltip="pieTooltip" |
| | | <Echarts ref="chart" |
| | | :legend="pieLegend" |
| | | :series="materialPieSeries" |
| | | :tooltip="pieTooltip" |
| | | style="height: 36vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="pie-card"> |
| | | <div class="title"><span style="color: #F56C6C">本月</span>检验类型数量</div> |
| | | <Echarts ref="chart" :chartStyle="chartStyle2" :legend="pieLegend" :series="materialPieSeries1" |
| | | :tooltip="pieTooltip" style="height: 36vh;"></Echarts> |
| | | <Echarts ref="chart" |
| | | :chartStyle="chartStyle2" |
| | | :legend="pieLegend" |
| | | :series="materialPieSeries1" |
| | | :tooltip="pieTooltip" |
| | | style="height: 36vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="pie-card"> |
| | | <div class="title">原辅料<span style="color: #F56C6C">本月</span>与<span style="color: #F56C6C">上月</span>合格率对比</div> |
| | | <Echarts ref="chart" :barColors="barColors2" :chartStyle="chartStyle" :grid="grid" :legend="barLegend" |
| | | :series="barSeries" :tooltip="tooltip" :xAxis="xAxis1" :yAxis="yAxis1" style="height: 36vh;"></Echarts> |
| | | <div class="title">原材料<span style="color: #F56C6C">本月</span>与<span style="color: #F56C6C">上月</span>合格率对比</div> |
| | | <Echarts ref="chart" |
| | | :barColors="barColors2" |
| | | :chartStyle="chartStyle" |
| | | :grid="grid" |
| | | :legend="barLegend" |
| | | :series="barSeries" |
| | | :tooltip="tooltip" |
| | | :xAxis="xAxis1" |
| | | :yAxis="yAxis1" |
| | | style="height: 36vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="24"> |
| | | <div class="inspection-card"> |
| | | <div class="title">合格率</div> |
| | | <Echarts ref="chart" :barColors="barColors" :grid="grid" :legend="legend" :lineColors="lineColors" |
| | | :options="echartsOptions" :series="echartsSeries" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis" |
| | | <Echarts ref="chart" |
| | | :barColors="barColors" |
| | | :grid="grid" |
| | | :legend="legend" |
| | | :lineColors="lineColors" |
| | | :options="echartsOptions" |
| | | :series="echartsSeries" |
| | | :tooltip="tooltip" |
| | | :xAxis="xAxis" |
| | | :yAxis="yAxis" |
| | | style="height: 40vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | |
| | | this.xAxis[0].data = xAxis |
| | | }) |
| | | }, |
| | | // 获取原辅料合格率图表数据 |
| | | // 获取原材料合格率图表数据 |
| | | getRawPass() { |
| | | const params = { |
| | | dateType: this.dateType, |
| | |
| | | .title { |
| | | padding: 10px 0 0 20px; |
| | | } |
| | | |
| | | .table { |
| | | padding: 0 10px 10px; |
| | | } |
| | | |
| | | .pie-card { |
| | | width: 100%; |
| | | background: #FFFFFF; |
| | | margin-top: 10px; |
| | | position: relative; |
| | | } |
| | | |
| | | .data { |
| | | position: absolute; |
| | | font-size: 20px; |
| | |
| | | top: 42%; |
| | | z-index: 1; |
| | | } |
| | | |
| | | .inspection-card { |
| | | width: 100%; |
| | | background: #FFFFFF; |