index.vue 12.4 KB
<template>
  <div class="app-container">
    <el-form ref="form" :model="queryParams" inline>
      <el-form-item label="仓库编码" size="small">
        <el-input
          v-model="queryParams.code"
          clearable
          size="small"
          style="width: 240px"
          @clear="handleQuery"></el-input>
      </el-form-item>
      <el-form-item label="名称" size="small">
        <el-input
          v-model="queryParams.name"
          clearable
          size="small"
          style="width: 240px"
          @clear="handleQuery"></el-input>
      </el-form-item>
      <el-form-item label="创建时间" size="small">
        <el-date-picker
          v-model="dateRange"
          type="datetimerange"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          :default-time="['00:00:00','23:59:59']">
        </el-date-picker>
      </el-form-item>
      <el-form-item size="small">
        <el-button size="small" icon="el-icon-search" type="primary" @click="handleQuery">搜索</el-button>
        <el-button size="small" icon="el-icon-refresh" @click="resetParams('form')">重置</el-button>
      </el-form-item>
    </el-form>

    <el-row style="margin-top: 6px" :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['']"
        >新增
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['']"
        >修改
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          icon="el-icon-delete"
          size="mini"
          :disabled="single"
          @click="handleDelete"
          v-hasPermi="['']"
        >删除
        </el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          icon="el-icon-plus"
          size="mini"
          :disabled="multiple"
          @click="openPrint"
          v-hasPermi="['']"
        >打印
        </el-button>
      </el-col>
      <div class="top-right-btn">
        <el-row>
          <el-tooltip class="item" effect="dark" content="隐藏搜索" placement="top">
            <el-button icon="el-icon-search" circle></el-button>
          </el-tooltip>
          <el-tooltip class="item" effect="dark" content="刷新" placement="top">
            <el-button icon="el-icon-refresh" circle></el-button>
          </el-tooltip>
        </el-row>
      </div>
    </el-row>
    <el-table
      ref="multipleTable"
      :data="tableData"
      :header-cell-style="{'text-align':'center',background:'#F8F8F9',color:'#515A6E'}"
      :cell-style="{'text-align':'center'}"
      tooltip-effect="dark"
      style="width: 100%"
      v-loading="loading"
      @select="fillData"
      @selection-change="handleSelectionChange"
    >
      <el-table-column type="selection" width="55"></el-table-column>
      <el-table-column prop="id" label="id"></el-table-column>
      <el-table-column prop="code" label="物料编码"></el-table-column>
      <el-table-column prop="name" label="名称"></el-table-column>
      <el-table-column prop="type" label="物料类别">
        <temple slot-scope="scope">
          <el-button type="info">{{ transferTypeFormat(scope.row.companyCode,typeData)}}</el-button>
        </temple>
      </el-table-column>
      <el-table-column prop="abcClass" label="ABC分类"></el-table-column>
      <el-table-column prop="spec" label="规格"></el-table-column>
      <el-table-column prop="locatingRule" label="定位规则"></el-table-column>
      <el-table-column prop="attentionTo" label="分配规则"></el-table-column>
      <el-table-column prop="replenishmentRule" label="补货规则"></el-table-column>
      <el-table-column prop="emptyLocRule" label="空货位规则" min-width="85"></el-table-column>
      <el-table-column prop="receivingFlow" label="入库流程"></el-table-column>
      <el-table-column prop="shippingFlow" label="出库流程"></el-table-column>
      <el-table-column prop="attributeTemplateCode" label="属性模板"></el-table-column>
      <el-table-column prop="trackSerialNum" label="记录序列号" min-width="85"></el-table-column>
      <el-table-column prop="autoGenSerialNum" label="自动生成序列号" min-width="120">
        <temple slot-scope="scope">
          <el-button :type="scope.row.autoGenSerialNum | binaryJudge" round>
            {{genFormat(scope.row.autoGenSerialNum)}}</el-button>
        </temple>
      </el-table-column>
      <el-table-column prop="autoGenSerialNumFormat" label="自动生成序列号表达式" min-width="150"></el-table-column>
      <el-table-column prop="snTemplateCode" label="序列号模板" min-width="85"></el-table-column>
      <el-table-column prop="enable" label="状态">
        <temple slot-scope="scope">
          <el-button size="mini" :type="scope.row.enable | enableFilter" round>{{
            statusFormat(scope.row.enable)
            }}</el-button>
        </temple>
      </el-table-column>
      <el-table-column prop="isMix" label="是否允许混放">
        <temple slot-scope="scope">
          <el-tag :type="scope.row.isMix | binaryJudge">{{isMixFormat(scope.row.isMix)}}</el-tag>
        </temple>
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
          >删除
          </el-button>
        </template>
      </el-table-column>
    </el-table>

    <el-pagination
      :current-page="queryParams.pageNum"
      :page-size="queryParams.pageSize"
      :page-sizes="[10,20,50,100]"
      :total="pageSize"
    />

    <itemCRUDDialog :show.sync="diaOpen" :title="title" :switch="switch1" :diaForm="diaForm"/>
    <printDialog :showP.sync="diaOpenPrint" :tableData="printData"/>

  </div>
</template>

<script>
  // companyCode
  // type
  // locatingRule
  // allocationRule
  // replenishmentRule
  // emptyLocRule
  // receivingFlow
  // shippingFlow
  import { queryList, edit, add, remove } from '@/api/config/InventoryInfo/material'
  import { queryList as queryType } from '@/api/config/InventoryInfo/materialType'
  import {} from '@/api/config/InventoryInfo/company'
  import { getDicts } from '@/api/system/dict/data'
  import itemCRUDDialog from '@/views/config/inventoryInfo/supplies/material/dialog/itemCRUDDialog'
  import printDialog from '@/views/config/inventoryInfo/supplies/material/dialog/printDialog'

  export default {
    name: 'material',
    components: {
      itemCRUDDialog,
      printDialog
    },
    filters: {
      // transferTypeToName(type,companyCode,list) {
      //   // console.log(list)
      //     list.forEach(item=>{
      //       if (type==item.type&&companyCode==item.companyCode)
      //         return item.name
      //     })
      // },
      //   transferAutoGenSerialNum(data){
      //     if (data == 0){
      //       return '自动生成'
      //     }else {
      //       return '不自动生成'
      //     }
      //   },
      // transferEnable(value,dict) {
      //   for (let key in dict) {
      //     if ((dict[key].dictValue == 0 && value == true)
      //       || (dict[key].dictValue == 1 && value == false)) {
      //       return dict[key].dictLabel
      //     }
      //   }
      // },
      // transferEnableType(value,dict){
      //   for (let key in dict) {
      //     if ((dict[key].dictValue == 0 && value == true)
      //       || (dict[key].dictValue == 1 && value == false)) {
      //       return dict[key].listClass
      //     }
      //   }
      // },
      // transferType(value){
      //   if (value){
      //     return 'success'
      //   }else {
      //     return 'danger'
      //   }
      // },
      // transferIsMix(data){
      //       // if (data){
      //       //   return '是'
      //       // }else {
      //       //   return '否'
      //       // }
      // }
    },
    data() {
      return {
        // 查询参数
        queryParams: {
          pageNum: 1,
          pageSize: 10
        },
        dateRange:[],
        //表格数据
        tableData: [],
        //打印数据
        printData: [],
        //新增、修改数据
        diaForm: {},
        // 非单个禁用
        single: true,
        //非多个禁用
        multiple: true,
        // 对话框标题
        title: '',
        //弹窗显示开关
        diaOpen: false,
        diaOpenPrint: false,
        pageNum: 1,
        // 是否有效数据字典
        statusOptions:[],
        pageSize: '',
        loading: true,
        date: [],
        //弹窗下拉框数据
        selectValue: [],
        //增加与修改转换开关
        switch1: '',
        //临时存放标签样式
        labelType: '',
        //临时存放类型样式
        typeData:'',
        dict: [],
        ids: [],
        tips: false
      }
    },
    created() {
      this.handleQuery()
      getDicts("enable").then(response => {
        this.statusOptions = response.data;
      })
      getDicts("sys_yes_no").then(response=>{
        response.forEach(item=>{
          this.statusOptions.push(item)
        })
      })
      getDicts("autoGenSerialNum").then(response=>{
        response.forEach(item=>{
          this.statusOptions.push(item)
        })
      })
      getDicts("isMix").then(response=>{
        response.forEach(item=>{
          this.statusOptions.push(item)
        })
      })
    },
    methods: {
      // 是否有效字典翻译
      statusFormat(item) {
        console.log(this.statusOptions)
        return this.selectDictLabel(this.statusOptions, item);
      },
      handleQuery() {
        this.loading = true
        // getDicts('sys_normal_disable').then(dictData => {
        //   this.dict = []
        //   for (let i = 0; i < dictData.data.length; i++) {
        //     this.dict.push({
        //       'dictValue': dictData.data[i].dictValue,
        //       'dictLabel': dictData.data[i].dictLabel,
        //       'listClass': dictData.data[i].listClass
        //     })
        //   }
        // })
        queryList(this.addDateRange(this.queryParams, this.dateRange)).then(res => {
          this.tableData = res.rows
          this.pageSize = res.total
          this.loading = false
        })
        queryType().then(data => {
                this.typeData=data.rows.map(item=>{
                  return {'code':item.code,'companyCode':item.companyCode,'name':item.name}
                })
              })
      },

      // 清空查询列表
      resetParams(formName) {
        this.queryParams.code = ''
        this.queryParams.name = ''
        this.dateRange=[]
        this.$refs[formName].resetFields()
        this.handleQuery()
      },

      // 多选框选中数据
      handleSelectionChange(selection) {
        this.ids = selection.map(item => item.id)
        this.printData = selection.map(item => {
          return {
            'code':item.code,
            'name':item.name,
            'type':item.type,
            'spec':item.spec
        }
        })
        this.single = selection.length != 1
        this.multiple = !selection.length
      },
      /**打开打印对话框*/
      openPrint() {
        this.diaOpenPrint = true
      },
      /**填入对话框数据*/
      fillData(selection, row){
        if(selection.length<=1){
          this.diaForm=selection[0]
        }
      },
      /** 新增按钮操作 */
      handleAdd() {
        this.switch1 = false
        this.title = '添加货主'
        this.diaOpen = true
      },
      /** 修改按钮操作 */
      handleUpdate() {
        this.switch1 = true
          this.title = '修改货主'
          this.diaOpen = true
      },
      /** 删除按钮操作 */
      handleDelete(row) {
        const code = row.code || this.ids
        this.$confirm('是否确认删除货主编号为"' + code + '"的数据项?', '警告', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(function() {
          return remove(code)
        }).then(() => {
          this.handleQuery()
          this.msgSuccess('删除成功')
        }).catch(function() {
        })
      }
      /**打印按钮操作*/

    }
  }
</script>

<style scoped>

</style>