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