From bd4fdac0fee9cf4f96dd947fef6f6ae950a450fe Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期五, 01 九月 2023 17:07:48 +0800 Subject: [PATCH] modified: package.json modified: src/components/experiment/template_testReport/index.vue modified: src/views/experiment/checkTheReport/index.vue modified: src/views/experiment/inspectionApplication/index.vue modified: src/views/inspectionManagement/commissionInspection/index.vue modified: src/views/inspectionManagement/reportForInspection/index.vue --- src/views/inspectionManagement/commissionInspection/index.vue | 208 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 186 insertions(+), 22 deletions(-) diff --git a/src/views/inspectionManagement/commissionInspection/index.vue b/src/views/inspectionManagement/commissionInspection/index.vue index 2cf97f8..783bb85 100644 --- a/src/views/inspectionManagement/commissionInspection/index.vue +++ b/src/views/inspectionManagement/commissionInspection/index.vue @@ -53,25 +53,24 @@ </el-radio-group> </div> <div class="generateInsp"> - <el-button type="primary" size="mini" icon="el-icon-document" + <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="commisionTable" :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="commisionTable" style="width: 100%"> - <el-table-column type="selection" min-width="10%" /> + :data="commisionTable" @selection-change="handleSelectionChange" style="width: 100%"> + <el-table-column type="selection" :selectable="checkSelect" min-width="10%" /> <el-table-column type="index" label="搴忓彿" min-width="10%" /> <el-table-column prop="entrust_coding" label="濮旀墭缂栧彿" min-width="10%" /> <el-table-column prop="entrusted" label="濮旀墭鍗曚綅" min-width="12%" /> <el-table-column prop="samples_number" label="鏍峰搧鏁伴噺" min-width="8%" /> <el-table-column prop="sample_name" label="鏍峰搧鍚嶇О" min-width="8%" /> - <el-table-column prop="specifications_models" label="瑙勬牸鍨嬪彿" min-width="12%" /> - <el-table-column prop="dateSurvey" label="閫佹牱鏃堕棿" min-width="8%" /> + <el-table-column prop="speName" label="瑙勬牸鍨嬪彿" min-width="12%" /> + <el-table-column prop="inspectionTime" label="閫佹牱鏃堕棿" min-width="8%" /> <el-table-column prop="completionDeadline" label="瀹屾垚鏈熼檺" min-width="8%" /> <el-table-column prop="contacts" label="濮旀墭缂栧埗浜�" min-width="8%" /> - <el-table-column prop="inspectionTime" label="妫�楠屾棩鏈�" min-width="8%" /> <el-table-column prop="inspection_status" label="鐘舵��" min-width="8%"> <template slot-scope="scope"> <div v-if="scope.row.inspection_status === 0"> @@ -126,6 +125,33 @@ </el-dialog> <!-- 闅愯棌鍩熻緭鍏ユ鐢ㄦ潵澶嶅埗 --> <input id="copyContext" style="position: absolute;top: 0;left: 0;opacity: 0;z-index: -10;" /> + <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="60%"> + <el-form :model="addInspectionForm" :rules="addInspectionFormRules" ref="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 @change="changeVersionFun" v-model="addInspectionForm.version" placeholder="璇烽�夋嫨鐗堟湰"> + <el-option v-for="item in chooseVersion" :key="item.value" :label="item.label" :value="item.value" ></el-option> + </el-select> + </el-form-item> + </el-form> + <el-table + style="width:90%;margin-left:5%" :data="standardLibraryData" row-key="id" border + default-expand-all :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> + <el-table-column type="index" width="50px" label="搴忓彿"></el-table-column> + <el-table-column label="椤圭洰鍚嶇О" prop="name" sortable></el-table-column> + <el-table-column prop="unit" label="鍗曚綅" sortable></el-table-column> + <el-table-column label="鏍囧噯鍊�" prop="required" sortable></el-table-column> + <el-table-column prop="internal" label="鍐呮帶鍊�" sortable></el-table-column> + </el-table> + <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> </template> @@ -133,11 +159,30 @@ import { getCommisionList, getViewUUID, - selectViewUUID + selectViewUUID, + delLink, + chooseVersion, + lookProByVer, + addInspect } from '@/api/inspection/commisioninspection' export default { data() { return { + standardLibraryData:[], + chooseVersion: [], + addInspectionForm: { + inspectionDate: [], + version: null + }, + addInspectionFormRules: { + inspectionDate: [{ + required: true, + message: '璇烽�夋嫨鏃ユ湡鍖洪棿', + trigger: 'change' + }], + }, + addReportDialog: false, + checkData: [], form: [], searchData: { code: '', @@ -148,7 +193,7 @@ value: '1', label: '閮ㄩ棬1' }], - radioValue: 0, + radioValue: null, commisionTable: [{ specifications_models: "GGXH-AAAAA", inspectionTime: "2023-08-03", @@ -164,15 +209,15 @@ }], conditionsOptions: [{ label: '鍏ㄩ儴', - value: 0 + value: null }, { label: '宸叉楠�', - value: 1 + value: 0 }, { label: '寰呮楠�', - value: 2 + value: 1 } ], currentPage: 1, @@ -191,11 +236,121 @@ }, updated() { if (this.$router.currentRoute.name === 'AddCommision') { - // console.log(this.$router.currentRoute.name) this.showDetail = true } }, methods: { + resetForm(formName) { + this.addInspectionForm.inspectionDate = [], + this.$refs[formName].resetFields(); + this.addReportDialog = false + }, + checkSelect(row) { + if (row.type === 1) { + return false; + } else { + return true; + } + }, + handleSelectionChange(val) { + if (val.length > 1) { + this.$refs.commisionTable.clearSelection(); + this.$refs.commisionTable.toggleRowSelection(val.pop()) + } + this.checkData = val; + console.log(this.checkData); + }, + //鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽� + confirmBtn(formName) { + this.$refs[formName].validate((valid)=>{ + if(valid){ + let dateArr = this.addInspectionForm.inspectionDate; + //娣诲姞鎶ユ鍗� + let val = this.checkData[0]; + let obj = { + "endTime": dateArr[1], + "mcode":"mcode", + "formTime": val.inspectionTime, + "id": val.id, + "name": val.sample_name, + "num": val.samples_number, + "specifications": val.speName, + "startTime": dateArr[0], + "supplier": val.entrusted, + "type": 2, + // "unit": "mm", + "version": this.addInspectionForm.version + } + this.createReport(obj); + this.addReportDialog = false; + } + }); + }, + //鐢熸垚鎶ユ鍗曡姹� + async createReport(param) { + let res = await addInspect(param); + if(res.data==null)return + this.$message.success('鎶ユ鎴愬姛') + this.$router.push(`/experiment/Viewdetails/${res.data}`) + }, + //鐢熸垚鎶ユ鍗曟寜閽� + addReportBtn() { + if (this.checkData.length < 1) { + this.$message.error("璇烽�夋嫨涓�鏉℃暟鎹�!"); + } else { + if (this.checkData.length > 1) { + this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!"); + } else { + let mcode = this.checkData[0].entrust_coding; + let name = this.checkData[0].sample_name; + let specifications = this.checkData[0].speName; + let id = this.checkData[0].id; + this.getChooseVersionFun(mcode,name,specifications,id); + this.addReportDialog = true; + } + } + }, + changeVersionFun(){ + let mCode = this.checkData[0].entrust_coding; + let name = this.checkData[0].sample_name; + let specifications = this.checkData[0].speName; + let version = this.addInspectionForm.version; + let id = this.checkData[0].id; + this.getProByVersion(mCode,name,specifications,version,id); + }, + //鑾峰彇鐗堟湰涓嬬殑鏍囧噯搴撴暟鎹� + async getProByVersion(mCode,name,specifications,version,id){ + var vm = this; + await lookProByVer({ + id : id, + mcode : mCode, + name : name, + specifications : specifications, + version: version + }).then((res)=>{ + console.log(res); + vm.standardLibraryData = res.data; + }) + }, + //鑾峰彇鐗堟湰鍒楄〃 + async getChooseVersionFun(mCode,name,specifications,id){ + var vm = this; + this.chooseVersion = []; + await chooseVersion({ + id : id, + name : name, + specifications : specifications + }).then((res)=>{ + vm.getProByVersion(mCode,name,specifications,res.data[0],id); + for(let i=0;i<res.data.length;i++){ + vm.chooseVersion.push({ + value: res.data[i], + label: "V"+res.data[i] + }); + } + vm.addInspectionForm.version = res.data[0]; + }); + }, async getCommisionList() { const res = await getCommisionList({ pageNo: this.currentPage, @@ -203,7 +358,6 @@ }) this.commisionTable = res.data.row this.total = res.data.total - // console.log(res) // 鑾峰彇鎵�鏈夌殑濮旀墭鍗曚綅鍚嶇О const allDepartmentNames = [...new Set(this.commisionTable.map(item => item.entrusted))] // 灏哸llDepartmentNames杞崲涓簅ptions闇�瑕佺殑鏍煎紡 @@ -235,11 +389,9 @@ inspectionStatus: this.radioValue }) } - // console.log(res) this.commisionTable = res.data.row this.total = res.data.total }, - // 閲嶇疆鏂规硶 reset() { // 閲嶇疆鎼滅储鏉′欢 @@ -252,24 +404,29 @@ }, async radioclick() { // 澶勭悊鐐瑰嚮radio鐨勬椂闂� - console.log('radioValue', this.radioValue) if (this.radioValue === 0) { - this.getCommisionList() - } else { const res = await getCommisionList({ pageNo: this.currentPage, pageSize: this.pageSize, inspectionStatus: this.radioValue }) - // console.log(res) this.commisionTable = res.data.row this.total = res.data.total + } else if(this.radioValue === 1) { + const res = await getCommisionList({ + pageNo: this.currentPage, + pageSize: this.pageSize, + inspectionStatus: this.radioValue + }) + this.commisionTable = res.data.row + this.total = res.data.total + }else{ + this.getCommisionList(); } }, // 姣忛〉鏉℃暟鏀瑰彉鏃惰Е鍙� 閫夋嫨涓�椤垫樉绀哄灏戣 async handleSizeChange(val) { - // console.log(`姣忛〉 ${val} 鏉) this.currentPage = 1 this.pageSize = val if (this.radioValue === 0) { @@ -286,7 +443,6 @@ }, // 褰撳墠椤垫敼鍙樻椂瑙﹀彂 璺宠浆鍏朵粬椤� async handleCurrentChange(val) { - // console.log(`褰撳墠椤�: ${val}`) this.currentPage = val if (this.radioValue === 0) { this.getCommisionList() @@ -327,12 +483,20 @@ if (document.execCommand('copy')) { this.$message.success('宸插鍒跺埌鍓创鏉�') } + }, + handleClick(row){ + delLink({ + id: row.id + }).then(res=>{ + this.$message.success('鍒犻櫎鎴愬姛') + this.getCommisionList() + }) } } } </script> -<style scoped> +<style scoped lang="scss"> .top-bar { margin: -25px -15px; background: #fff; -- Gitblit v1.9.3