| | |
| | | // æåä¸å详æ
页é¢ç¸å
³æ¥å£ |
| | | import request from '@/utils/request' |
| | | import request from "@/utils/request"; |
| | | |
| | | // æåä¸åç颿¥è¯¢å£åº¦ä¿¡æ¯ |
| | | // æåä¸åç颿¥è¯¢å¯é æ§ä¿¡æ¯ |
| | | export function getQuarterOnOrder() { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/getQuarterOnOrder', |
| | | method: 'get' |
| | | }) |
| | | url: "/finishProductSpotCheck/getQuarterOnOrder", |
| | | method: "get", |
| | | }); |
| | | } |
| | | // ä¿®æ¹æåä¸åå
容 |
| | | export function updateInsOrder(query) { |
| | | return request({ |
| | | url: '/insOrder/updateInsOrder', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | url: "/insOrder/updateInsOrder", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | // æ·»å æ£éªä¸åæ°æ® |
| | | export function addInsOrder(query) { |
| | | return request({ |
| | | url: '/insOrder/addInsOrder', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | url: "/insOrder/addInsOrder", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | // å®¡æ ¸æ£éªåæºè¿è¡ç¶æä¿®æ¹ |
| | | export function upInsOrderOfState(query) { |
| | | return request({ |
| | | url: '/insOrder/upInsOrderOfState', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | url: "/insOrder/upInsOrderOfState", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | // æ¥è¯¢è®¢åæ»å
±é¢è®¡æ¶é´ |
| | | export function selectOrderManDay(query) { |
| | | return request({ |
| | | url: '/insOrder/selectOrderManDay', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/insOrder/selectOrderManDay", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | // æ£éªä¸å |
| | | export function upInsOrder(query) { |
| | | return request({ |
| | | url: '/insOrder/upInsOrder', |
| | | method: 'post', |
| | | params: query |
| | | }) |
| | | url: "/insOrder/upInsOrder", |
| | | method: "post", |
| | | params: query, |
| | | }); |
| | | } |
| | | // å 餿£éªåæ¨¡æ¿ |
| | | export function delInsOrderTemplate(query) { |
| | | return request({ |
| | | url: '/insOrder/delInsOrderTemplate', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/insOrder/delInsOrderTemplate", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | // æ·»å æ£éªåæ¨¡æ¿ |
| | | export function addInsOrderTemplate(query) { |
| | | return request({ |
| | | url: '/insOrder/addInsOrderTemplate', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | url: "/insOrder/addInsOrderTemplate", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | // éè¿æ£éªå模æ¿idè·åæ£éªå模æ¿å
容 |
| | | export function selectInsOrderTemplateById(query) { |
| | | return request({ |
| | | url: '/insOrder/selectInsOrderTemplateById', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/insOrder/selectInsOrderTemplateById", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | |
| | | data: query, |
| | | }); |
| | | } |
| | | // å£åº¦æ½æ£æ¥ç详æ
|
| | | // å¯é æ§æ½æ£æ¥ç详æ
|
| | | export function getQuarter(query) { |
| | | return request({ |
| | | url: "/finishProductSpotCheck/getQuarter", |
| | |
| | | params: query, |
| | | }); |
| | | } |
| | | // æäº¤å£åº¦æ½æ · |
| | | // æäº¤å¯é æ§æ½æ · |
| | | export function addQuarter(query) { |
| | | return request({ |
| | | url: "/finishProductSpotCheck/addQuarter", |
| | |
| | | data: query, |
| | | }); |
| | | } |
| | | // ç¼è¾å£åº¦æ£éª |
| | | // ç¼è¾å¯é æ§æ£éª |
| | | export function updateQuarterOnOrder(query) { |
| | | return request({ |
| | | url: "/finishProductSpotCheck/updateQuarterOnOrder", |
| | |
| | | // æ½æ ·ä¿¡æ¯è¯¦æ
页é¢ç¸å
³æ¥å£ |
| | | import request from '@/utils/request' |
| | | import request from "@/utils/request"; |
| | | |
| | | // æ½æ ·ä¿¡æ¯-å£åº¦æ¥è¯¢ |
| | | // æ½æ ·ä¿¡æ¯-å¯é æ§æ¥è¯¢ |
| | | export function getQuarterPage(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/getQuarterPage', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/finishProductSpotCheck/getQuarterPage", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | // æ½æ ·ä¿¡æ¯-年度æ¥è¯¢ |
| | | export function getSpotCheckYearPage(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/getSpotCheckYearPage', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/finishProductSpotCheck/getSpotCheckYearPage", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | // å é¤å£åº¦æ½æ£ |
| | | // å é¤å¯é æ§æ½æ£ |
| | | export function deleteQuarter(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/deleteQuarter', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/finishProductSpotCheck/deleteQuarter", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | // çæå£åº¦æ¥å |
| | | // çæå¯é æ§æ¥å |
| | | export function finalReportQuarter(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/finalReportQuarter', |
| | | method: 'get', |
| | | url: "/finishProductSpotCheck/finalReportQuarter", |
| | | method: "get", |
| | | params: query, |
| | | responseType: "blob" |
| | | }) |
| | | responseType: "blob", |
| | | }); |
| | | } |
| | | // çæå¹´åº¦æ¥å |
| | | export function finalReportSpotCheckYear(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/finalReportSpotCheckYear', |
| | | method: 'get', |
| | | url: "/finishProductSpotCheck/finalReportSpotCheckYear", |
| | | method: "get", |
| | | params: query, |
| | | responseType: "blob" |
| | | }) |
| | | responseType: "blob", |
| | | }); |
| | | } |
| | | // å é¤å¹´åº¦æ½æ£ |
| | | export function deleteSpotCheckYear(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/deleteSpotCheckYear', |
| | | method: 'delete', |
| | | url: "/finishProductSpotCheck/deleteSpotCheckYear", |
| | | method: "delete", |
| | | params: query, |
| | | }) |
| | | }); |
| | | } |
| | | // å¹´åº¦æ½æ£æ¥ç详æ
|
| | | export function getSpotCheckYear(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/getSpotCheckYear', |
| | | method: 'get', |
| | | url: "/finishProductSpotCheck/getSpotCheckYear", |
| | | method: "get", |
| | | params: query, |
| | | }) |
| | | }); |
| | | } |
| | | // æäº¤å¹´åº¦æ½æ · |
| | | export function addSpotCheckYear(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/addSpotCheckYear', |
| | | method: 'post', |
| | | url: "/finishProductSpotCheck/addSpotCheckYear", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | // ç¼è¾å¹´åº¦æ½æ · |
| | | export function updateSpotCheckYear(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/updateSpotCheckYear', |
| | | method: 'post', |
| | | url: "/finishProductSpotCheck/updateSpotCheckYear", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | // å£åº¦æ½æ£æ¥ç详æ
|
| | | // å¯é æ§æ½æ£æ¥ç详æ
|
| | | export function getQuarter(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/getQuarter', |
| | | method: 'get', |
| | | url: "/finishProductSpotCheck/getQuarter", |
| | | method: "get", |
| | | params: query, |
| | | }) |
| | | }); |
| | | } |
| | | // æäº¤å£åº¦æ½æ · |
| | | // æäº¤å¯é æ§æ½æ · |
| | | export function addQuarter(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/addQuarter', |
| | | method: 'post', |
| | | data : query, |
| | | }) |
| | | url: "/finishProductSpotCheck/addQuarter", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | // ç¼è¾å£åº¦æ£éª |
| | | // ç¼è¾å¯é æ§æ£éª |
| | | export function updateQuarterOnOrder(query) { |
| | | return request({ |
| | | url: '/finishProductSpotCheck/updateQuarterOnOrder', |
| | | method: 'post', |
| | | data : query, |
| | | }) |
| | | url: "/finishProductSpotCheck/updateQuarterOnOrder", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | |
| | | params: query, |
| | | }); |
| | | } |
| | | // æ¥è¯¢å£åº¦æ£éª |
| | | // æ¥è¯¢å¯é æ§æ£éª |
| | | export function getIfsByQuarter(query) { |
| | | return request({ |
| | | url: "/rawMaterialOrder/getIfsByQuarter", |
| | |
| | | data: query, |
| | | }); |
| | | } |
| | | // åè¾
æä¸åå£åº¦æ¤é |
| | | // åè¾
æä¸åå¯é æ§æ¤é |
| | | export function repealQuarterRawOrder(query) { |
| | | return request({ |
| | | url: "/rawMaterialOrder/repealQuarterRawOrder", |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="quarterSampleDia" title="å£åº¦æ½æ ·" width="90%" @close="quarterSampleDia = false"> |
| | | <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="quarterSampleDia" |
| | | title="å¯é æ§æ½æ ·" width="90%" @close="quarterSampleDia = false"> |
| | | <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 10px"> |
| | | <div style="width: 30%;display: flex;align-items: center;" > |
| | | <div style="width: 30%;display: flex;align-items: center;"> |
| | | <span style="width: 50px">ç¼å·ï¼</span> |
| | | <el-input v-model="quarterSampleForm.quarterNo" :disabled="operationType !== 'add'" size="small"></el-input> |
| | | </div> |
| | |
| | | </div> |
| | | <div> |
| | | <el-table v-loading="tableLoading" :data="quarterItems" border height="420" style="width: 100%" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> |
| | | <el-table-column label="产åç±»å" prop="productType" width="200"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.productType" size="small"/> |
| | | <el-input v-model="row.productType" size="small" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <el-table-column label="åå·" prop="productModel" width="120"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.productModel" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.productModel" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ½æ ·æ°é" min-width="340" prop="spotCheckNumber"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.spotCheckNumber" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.spotCheckNumber" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType === 'add'" label="æ°é" min-width="120" prop="number"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.number" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.number" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType !== 'add'" label="æ½æ ·æ¶é´" prop="spotCheckTime" width="160"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-date-picker v-model="row.spotCheckTime" |
| | | format="yyyy-MM-dd" |
| | | :disabled="operationType === 'view'" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | clearable |
| | | style="width:100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | <el-date-picker v-model="row.spotCheckTime" format="yyyy-MM-dd" :disabled="operationType === 'view'" |
| | | placeholder="éæ©æ¥æ" size="small" clearable style="width:100%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType !== 'add'" label="è¯æ ·ç»è®º" prop="result" width="130"> |
| | | <template v-slot="scope"> |
| | | <el-select v-model="scope.row.result" placeholder="è¯·éæ©" size="small" clearable :disabled="operationType === 'view'"> |
| | | <el-select v-model="scope.row.result" placeholder="è¯·éæ©" size="small" clearable |
| | | :disabled="operationType === 'view'"> |
| | | <el-option label="åæ ¼" value="åæ ¼"></el-option> |
| | | <el-option label="ä¸åæ ¼" value="ä¸åæ ¼"></el-option> |
| | | </el-select> |
| | |
| | | <el-table-column v-if="operationType !== 'add'" label="åæ ·äººå" prop="samplingUser" width="120"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.samplingUser" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.samplingUser" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="夿³¨" prop="itemRemark" width="200"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.itemRemark" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.itemRemark" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType !== 'view'" fixed="right" label="æä½" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="small" style="color: #f56c6c" type="text" @click="deleteScope(scope.$index)">å é¤</el-button> |
| | | <el-button size="small" style="color: #f56c6c" type="text" |
| | | @click="deleteScope(scope.$index)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div style="display: flex;align-items: center;margin: 10px 0"> |
| | | <span style="width: 70px">夿³¨ï¼</span> |
| | | <el-input v-model="quarterSampleForm.remark" :disabled="operationType === 'view'" size="small" style="width: 43%" type="textarea"></el-input> |
| | | <el-input v-model="quarterSampleForm.remark" :disabled="operationType === 'view'" size="small" |
| | | style="width: 43%" type="textarea"></el-input> |
| | | </div> |
| | | <div v-if="operationType !== 'add'"> |
| | | <el-form ref="form" :model="editForm" label-width="70px"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç¼å¶äººï¼"> |
| | | <el-select v-model="editForm.writeUser" :disabled="operationType !=='edit'" placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.writeUser" :disabled="operationType !== 'edit'" placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¼ç¾äººï¼"> |
| | | <el-select v-model="editForm.countersignUser" :disabled="operationType !=='edit'" multiple placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.countersignUser" :disabled="operationType !== 'edit'" multiple |
| | | placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å®¡æ ¸äººï¼"> |
| | | <el-select v-model="editForm.examineUser" :disabled="operationType !=='edit'" placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.examineUser" :disabled="operationType !== 'edit'" placeholder="è¯·éæ©" |
| | | size="small" style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¹å人ï¼"> |
| | | <el-select v-model="editForm.ratifyUser" :disabled="operationType !=='edit'" placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.ratifyUser" :disabled="operationType !== 'edit'" placeholder="è¯·éæ©" |
| | | size="small" style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import {addQuarter, getQuarter, updateQuarterOnOrder} from "@/api/business/finishedProductSampling"; |
| | | import {selectUserCondition} from "@/api/business/inspectionTask"; |
| | | import {mapGetters} from "vuex"; |
| | | import { addQuarter, getQuarter, updateQuarterOnOrder } from "@/api/business/finishedProductSampling"; |
| | | import { selectUserCondition } from "@/api/business/inspectionTask"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | name: "addQuarterItem", |
| | |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | tableLoading: false, |
| | | quarterSampleDia: false, // å£åº¦æ½æ ·å¼¹æ¡ |
| | | quarterSampleDia: false, // å¯é æ§æ½æ ·å¼¹æ¡ |
| | | quarterSampleForm: { |
| | | quarterNo: '', // ç¼å· |
| | | }, |
| | |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | openDia (quarterTemItems, type) { |
| | | openDia(quarterTemItems, type) { |
| | | this.quarterSampleDia = true |
| | | this.operationType = type |
| | | if (type === 'add') { |
| | |
| | | } else { |
| | | this.tableLoading = true |
| | | this.quarterRow = quarterTemItems |
| | | getQuarter({quarterId: quarterTemItems.quarterId}).then(res => { |
| | | getQuarter({ quarterId: quarterTemItems.quarterId }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.quarterItems = res.data.quarterItems |
| | |
| | | } |
| | | }, |
| | | // æå¨æ·»å |
| | | addQuarter () { |
| | | addQuarter() { |
| | | this.quarterItems.push({ |
| | | productType: '', |
| | | dutyUser: this.nickName, |
| | |
| | | itemRemark: '', |
| | | }) |
| | | }, |
| | | // æäº¤å£åº¦æ½æ · |
| | | handleSample () { |
| | | // æäº¤å¯é æ§æ½æ · |
| | | handleSample() { |
| | | this.$confirm('æ¯å¦æäº¤è¯¥æ°æ®', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | |
| | | } |
| | | }) |
| | | } else { |
| | | const params = {...this.editForm} |
| | | const params = { ...this.editForm } |
| | | if (params.countersignUser.length > 0) { |
| | | params.countersignUser = params.countersignUser.join(',') |
| | | } else { |
| | |
| | | |
| | | }, |
| | | // æ¸
ç©ºæ½æ ·è®¡å |
| | | clearTable () { |
| | | clearTable() { |
| | | this.quarterItems = [] |
| | | this.$parent.quarterTemItems = [] |
| | | }, |
| | | // æå¨å é¤ |
| | | deleteScope (index) { |
| | | deleteScope(index) { |
| | | this.quarterItems.splice(index, 1) |
| | | }, |
| | | // å
³éå£åº¦æ½æ ·å¼¹æ¡ |
| | | closeQuarterSampleDia () { |
| | | // å
³éå¯é æ§æ½æ ·å¼¹æ¡ |
| | | closeQuarterSampleDia() { |
| | | this.quarterSampleDia = false |
| | | if (this.operationType === 'add') { |
| | | this.$parent.handleStockList() |
| | |
| | | this.$parent.refreshTable('page') |
| | | } |
| | | }, |
| | | getUserList(){ |
| | | getUserList() { |
| | | selectUserCondition().then((res) => { |
| | | this.userList = res.data; |
| | | }) |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
| | | <style scoped></style> |
| | |
| | | <div class="card"> |
| | | <div class="title"> |
| | | <el-button size="small" type="primary" @click="addTemQuarter">æ°å¢</el-button> |
| | | <el-button size="small" type="primary" @click="quarterSample">å£åº¦æ½æ ·</el-button> |
| | | <el-button size="small" type="primary" @click="quarterSample">å¯é æ§æ½æ ·</el-button> |
| | | <el-button size="small" type="primary" @click="handleStockList">å·æ°</el-button> |
| | | </div> |
| | | <el-table |
| | | ref="finishedproducttransferTable" |
| | | v-loading="tableLoading" |
| | | :data="stockList" |
| | | :header-cell-style="lineSideWarehouseTableHeaderCellStyle" |
| | | :row-class-name="lineSideWarehouseTableRowClassName" |
| | | class="finishedproducttransfer-table" |
| | | height="calc(100vh - 240px)" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table ref="finishedproducttransferTable" v-loading="tableLoading" :data="stockList" |
| | | :header-cell-style="lineSideWarehouseTableHeaderCellStyle" :row-class-name="lineSideWarehouseTableRowClassName" |
| | | class="finishedproducttransfer-table" height="calc(100vh - 240px)" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="45"></el-table-column> |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | align="center" |
| | | label="客æ·è®¢åç¼å·" |
| | | prop="customerOrderNo" |
| | | width="140" |
| | | > |
| | | <el-table-column :show-overflow-tooltip="true" align="center" label="客æ·è®¢åç¼å·" prop="customerOrderNo" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">客æ·è®¢åç¼å·</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.customerOrderNo" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.customerOrderNo" clearable size="mini" type="text" |
| | | @clear="handleStockList" @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.customerOrderNo }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="æåé¶ä»¶å·" |
| | | prop="partNo" |
| | | width="140" |
| | | > |
| | | <el-table-column align="center" label="æåé¶ä»¶å·" prop="partNo" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">æåé¶ä»¶å·</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.partNo" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.partNo" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.partNo }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="é¶ä»¶åç§°" |
| | | prop="partName" |
| | | width="140" |
| | | > |
| | | <el-table-column align="center" label="é¶ä»¶åç§°" prop="partName" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">é¶ä»¶åç§°</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.partName" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.partName" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.partName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | align="center" |
| | | label="ä»åº" |
| | | prop="warehouseName" |
| | | width="140" |
| | | > |
| | | <el-table-column :show-overflow-tooltip="true" align="center" label="ä»åº" prop="warehouseName" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">ä»åº</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.warehouseName" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.warehouseName" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.warehouseName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | align="center" |
| | | label="åºä½å·" |
| | | prop="locationNo" |
| | | width="140" |
| | | > |
| | | <el-table-column :show-overflow-tooltip="true" align="center" label="åºä½å·" prop="locationNo" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">åºä½å·</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.locationNo" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.locationNo" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.locationNo }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | :show-overflow-tooltip="true" |
| | | align="center" |
| | | label="åºä½åç§°" |
| | | prop="locationName" |
| | | width="140" |
| | | > |
| | | <el-table-column :show-overflow-tooltip="true" align="center" label="åºä½åç§°" prop="locationName" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">åºä½åç§°</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.locationName" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.locationName" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.locationName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="æ¹æ¬¡å·" |
| | | prop="partBatchNo" |
| | | width="140" |
| | | > |
| | | <el-table-column align="center" label="æ¹æ¬¡å·" prop="partBatchNo" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">æ¹æ¬¡å·</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.partBatchNo" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.partBatchNo" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.partBatchNo }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="å
¥åºæ¥æº" |
| | | prop="inSource" |
| | | width="140" |
| | | > |
| | | <el-table-column align="center" label="å
¥åºæ¥æº" prop="inSource" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">å
¥åºæ¥æº</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.inSource" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.inSource" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.inSource }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="夿¤é¢è²" |
| | | prop="outerColor" |
| | | width="140" |
| | | > |
| | | <el-table-column align="center" label="夿¤é¢è²" prop="outerColor" width="140"> |
| | | <template slot="header" slot-scope="scope"> |
| | | <div style="line-height: 14px;margin-bottom: 6px">夿¤é¢è²</div> |
| | | <div class="th" @click.stop> |
| | | <el-input |
| | | v-model="queryParamOne.outerColor" |
| | | clearable |
| | | size="mini" |
| | | type="text" |
| | | @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList" |
| | | ></el-input> |
| | | <el-input v-model="queryParamOne.outerColor" clearable size="mini" type="text" @clear="handleStockList" |
| | | @keyup.enter.native="handleStockList"></el-input> |
| | | </div> |
| | | </template> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.outerColor }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="åºåæ°é" |
| | | prop="stockQuantity" |
| | | width="140" |
| | | > |
| | | <el-table-column align="center" label="åºåæ°é" prop="stockQuantity" width="140"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | label="å¯ç¨åºåæ°é" |
| | | prop="availableStockQuantity" |
| | | width="140" |
| | | > |
| | | <el-table-column align="center" label="å¯ç¨åºåæ°é" prop="availableStockQuantity" width="140"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.availableStockQuantity }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div class="pagin-page" style="margin-top: 0;margin-bottom: 0;"> |
| | | <el-pagination |
| | | background |
| | | :current-page="queryReport.current" |
| | | :page-size="queryReport.size" |
| | | :page-sizes="[10, 15, 20, 50, 100]" |
| | | :total="queryReport.total" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | style="text-align:right;padding: 20px 16px;" |
| | | @size-change="handleSizeChangeReport" |
| | | @current-change="handleCurrentChangeReport" |
| | | > |
| | | <el-pagination background :current-page="queryReport.current" :page-size="queryReport.size" |
| | | :page-sizes="[10, 15, 20, 50, 100]" :total="queryReport.total" |
| | | layout="total, sizes, prev, pager, next, jumper" style="text-align:right;padding: 20px 16px;" |
| | | @size-change="handleSizeChangeReport" @current-change="handleCurrentChangeReport"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> |
| | |
| | | <script> |
| | | |
| | | import AddQuarterItem from "./components/addQuarterItem.vue"; |
| | | import {getIfsStock} from "@/api/business/finishedProductSampling"; |
| | | import {mapGetters} from "vuex"; |
| | | import { getIfsStock } from "@/api/business/finishedProductSampling"; |
| | | import { mapGetters } from "vuex"; |
| | | |
| | | export default { |
| | | name: 'FinishedProductSampling', |
| | |
| | | operationType: '' |
| | | } |
| | | }, |
| | | components: {AddQuarterItem}, |
| | | components: { AddQuarterItem }, |
| | | mounted() { |
| | | this.getIfsStock() |
| | | }, |
| | |
| | | ...mapGetters(["nickName"]), |
| | | }, |
| | | methods: { |
| | | // å£åº¦æ½æ · |
| | | quarterSample () { |
| | | // å¯é æ§æ½æ · |
| | | quarterSample() { |
| | | this.$refs.addQuarterItem.openDia(this.quarterTemItems, 'add') |
| | | }, |
| | | addTemQuarter () { |
| | | addTemQuarter() { |
| | | if (this.multipleSelection.length > 0) { |
| | | const multipleSelection = JSON.parse(JSON.stringify(this.multipleSelection)) |
| | | if (multipleSelection.length > 0) { |
| | |
| | | } |
| | | return newReqParam |
| | | }, |
| | | lineSideWarehouseTableHeaderCellStyle({row, column, rowIndex, columnIndex}) { |
| | | lineSideWarehouseTableHeaderCellStyle({ row, column, rowIndex, columnIndex }) { |
| | | let headerStyle = 'background:#FAFAFA;color:#666;' |
| | | if (columnIndex === 0) { |
| | | headerStyle += 'border-radius: 6px 0px 0px 0px;' |
| | |
| | | >>>.el-table__header { |
| | | height: 70px; |
| | | } |
| | | |
| | | .card { |
| | | height: calc(100% - 40px); |
| | | background: #ffffff; |
| | | padding: 10px; |
| | | } |
| | | |
| | | .title { |
| | | text-align: right; |
| | | margin-bottom: 10px; |
| | |
| | | { label: 'å§æè¯éª', value: 'Customer-ordered test', type: 'success' }, |
| | | { label: 'æ½æ£', value: 'æ½æ£', type: 'danger' }, |
| | | { label: 'è¿åæ£éª', value: 'è¿åæ£éª', type: 'info' }, |
| | | { label: 'å£åº¦æ£éª', value: 'Quarterly inspection', type: '' }, |
| | | { label: 'å¯é æ§æ£éª', value: 'Quarterly inspection', type: '' }, |
| | | ], |
| | | urgencyLevel: [], |
| | | inspectionTaskState: [], |
| | |
| | | }, |
| | | { |
| | | value: "Quarterly inspection", |
| | | label: "å£åº¦æ£éª", |
| | | label: "å¯é æ§æ£éª", |
| | | type: "warning", |
| | | effect: "plain", |
| | | }, |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item class="addObj-form-item" label="车é´åç§°:"> |
| | | <el-input v-model="addObj.workShopName" class="addObj-info" clearable disabled size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item class="addObj-form-item" label="夿³¨:"> |
| | | <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2 }" :disabled="active > 1" |
| | | :placeholder="active > 1 ? '' : '请è¾å
¥'" clearable size="small" type="textarea"></el-input> |
| | |
| | | éä»¶æ¥ç |
| | | </el-button> |
| | | <el-dialog :visible.sync="fileDialogVisible" title="éä»¶æ¥ç" width="80%"> |
| | | <fileList :currentNo="partNo" v-if="fileDialogVisible" /> |
| | | <fileList :currentNo="addObj.workShopId" v-if="fileDialogVisible" /> |
| | | </el-dialog> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | selectStandardProductList, |
| | | selectStandardTreeListByPartNo |
| | | } from "@/api/business/rawMaterialOrder"; |
| | | import fileList from "./commom/fileList.vue" |
| | | import fileList from "../../structural/capabilityAndLaboratory/workshop/components/fileList.vue" |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | |
| | | export default { |
| | |
| | | typeSource: 1, |
| | | ifsInventoryId: '', |
| | | sampleStatus: 'In good condition', |
| | | workShopName: '',//车é´åç§° |
| | | workShopId: '',//车é´ID |
| | | }, |
| | | addObjRules: { // è¡¨åæ ¡éªè§å |
| | | testQuantity: [ |
| | |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: 'å£åº¦æ£éª', |
| | | label: 'å¯é æ§æ£éª', |
| | | value: 1 |
| | | }, |
| | | ], |
| | |
| | | methods: { |
| | | handleFileDialog() { |
| | | this.fileDialogVisible = true |
| | | this.currentNo = addObj.partNo || customsInspection.partNo; |
| | | }, |
| | | save1() { |
| | | if (this.bsm1DiaList.length > 0) { |
| | |
| | | this.$set(this.addObj, 'buyUnitMeas', this.customsInspection.buyUnitMeas) |
| | | this.$set(this.addObj, 'updateBatchNo', this.customsInspection.updateBatchNo) |
| | | this.$set(this.addObj, 'partDetail', this.customsInspection.partDesc) |
| | | this.$set(this.addObj, 'workShopName', res.data.workShopName) |
| | | this.$set(this.addObj, 'workShopId', res.data.workShopId) |
| | | if (this.orderType == 1) { |
| | | this.$set(this.addObj, 'orderType', 'Quarterly inspection') |
| | | } |
| | |
| | | <li :class="{ active: tabIndex === 0 }" @click="handleTab(0)">å¾
ä¸å</li> |
| | | <li :class="{ active: tabIndex === 1 }" @click="handleTab(1)">æ£éªä¸</li> |
| | | <li :class="{ active: tabIndex === 2 }" @click="handleTab(2)">å·²æ£éª</li> |
| | | <li :class="{ active: tabIndex === 4 }" @click="handleTab(4)">å£åº¦æ£éª</li> |
| | | <li :class="{ active: tabIndex === 4 }" @click="handleTab(4)">å¯é æ§æ£éª</li> |
| | | <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:Ifs:ByAll'])" @click="handleTab(3)">å
¨é¨</li> |
| | | </ul> |
| | | </div> |
| | |
| | | :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination3" |
| | | :height="'calc(100vh - 290px)'" key="tableData3" :page="page3" :tableLoading="tableLoading3"></lims-table> |
| | | </div> |
| | | <!--å£åº¦æ£éª--> |
| | | <!--å¯é æ§æ£éª--> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" :isSelection="true" |
| | | :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination4" |
| | |
| | | <!-- æ¤éä¸å --> |
| | | <el-dialog :visible.sync="quashDialogVisible" title="ä¸åæ¤é" width="30%"> |
| | | <el-button size="small" type="primary" @click="cancelQuashOrder('enterOrderId')">æ¤éè¿åæ£éªä¸å</el-button> |
| | | <el-button size="small" type="primary" @click="cancelQuashOrder('quarterOrderId')">æ¤éå£åº¦æ£éªä¸å</el-button> |
| | | <el-button size="small" type="primary" @click="cancelQuashOrder('quarterOrderId')">æ¤éå¯é æ§æ£éªä¸å</el-button> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="quashDialogVisible = false">å æ¶</el-button> |
| | |
| | | type="primary" @click="viewInsInfo0">æ¥ç</el-link> |
| | | </div> |
| | | <div> |
| | | <span style="font-size: 16px;">å£åº¦æ£éªåå§æ°æ®</span> |
| | | <span style="font-size: 16px;">å¯é æ§æ£éªåå§æ°æ®</span> |
| | | <el-link :disabled="!insInfo.quarterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px" |
| | | type="primary" @click="viewInsInfo1">æ¥ç</el-link> |
| | | </div> |
| | |
| | | label: 'æä½', |
| | | operation: [ |
| | | { |
| | | name: 'å£åº¦æ£éª', |
| | | name: 'å¯é æ§æ£éª', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.playOrderSec(row); |
| | |
| | | }, |
| | | }, |
| | | { |
| | | name: 'å£åº¦æ¤é', |
| | | name: 'å¯é æ§æ¤é', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.repealQuarter(row); |
| | |
| | | label: 'æä½', |
| | | operation: [ |
| | | { |
| | | name: 'å£åº¦æ£éª', |
| | | name: 'å¯é æ§æ£éª', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.playOrderSec(row); |
| | |
| | | value: 2 |
| | | }, |
| | | { |
| | | label: 'å£åº¦æ£éª', |
| | | label: 'å¯é æ§æ£éª', |
| | | value: 4 |
| | | }, |
| | | { |
| | |
| | | tabIndex: 0, |
| | | multipleSelection: [], |
| | | active: 0, //1ï¼ä¸åï¼2ï¼æ¥ç |
| | | orderType: 0, //0ï¼åè¾
æä¸åï¼1ï¼å£åº¦æ£éªä¸å |
| | | orderType: 0, //0ï¼åè¾
æä¸åï¼1ï¼å¯é æ§æ£éªä¸å |
| | | currentId: null, |
| | | btnLoading: false, |
| | | quashDialogVisible: false, // æ¤éä¸åæéå¼¹æ¡ |
| | |
| | | // å·²æ£éªæ¥è¯¢ |
| | | this.getIfsByOverList() |
| | | } else if (this.tabIndex === 4) { |
| | | // æ¥è¯¢å£åº¦æ£éª |
| | | // æ¥è¯¢å¯é æ§æ£éª |
| | | this.getIfsByQuarterList() |
| | | } else { |
| | | // å
¨é¨æ¥è¯¢ |
| | |
| | | this.tableLoading2 = false |
| | | }) |
| | | }, |
| | | // æ¥è¯¢å£åº¦æ£éª |
| | | // æ¥è¯¢å¯é æ§æ£éª |
| | | getIfsByQuarterList() { |
| | | this.tableLoading4 = true |
| | | if (null != this.entity.date) { |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | // å£åº¦æ¤é |
| | | // å¯é æ§æ¤é |
| | | repealQuarter(row) { |
| | | this.$confirm('æ¯å¦æ¤éå£åº¦ä¸å?', "è¦å", { |
| | | this.$confirm('æ¯å¦æ¤éå¯é æ§ä¸å?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | |
| | | playOrder(row) { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } }); |
| | | }, |
| | | // å£åº¦æ£éªä¸å |
| | | // å¯é æ§æ£éªä¸å |
| | | playOrderSec(row) { |
| | | this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } }); |
| | | }, |
| | |
| | | }) |
| | | }).catch(() => { }) |
| | | } else if (!row.enterOrderId && row.quarterOrderId) { |
| | | this.$confirm('æ¯å¦æ¤éå£åº¦ä¸å?', "è¦å", { |
| | | this.$confirm('æ¯å¦æ¤éå¯é æ§ä¸å?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning" |
| | |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: 'å£åº¦æ£éª', |
| | | label: 'å¯é æ§æ£éª', |
| | | value: 1 |
| | | }, |
| | | ], |
| | |
| | | <span style="font-size: 16px;">è¿åæ£éªæ¥åä¸è½½</span> |
| | | <i class="el-icon-paperclip" style="color:#409EFF;margin-left: 6px"></i> |
| | | <el-link :underline="false" style="vertical-align: bottom;font-size: 16px;" |
| | | :disabled="!downLoadInfo.enterUrls && !downLoadInfo.enterUrl" |
| | | type="primary" @click="downLoad0">æ¥ç</el-link> |
| | | :disabled="!downLoadInfo.enterUrls && !downLoadInfo.enterUrl" type="primary" @click="downLoad0">æ¥ç</el-link> |
| | | </div> |
| | | <div> |
| | | <span style="font-size: 16px;">å£åº¦æ£éªæ¥åä¸è½½</span> |
| | | <span style="font-size: 16px;">å¯é æ§æ£éªæ¥åä¸è½½</span> |
| | | <i class="el-icon-paperclip" style="color:#409EFF;margin-left: 6px"></i> |
| | | <el-link :underline="false" style="vertical-align: bottom;font-size: 16px;" |
| | | :disabled="!downLoadInfo.quarterUrls && !downLoadInfo.quarterUrl" |
| | | type="primary" @click="downLoad1">æ¥ç</el-link> |
| | | :disabled="!downLoadInfo.quarterUrls && !downLoadInfo.quarterUrl" type="primary" |
| | | @click="downLoad1">æ¥ç</el-link> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | }, |
| | | downLoadInfo: { |
| | | type: Object, |
| | | default: () => {} |
| | | default: () => { } |
| | | }, |
| | | }, |
| | | data() { |
| | |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // è¿åæ£éªæ¥åä¸è½½ |
| | | downLoad0 () { |
| | | downLoad0() { |
| | | let url = this.downLoadInfo.enterUrlS ? this.downLoadInfo.enterUrlS : this.downLoadInfo.enterUrl |
| | | 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'; |
| | |
| | | link.click(); |
| | | } |
| | | }, |
| | | // å£åº¦æ£éªæ¥åä¸è½½ |
| | | downLoad1 () { |
| | | // å¯é æ§æ£éªæ¥åä¸è½½ |
| | | downLoad1() { |
| | | let url = this.downLoadInfo.quarterUrlS ? this.downLoadInfo.quarterUrlS : this.downLoadInfo.quarterUrl |
| | | 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'; |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | >>> .el-dialog { |
| | | >>>.el-dialog { |
| | | height: 160px; |
| | | } |
| | | </style> |
| | |
| | | value: 0 |
| | | }, |
| | | { |
| | | label: 'å£åº¦æ£éª', |
| | | label: 'å¯é æ§æ£éª', |
| | | value: 1 |
| | | }, |
| | | ], |
| | |
| | | temId: '', |
| | | sonLaboratoryList: [], |
| | | selectiveEcho: [], // æ£éªä¸åçæ¶åå¾éæ£éªé¡¹ç®,å¦æä½¿ç¨çéæäº¤æ¾ç¤ºæ£éªé¡¹ç®ä¸ºç©º åæ¾å表 |
| | | quarterItemOptions: [], // æ¥è¯¢å£åº¦ä¿¡æ¯ |
| | | quarterItemOptions: [], // æ¥è¯¢å¯é æ§ä¿¡æ¯ |
| | | specialStandardMethod: '', |
| | | isSpecial: false, |
| | | } |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="quarterSampleDia" title="å£åº¦æ½æ ·" width="90%" @close="quarterSampleDia = false"> |
| | | <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="quarterSampleDia" |
| | | title="å¯é æ§æ½æ ·" width="90%" @close="quarterSampleDia = false"> |
| | | <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 10px"> |
| | | <div style="width: 30%;display: flex;align-items: center;" > |
| | | <div style="width: 30%;display: flex;align-items: center;"> |
| | | <span style="width: 50px">ç¼å·ï¼</span> |
| | | <el-input v-model="quarterSampleForm.quarterNo" :disabled="operationType !== 'add'" size="small"></el-input> |
| | | </div> |
| | |
| | | </div> |
| | | <div> |
| | | <el-table v-loading="tableLoading" :data="quarterItems" height="400" style="width: 100%" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border> |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border> |
| | | <el-table-column label="产åç±»å" prop="productType" width="200"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.productType" size="small"/> |
| | | <el-input v-model="row.productType" size="small" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <el-table-column label="åå·" prop="productModel" width="120"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.productModel" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.productModel" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æ½æ ·æ°é" min-width="340" prop="spotCheckNumber"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.spotCheckNumber" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.spotCheckNumber" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType === 'add'" label="æ°é" min-width="120" prop="number"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.number" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.number" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType !== 'add'" label="æ½æ ·æ¶é´" prop="spotCheckTime" width="160"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-date-picker v-model="row.spotCheckTime" |
| | | format="yyyy-MM-dd" |
| | | :disabled="operationType === 'view'" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | clearable |
| | | style="width:100%" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | <el-date-picker v-model="row.spotCheckTime" format="yyyy-MM-dd" :disabled="operationType === 'view'" |
| | | placeholder="éæ©æ¥æ" size="small" clearable style="width:100%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType !== 'add'" label="è¯æ ·ç»è®º" prop="result" width="130"> |
| | | <template v-slot="scope"> |
| | | <el-select v-model="scope.row.result" placeholder="è¯·éæ©" size="small" clearable :disabled="operationType === 'view'"> |
| | | <el-select v-model="scope.row.result" placeholder="è¯·éæ©" size="small" clearable |
| | | :disabled="operationType === 'view'"> |
| | | <el-option label="åæ ¼" value="åæ ¼"></el-option> |
| | | <el-option label="ä¸åæ ¼" value="ä¸åæ ¼"></el-option> |
| | | </el-select> |
| | |
| | | <el-table-column v-if="operationType !== 'add'" label="åæ ·äººå" prop="samplingUser" width="120"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.samplingUser" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.samplingUser" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="夿³¨" prop="itemRemark" width="200"> |
| | | <template slot-scope="{row}"> |
| | | <template> |
| | | <el-input v-model="row.itemRemark" size="small" :disabled="operationType === 'view'"/> |
| | | <el-input v-model="row.itemRemark" size="small" :disabled="operationType === 'view'" /> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="operationType !== 'view'" fixed="right" label="æä½" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="small" style="color: #f56c6c" type="text" @click="deleteScope(scope.$index)">å é¤</el-button> |
| | | <el-button size="small" style="color: #f56c6c" type="text" |
| | | @click="deleteScope(scope.$index)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div style="display: flex;align-items: center;margin: 10px 0"> |
| | | <span style="width: 70px">夿³¨ï¼</span> |
| | | <el-input v-model="quarterSampleForm.remark" :disabled="operationType === 'view'" size="small" style="width: 43%" type="textarea"></el-input> |
| | | <el-input v-model="quarterSampleForm.remark" :disabled="operationType === 'view'" size="small" |
| | | style="width: 43%" type="textarea"></el-input> |
| | | </div> |
| | | <div v-if="operationType !== 'add'"> |
| | | <el-form ref="form" :model="editForm" label-width="70px"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç¼å¶äººï¼"> |
| | | <el-select v-model="editForm.writeUser" :disabled="operationType !=='edit'" placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.writeUser" :disabled="operationType !== 'edit'" placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¼ç¾äººï¼"> |
| | | <el-select v-model="editForm.countersignUser" :disabled="operationType !=='edit'" multiple placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.countersignUser" :disabled="operationType !== 'edit'" multiple |
| | | placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å®¡æ ¸äººï¼"> |
| | | <el-select v-model="editForm.examineUser" :disabled="operationType !=='edit'" placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.examineUser" :disabled="operationType !== 'edit'" placeholder="è¯·éæ©" |
| | | size="small" style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¹å人ï¼"> |
| | | <el-select v-model="editForm.ratifyUser" :disabled="operationType !=='edit'" placeholder="è¯·éæ©" size="small" style="width: 100%"> |
| | | <el-select v-model="editForm.ratifyUser" :disabled="operationType !== 'edit'" placeholder="è¯·éæ©" |
| | | size="small" style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="quarterSampleDia = false">å æ¶</el-button> |
| | | <el-button v-if="operationType === 'add'" @click="quarterSampleDia = false">ä¿ å</el-button> |
| | | <el-button v-if="operationType !== 'add' && operationType !== 'view'" type="primary" @click="handleSample">ç¡® å®</el-button> |
| | | <el-button v-if="operationType !== 'add' && operationType !== 'view'" type="primary" @click="handleSample">ç¡® |
| | | å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import {addQuarter, getQuarter, updateQuarterOnOrder} from "@/api/business/productSamplingInfo"; |
| | | import {selectUserCondition} from "@/api/performance/class"; |
| | | import { addQuarter, getQuarter, updateQuarterOnOrder } from "@/api/business/productSamplingInfo"; |
| | | import { selectUserCondition } from "@/api/performance/class"; |
| | | |
| | | export default { |
| | | name: "addQuarterItem", |
| | |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | tableLoading: false, |
| | | quarterSampleDia: false, // å£åº¦æ½æ ·å¼¹æ¡ |
| | | quarterSampleDia: false, // å¯é æ§æ½æ ·å¼¹æ¡ |
| | | quarterSampleForm: { |
| | | quarterNo: '', // ç¼å· |
| | | }, |
| | |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | openDia (quarterTemItems, type) { |
| | | openDia(quarterTemItems, type) { |
| | | this.quarterSampleDia = true |
| | | this.operationType = type |
| | | if (type === 'add') { |
| | |
| | | } else { |
| | | this.tableLoading = true |
| | | this.quarterRow = quarterTemItems |
| | | getQuarter({quarterId: quarterTemItems.quarterId}).then(res => { |
| | | getQuarter({ quarterId: quarterTemItems.quarterId }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.quarterItems = res.data.quarterItems |
| | |
| | | } |
| | | }, |
| | | // æå¨æ·»å |
| | | addQuarter () { |
| | | addQuarter() { |
| | | this.quarterItems.push({ |
| | | productType: '', |
| | | dutyUser: JSON.parse(localStorage.getItem("user")).name, |
| | |
| | | itemRemark: '', |
| | | }) |
| | | }, |
| | | // æäº¤å£åº¦æ½æ · |
| | | handleSample () { |
| | | // æäº¤å¯é æ§æ½æ · |
| | | handleSample() { |
| | | this.$confirm('æ¯å¦æäº¤è¯¥æ°æ®', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | |
| | | } |
| | | }) |
| | | } else { |
| | | const params = {...this.editForm} |
| | | const params = { ...this.editForm } |
| | | if (params.countersignUser.length > 0) { |
| | | params.countersignUser = params.countersignUser.join(',') |
| | | } else { |
| | |
| | | |
| | | }, |
| | | // æ¸
ç©ºæ½æ ·è®¡å |
| | | clearTable () { |
| | | clearTable() { |
| | | this.quarterItems = [] |
| | | this.$parent.quarterTemItems = [] |
| | | }, |
| | | // æå¨å é¤ |
| | | deleteScope (index) { |
| | | deleteScope(index) { |
| | | this.quarterItems.splice(index, 1) |
| | | }, |
| | | // å
³éå£åº¦æ½æ ·å¼¹æ¡ |
| | | closeQuarterSampleDia () { |
| | | // å
³éå¯é æ§æ½æ ·å¼¹æ¡ |
| | | closeQuarterSampleDia() { |
| | | this.quarterSampleDia = false |
| | | if (this.operationType === 'add') { |
| | | this.$parent.handleStockList() |
| | |
| | | this.$parent.refreshTable() |
| | | } |
| | | }, |
| | | getUserList(){ |
| | | getUserList() { |
| | | selectUserCondition().then((res) => { |
| | | this.userList = res.data; |
| | | }) |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
| | | <style scoped></style> |
| | |
| | | <div> |
| | | <div class="table"> |
| | | <ul class="tab"> |
| | | <li v-for="(m, i) in tabList" :key="i" :class="{ active: i === tabIndex }" @click="handleTab(m, i)">{{ m.label }}</li> |
| | | <li v-for="(m, i) in tabList" :key="i" :class="{ active: i === tabIndex }" @click="handleTab(m, i)">{{ m.label |
| | | }}</li> |
| | | </ul> |
| | | <!--å£åº¦--> |
| | | <!--å¯é æ§--> |
| | | <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination" |
| | | :height="'calc(100vh - 290px)'" :page="page" :tableLoading="tableLoading"></lims-table> |
| | | <!--年度--> |
| | |
| | | <div style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 10px"> |
| | | <div style="width: 30%;display: flex;align-items: center;"> |
| | | <el-input v-if="operationType !== 'view'" v-model="currentYear" size="small" /> |
| | | <span v-if="operationType === 'view'" |
| | | style="width: 160px;font-size: 18px;font-weight: 600">{{ currentYear }}</span> |
| | | <span v-if="operationType === 'view'" style="width: 160px;font-size: 18px;font-weight: 600">{{ currentYear |
| | | }}</span> |
| | | </div> |
| | | <div v-if="operationType !== 'view'"> |
| | | <el-button size="small" type="primary" @click="addQuarter">æ·»å </el-button> |
| | |
| | | </div> |
| | | <div> |
| | | <el-table :data="yearItems" border height="450" style="width: 100%" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"> |
| | | <el-table-column label="ç±»å«" prop="yearType" width="240"> |
| | | <template slot-scope="{row}"> |
| | | <template v-if="operationType !== 'view'"> |
| | |
| | | tabIndex: 0, |
| | | tabList: [ |
| | | { |
| | | label: 'å£åº¦', |
| | | label: 'å¯é æ§', |
| | | value: 0 |
| | | }, |
| | | { |
| | |
| | | this.page1.size = page.limit |
| | | this.refreshTable() |
| | | }, |
| | | // ç¼è¾å£åº¦æ½æ · |
| | | // ç¼è¾å¯é æ§æ½æ · |
| | | editForm(row) { |
| | | this.$refs.addQuarterItem.openDia(row, 'edit') |
| | | }, |
| | | // æ¥çå£åº¦æ½æ · |
| | | // æ¥çå¯é æ§æ½æ · |
| | | viewQuarterInfo(row) { |
| | | this.$refs.addQuarterItem.openDia(row, 'view') |
| | | }, |
| | | // å é¤å£åº¦æ½æ · |
| | | // å é¤å¯é æ§æ½æ · |
| | | deleteQuarterInfo(row) { |
| | | this.$confirm('æ¯å¦å é¤å½åæ°æ®?', "è¦å", { |
| | | confirmButtonText: "ç¡®å®", |
| | |
| | | finalReportQuarter({ quarterId: row.quarterId, random: randomNum }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | this.$download.saveAs(blob, 'å£åº¦æ½æ ·ä¿¡æ¯å¯¼åº.docx') |
| | | this.$download.saveAs(blob, 'å¯é æ§æ½æ ·ä¿¡æ¯å¯¼åº.docx') |
| | | }) |
| | | }, |
| | | // 年度ä¸è½½ |
| | |
| | | <el-button size="small" style="height: 38px" type="primary">éä»¶ä¸ä¼ </el-button> |
| | | </el-upload> |
| | | </div> |
| | | <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" |
| | | key="tableDataFile" :tableLoading="tableLoadingFile"></lims-table> |
| | | <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" key="tableDataFile" |
| | | :tableLoading="tableLoadingFile"></lims-table> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | |
| | | import { mapGetters } from "vuex"; |
| | | import { selectUserCondition } from "@/api/business/inspectionTask"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import {delFile, downFile, getFileList} from "@/api/business/rawMaterialOrder"; |
| | | import { delFile, downFile, getFileList } from "@/api/business/rawMaterialOrder"; |
| | | export default { |
| | | name: 'ReportPreparation', |
| | | components: { limsTable, onlyoffice }, |
| | |
| | | { label: 'å§æè¯éª', value: 'Customer-ordered test' }, |
| | | { label: 'æ½æ£', value: 'æ½æ£' }, |
| | | { label: 'è¿åæ£éª', value: 'è¿åæ£éª' }, |
| | | { label: 'å£åº¦æ£éª', value: 'Quarterly inspection' }, |
| | | { label: 'å¯é æ§æ£éª', value: 'Quarterly inspection' }, |
| | | ], |
| | | showInfoDialog: false, // 产ä¸é¾ä¿¡æ¯æ¥ç |
| | | isReport: 1, |
| | |
| | | <el-col :span="20"> |
| | | <el-form ref="entity" size="small" :inline="true"> |
| | | <el-form-item style="width: 20%;"> |
| | | <el-date-picker |
| | | v-model="datePicker" |
| | | end-placeholder="ç»ææ¥æ" |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | range-separator="è³" |
| | | size="small" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | type="daterange" |
| | | style="width: 100%;" |
| | | value-format="yyyy-MM-dd" |
| | | @change="changeDatePicker"> |
| | | <el-date-picker v-model="datePicker" end-placeholder="ç»ææ¥æ" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" |
| | | range-separator="è³" size="small" start-placeholder="å¼å§æ¥æ" type="daterange" style="width: 100%;" |
| | | value-format="yyyy-MM-dd" @change="changeDatePicker"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="æ ·ååç§°" prop="sampleName"> |
| | |
| | | <el-input v-model="modelName" clearable placeholder="请è¾å
¥åå·" size="small" @change="changeDate"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¾åºååç§°" prop="supplierName"> |
| | | <el-input v-model="supplierName" clearable placeholder="请è¾å
¥ä¾åºååç§°" size="small" @change="changeDate"></el-input> |
| | | <el-input v-model="supplierName" clearable placeholder="请è¾å
¥ä¾åºååç§°" size="small" |
| | | @change="changeDate"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | |
| | | <el-col :span="8"> |
| | | <div class="pie-card"> |
| | | <div class="title">åææåæ ¼ç</div> |
| | | <span class="data">{{passRate}}</span> |
| | | <Echarts ref="chart" |
| | | :legend="pieLegend" |
| | | :series="materialPieSeries" |
| | | :tooltip="pieTooltip" |
| | | style="height: 36vh;"></Echarts> |
| | | <span class="data">{{ passRate }}</span> |
| | | <Echarts ref="chart" :legend="pieLegend" :series="materialPieSeries" :tooltip="pieTooltip" |
| | | style="height: 36vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="pie-card"> |
| | | <div class="title"><span style="color: #F56C6C">æ¬æ</span>æ£éªç±»åæ°é</div> |
| | | <Echarts ref="chart" |
| | | :chartStyle="chartStyle2" |
| | | :legend="pieLegend" |
| | | :series="materialPieSeries1" |
| | | :tooltip="pieTooltip" |
| | | style="height: 36vh;"></Echarts> |
| | | <Echarts ref="chart" :chartStyle="chartStyle2" :legend="pieLegend" :series="materialPieSeries1" |
| | | :tooltip="pieTooltip" style="height: 36vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="pie-card"> |
| | | <div class="title">åææ<span style="color: #F56C6C">æ¬æ</span>ä¸<span style="color: #F56C6C">䏿</span>åæ ¼ç对æ¯</div> |
| | | <Echarts ref="chart" |
| | | :barColors="barColors2" |
| | | :chartStyle="chartStyle" |
| | | :grid="grid" |
| | | :legend="barLegend" |
| | | :series="barSeries" |
| | | :tooltip="tooltip" |
| | | :xAxis="xAxis1" |
| | | :yAxis="yAxis1" |
| | | style="height: 36vh;"></Echarts> |
| | | <Echarts ref="chart" :barColors="barColors2" :chartStyle="chartStyle" :grid="grid" :legend="barLegend" |
| | | :series="barSeries" :tooltip="tooltip" :xAxis="xAxis1" :yAxis="yAxis1" style="height: 36vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <el-col :span="24"> |
| | | <div class="inspection-card"> |
| | | <div class="title">åæ ¼ç</div> |
| | | <Echarts ref="chart" |
| | | :barColors="barColors" |
| | | :grid="grid" |
| | | :legend="legend" |
| | | :lineColors="lineColors" |
| | | :options="echartsOptions" |
| | | :series="echartsSeries" |
| | | :tooltip="tooltip" |
| | | :xAxis="xAxis" |
| | | :yAxis="yAxis" |
| | | style="height: 40vh;"></Echarts> |
| | | <Echarts ref="chart" :barColors="barColors" :grid="grid" :legend="legend" :lineColors="lineColors" |
| | | :options="echartsOptions" :series="echartsSeries" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis" |
| | | style="height: 40vh;"></Echarts> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | export default { |
| | | name: "QualificationRateStatistics", |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {Echarts}, |
| | | components: { Echarts }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | |
| | | containLabel: true |
| | | }, |
| | | legend: { |
| | | data: ['æ»æ°','åæ ¼ç'] |
| | | data: ['æ»æ°', 'åæ ¼ç'] |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | |
| | | data: [ |
| | | { value: 0, name: 'å§ææ£éª' }, |
| | | { value: 0, name: 'è¿åæ£éª' }, |
| | | { value: 0, name: 'å£åº¦æ£éª' }, |
| | | { value: 0, name: 'å¯é æ§æ£éª' }, |
| | | { value: 0, name: 'æ½æ ·' }, |
| | | ] |
| | | } |
| | |
| | | getOrderTypeCookie().then((res) => { |
| | | this.materialPieSeries1[0].data[0].value = res.data.customer // å§æ |
| | | this.materialPieSeries1[0].data[1].value = res.data.enter // è¿å |
| | | this.materialPieSeries1[0].data[2].value = res.data.quarterly // å£åº¦ |
| | | this.materialPieSeries1[0].data[2].value = res.data.quarterly // å¯é æ§ |
| | | this.materialPieSeries1[0].data[3].value = res.data.spotCheck // æ½æ · |
| | | }) |
| | | }, |
| | |
| | | this.barSeries[0].data = barData |
| | | }) |
| | | }, |
| | | changeDate () { |
| | | changeDate() { |
| | | this.getBar() |
| | | this.getRawPass() |
| | | // this.getOrderType() |
| | | // this.getPassRateCom() |
| | | }, |
| | | changeDatePicker (val) { |
| | | changeDatePicker(val) { |
| | | if (val) { |
| | | this.beginDate = val[0] + ' 00:00:00' |
| | | this.endDate = val[1] + ' 23:59:59' |
| | |
| | | .title { |
| | | padding: 10px 0 0 20px; |
| | | } |
| | | |
| | | .table { |
| | | padding: 0 10px 10px; |
| | | } |
| | | |
| | | .pie-card { |
| | | width: 100%; |
| | | background: #FFFFFF; |
| | | margin-top: 10px; |
| | | position: relative; |
| | | } |
| | | |
| | | .data { |
| | | position: absolute; |
| | | font-size: 20px; |
| | |
| | | top: 42%; |
| | | z-index: 1; |
| | | } |
| | | .inspection-card{ |
| | | |
| | | .inspection-card { |
| | | width: 100%; |
| | | background: #FFFFFF; |
| | | margin-top: 10px; |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£éªå¯¹è±¡ï¼" prop="sample"> |
| | | <el-cascader v-model="editForm.sample" :options="itemParameterData.cascaderField.sample.tree" |
| | | :props="{ value: 'name', label: 'name', checkStrictly: true, multiple: true }" :show-all-levels="false" |
| | | clearable filterable placeholder="è¯·éæ©" size="small" style="width: 100%;"></el-cascader> |
| | | :props="{ value: 'labelName', label: 'name', checkStrictly: true, multiple: true }" |
| | | :show-all-levels="false" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"></el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |