From e28bc4fced1c347a48326dcfbb944fdbd6e4660a Mon Sep 17 00:00:00 2001 From: yuyu <1981343953@qq.com> Date: 星期四, 31 八月 2023 09:19:40 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.110.209:9001/r/lims-before --- src/views/inspectionManagement/reportForInspection/index.vue | 347 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 276 insertions(+), 71 deletions(-) diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue index b6a1fdb..c2cbe46 100644 --- a/src/views/inspectionManagement/reportForInspection/index.vue +++ b/src/views/inspectionManagement/reportForInspection/index.vue @@ -29,18 +29,32 @@ </el-form> </div> <el-dialog title="鏂板鍘熸潗鏂欐姤妫�" :visible.sync="addReportVisible" width="40%"> - <el-form v-model="insertData" label-position="left" label-width="80px"> - <el-form-item label="鏍囧噯绫诲瀷"> - <el-input v-model="insertData.materialName" /> + <el-form ref="addMaterialForm" :rules="insertRule" :model="insertData" :inline="true" label-position="right" + label-width="80px"> + <el-form-item label="鏉ユ枡鏃ユ湡:" prop="fromDate"> + <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.materialName" /> + <el-form-item label="渚涜揣鍟嗗悕绉�:" prop="supplierName"> + <el-input v-model="insertData.supplierName" /> </el-form-item> - <el-form-item label="鎵ц鏍囧噯"> - <el-input v-model="insertData.standardName" /> + <el-form-item label="鏉愭枡鍚嶇О:" prop="mName"> + <el-select v-model="insertData.mName" placeholder="璇烽�夋嫨鏉愭枡鍚嶇О" @change="(val)=>{getSpecification(val)}"> + <el-option v-for="(item,index) in materialList" :key="index" :label="item.name" + :value="item.id"></el-option> + </el-select> </el-form-item> - <el-form-item label="瑙勬牸鍨嬪彿"> - <el-input v-model="insertData.specificationsName" /> + <el-form-item label="鏉愭枡缂栫爜:" prop="mCode"> + <el-input disabled v-model="insertData.mCode" /> + </el-form-item> + <el-form-item label="瑙勬牸鍨嬪彿:" prop="specificationsNumber"> + <el-cascader v-model="insertData.specificationsNumber" :options="childrenOptions" + :props="{label: 'Name', value: 'Name'}" separator="-"></el-cascader> + </el-form-item> + <el-form-item label="鍗曚綅:" prop="unit"> + <el-input type="text" v-model="insertData.unit" /> + </el-form-item> + <el-form-item label="鏁伴噺:" prop="num"> + <el-input type="number" v-model="insertData.num"/> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> @@ -60,10 +74,9 @@ <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"> - <el-table ref="inspectionTable" :max-height="800" :cell-style="{textAlign: 'center'}" + <el-table ref="inspectionTable" :max-height="600" :cell-style="{textAlign: 'center'}" :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" :selectable="checkSelect" min-width="5%"> @@ -88,26 +101,44 @@ </el-table-column> <el-table-column label="鎿嶄綔" min-width="8%"> <template slot-scope="scope"> - <el-button type="text" size="small" @click="removeFun(scope.row)">鍒犻櫎</el-button> + <el-button type="text" size="small" @click="removeFun(scope.row,scope.$index)">鍒犻櫎</el-button> </template> </el-table-column> </el-table> <!-- 鍒嗛〉鍣� --> <div> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" - :current-page="currentPage" :page-sizes="[5, 10, 15, 20]" :page-size="pageSize" + :current-page="currentPage" :page-sizes="[10, 15, 20,30]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination> </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" ref="inspectionForm" label-position="right" label-width="100px" size="mini"> + <el-form :model="inspectionForm" label-position="right" label-width="100px" size="mini"> <div class="formwrapper"> <el-row> <el-col :span="8"> @@ -182,17 +213,19 @@ <el-table-column prop="testValue" label="妫�楠屽��" width="125"></el-table-column> <el-table-column prop="userName" label="妫�楠屼汉"> <template slot-scope="scope"> - <el-select v-model="scope.row.checker" size="small" slot="append" style="width: 260px;"> - <el-option v-for="(item,index) in checkeroptions" :key="index" :value="item.value" - :label="item.label">{{ item.label }}</el-option> + <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 v-model="scope.row.device" size="small" slot="append" style="width: 260px;"> - <el-option v-for="(item,index) in deviceoptions" :key="index" :value="item.value" - :label="item.label">{{ item.label }}</el-option> + <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> @@ -206,14 +239,32 @@ import { getRawMaterialList, addInspect, - selectInspectsListById + selectInspectsListById, + selectUser, + selectEquipment, + deleteMaterial, + addMaterial, + getMaterielName, + getSpecification } from '@/api/inspection/rawmaterial' export default { data() { return { - insertData: { - + 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: {}, @@ -225,15 +276,36 @@ 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, @@ -251,15 +323,15 @@ }], 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: '鍥界綉灞变笢鐪佺數鍔涙湁闄愬叕鍙�', @@ -274,28 +346,103 @@ condition: 1 }], currentPage: 1, - pageSize: 5, + pageSize: 10, total: 20, data: '', showNewPage: false, inspectionForm: {}, - inspectionItems: [] + inspectionItems: [{ + index: 1, + name: "aaa", + unit: "KB", + required: "1", + internal: "2", + testValue: "3", + userName: "", + device: "" + }], + insertRule: { + fromDate: [{ + required: true, + message: '璇烽�夋嫨鏉ユ枡鏃ユ湡', + trigger: 'blur' + }], + supplierName: [{ + required: true, + message: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О', + trigger: 'blur' + }], + mName: [{ + required: true, + message: '璇烽�夋嫨鐗╂枡鍚嶇О', + trigger: 'blur' + }], + mCode: [{ + required: true, + message: '璇烽�夋嫨鐗╂枡', + trigger: 'blur' + }], + specificationsNumber: [{ + required: true, + message: '璇烽�夋嫨瑙勬牸鍨嬪彿', + trigger: 'blur' + }], + unit: [{ + required: true, + message: '璇疯緭鍏ュ崟浣�', + trigger: 'blur' + }], + num: [{ + required: true, + message: '璇疯緭鍏ユ姤妫�鏁伴噺', + trigger: 'blur' + }] + }, + materialList: [] } }, created() { this.getRawMaterialList() }, + mounted() { + this.getMaterielName() + }, methods: { - removeFun(row) { + 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(() => { - this.$message({ - type: 'success', - message: '鍒犻櫎鎴愬姛!' - }); + console.log(row.id); + this.deleteMaterialFun(row, index); }).catch(() => {}); }, checkSelect(row, index) { @@ -310,40 +457,46 @@ }, //鐢熸垚鎶ユ鍗曟寜閽� addReportBtn() { - let arr = this.checkData; - if (arr.length < 1) { + if (this.checkData.length < 1) { this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�!"); } else { - if (arr.length > 1) { + if (this.checkData.length > 1) { this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!"); } else { - //娣诲姞鎶ユ鍗� - let val = arr[0]; - let obj = { - "endTime": val.dateSurvey, - "experiment": "", - "formTime": val.createTime, - "id": val.id, - "mcode": val.materialCoding, - "name": val.materialName, - "num": val.quantity, - "specifications": val.specificationsModels, - "startTime": val.inspectionDate, - "supplier": val.supplierName, - "type": val.type, - "unit": val.unit, - "version": val.version - } - this.createReport(obj); - this.showNewPage = true; + 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) { - await addInspect(param); + let res = await addInspect(param); const res2 = await selectInspectsListById({ - id: 59 + id: res.data }); this.resultData = res2.data; this.inspectionForm = res2.data; @@ -363,7 +516,7 @@ async search() { this.radioValue = this.searchData.state const res = await getRawMaterialList({ - condition: this.searchData.state, + type: this.searchData.state, createTime: this.searchData.date, materialCoding: this.searchData.code, materialName: this.searchData.name, @@ -384,14 +537,19 @@ this.getRawMaterialList() }, radioclick() { - this.searchData.state = 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) { @@ -407,6 +565,53 @@ this.getRawMaterialList({ pageNo: this.currentPage, pageSize: this.pageSize + }) + }, + insert() { + this.$refs['addMaterialForm'].validate((valid) => { + if (valid) { + var str = { + "dateSurvey": this.insertData.fromDate, + "materialCoding": this.insertData.mCode, + "materialName": this.insertData.mName, + "quantity": this.insertData.num, + "specificationsModels": this.insertData.specificationsNumber[0] + '-' + this.insertData + .specificationsNumber[1], + "supplierName": this.insertData.supplierName, + "type": 0, + "unit": this.insertData.unit + } + this.materialList.forEach(a => { + if (a.id == str.materialName) { + str.materialName = a.name + } + }) + addMaterial(str).then(res => { + this.$message.success('娣诲姞鎴愬姛') + this.addReportVisible = false + this.getRawMaterialList() + }) + } else { + return false; + } + }); + }, + getMaterielName() { + getMaterielName().then(res => { + this.materialList = res.data + }) + }, + getSpecification(val) { + this.materialList.forEach(a => { + if (a.id == val) { + this.insertData.mCode = a.code + } + }) + getSpecification({ + materialId: val + }).then(res => { + this.childrenOptions = JSON.parse(JSON.stringify(res.data).replaceAll('specifications', '').replaceAll( + 'model', '')) }) } } @@ -510,4 +715,4 @@ } } } -</style> +</style> \ No newline at end of file -- Gitblit v1.9.3