Merge remote-tracking branch 'origin/dev' into dev
¶Ô±ÈÐÂÎļþ |
| | |
| | | // ä¸ç¡®å®åº¦è¯å®ç¸å
³æ¥å£ |
| | | import request from "@/utils/request"; |
| | | |
| | | //å¯¼åº |
| | | export function exportProcessEvaluate(query) { |
| | | return request({ |
| | | url: "/processEvaluate/exportProcessEvaluate", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // å¡«å (主è¦ä¸ä¼ idå夿³¨note就好äº) |
| | | export function doProcessEvaluate(data) { |
| | | return request({ |
| | | url: "/processEvaluate/doProcessEvaluate", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //å é¤ |
| | | export function delProcessEvaluate(query) { |
| | | return request({ |
| | | url: "/processEvaluate/delProcessEvaluate", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å页 |
| | | export function pageProcessEvaluate(query) { |
| | | return request({ |
| | | url: "/processEvaluate/pageProcessEvaluate", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="uncertainty-evaluation"> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">æ¥ååç§°ï¼</div> |
| | | <div class="search_input"><el-input v-model="queryParams.reportName" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="refreshTable()"></el-input></div> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-button size="small" @click="refresh()">é ç½®</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">æ¥ è¯¢</el-button> |
| | | </div> |
| | | <div class="btn"> |
| | | <el-button :loading="outLoading" size="small" style="margin-right: 16px;margin-top: 3px;" type="primary" |
| | | @click="handleDown0">导åº</el-button> |
| | | <el-upload ref='upload' :action="action" :headers="uploadHeader" :on-change="beforeUpload" :on-error="onError" |
| | | :on-success="handleSuccessUp" :show-file-list="false" |
| | | accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'> |
| | | <el-button :loading="upLoading" size="small" type="primary">导å
¥</el-button></el-upload> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 270px)'" |
| | | :page="page" @pagination="pagination"></lims-table> |
| | | </div> |
| | | <el-dialog :visible.sync="addDialogVisible" title="è¯ä»·" width="400px"> |
| | | <el-row> |
| | | <el-col :span="24" style="margin-bottom: 16px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">è¯ä»·ï¼</div> |
| | | <div class="search_input"><el-input v-model="addInfo.note" clearable placeholder="请è¾å
¥" |
| | | size="small"></el-input></div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="24" style="margin-bottom: 16px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">æ¥æï¼</div> |
| | | <div class="search_input"> |
| | | <el-date-picker v-model="addInfo.evaluateTime" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" size="small" |
| | | style="width: 100%;" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addDialogVisible = false">å æ¶</el-button> |
| | | <el-button :loading="addLoading" type="primary" @click="handleAdd">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="lookDialogVisible" fullscreen title="æ¥çéä»¶" top="5vh" width="800px"> |
| | | <filePreview v-if="lookDialogVisible" :currentFile="{}" :fileUrl="javaApi + '/word/' + currentInfo.reportUrl" |
| | | style="max-height: 90vh;overflow-y: auto;" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import filePreview from "@/components/Preview/filePreview.vue"; |
| | | import { |
| | | exportProcessEvaluate, |
| | | doProcessEvaluate, |
| | | delProcessEvaluate, |
| | | pageProcessEvaluate, |
| | | } from '@/api/cnas/process/uncertainty.js' |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | components: { |
| | | limsTable, |
| | | filePreview |
| | | }, |
| | | data() { |
| | | return { |
| | | addPower: false, |
| | | outPower: false, |
| | | outLoading: false, |
| | | upLoading: false, |
| | | addDialogVisible: false, |
| | | addInfo: {}, |
| | | addLoading: false, |
| | | currentInfo: {}, |
| | | lookDialogVisible: false, |
| | | queryParams: {}, |
| | | tableData: [], |
| | | column: [ |
| | | { label: "æ¥ååç§°", prop: "reportName" }, |
| | | { label: "è¯ä»·äºº", prop: "evaluateUserName" }, |
| | | { label: "è¯ä»·æ¥æ", prop: "evaluateTime" }, |
| | | { label: "夿³¨", prop: "note" }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "æä½", |
| | | operation: [ |
| | | { |
| | | name: "è¯ä»·", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleTell(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "å é¤", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleDelete(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "ä¸è½½", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleDown(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "æ¥çéä»¶", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleLook(row); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 0, |
| | | }, |
| | | tableLoading: false, |
| | | } |
| | | }, |
| | | // ç¨äºä¸ä¼ æä»¶çä¿¡æ¯ |
| | | computed: { |
| | | ...mapGetters(["userId"]), |
| | | action() { |
| | | return this.javaApi + '/processEvaluate/addProcessEvaluate' |
| | | } |
| | | }, |
| | | mounted() { |
| | | // this.entityCopy = this.HaveJson(this.componentData.entity); |
| | | this.getList() |
| | | }, |
| | | methods: { |
| | | getPower() { |
| | | let power = JSON.parse(sessionStorage.getItem('power')) |
| | | let up = false |
| | | let del = false |
| | | let add = false |
| | | let out = false |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'doProcessEvaluate') { |
| | | up = true |
| | | } |
| | | if (power[i].menuMethod == 'addProcessEvaluate') { |
| | | add = true |
| | | } |
| | | if (power[i].menuMethod == 'delProcessEvaluate') { |
| | | del = true |
| | | } |
| | | if (power[i].menuMethod == 'exportProcessEvaluate') { |
| | | out = true |
| | | } |
| | | } |
| | | if (!del) { |
| | | this.componentData.do.splice(1, 1) |
| | | } |
| | | if (!up) { |
| | | this.componentData.do.splice(0, 1) |
| | | } |
| | | this.outPower = out |
| | | this.addPower = add |
| | | }, |
| | | handleDown0() { |
| | | this.outLoading = true |
| | | exportProcessEvaluate(this.queryParams).then(res => { |
| | | this.outLoading = false |
| | | if (res.code === 201) return |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | this.$download.saveAs(blob, 'æµéä¸ç¡®å®åº¦çè¯å®.xlsx'); |
| | | }) |
| | | }, |
| | | handleDown(row) { |
| | | let url = this.javaApi + '/word/' + row.reportUrl |
| | | this.$download.saveAs(url, row.reportName); |
| | | }, |
| | | beforeUpload(file) { |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('ä¸ä¼ æä»¶ä¸è¶
è¿10M'); |
| | | this.$refs.upload.clearFiles() |
| | | return false; |
| | | } else { |
| | | // this.upLoading = true; |
| | | return true; |
| | | } |
| | | }, |
| | | onError(err, file, fileList) { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | this.$refs.upload.clearFiles() |
| | | }, |
| | | handleSuccessUp(response) { |
| | | this.upLoading = false; |
| | | if (response.code == 200) { |
| | | this.$message.success('ä¸ä¼ æå'); |
| | | this.refreshTable() |
| | | } |
| | | }, |
| | | handleTell(row) { |
| | | this.addInfo = row; |
| | | this.addDialogVisible = true; |
| | | }, |
| | | handleAdd() { |
| | | this.addLoading = true; |
| | | doProcessEvaluate({ |
| | | id: this.addInfo.id, |
| | | note: this.addInfo.note, |
| | | evaluateTime: this.addInfo.evaluateTime, |
| | | evaluateUser: this.userId |
| | | }).then((res) => { |
| | | this.addLoading = false; |
| | | if (res.code == 201) { |
| | | this.$message.error('è¯ä»·å¤±è´¥'); |
| | | return; |
| | | } |
| | | this.$message.success('è¯ä»·æå'); |
| | | this.addDialogVisible = false; |
| | | this.refreshTable() |
| | | }) |
| | | }, |
| | | getList() { |
| | | this.tableLoading = true; |
| | | let param = { ...this.queryParams, ...this.page }; |
| | | delete param.total; |
| | | pageProcessEvaluate({ ...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.getList(); |
| | | }, |
| | | refresh() { |
| | | this.queryParams = {}; |
| | | this.page.current = 1; |
| | | this.getList(); |
| | | }, |
| | | refreshTable() { |
| | | this.page.current = 1; |
| | | this.getList(); |
| | | }, |
| | | handleLook(row) { |
| | | this.currentInfo = row; |
| | | this.lookDialogVisible = true; |
| | | }, |
| | | handleDelete(row) { |
| | | this.$confirm("æ¯å¦å é¤è¯¥æ¡æ°æ®?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | delProcessEvaluate({ id: row.id }).then((res) => { |
| | | if (res.code == 201) return; |
| | | this.$message.success("å 餿å"); |
| | | this.refresh(); |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | position: relative; |
| | | } |
| | | |
| | | .search_thing { |
| | | width: 350px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 80px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 80px); |
| | | } |
| | | |
| | | .table { |
| | | background-color: #fff; |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | |
| | | .btn { |
| | | position: absolute; |
| | | top: 16px; |
| | | right: 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | </style> |
| | |
| | | <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-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-form> |
| | | <div class="page_total"> |
| | | <span>æ»è®¡ä»»å¡æ°é:</span> |
| | | <span>{{page.total}}</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> |
| | | :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination" |
| | | key="tableData0"></lims-table> |
| | | </div> |
| | | <!--æ¥åæ¥ç--> |
| | | <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> |
| | | <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" > |
| | | <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%;" /> |
| | |
| | | </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> |
| | |
| | | // 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 { selectInsOrderPlanList, selectUserCondition } from "@/api/business/inspectionTask"; |
| | | import { mapGetters } from "vuex"; |
| | | import { upReportUrl } from "@/api/business/insReport"; |
| | | import filePreview from "@/components/Preview/filePreview.vue"; |
| | | |
| | | export default { |
| | |
| | | upIndex: 0, |
| | | planTotal: 0, |
| | | insStateList: [], |
| | | state:0,//0:å°è´¦é¡µï¼1ï¼æ£éªé¡µé¢,2æ£éªé¡µé¢(夿 ¸)ï¼é»è®¤ä¸º0 |
| | | state: 0,//0:å°è´¦é¡µï¼1ï¼æ£éªé¡µé¢,2æ£éªé¡µé¢(夿 ¸)ï¼é»è®¤ä¸º0 |
| | | activeFace: 0, //1ï¼ä¸åï¼2ï¼æ¥çï¼3ï¼å®¡æ ¸ï¼é»è®¤ä¸º0 |
| | | examine: null, |
| | | isReport: 0, |
| | | currentId: null, |
| | | orderId: 0, |
| | | personList:[], |
| | | personList: [], |
| | | currentTime: null, |
| | | sonLaboratoryList:[], |
| | | sonLaboratoryList: [], |
| | | typeSourceList: [ |
| | | {label: 'æåä¸å', value: 0}, |
| | | {label: 'åææä¸å', value: 1}, |
| | | { label: 'æåä¸å', value: 0 }, |
| | | { label: 'åææä¸å', value: 1 }, |
| | | ], |
| | | isCopper: null, |
| | | customsInspection: {}, |
| | |
| | | showInfoDialog: false, // 产ä¸é¾ä¿¡æ¯æ¥ç |
| | | issuedVisible: false, |
| | | fullscreen: false, |
| | | option:null, |
| | | option: null, |
| | | orderTypeList: [ |
| | | {label: 'å§æè¯éª', value: 'Customer-ordered test'}, |
| | | {label: 'æ½æ£', value: 'æ½æ£'}, |
| | | {label: 'è¿åæ£éª', value: 'è¿åæ£éª'}, |
| | | {label: 'å£åº¦æ£éª', value: 'Quarterly inspection'}, |
| | | { label: 'å§æè¯éª', value: 'Customer-ordered test' }, |
| | | { label: 'æ½æ£', value: 'æ½æ£' }, |
| | | { label: 'è¿åæ£éª', value: 'è¿åæ£éª' }, |
| | | { label: 'å£åº¦æ£éª', value: 'Quarterly inspection' }, |
| | | ], |
| | | urgencyLevel: [], |
| | | inspectionTaskState: [], |
| | |
| | | } |
| | | }, |
| | | // 夿 ¸åè° |
| | | handleReview(row){ |
| | | handleReview(row) { |
| | | this.$router.push({ |
| | | path: "/inspectionTask/inspection", |
| | | query: { |
| | |
| | | }) |
| | | }, |
| | | // ä¸ä¼ æ¥å |
| | | handleUpload (row) { |
| | | handleUpload(row) { |
| | | |
| | | }, |
| | | // ä¸è½½æ¥å |
| | | download(row) { |
| | | let url = this.javaApi+'/word/' + (row.urlS===null||row.urlS==='')?row.url:row.urlS |
| | | let url = this.javaApi + '/word/' + (row.urlS === null || row.urlS === '') ? row.url : row.urlS |
| | | this.$download.saveAs(url, row.fileName); |
| | | }, |
| | | // è¿åæä½ |
| | |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | | }).then(() => { |
| | | upReportUrl({id: row.insReportId}).then(res => { |
| | | upReportUrl({ id: row.insReportId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('è¿åæå') |
| | | this.refreshTable() |