From ff2f7d7bad0132c130c305364a863ff446e926b2 Mon Sep 17 00:00:00 2001 From: 小小儁爺 <1694218219@qq.com> Date: 星期一, 30 十二月 2024 13:47:24 +0800 Subject: [PATCH] 1.在缓存模式下 页面切换会请求接口 --- src/views/qualityManager/qualityPlaning.vue | 2595 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,300 insertions(+), 1,295 deletions(-) diff --git a/src/views/qualityManager/qualityPlaning.vue b/src/views/qualityManager/qualityPlaning.vue index 9d77b54..2979426 100644 --- a/src/views/qualityManager/qualityPlaning.vue +++ b/src/views/qualityManager/qualityPlaning.vue @@ -1,1295 +1,1300 @@ -<template> - <div> - <div class="body" :style="{height:mainHeight+'px'}"> - <div class="bodyTopButtonGroup" style="justify-content: space-between"> - <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button> - </div> - - <div class="bodyTopFormGroup"> - <el-form - ref="form" - :model="form" - label-width="100px" - inline - style="display: flex;" - > - <div class="elForm"> - <el-form-item label="璐ㄦ鏂规缂栫爜" style=" display: flex;"> - <el-input v-model="form.qualityinsptcode" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="璐ㄦ鏂规鍚嶇О" style=" display: flex;"> - <el-input v-model="form.qualityinsptname" placeholder="璇疯緭鍏�" style="width: 200px" /> - </el-form-item> - <el-form-item label="鏈夋晥鐘舵��" style=" display: flex;"> - <el-select v-model="form.status" style="width: 200px" placeholder="璇烽�夋嫨"> - <el-option - v-for="item in whetherOrNot" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item label="璐ㄦ绫诲瀷" style=" display: flex;"> - <el-select v-model="form.checktype" style="width: 200px" placeholder="璇烽�夋嫨"> - <el-option - v-for="item in checktypeArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item v-show="isExpandForm" label="鎶芥牱鏂瑰紡" style=" display: flex;"> - <el-select v-model="form.sampltype" style="width: 200px" placeholder="璇烽�夋嫨"> - <el-option - v-for="item in sampltypeArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <el-form-item v-show="isExpandForm" label="閫傜敤瀵硅薄" style=" display: flex;"> - <el-select v-model="form.suitobject" style="width: 200px" placeholder="璇烽�夋嫨"> - <el-option - v-for="item in suitobjectArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - </div> - <div - class="bodySearchReset" - :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" - > - <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button> - <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> - </div> - </el-form> - <div - class="bodyTopFormExpand" - > - <svg-icon - v-show="mouseHoverType==='mouseout'" - style="cursor: pointer" - :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" - @mouseenter="mouseHoverType=$event.type" - /> - <svg-icon - v-show="mouseHoverType==='mouseenter'" - style="cursor: pointer" - :icon-class="!isExpandForm?'doubleDown':'doubleUp'" - @click="isExpandForm=!isExpandForm" - @mouseout="mouseHoverType=$event.type" - /> - </div> - </div> - - <div class="elTableDiv"> - <!-- <TableColumnSettings--> - <!-- :list1="tableColumnSettingsArray"--> - <!-- @tableColumnUpdate="tableColumnUpdate"--> - <!-- />--> - <el-table - :key="tableTimeStampKey" - ref="tableDataRef" - class="tableFixed" - :data="tableData" - :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" - border - :row-class-name="tableRowClassName" - :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - @sort-change="sortChange" - > - <!-- <el-table-column--> - <!-- prop="RowNum"--> - <!-- width="50"--> - <!-- fixed--> - <!-- label="搴忓彿"--> - <!-- />--> - <!-- <el-table-column--> - <!-- prop="code"--> - <!-- label="璐ㄦ鏂规缂栫爜"--> - <!-- sortable="custom"--> - <!-- />--> - <!-- <el-table-column--> - <!-- prop="name"--> - <!-- label="璐ㄦ鏂规鍚嶇О"--> - <!-- sortable="custom"--> - <!-- />--> - <!-- <el-table-column--> - <!-- prop="status"--> - <!-- label="鏈夋晥鐘舵��"--> - <!-- sortable="custom"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.status==='Y'"><i--> - <!-- class="el-icon-success"--> - <!-- :style="{color:$store.state.settings.theme}"--> - <!-- style="margin-right:5px"--> - <!-- />鏄�--> - <!-- </div>--> - <!-- <div v-else-if="row.status==='N'"><i class="el-icon-info" style="margin-right: 5px" />鍚�</div>--> - <!-- <div v-else>/</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column--> - <!-- prop="checktype"--> - <!-- label="璐ㄦ绫诲瀷"--> - <!-- sortable="custom"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.checktype">{{ checktypeArr.find(i => i.code === row.checktype).name }}</div>--> - <!-- <div v-else>/</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column--> - <!-- prop="sampmethod"--> - <!-- label="鎶芥牱鏂瑰紡"--> - <!-- sortable="custom"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.sampmethod">{{ sampltypeArr.find(i => i.code === row.sampmethod).name }}</div>--> - <!-- <div v-else>/</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column--> - <!-- prop="suitobject"--> - <!-- label="閫傜敤瀵硅薄"--> - <!-- sortable="custom"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <div v-if="row.suitobject">{{ suitobjectArr.find(i => i.code === row.suitobject).name }}</div>--> - <!-- <div v-else>/</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - - <!-- <el-table-column--> - <!-- prop="username"--> - <!-- label="鍒涘缓浜哄憳"--> - <!-- sortable="custom"--> - <!-- />--> - <!-- <el-table-column--> - <!-- prop="lm_date"--> - <!-- label="鍒涘缓鏃堕棿"--> - <!-- width="160"--> - <!-- sortable="custom"--> - <!-- />--> - - <el-table-column - v-for="item in tableColumnSettingsArray" - v-if="item.show" - :key="item.id" - :sortable="item.sortable" - :prop="item.prop" - :min-width="item.minWidth" - :label="item.label" - :width="item.width" - show-tooltip-when-overflow - :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false" - > - <template slot-scope="{row}"> - <div v-if="!row[item.prop]">/</div> - <div v-else-if="item.prop==='checktype'"> - {{ checktypeArr.find(i => i.code === row[item.prop]).name }} - </div> - <div v-else-if="item.prop==='sampmethod'"> - {{ sampltypeArr.find(i => i.code === row[item.prop]).name }} - </div> - <!-- 閫傜敤瀵硅薄--> - <div v-else-if="item.prop==='suitobject'"> - {{ suitobjectArr.find(i => i.code === row.suitobject).name }} - </div> - <div v-else-if="item.prop==='status'"> - <div v-if="row.status==='Y'"><i - class="el-icon-success" - :style="{color:$store.state.settings.theme}" - style="margin-right:5px" - />鏄� - </div> - <div v-else-if="row.status==='N'"><i class="el-icon-info" style="margin-right: 5px" />鍚�</div> - <div v-else>/</div> - </div> - <div v-else>{{ row[item.prop] }}</div> - </template> - </el-table-column> - - <el-table-column - label="鎿嶄綔" - width="120" - fixed="right" - > - <template slot-scope="{row}"> - <div class="operationClass"> - <el-tooltip class="item" effect="dark" content="鏌ョ湅" placement="top"> - <i - class="el-icon-view" - :style="{color:$store.state.settings.theme}" - style="margin-right:15px;cursor: pointer;" - @click="check('check',row)" - /> - </el-tooltip> - <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top"> - <i - class="el-icon-edit-outline" - :style="{color:$store.state.settings.theme}" - @click="edit('edit',row)" - /> - </el-tooltip> - <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> - <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" /> - </el-tooltip> - </div> - </template> - </el-table-column> - </el-table> - </div> - <!--鍒嗛〉--> - <pagination - :total="total" - :page.sync="form.page" - :limit.sync="form.rows" - align="right" - layout="total,prev, pager, next,sizes" - popper-class="select_bottom" - @pagination="getQualityInspectionSearch" - /> - </div> - - <el-dialog - v-el-drag-dialog - :title="operation==='add'?'鏂板':operation==='check'?'鏌ョ湅':'缂栬緫'" - :visible.sync="dialogVisible" - width="1260px" - :close-on-click-modal="false" - top="5vh" - @closed="handleClose" - @close="handleClose" - > - - <!-- <div>--> - <!-- <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" style="margin: -20px 10px 20px 0" />鍩虹璧勬枡锛�--> - <!-- </div>--> - <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px"> - <el-form-item label="璐ㄦ鏂规缂栫爜" prop="qualityinsptcode"> - <el-input v-model="dialogForm.qualityinsptcode" :disabled="operation!=='add'" style="width: 200px" /> - </el-form-item> - <el-form-item label="璐ㄦ鏂规鍚嶇О" prop="qualityinsptname"> - <el-input v-model="dialogForm.qualityinsptname" style="width: 200px" /> - </el-form-item> - <br> - <el-form-item prop="status" label="鏈夋晥鐘舵��"> - <el-select - v-model="dialogForm.status" - style="width: 200px" - placeholder="璇烽�夋嫨" - :popper-append-to-body="false" - > - <el-option - v-for="item in whetherOrNot" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <br> - <el-form-item prop="checktype" label="璐ㄦ绫诲瀷"> - <el-radio-group v-model="dialogForm.checktype"> - <!-- <el-radio label="InCheck">鍏ュ巶妫�楠�</el-radio>--> - <!-- <el-radio label="OutCheck">鍑哄巶妫�楠�</el-radio>--> - <el-radio label="FirstCheck">棣栨妫�楠�</el-radio> - <el-radio label="PatroCheck">宸℃</el-radio> - <el-radio label="EndCheck">瀹屽伐妫�</el-radio> - </el-radio-group> - </el-form-item> - <br> - <el-form-item prop="sampmethod" label="鎶芥牱鏂瑰紡"> - <el-radio-group v-model="dialogForm.sampmethod" style="width: 200px;"> - <el-radio label="FIXED">鍥烘椂鎶芥</el-radio> - <el-radio label="SCARE">姣斾緥鎶芥</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item v-if="dialogForm.sampmethod==='FIXED'" label="鏍锋湰鏁伴噺" prop="sampnum"> - <el-input v-model="dialogForm.sampnum" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" /> - </el-form-item> - <el-form-item v-if="dialogForm.sampmethod==='SCARE'" label="鎶芥姣斾緥" prop="sampscale"> - <el-input v-model="dialogForm.sampscale" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 180px" /> - % - </el-form-item> - <br> - <el-form-item prop="suitobject" label="閫傜敤瀵硅薄"> - <el-radio-group v-model="dialogForm.suitobject" style="width: 200px;" @change="suitobjectChange"> - <el-radio label="PY">鐗╂枡绫诲埆</el-radio> - <el-radio label="P">鐗╂枡</el-radio> - </el-radio-group> - </el-form-item> - <el-form-item - prop="suitpart" - :label="dialogForm.suitobject==='P'?'閫傜敤鐗╂枡':'閫傜敤鐗╂枡绫诲埆'" - > - <el-select - v-model="dialogForm.suitpart" - style="width: 200px" - multiple - filterable - collapse-tags - placeholder="璇烽�夋嫨" - :popper-append-to-body="false" - > - <el-option - v-for="item in PartSelectArr" - v-if="dialogForm.suitobject==='P'" - :key="item.partcode" - :label="item.partcode +' / '+ item.partname" - :value="item.partcode" - /> - <el-option - v-for="item in StockTypeSelectArr" - v-if="dialogForm.suitobject==='PY'" - :key="item.code" - :label="item.code+' / '+item.name" - :value="item.code" - /> - </el-select> - </el-form-item> - <br> - <el-form-item - label="宸ュ簭鍚嶇О" - prop="stepcode" - > - <el-select - v-model="dialogForm.stepcode" - style="width: 200px" - filterable - placeholder="璇烽�夋嫨" - :popper-append-to-body="false" - > - <el-option - v-for="item in StepSelectArr" - :key="item.stepcode" - :label="item.stepname" - :value="item.stepcode" - /> - </el-select> - </el-form-item> - - <el-form-item label="妫�楠屾柟妗堟弿杩�"> - <el-input v-model="dialogForm.descr" type="textarea" :autosize="{ minRows: 2 }" /> - </el-form-item> - </el-form> - - <div style="display: flex;align-items: center;margin-bottom: 10px;"> - <div> - <i - class="el-icon-s-operation" - :style="{color:$store.state.settings.theme}" - style="margin:0 10px 0 0px;" - /> - </div> - <div>璐ㄦ鍒楄〃锛�</div> - <el-button - v-if="operation!=='check'" - v-waves - type="primary" - style="margin-left: 20px;" - icon="el-icon-circle-plus-outline" - @click="addZjlb" - >鏂板 - </el-button> - </div> - - <el-table - ref="tableDataRef2" - class="tableFixed" - :data="checkitem" - height="250" - style="height:250px" - border - :row-class-name="tableRowClassName" - highlight-current-row - :header-cell-style="this.$headerCellStyle" - :cell-style="this.$cellStyle" - > - <el-table-column - type="index" - width="50" - fixed - label="搴忓彿" - /> - <!-- <el-table-column--> - <!-- prop="jyxmbm"--> - <!-- width="105"--> - <!-- label="妫�楠岄」鐩紪鐮�"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <el-select--> - <!-- v-if="row.isVisible===1"--> - <!-- v-model="row.jyxmbm"--> - <!-- filterable--> - <!-- placeholder="璇烽�夋嫨"--> - <!-- @change="val=>tableChange(val,row)"--> - <!-- >--> - <!-- <el-option--> - <!-- v-for="item in PartSelectArr"--> - <!-- :key="item.partname"--> - <!-- :label="item.partcode"--> - <!-- :value="item.partname"--> - <!-- />--> - <!-- </el-select>--> - <!-- <div v-if="row.isVisible===0">{{ row.jyxmbm }}</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - <!-- <el-table-column--> - <!-- prop="jyxmmc"--> - <!-- width="105"--> - <!-- label="妫�楠岄」鐩悕绉�"--> - <!-- >--> - <!-- <template slot-scope="{row}">--> - <!-- <el-select--> - <!-- v-if="row.isVisible===1"--> - <!-- v-model="row.jyxmmc"--> - <!-- filterable--> - <!-- placeholder="璇烽�夋嫨"--> - <!-- @change="val=>tableChange(val,row)"--> - <!-- >--> - <!-- <el-option--> - <!-- v-for="item in PartSelectArr"--> - <!-- :key="item.partname"--> - <!-- :label="item.partcode"--> - <!-- :value="item.partname"--> - <!-- />--> - <!-- </el-select>--> - <!-- <div v-if="row.isVisible===0">{{ row.jyxmmc }}</div>--> - <!-- </template>--> - <!-- </el-table-column>--> - - <el-table-column - prop="stepcheckitem_code" - width="250" - label="妫�楠岄」鐩� / 缂栫爜" - > - <template slot-scope="{row}"> - <el-select - v-if="row.isVisible===1" - v-model="row.stepcheckitem_code" - filterable - placeholder="璇烽�夋嫨" - style="width: 100%;" - > - <!-- @change="val=>tableChange(val,row)"--> - <el-option - v-for="item in CheckItemSelectArr" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - <div v-else>{{ - CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code).name - }} - </div> - </template> - </el-table-column> - - <el-table-column - prop="required" - width="85" - label="鏄惁蹇呭~" - > - <template slot-scope="{row}"> - <el-select - v-if="row.isVisible===1" - v-model="row.required" - filterable - placeholder="璇烽�夋嫨" - > - <el-option - v-for="item in whetherOrNot" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - <div v-else>{{ row.required === 'Y' ? '鏄�' : '鍚�' }}</div> - </template> - </el-table-column> - <el-table-column - prop="numberjudge" - width="85" - label="鏁板�煎垽瀹�" - > - <template slot-scope="{row}"> - <el-select - v-if="row.isVisible===1" - v-model="row.numberjudge" - filterable - placeholder="璇烽�夋嫨" - @change="val=>szpdChange(val,row)" - > - <el-option - v-for="item in whetherOrNot" - :key="item.code" - :label="item.name" - :value="item.code" - /> - </el-select> - <div v-else>{{ row.numberjudge === 'Y' ? '鏄�' : '鍚�' }}</div> - </template> - </el-table-column> - <el-table-column - prop="unit" - label="鍗曚綅" - > - <template slot-scope="{row}"> - <!-- <el-select--> - <!-- v-if="row.isVisible===1"--> - <!-- v-model="row.unit"--> - <!-- filterable--> - <!-- :disabled="row.numberjudge==='N'"--> - <!-- placeholder="璇烽�夋嫨"--> - <!-- >--> - <!-- <el-option--> - <!-- v-for="item in UomSelectArr"--> - <!-- :key="item.code"--> - <!-- :label="item.name"--> - <!-- :value="item.code"--> - <!-- />--> - <!-- </el-select>--> - <!-- <div v-if="row.isVisible===0">{{--> - <!-- row.numberjudge === 'Y' ? UomSelectArr.find(i => i.code === row.unit).name : '/'--> - <!-- }}--> - <!-- </div>--> - <el-input - v-if="row.isVisible===1" - v-model="row.unit" - placeholder="璇烽�夋嫨" - :disabled="row.numberjudge==='N'" - /> - <div v-else>{{ row.unit ? row.unit : '/' }}</div> - </template> - </el-table-column> - <el-table-column - prop="decimalnum" - width="85" - label="灏忔暟浣嶆暟" - > - <template slot-scope="{row}"> - <!-- <el-select--> - <!-- v-if="row.isVisible===1"--> - <!-- v-model="row.decimalnum"--> - <!-- filterable--> - <!-- placeholder="璇烽�夋嫨"--> - <!-- >--> - <!-- <el-option--> - <!-- v-for="item in PartSelectArr"--> - <!-- :key="item.partname"--> - <!-- :label="item.partcode"--> - <!-- :value="item.partname"--> - <!-- />--> - <!-- </el-select>--> - <el-input - v-if="row.isVisible===1" - v-model="row.decimalnum" - :disabled="row.numberjudge==='N'" - oninput="value=value.replace(/[^0-9]/g,'')" - placeholder="璇疯緭鍏�" - /> - <div v-else>{{ row.numberjudge === 'Y' ? row.decimalnum : '/' }}</div> - </template> - </el-table-column> - <el-table-column - prop="standvalue" - label="鏍囧噯鍊�" - > - <template slot-scope="{row}"> - <el-input - v-if="row.isVisible===1" - v-model="row.standvalue" - :disabled="row.numberjudge==='N'" - oninput="value=value.replace(/[^0-9.]/g,'')" - placeholder="璇疯緭鍏�" - /> - <div v-else>{{ row.standvalue ? row.standvalue : '/' }}</div> - </template> - </el-table-column> - <el-table-column - prop="uppervalue" - label="涓婇檺鍊�" - > - <template slot-scope="{row}"> - <el-input - v-if="row.isVisible===1" - v-model="row.uppervalue" - :disabled="row.numberjudge==='N'" - oninput="value=value.replace(/[^0-9.]/g,'')" - placeholder="璇疯緭鍏�" - /> - <div v-else>{{ row.uppervalue ? row.uppervalue : '/' }}</div> - </template> - </el-table-column> - <el-table-column - prop="lowervalue" - label="涓嬮檺鍊�" - > - <template slot-scope="{row}"> - <el-input - v-if="row.isVisible===1" - v-model="row.lowervalue" - :disabled="row.numberjudge==='N'" - oninput="value=value.replace(/[^0-9.]/g,'')" - placeholder="璇疯緭鍏�" - /> - <div v-else>{{ row.lowervalue ? row.lowervalue : '/' }}</div> - </template> - </el-table-column> - <el-table-column - prop="stepcheckitem_desc" - label="鎻忚堪" - show-tooltip-when-overflow - > - <template slot-scope="{row}"> - <el-input - v-if="row.isVisible===1" - v-model="row.stepcheckitem_desc" - placeholder="璇疯緭鍏�" - /> - <div v-else>{{ row.stepcheckitem_desc ? row.stepcheckitem_desc : '/' }}</div> - </template> - </el-table-column> - <el-table-column - v-if="operation!=='check'" - label="鎿嶄綔" - width="120" - fixed="right" - > - <template slot-scope="{row}"> - <div class="operationClass"> - <el-button v-if="row.isVisible===1" v-waves type="text" @click="saveZjlbRow(row)">纭</el-button> - <el-button v-if="row.isVisible===1&&isCancel" v-waves type="text" @click="cancelZjlbRow(row)">鍙栨秷 - </el-button> - <el-button v-if="row.isVisible!==1" v-waves type="text" @click="editZjlbRow(row)">缂栬緫</el-button> - <el-button v-if="row.isVisible!==1" v-waves type="text" @click="delZjlbRow(row)">鍒犻櫎</el-button> - </div> - </template> - </el-table-column> - </el-table> - - <span slot="footer" class="dialog-footer"> - <div class="footerButton"> - <el-button v-if="operation!=='check'" v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button> - <el-button - v-if="operation!=='check'" - v-waves - :loading="$store.state.app.buttonIsDisabled" - :disabled="$store.state.app.buttonIsDisabled" - type="primary" - @click="dialogVisibleConfirm" - >淇� 瀛�</el-button> - <el-button v-if="operation==='check'" v-waves @click="dialogVisibleCancel">杩� 鍥�</el-button> - </div> - </span> - </el-dialog> - - </div> -</template> - -<script> -import Pagination from '@/components/Pagination' -import { validateCode } from '@/utils/global' -import elDragDialog from '@/directive/el-drag-dialog' -import waves from '@/directive/waves' -import { - QualityInspectionAddEditSave, - QualityInspectionDelete, - QualityInspectionSearch, QualityInspectionSeeEdit, QualityStepCheckItemSelect -} from '@/api/QualityManagement' -import TableColumnSettings from '@/components/TableColumnSettings' -import { PartSelect, TMaterielClassTree } from '@/api/ProductModel' -import { StepData } from '@/api/GeneralBasicData' - -export default { - name: 'QualityPlaning', - components: { - Pagination, TableColumnSettings - }, - directives: { elDragDialog, waves }, - data() { - return { - mouseHoverType: 'mouseout', - isExpandForm: false, - mainHeight: 0, - tableHeight: 0, - form: { - qualityinsptcode: '', // 璐ㄦ鏂规缂栫爜 - qualityinsptname: '', // 璐ㄦ鏂规鍚嶇О - status: '', // 鏈夋晥鐘舵�� - checktype: '', // 璐ㄦ绫诲瀷 - sampltype: '', // 鎶芥牱鏂瑰紡 - suitobject: '', // 閫傜敤瀵硅薄 - prop: 'lm_date', // 鎺掑簭瀛楁 - order: 'desc', // 鎺掑簭瀛楁 - page: 1, // 绗嚑椤� - rows: 20 // 姣忛〉澶氬皯鏉� - }, - checktypeArr: [ - // { code: 'InCheck', name: '鍏ュ巶妫�楠�' }, - // { code: 'OutCheck', name: '鍑哄巶妫�楠�' }, - { code: 'FirstCheck', name: '棣栨' }, - { code: 'PatroCheck', name: '宸℃' }, - { code: 'EndCheck', name: '瀹屽伐妫�' } - ], - sampltypeArr: [ - { code: 'FIXED', name: '鍥哄畾鎶芥' }, - { code: 'SCARE', name: '姣斾緥鎶芥' } - ], - suitobjectArr: [ - { code: 'P', name: '鐗╂枡' }, - { code: 'PY', name: '鐗╂枡绫诲瀷' } - ], - total: 10, - tableData: [], - tableColumnSettingsArray: [ - // { minWidth: 50, width: false, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず - { minWidth: 25, width: 50, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom - { - minWidth: 130, - width: false, - prop: 'code', - label: '璐ㄦ鏂规缂栫爜', - id: 3, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: 130, - width: false, - prop: 'name', - label: '璐ㄦ鏂规鍚嶇О', - id: 4, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: 110, - width: false, - prop: 'status', - label: '鏈夋晥鐘舵��', - id: 5, - show: true, - fixed: false, - sortable: true - }, { - minWidth: 110, - width: false, - prop: 'checktype', - label: '璐ㄦ绫诲瀷', - id: 6, - show: true, - fixed: false, - sortable: true - }, { - minWidth: 110, - width: false, - prop: 'sampmethod', - label: '鎶芥牱鏂瑰紡', - id: 7, - show: true, - fixed: false, - sortable: true - }, - - { - minWidth: 110, - width: false, - prop: 'suitobject', - label: '閫傜敤瀵硅薄', - id: 8, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: false, - width: 110, - prop: 'stepcode', - label: '宸ュ簭缂栫爜', - id: 9, - show: false, - fixed: false, - sortable: true - }, { - minWidth: 110, - width: false, - prop: 'stepname', - label: '宸ュ簭鍚嶇О', - id: 10, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: false, - width: 110, - prop: 'username', - label: '鍒涘缓浜哄憳', - id: 11, - show: true, - fixed: false, - sortable: true - }, - { - minWidth: false, - width: 160, - prop: 'lm_date', - label: '鍒涘缓鏃堕棿', - id: 12, - show: true, - fixed: false, - sortable: true - } - ], - tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key - dialogVisible: false, - dialogForm: { - qualityinsptcode: '', // 璐ㄦ鏂规缂栫爜 - qualityinsptname: '', // 璐ㄦ鏂规鍚嶇О - status: 'Y', // 鏈夋晥鐘舵�� - checktype: 'FirstCheck', // 妫�楠岀被鍨� - sampmethod: 'FIXED', // 鎶芥鏂瑰紡 - sampnum: '', // 鏍锋湰鏁伴噺 - sampscale: '', // 鎶芥姣斾緥 - suitobject: 'P', // 閫傜敤瀵硅薄 - suitpart: [], // 閫傜敤鐗╂枡 - stepcode: '', // 宸ュ簭 - descr: '' // /鎻忚堪 - }, - operation: '', - dialogFormRules: { - status: [ - { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] } - ], - qualityinsptcode: [ - { required: true, validator: validateCode, trigger: ['blur', 'change'] } - ], - qualityinsptname: [ - { required: true, message: '璇疯緭鍏ヨ川妫�鏂规鍚嶇О', trigger: ['blur', 'change'] } - ], - checktype: [ - { required: true, message: '璇烽�夋嫨璐ㄦ鏂瑰紡', trigger: ['blur', 'change'] } - ], - sampmethod: [ - { required: true, message: '璇烽�夋嫨鎶芥牱鏂瑰紡', trigger: ['blur', 'change'] } - ], - sampnum: [ - { required: true, message: '璇疯緭鍏ユ牱鏈暟閲�', trigger: ['blur', 'change'] } - ], - sampscale: [ - { required: true, message: '璇疯緭鍏ユ娊妫�姣斾緥', trigger: ['blur', 'change'] } - ], - suitobject: [ - { required: true, message: '璇烽�夋嫨閫傜敤瀵硅薄', trigger: ['blur', 'change'] } - ], - suitpart: [ - { required: true, message: '璇烽�夋嫨鐗╂枡鎴栫墿鏂欑被鍒�', trigger: ['blur', 'change'] } - ], - stepcode: [ - { required: true, message: '璇烽�夋嫨宸ュ簭鍚嶇О', trigger: ['blur', 'change'] } - ] - }, - checkitem: [], - - whetherOrNot: [ // 鏄垨鍚� - { code: 'Y', name: '鏄�' }, - { code: 'N', name: '鍚�' } - ], - - PartSelectArr: [], // 鐗╂枡涓嬫媺鏁扮粍 - StockTypeSelectArr: [], // 鐗╂枡绫诲埆涓嬫媺鏁扮粍 - UomSelectArr: [], // 鍗曚綅涓嬫媺鏁扮粍 - CheckItemSelectAllArr: [], // 妫�楠岄」鐩�(鎵�鏈�) - CheckItemSelectArr: [], // 妫�楠岄」鐩� - StepSelectArr: [], // 宸ュ簭鍚嶇О涓嬫媺鎵�鏈� - - isCancel: true// 鏄惁鍙彇娑� - - } - }, - - activated() { window.addEventListener('resize', this.getHeight) this.getHeight() }, created() { - this.handleRequest() - }, - mounted() { - window.addEventListener('resize', this.getHeight) - this.getHeight() - }, - methods: { - tableColumnUpdate(val, isCopyTrue) { - if (isCopyTrue) { - this.tableColumnSettingsArray = val - } - this.tableTimeStampKey = new Date().getTime() - this.$refs.tableDataRef.doLayout() - }, - handleRequest() { - this.getQualityInspectionSearch().then(res => { - if (res.code === '200') { - // this.getUomSelect() - this.getStepCheckItemSelect() - this.getPartSelect() - this.getStockTypeSelect() - this.getStepSelect() - } - }) - }, - async getStepSelect() { - const { data: res } = await StepData() - this.StepSelectArr = res - }, - async getQualityInspectionSearch() { - const res = await QualityInspectionSearch(this.form) - this.tableData = res.data - this.total = res.count - - return { code: res.code } - }, - - // 鎺掑簭鏀瑰彉鏃� - sortChange({ column, prop, order }) { - if (order === 'descending') { - order = 'desc' - } else if (order === 'ascending') { - order = 'asc' - } else { - order = 'desc' - } - this.form.order = order - this.form.prop = prop - this.getQualityInspectionSearch() - }, - // 鏌ヨ - search() { - this.getQualityInspectionSearch() - }, - // 閲嶇疆 - reset() { - this.form.qualityinsptcode = '' - this.form.qualityinsptname = '' - this.form.status = '' - this.form.checktype = '' - this.form.sampltype = '' - this.form.suitobject = '' - this.getQualityInspectionSearch() - }, - - // 鏂板鎸夐挳 - add(operation) { - this.operation = operation - this.dialogVisible = true - }, - // 鏌ョ湅 - async check(operation, row) { - this.operation = operation - this.dialogVisible = true - - const { data: res } = await QualityInspectionSeeEdit({ qualityinsptcode: row.code }) - - this.$nextTick(() => { - this.dialogForm.qualityinsptcode = row.code - this.dialogForm.qualityinsptname = row.name - this.dialogForm.status = row.status - this.dialogForm.stepcode = row.stepcode - this.dialogForm.checktype = row.checktype - this.dialogForm.sampmethod = row.sampmethod - // this.dialogForm.sampscare = row.sampscare - if (this.dialogForm.sampmethod === 'FIXED') { - this.dialogForm.sampnum = row.sampscare - } else { - this.dialogForm.sampscale = row.sampscare - } - this.dialogForm.suitobject = row.suitobject - this.dialogForm.suitpart = row.suitpart.split(',') - this.dialogForm.descr = row.descr - this.checkitem = res - - this.$refs.tableDataRef2.doLayout() - }) - }, - // 淇敼鎸夐挳 - async edit(operation, row) { - this.operation = operation - this.dialogVisible = true - - const { data: res } = await QualityInspectionSeeEdit({ qualityinsptcode: row.code }) - - const tempCodeArr = [] - res.forEach(i => { - let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗� - number = number === 0 ? (10 + Math.random()) : number - i.number = number - i.isVisible = 0 - tempCodeArr.push(i.stepcheckitem_code) - }) - - this.CheckItemSelectArr = [] - this.CheckItemSelectAllArr.forEach(i => { - if (!tempCodeArr.includes(i.code)) { - this.CheckItemSelectArr.push(i) - } - }) - - this.$nextTick(() => { - this.dialogForm.qualityinsptcode = row.code - this.dialogForm.qualityinsptname = row.name - this.dialogForm.status = row.status - this.dialogForm.stepcode = row.stepcode - this.dialogForm.checktype = row.checktype - this.dialogForm.sampmethod = row.sampmethod - if (this.dialogForm.sampmethod === 'FIXED') { - this.dialogForm.sampnum = row.sampscare - } else { - this.dialogForm.sampscale = row.sampscare - } - this.dialogForm.suitobject = row.suitobject - this.dialogForm.suitpart = row.suitpart.split(',') - this.dialogForm.descr = row.descr - this.checkitem = res - // console.log(this.checkitem, 2) - this.$refs.tableDataRef2.doLayout() - }) - }, - // 鍒犻櫎鎸夐挳 - async del(row) { - this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - QualityInspectionDelete({ qualityinsptcode: row.code }).then(res => { - if (res.code === '200') { - this.$message.success('鍒犻櫎鎴愬姛!') - if (this.form.page > 1 && this.tableData.length === 1) { - this.form.page-- - } - this.getQualityInspectionSearch() - } - }) - }).catch(() => { - this.$message.info('宸插彇娑堝垹闄�') - }) - }, - // 鐗╂枡涓嬫媺 - async getPartSelect() { - const { data: res } = await PartSelect() - this.PartSelectArr = res - }, - // 鐗╂枡绫诲埆涓嬫媺 - async getStockTypeSelect() { - const { data: res } = await TMaterielClassTree() - this.StockTypeSelectArr = res - }, - - // 閫傜敤瀵硅薄鍊兼敼鍙樻槸 - suitobjectChange() { - this.dialogForm.suitpart = [] - }, - // 鑾峰彇妫�楠岄」鐩笅鎷夋帴鍙� - async getStepCheckItemSelect() { - const { data: res } = await QualityStepCheckItemSelect() - - res.forEach(i => { - this.CheckItemSelectArr.push({ - code: i.code, - name: i.name + ' / ' + i.code, - descr: i.descr - }) - }) - this.CheckItemSelectAllArr = JSON.parse(JSON.stringify(this.CheckItemSelectArr)) - }, - // 鏁板�煎垽瀹� - szpdChange(val, row) { - if (val === 'N') { - row.unit = '' - row.decimalnum = '' - row.standvalue = '' - row.uppervalue = '' - row.lowervalue = '' - } - }, - // 琛ㄦ牸鍊兼敼鍙樻椂 - tableChange(val, row) { - console.log(val, row) - }, - // 璐ㄦ鍒楄〃 鏂板琛� - addZjlb() { - if (this.checkitem.find(i => i.isVisible === 1)) { - return this.$message.info('璇峰厛淇濆瓨褰撳墠琛屾暟鎹紒') - } - - let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗� - number = number === 0 ? (10 + Math.random()) : number - - this.checkitem.push({ - number, - isVisible: 1, - // jyxmbm: '', - // jyxmmc: '', - stepcheckitem_code: '', // 妫�楠岄」鐩紪鐮� - required: 'Y', // 鏄惁蹇呭~ - numberjudge: 'Y', // 鏄惁鏁板�煎垽鏂� - unit: '', // 鍗曚綅 - decimalnum: '', // 灏忔暟浣嶆暟 - standvalue: '', // 鏍囧噯鍊� - uppervalue: '', // 涓婇檺鍊� - lowervalue: '', // 涓嬮檺鍊� - stepcheckitem_desc: ''// 妫�楠岄」鐩弿杩� - }) - }, - // 鍒犻櫎璐ㄦ鍒楄〃琛� - delZjlbRow(row) { - const t = this.CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code) - this.CheckItemSelectArr.unshift(t) - this.checkitem = this.checkitem.filter(i => i.number !== row.number) - }, - // 淇濆瓨琛� - saveZjlbRow(row) { - if (!row.stepcheckitem_code) { - return this.$message.info('妫�楠岄」鐩笉鑳戒负绌猴紒') - } - if (row.numberjudge === 'Y' && !row.unit) { - return this.$message.info('鍗曚綅涓嶈兘涓虹┖锛�') - } - if (row.numberjudge === 'Y' && !row.decimalnum) { - return this.$message.info('灏忔暟浣嶆暟涓嶈兘涓虹┖锛�') - } - if (row.numberjudge === 'Y') { - if (!row.standvalue && !row.uppervalue && !row.lowervalue) { - return this.$message.info('鏍囧噯鍊笺�佷笂闄愬�笺�佷笅闄愬�煎叾涓竴椤逛笉鑳戒负绌猴紒') - } - } - this.CheckItemSelectArr = this.CheckItemSelectArr.filter(i => i.code !== row.stepcheckitem_code) - row.isVisible = 0 - - this.isCancel = true - }, - // 鍙栨秷琛� - cancelZjlbRow(row) { - this.checkitem = this.checkitem.filter(i => i.number !== row.number) - }, - // 缂栬緫琛� - editZjlbRow(row) { - if (this.checkitem.find(i => i.isVisible === 1)) { - return this.$message.info('璇峰厛淇濆瓨褰撳墠琛屾暟鎹紒') - } - row.isVisible = 1 - this.isCancel = false - const t = this.CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code) - this.CheckItemSelectArr.unshift(t) - }, - // 瀵硅瘽妗嗗叧闂簨浠� - handleClose() { - this.dialogForm = { - qualityinsptcode: '', - qualityinsptname: '', - status: 'Y', - checktype: 'FirstCheck', - sampmethod: 'FIXED', - sampnum: '', - stepcode: '', - sampscale: '', - suitobject: 'P', - suitpart: [], - descr: '' - } - - this.isCancel = true - this.checkitem = [] - this.CheckItemSelectArr = JSON.parse(JSON.stringify(this.CheckItemSelectAllArr)) - this.$refs.dialogForm.clearValidate() - }, - // 瀵硅瘽妗嗗彇娑� - dialogVisibleCancel() { - this.dialogVisible = false - }, - // 瀵硅瘽妗嗙‘璁� - dialogVisibleConfirm() { - this.$refs.dialogForm.validate(valid => { - if (valid) { - if (this.checkitem.length < 1) { - return this.$message.info('璐ㄦ鍒楄〃涓嶈兘涓虹┖锛�') - } - - const checkitem = [] - this.checkitem.forEach((item, index) => { - checkitem.push({ - stepcheckitem_seq: index + 1, - stepcheckitem_code: item.stepcheckitem_code, - stepcheckitem_desc: item.stepcheckitem_desc, - required: item.required, - numberjudge: item.numberjudge, - unit: item.unit, - decimalnum: item.decimalnum, - standvalue: item.standvalue, - uppervalue: item.uppervalue, - lowervalue: item.lowervalue - }) - }) - const data = { - qualityinsptcode: this.dialogForm.qualityinsptcode, - qualityinsptname: this.dialogForm.qualityinsptname, - status: this.dialogForm.status, - stepcode: this.dialogForm.checktype === 'InCheck' || this.dialogForm.checktype === 'OutCheck' ? '' : this.dialogForm.stepcode, - checktype: this.dialogForm.checktype, - sampmethod: this.dialogForm.sampmethod, - sampscare: this.dialogForm.sampnum ? this.dialogForm.sampnum : this.dialogForm.sampscale, - suitobject: this.dialogForm.suitobject, - suitpart: this.dialogForm.suitpart.join(','), - type: this.operation === 'add' ? 'Add' : 'Update', - descr: this.dialogForm.descr, - checkitem - } - - this.$store.state.app.buttonIsDisabled = true - QualityInspectionAddEditSave(data).then(res => { - if (res.code === '200') { - this.$message.success(this.operation === 'add' ? '淇濆瓨鎴愬姛锛�' : '淇敼鎴愬姛锛�') - this.dialogVisible = false - this.getQualityInspectionSearch() - this.$store.state.app.buttonIsDisabled = false - } else { - this.$message.error(this.operation === 'add' ? '淇濆瓨澶辫触锛�' : '淇敼澶辫触锛�') - } - }) - } - }) - }, - // 鑾峰彇椤甸潰楂樺害 - getHeight() { - this.$nextTick(() => { - this.mainHeight = window.innerHeight - 85 - this.tableHeight = this.mainHeight - 255 - this.$refs.tableDataRef.doLayout() - }) - }, - tableRowClassName({ row, rowIndex }) { - return 'custom-row' - } - } -} -</script> - -<style scoped lang="scss"> -::v-deep .el-select__caret { - display: flex; - align-items: center; - justify-content: center; -} -</style> +<template> + <div> + <div class="body" :style="{height:mainHeight+'px'}"> + <div class="bodyTopButtonGroup" style="justify-content: space-between"> + <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button> + </div> + + <div class="bodyTopFormGroup"> + <el-form + ref="form" + :model="form" + label-width="100px" + inline + style="display: flex;" + > + <div class="elForm"> + <el-form-item label="璐ㄦ鏂规缂栫爜" style=" display: flex;"> + <el-input v-model="form.qualityinsptcode" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="璐ㄦ鏂规鍚嶇О" style=" display: flex;"> + <el-input v-model="form.qualityinsptname" placeholder="璇疯緭鍏�" style="width: 200px" /> + </el-form-item> + <el-form-item label="鏈夋晥鐘舵��" style=" display: flex;"> + <el-select v-model="form.status" style="width: 200px" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in whetherOrNot" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item label="璐ㄦ绫诲瀷" style=" display: flex;"> + <el-select v-model="form.checktype" style="width: 200px" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in checktypeArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item v-show="isExpandForm" label="鎶芥牱鏂瑰紡" style=" display: flex;"> + <el-select v-model="form.sampltype" style="width: 200px" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in sampltypeArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <el-form-item v-show="isExpandForm" label="閫傜敤瀵硅薄" style=" display: flex;"> + <el-select v-model="form.suitobject" style="width: 200px" placeholder="璇烽�夋嫨"> + <el-option + v-for="item in suitobjectArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + </div> + <div + class="bodySearchReset" + :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}" + > + <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button> + <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button> + </div> + </el-form> + <div + class="bodyTopFormExpand" + > + <svg-icon + v-show="mouseHoverType==='mouseout'" + style="cursor: pointer" + :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'" + @mouseenter="mouseHoverType=$event.type" + /> + <svg-icon + v-show="mouseHoverType==='mouseenter'" + style="cursor: pointer" + :icon-class="!isExpandForm?'doubleDown':'doubleUp'" + @click="isExpandForm=!isExpandForm" + @mouseout="mouseHoverType=$event.type" + /> + </div> + </div> + + <div class="elTableDiv"> + <!-- <TableColumnSettings--> + <!-- :list1="tableColumnSettingsArray"--> + <!-- @tableColumnUpdate="tableColumnUpdate"--> + <!-- />--> + <el-table + :key="tableTimeStampKey" + ref="tableDataRef" + class="tableFixed" + :data="tableData" + :height="isExpandForm?tableHeight:(tableHeight+40)+'px'" + border + :row-class-name="tableRowClassName" + :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + @sort-change="sortChange" + > + <!-- <el-table-column--> + <!-- prop="RowNum"--> + <!-- width="50"--> + <!-- fixed--> + <!-- label="搴忓彿"--> + <!-- />--> + <!-- <el-table-column--> + <!-- prop="code"--> + <!-- label="璐ㄦ鏂规缂栫爜"--> + <!-- sortable="custom"--> + <!-- />--> + <!-- <el-table-column--> + <!-- prop="name"--> + <!-- label="璐ㄦ鏂规鍚嶇О"--> + <!-- sortable="custom"--> + <!-- />--> + <!-- <el-table-column--> + <!-- prop="status"--> + <!-- label="鏈夋晥鐘舵��"--> + <!-- sortable="custom"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.status==='Y'"><i--> + <!-- class="el-icon-success"--> + <!-- :style="{color:$store.state.settings.theme}"--> + <!-- style="margin-right:5px"--> + <!-- />鏄�--> + <!-- </div>--> + <!-- <div v-else-if="row.status==='N'"><i class="el-icon-info" style="margin-right: 5px" />鍚�</div>--> + <!-- <div v-else>/</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- <el-table-column--> + <!-- prop="checktype"--> + <!-- label="璐ㄦ绫诲瀷"--> + <!-- sortable="custom"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.checktype">{{ checktypeArr.find(i => i.code === row.checktype).name }}</div>--> + <!-- <div v-else>/</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- <el-table-column--> + <!-- prop="sampmethod"--> + <!-- label="鎶芥牱鏂瑰紡"--> + <!-- sortable="custom"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.sampmethod">{{ sampltypeArr.find(i => i.code === row.sampmethod).name }}</div>--> + <!-- <div v-else>/</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- <el-table-column--> + <!-- prop="suitobject"--> + <!-- label="閫傜敤瀵硅薄"--> + <!-- sortable="custom"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <div v-if="row.suitobject">{{ suitobjectArr.find(i => i.code === row.suitobject).name }}</div>--> + <!-- <div v-else>/</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + + <!-- <el-table-column--> + <!-- prop="username"--> + <!-- label="鍒涘缓浜哄憳"--> + <!-- sortable="custom"--> + <!-- />--> + <!-- <el-table-column--> + <!-- prop="lm_date"--> + <!-- label="鍒涘缓鏃堕棿"--> + <!-- width="160"--> + <!-- sortable="custom"--> + <!-- />--> + + <el-table-column + v-for="item in tableColumnSettingsArray" + v-if="item.show" + :key="item.id" + :sortable="item.sortable" + :prop="item.prop" + :min-width="item.minWidth" + :label="item.label" + :width="item.width" + show-tooltip-when-overflow + :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false" + > + <template slot-scope="{row}"> + <div v-if="!row[item.prop]">/</div> + <div v-else-if="item.prop==='checktype'"> + {{ checktypeArr.find(i => i.code === row[item.prop]).name }} + </div> + <div v-else-if="item.prop==='sampmethod'"> + {{ sampltypeArr.find(i => i.code === row[item.prop]).name }} + </div> + <!-- 閫傜敤瀵硅薄--> + <div v-else-if="item.prop==='suitobject'"> + {{ suitobjectArr.find(i => i.code === row.suitobject).name }} + </div> + <div v-else-if="item.prop==='status'"> + <div v-if="row.status==='Y'"><i + class="el-icon-success" + :style="{color:$store.state.settings.theme}" + style="margin-right:5px" + />鏄� + </div> + <div v-else-if="row.status==='N'"><i class="el-icon-info" style="margin-right: 5px" />鍚�</div> + <div v-else>/</div> + </div> + <div v-else>{{ row[item.prop] }}</div> + </template> + </el-table-column> + + <el-table-column + label="鎿嶄綔" + width="120" + fixed="right" + > + <template slot-scope="{row}"> + <div class="operationClass"> + <el-tooltip class="item" effect="dark" content="鏌ョ湅" placement="top"> + <i + class="el-icon-view" + :style="{color:$store.state.settings.theme}" + style="margin-right:15px;cursor: pointer;" + @click="check('check',row)" + /> + </el-tooltip> + <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top"> + <i + class="el-icon-edit-outline" + :style="{color:$store.state.settings.theme}" + @click="edit('edit',row)" + /> + </el-tooltip> + <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top"> + <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" /> + </el-tooltip> + </div> + </template> + </el-table-column> + </el-table> + </div> + <!--鍒嗛〉--> + <pagination + :total="total" + :page.sync="form.page" + :limit.sync="form.rows" + align="right" + layout="total,prev, pager, next,sizes" + popper-class="select_bottom" + @pagination="getQualityInspectionSearch" + /> + </div> + + <el-dialog + v-el-drag-dialog + :title="operation==='add'?'鏂板':operation==='check'?'鏌ョ湅':'缂栬緫'" + :visible.sync="dialogVisible" + width="1260px" + :close-on-click-modal="false" + top="5vh" + @closed="handleClose" + @close="handleClose" + > + + <!-- <div>--> + <!-- <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" style="margin: -20px 10px 20px 0" />鍩虹璧勬枡锛�--> + <!-- </div>--> + <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px"> + <el-form-item label="璐ㄦ鏂规缂栫爜" prop="qualityinsptcode"> + <el-input v-model="dialogForm.qualityinsptcode" :disabled="operation!=='add'" style="width: 200px" /> + </el-form-item> + <el-form-item label="璐ㄦ鏂规鍚嶇О" prop="qualityinsptname"> + <el-input v-model="dialogForm.qualityinsptname" style="width: 200px" /> + </el-form-item> + <br> + <el-form-item prop="status" label="鏈夋晥鐘舵��"> + <el-select + v-model="dialogForm.status" + style="width: 200px" + placeholder="璇烽�夋嫨" + :popper-append-to-body="false" + > + <el-option + v-for="item in whetherOrNot" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <br> + <el-form-item prop="checktype" label="璐ㄦ绫诲瀷"> + <el-radio-group v-model="dialogForm.checktype"> + <!-- <el-radio label="InCheck">鍏ュ巶妫�楠�</el-radio>--> + <!-- <el-radio label="OutCheck">鍑哄巶妫�楠�</el-radio>--> + <el-radio label="FirstCheck">棣栨妫�楠�</el-radio> + <el-radio label="PatroCheck">宸℃</el-radio> + <el-radio label="EndCheck">瀹屽伐妫�</el-radio> + </el-radio-group> + </el-form-item> + <br> + <el-form-item prop="sampmethod" label="鎶芥牱鏂瑰紡"> + <el-radio-group v-model="dialogForm.sampmethod" style="width: 200px;"> + <el-radio label="FIXED">鍥烘椂鎶芥</el-radio> + <el-radio label="SCARE">姣斾緥鎶芥</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item v-if="dialogForm.sampmethod==='FIXED'" label="鏍锋湰鏁伴噺" prop="sampnum"> + <el-input v-model="dialogForm.sampnum" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" /> + </el-form-item> + <el-form-item v-if="dialogForm.sampmethod==='SCARE'" label="鎶芥姣斾緥" prop="sampscale"> + <el-input v-model="dialogForm.sampscale" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 180px" /> + % + </el-form-item> + <br> + <el-form-item prop="suitobject" label="閫傜敤瀵硅薄"> + <el-radio-group v-model="dialogForm.suitobject" style="width: 200px;" @change="suitobjectChange"> + <el-radio label="PY">鐗╂枡绫诲埆</el-radio> + <el-radio label="P">鐗╂枡</el-radio> + </el-radio-group> + </el-form-item> + <el-form-item + prop="suitpart" + :label="dialogForm.suitobject==='P'?'閫傜敤鐗╂枡':'閫傜敤鐗╂枡绫诲埆'" + > + <el-select + v-model="dialogForm.suitpart" + style="width: 200px" + multiple + filterable + collapse-tags + placeholder="璇烽�夋嫨" + :popper-append-to-body="false" + > + <el-option + v-for="item in PartSelectArr" + v-if="dialogForm.suitobject==='P'" + :key="item.partcode" + :label="item.partcode +' / '+ item.partname" + :value="item.partcode" + /> + <el-option + v-for="item in StockTypeSelectArr" + v-if="dialogForm.suitobject==='PY'" + :key="item.code" + :label="item.code+' / '+item.name" + :value="item.code" + /> + </el-select> + </el-form-item> + <br> + <el-form-item + label="宸ュ簭鍚嶇О" + prop="stepcode" + > + <el-select + v-model="dialogForm.stepcode" + style="width: 200px" + filterable + placeholder="璇烽�夋嫨" + :popper-append-to-body="false" + > + <el-option + v-for="item in StepSelectArr" + :key="item.stepcode" + :label="item.stepname" + :value="item.stepcode" + /> + </el-select> + </el-form-item> + + <el-form-item label="妫�楠屾柟妗堟弿杩�"> + <el-input v-model="dialogForm.descr" type="textarea" :autosize="{ minRows: 2 }" /> + </el-form-item> + </el-form> + + <div style="display: flex;align-items: center;margin-bottom: 10px;"> + <div> + <i + class="el-icon-s-operation" + :style="{color:$store.state.settings.theme}" + style="margin:0 10px 0 0px;" + /> + </div> + <div>璐ㄦ鍒楄〃锛�</div> + <el-button + v-if="operation!=='check'" + v-waves + type="primary" + style="margin-left: 20px;" + icon="el-icon-circle-plus-outline" + @click="addZjlb" + >鏂板 + </el-button> + </div> + + <el-table + ref="tableDataRef2" + class="tableFixed" + :data="checkitem" + height="250" + style="height:250px" + border + :row-class-name="tableRowClassName" + highlight-current-row + :header-cell-style="this.$headerCellStyle" + :cell-style="this.$cellStyle" + > + <el-table-column + type="index" + width="50" + fixed + label="搴忓彿" + /> + <!-- <el-table-column--> + <!-- prop="jyxmbm"--> + <!-- width="105"--> + <!-- label="妫�楠岄」鐩紪鐮�"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <el-select--> + <!-- v-if="row.isVisible===1"--> + <!-- v-model="row.jyxmbm"--> + <!-- filterable--> + <!-- placeholder="璇烽�夋嫨"--> + <!-- @change="val=>tableChange(val,row)"--> + <!-- >--> + <!-- <el-option--> + <!-- v-for="item in PartSelectArr"--> + <!-- :key="item.partname"--> + <!-- :label="item.partcode"--> + <!-- :value="item.partname"--> + <!-- />--> + <!-- </el-select>--> + <!-- <div v-if="row.isVisible===0">{{ row.jyxmbm }}</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + <!-- <el-table-column--> + <!-- prop="jyxmmc"--> + <!-- width="105"--> + <!-- label="妫�楠岄」鐩悕绉�"--> + <!-- >--> + <!-- <template slot-scope="{row}">--> + <!-- <el-select--> + <!-- v-if="row.isVisible===1"--> + <!-- v-model="row.jyxmmc"--> + <!-- filterable--> + <!-- placeholder="璇烽�夋嫨"--> + <!-- @change="val=>tableChange(val,row)"--> + <!-- >--> + <!-- <el-option--> + <!-- v-for="item in PartSelectArr"--> + <!-- :key="item.partname"--> + <!-- :label="item.partcode"--> + <!-- :value="item.partname"--> + <!-- />--> + <!-- </el-select>--> + <!-- <div v-if="row.isVisible===0">{{ row.jyxmmc }}</div>--> + <!-- </template>--> + <!-- </el-table-column>--> + + <el-table-column + prop="stepcheckitem_code" + width="250" + label="妫�楠岄」鐩� / 缂栫爜" + > + <template slot-scope="{row}"> + <el-select + v-if="row.isVisible===1" + v-model="row.stepcheckitem_code" + filterable + placeholder="璇烽�夋嫨" + style="width: 100%;" + > + <!-- @change="val=>tableChange(val,row)"--> + <el-option + v-for="item in CheckItemSelectArr" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + <div v-else>{{ + CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code).name + }} + </div> + </template> + </el-table-column> + + <el-table-column + prop="required" + width="85" + label="鏄惁蹇呭~" + > + <template slot-scope="{row}"> + <el-select + v-if="row.isVisible===1" + v-model="row.required" + filterable + placeholder="璇烽�夋嫨" + > + <el-option + v-for="item in whetherOrNot" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + <div v-else>{{ row.required === 'Y' ? '鏄�' : '鍚�' }}</div> + </template> + </el-table-column> + <el-table-column + prop="numberjudge" + width="85" + label="鏁板�煎垽瀹�" + > + <template slot-scope="{row}"> + <el-select + v-if="row.isVisible===1" + v-model="row.numberjudge" + filterable + placeholder="璇烽�夋嫨" + @change="val=>szpdChange(val,row)" + > + <el-option + v-for="item in whetherOrNot" + :key="item.code" + :label="item.name" + :value="item.code" + /> + </el-select> + <div v-else>{{ row.numberjudge === 'Y' ? '鏄�' : '鍚�' }}</div> + </template> + </el-table-column> + <el-table-column + prop="unit" + label="鍗曚綅" + > + <template slot-scope="{row}"> + <!-- <el-select--> + <!-- v-if="row.isVisible===1"--> + <!-- v-model="row.unit"--> + <!-- filterable--> + <!-- :disabled="row.numberjudge==='N'"--> + <!-- placeholder="璇烽�夋嫨"--> + <!-- >--> + <!-- <el-option--> + <!-- v-for="item in UomSelectArr"--> + <!-- :key="item.code"--> + <!-- :label="item.name"--> + <!-- :value="item.code"--> + <!-- />--> + <!-- </el-select>--> + <!-- <div v-if="row.isVisible===0">{{--> + <!-- row.numberjudge === 'Y' ? UomSelectArr.find(i => i.code === row.unit).name : '/'--> + <!-- }}--> + <!-- </div>--> + <el-input + v-if="row.isVisible===1" + v-model="row.unit" + placeholder="璇烽�夋嫨" + :disabled="row.numberjudge==='N'" + /> + <div v-else>{{ row.unit ? row.unit : '/' }}</div> + </template> + </el-table-column> + <el-table-column + prop="decimalnum" + width="85" + label="灏忔暟浣嶆暟" + > + <template slot-scope="{row}"> + <!-- <el-select--> + <!-- v-if="row.isVisible===1"--> + <!-- v-model="row.decimalnum"--> + <!-- filterable--> + <!-- placeholder="璇烽�夋嫨"--> + <!-- >--> + <!-- <el-option--> + <!-- v-for="item in PartSelectArr"--> + <!-- :key="item.partname"--> + <!-- :label="item.partcode"--> + <!-- :value="item.partname"--> + <!-- />--> + <!-- </el-select>--> + <el-input + v-if="row.isVisible===1" + v-model="row.decimalnum" + :disabled="row.numberjudge==='N'" + oninput="value=value.replace(/[^0-9]/g,'')" + placeholder="璇疯緭鍏�" + /> + <div v-else>{{ row.numberjudge === 'Y' ? row.decimalnum : '/' }}</div> + </template> + </el-table-column> + <el-table-column + prop="standvalue" + label="鏍囧噯鍊�" + > + <template slot-scope="{row}"> + <el-input + v-if="row.isVisible===1" + v-model="row.standvalue" + :disabled="row.numberjudge==='N'" + oninput="value=value.replace(/[^0-9.]/g,'')" + placeholder="璇疯緭鍏�" + /> + <div v-else>{{ row.standvalue ? row.standvalue : '/' }}</div> + </template> + </el-table-column> + <el-table-column + prop="uppervalue" + label="涓婇檺鍊�" + > + <template slot-scope="{row}"> + <el-input + v-if="row.isVisible===1" + v-model="row.uppervalue" + :disabled="row.numberjudge==='N'" + oninput="value=value.replace(/[^0-9.]/g,'')" + placeholder="璇疯緭鍏�" + /> + <div v-else>{{ row.uppervalue ? row.uppervalue : '/' }}</div> + </template> + </el-table-column> + <el-table-column + prop="lowervalue" + label="涓嬮檺鍊�" + > + <template slot-scope="{row}"> + <el-input + v-if="row.isVisible===1" + v-model="row.lowervalue" + :disabled="row.numberjudge==='N'" + oninput="value=value.replace(/[^0-9.]/g,'')" + placeholder="璇疯緭鍏�" + /> + <div v-else>{{ row.lowervalue ? row.lowervalue : '/' }}</div> + </template> + </el-table-column> + <el-table-column + prop="stepcheckitem_desc" + label="鎻忚堪" + show-tooltip-when-overflow + > + <template slot-scope="{row}"> + <el-input + v-if="row.isVisible===1" + v-model="row.stepcheckitem_desc" + placeholder="璇疯緭鍏�" + /> + <div v-else>{{ row.stepcheckitem_desc ? row.stepcheckitem_desc : '/' }}</div> + </template> + </el-table-column> + <el-table-column + v-if="operation!=='check'" + label="鎿嶄綔" + width="120" + fixed="right" + > + <template slot-scope="{row}"> + <div class="operationClass"> + <el-button v-if="row.isVisible===1" v-waves type="text" @click="saveZjlbRow(row)">纭</el-button> + <el-button v-if="row.isVisible===1&&isCancel" v-waves type="text" @click="cancelZjlbRow(row)">鍙栨秷 + </el-button> + <el-button v-if="row.isVisible!==1" v-waves type="text" @click="editZjlbRow(row)">缂栬緫</el-button> + <el-button v-if="row.isVisible!==1" v-waves type="text" @click="delZjlbRow(row)">鍒犻櫎</el-button> + </div> + </template> + </el-table-column> + </el-table> + + <span slot="footer" class="dialog-footer"> + <div class="footerButton"> + <el-button v-if="operation!=='check'" v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button> + <el-button + v-if="operation!=='check'" + v-waves + :loading="$store.state.app.buttonIsDisabled" + :disabled="$store.state.app.buttonIsDisabled" + type="primary" + @click="dialogVisibleConfirm" + >淇� 瀛�</el-button> + <el-button v-if="operation==='check'" v-waves @click="dialogVisibleCancel">杩� 鍥�</el-button> + </div> + </span> + </el-dialog> + + </div> +</template> + +<script> +import Pagination from '@/components/Pagination' +import { validateCode } from '@/utils/global' +import elDragDialog from '@/directive/el-drag-dialog' +import waves from '@/directive/waves' +import { + QualityInspectionAddEditSave, + QualityInspectionDelete, + QualityInspectionSearch, QualityInspectionSeeEdit, QualityStepCheckItemSelect +} from '@/api/QualityManagement' +import TableColumnSettings from '@/components/TableColumnSettings' +import { PartSelect, TMaterielClassTree } from '@/api/ProductModel' +import { StepData } from '@/api/GeneralBasicData' + +export default { + name: 'QualityPlaning', + components: { + Pagination, TableColumnSettings + }, + directives: { elDragDialog, waves }, + data() { + return { + mouseHoverType: 'mouseout', + isExpandForm: false, + mainHeight: 0, + tableHeight: 0, + form: { + qualityinsptcode: '', // 璐ㄦ鏂规缂栫爜 + qualityinsptname: '', // 璐ㄦ鏂规鍚嶇О + status: '', // 鏈夋晥鐘舵�� + checktype: '', // 璐ㄦ绫诲瀷 + sampltype: '', // 鎶芥牱鏂瑰紡 + suitobject: '', // 閫傜敤瀵硅薄 + prop: 'lm_date', // 鎺掑簭瀛楁 + order: 'desc', // 鎺掑簭瀛楁 + page: 1, // 绗嚑椤� + rows: 20 // 姣忛〉澶氬皯鏉� + }, + checktypeArr: [ + // { code: 'InCheck', name: '鍏ュ巶妫�楠�' }, + // { code: 'OutCheck', name: '鍑哄巶妫�楠�' }, + { code: 'FirstCheck', name: '棣栨' }, + { code: 'PatroCheck', name: '宸℃' }, + { code: 'EndCheck', name: '瀹屽伐妫�' } + ], + sampltypeArr: [ + { code: 'FIXED', name: '鍥哄畾鎶芥' }, + { code: 'SCARE', name: '姣斾緥鎶芥' } + ], + suitobjectArr: [ + { code: 'P', name: '鐗╂枡' }, + { code: 'PY', name: '鐗╂枡绫诲瀷' } + ], + total: 10, + tableData: [], + tableColumnSettingsArray: [ + // { minWidth: 50, width: false, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず + { minWidth: 25, width: 50, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom + { + minWidth: 130, + width: false, + prop: 'code', + label: '璐ㄦ鏂规缂栫爜', + id: 3, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: 130, + width: false, + prop: 'name', + label: '璐ㄦ鏂规鍚嶇О', + id: 4, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: 110, + width: false, + prop: 'status', + label: '鏈夋晥鐘舵��', + id: 5, + show: true, + fixed: false, + sortable: true + }, { + minWidth: 110, + width: false, + prop: 'checktype', + label: '璐ㄦ绫诲瀷', + id: 6, + show: true, + fixed: false, + sortable: true + }, { + minWidth: 110, + width: false, + prop: 'sampmethod', + label: '鎶芥牱鏂瑰紡', + id: 7, + show: true, + fixed: false, + sortable: true + }, + + { + minWidth: 110, + width: false, + prop: 'suitobject', + label: '閫傜敤瀵硅薄', + id: 8, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: false, + width: 110, + prop: 'stepcode', + label: '宸ュ簭缂栫爜', + id: 9, + show: false, + fixed: false, + sortable: true + }, { + minWidth: 110, + width: false, + prop: 'stepname', + label: '宸ュ簭鍚嶇О', + id: 10, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: false, + width: 110, + prop: 'username', + label: '鍒涘缓浜哄憳', + id: 11, + show: true, + fixed: false, + sortable: true + }, + { + minWidth: false, + width: 160, + prop: 'lm_date', + label: '鍒涘缓鏃堕棿', + id: 12, + show: true, + fixed: false, + sortable: true + } + ], + tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key + dialogVisible: false, + dialogForm: { + qualityinsptcode: '', // 璐ㄦ鏂规缂栫爜 + qualityinsptname: '', // 璐ㄦ鏂规鍚嶇О + status: 'Y', // 鏈夋晥鐘舵�� + checktype: 'FirstCheck', // 妫�楠岀被鍨� + sampmethod: 'FIXED', // 鎶芥鏂瑰紡 + sampnum: '', // 鏍锋湰鏁伴噺 + sampscale: '', // 鎶芥姣斾緥 + suitobject: 'P', // 閫傜敤瀵硅薄 + suitpart: [], // 閫傜敤鐗╂枡 + stepcode: '', // 宸ュ簭 + descr: '' // /鎻忚堪 + }, + operation: '', + dialogFormRules: { + status: [ + { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] } + ], + qualityinsptcode: [ + { required: true, validator: validateCode, trigger: ['blur', 'change'] } + ], + qualityinsptname: [ + { required: true, message: '璇疯緭鍏ヨ川妫�鏂规鍚嶇О', trigger: ['blur', 'change'] } + ], + checktype: [ + { required: true, message: '璇烽�夋嫨璐ㄦ鏂瑰紡', trigger: ['blur', 'change'] } + ], + sampmethod: [ + { required: true, message: '璇烽�夋嫨鎶芥牱鏂瑰紡', trigger: ['blur', 'change'] } + ], + sampnum: [ + { required: true, message: '璇疯緭鍏ユ牱鏈暟閲�', trigger: ['blur', 'change'] } + ], + sampscale: [ + { required: true, message: '璇疯緭鍏ユ娊妫�姣斾緥', trigger: ['blur', 'change'] } + ], + suitobject: [ + { required: true, message: '璇烽�夋嫨閫傜敤瀵硅薄', trigger: ['blur', 'change'] } + ], + suitpart: [ + { required: true, message: '璇烽�夋嫨鐗╂枡鎴栫墿鏂欑被鍒�', trigger: ['blur', 'change'] } + ], + stepcode: [ + { required: true, message: '璇烽�夋嫨宸ュ簭鍚嶇О', trigger: ['blur', 'change'] } + ] + }, + checkitem: [], + + whetherOrNot: [ // 鏄垨鍚� + { code: 'Y', name: '鏄�' }, + { code: 'N', name: '鍚�' } + ], + + PartSelectArr: [], // 鐗╂枡涓嬫媺鏁扮粍 + StockTypeSelectArr: [], // 鐗╂枡绫诲埆涓嬫媺鏁扮粍 + UomSelectArr: [], // 鍗曚綅涓嬫媺鏁扮粍 + CheckItemSelectAllArr: [], // 妫�楠岄」鐩�(鎵�鏈�) + CheckItemSelectArr: [], // 妫�楠岄」鐩� + StepSelectArr: [], // 宸ュ簭鍚嶇О涓嬫媺鎵�鏈� + + isCancel: true// 鏄惁鍙彇娑� + + } + }, + + activated() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + this.handleRequest() + }, + created() { + this.handleRequest() + }, + mounted() { + window.addEventListener('resize', this.getHeight) + this.getHeight() + }, + methods: { + tableColumnUpdate(val, isCopyTrue) { + if (isCopyTrue) { + this.tableColumnSettingsArray = val + } + this.tableTimeStampKey = new Date().getTime() + this.$refs.tableDataRef.doLayout() + }, + handleRequest() { + this.getQualityInspectionSearch().then(res => { + if (res.code === '200') { + // this.getUomSelect() + this.getStepCheckItemSelect() + this.getPartSelect() + this.getStockTypeSelect() + this.getStepSelect() + } + }) + }, + async getStepSelect() { + const { data: res } = await StepData() + this.StepSelectArr = res + }, + async getQualityInspectionSearch() { + const res = await QualityInspectionSearch(this.form) + this.tableData = res.data + this.total = res.count + + return { code: res.code } + }, + + // 鎺掑簭鏀瑰彉鏃� + sortChange({ column, prop, order }) { + if (order === 'descending') { + order = 'desc' + } else if (order === 'ascending') { + order = 'asc' + } else { + order = 'desc' + } + this.form.order = order + this.form.prop = prop + this.getQualityInspectionSearch() + }, + // 鏌ヨ + search() { + this.getQualityInspectionSearch() + }, + // 閲嶇疆 + reset() { + this.form.qualityinsptcode = '' + this.form.qualityinsptname = '' + this.form.status = '' + this.form.checktype = '' + this.form.sampltype = '' + this.form.suitobject = '' + this.getQualityInspectionSearch() + }, + + // 鏂板鎸夐挳 + add(operation) { + this.operation = operation + this.dialogVisible = true + }, + // 鏌ョ湅 + async check(operation, row) { + this.operation = operation + this.dialogVisible = true + + const { data: res } = await QualityInspectionSeeEdit({ qualityinsptcode: row.code }) + + this.$nextTick(() => { + this.dialogForm.qualityinsptcode = row.code + this.dialogForm.qualityinsptname = row.name + this.dialogForm.status = row.status + this.dialogForm.stepcode = row.stepcode + this.dialogForm.checktype = row.checktype + this.dialogForm.sampmethod = row.sampmethod + // this.dialogForm.sampscare = row.sampscare + if (this.dialogForm.sampmethod === 'FIXED') { + this.dialogForm.sampnum = row.sampscare + } else { + this.dialogForm.sampscale = row.sampscare + } + this.dialogForm.suitobject = row.suitobject + this.dialogForm.suitpart = row.suitpart.split(',') + this.dialogForm.descr = row.descr + this.checkitem = res + + this.$refs.tableDataRef2.doLayout() + }) + }, + // 淇敼鎸夐挳 + async edit(operation, row) { + this.operation = operation + this.dialogVisible = true + + const { data: res } = await QualityInspectionSeeEdit({ qualityinsptcode: row.code }) + + const tempCodeArr = [] + res.forEach(i => { + let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗� + number = number === 0 ? (10 + Math.random()) : number + i.number = number + i.isVisible = 0 + tempCodeArr.push(i.stepcheckitem_code) + }) + + this.CheckItemSelectArr = [] + this.CheckItemSelectAllArr.forEach(i => { + if (!tempCodeArr.includes(i.code)) { + this.CheckItemSelectArr.push(i) + } + }) + + this.$nextTick(() => { + this.dialogForm.qualityinsptcode = row.code + this.dialogForm.qualityinsptname = row.name + this.dialogForm.status = row.status + this.dialogForm.stepcode = row.stepcode + this.dialogForm.checktype = row.checktype + this.dialogForm.sampmethod = row.sampmethod + if (this.dialogForm.sampmethod === 'FIXED') { + this.dialogForm.sampnum = row.sampscare + } else { + this.dialogForm.sampscale = row.sampscare + } + this.dialogForm.suitobject = row.suitobject + this.dialogForm.suitpart = row.suitpart.split(',') + this.dialogForm.descr = row.descr + this.checkitem = res + // console.log(this.checkitem, 2) + this.$refs.tableDataRef2.doLayout() + }) + }, + // 鍒犻櫎鎸夐挳 + async del(row) { + this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + QualityInspectionDelete({ qualityinsptcode: row.code }).then(res => { + if (res.code === '200') { + this.$message.success('鍒犻櫎鎴愬姛!') + if (this.form.page > 1 && this.tableData.length === 1) { + this.form.page-- + } + this.getQualityInspectionSearch() + } + }) + }).catch(() => { + this.$message.info('宸插彇娑堝垹闄�') + }) + }, + // 鐗╂枡涓嬫媺 + async getPartSelect() { + const { data: res } = await PartSelect() + this.PartSelectArr = res + }, + // 鐗╂枡绫诲埆涓嬫媺 + async getStockTypeSelect() { + const { data: res } = await TMaterielClassTree() + this.StockTypeSelectArr = res + }, + + // 閫傜敤瀵硅薄鍊兼敼鍙樻槸 + suitobjectChange() { + this.dialogForm.suitpart = [] + }, + // 鑾峰彇妫�楠岄」鐩笅鎷夋帴鍙� + async getStepCheckItemSelect() { + const { data: res } = await QualityStepCheckItemSelect() + + res.forEach(i => { + this.CheckItemSelectArr.push({ + code: i.code, + name: i.name + ' / ' + i.code, + descr: i.descr + }) + }) + this.CheckItemSelectAllArr = JSON.parse(JSON.stringify(this.CheckItemSelectArr)) + }, + // 鏁板�煎垽瀹� + szpdChange(val, row) { + if (val === 'N') { + row.unit = '' + row.decimalnum = '' + row.standvalue = '' + row.uppervalue = '' + row.lowervalue = '' + } + }, + // 琛ㄦ牸鍊兼敼鍙樻椂 + tableChange(val, row) { + console.log(val, row) + }, + // 璐ㄦ鍒楄〃 鏂板琛� + addZjlb() { + if (this.checkitem.find(i => i.isVisible === 1)) { + return this.$message.info('璇峰厛淇濆瓨褰撳墠琛屾暟鎹紒') + } + + let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗� + number = number === 0 ? (10 + Math.random()) : number + + this.checkitem.push({ + number, + isVisible: 1, + // jyxmbm: '', + // jyxmmc: '', + stepcheckitem_code: '', // 妫�楠岄」鐩紪鐮� + required: 'Y', // 鏄惁蹇呭~ + numberjudge: 'Y', // 鏄惁鏁板�煎垽鏂� + unit: '', // 鍗曚綅 + decimalnum: '', // 灏忔暟浣嶆暟 + standvalue: '', // 鏍囧噯鍊� + uppervalue: '', // 涓婇檺鍊� + lowervalue: '', // 涓嬮檺鍊� + stepcheckitem_desc: ''// 妫�楠岄」鐩弿杩� + }) + }, + // 鍒犻櫎璐ㄦ鍒楄〃琛� + delZjlbRow(row) { + const t = this.CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code) + this.CheckItemSelectArr.unshift(t) + this.checkitem = this.checkitem.filter(i => i.number !== row.number) + }, + // 淇濆瓨琛� + saveZjlbRow(row) { + if (!row.stepcheckitem_code) { + return this.$message.info('妫�楠岄」鐩笉鑳戒负绌猴紒') + } + if (row.numberjudge === 'Y' && !row.unit) { + return this.$message.info('鍗曚綅涓嶈兘涓虹┖锛�') + } + if (row.numberjudge === 'Y' && !row.decimalnum) { + return this.$message.info('灏忔暟浣嶆暟涓嶈兘涓虹┖锛�') + } + if (row.numberjudge === 'Y') { + if (!row.standvalue && !row.uppervalue && !row.lowervalue) { + return this.$message.info('鏍囧噯鍊笺�佷笂闄愬�笺�佷笅闄愬�煎叾涓竴椤逛笉鑳戒负绌猴紒') + } + } + this.CheckItemSelectArr = this.CheckItemSelectArr.filter(i => i.code !== row.stepcheckitem_code) + row.isVisible = 0 + + this.isCancel = true + }, + // 鍙栨秷琛� + cancelZjlbRow(row) { + this.checkitem = this.checkitem.filter(i => i.number !== row.number) + }, + // 缂栬緫琛� + editZjlbRow(row) { + if (this.checkitem.find(i => i.isVisible === 1)) { + return this.$message.info('璇峰厛淇濆瓨褰撳墠琛屾暟鎹紒') + } + row.isVisible = 1 + this.isCancel = false + const t = this.CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code) + this.CheckItemSelectArr.unshift(t) + }, + // 瀵硅瘽妗嗗叧闂簨浠� + handleClose() { + this.dialogForm = { + qualityinsptcode: '', + qualityinsptname: '', + status: 'Y', + checktype: 'FirstCheck', + sampmethod: 'FIXED', + sampnum: '', + stepcode: '', + sampscale: '', + suitobject: 'P', + suitpart: [], + descr: '' + } + + this.isCancel = true + this.checkitem = [] + this.CheckItemSelectArr = JSON.parse(JSON.stringify(this.CheckItemSelectAllArr)) + this.$refs.dialogForm.clearValidate() + }, + // 瀵硅瘽妗嗗彇娑� + dialogVisibleCancel() { + this.dialogVisible = false + }, + // 瀵硅瘽妗嗙‘璁� + dialogVisibleConfirm() { + this.$refs.dialogForm.validate(valid => { + if (valid) { + if (this.checkitem.length < 1) { + return this.$message.info('璐ㄦ鍒楄〃涓嶈兘涓虹┖锛�') + } + + const checkitem = [] + this.checkitem.forEach((item, index) => { + checkitem.push({ + stepcheckitem_seq: index + 1, + stepcheckitem_code: item.stepcheckitem_code, + stepcheckitem_desc: item.stepcheckitem_desc, + required: item.required, + numberjudge: item.numberjudge, + unit: item.unit, + decimalnum: item.decimalnum, + standvalue: item.standvalue, + uppervalue: item.uppervalue, + lowervalue: item.lowervalue + }) + }) + const data = { + qualityinsptcode: this.dialogForm.qualityinsptcode, + qualityinsptname: this.dialogForm.qualityinsptname, + status: this.dialogForm.status, + stepcode: this.dialogForm.checktype === 'InCheck' || this.dialogForm.checktype === 'OutCheck' ? '' : this.dialogForm.stepcode, + checktype: this.dialogForm.checktype, + sampmethod: this.dialogForm.sampmethod, + sampscare: this.dialogForm.sampnum ? this.dialogForm.sampnum : this.dialogForm.sampscale, + suitobject: this.dialogForm.suitobject, + suitpart: this.dialogForm.suitpart.join(','), + type: this.operation === 'add' ? 'Add' : 'Update', + descr: this.dialogForm.descr, + checkitem + } + + this.$store.state.app.buttonIsDisabled = true + QualityInspectionAddEditSave(data).then(res => { + if (res.code === '200') { + this.$message.success(this.operation === 'add' ? '淇濆瓨鎴愬姛锛�' : '淇敼鎴愬姛锛�') + this.dialogVisible = false + this.getQualityInspectionSearch() + this.$store.state.app.buttonIsDisabled = false + } else { + this.$message.error(this.operation === 'add' ? '淇濆瓨澶辫触锛�' : '淇敼澶辫触锛�') + } + }) + } + }) + }, + // 鑾峰彇椤甸潰楂樺害 + getHeight() { + this.$nextTick(() => { + this.mainHeight = window.innerHeight - 85 + this.tableHeight = this.mainHeight - 255 + this.$refs.tableDataRef.doLayout() + }) + }, + tableRowClassName({ row, rowIndex }) { + return 'custom-row' + } + } +} +</script> + +<style scoped lang="scss"> +::v-deep .el-select__caret { + display: flex; + align-items: center; + justify-content: center; +} +</style> -- Gitblit v1.9.3