zss
2024-04-12 4c1557b4c0cc76b24620c8f52e2ae01d65a95e42
src/views/equipment/metering/index.vue
@@ -19,9 +19,39 @@
          @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;page-break-before:always;page-break-after: always;">
              <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+'id@'+tem.id" :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>
  <script>
  import { delObj, fetchList,pullEquip } from '@/api/equipment/metering'
  import TableForm from './metering-form'
@@ -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,8 @@
        multipleSelection: [],
        uploadInfo: {
          // 是否展示上传EXCEL以及对应的url
          Download:false,
         isShow: true,
          download:false,
          isShow: true,
          url: '/mes/equipmentDevice/upload'
        },
        prelang: 'workstation',
@@ -53,7 +85,7 @@
          isRefresh: true, // 是否显示刷新按钮
          isShowHide: true, // 是否显示显影按钮
          isSearch: false, // 高级查询按钮
          defaultOrderBy: { column: 'manufactureDate', direction: 'desc' }
          defaultOrderBy: { column: 'id', direction: 'desc' }
        },
        table: {
          total: 0,
@@ -65,6 +97,7 @@
            // 设备编号
            {
              minWidth: '30',
              width: '100',
              prop: 'code',
              label: '设备编号',
              sort: true,
@@ -78,6 +111,7 @@
            // 设备名称
            {
              minWidth: '30',
              width: '100',
              prop: 'name',
              label: '设备名称',
              sort: true,
@@ -113,7 +147,7 @@
 // 制造日期
 {
              minWidth: '150',
              width: '250',
              width: '150',
              prop: 'createTime',
              label: '校准时间',
              sort: true,
@@ -122,10 +156,10 @@
              isSearch: true,
              searchInfoType: 'datetime'
            },
            {
              minWidth: '150',
              width: '250',
              width: '150',
              prop: 'updateTime',
              label: '校准到期时间',
              sort: true,
@@ -229,11 +263,6 @@
            },
          ],
          toolbar: [
            {
              text: '新增',
              type: 'primary',
              fun: this.addOrUpdateHandle
            },
            // {
            //   text: '同步',
            //   type: 'primary',
@@ -241,22 +270,7 @@
            //   fun: this.pullEquipFun
            // }
          ],
          operator: [
            {
              text: '修改',
              icon: 'el-icon-edit',
              type: 'text',
              size: 'small',
              fun: this.addOrUpdateHandle
            },
            {
              text: '删除',
              icon: 'el-icon-delete',
              type: 'text',
              size: 'small',
              fun: this.deleteHandle
            }
          ],
          operator: null,
          operatorConfig: {
            fixed: 'right',
            label: '操作',
@@ -265,17 +279,54 @@
          }
        },
        addOrUpdateVisible: false,
        workshopList: []
        workshopList: [],
        diaPrintTab: false
      }
    },
    components: {
      ttable,
      TableForm
      TableForm,
      vueQr
    },
    computed: {
      ...mapGetters(['permissions'])
    },
    created() {
      this.uploadInfo.isShow = this.permissions.equipment_metering_upload
      if(this.permissions.equipment_metering_add){
        this.table.toolbar.push({
              text: '新增',
              type: 'primary',
              fun: this.addOrUpdateHandle
            })
      }
      if(this.permissions.equipment_metering_labelprint){
        this.table.toolbar.push({
                text: '标签打印',
                type: 'primary',
                fun: this.labelPrint
              })
      }
      let arr = []
      if(this.permissions.equipment_metering_edit){
        arr.push({
              text: '修改',
              icon: 'el-icon-edit',
              type: 'text',
              size: 'small',
              fun: this.addOrUpdateHandle
            })
      }
      if(this.permissions.equipment_metering_del){
        arr.push({
              text: '删除',
              icon: 'el-icon-delete',
              type: 'text',
              size: 'small',
              fun: this.deleteHandle
            })
      }
      this.table.operator = arr.length>0 ? arr : null
      remote('work_shop').then((response) => {
        if (response.data.code === 0) {
          this.workshopList = response.data.data
@@ -285,6 +336,32 @@
      })
    },
    methods: {
      printFun() {
          this.diaPrintTab = false;
          PrintJS({
              printable: 'printMetering',//页面
              type: "html",//文档类型
                maxWidth:450,
                targetStyles:['*'],
                style: `@page {
                  margin:0;
                  padding: 0;
                  size: 360px 170px landscape;
                }
                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=>{
@@ -337,8 +414,14 @@
            this.$message.success('删除成功')
            this.getData()
          })
      },
      labelPrint(){
        if(this.multipleSelection.length==0){
          this.$message.warning('请选择一条数据')
          return
        }
        this.diaPrintTab = true
      }
    }
  }
  </script>