| | |
| | | </style> |
| | | <template> |
| | | <div class="ins-order-plan-main"> |
| | | <div v-show="activeFace == 0" style="height: 100%"> |
| | | <div style="height: 100%"> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">委托编号:</div> |
| | |
| | | </el-row> |
| | | </div> |
| | | <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" |
| | | :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0"></lims-table> |
| | | :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" |
| | | key="tableData0"></lims-table> |
| | | </div> |
| | | </div> |
| | | <el-dialog :visible.sync="claimVisible" title="提示" width="400px"> |
| | |
| | | <el-button :loading="loading" type="primary" @click="confirmConnect">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <div v-if="activeFace > 0 && isCopper == null" style="width: 100%; height: 100%"> |
| | | <!-- <Add :active="activeFace" :currentId="currentId" :examine="examine" /> --> |
| | | </div> |
| | | <div v-if="activeFace > 0 && isCopper == 0" style="width: 100%; height: 100%"> |
| | | <!-- <CustomsInspection |
| | | :active="activeFace" |
| | | :currentId="currentId" |
| | | :customsInspection="customsInspection" |
| | | :isReport="isReport" |
| | | /> --> |
| | | </div> |
| | | <div v-if="activeFace > 0 && isCopper == 1" style="width: 100%; height: 100%"> |
| | | <!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder> --> |
| | | </div> |
| | | <!--<Inspection |
| | | v-if="state > 0" |
| | | :key="InspectionKey" |
| | | :inspectorList="inspectorList" |
| | | :orderId="orderId" |
| | | :sonLaboratory="sonLaboratory" |
| | | :state="state" |
| | | :typeSource="typeSource" |
| | | @goback="goback" |
| | | @refreshView="refreshView" |
| | | />--> |
| | | <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%"> |
| | | <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto"> |
| | | <div> |
| | | <el-form :model="entity" :inline="true"> |
| | | <el-form-item label="检验项" prop="outputWorkTime"> |
| | | <el-input v-model="entity.inspectionItem" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="small" type="primary" @click="getLookList">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading" |
| | | :height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table> |
| | | </div> |
| | |
| | | 新增 |
| | | </el-button> |
| | | </div> |
| | | <el-table :data="bindTableData" style="width: 100%" height="70vh"> |
| | | <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"> |
| | | <el-table-column prop="inspectionItemClass" label="检验项分类" width="150"> |
| | | </el-table-column> |
| | | <el-table-column prop="inspectionItem" label="检验项" width="150"> |
| | |
| | | ref="showInfoDialog" |
| | | :showInfoDialog="showInfoDialog" |
| | | ></ShowInfo> --> |
| | | <!--修改检验值弹框--> |
| | | <edit-inspection-item ref="editInspectionItem"></edit-inspection-item> |
| | | <!--查看工时弹框--> |
| | | <viewManHourDia ref="viewManHourDia"></viewManHourDia> |
| | | <!--不合格复测查看弹框--> |
| | | <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ValueTable from "@/components/Table/value-table.vue"; |
| | | // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue"; |
| | | // import CustomsInspection from "../do/b1-material-ins-order/customs-inspection.vue"; |
| | | import { getYearAndMonthAndDays } from "@/utils/date"; |
| | | // import Add from "../do/b1-ins-order/add.vue"; |
| | | // import ShowInfo from "../do/b1-material-ins-order/showInfo.vue"; |
| | | // import CopperOrder from "../do/b1-material-ins-order/copper-order.vue"; |
| | | import EditInspectionItem from "./components/EditInspectionItem.vue"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import viewManHourDia from "./components/viewManHourDia.vue" |
| | | import UnPassRetestResult from "@/components/rawMaterialInspection/unPassRetestResult.vue" |
| | | import { |
| | | claimInsOrderPlan, |
| | | upPlanUser2, |
| | |
| | | selectSampleAndProductByOrderId, |
| | | } from "@/api/business/inspectionTask.js"; |
| | | import { mapGetters } from "vuex"; |
| | | import {getRetestResult} from "@/api/business/rawMaterialOrder"; |
| | | export default { |
| | | name: 'InspectionTask', |
| | | components: { |
| | | EditInspectionItem, |
| | | // CopperOrder, |
| | | // ShowInfo, |
| | | ValueTable, |
| | | limsTable, |
| | | // Inspection, |
| | | // Add, |
| | | // CustomsInspection, |
| | | viewManHourDia, |
| | | UnPassRetestResult |
| | | }, |
| | | dicts: ["urgency_level", "inspection_task_state"], |
| | | computed: { |
| | |
| | | InspectionKey: 1, |
| | | bindDialogVisible: false, |
| | | bindAddDialogVisible: false, |
| | | bindTableDataLoading: false, |
| | | bindTableData: [], |
| | | bindAddTableData: [], |
| | | chooseBindAddList: [], |
| | |
| | | { |
| | | label: "委托编号", |
| | | prop: "entrustCode", |
| | | width: "140px", |
| | | width: "160px", |
| | | dataType: "link", |
| | | linkMethod: "selectAllByOne", |
| | | }, |
| | | { label: "样品名称", prop: "sample", width: "140px" }, |
| | | { label: "样品名称", prop: "sample", width: "160px" }, |
| | | { |
| | | label: "下单类别", |
| | | prop: "typeSource", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | if (params == 0) { |
| | |
| | | formatData: (params) => { |
| | | return this.urgencyLevel.find((m) => m.value == params).label; |
| | | }, |
| | | formatType: (params) => { |
| | | return this.urgencyLevel.find((m) => m.value == params).type; |
| | | }, |
| | | }, |
| | | { |
| | | label: "检验类型", |
| | | prop: "orderType", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.orderTypeList.find((m) => m.value == params).label; |
| | |
| | | prop: "insState", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.inspectionTaskState.find((m) => m.value == params) |
| | | .label; |
| | | return this.inspectionTaskState.find((m) => m.value == params).label; |
| | | }, |
| | | formatType: (params) => { |
| | | return this.inspectionTaskState.find((m) => m.value == params).type; |
| | |
| | | this.editInspection(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return ( |
| | | row.userName == null || row.insState == 3 || row.insState == 5 |
| | | ); |
| | | return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan']) |
| | | }, |
| | | }, |
| | | { |
| | | name: "查看工时", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.viewManHour(row); |
| | | }, |
| | | showHide: (row) => { |
| | | return this.checkPermi(['get:working:hours:byOrder']) |
| | | }, |
| | | }, |
| | | { |
| | |
| | | }, |
| | | ], |
| | | // 数据查看相关字段---开始 |
| | | entity: { |
| | | inspectionItem: "", |
| | | }, |
| | | lookTableData: [], |
| | | lookColumn: [ |
| | | { |
| | |
| | | prop: "insResult", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.insResultList.find((m) => m.value == params).label; |
| | | let obj = this.insResultList.find((m) => m.value == params) |
| | | if (obj) { |
| | | return this.insResultList.find((m) => m.value == params).label; |
| | | } else { |
| | | return null |
| | | } |
| | | }, |
| | | formatType: (params) => { |
| | | return this.insResultList.find((m) => m.value == params).type; |
| | | let obj = this.insResultList.find((m) => m.value == params) |
| | | if (obj) { |
| | | return this.insResultList.find((m) => m.value == params).type; |
| | | } else { |
| | | return null |
| | | } |
| | | }, |
| | | }, |
| | | { |
| | |
| | | fixed: "right", |
| | | label: "操作", |
| | | operation: [ |
| | | { |
| | | name: "不合格复测查看", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.getRetestResultInfo(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.insResult!=0 |
| | | }, |
| | | }, |
| | | { |
| | | name: "检验项绑定", |
| | | type: "text", |
| | |
| | | }, |
| | | lookTableLoading: false, |
| | | // 数据查看相关字段---结束 |
| | | retestVisible: false, |
| | | }; |
| | | }, |
| | | created() { |
| | | mounted() { |
| | | this.getAuthorizedPerson(); |
| | | this.currentTime = getYearAndMonthAndDays(); |
| | | this.getDicts("urgency_level").then((response) => { |
| | |
| | | this.getDicts("inspection_task_state").then((response) => { |
| | | this.inspectionTaskState = this.dictToValue(response.data); |
| | | }); |
| | | }, |
| | | mounted() { |
| | | this.refreshTable(); |
| | | this.queryParams.userId = this.userId; |
| | | // this.getPower(); |
| | | }, |
| | | activated() { |
| | | this.refreshTable(); |
| | | }, |
| | | methods: { |
| | |
| | | }, |
| | | getLookList() { |
| | | this.lookTableLoading = true; |
| | | let param = { id: this.lookInfo.id, ...this.lookPage }; |
| | | let param = { id: this.lookInfo.id, ...this.lookPage, inspectionItem: this.entity.inspectionItem }; |
| | | delete param.total; |
| | | selectSampleAndProductByOrderId({ ...param }) |
| | | .then((res) => { |
| | |
| | | editInspection(row) { |
| | | this.$refs.editInspectionItem.showDialog(row.id); |
| | | }, |
| | | // 刷新页面 |
| | | refreshView() { |
| | | this.getList(); |
| | | // 查看工时 |
| | | viewManHour(row) { |
| | | this.$refs.viewManHourDia.showDialog(row.id, row.insState); |
| | | }, |
| | | // 数据查看 |
| | | handleDataLook(row) { |
| | | this.lookInfo = row; |
| | | this.getLookList(); |
| | | }, |
| | | // 权限分配 |
| | | getPower(radio) { |
| | | let power = JSON.parse(sessionStorage.getItem("power")); |
| | | let inspection = false; |
| | | let connect = false; |
| | | let review = false; |
| | | let claim = false; |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == "doInsOrder") { |
| | | inspection = true; |
| | | } |
| | | if (power[i].menuMethod == "upPlanUser") { |
| | | connect = true; |
| | | } |
| | | if (power[i].menuMethod == "verifyPlan") { |
| | | review = true; |
| | | } |
| | | if (power[i].menuMethod == "claimInsOrderPlan") { |
| | | claim = true; |
| | | } |
| | | } |
| | | if (!claim) { |
| | | this.componentData.do.splice(3, 1); |
| | | } |
| | | if (!review) { |
| | | this.componentData.do.splice(2, 1); |
| | | } |
| | | if (!connect) { |
| | | this.componentData.do.splice(1, 1); |
| | | } |
| | | if (!inspection) { |
| | | this.componentData.do.splice(0, 1); |
| | | } |
| | | }, |
| | | changeCheckBox(val) { |
| | | this.queryParams.userId = val ? 0 : null; |
| | |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | changeRowClass({ row, rowIndex }) { |
| | | rowClassName({ row, rowIndex }) { |
| | | if (this.currentTime == row.appointed) { |
| | | return "highlight-warning-row-border"; |
| | | } else if (this.currentTime > row.appointed) { |
| | |
| | | this.examine = 1; |
| | | this.isReport = 0; |
| | | this.currentId = parseInt(row.id); |
| | | switch (row.isCopper) { |
| | | case 0: |
| | | // 原材料 |
| | | this.$router.push({ |
| | | path: "/materialOrder/customsInspection", query: { |
| | | customsInspection: row, |
| | | active: this.activeFace, |
| | | currentId: this.currentId, |
| | | isReport: this.isReport |
| | | } |
| | | }); |
| | | break; |
| | | case null: |
| | | // 成品 |
| | | this.$router.push({ |
| | | path: "/productOrder/add", query: { |
| | | examine: this.examine, |
| | | active: this.activeFace, |
| | | currentId: this.currentId |
| | | } |
| | | }); |
| | | break; |
| | | case 1: |
| | | // 铜材 |
| | | this.$router.push({ |
| | | path: "/materialOrder/copperOrder", query: { |
| | | active: this.activeFace, |
| | | currentId: this.currentId |
| | | } |
| | | }); |
| | | break; |
| | | } |
| | | |
| | | }, |
| | | playOrder(num) { |
| | | this.activeFace = num; |
| | |
| | | this.state = 3; |
| | | this.typeSource = row.typeSource; |
| | | this.orderId = row.id; |
| | | this.$router.push({ |
| | | path: "/inspectionTask/inspection", |
| | | query: { |
| | | inspectorList: this.inspectorList, |
| | | sonLaboratory: this.sonLaboratory, |
| | | state: this.state, |
| | | typeSource: this.typeSource, |
| | | orderId: this.orderId, |
| | | }, |
| | | }); |
| | | }, |
| | | handleConnect(row) { |
| | | this.orderId = row.id; |
| | |
| | | this.personList = data; |
| | | }); |
| | | }, |
| | | // 查看不合格复测结果 |
| | | getRetestResultInfo (row) { |
| | | getRetestResult({insProductId: row.insProductId}).then(res => { |
| | | this.retestVisible = true |
| | | this.retestInfo = res.data |
| | | }) |
| | | }, |
| | | closeRetestLook () { |
| | | this.retestVisible = false |
| | | }, |
| | | // 绑定检验项绑定 |
| | | getBinding(row) { |
| | | this.bindCurrentInfo = row; |
| | | getBindingProductByProductId({ productId: row.insProductId }) |
| | | .then((res) => { |
| | | if (res.coe == 201) { |
| | | // this.$message.error('未绑定检验项') |
| | | return; |
| | | } |
| | | // console.log(res) |
| | | this.bindTableData = res.data; |
| | | this.bindDialogVisible = true; |
| | |
| | | productId: this.bindCurrentInfo.insProductId, |
| | | }) |
| | | .then((res) => { |
| | | if (res.coe == 201) { |
| | | // this.$message.error('未绑定检验项') |
| | | return; |
| | | } |
| | | // console.log(res) |
| | | this.bindAddTableData = res.data; |
| | | this.bindAddDialogVisible = true; |
| | |
| | | }) |
| | | .then((res) => { |
| | | this.loading = false; |
| | | if (res.code == 201) { |
| | | this.$message.error("绑定失败"); |
| | | return; |
| | | } |
| | | this.$message.success("绑定成功"); |
| | | this.bindAddDialogVisible = false; |
| | | this.getBinding(this.bindCurrentInfo); |
| | |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }).then(async () => { |
| | | delProductTreeByProductId({ productId: row.id }) |
| | | .then((res) => { |
| | | if (res.coe == 201) { |
| | | // this.$message.error('未绑定检验项') |
| | | return; |
| | | } |
| | | this.getBinding(this.bindCurrentInfo); |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | this.bindTableDataLoading = true |
| | | delProductTreeByProductId({ productId: row.id }).then((res) => { |
| | | this.bindTableDataLoading = false |
| | | this.getBinding(this.bindCurrentInfo); |
| | | }).catch((error) => { |
| | | this.bindTableDataLoading = false |
| | | console.error(error); |
| | | }); |
| | | }); |
| | | }, |
| | | }, |