| | |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ£éªé¡¹åé
人å |
| | | export function batchUpdateInsProductCheckUser(query) { |
| | | return request({ |
| | | url: "/insOrder/batchUpdateInsProductCheckUser", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | |
| | | { label: "æå±é¨é¨", prop: "laboratoryName" }, |
| | | { label: "æ£éªé¡¹ç®", prop: "insProductItem" }, |
| | | { label: "æ ¡åæå¡æºæ", prop: "calibrationServices" }, |
| | | { label: "æè¿æ ¡åæ¥æ", prop: "lastCalibrationDateTwo" }, |
| | | { label: "æè¿æ ¸æ¥æ¥æ", prop: "lastCalibrationDate" }, |
| | | { label: "䏿¬¡æ ¡åæ¥æ", prop: "nextCalibrationDateTwo" }, |
| | | { label: "䏿¬¡æ ¸æ¥æ¥æ", prop: "nextCalibrationDate" }, |
| | | { label: "æè¿æ ¡åæ¥æ", prop: "lastCalibrationDate" }, |
| | | { label: "æè¿æ ¸æ¥æ¥æ", prop: "lastCalibrationDateTwo" }, |
| | | { label: "䏿¬¡æ ¡åæ¥æ", prop: "nextCalibrationDate" }, |
| | | { label: "䏿¬¡æ ¸æ¥æ¥æ", prop: "nextCalibrationDateTwo" }, |
| | | { |
| | | label: "设å¤åç±»", prop: "largeCategory", dataType: "tag", |
| | | formatData: (params) => { |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog |
| | | :visible.sync="editInspectionDia" |
| | | title="ä¿®æ¹æ£éªé¡¹" |
| | | width="80%" |
| | | @close="editInspectionDia = false" |
| | | > |
| | | <el-dialog :visible.sync="editInspectionDia" title="ä¿®æ¹æ£éªé¡¹" width="80%" @close="editInspectionDia = false"> |
| | | <div> |
| | | <el-form :model="entity" :inline="true"> |
| | | <el-form-item label="æ£éªé¡¹" prop="outputWorkTime"> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <lims-table |
| | | :column="editColumn" |
| | | :table-data="editTableData" |
| | | :table-loading="editLoading" |
| | | :page="page" |
| | | height="560" |
| | | @pagination="pagination" |
| | | > |
| | | <lims-table :column="editColumn" :table-data="editTableData" :table-loading="editLoading" :page="page" |
| | | height="560" @pagination="pagination"> |
| | | </lims-table> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="editAskDia" title="ä¿®æ¹" width="50%"> |
| | |
| | | <el-input v-model="editForm.tell" type="textarea"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£éªå¼ç±»å"> |
| | | <el-select |
| | | v-model="editForm.inspectionValueType" |
| | | clearable |
| | | placeholder="è¯·éæ©" |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in inspectionValueType" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | <el-select v-model="editForm.inspectionValueType" clearable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%"> |
| | | <el-option v-for="dict in inspectionValueType" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="editAskDia = false">å æ¶</el-button> |
| | | <el-button |
| | | :loading="handleEditLoading" |
| | | type="primary" |
| | | @click="handleEdit" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button :loading="handleEditLoading" type="primary" @click="handleEdit">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | minWidth: "120px", |
| | | prop: "model", |
| | | }, |
| | | { label: "æ£éªäºº", prop: "checkUserName" }, |
| | | { |
| | | dataType: "action", |
| | | width: "80px", |
| | |
| | | <el-form :model="queryParams" ref="queryParams" size="small" :inline="true"> |
| | | <el-form-item label="å§æç¼å·" prop="entrustCode"> |
| | | <el-input v-model="queryParams.entrustCode" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ£éªç¶æ" prop="insState"> |
| | | <el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()"> |
| | | <el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label" |
| | | :value="a.value"></el-option> |
| | | :value="a.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | </ul> |
| | | <div> |
| | | <el-checkbox v-model="alone" class="view-self-checkbox" |
| | | @change="changeCheckBox"><span>æçä»»å¡</span></el-checkbox> |
| | | @change="changeCheckBox"><span>æçä»»å¡</span></el-checkbox> |
| | | </div> |
| | | </div> |
| | | <div class="center-title"> |
| | |
| | | </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" |
| | | :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])" |
| | | @click="editInspection(scope.row)">ä¿®æ¹æ£éªå¼</el-button> |
| | | :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])" |
| | | @click="editInspection(scope.row)">ä¿®æ¹æ£éªå¼</el-button> |
| | | <el-button type="text" size="small" :disabled="( |
| | | scope.row.userName == null || |
| | | scope.row.insState == 3 || |
| | | scope.row.insState == 5 || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)) |
| | | )" |
| | | @click="handleInspection(scope.row)">æ£éª</el-button> |
| | | scope.row.userName == null || |
| | | scope.row.insState == 3 || |
| | | scope.row.insState == 5 || |
| | | (scope.row.userName && !scope.row.userName.includes(nickName)) |
| | | )" @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> |
| | | 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> |
| | | <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" |
| | | accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'> |
| | | (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> |
| | |
| | | </el-button> |
| | | </div> |
| | | <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border> |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border> |
| | | <el-table-column prop="inspectionItemClass" label="æ£éªé¡¹åç±»" width="150"> |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" width="150"> |
| | |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="bindAddDialogVisible" title="éæ©ç»å®" width="600px"> |
| | | <el-table :data="bindAddTableData" style="width: 100%" height="60vh" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | @selection-change="handleBindAddSelectionChange"> |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column prop="inspectionItemClass" label="æ£éªé¡¹åç±»" width="150"> |
| | |
| | | <!--æ¥çå·¥æ¶å¼¹æ¡--> |
| | | <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"> |
| | | :fullscreen="fullscreen"> |
| | | <div class="full-screen"> |
| | | <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;" |
| | | v-if="!fullscreen"></i> |
| | | v-if="!fullscreen"></i> |
| | | <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;"> |
| | | </div> |
| | | <div style="height: 80vh;" v-if="issuedVisible"> |
| | |
| | | </el-dialog> |
| | | <el-dialog title="æ¥çéä»¶" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen> |
| | | <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.tempUrlPdf" :currentFile="{}" |
| | | style="max-height: 90vh;overflow-y: auto;" /> |
| | | style="max-height: 90vh;overflow-y: auto;" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | selectSampleAndProductByOrderId, |
| | | } from "@/api/business/inspectionTask.js"; |
| | | import { mapGetters } from "vuex"; |
| | | import {getRetestResult} from "@/api/business/rawMaterialOrder"; |
| | | import {upReportUrl} from "@/api/business/insReport"; |
| | | import { getRetestResult } from "@/api/business/rawMaterialOrder"; |
| | | import { upReportUrl } from "@/api/business/insReport"; |
| | | import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue"; |
| | | import filePreview from "@/components/Preview/filePreview.vue"; |
| | | export default { |
| | |
| | | } |
| | | }, |
| | | }, |
| | | { label: "æ£éªäºº", prop: "checkUserName" }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | |
| | | this.getRetestResultInfo(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.insResult!=0 |
| | | return row.insResult != 0 |
| | | }, |
| | | }, |
| | | { |
| | |
| | | }, |
| | | // ä¸è½½æ¥å |
| | | download(row) { |
| | | let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS |
| | | let url = (row.urlS === null || row.urlS === '') ? row.url : row.urlS |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi + url; |
| | | link.target = '_blank'; |
| | |
| | | fileName = row.tempUrlPdf |
| | | fileType = "pdf" |
| | | } |
| | | fileName = fileName.replace('/word/','') |
| | | fileName = fileName.replace('/word/', '') |
| | | const userName = this.nickName |
| | | this.option = { |
| | | url: this.javaApi + "/word/" + fileName, |
| | |
| | | }); |
| | | }, |
| | | // æ¥çä¸åæ ¼å¤æµç»æ |
| | | getRetestResultInfo (row) { |
| | | getRetestResult({insProductId: row.insProductId}).then(res => { |
| | | getRetestResultInfo(row) { |
| | | getRetestResult({ insProductId: row.insProductId }).then(res => { |
| | | this.retestVisible = true |
| | | this.retestInfo = res.data |
| | | }) |
| | | }, |
| | | closeRetestLook () { |
| | | closeRetestLook() { |
| | | this.retestVisible = false |
| | | }, |
| | | // ç»å®æ£éªé¡¹ç»å® |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | beforeUpload (file) { |
| | | beforeUpload(file) { |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('ä¸ä¼ æä»¶ä¸è¶
è¿10M'); |
| | | this.$refs.upload.clearFiles() |
| | |
| | | border-color: #3a7bfa; |
| | | color: #3a7bfa; |
| | | } |
| | | |
| | | .center-options { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | <div> |
| | | <el-dialog title="æ°æ®æ¥ç" :visible.sync="isShow" width="80%" @closed="$emit('closeDataLook')"> |
| | | <ul class="tab"> |
| | | <li v-for="(m,i) in dataVisibleTitle" :key="i" :class="{active:i===dataVisibleIndex}" @click="handleDataVisibleTab(m,i)">{{m.label}}</li> |
| | | <li v-for="(m, i) in dataVisibleTitle" :key="i" :class="{ active: i === dataVisibleIndex }" |
| | | @click="handleDataVisibleTab(m, i)">{{ m.label }}</li> |
| | | </ul> |
| | | <div> |
| | | <lims-table :tableData="tableData" :column="column" |
| | | @pagination="pagination" height="500px" key="tableData" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | <lims-table :tableData="tableData" :column="column" @pagination="pagination" height="500px" key="tableData" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | </el-dialog> |
| | | <un-pass-retest-result :retestVisible="retestVisible" :retestInfo="retestInfo" @closeRetestLook="closeRetestLook" v-if="retestVisible"></un-pass-retest-result> |
| | | <un-pass-retest-result :retestVisible="retestVisible" :retestInfo="retestInfo" @closeRetestLook="closeRetestLook" |
| | | v-if="retestVisible"></un-pass-retest-result> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import UnPassRetestResult from "./unPassRetestResult.vue"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import {getRetestResult, selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder"; |
| | | import { getRetestResult, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder"; |
| | | |
| | | export default { |
| | | name: "dataLookVisible", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {limsTable, UnPassRetestResult}, |
| | | components: { limsTable, UnPassRetestResult }, |
| | | props: { |
| | | dataDialogVisible: { |
| | | type: Boolean, |
| | |
| | | }, |
| | | dataLookInfo: { |
| | | type: Object, |
| | | default: () => {} |
| | | default: () => { } |
| | | }, |
| | | }, |
| | | data() { |
| | |
| | | tableData: [], |
| | | tableLoading: false, |
| | | column: [ |
| | | {label: 'æ ·åç¼å·', prop: 'sampleCode'}, |
| | | {label: 'æ ·ååç§°', prop: 'sample'}, |
| | | {label: 'æ£éªé¡¹åç±»', prop: 'inspectionItemClass'}, |
| | | {label: 'æ£éªé¡¹', prop: 'inspectionItem'}, |
| | | {label: 'æ£éªå项', prop: 'inspectionItemSubclass'}, |
| | | {label: 'åä½', prop: 'unit'}, |
| | | {label: 'æ ·ååå·', prop: 'model'}, |
| | | {label: 'æ¡ä»¶', prop: 'radius'}, |
| | | {label: 'çµç¼æ è¯', prop: 'cableTag'}, |
| | | {label: 'è¯éªè¦æ±', prop: 'tell'}, |
| | | {label: 'æ£éªç»æ', prop: 'lastValue'}, |
| | | { label: 'æ ·åç¼å·', prop: 'sampleCode' }, |
| | | { label: 'æ ·ååç§°', prop: 'sample' }, |
| | | { label: 'æ£éªé¡¹åç±»', prop: 'inspectionItemClass' }, |
| | | { label: 'æ£éªé¡¹', prop: 'inspectionItem' }, |
| | | { label: 'æ£éªå项', prop: 'inspectionItemSubclass' }, |
| | | { label: 'åä½', prop: 'unit' }, |
| | | { label: 'æ ·ååå·', prop: 'model' }, |
| | | { label: 'æ¡ä»¶', prop: 'radius' }, |
| | | { label: 'çµç¼æ è¯', prop: 'cableTag' }, |
| | | { label: 'è¯éªè¦æ±', prop: 'tell' }, |
| | | { label: 'æ£éªç»æ', prop: 'lastValue' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç»æå¤å®', |
| | |
| | | return 'danger' |
| | | } else if (params == 3) { |
| | | return '' |
| | | } else { |
| | | } else { |
| | | return null |
| | | } |
| | | } |
| | | }, |
| | | { label: "æ£éªäºº", prop: "checkUserName" }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | |
| | | clickFun: (row) => { |
| | | this.getRetestResult(row); |
| | | }, |
| | | disabled: (row, index) => { |
| | | return row.insResult!=0 |
| | | disabled: (row, index) => { |
| | | return row.insResult != 0 |
| | | } |
| | | }, |
| | | ] |
| | | } |
| | | ], |
| | | page: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | isShow: this.dataDialogVisible, |
| | | dataVisibleTitle: [ |
| | |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // åæ¢æ°æ®æ¥çtabæ |
| | | handleDataVisibleTab (m, i) { |
| | | handleDataVisibleTab(m, i) { |
| | | this.dataVisibleIndex = i |
| | | this.refreshTable() |
| | | }, |
| | |
| | | this.entity.id = this.dataLookInfo.quarterOrderId |
| | | } |
| | | this.tableLoading = true |
| | | const params = {...this.entity, ...this.page} |
| | | const params = { ...this.entity, ...this.page } |
| | | selectSampleAndProductByOrderId(params).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | pagination (page) { |
| | | pagination(page) { |
| | | this.page.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | // æ¥çä¸åæ ¼å¤æµç»æ |
| | | getRetestResult (row) { |
| | | getRetestResult({insProductId: row.insProductId}).then(res => { |
| | | getRetestResult(row) { |
| | | getRetestResult({ insProductId: row.insProductId }).then(res => { |
| | | this.retestVisible = true |
| | | this.retestInfo = res.data |
| | | }) |
| | | }, |
| | | closeRetestLook () { |
| | | closeRetestLook() { |
| | | this.retestVisible = false |
| | | }, |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <!-- æ£éªé¡¹åé
--> |
| | | <el-dialog :visible.sync="issuedDialog" title="åé
æ£éªé¡¹" top="5vh" width="80%" :loading="tableLoading"> |
| | | <el-table :data="tableData" style="width: 100%" height="70vh"> |
| | | <el-table-column label="æ ·åç¼å·" prop="sampleCode" width="160px"> |
| | | </el-table-column> |
| | | <el-table-column label="æ ·ååç§°" prop="sample"> |
| | | </el-table-column> |
| | | <el-table-column label="æ ·ååå·" prop="model" width="190px"> |
| | | </el-table-column> |
| | | <el-table-column label="æ£éªé¡¹åç±»" prop="inspectionItemClass"> |
| | | </el-table-column> |
| | | <el-table-column label="æ£éªé¡¹" prop="inspectionItem"> |
| | | </el-table-column> |
| | | <el-table-column label="æ£éªå项" prop="inspectionItemSubclass"> |
| | | </el-table-column> |
| | | <el-table-column label="åé
人å" prop="checkUserId"> |
| | | <template slot-scope="scope"> |
| | | <el-select v-model="scope.row.checkUserId" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="(item, i) in personList" :key="i + 'gbnm.'" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="è¯éªå®¤" prop="sonLaboratory"> |
| | | </el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="issuedDialog = false">å æ¶</el-button> |
| | | <el-button :loading="submitLoading" type="primary" @click="submit">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { selectSampleAndProductByOrderId, batchUpdateInsProductCheckUser } from "@/api/business/rawMaterialOrder"; |
| | | import { selectUserCondition } from "@/api/performance/class"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | issuedDialog: false, |
| | | tableData: [], |
| | | tableLoading: false, |
| | | submitLoading: false, |
| | | personList: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | methods: { |
| | | init(row) { |
| | | this.issuedDialog = true; |
| | | this.getList(row.id) |
| | | this.getAuthorizedPerson() |
| | | }, |
| | | getList(id) { |
| | | this.tableLoading = true |
| | | selectSampleAndProductByOrderId({ page: -1, size: -1, id }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records |
| | | } |
| | | }).catch(err => { |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | // è·åææ´¾äººå䏿å表 |
| | | getAuthorizedPerson() { |
| | | selectUserCondition({ type: 1 }).then(res => { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | label: a.name, |
| | | value: a.id |
| | | }) |
| | | }) |
| | | this.personList = data |
| | | }) |
| | | }, |
| | | submit() { |
| | | this.submitLoading = true; |
| | | batchUpdateInsProductCheckUser({ insProductDtoList: this.tableData }).then(res => { |
| | | this.submitLoading = false; |
| | | if (res.code == 200) { |
| | | this.$message.success('åé
æå') |
| | | this.issuedDialog = false |
| | | } |
| | | }).catch(err => { |
| | | this.submitLoading = false; |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |
| | |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" |
| | | @click="more = !more">{{ !more ? 'æ´å¤' : 'æ¶èµ·' }}</el-button> |
| | | @click="more = !more">{{ !more ? 'æ´å¤' : 'æ¶èµ·' }}</el-button> |
| | | <el-button size="mini" type="primary" @click="refreshTable()">æ¥è¯¢</el-button> |
| | | <el-button size="mini" @click="refresh()">éç½®</el-button> |
| | | </el-form-item> |
| | |
| | | <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> |
| | | </el-dialog> |
| | | <!-- ä¸å --> |
| | | <el-dialog :before-close="handleClose" :visible.sync="issuedDialogVisible" title="æ£éªåé
" width="400px"> |
| | | <!-- <el-dialog :before-close="handleClose" :visible.sync="issuedDialogVisible" title="æ£éªåé
" width="400px"> |
| | | <div class="body" style="max-height: 60vh;"> |
| | | <el-row> |
| | | <el-col class="search_thing" style="width: 95%;"> |
| | |
| | | <el-button :loading="upLoad" type="primary" @click="submitForm2">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | </el-dialog> --> |
| | | <el-dialog :visible.sync="dataDialogVisible" title="æ°æ®æ¥ç" width="80%" @close="closeDia"> |
| | | <div v-if="dataDialogVisible"> |
| | | <lims-table :tableData="tableDataLook" :column="tableDataLookColumn" @pagination="tableDataLookPagination" |
| | |
| | | <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> |
| | |
| | | @closePrintDialog="closePrintDialog"></print-dialog> |
| | | <!--æ·»å éæ¼æ£éªé¡¹å¼¹æ¡--> |
| | | <add-inspection-dia v-if="addInspectionDia" ref="addInspectionDia"></add-inspection-dia> |
| | | <issuedDialog ref="issuedDialog" /> |
| | | <!-- <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"--> |
| | | <!-- :sonLaboratory="sonLaboratory" :state="state"--> |
| | | <!-- :typeSource="typeSource" @goback="goback" @refreshView="refreshView"/>--> |
| | |
| | | import PrintDialog from "@/views/business/productOrder/components/printDialog.vue"; |
| | | import AddInspectionDia from "@/views/business/productOrder/components/addInspectionDia.vue"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import issuedDialog from './components/issuedDialog.vue' |
| | | import { |
| | | checkUpdate, delInsOrder, |
| | | rawAllInsOrderExport, |
| | |
| | | } from "@/api/business/productOrder"; |
| | | import { selectUserCondition } from "@/api/performance/class"; |
| | | import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder"; |
| | | import {mapGetters} from "vuex"; |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | name: 'ProductOrder', |
| | | components: { |
| | | limsTable, |
| | | AddInspectionDia, |
| | | PrintDialog, |
| | | vueQr |
| | | vueQr, |
| | | issuedDialog |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | this.handleIssued(row); |
| | | }, |
| | | disabled: (row, index) => { |
| | | return row.state != 1 || !!row.assign |
| | | return row.state != 1 |
| | | }, |
| | | showHide: (row) => { |
| | | return this.tabIndex === 1 |
| | |
| | | } |
| | | } |
| | | }, |
| | | { label: "æ£éªäºº", prop: "checkUserName" }, |
| | | ], |
| | | filesDialogVisible: false, // éä»¶æ¥çå¼¹æ¡ |
| | | tableDataFile: [], |
| | |
| | | entrustCodeInfo: {}, |
| | | submitCodeLoading: false, |
| | | // 人åå表 |
| | | personList: [], |
| | | // personList: [], |
| | | orderId: '', |
| | | revocationInsProductIds: '', |
| | | componentDataDelete: [], |
| | |
| | | }, |
| | | mounted() { |
| | | this.refreshTable() |
| | | this.getAuthorizedPerson() |
| | | // this.getAuthorizedPerson() |
| | | }, |
| | | activated() { |
| | | this.refreshTable() |
| | |
| | | } |
| | | const params = { ...this.entity, state: this.tabList[this.tabIndex].value } |
| | | this.tableLoading = true |
| | | selectInsOrderParameter({...this.page,...params}).then(res => { |
| | | selectInsOrderParameter({ ...this.page, ...params }).then(res => { |
| | | this.upIndex++ |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | |
| | | this.printDialog = false |
| | | }, |
| | | // è·åææ´¾äººå䏿å表 |
| | | getAuthorizedPerson() { |
| | | selectUserCondition({ type: 1 }).then(res => { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | label: a.name, |
| | | value: a.id |
| | | }) |
| | | }) |
| | | this.personList = data |
| | | }) |
| | | }, |
| | | // getAuthorizedPerson() { |
| | | // selectUserCondition({ type: 1 }).then(res => { |
| | | // let data = [] |
| | | // res.data.forEach(a => { |
| | | // data.push({ |
| | | // label: a.name, |
| | | // value: a.id |
| | | // }) |
| | | // }) |
| | | // this.personList = data |
| | | // }) |
| | | // }, |
| | | handleClose() { |
| | | this.verifyDialogVisible = false; |
| | | this.quashDialogVisible = false; |
| | |
| | | this.tableDataLookPage.size = page.limit |
| | | this.getDataTableList(this.currentRow) |
| | | }, |
| | | closeDia () { |
| | | closeDia() { |
| | | this.tableDataLookPage = { |
| | | total: 0, |
| | | size: 20, |
| | |
| | | // ä¸è½½æ¥å |
| | | download(row) { |
| | | let url = row.urlS ? row.urlS : row.url; |
| | | if(url){ |
| | | url = url.split('.')[0]+'.pdf' |
| | | if (url) { |
| | | url = url.split('.')[0] + '.pdf' |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi + url; |
| | | link.target = '_blank'; |
| | |
| | | }, |
| | | // ä¸å |
| | | handleIssued(row) { |
| | | this.issuedDialogVisible = true; |
| | | selectOrderManDay({ |
| | | id: row.id |
| | | }).then(res => { |
| | | this.distributeData.orderId = row.id |
| | | this.distributeData.sampleId = row.sampleId |
| | | this.distributeData.appointed = res.data |
| | | this.distributeData.type = row.type |
| | | }) |
| | | upPlanUser2({ |
| | | orderId: row.id, |
| | | }).then(res => { |
| | | if (res.code === 200 && res.data.length > 0) { |
| | | this.sonLaboratoryList = []; |
| | | res.data.forEach(m => { |
| | | this.sonLaboratoryList.push({ |
| | | value: m, |
| | | label: m |
| | | }) |
| | | }) |
| | | } |
| | | }) |
| | | // this.issuedDialogVisible = true; |
| | | this.$refs.issuedDialog.init(row) |
| | | // selectOrderManDay({ |
| | | // id: row.id |
| | | // }).then(res => { |
| | | // this.distributeData.orderId = row.id |
| | | // this.distributeData.sampleId = row.sampleId |
| | | // this.distributeData.appointed = res.data |
| | | // this.distributeData.type = row.type |
| | | // }) |
| | | // upPlanUser2({ |
| | | // orderId: row.id, |
| | | // }).then(res => { |
| | | // if (res.code === 200 && res.data.length > 0) { |
| | | // this.sonLaboratoryList = []; |
| | | // res.data.forEach(m => { |
| | | // this.sonLaboratoryList.push({ |
| | | // value: m, |
| | | // label: m |
| | | // }) |
| | | // }) |
| | | // } |
| | | // }) |
| | | }, |
| | | submitForm2() { |
| | | if (this.distributeData.appointed == null || this.distributeData.appointed == '') { |
| | |
| | | <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> |
| | |
| | | <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-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> |
| | | <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> |
| | | |
| | |
| | | getRawProductAnalysisAllList, |
| | | getRawProductAnalysisRawPass, getRawSupplierCompare |
| | | } from "@/api/statisticalCharts/dataAnalysis"; |
| | | import {selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder"; |
| | | import { selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder"; |
| | | |
| | | export default { |
| | | name: "ItemInspectionAnalysis", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {limsTable, Echarts, DataComparison}, |
| | | components: { limsTable, Echarts, DataComparison }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | selectChangeRows: [], // éä¸çæ°æ® |
| | | groupTypeList: [ |
| | | {label: 'æ ·å', value: '0'}, |
| | | {label: 'åä¸åå®¶, åä¸åå·, ä¸åæ¹æ¬¡', value: '1'}, |
| | | {label: 'åä¸åå·, ä¸ååå®¶', value: '2'}, |
| | | { label: 'æ ·å', value: '0' }, |
| | | { label: 'åä¸åå®¶, åä¸åå·, ä¸åæ¹æ¬¡', value: '1' }, |
| | | { label: 'åä¸åå·, ä¸ååå®¶', value: '2' }, |
| | | ], |
| | | itemNames: [], // æ£éªé¡¹åç§° |
| | | itemNamesList: [], |
| | |
| | | label: 'æ ·ååå·', |
| | | minWidth: '300px', |
| | | prop: 'sampleModel' |
| | | },{ |
| | | }, { |
| | | label: 'ä¸åæ¶é´', |
| | | minWidth: '120px', |
| | | prop: 'sendTime' |
| | | },{ |
| | | }, { |
| | | label: 'æµè¾¾çéè´æ°é', |
| | | minWidth: '130px', |
| | | prop: 'qtyArrived' |
| | | },{ |
| | | }, { |
| | | label: 'åä½', |
| | | minWidth: '120px', |
| | | prop: 'buyUnitMeas' |
| | |
| | | tableData: [], |
| | | tableLoading: false, |
| | | column: [ |
| | | {label: 'æ ·åç¼å·', prop: 'sampleCode'}, |
| | | {label: 'æ ·ååç§°', prop: 'sample'}, |
| | | {label: 'æ£éªé¡¹åç±»', prop: 'inspectionItemClass'}, |
| | | {label: 'æ£éªé¡¹', prop: 'inspectionItem'}, |
| | | {label: 'æ£éªå项', prop: 'inspectionItemSubclass'}, |
| | | {label: 'åä½', prop: 'unit'}, |
| | | {label: 'æ ·ååå·', prop: 'model'}, |
| | | {label: 'æ¡ä»¶', prop: 'radius'}, |
| | | {label: 'çµç¼æ è¯', prop: 'cableTag'}, |
| | | {label: 'è¯éªè¦æ±', prop: 'tell'}, |
| | | {label: 'æ£éªç»æ', prop: 'lastValue'}, |
| | | { label: 'æ ·åç¼å·', prop: 'sampleCode' }, |
| | | { label: 'æ ·ååç§°', prop: 'sample' }, |
| | | { label: 'æ£éªé¡¹åç±»', prop: 'inspectionItemClass' }, |
| | | { label: 'æ£éªé¡¹', prop: 'inspectionItem' }, |
| | | { label: 'æ£éªå项', prop: 'inspectionItemSubclass' }, |
| | | { label: 'åä½', prop: 'unit' }, |
| | | { label: 'æ ·ååå·', prop: 'model' }, |
| | | { label: 'æ¡ä»¶', prop: 'radius' }, |
| | | { label: 'çµç¼æ è¯', prop: 'cableTag' }, |
| | | { label: 'è¯éªè¦æ±', prop: 'tell' }, |
| | | { label: 'æ£éªç»æ', prop: 'lastValue' }, |
| | | { |
| | | dataType: 'tag', |
| | | label: 'ç»æå¤å®', |
| | |
| | | return 'danger' |
| | | } else if (params == 3) { |
| | | return '' |
| | | } else { |
| | | } else { |
| | | return null |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | { label: "æ£éªäºº", prop: "checkUserName" }, |
| | | ], |
| | | page: { |
| | | total:0, |
| | | size:10, |
| | | current:1 |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | currentRow: {}, |
| | | isShowDataCom: false, |
| | |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | getBarInfo (val) { |
| | | getBarInfo(val) { |
| | | if (val === '1') { |
| | | if (!this.modelName || !this.supplierName) { |
| | | this.$message.warning('åå·æä¾åºåä¸è½ä¸ºç©º') |
| | |
| | | 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 + '%'; |
| | | } |
| | | },label: { |
| | | }, label: { |
| | | 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') |
| | |
| | | }, |
| | | // æ¥è¯¢åè° |
| | | refreshTable(row) { |
| | | selectSampleAndProductByOrderId({id: row.id, ...this.page}).then(res => { |
| | | selectSampleAndProductByOrderId({ id: row.id, ...this.page }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records |
| | |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | pagination (page) { |
| | | pagination(page) { |
| | | this.page.size = page.limit |
| | | this.refreshTable(this.currentRow) |
| | | }, |
| | | changeData () { |
| | | changeData() { |
| | | if (this.datePicker !== null && this.datePicker.length > 0) { |
| | | this.beginDate = this.datePicker[0] + ' 00:00:00' |
| | | this.endDate = this.datePicker[1] + ' 23:59:59' |
| | |
| | | this.getBar1() |
| | | this.getTableData() |
| | | }, |
| | | getTableData () { |
| | | getTableData() { |
| | | this.editLoading = true |
| | | const params = { |
| | | beginDate: this.beginDate, |
| | |
| | | }) |
| | | }, |
| | | // è·åæ£éªé¡¹ä¸ææ¡ |
| | | getItemList () { |
| | | getItemList() { |
| | | this.selectLoading = true |
| | | this.itemNamesList = [] |
| | | const params = { |
| | |
| | | this.selectLoading = false |
| | | }) |
| | | }, |
| | | goBack () { |
| | | goBack() { |
| | | this.isShowDataCom = false |
| | | }, |
| | | openShowData () { |
| | | openShowData() { |
| | | if (this.selectChangeRows.length !== 5) { |
| | | this.$message.warning('è¯·éæ©5æ¡æ°æ®') |
| | | return |
| | |
| | | this.isShowDataCom = true |
| | | }) |
| | | }, |
| | | handleSelectionChange (val) { |
| | | handleSelectionChange(val) { |
| | | this.selectChangeRows = val |
| | | }, |
| | | }, |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .inspection-card{ |
| | | .inspection-card { |
| | | width: 100%; |
| | | margin-top: 10px; |
| | | } |
| | |
| | | this.bindPartFirst(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.product |
| | | return !!row.product |
| | | } |
| | | }, |
| | | { |