¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <div> |
| | | <el-form :model="entity" ref="entity" size="small" :inline="true"> |
| | | <el-form-item label="å§æç¼å·" prop="entrustCode"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable |
| | | v-model="entity.entrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸åç±»å«" prop="entrustCode"> |
| | | <el-select size="small" v-model="entity.typeSource" clearable style="width: 100%;" @change="refreshTable()"> |
| | | <el-option v-for="(a, i) in typeSourceList" :key="i" :label="a.label" :value="a.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="refresh">é ç½®</el-button> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">æ¥ è¯¢</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="page_total"> |
| | | <span>æ»è®¡ä»»å¡æ°é:</span> |
| | | <span>{{page.total}}</span> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading" |
| | | :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination" |
| | | key="tableData0"></lims-table> |
| | | </div> |
| | | <!-- <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == null">--> |
| | | <!-- <Add :active="activeFace" :currentId="currentId"/>--> |
| | | <!-- </div>--> |
| | | <!-- <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == 0">--> |
| | | <!-- <CustomsInspection :active="activeFace" :customsInspection="customsInspection" :currentId="currentId"/>--> |
| | | <!-- </div>--> |
| | | <!-- <div style="width: 100%;height: 100%;" v-if="activeFace >0 && isCopper == 1">--> |
| | | <!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder>--> |
| | | <!-- </div>--> |
| | | <!-- <Inspection v-if="state>0" @goback="goback" :orderId="orderId" :sonLaboratory="componentData.entity.sonLaboratory" :typeSource="typeSource" :state="state"/>--> |
| | | <!-- <!–产ä¸é¾ä¿¡æ¯æ¥ç–>--> |
| | | <!-- <ShowInfo v-if="showInfoDialog" :showInfoDialog="showInfoDialog" ref="showInfoDialog"></ShowInfo>--> |
| | | <!--æ¥åæ¥ç--> |
| | | <el-dialog title="æ¥åæ¥ç" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false" |
| | | :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> |
| | | <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" > |
| | | </div> |
| | | <div style="height: 80vh;" v-if="issuedVisible"> |
| | | <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" /> |
| | | </div> |
| | | </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;" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getYearAndMonthAndDays } from "@/utils/date"; |
| | | // import ShowInfo from "../do/b1-material-ins-order/showInfo.vue"; |
| | | import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import {selectInsOrderPlanList, selectUserCondition} from "@/api/business/inspectionTask"; |
| | | import {mapGetters} from "vuex"; |
| | | import {upReportUrl} from "@/api/business/insReport"; |
| | | import {delfile} from "@/api/business/rawMaterialOrder"; |
| | | import filePreview from "@/components/Preview/filePreview.vue"; |
| | | |
| | | export default { |
| | | components: { |
| | | filePreview, |
| | | onlyoffice, |
| | | limsTable, |
| | | // ShowInfo, |
| | | }, |
| | | dicts: ["urgency_level", "inspection_task_state"], |
| | | computed: { |
| | | ...mapGetters(["nickName", "userId"]), |
| | | }, |
| | | data() { |
| | | return { |
| | | lookDialogVisible: false, |
| | | alone: false, |
| | | tabList: [], |
| | | active: 1, |
| | | tabIndex: 0, |
| | | entity: { |
| | | sonLaboratory: null, |
| | | insState: '3', |
| | | userId: 0, |
| | | typeSource: null, |
| | | isCheck: 1 |
| | | }, |
| | | tableData: [], |
| | | column: [ |
| | | { |
| | | label: "å§æç¼å·", |
| | | prop: "entrustCode", |
| | | width: "160px", |
| | | dataType: "link", |
| | | linkMethod: "selectAllByOne", |
| | | }, |
| | | { label: "æ ·ååç§°", prop: "sample", width: "160px" }, |
| | | { |
| | | label: "ä¸åç±»å«", |
| | | prop: "typeSource", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | if (params == 0) { |
| | | return "æåä¸å"; |
| | | } else { |
| | | return "åææä¸å"; |
| | | } |
| | | }, |
| | | }, |
| | | { label: "æ ·ååå·", prop: "sampleModel", width: "120px" }, |
| | | { |
| | | label: "ç´§æ¥ç¨åº¦", |
| | | prop: "type", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.urgencyLevel.find((m) => m.value == params).label; |
| | | }, |
| | | }, |
| | | { |
| | | label: "æ£éªç±»å", |
| | | prop: "orderType", |
| | | width: "100px", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.orderTypeList.find((m) => m.value == params).label; |
| | | }, |
| | | formatType: (params) => { |
| | | return this.orderTypeList.find((m) => m.value == params).type; |
| | | }, |
| | | }, |
| | | { |
| | | label: "ç¶æ", |
| | | prop: "insState", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return this.inspectionTaskState.find((m) => m.value == params) |
| | | .label; |
| | | }, |
| | | formatType: (params) => { |
| | | return this.inspectionTaskState.find((m) => m.value == params).type; |
| | | }, |
| | | }, |
| | | { label: "æ£éªäºº", prop: "userName" }, |
| | | { label: "夿 ¸äºº", prop: "checkName" }, |
| | | { label: "çº¦å®æ¶é´", prop: "appointed" }, |
| | | { label: "ä¸åæ¶é´", prop: "sendTime", width: "140px" }, |
| | | { label: "æ£éªå¼å§æ¶é´", prop: "insTime", width: "140px" }, |
| | | { label: "çç±", prop: "verifyTell", width: "140px" }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "æä½", |
| | | operation: [ |
| | | { |
| | | name: "夿 ¸", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleReview(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.userName == null || row.userName && !row.userName.includes(this.nickName) |
| | | } |
| | | }, |
| | | { |
| | | name: "ä¸è½½æ¥å", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.download(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "ä¸ä¼ ", |
| | | type: "upload", |
| | | accept: '.doc,.docx', |
| | | url: '/insReport/inReport', |
| | | uploadIdFun: (row) => { |
| | | return row.insReportId |
| | | } |
| | | }, |
| | | { |
| | | name: "è¿å", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleRestore(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "æ¥çæ¥å", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleIssued(row); |
| | | } |
| | | }, |
| | | // { |
| | | // name: "产ä¸é¾", |
| | | // type: "text", |
| | | // clickFun: (row) => { |
| | | // this.openInfoDialog(row); |
| | | // }, |
| | | // disabled: (row) => { |
| | | // return row.typeSource !== 1 |
| | | // }, |
| | | // } |
| | | ], |
| | | }, |
| | | ], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 0, |
| | | }, |
| | | tableLoading: false, |
| | | upIndex: 0, |
| | | planTotal: 0, |
| | | insStateList: [], |
| | | state:0,//0:å°è´¦é¡µï¼1ï¼æ£éªé¡µé¢,2æ£éªé¡µé¢(夿 ¸)ï¼é»è®¤ä¸º0 |
| | | activeFace: 0, //1ï¼ä¸åï¼2ï¼æ¥çï¼3ï¼å®¡æ ¸ï¼é»è®¤ä¸º0 |
| | | examine: null, |
| | | isReport: 0, |
| | | currentId: null, |
| | | orderId: 0, |
| | | personList:[], |
| | | currentTime: null, |
| | | sonLaboratoryList:[], |
| | | typeSourceList: [ |
| | | {label: 'æåä¸å', value: 0}, |
| | | {label: 'åææä¸å', value: 1}, |
| | | ], |
| | | isCopper: null, |
| | | customsInspection: {}, |
| | | typeSource: null,// 0:æåä¸åï¼1ï¼åææä¸å |
| | | showInfoDialog: false, // 产ä¸é¾ä¿¡æ¯æ¥ç |
| | | issuedVisible: false, |
| | | fullscreen: false, |
| | | option:null, |
| | | orderTypeList: [ |
| | | {label: 'å§æè¯éª', value: 'Customer-ordered test'}, |
| | | {label: 'æ½æ£', value: 'æ½æ£'}, |
| | | {label: 'è¿åæ£éª', value: 'è¿åæ£éª'}, |
| | | {label: 'å£åº¦æ£éª', value: 'Quarterly inspection'}, |
| | | ], |
| | | urgencyLevel: [], |
| | | inspectionTaskState: [], |
| | | } |
| | | }, |
| | | created() { |
| | | this.getDicts("urgency_level").then((response) => { |
| | | this.urgencyLevel = this.dictToValue(response.data); |
| | | }); |
| | | this.getDicts("inspection_task_state").then((response) => { |
| | | this.inspectionTaskState = this.dictToValue(response.data); |
| | | }); |
| | | this.getAuthorizedPerson() |
| | | this.currentTime = getYearAndMonthAndDays() |
| | | }, |
| | | mounted() { |
| | | this.refreshTable() |
| | | }, |
| | | methods: { |
| | | refreshTable() { |
| | | this.tableLoading = true; |
| | | let param = { ...this.entity, ...this.page }; |
| | | delete param.total; |
| | | selectInsOrderPlanList({ ...param }).then((res) => { |
| | | this.tableLoading = false; |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records; |
| | | this.page.total = res.data.total; |
| | | } |
| | | }).catch((err) => { |
| | | this.tableLoading = false; |
| | | }); |
| | | }, |
| | | pagination({ page, limit }) { |
| | | this.page.current = page; |
| | | this.page.size = limit; |
| | | this.refreshTable(); |
| | | }, |
| | | refresh() { |
| | | this.resetForm('entity') |
| | | this.refreshTable() |
| | | }, |
| | | rowClassName({ row, rowIndex }) { |
| | | if (this.currentTime == row.appointed) { |
| | | return "highlight-warning-row-border"; |
| | | } else if (this.currentTime > row.appointed) { |
| | | return "highlight-danger-row-border"; |
| | | } |
| | | return ""; |
| | | }, |
| | | // æ¥ç产ä¸é¾ä¿¡æ¯ |
| | | // openInfoDialog (row) { |
| | | // this.showInfoDialog = true |
| | | // this.$nextTick(() => { |
| | | // this.$refs.showInfoDialog.getInfo(row.ifsInventoryId) |
| | | // }) |
| | | // }, |
| | | selectAllByOne(row) { |
| | | this.isCopper = row.isCopper |
| | | this.customsInspection = row |
| | | this.activeFace = 2; |
| | | 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; |
| | | } |
| | | }, |
| | | // 夿 ¸åè° |
| | | handleReview(row){ |
| | | this.$router.push({ |
| | | path: "/inspectionTask/inspection", |
| | | query: { |
| | | sonLaboratory: row.sonLaboratory, |
| | | state: 2, |
| | | typeSource: row.typeSource, |
| | | orderId: row.id, |
| | | }, |
| | | }) |
| | | }, |
| | | // ä¸ä¼ æ¥å |
| | | handleUpload (row) { |
| | | |
| | | }, |
| | | // ä¸è½½æ¥å |
| | | download(row) { |
| | | let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi + url; |
| | | link.target = '_blank'; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | }, |
| | | // è¿åæä½ |
| | | handleRestore(row) { |
| | | this.$confirm('æ¯å¦è¿åå½åæ¥å?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | upReportUrl({id: row.insReportId}).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('è¿åæå') |
| | | this.refreshTable() |
| | | } |
| | | }) |
| | | }).catch(() => { }) |
| | | |
| | | }, |
| | | // æ¥çæ¥å |
| | | handleIssued(row) { |
| | | if (!row.tempUrlPdf) return this.$message.warning('æä»¶æªä¸ä¼ ') |
| | | this.currentInfo = row |
| | | this.lookDialogVisible = true |
| | | // this.currentInfo = row; |
| | | // let fileName = row.url |
| | | // let fileType = "docx" |
| | | // if (row.tempUrlPdf != null || row.tempUrlPdf === '') { |
| | | // fileName = row.tempUrlPdf |
| | | // fileType = "pdf" |
| | | // } |
| | | // fileName = fileName.replace('/word/','') |
| | | // const userName = this.nickName |
| | | // this.option = { |
| | | // url: this.javaApi + "/word/" + fileName, |
| | | // isEdit: false, |
| | | // fileType: fileType, |
| | | // title: fileName, |
| | | // lang: 'zh-CN', |
| | | // isPrint: false, |
| | | // user_id: 1, |
| | | // user_name: userName, |
| | | // editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName |
| | | // } |
| | | // this.issuedVisible = true; |
| | | }, |
| | | getAuthorizedPerson() { |
| | | selectUserCondition({ type: 1 }).then((res) => { |
| | | let data = []; |
| | | res.data.forEach((a) => { |
| | | data.push({ |
| | | label: a.name, |
| | | value: a.id, |
| | | }); |
| | | }); |
| | | this.personList = data; |
| | | }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .page_total { |
| | | margin-bottom: 10px; |
| | | } |
| | | </style> |