zss
2023-12-11 c880739ec4cd5ede33b31eb98ad5f7628ea288e5
src/views/quality/finishedProductInspection/index.vue
@@ -1,31 +1,6 @@
<template>
   <div class="content-main">
      <div v-if="!showAdd&&!showLook&&!showUp" class="rawPage">
         <!-- <div class="nav"> -->
                <!-- <div class="title">
                    <el-row>
                        <el-col :span="12">产品检验</el-col>
                        <el-col :span="12">
                            <el-button @click="handleAddNew" type="primary" size="mini" icon="el-icon-plus"
                                style="background: #004EA2; ">新增</el-button>
                            <el-button icon="el-icon-delete" size="mini">删除</el-button>
                            <el-button icon="el-icon-download" size="mini">导出</el-button>
                        </el-col>
                    </el-row>
                </div> -->
            <!-- <span>检测结果:</span>
            <el-select v-model="searchData.result" size="small" placeholder="请选择" style="width: 224px;margin-right: 52px;">
               <el-option :value="''" label="全部"></el-option>
               <el-option :value="1" label="合格"></el-option>
               <el-option :value="0" label="不合格"></el-option>
            </el-select>
            <span>产品名称:</span>
            <el-input v-model="searchData.material" size="small" placeholder="请输入产品名称"
               style="width: 224px;margin-right: 52px;"></el-input>
            <el-button size="mini" @click="()=>{searchData={};getInspectionTableData()}"><span>重 置</span></el-button>
            <el-button size="mini" type="primary" @click="getInspectionTableData" style="background: #004EA2;"><span>查
                  询</span></el-button> -->
         <!-- </div> -->
      <div class="rawPage">
            <basic-container>
                <ttable 
                :table="table"
@@ -37,77 +12,42 @@
                <template #toolbar></template>
                </ttable>
            </basic-container>
         <!-- <div class="content-body">
            <div class="inspectionTable">
               <el-table ref="inspectionTable" height="620" :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%">
                  <el-table-column type="selection" width="50">
                  </el-table-column>
                  <el-table-column prop="order_number" label="订单号" min-width="100" />
                  <el-table-column prop="customer_name" label="客户名称" min-width="80" />
                  <el-table-column prop="project_name" label="工程名称" min-width="80" />
                  <el-table-column prop="quality_traceability" label="质量追溯号" min-width="108" />
                  <el-table-column prop="material_code" label="产品编码" min-width="100" />
                  <el-table-column prop="material" label="产品大类" min-width="72" />
                  <el-table-column prop="specifications_model" label="规格型号" min-width="110" />
                  <el-table-column prop="unit" label="单位" min-width="50" />
                  <el-table-column prop="quantity" label="数量" min-width="50" />
                  <el-table-column prop="detectionPeriod" label="检验日期" min-width="80" />
                  <el-table-column prop="result" label="检测结果" min-width="80">
                     <template slot-scope="scope">
                        <span style="color: #34BD66;" v-if="scope.row.result === 1">合格</span>
                        <span style="color: #E84738;" v-else-if="scope.row.result === 0">不合格</span>
                        <span v-else-if="scope.row.result === null || scope.row.result === undefined">暂未结论</span>
                     </template>
                  </el-table-column>
                  <el-table-column label="操作" min-width="80">
                     <template slot-scope="scope">
                        <el-button type="text" size="small" @click="goToDetail(scope.row)">查看</el-button>
                        <el-button type="text" size="small">打印</el-button>
                        <el-button v-if="scope.row.result == null" type="text" size="small"
                           @click="goUp(scope.row)">编辑</el-button>
                     </template>
                  </el-table-column>
               </el-table>
            </div> -->
            <!-- 分页器 -->
            <!-- <div class="pagination">
               <el-pagination :current-page="pageParams.pageSize" :page-sizes="[10, 50, 100, 200]"
                  :page-size="pageParams.countSize" layout="total, sizes, prev, pager, next, jumper" :total="pageParams.total"
                  @size-change="handleSizeChange" @current-change="handleCurrentChange" />
            </div> -->
         <!-- </div> -->
      </div>
      <div class="newPage" v-if="showAdd">
         <finishedProductInspectionAdd />
      </div>
      <div class="newPage" v-if="showLook">
         <finishedProductInspectionLook :rowInfo="rowInfo" />
      </div>
      <div class="newPage" v-if="showUp">
         <finishedProductInspectionUp :rowInfo="rowInfo" />
            <el-dialog
            top="10vh"
            title="打印预览"
            :visible.sync="printDialogVisible"
            width="70%">
            <div style="width:100%;height: 60vh;overflow-y: scroll;">
                <printTemplate id="printRaw" :formData="printFormData"></printTemplate>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="()=>{printDialogVisible = false;printFormData=null}">取 消</el-button>
                <el-button type="primary" @click="printFun()">打 印</el-button>
            </span>
            </el-dialog>
      </div>
   </div>
</template>
<script>
    import ttable from '@/views/common/ztt-table.vue'
    import * as fecha from 'element-ui/lib/utils/date'
   import finishedProductInspectionAdd from './finishedProductInspectionAdd'
   import finishedProductInspectionUp from './finishedProductInspectionUp'
   import finishedProductInspectionLook from './finishedProductInspectionLook'
    import { page } from '@/api/quality/finishedProduct'
   import finishedProductInspectionAdd from './finishedProduct-form'
    import { page,deletePro,exportExaminationProducts,queryById } from '@/api/quality/finishedProduct'
    import { transform } from '@/util/fileTransform'
    import printTemplate from './finishedProducter-print.vue'
    import PrintJS from 'print-js'
    import { title } from 'process'
   export default {
      components: {
         finishedProductInspectionAdd,
         finishedProductInspectionUp,
         finishedProductInspectionLook,
            ttable
            ttable,
            printTemplate
      },
      data() {
         return {
                printFormData: null,
                printDialogVisible: false,
                result:[{label:'全部',value: ''},{label:'合格',value: '1'},{label:'不合格',value: '0'}],
                type: [1],
                prelang: 'finishedProduct',
@@ -133,14 +73,30 @@
                    data: [],
                    // 标题
                    column: [
                         {
                            minWidth: '120',
                            prop: 'finInsNo',
                            label: '产品检验编号',
                            isTrue: true,
                            isSearch: true,
                            searchInfoType: 'text',
                            render: { fun: this.addOrUpdateHandle }
                        },
                        {
                            minWidth: '120',
                            prop: 'productNo',
                            label: '报工单号',
                            isTrue: true,
                            isSearch: true,
                            searchInfoType: 'text'
                        },
                        {
                            minWidth: '120',
                            prop: 'orderNumber',
                            label: '订单号',
                            isTrue: true,
                            isSearch: true,
                            searchInfoType: 'text',
                            render: { fun: this.addOrUpdateHandle }
                            searchInfoType: 'text'
                        },
                        {
                            minWidth: '120',
@@ -159,6 +115,14 @@
                            isTrue: true,
                            isSearch: true,
                            searchInfoType: 'text',
                        },
                        {
                            minWidth: '120',
                            prop: 'outBatchNo',
                            label: '批次号',
                            isTrue: true,
                            isSearch: true,
                            searchInfoType: 'text'
                        },
                        {
                            minWidth: '120',
@@ -224,22 +188,29 @@
                        },
                    ],
                    toolbar: [
                    {
                    /* {
                        text: '新增',
                        type: 'primary',
                        fun: ()=>this.showAdd=true
                    },
                    {
                        text: '删除',
                    },
                        fun: this.addOrUpdateHandle
                    }, */
                    {
                        text: '导出',
                        type: 'primary',
                        fun: this.exportExcel
                    }
                    ],
                    operator: [{
                        text: '打印',
                        type: 'text',
                        size: 'small',
                        fun: this.showPrint,
                        show: {
                            val: [
                                '1',
                                '0'
                            ],
                            key: 'result'
                        }
                    },{
                        text: '作废',
                        type: 'text',
@@ -253,68 +224,78 @@
                    minWidth: 100
                    },
                },
            searchData: {
               result: '',
               material: '',
            },
            // 主机工下拉框
            usernameOptions: [],
            inspectionTable: [],
            rowInfo: {},
            pageParams: {
               countSize: 10, //每页数量
               pageSize: 1, // 当前页码
               total: 0
            },
            showAddPage: false,
            showAdd: false,
            showLook: false,
            showUp: false,
            showDetail: false,
            addInspectionform: [{
               number: '',
               username: '',
               projectname: '',
               tracenumber: '',
               code: '',
               class: '',
               specificationmodel: '',
               unit: '',
               quantity: '',
               group: '',
               worker: '',
               machine: ''
            }],
            inspectionItems: [{
               project: '布隆迪',
               unit: '吨',
               standardVal: '8219384314',
               controlVal: '9823401',
               detectionVal: '11111',
               device: '',
               conclusion: '合格'
            }],
            inspectionResultForm: [{
               id: '274024',
               name: '111',
               inspecter: '111',
               conclusion: '',
               operation: ''
            }],
            finishedInsInfo: {}
         }
      },
      created() {
         this.init()
         // this.getInspectionTableData()
      },
      created() { },
        watch:{
        printFormData(newVal){
            if(newVal){
                this.printFormData = newVal
            }
        }
    },
      methods: {
            //打印按钮
            printFun() {
                const style = '@page {margin: 10mm 5mm; margin-bottom: 0;margin-top:0;} ' +'@media print {.title{font-size:30pt;font-weight: 400;font-family: 黑体;!important;}' ;
                PrintJS({
                    printable: "printRaw",
                    type: "html",
                    scanStyles: false,
                    maxWidth: 1200,
                    header: "产品检测报告",
                    style:style,
                    css:'./title.css',
                    targetStyles: ["*"],
                    ignoreElements: ["no-ignore"],
                    orientation: 'portrait'
                });
            },
            //查看报告按钮
            showPrint(row){
                queryById(row.id).then(res=>{
                    this.printFormData = res.data.data
                    this.printFormData.createTime = row.createTime
                    this.printFormData.updateTime = row.updateTime
                    this.printDialogVisible = true
                }).catch(error=>{
                })
            },
            exportExcel(){
                let queryParam=this.$refs.finishedProduct.getQueryParam();
                delete queryParam.criteria
                exportExaminationProducts(queryParam).then((res)=>{
                    transform(res)
                })
            },
         deleteHandle(row){
            this.$confirm('确认删除该数据吗?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
            }).then(()=>{
               deletePro(row.id).then(res=>{
                  if(res.data.code == 0){
                     this.$message.success("删除成功")
                  }else{
                     this.$message.error("删除失败")
                  }
                  this.getData()
               })
            })
         },
         // 新增 / 修改
         addOrUpdateHandle(row) {
            this.$router.push({
               name: 'finishedProductForm',
               query: {
                        id: row == null ? null : row.id,
                    },
                    params: {
                        resultVal: row == null ? null : row.result
                    }
            })
         },
            formatResult(row, column, cellValue){
                if(cellValue != undefined || cellValue != null){
                    if(cellValue == 0){
@@ -327,67 +308,10 @@
            formatDateTime(row, column, cellValue) {
                return cellValue ? fecha.format(new Date(cellValue), 'yyyy-MM-dd') : ''
            },
            addOrUpdateHandle(row) {
                this.$router.push({
                    name: 'rawMaterialForm',
                    query: { id: row == null ? null : row.id }
                })
            },
            handleSelectionChange(){
            },
         // 每页条数改变时触发 选择一页显示多少行
         handleSizeChange(val) {
            console.log(`每页 ${val} 条`)
            this.currentPage = 1
            this.pageSize = val
            handleSelectionChange(){ },
         getData() {
            this.$refs.finishedProduct.getDataList()
         },
         // 当前页改变时触发 跳转其他页
         handleCurrentChange(val) {
            console.log(`当前页: ${val}`)
            this.currentPage = val
         },
         handleAddNew() {
            this.showAdd = true
         },
         // async getInspectionTableData() {
         //    const {
         //       data: {
         //          row,
         //          total
         //       }
         //    } = await this.$axios.get(this.$api.url.finishedInsListPage, {
         //       params: {
         //          ...this.pageParams,
         //          ...this.searchData
         //       }
         //    })
         //    this.inspectionTable = row
         //    this.pageParams.total = total
         // },
         goToDetail(row) {
            this.rowInfo = row
            this.showLook = true
         },
         goUp(row) {
            this.rowInfo = row
            this.showUp = true
         },
         async init() {
            // const {data} = await this.$axios.get(this.$api.url.finishedInspectUser)
            // this.usernameOptions = data
         },
         comBackMain(val) {
            this.showAdd = false
            this.showLook = false
            this.showUp = false
            this.init()
            // this.getInspectionTableData()
            if (val) {
               this.$parent.removeAllTab()
            }
         }
      }
   }