zhangherong
18 小时以前 7282d4b49f4577c6807a78bdd6e705feb2fe0e2c
src/views/lsw/LswMateriaView.vue
@@ -1,12 +1,10 @@
<template>
  <a-card
    :bordered="false"
    title="线边库物料信息"
  >
    :bordered="false">
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <a-form-item label="物料编码">
              <j-input placeholder="请输入物料编码" v-model="queryParam.materialNumber"></j-input>
            </a-form-item>
@@ -16,20 +14,27 @@
              <j-input placeholder="请输入物料名称" v-model="queryParam.materialName"></j-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="物料型号">
              <j-input placeholder="请输入物料型号" v-model="queryParam.materialModel"></j-input>
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <a-form-item label="状态">
              <j-dict-select-tag placeholder="请选择状态" dictCode="dict_item_status"
                                 v-model="queryParam.materialStatus"></j-dict-select-tag>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <a-form-item label="物料类型">
              <j-dict-select-tag placeholder="请输入物料类型"  dictCode="material_category" v-model="queryParam.materialCategory"></j-dict-select-tag>
              <j-dict-select-tag placeholder="请选择物料类型" dictCode="material_category"
                                 v-model="queryParam.materialCategory"></j-dict-select-tag>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
          <a-col :xl="2" :lg="7" :md="8" :sm="24">
            <a-form-item label="空类型">
              <a-switch v-model="queryParam.materialCategoryNull"></a-switch>
            </a-form-item>
          </a-col>
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </span>
          </a-col>
        </a-row>
@@ -44,14 +49,72 @@
          size="middle"
          bordered
          rowKey="id"
          :rowClassName="tableRowClass"
          :columns="columns"
          :dataSource="dataSource"
          :pagination="ipagination"
          :loading="loading"
          :rowSelection="{ selectedRowKeys: selectedRowKeys,
  onChange: onSelectChange,
  type: 'radio'}"
          :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: 'radio'}"
          @change="handleTableChange">
          <!--状态栏个性展示-->
          <span
            slot="status"
            slot-scope="text,record"
          >
          <a-badge
            v-if="record.materialStatus==='1'"
            status="success"
          />
          <span
            v-if="record.materialStatus==='1'"
            class="success"
          >启用</span>
          <a-badge
            v-if="record.materialStatus==='0'"
            status="error"
          />
          <span
            v-if="record.materialStatus==='0'"
            class="error"
          >禁用</span>
        </span>
          <span
            slot="action"
            slot-scope="text, record"
          >
          <a
            href="javascript:;"
            @click="handleEdit(record)"
          >编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多
              <a-icon type="down" />
            </a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <a-menu-item v-if="record.materialStatus === '1'">
                <a-popconfirm
                  title="确定禁用吗?"
                  @confirm="() => handleActive(record)"
                >
                  <a>禁用</a>
                </a-popconfirm>
              </a-menu-item>
              <a-menu-item v-else>
                <a-popconfirm
                  title="确定启用吗?"
                  @confirm="() => handleActive(record)"
                >
                  <a>启用</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
        </a-table>
      </div>
      <!-- 子表单区域 -->
@@ -85,8 +148,6 @@
import { getAction } from '@/api/manage'
import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
import { JVXETypes } from '@/components/jeecg/JVxeTable'
import { getRefPromise, VALIDATE_FAILED } from '@/components/jeecg/JVxeTable/utils/vxeUtils.js'
import { validateDuplicateValue } from '@/utils/util'
import JFormContainer from '@/components/jeecg/JFormContainer'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import LswMaterialModal from '@views/lsw/modules/LswMaterialModal.vue'
@@ -140,9 +201,12 @@
          dataIndex: 'materialName'
        },
        {
          title: '物料型号',
          title: '物料状态',
          align: 'center',
          dataIndex: 'materialModel'
          scopedSlots: {
            customRender: 'status'
          },
          dataIndex: 'materialStatus'
        },
        {
          title: '物料类型',
@@ -150,9 +214,16 @@
          dataIndex: 'materialCategory_dictText'
        },
        {
          title: '单位',
          title: '基本计量单位',
          align: 'center',
          dataIndex: 'materialUnit'
        },
        {
          width: 150,
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          scopedSlots: { customRender: 'action' }
        }
      ],
      // 物料库存信息
@@ -204,10 +275,13 @@
      },
      url: {
        //searchlikeQuery
        list: '/lswmaterial/lswMaterial/list',
        queryById: '/lswmaterial/lswMaterial/queryById',
        list: '/lsw/lswMaterial/list',
        edit: '/lsw/lswMaterial/edit',
        active: '/lsw/lswMaterial/active',
        inactive: '/lsw/lswMaterial/inactive',
        queryById: '/lsw/lswMaterial/queryById',
        lswMaterialInventory: {
          list: '/lswmaterial/lswMaterial/queryLswMaterialInventoryByMainId'
          list: '/lsw/lswMaterial/queryLswMaterialInventoryByMainId'
        }
      }
    }
@@ -226,19 +300,23 @@
    },
    totalInventoryQuantity() {
      if (!this.lswMaterialInventoryTable.dataSource || this.lswMaterialInventoryTable.dataSource.length === 0) {
        return '0';
        return '0'
      }
      return this.lswMaterialInventoryTable.dataSource.reduce((sum, item) => {
        const quantity = Number(item.quantity) || 0;
        return sum + quantity;
      }, 0);
        const quantity = Number(item.quantity) || 0
        return sum + quantity
      }, 0)
    },
  },
  created() {
  },
  methods: {
    handleCustomAdd(){
      console.log('点击新增了')
    //禁用状态样式
    tableRowClass(record, index) {
      if (record.warehouseStatus != '1') {
        return 'frozenRowClass'
      }
      return ''
    },
    handleTableChange() {
      console.log('test---->', this.selectedRowKeys[0])
@@ -256,11 +334,74 @@
        this.lswMaterialInventoryTable.dataSource = lswMaterialInventoryResult.result
        this.lswMaterialInventoryTable.loading = false
      }
    },
    handleActive(record) {
      let url = this.url.active;
      if (record.materialStatus === '1') {
        url = this.url.inactive
      }
      let that = this
      getAction(url, { id: record.id }).then((res) => {
        if (res.success) {
          that.$message.success(res.message)
          that.loadData()
        } else {
          that.$message.warning(res.message)
        }
      })
    }
  }
}
</script>
<style scoped>
<style lang="less" scoped>
@import '~@assets/less/common.less';
.frozenRowClass {
  color: #c9c9c9;
}
.success {
  color: green;
}
.error {
  color: red;
}
.fontweight {
  font-weight: bold;
}
.ant-card-body .table-operator {
  margin-bottom: 18px;
}
.ant-table-tbody .ant-table-row td {
  padding-top: 15px;
  padding-bottom: 15px;
}
.anty-row-operator button {
  margin: 0 5px;
}
/deep/ .ant-btn-danger {
  background-color: #ffffff;
}
.ant-modal-cust-warp {
  height: 100%;
}
.ant-modal-cust-warp .ant-modal-body {
  height: calc(100% - 110px) !important;
  overflow-y: auto;
}
.ant-modal-cust-warp .ant-modal-content {
  height: 90% !important;
  overflow-y: hidden;
}
</style>