hyingbo
2 天以前 ba1a2f73f9ce33d175bea4060d217b9f7a08eeed
src/views/tms/lossBound/modules/LossboundModal.vue
@@ -89,7 +89,7 @@
        <a-row>
          <a-col :span="12">
            <a-form-model-item label="报损原因" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="lossReason">
              <a-textarea :disabled="disableSubmit" v-model="model.lossReason" rows="4" placeholder="请输入备注" />
              <a-textarea :disabled="disableSubmit" v-model="model.lossReason" rows="4" placeholder="请输入报损原因" />
            </a-form-model-item>
          </a-col>
        </a-row>
@@ -113,9 +113,20 @@
      @change="handleTableChange">
      <template v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index">
        <a-input-number :disabled="disableSubmit" :value="text" v-if="col.dataIndex == 'lossNumber'" :min="0"
                        :max="99999"
                        @change="(e) => handleChange(e, record.key, col, index)" style="width: 100%;" />
        <div v-if="col.dataIndex == 'lossNumber'">
          <a-input-number
            :disabled="disableSubmit"
            :value="text"
            :min="0"
            :max="99999"
            @change="(e) => handleChange(e, record.key, col, index)"
            style="width: 100%;"
          />
          <div v-if="record.lossNumberError" style="color: #f5222d; font-size: 12px; margin-top: 4px;">
            {{ record.lossNumberMsg }}
          </div>
        </div>
        <a-textarea
          v-if="col.dataIndex == 'lossReason'"
          :disabled="disableSubmit"
@@ -193,10 +204,10 @@
          width: 50
        },
        {
          title: '刀具编号',
          dataIndex: 'toolCode',
          title: '刀具编码',
          dataIndex: 'toolId',
          align: 'center',
          width: 150
          width: 200
        },
        {
@@ -205,7 +216,22 @@
          align: 'center',
          width: 150
        },
        {
          title: '报损原因',
          width: 150,
          dataIndex: 'lossReason',
          align: 'center',
          scopedSlots: { customRender: 'lossReason' }
        },
        {
          title: '报损数量',
          dataIndex: 'lossNumber',
          align: 'center',
          width: 150,
          scopedSlots: { customRender: 'lossNumber' },
          key: 'lossNumber'
        },
        {
          title: '中文名称',
          dataIndex: 'chineseName',
@@ -245,21 +271,7 @@
          dataIndex: 'goodsShelvesId',
          align: 'center'
        },
        {
          title: '报损原因',
          width: 150,
          dataIndex: 'lossReason',
          align: 'center',
          scopedSlots: { customRender: 'lossReason' }
        },
        {
          title: '报损数量',
          dataIndex: 'lossNumber',
          align: 'center',
          width: 150,
          scopedSlots: { customRender: 'lossNumber' }
        },
        {
          title: '备注',
@@ -304,8 +316,8 @@
    this.$bus.$on('selectionRows', (data) => {
      for (let i = 0; i < data.length; i++) {
        this.dataSource.push({
          toolId: data[i].id,
          toolCode: data[i].toolCode,
          toolCode:data[i].toolCode,
          toolId:data[i].toolId,
          classifyId: data[i].classifyId,
          applicationType: data[i].applicationType_dictText,
          chineseName: data[i].chineseName,
@@ -314,8 +326,10 @@
          supplierId: data[i].supplierId,
          goodsShelvesId: data[i].positionCode,
          toolMaterial: data[i].toolMaterial,
          partMaterial: data[i].partMaterial
          partMaterial: data[i].partMaterial,
          lossNumber: null, // 初始化报损数量
          lossNumberError: false, // 校验状态
          lossNumberMsg: '' // 错误信息
        })
      }
      this.ipagination.total = this.dataSource.length
@@ -332,13 +346,15 @@
      const target = temp.filter(item => key === item.key)[index]
      if (target) {
        target[column.dataIndex] = value
        this.dataSource = temp
        if (column.dataIndex === 'lossNumber') {
          target[column.dataIndex] = value
        }
        if (column.dataIndex === 'lossReason') {
          target[column.dataIndex] = value
        if (column.dataIndex === 'lossNumber') {
          if (value === null || value === undefined || value <= 0) {
            target.lossNumberError = true
            target.lossNumberMsg = '报损数量不能为空且必须大于0'
          } else {
            target.lossNumberError = false
            target.lossNumberMsg = ''
          }
        }
        this.dataSource = temp
      }
@@ -398,6 +414,17 @@
      // 触发表单验证
      this.$refs.form.validate(valid => {
        if (valid) {
          let isTableValid = true
          this.dataSource.forEach((row, index) => {
            this.handleChange(row.lossNumber, row.key, { dataIndex: 'lossNumber' }, index)
            if (row.lossNumberError) {
              isTableValid = false
            }
          })
          if (!isTableValid) {
            return false
          }
          this.model.toolsLossBoundDetailList = this.dataSource
          that.confirmLoading = true
          let httpurl = ''