value
2023-08-31 cd6e23073fcda76f9852e883aacf1315ee4b9a67
Merge remote-tracking branch 'origin/master'
已修改8个文件
155 ■■■■ 文件已修改
.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.production 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.staging 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/inspection/rawmaterial.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Sidebar/SidebarItem.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/checkTheReport/index.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inspectionManagement/reportForInspection/index.vue 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.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/'
.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/'
.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/'
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",
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
  })
}
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>
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组件的reportData属性为当前行的报告数据
        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;
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() {