zss
2023-12-07 95cafbee8f05dc6fbc6256c5cd84bcfe3621107f
src/views/equipment/metering/index.vue
@@ -19,6 +19,36 @@
          @refreshDataList="getData"
        ></table-form>
      </basic-container>
      <el-dialog title="标签列表" :visible.sync="diaPrintTab" width="500px" top="5vh">
        <div style="width:100%;height:400px;overflow-y: auto;">
          <div class="dia_body" id="printMetering">
            <el-card class="box-card" v-for="(tem, i) in multipleSelection" :key="i" style="margin-bottom: 10px; font-size: 16px !important;">
              <el-row>
                <el-col :span="10" :offset="3">序号:</el-col>
                <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col>
              </el-row>
              <el-row>
                <el-col :span="10" :offset="3">编号:</el-col>
                <el-col :span="10" style="font-weight: bold;">{{ tem.code }}</el-col>
              </el-row>
              <el-row>
                <el-col :span="10" :offset="3">设备名称:</el-col>
                <el-col :span="10" style="font-weight: bold;">{{ tem.name }}</el-col>
              </el-row>
              <el-row>
                <el-col :span="10" :offset="3">设备二维码:</el-col>
                <el-col :span="10">
                  <vueQr :text="tem.code" :size="80" :margin="2"></vueQr>
                </el-col>
              </el-row>
            </el-card>
          </div>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="diaPrintTab = false">取 消</el-button>
          <el-button type="primary" @click="printFun">打 印</el-button>
        </span>
      </el-dialog>
    </div>
  </template>
  
@@ -29,6 +59,8 @@
  import { mapGetters } from 'vuex'
  import * as fecha from 'element-ui/lib/utils/date'
  import { remote } from '../../../api/admin/dict'
  import vueQr from 'vue-qr'
  import PrintJS from 'print-js'
  export default {
    data() {
      return {
@@ -36,8 +68,9 @@
        multipleSelection: [],
        uploadInfo: {
          // 是否展示上传EXCEL以及对应的url
          isShow: true,
          url: '/mes/equipment/upload'
          Download:false,
         isShow: true,
          url: '/mes/equipmentDevice/upload'
        },
        prelang: 'workstation',
        options: {
@@ -94,20 +127,55 @@
            //   isSearch: true,
            //   searchInfoType: 'text'
            // },
            // {
            //   minWidth: '30',
            //   prop: 'type',
            //   label: '设备类型',
            // //   sort: true,
            //   isTrue: true,
            //   isSearch: true,
            // //   searchInfoType: 'select',
            //   formatter: this.workShopFormatter,
            // //   optList: () => {
            // //     return this.workshopList
            // //   }
            // },
            // 型号规格
 // 制造日期
 {
              minWidth: '150',
              width: '250',
              prop: 'createTime',
              label: '校准时间',
              sort: true,
              isTrue: true,
              formatter: this.formatReceiveTime,
              isSearch: true,
              searchInfoType: 'datetime'
            },
            {
              minWidth: '150',
              width: '250',
              prop: 'updateTime',
              label: '校准到期时间',
              sort: true,
              isTrue: true,
              formatter: this.formatReceiveTime,
              isSearch: true,
              searchInfoType: 'datetime'
            },
            {
              minWidth: '30',
              prop: 'type',
              label: '设备类型',
            //   sort: true,
              prop: 'createUser',
              label: '负责人',
              sort: true,
              isTrue: true,
              isSearch: true,
            //   searchInfoType: 'select',
              formatter: this.workShopFormatter,
            //   optList: () => {
            //     return this.workshopList
            //   }
              isSearch: false,
              searchInfoType: 'text'
            },
            // 型号规格
            {
              minWidth: '30',
              prop: 'supplier',
@@ -127,29 +195,69 @@
              isSearch: true,
              searchInfoType: 'text'
            },
            // 制造日期
            {
              minWidth: '150',
              width: '250',
              prop: 'createTime',
              label: '创建时间',
               // 状态
               {
              minWidth: '30',
              prop: 'responsibleDepartment',
              label: '负责部门',
              sort: true,
              isTrue: true,
              formatter: this.formatReceiveTime,
              isSearch: true,
              searchInfoType: 'datetime'
              searchInfoType: 'text'
            },
            {
              minWidth: '150',
              width: '250',
              prop: 'updateTime',
              label: '修改时间',
              minWidth: '30',
              prop: 'inspectionUnit',
              label: '检验单位',
              sort: true,
              isTrue: true,
              formatter: this.formatReceiveTime,
              isSearch: true,
              searchInfoType: 'datetime'
              searchInfoType: 'text'
            },
            {
              minWidth: '30',
              prop: 'certificate',
              label: '证书编号',
              sort: true,
              isTrue: true,
              isSearch: true,
              searchInfoType: 'text'
            },
            {
              minWidth: '30',
              prop: 'verification',
              label: '检定',
              sort: true,
              isTrue: true,
              isSearch: true,
              searchInfoType: 'text'
            },
            {
              minWidth: '30',
              prop: 'classification',
              label: '分类',
              sort: true,
              isTrue: true,
              isSearch: true,
              searchInfoType: 'text'
            },
            {
              minWidth: '30',
              prop: 'fixedPointPosition',
              label: '定点位置',
              sort: true,
              isTrue: true,
              isSearch: true,
              searchInfoType: 'text'
            },
            {
              minWidth: '30',
              prop: 'specifications',
              label: '规格',
              sort: true,
              isTrue: true,
              isSearch: true,
              searchInfoType: 'text'
            },
          ],
          toolbar: [
@@ -157,6 +265,11 @@
              text: '新增',
              type: 'primary',
              fun: this.addOrUpdateHandle
            },
            {
              text: '标签打印',
              type: 'primary',
              fun: this.labelPrint
            },
            // {
            //   text: '同步',
@@ -189,12 +302,14 @@
          }
        },
        addOrUpdateVisible: false,
        workshopList: []
        workshopList: [],
        diaPrintTab: false
      }
    },
    components: {
      ttable,
      TableForm
      TableForm,
      vueQr
    },
    computed: {
      ...mapGetters(['permissions'])
@@ -209,6 +324,32 @@
      })
    },
    methods: {
      printFun() {
          this.diaPrintTab = false;
          PrintJS({
              printable: 'printMetering',//页面
              type: "html",//文档类型
                maxWidth:450,
                targetStyles:['*'],
                style: `@page {
                  margin:0;
                  padding: 0;
                  size: 360px 170px;
                }
                html{
                  zoom:100%;
                }
                @media print{
                  width: 360px;
                  height: 170px;
                  margin:0;
                  padding: 0;
                }`,
                onPrintDialogClose: this.erexcel=false,
                targetStyles: ["*"], // 使用dom的所有样式,很重要
                font_size: '',
          });
      },
      pullEquipFun(){
        this.table.toolbar.find((e) => e.text === '同步').loading = true
        pullEquip().then(res=>{
@@ -261,6 +402,13 @@
            this.$message.success('删除成功')
            this.getData()
          })
      },
      labelPrint(){
        if(this.multipleSelection.length==0){
          this.$message.warning('请选择一条数据')
          return
        }
        this.diaPrintTab = true
      }
    }
  }