From cd6e23073fcda76f9852e883aacf1315ee4b9a67 Mon Sep 17 00:00:00 2001 From: value <z1292839451@163.com> Date: 星期四, 31 八月 2023 11:46:06 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- .env.staging | 2 .env.development | 2 package.json | 1 .env.production | 2 src/views/inspectionManagement/reportForInspection/index.vue | 84 ++++++++++++++++++++++++---- src/views/experiment/checkTheReport/index.vue | 44 ++++++++++++++ src/api/inspection/rawmaterial.js | 18 ++++++ src/layout/components/Sidebar/SidebarItem.vue | 2 8 files changed, 137 insertions(+), 18 deletions(-) diff --git a/.env.development b/.env.development index ab9be2d..b0631dd 100644 --- a/.env.development +++ b/.env.development @@ -2,4 +2,4 @@ ENV = 'development' # base api -VUE_APP_BASE_API = 'http://localhost:1234/' +VUE_APP_BASE_API = 'http://192.168.110.254:1234/' diff --git a/.env.production b/.env.production index dd72fa5..b1d6aa4 100644 --- a/.env.production +++ b/.env.production @@ -3,5 +3,5 @@ # base api # VUE_APP_BASE_API = '/prod-api' -VUE_APP_BASE_API = 'http://localhost:1234/' +VUE_APP_BASE_API = 'http://192.168.137.138:1234/' diff --git a/.env.staging b/.env.staging index 92fbe73..d975095 100644 --- a/.env.staging +++ b/.env.staging @@ -5,6 +5,6 @@ # base api # VUE_APP_BASE_API = '/stage-api' -VUE_APP_BASE_API = 'http://localhost:1234/' +VUE_APP_BASE_API = 'http://192.168.137.138:1234/' diff --git a/package.json b/package.json index 0b19172..4767215 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "core-js": "3.6.5", "echarts": "^5.4.3", "element-ui": "2.13.2", + "html2pdf.js": "^0.10.1", "js-cookie": "2.2.0", "normalize.css": "7.0.0", "nprogress": "0.2.0", diff --git a/src/api/inspection/rawmaterial.js b/src/api/inspection/rawmaterial.js index 2bbf039..d21c70b 100644 --- a/src/api/inspection/rawmaterial.js +++ b/src/api/inspection/rawmaterial.js @@ -77,4 +77,22 @@ method: 'get', params }) +} + +//鑾峰彇閫夋嫨鐨勭増鏈� +export function getChooseVersion(params){ + return request({ + url: '/raw-material/chooseVer', + method: 'get', + params + }) +} + +//鑾峰彇閫夋嫨鐗堟湰涓嬬殑鏍囧噯搴撴暟鎹� +export function lookProByVer(params){ + return request({ + url: '/raw-material/lookProByVer', + method: 'get', + params + }) } \ No newline at end of file diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue index ca1bccd..cf9ad14 100644 --- a/src/layout/components/Sidebar/SidebarItem.vue +++ b/src/layout/components/Sidebar/SidebarItem.vue @@ -5,7 +5,7 @@ <el-menu-item v-if="onlyOneChild.meta.show==false ?onlyOneChild.meta.show: true" :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}"> <item :show="onlyOneChild.meta.show" :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" /> <span v-if="onlyOneChild.meta.title==='涓婚〉'">涓婚〉</span> - <span v-if="onlyOneChild.meta.title==='鍩虹鏁版嵁'">鍩虹鏁版嵁</span> + <span v-if="onlyOneChild.meta.title==='鍩虹鏁版嵁'">鍩虹鏁版嵁</span> </el-menu-item> </app-link> </template> diff --git a/src/views/experiment/checkTheReport/index.vue b/src/views/experiment/checkTheReport/index.vue index b4efda6..253340f 100644 --- a/src/views/experiment/checkTheReport/index.vue +++ b/src/views/experiment/checkTheReport/index.vue @@ -30,7 +30,7 @@ </el-form-item> </el-form> <el-form> - <el-button class="rightBtn" type="primary" icon="el-icon-document" + <el-button @click="exportToPDF" class="rightBtn" type="primary" icon="el-icon-document" >瀵煎嚭鎶ュ憡</el-button > </el-form> @@ -61,7 +61,7 @@ </span> <div class="printStyle"> <Preview id="printRaw" :reportData="reportData" v-if="reportType===0"></Preview> - <TestReport id="printFinished" :reportData="reportData" v-else></TestReport> + <TestReport ref="testreport" id="printFinished" :reportData="reportData" v-else></TestReport> </div> </el-dialog> <div class="table-box"> @@ -77,6 +77,7 @@ textAlign: 'center', }" :data="reportTable" + @selection-change="handleSelectionChange" style="width: 100%" > <el-table-column type="selection" label="" min-width="5%" /> @@ -176,6 +177,19 @@ </div> </div> </div> + <Preview ref="preview" id="printRaw" :reportData="reportData" v-show="false"></Preview> + <TestReport ref="testreport" id="printFinished" :reportData="reportData" v-show="false"></TestReport> + <el-dialog + title="瀵煎嚭pdf" + :visible.sync="dialogPdfVisible" + width="30%" + :before-close="handleClose"> + <span>纭畾寮�濮嬪鍑哄悧锛�</span> + <span slot="footer" class="dialog-footer"> + <el-button @click="dialogPdfVisible = false">鍙� 娑�</el-button> + <el-button type="primary" @click="confirmExport">纭� 瀹�</el-button> + </span> + </el-dialog> </div> </template> @@ -184,6 +198,8 @@ import Preview from "@/components/experiment/checkTheReport/index.vue"; import TestReport from "@/components/experiment/template_testReport/index.vue" import PrintJS from 'print-js' +import html2pdf from 'html2pdf.js' + export default { data() { return { @@ -220,6 +236,8 @@ pageSize: 10, checked: true, dialogVisible: false, + dialogPdfVisible: false, + selectedRows: [] }; }, created() { @@ -244,6 +262,28 @@ this.reportType = row.type; this.queryReportByRCode(row.reportCode); }, + handleSelectionChange(selection){ + this.selectedRows = selection; + }, + // 鎵归噺瀵煎嚭鎶ュ憡 + exportToPDF() { + this.dialogPdfVisible = true; + }, + // 纭瀵煎嚭妯℃�佹 + confirmExport(){ + this.selectedRows.forEach(async row => { + const element = document.getElementById('printFinished'); + console.log(element) + // 璁剧疆TestReport缁勪欢鐨剅eportData灞炴�т负褰撳墠琛岀殑鎶ュ憡鏁版嵁 + const resp = await getReportData({code:row.reportCode}); + this.$nextTick(() => { + this.$refs.testreport.reportData = resp.data; + html2pdf().from(element).save(`exported_${row.reportCode}.pdf`); + }); + }); + this.dialogPdfVisible = false; + this.selectedRows = []; + }, //鎵撳嵃鎸夐挳 printFun(){ this.dialogVisible = false; diff --git a/src/views/inspectionManagement/reportForInspection/index.vue b/src/views/inspectionManagement/reportForInspection/index.vue index c2cbe46..6dbbd6f 100644 --- a/src/views/inspectionManagement/reportForInspection/index.vue +++ b/src/views/inspectionManagement/reportForInspection/index.vue @@ -30,7 +30,7 @@ </div> <el-dialog title="鏂板鍘熸潗鏂欐姤妫�" :visible.sync="addReportVisible" width="40%"> <el-form ref="addMaterialForm" :rules="insertRule" :model="insertData" :inline="true" label-position="right" - label-width="80px"> + label-width="100px"> <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> @@ -115,19 +115,30 @@ </div> </div> </div> - <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="30%"> + <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="addReportDialog" width="60%"> <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-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 ref="multipleTable" + :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> @@ -245,16 +256,20 @@ deleteMaterial, addMaterial, getMaterielName, - getSpecification + getSpecification, + getChooseVersion, + lookProByVer } from '@/api/inspection/rawmaterial' export default { data() { return { + standardLibraryData:[], + chooseVersion: [], userName: "", devices: "", addInspectionForm: { - inspectionDate: ['2023-08-01', '2023-08-31'], - version: 5 + inspectionDate: [], + version: null }, addInspectionFormRules: { inspectionDate: [{ @@ -405,7 +420,7 @@ this.getRawMaterialList() }, mounted() { - this.getMaterielName() + this.getMaterielName(); }, methods: { handleChange() { @@ -454,6 +469,7 @@ }, handleSelectionChange(val) { this.checkData = val; + console.log(val); }, //鐢熸垚鎶ユ鍗曟寜閽� addReportBtn() { @@ -463,10 +479,55 @@ if (this.checkData.length > 1) { this.$message.error("鏈�澶氶�夋嫨涓�鏉℃暟鎹�!"); } else { + let mcode = this.checkData[0].materialCoding; + let name = this.checkData[0].materialName; + let specifications = this.checkData[0].specificationsModels; + this.getChooseVersionFun(mcode,name,specifications); + console.log(this.standardLibraryData); this.addReportDialog = true; } } }, + changeVersionFun(){ + let mCode = this.checkData[0].materialCoding; + let name = this.checkData[0].materialName; + let specifications = this.checkData[0].specificationsModels; + let version = this.addInspectionForm.version; + this.getProByVersion(mCode,name,specifications,version); + }, + //鑾峰彇鐗堟湰涓嬬殑鏍囧噯搴撴暟鎹� + async getProByVersion(mCode,name,specifications,version){ + var vm = this; + await lookProByVer({ + mcode : mCode, + name : name, + specifications : specifications, + version: version + }).then((res)=>{ + console.log(res); + vm.standardLibraryData = res.data; + }) + + }, + //鑾峰彇鐗堟湰鍒楄〃 + async getChooseVersionFun(mCode,name,specifications){ + var vm = this; + this.chooseVersion = []; + await getChooseVersion({ + mcode : mCode, + name : name, + specifications : specifications + }).then((res)=>{ + vm.getProByVersion(mCode,name,specifications,res.data[0]) + 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]; + }); + }, //鐢熸垚鎶ユ鍗曠‘璁ゆ寜閽� confirmBtn(formName) { let dateArr = this.addInspectionForm.inspectionDate; @@ -485,14 +546,14 @@ "supplier": val.supplierName, "type": val.type, "unit": val.unit, - "version": val.version + "version": this.addInspectionForm.version } // this.createReport(obj); this.addReportDialog = false; this.initNewSelection(); this.showNewPage = true; }, - //鐢熸垚鎶ヤ环鍗� + //鐢熸垚鎶ユ鍗� async createReport(param) { let res = await addInspect(param); const res2 = await selectInspectsListById({ @@ -501,7 +562,6 @@ this.resultData = res2.data; this.inspectionForm = res2.data; this.inspectionItems = res2.data.insProducts; - }, // 鑾峰彇鍒嗛〉鍒楄〃鏁版嵁 async getRawMaterialList() { -- Gitblit v1.9.3