Merge remote-tracking branch 'origin/dev' into dev
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // å页æ¥è¯¢ |
| | | export function selectQualifiedSupplierManagementPage(query) { |
| | | return request({ |
| | | url: '/supplierManagement/selectQualifiedSupplierManagementPage', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // ç¼è¾ä¾åºå |
| | | export function updateSupplierManagement(query) { |
| | | return request({ |
| | | url: '/supplierManagement/updateSupplierManagement', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // æ°å¢ä¾åºå |
| | | export function addSupplierManagement(query) { |
| | | return request({ |
| | | url: '/supplierManagement/addSupplierManagement', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // 导åºä¾åºå |
| | | export function exportSupplierManagement(query) { |
| | | return request({ |
| | | url: "/supplierManagement/exportSupplierManagement", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // å é¤ä¾åºå |
| | | export function delSupplierManagement(query) { |
| | | return request({ |
| | | url: '/supplierManagement/delSupplierManagement', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // å®éªå®¤çæ£æµè½åæ¡£æ¡ç¸å
³æ¥å£ |
| | | import request from "@/utils/request"; |
| | | |
| | | // 姿忣éªå页æ¥è¯¢ |
| | | export const getInspectionOrder = (params) => { |
| | | return request({ |
| | | url: "/inspectionOrder/pageInspectionOrder", |
| | | method: "get", |
| | | params: params |
| | | }) |
| | | } |
| | |
| | | content: ""; |
| | | display: inline-block; |
| | | width: 4px; |
| | | height: 28px; |
| | | height: 16px; |
| | | background: #3a7bfa; |
| | | border-radius: 10px; |
| | | margin-left: 32px; |
| | | margin-left: 20px; |
| | | margin-right: 8.5px; |
| | | } |
| | | |
| | |
| | | content: ""; |
| | | display: inline-block; |
| | | width: 4px; |
| | | height: 28px; |
| | | height: 16px; |
| | | background: #3a7bfa; |
| | | border-radius: 10px; |
| | | margin-left: 20px; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" |
| | | :title="operationType === 'edit' ? 'ç¼è¾' : 'æ°å¢'" |
| | | :visible.sync="formDia" |
| | | width="90%" @close="closeDia"> |
| | | <el-form :model="model" ref="modelForm" label-width="150px" :rules="rules"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¾åºå" prop="supplierName"> |
| | | <el-input v-model="model.supplierName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç¼å·" prop="supplierRef"> |
| | | <el-input v-model="model.supplierRef" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="ä¾åºåç©åæå¡åç§°" prop="supplierItemServiceName"> |
| | | <el-input v-model="model.supplierItemServiceName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é®ç¼"> |
| | | <el-input v-model="model.postalCode" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å°å"> |
| | | <el-input v-model="model.adress" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è系人"> |
| | | <el-input v-model="model.contacts" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="èç³»çµè¯"> |
| | | <el-input v-model="model.phone" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ·å"> |
| | | <el-input v-model="model.householdName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¼ ç"> |
| | | <el-input v-model="model.fax" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="弿·è¡"> |
| | | <el-input v-model="model.openingName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç½å"> |
| | | <el-input v-model="model.website" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è´¦å·"> |
| | | <el-input v-model="model.accountName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="Email"> |
| | | <el-input v-model="model.email" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer"> |
| | | <el-button @click="closeDia">å æ¶</el-button> |
| | | <el-button type="primary" @click="submit" :loading="editLoad">ä¿ å</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | addSupplierManagement, |
| | | updateSupplierManagement |
| | | } from '@/api/cnas/externalService/supplierManage/supplierManage' |
| | | |
| | | export default { |
| | | name: "formDia", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | operationType: '', |
| | | formDia: false, |
| | | model: { |
| | | supplierName: '', |
| | | supplierRef: '', |
| | | supplierItemServiceName: '', |
| | | postalCode: '', |
| | | adress: '', |
| | | contacts: '', |
| | | phone: '', |
| | | householdName: '', |
| | | fax: '', |
| | | openingName: '', |
| | | website: '', |
| | | accountName: '', |
| | | email: '', |
| | | supplierManagementId: '', |
| | | }, |
| | | rules: { |
| | | supplierName: [{ required: true, message: '请è¾å
¥ä¾åºå', trigger: 'blur' }], |
| | | supplierRef: [{ required: true, message: '请è¾å
¥ä¾åºåç¼å·', trigger: 'blur' }], |
| | | |
| | | }, |
| | | editLoad: false, |
| | | } |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | openDialog (type, row) { |
| | | this.operationType = type |
| | | this.formDia = true |
| | | if (this.operationType === 'edit') { |
| | | this.model = this.HaveJson(row) |
| | | } |
| | | }, |
| | | // æäº¤è¡¨å |
| | | submit () { |
| | | this.$refs.modelForm.validate((valid) => { |
| | | if (valid) { |
| | | this.editLoad = true |
| | | if (this.operationType === 'edit') { |
| | | updateSupplierManagement(this.model).then(res => { |
| | | this.editLoad = false |
| | | if (res.code === 200){ |
| | | this.$message.success('ä¿®æ¹æå') |
| | | this.closeDia() |
| | | } |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.editLoad = false |
| | | }) |
| | | } else { |
| | | addSupplierManagement(this.model).then(res => { |
| | | this.editLoad = false |
| | | if (res.code === 200){ |
| | | this.$message.success('æ°å¢æå') |
| | | this.closeDia() |
| | | } |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.editLoad = false |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | closeDia () { |
| | | this.$refs.modelForm.resetFields() |
| | | this.formDia = false |
| | | this.$emit('closeDia') |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="capacity-scope"> |
| | | <div class="search"> |
| | | <div> |
| | | <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> |
| | | <el-form-item label="åç§°" prop="supplierName"> |
| | | <el-input v-model="searchForm.supplierName" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="getTableData">æ¥ è¯¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">é ç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div> |
| | | <el-button size="medium" @click="exportExcel">导 åº</el-button> |
| | | <el-button size="medium" type="primary" @click="showDialog('add')">æ° å¢</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 250px)'" @pagination="pagination" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <form-dia ref="formDia" v-if="formDia" @closeDia="closeDia"></form-dia> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // import ZTTable from "../caorui/ZTTable/index.vue"; |
| | | // import TableCard from "../caorui/TableCard/index.vue"; |
| | | // import axios from "axios"; |
| | | import FormDia from "../supplierManage/component/formDia.vue"; |
| | | import limsTable from '@/components/Table/lims-table.vue' |
| | | import { |
| | | selectQualifiedSupplierManagementPage, |
| | | exportSupplierManagement, |
| | | delSupplierManagement |
| | | } from '@/api/cnas/externalService/supplierManage/supplierManage' |
| | | |
| | | export default { |
| | | name: "a6-supplier-manage-new", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | | limsTable, |
| | | FormDia |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | searchForm: { |
| | | supplierName: '' |
| | | }, |
| | | tableLoading: false, |
| | | tableColumn: [ |
| | | { |
| | | label: "ä¾åºåç¼å·", |
| | | prop: "supplierRef" |
| | | }, |
| | | { |
| | | label: "ä¾åºå", |
| | | prop: "supplierName" |
| | | }, |
| | | { |
| | | label: "ä¾åºç©å(æå¡)åç§°", |
| | | prop: "supplierItemServiceName" |
| | | }, |
| | | { |
| | | label: "å°å", |
| | | prop: "adress" |
| | | }, |
| | | { |
| | | label: "èç³»çµè¯", |
| | | prop: "phone" |
| | | }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: "right", |
| | | minWidth: '60', |
| | | label: 'æä½', |
| | | operation: [ |
| | | { |
| | | name: 'ç¼è¾', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.showDialog('edit', row); |
| | | }, |
| | | }, |
| | | { |
| | | name: 'å é¤', |
| | | type: 'text', |
| | | color: '#f56c6c', |
| | | clickFun: (row) => { |
| | | this.deleteRow(row); |
| | | }, |
| | | } |
| | | |
| | | ] |
| | | } |
| | | ], |
| | | tableData: [], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | formDia: false, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getTableData() |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // è·åè¡¨æ ¼æ°æ® |
| | | async getTableData() { |
| | | this.tableLoading = true; |
| | | selectQualifiedSupplierManagementPage(this.searchForm).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 |
| | | }) |
| | | }, |
| | | // éç½® |
| | | resetSearchForm () { |
| | | this.pagination.current = 1 |
| | | this.pagination.pageSize = 20 |
| | | this.searchForm.supplierName = '' |
| | | this.getTableData() |
| | | }, |
| | | // å页忢 |
| | | pagination(page) { |
| | | this.page.size = page.limit |
| | | this.getTableData(); |
| | | }, |
| | | // æå¼æ°å¢å¼¹æ¡ |
| | | showDialog(type, row) { |
| | | this.formDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.formDia.openDialog(type, row) |
| | | }) |
| | | }, |
| | | // å
³éå¼¹æ¡ |
| | | closeDia () { |
| | | this.formDia = false |
| | | this.getTableData() |
| | | }, |
| | | // å é¤è®°å½ |
| | | deleteRow (row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æä»¶, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | delSupplierManagement({supplierManagementId:row.supplierManagementId}).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('å 餿åï¼') |
| | | this.getTableData() |
| | | } |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | // 导åºexcel |
| | | async exportExcel() { |
| | | exportSupplierManagement({deviceId:this.clickNodeVal.value}).then(res => { |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | this.$download.saveAs(blob, 'åæ ¼ä¾åºå.xlsx') |
| | | this.$message.success('å¯¼åºæå') |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog title="æ°å¢æ£éªå§æå" :visible.sync="visible" width="1200px"> |
| | | <div id="dialogBody"> |
| | | <div style="max-height: 75vh;overflow-y: auto;"> |
| | | <div id="dialogBody"> |
| | | <table border="1" cellpadding="10" class="tables heads"> |
| | | <tr> |
| | | <td rowspan="2"> |
| | | <img alt="" :src="ZTTLogo" style="width: 80%;"> |
| | | </td> |
| | | <td> |
| | | <p>è®°å½åç§°ï¼æ£éªå§æå</p> |
| | | </td> |
| | | <td> |
| | | <p>ä¿åæéï¼6å¹´</p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <p>è®°å½ç¼å·ï¼ ZTT/QR-16-04-a</p> |
| | | </td> |
| | | <td> |
| | | <p>彿¡£é¨é¨ï¼ç»¼å室</p> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <h4 class="table_h4"> |
| | | æ£ éª å§ æ å |
| | | </h4> |
| | | <p |
| | | v-if="operationType !== 'view'" |
| | | style="margin-left: 560px;display: flex;align-items: center"> |
| | | <span style="width: 100px">å§æç¼å·ï¼</span> |
| | | <el-input clearable size="small"></el-input> |
| | | </p> |
| | | <p v-else style="margin-top: 16px;margin-left: 600px;"> |
| | | å§æç¼å·ï¼{{ currentInfo.entrustCode }} |
| | | </p> |
| | | <table border="1" cellpadding="10" class="tables"> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>è¯æ ·åç§°</p> |
| | | </td> |
| | | <td > |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.sampleName" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.sampleName }}</span> |
| | | </td> |
| | | <td> |
| | | <p>å§ææ¶é´</p> |
| | | </td> |
| | | <td> |
| | | <el-date-picker |
| | | v-if="operationType !== 'view'" |
| | | v-model="currentInfo.commissionDate" |
| | | clearable |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | <span v-else>{{ currentInfo.commissionDate }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å å·</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.modelNo" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.modelNo }}</span> |
| | | </td> |
| | | <td> |
| | | <p>å§æåä½</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.commissionUnit" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.commissionUnit }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>ç产åä½</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.production" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.production }}</span> |
| | | </td> |
| | | <td> |
| | | <p>å§æäºº</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.commissionUser" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.commissionUser }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>æ ·åæ°é</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.quantity" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.quantity }}</span> |
| | | </td> |
| | | <td> |
| | | <p>æ ·åç¶æ</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.sampleStatus" clearable size="small"></el-input> |
| | | <span v-else>{{ insStateList.find(m=>m.value==currentInfo.sampleStatus)?insStateList.find(m=>m.value==currentInfo.sampleStatus).label:'/' }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>æ¯å¦çæ ·</p> |
| | | </td> |
| | | <td> |
| | | <el-radio-group |
| | | v-if="operationType !== 'view'" |
| | | v-model="currentInfo.isLeave" |
| | | v-removeAriaHidden |
| | | > |
| | | <el-radio :label="1">æ¯</el-radio> |
| | | <el-radio :label="0">å¦</el-radio> |
| | | </el-radio-group> |
| | | <div v-else> |
| | | <span v-if="currentInfo.isLeave==1">æ¯</span> |
| | | <span v-else>å¦</span> |
| | | </div> |
| | | </td> |
| | | <td> |
| | | <p>æ ·åå¤çæ¹å¼</p> |
| | | </td> |
| | | <td v-if="operationType !== 'view'"> |
| | | <el-radio-group v-model="currentInfo.processing" v-removeAriaHidden> |
| | | <el-radio :label="0">å§æåä½åå</el-radio> |
| | | <el-radio :label="1">å®éªå®¤å¤ç</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | <td v-else> |
| | | <span v-if="currentInfo.processing==0">å§æåä½åå</span> |
| | | <span v-else>å®éªå®¤å¤ç</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>约å®å®ææ¶é´(æ¥åæ¥æ)</p> |
| | | </td> |
| | | <td> |
| | | <el-date-picker |
| | | v-if="operationType !== 'view'" |
| | | v-model="currentInfo.appointed" |
| | | clearable |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | <span v-else> |
| | | {{ currentInfo.appointed }} |
| | | </span> |
| | | </td> |
| | | <td> |
| | | <p>æ¥ååéæ¹å¼</p> |
| | | </td> |
| | | <td > |
| | | <el-radio-group |
| | | v-if="operationType !== 'view'" |
| | | v-model="currentInfo.send" v-removeAriaHidden |
| | | > |
| | | <el-radio :label="1">èªå</el-radio> |
| | | <el-radio :label="0">å
¶ä»</el-radio> |
| | | </el-radio-group> |
| | | <div v-else> |
| | | <span v-if="currentInfo.send==1">èªå</span> |
| | | <span v-else>å
¶ä»</span> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | <el-button class="add_btn" size="small" type="primary" @click="addOrderDetailList">æ·»å </el-button> |
| | | <tr> |
| | | <td> |
| | | <p>åºå·</p> |
| | | </td> |
| | | <td> |
| | | <p>æ ·åç¼å·</p> |
| | | </td> |
| | | <td> |
| | | <p>è¯éªé¡¹ç®</p> |
| | | </td> |
| | | <td> |
| | | <p>æ£éªä¾æ®</p> |
| | | </td> |
| | | <td> |
| | | <p>夿³¨</p> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(item,index) in currentInfo.orderDetailList" :key="index" > |
| | | <td>{{ index+1 }}</td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="item.sampleNumber" clearable size="small"></el-input> |
| | | <span v-else>{{ item.sampleNumber }}</span> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'"v-model="item.testItem" clearable size="small"></el-input> |
| | | <span v-else>{{ item.testItem }}</span> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="item.testStandard" clearable size="small"></el-input> |
| | | <span v-else>{{ item.testStandard }}</span> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="item.remark" clearable size="small"></el-input> |
| | | <span v-else>{{ item.remark }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å¤å®è§å</p> |
| | | </td> |
| | | <td v-if="operationType !== 'view'" colspan="3"> |
| | | <el-radio-group v-model="currentInfo.criterionRule" v-removeAriaHidden> |
| | | <el-radio :label="0">ä¸èèä¸ç¡®å®åº¦</el-radio> |
| | | <el-radio :label="1">èèä¸ç¡®å®åº¦</el-radio> |
| | | </el-radio-group> |
| | | <span v-if="currentInfo.criterionRule === 1"> |
| | | <el-input v-model="currentInfo.criterionRuleRemark" clearable size="small" style="width: 60px"></el-input> |
| | | % |
| | | </span> |
| | | </td> |
| | | <td v-else colspan="3"> |
| | | <span v-if="currentInfo.criterionRule===0">ä¸èèä¸ç¡®å®åº¦</span> |
| | | <span v-if="currentInfo.criterionRule===1">èèä¸ç¡®å®åº¦</span> |
| | | <span v-if="currentInfo.criterionRule===1">{{ currentInfo.criterionRuleRemark + '%' }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å§æäººç¾å</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.commissionUser" clearable size="small"></el-input> |
| | | <span v-else>{{currentInfo.commissionUser}}</span> |
| | | </td> |
| | | <td> |
| | | <p>å§ææ¥æ</p> |
| | | </td> |
| | | <td> |
| | | <el-date-picker |
| | | v-if="operationType !== 'view'" |
| | | v-model="currentInfo.commissionDate" |
| | | clearable |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | <span v-else>{{ currentInfo.commissionDate }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>å§æäººèç³»çµè¯</p> |
| | | </td> |
| | | <td colspan="3"> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.commissionPhone" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.commissionPhone }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>综å室ç¾å</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.generalOfficeUser" clearable size="small"></el-input> |
| | | <span v-else>{{currentInfo.generalOfficeUser}}</span> |
| | | </td> |
| | | <td> |
| | | <p>æ¥æ¶æ¥æ</p> |
| | | </td> |
| | | <td> |
| | | <el-date-picker |
| | | v-if="operationType !== 'view'" |
| | | v-model="currentInfo.receiptData" |
| | | clearable |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | <span v-else>{{ currentInfo.receiptData }}</span> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2"> |
| | | <p>颿 ·åç¾å</p> |
| | | </td> |
| | | <td> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentInfo.sampleTakerUser" clearable size="small"></el-input> |
| | | <span v-else>{{ currentInfo.sampleTakerUser }}</span> |
| | | </td> |
| | | <td> |
| | | <p>颿 ·æ¥æ</p> |
| | | </td> |
| | | <td v-if="operationType !== 'view'"> |
| | | <el-date-picker |
| | | v-model="currentInfo.sampleData" |
| | | clearable |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | style="width: 100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </td> |
| | | <td v-else>{{ currentInfo.sampleData }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="2" rowspan="3"> |
| | | <p>æ£æµæºæä¿¡æ¯</p> |
| | | </td> |
| | | <td colspan="3"> |
| | | <p>æ±èä¸å¤©ç§æè¡ä»½æéå
¬å¸æ£æµä¸å¿</p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="3"> |
| | | <p>å°åï¼æ±èçåéå¸ç»æµææ¯å¼ååºæ°å¼åè·¯ 19 å·</p> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td colspan="3"> |
| | | <p>çµè¯ï¼0513-89059043</p> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <p style="margin-top: 10px;margin-left: 20px;">æ³¨ï¼æ¬æ£éªå§æåä¸å¼äºä»½ï¼ä¸ä»½ç»¼å室彿¡£ï¼ä¸ä»½å§æåä½çåã</p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <span v-if="operationType !== 'view'" slot="footer" class="dialog-footer"> |
| | | <el-button @click="detailDialogVisible = false">å æ¶</el-button> |
| | | <el-button v-if="operationType === 'add'" :loading="buttonLoading" type="primary" @click="handleAdd"> |
| | | ç¡® å® |
| | | </el-button> |
| | | <el-button v-if="operationType === 'edit'" :loading="buttonLoading" type="primary" @click="handleEdit"> |
| | | ç¡® å® |
| | | </el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | <script> |
| | | import ZTTLogo from "@/assets/logo/ZTTlogo.png" |
| | | export default { |
| | | name: 'AddContracts', |
| | | data() { |
| | | return { |
| | | ZTTLogo, |
| | | visible: false, |
| | | operationType: '', |
| | | currentInfo:{ |
| | | orderDetailList: [] |
| | | }, |
| | | } |
| | | }, |
| | | methods: { |
| | | open() { |
| | | this.visible = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .tables { |
| | | table-layout: fixed; |
| | | width: 100%; |
| | | margin-top: 10px; |
| | | border-collapse: collapse; /* å
³é®å±æ§ï¼åå¹¶è¾¹æ¡ */ |
| | | td { |
| | | height: 40px; |
| | | width: 100px; |
| | | text-align: center; |
| | | font-size: 14px; |
| | | word-wrap: break-word; |
| | | white-space: normal; |
| | | p { |
| | | margin: unset |
| | | } |
| | | } |
| | | } |
| | | .heads { |
| | | td { |
| | | border: 1px dashed black; /* åå
æ ¼çè线 */ |
| | | padding: 8px; |
| | | text-align: left; |
| | | } |
| | | } |
| | | .table_h4 { |
| | | display: flex; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | font-size: 28px; |
| | | font-weight: bold; |
| | | margin: 10px 0 10px 0; |
| | | } |
| | | .add_btn { |
| | | margin: 10px 0 10px 10px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog title="æ°å¢æ£éªä»»å¡å" :visible.sync="visible"> |
| | | <el-form :model="search" :inline="true"> |
| | | <el-form-item label="å§æç¼å·ï¼"> |
| | | <el-input placeholder="请è¾å
¥å§æç¼å·"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary">æ¥ è¯¢</el-button> |
| | | <el-button>é ç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <lims-table |
| | | :column="column" |
| | | :tableData="tableData" |
| | | :page="page" |
| | | /> |
| | | </el-dialog> |
| | | <AddContracts ref="addContractsRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import AddContracts from "./AddContracts.vue"; |
| | | export default { |
| | | name: 'EditDemand', |
| | | components: { |
| | | limsTable, |
| | | AddContracts |
| | | }, |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | search: {}, |
| | | column: [ |
| | | { label: 'åºå·', minWidth: '100px' }, |
| | | { label: 'å§æç¼å·', minWidth: '100px' }, |
| | | { label: 'æ ·ååç§°', minWidth: '100px' }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "æä½", |
| | | operation: [ |
| | | { |
| | | name: "æ°å¢å§æå", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.$refs.addContractsRef.open() |
| | | } |
| | | } |
| | | ], |
| | | }, |
| | | ], |
| | | tableData: [{}], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1, |
| | | }, |
| | | } |
| | | }, |
| | | methods: { |
| | | open() { |
| | | this.visible = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <style lang="scss" scoped> |
| | | .standard_method { |
| | | padding: 20px; |
| | | } |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_thing { |
| | | // width: 350px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 110px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 110px); |
| | | } |
| | | |
| | | .table { |
| | | margin-top: 10px; |
| | | background-color: #fff; |
| | | width: calc(100% - 40px); |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="standard_method"> |
| | | <el-form :model="model" :inline="true" label-width="auto"> |
| | | <el-form-item label="è¯æ ·åç§°ï¼"> |
| | | <el-input size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | @change="refreshTable()" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å§æåä½ï¼"> |
| | | <el-input size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | @change="refreshTable()" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="ç产åä½ï¼"> |
| | | <el-input size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | @change="refreshTable()" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å§æäººï¼"> |
| | | <el-input size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | @change="refreshTable()" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="small"> |
| | | é ç½® |
| | | </el-button> |
| | | <el-button size="small" type="primary"> |
| | | æ¥ è¯¢ |
| | | </el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div style="margin-bottom: 10px"> |
| | | <el-button size="small" type="primary" icon="el-icon-plus" @click="openDialog"> |
| | | æ° å¢ |
| | | </el-button> |
| | | </div> |
| | | <lims-table |
| | | :column="column" |
| | | :tableData="tableData" |
| | | :height="'calc(100vh - 250px)'" |
| | | :page="page" |
| | | /> |
| | | <Edit ref="editRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import Edit from './Edit.vue' |
| | | import { getInspectionOrder } from "@/api/cnas/process/demand/demand.js" |
| | | |
| | | export default { |
| | | name: 'Demand', |
| | | components: { |
| | | limsTable, |
| | | Edit |
| | | }, |
| | | data() { |
| | | return { |
| | | queryParams: { |
| | | code: '' |
| | | }, |
| | | model: {}, |
| | | column: [ |
| | | { label: 'åºå·', minWidth: '100px' }, |
| | | { label: 'è¯æ ·åç§°', minWidth: '100px' }, |
| | | { label: 'å§æç¼å·' }, |
| | | { label: 'å§ææ¶é´' }, |
| | | { label: 'åå·' }, |
| | | { label: 'å§æåä½' }, |
| | | { label: 'ç产åä½' }, |
| | | { label: 'å§æäºº' }, |
| | | { label: 'æ ·åæ°é' }, |
| | | { label: 'æ ·åç¶æ' }, |
| | | { label: 'æ¯å¦çæ ·' }, |
| | | { label: 'æ ·åå¤çæ¹å¼' }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "æä½", |
| | | operation: [ |
| | | { |
| | | name: "ç¼ è¾", |
| | | type: "text" |
| | | } |
| | | ], |
| | | }, |
| | | ], |
| | | tableData: [], // è¡¨æ ¼æ°æ® |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1, |
| | | }, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.refreshTable() |
| | | }, |
| | | methods: { |
| | | /** |
| | | * @desc å·æ°è¡¨æ ¼ |
| | | */ |
| | | async refreshTable() { |
| | | await getInspectionOrder({ ...this.page }) |
| | | }, |
| | | /** |
| | | * @desc æå¼æ¨¡ææ¡ |
| | | */ |
| | | openDialog() { |
| | | this.$refs.editRef.open() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | exportOfStandardSubstanceList(this.searchForm).then(res =>{ |
| | | this.outLoading = false |
| | | const blob = new Blob([res], {type: 'application/octet-stream'},false); |
| | | let reader = new FileReader(); |
| | | reader.readAsText(blob, 'utf-8'); |
| | | reader.onload = () => { |
| | | try { |
| | | let result = JSON.parse(reader.result); |
| | | if (result.message) { |
| | | this.$message.error(result.message); |
| | | } else { |
| | | const url = URL.createObjectURL(blob); |
| | | const link = document.createElement('a'); |
| | | link.href = url; |
| | | link.download = 'æ åç©è´¨æ¸
å.xlsx'; |
| | | link.click(); |
| | | this.$message.success('å¯¼åºæå') |
| | | } |
| | | } catch (err) { |
| | | console.log(err); |
| | | const url = URL.createObjectURL(blob); |
| | | const link = document.createElement('a'); |
| | | link.href = url; |
| | | link.download = 'æ åç©è´¨æ¸
å.xlsx'; |
| | | link.click(); |
| | | this.$message.success('å¯¼åºæå') |
| | | } |
| | | } |
| | | this.$download.saveAs(blob, 'æ åç©è´¨æ¸
å.xlsx') |
| | | this.$message.success('å¯¼åºæå') |
| | | }) |
| | | }, |
| | | // æ¥è¯¢å表 |