lixiangyu
4 天以前 e4e75a7312f5195144b105d59ac90f26e174d4ba
feat(cms): 优化刀具入库和库存列表功能

- 修改入库按钮文本为"新刀入库"
- 优化刀具入库表单布局和样式
- 完善刀具库存列表查询功能- 调整刀具库存列表显示格式,增加总数列
已修改3个文件
123 ■■■■■ 文件已修改
src/views/cms/CuttingInboundList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/cms/CuttingInventoryList.vue 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/cms/modules/CuttingInboundModal.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/cms/CuttingInboundList.vue
@@ -68,7 +68,7 @@
    <!-- 操作按钮区域 -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button @click="handleAdd" type="primary" icon="plus">新刀入库</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('刀具入库单')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
src/views/cms/CuttingInventoryList.vue
@@ -2,41 +2,41 @@
  <a-card :bordered="false">
    <!-- 查询区域 -->
    <div class="table-page-search-wrapper">
<!--      <a-form layout="inline" @keyup.enter.native="searchQuery">-->
<!--        <a-row :gutter="24">-->
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
<!--          <a-col :md="6" :sm="8">-->
<!--            <a-form-item label="刀具编码">-->
<!--              <a-input placeholder="请输入刀具编码" v-model="queryParam.cuttingId" />-->
<!--            </a-form-item>-->
<!--          </a-col>-->
<!--          <a-col :md="6" :sm="8">-->
<!--              <a-form-item label="刀具条码">-->
<!--                <a-input placeholder="请输入刀具条码" v-model="queryParam.cuttingBarcode" />-->
<!--              </a-form-item>-->
<!--            </a-col>-->
<!--            <a-col-->
<!--            :md="6"-->
<!--            :sm="8"-->
<!--          >-->
<!--            <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>-->
<!--            </span>-->
<!--          </a-col>-->
<!--        </a-row>-->
<!--      </a-form>-->
          <a-col :md="6" :sm="8">
              <a-form-item label="刀具条码">
                <a-input placeholder="请输入刀具条码" v-model="queryParam.cuttingBarcode" />
              </a-form-item>
            </a-col>
            <a-col
            :md="6"
            :sm="8"
          >
            <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>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- 查询区域-END -->
@@ -220,9 +220,27 @@
            align: "center",
          },
          {
            title: '数量',
            title: '总数',
            dataIndex: 'cuttingIdNumber',
            align: "center"
            align: "center",
            customRender: (text, record, index) => {
              const obj = {
                children: text,
                attrs: {}
              };
              // 只在第一行显示总数量,其他行显示空
              if (record.rowSpan !== undefined && record.rowSpan > 0) {
                obj.children = text;
                obj.attrs.rowSpan = record.rowSpan;
              } else if (record.rowSpan === 0) {
                obj.children = '';
                obj.attrs.rowSpan = 0;
              } else {
                obj.children = text;
                obj.attrs.rowSpan = 1;
              }
              return obj;
            }
          }
        ],
        url: {
@@ -475,7 +493,8 @@
        }
        return result;
      }
      },
    }
  }
</script>
src/views/cms/modules/CuttingInboundModal.vue
@@ -26,7 +26,8 @@
        <a-row style="width: 100%">
          <a-col :span="24">
            <a-form-item label="入库说明" :labelCol="{span:3}" :wrapperCol="{span:21}">
              <a-textarea :disabled="disableSubmit" placeholder="请输入入库说明" v-decorator="['receiveComment', validatorRules.receiveComment]" />
              <a-textarea :disabled="disableSubmit" placeholder="请输入入库说明"
                          v-decorator="['receiveComment', validatorRules.receiveComment]" />
            </a-form-item>
          </a-col>
        </a-row>
@@ -54,7 +55,8 @@
        <a-row style="width: 100%">
          <a-col :span="24">
            <a-form-item label="确认意见" :labelCol="{span:3}" :wrapperCol="{span:21}">
              <a-textarea :disabled="disableSubmit" placeholder="请输入确认意见" v-decorator="['confirmComment', validatorRules.confirmComment]" />
              <a-textarea :disabled="disableSubmit" placeholder="请输入确认意见"
                          v-decorator="['confirmComment', validatorRules.confirmComment]" />
            </a-form-item>
          </a-col>
        </a-row>
@@ -112,6 +114,7 @@
  import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
  import { filterObj } from '@/utils/util'
  import store from '@/store/'
  export default {
    name: 'CuttingInboundModal',
    components: {
@@ -119,7 +122,7 @@
    JMultiSelectTag,
    JDictSelectTag,
    store,
    moment,
    moment
  },
    data () {
      return {
@@ -133,7 +136,7 @@
        },
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0,
        total: 0
      },
      title:'新增',
         visible: false,
@@ -141,19 +144,18 @@
      model: {},
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
        sm: { span: 6 }
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 18 },
        sm: { span: 18 }
      },
      confirmLoading: false,
      loading: false,
      form: this.$form.createForm(this),
      dataSource: [],
      param: {},
      validatorRules: {
      },
      validatorRules: {},
      columns: [
        {
          title: '#',
@@ -163,35 +165,35 @@
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          },
          }
        },
        {
          title: '刀具编码',
          align: 'center',
          dataIndex: 'cuttingCode',
          width: 150,
          width: 150
        },
        {
          title: '刀具名称',
          align: 'center',
          dataIndex: 'cuttingName',
          dataIndex: 'cuttingName'
        },
        {
          title: '入库数量',
          align: 'center',
          dataIndex: 'receiveNumber',
          scopedSlots: { customRender: 'receiveNumber' },
          scopedSlots: { customRender: 'receiveNumber' }
        },
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          scopedSlots: { customRender: 'action' },
        },
          scopedSlots: { customRender: 'action' }
        }
      ],
      url: {
        add: '/cms/cuttingInbound/add',
        detailList: '/cms/cuttingInbound/detailList',
        detailList: '/cms/cuttingInbound/detailList'
      },
      orderId:'',
      disableSubmit:false
@@ -303,7 +305,7 @@
      this.dataSource = []
      this.visible = false
      this.disableSubmit = false
    },
    }
    },
    mounted() {
    this.$bus.$on('selectionRows', (data) => {
@@ -316,6 +318,6 @@
        })
      }
    })
  },
  }
  }
</script>