From ed40d9fbd886c5c0fb0f3b0adeb1be1b3240a1dc Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期三, 30 八月 2023 18:02:18 +0800 Subject: [PATCH] modified: src/api/inspection/rawmaterial.js modified: src/layout/components/Sidebar/SidebarItem.vue modified: src/router/index.js modified: src/views/chart/work/index.vue modified: src/views/inspectionManagement/reportForInspection/index.vue --- src/views/inspectionManagement/reportForInspection/index.vue | 434 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 399 insertions(+), 35 deletions(-) diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue index 3ff10a1..c70d2a6 100644 --- a/src/views/inspectionManagement/reportForInspection/index.vue +++ b/src/views/inspectionManagement/reportForInspection/index.vue @@ -1,8 +1,9 @@ <template> <div class="content-main"> + <div class="rawPage" v-if="!showNewPage"> <div class="top-bar"> <el-form ref="form" :inline="true" :model="searchData"> - <el-form-item label="鏉愭枡缂栫爜:" class="sermargin"> + <el-form-item label="鏉愭枡缂栫爜:" position="left" class="sermargin"> <el-input v-model="searchData.code" class="input-form" @@ -39,9 +40,51 @@ <el-form-item> <el-button type="primary" @click="search">鏌ヨ</el-button> <el-button type="primary" plain @click="reset">閲嶇疆</el-button> + <el-button type="primary" icon="el-icon-plus" @click="addReportVisible = true">鏂板</el-button> </el-form-item> </el-form> </div> + <el-dialog + title="鏂板鍘熸潗鏂欐姤妫�" + :visible.sync="addReportVisible" + width="40%"> + <el-form v-model="insertData" :inline="true" label-position="right" label-width="80px"> + <el-form-item label="鏉ユ枡鏃ユ湡:"> + <el-date-picker + v-model="insertData.fromDate" + type="date" + value-format="yyyy-MM-dd" + ></el-date-picker> + </el-form-item> + <el-form-item label="渚涜揣鍟嗗悕绉�:"> + <el-input v-model="insertData.supplierName" /> + </el-form-item> + <el-form-item label="鏉愭枡鍚嶇О:"> + <el-select v-model="insertData.mName" placeholder="璇烽�夋嫨鏉愭枡鍚嶇О"> + <el-option v-for="(item,index) in 5" :key="index" :label="item" :value="item"></el-option> + </el-select> + </el-form-item> + <el-form-item label="鏉愭枡缂栫爜:"> + <el-input disabled v-model="insertData.mCode" /> + </el-form-item> + <el-form-item label="瑙勬牸鍨嬪彿:"> + <el-cascader + v-model="insertData.specificationsNumber" + :options="childrenOptions" + @change="handleChange"></el-cascader> + </el-form-item> + <el-form-item label="鍗曚綅:"> + <el-input type="text" v-model="insertData.unit" /> + </el-form-item> + <el-form-item label="鏁伴噺:"> + <el-input type="number" v-model="insertData.num" /> + </el-form-item> + </el-form> + <span slot="footer" class="dialog-footer"> + <el-button @click="addReportVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="insert()">纭� 瀹�</el-button> + </span> + </el-dialog> <div class="library-table"> <div class="table-header"> <div class="search-bar"> @@ -50,7 +93,7 @@ </el-radio-group> </div> <div class="generateInsp"> - <el-button type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button> + <el-button @click="addReportBtn" type="primary" size="mini" icon="el-icon-document" style="background-color: rgb(1, 102, 226);">鐢熸垚鎶ユ鍗�</el-button> </div> </div> <div class="table-box"> @@ -61,11 +104,13 @@ :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" :data="inspectionTable" style="width: 100%" + @selection-change="handleSelectionChange" > <el-table-column type="selection" - min-width="10%" - /> + :selectable="checkSelect" + min-width="5%"> + </el-table-column> <el-table-column type="index" label="搴忓彿" @@ -122,15 +167,22 @@ min-width="8%" /> <el-table-column - prop="condition" + prop="type" label="鐘舵��" min-width="8%" > <template slot-scope="scope"> - <span :style="{ color: scope.row.condition === 1 ? 'green' : 'red' }"> - {{ scope.row.condition === 1 ? '宸叉娴�':'鏈娴�' }} + <span :style="{ color: scope.row.type === 1 ? 'green' : 'red' }"> + {{ scope.row.type === 1 ? '宸叉姤妫�':'鏈姤妫�' }} </span> </template> + </el-table-column> + <el-table-column + label="鎿嶄綔" + min-width="8%"> + <template slot-scope="scope"> + <el-button type="text" size="small" @click="removeFun(scope.row,scope.$index)">鍒犻櫎</el-button> + </template> </el-table-column> </el-table> <!-- 鍒嗛〉鍣� --> @@ -147,14 +199,156 @@ </div> </div> </div> - </div> + </div> + <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="30%"> + <el-form :model="addInspectionForm" :rules="addInspectionFormRules" rule="addInspectionForm"> + <el-form-item label="妫�楠屾棩鏈�" label-width="100px" prop="inspectionDate"> + <el-date-picker + v-model="addInspectionForm.inspectionDate" + type="daterange" + value-format="yyyy-MM-dd" + range-separator="鑷�" + start-placeholder="寮�濮嬫棩鏈�" + end-placeholder="缁撴潫鏃ユ湡"> + </el-date-picker> + </el-form-item> + <el-form-item label="鐗堟湰" label-width="100px" prop="version"> + <el-select v-model="addInspectionForm.version" placeholder="璇烽�夋嫨鐗堟湰"> + <el-option v-for="(item,index) in 5" :key="index" :value="item" :label="item"></el-option> + </el-select> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="resetForm('addInspectionForm')">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmBtn('addInspectionForm')">纭� 瀹�</el-button> + </div> + </el-dialog> + + <!-- 鐢熸垚鎶ユ鍗� --> + <div class="newPage" v-if="showNewPage"> + <!-- 鏂板椤甸潰 --> + <div class="inspectionForm"> + <el-form :model="inspectionForm" label-position="right" label-width="100px" size="mini" > + <div class="formwrapper"> + <el-row> + <el-col :span="8"> + <el-form-item label="鏉ユ枡鏃ユ湡锛�"> + <el-input style="width: 180px;" :value="inspectionForm.formTime" disabled autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="渚涘簲鍟嗗悕绉帮細"> + <el-input style="width: 180px;" :value="inspectionForm.supplier" disabled autocomplete="off" /> </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鏍峰搧缂栧彿锛�"> + <el-input style="width: 180px;" :value="inspectionForm.code" disabled autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row > + <el-col :span="8"> + <el-form-item label="鏍峰搧鍚嶇О锛�" > + <el-input style="width: 180px;" :value="inspectionForm.name" disabled autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="瑙勬牸鍨嬪彿锛�"> + <el-input style="width: 180px;" :value="inspectionForm.specifications" disabled autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鍗曚綅锛�"> + <el-input style="width: 180px;" :value="inspectionForm.unit" disabled autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + <el-row > + <el-col :span="8"> + <el-form-item label="鏁伴噺锛�" > + <el-input style="width: 180px;" :value="inspectionForm.num" disabled autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鎶ユ鏃ユ湡锛�" > + <el-input style="width: 180px;" :value="inspectionForm.endTime" disabled autocomplete="off" /> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鎶ユ浜猴細"> + <el-input style="width: 180px;" :value="inspectionForm.userName" disabled autocomplete="off" /> + </el-form-item> + </el-col> + </el-row> + </div> + </el-form> + </div> + <div class="inspectionProject"> + <div class="header"> + <span style="font-size: 14px">妫�楠岄」鐩�</span> + <div> + <!-- <el-button type="primary" plain size="mini">淇濆瓨</el-button> --> + <el-button @click="showNewPage = false" type="primary" plain size="mini" icon="el-icon-back">杩斿洖</el-button> + </div> + </div> + <el-table + :max-height="800" + :cell-style="{textAlign: 'center'}" + :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}" + :data="inspectionItems"> + <el-table-column type="index" label="搴忓彿" width="60"></el-table-column> + <el-table-column prop="name" label="椤圭洰" width="250"></el-table-column> + <el-table-column prop="unit" label="鍗曚綅" width="125"></el-table-column> + <el-table-column prop="required" label="鏍囧噯鍊�" width="125"></el-table-column> + <el-table-column prop="internal" label="鍐呮祴鍊�" width="125"></el-table-column> + <el-table-column prop="testValue" label="妫�楠屽��" width="125"></el-table-column> + <el-table-column prop="userName" label="妫�楠屼汉"> + <template slot-scope="scope"> + <el-select @blur="blurOptions(scope.row)" v-model="scope.row.check" size="small" slot="append" style="width: 260px;"> + <el-option v-for="(item,index) in checkeroptions" :key="index" :value="item.id" :label="item.name"></el-option> + </el-select> + </template> + </el-table-column> + <el-table-column prop="device" label="璇曢獙璁惧"> + <template slot-scope="scope"> + <el-select @blur="blurOptions(scope.row)" v-model="scope.row.device" size="small" slot="append" style="width: 260px;"> + <el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.id" :label="item.equipmentName"></el-option> + </el-select> + </template> + </el-table-column> + </el-table> + </div> + </div> + </div> </template> <script> -import {getRawMaterialList } from '@/api/inspection/rawmaterial' +import { getRawMaterialList, + addInspect, + selectInspectsListById, + selectUser, + selectEquipment, + deleteMaterial, + addMaterial + } from '@/api/inspection/rawmaterial' export default { data() { return { + userName: "", + devices: "", + addInspectionForm: { + inspectionDate: ['2023-08-01','2023-08-31'], + version: 5 + }, + addInspectionFormRules: { + inspectionDate: [{required: true, message: '璇烽�夋嫨鏃ユ湡鍖洪棿', trigger: 'change' }], + }, + addReportDialog: false, + insertData:{}, + addReportVisible: false, + checked: false, + resultData : {}, + checkData:[], form: [], searchData: { code: '', @@ -162,27 +356,62 @@ state: '', date: '' }, + childrenOptions: [{ + value: 'zhinan', + label: '鎸囧崡', + children: [{ + value: 'shejiyuanze', + label: '璁捐鍘熷垯', + children: [{ + value: 'yizhi', + label: '涓�鑷�' + }, { + value: 'fankui', + label: '鍙嶉' + }, { + value: 'xiaolv', + label: '鏁堢巼' + }, { + value: 'kekong', + label: '鍙帶' + }] + }] + }], options: [{ - value: 0, + value: null, label: '鍏ㄩ儴' }, { value: 1, - label: '宸叉楠�' + label: '宸叉姤妫�' }, { - value: 2, - label: '鏈楠�' + value: 0, + label: '鏈姤妫�' + }], + deviceoptions:[{ + value: 0, + label: '鎷夊姏鏈�' + },{ + value: 1, + label: '鎷栨媺鏈�' + }], + checkeroptions:[{ + value: 0, + label: '榛勫皬鏄�' + },{ + value: 1, + label: '寮犱笁' }], radioOptions:[{ label: '鍏ㄩ儴', - value: 0 + value: null },{ value: 1, - label: '宸叉楠�' + label: '宸叉姤妫�' },{ - value: 2, - label: '寰呮楠�' + value: 0, + label: '鏈姤妫�' }], - radioValue: 0, + radioValue: null, inspectionTable: [{ createTime: '2023-07-28', supplier_name: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�', @@ -199,31 +428,137 @@ currentPage: 1, pageSize: 5, total:20, - data: '' + data: '', + showNewPage: false, + inspectionForm:{}, + inspectionItems:[{ + index: 1, + name: "aaa", + unit: "KB", + required: "1", + internal: "2", + testValue: "3", + userName:"", + device: "" + }] } }, created(){ this.getRawMaterialList() }, + mounted(){ + + }, methods: { + handleChange(){ + + }, + async deleteMaterialFun(row,index){ + let formData=new FormData(); + formData.append("deleteId",row.id) + await deleteMaterial(formData).then(() => { + this.inspectionTable.splice(index,1); + this.$message.success("鍒犻櫎鎴愬姛"); + }).catch(error => { + this.$message.error(error.message); + }); + }, + blurOptions(row){ + console.log("鏇存柊",row); + }, + async initNewSelection(){ + const res = await selectUser(); + const res2 = await selectEquipment(); + this.checkeroptions = res.data; + this.deviceoptions = res2.data; + }, + resetForm(formName) { + // this.addInspectionForm.inspectionDate = [], + // this.$refs[formName].resetFields(); + // this.addReportDialog = false + }, + removeFun(row,index){ + this.$confirm('纭鍒犻櫎璇ユ暟鎹悧?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + console.log(row.id); + this.deleteMaterialFun(row,index); + }).catch(() => {}); + }, + checkSelect(row,index){ + if(row.type === 1){ + return false; + }else{ + return true; + } + }, + handleSelectionChange(val){ + this.checkData = val; + }, + //鐢熸垚鎶ユ鍗曟寜閽� + addReportBtn(){ + if(this.checkData.length < 1){ + this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�!"); + }else{ + if(this.checkData.length > 1){ + this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!"); + }else{ + this.addReportDialog = true; + } + } + }, + //鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽� + confirmBtn(formName){ + let dateArr = this.addInspectionForm.inspectionDate; + //娣诲姞鎶ユ鍗� + let val = this.checkData[0]; + let obj = { + "endTime": dateArr[1], + "experiment": "", + "formTime": val.createTime, + "id": val.id, + "mcode": val.materialCoding, + "name": val.materialName, + "num": val.quantity, + "specifications": val.specificationsModels, + "startTime": dateArr[0], + "supplier": val.supplierName, + "type": val.type, + "unit": val.unit, + "version": val.version + } + // this.createReport(obj); + this.addReportDialog = false; + this.initNewSelection(); + this.showNewPage = true; + }, + //鐢熸垚鎶ヤ环鍗� + async createReport(param){ + let res = await addInspect(param); + const res2 = await selectInspectsListById({ id : res.data}); + this.resultData = res2.data; + this.inspectionForm = res2.data; + this.inspectionItems = res2.data.insProducts; + + }, // 鑾峰彇鍒嗛〉鍒楄〃鏁版嵁 async getRawMaterialList(){ const res = await getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize}) - // console.log(res) this.inspectionTable = res.data.row this.data = res.data.row this.total = res.data.total }, async search(){ this.radioValue = this.searchData.state - const res = await getRawMaterialList({condition: this.searchData.state, + const res = await getRawMaterialList({type: this.searchData.state, createTime:this.searchData.date, materialCoding:this.searchData.code, materialName: this.searchData.name, pageNo: this.currentPage, pageSize: this.pageSize }) - // console.log(res) this.inspectionTable = res.data.row this.data = res.data.row this.total = res.data.total @@ -238,25 +573,27 @@ this.getRawMaterialList() }, radioclick(){ - this.searchData.state = this.radioValue - // console.log(this.radioValue) - this.inspectionTable = this.data.filter((item)=>{ - return item.condition === this.radioValue - }) + console.log(this.inspectionTable); if(this.radioValue === 0){ - this.inspectionTable = this.data + } - this.total = this.inspectionTable.length + }, + getAllTableData(){ + this.getRawMaterialList() + }, + getCheckData(){ + + }, + getUnCheckData(){ + }, // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣 handleSizeChange(val) { - console.log(`姣忛〉 ${val} 鏉) this.pageSize = val this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize}) }, // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤� handleCurrentChange(val) { - console.log(`褰撳墠椤�: ${val}`) this.currentPage = val this.getRawMaterialList({pageNo: this.currentPage,pageSize:this.pageSize}) } @@ -264,14 +601,15 @@ } </script> -<style scoped> - -.top-bar{ +<style scoped lang="scss"> +.content-main{ + height: 100%; + .top-bar{ margin: -25px -15px; background: #fff; display: flex; justify-content: space-between; - padding: 5px 24px 0px 24px; + padding: 24px 24px 0px 24px; .sermargin{ margin-right: 60px; } @@ -320,4 +658,30 @@ color: red; } +.newPage{ + margin: -25px -15px; + .inspectionForm{ + background-color:#fff; + .formwrapper{ + margin-left: 80px; + padding:10px 0px; + } + } + .inspectionProject{ + margin:10px 0px; + .header{ + display:flex; + justify-content: space-between; + padding-top: -3px; + padding-bottom: 3px; + } + .el-table{ + padding: 10px 10px; + height: 65vh; + overflow-y: auto; + } + } +} +} + </style> -- Gitblit v1.9.3