whj před 1 rokem
rodič
revize
b40fdaf46c

+ 1 - 1
src/views/repair/application-form/modules/DetailRepair.vue

@@ -445,7 +445,7 @@ import BigRepairForm from './BigRepairForm'
 import { startSbInfoScrap } from '@/api/activiti/activiti-sb-scrap'
 import AuditFrom2 from './AuditFrom2.vue'
 import AddForm from './BaseForm.vue'
-import OutStroeForm from '@/views/store/outstoreform/modules/BaseFormYY.vue'
+import OutStroeForm from '@/views/store/outstoreform/modules/BaseFormYY2.vue'
 import { queryRepairUser } from '@/api/upms/user'
 const DetailListItem = DetailList.Item
 

+ 722 - 0
src/views/store/outstoreform/modules/BaseFormYY2.vue

@@ -0,0 +1,722 @@
+<template>
+  <a-card :bordered="false" v-show="visible" class="card" :title="modalTitle">
+    <a-form :form="form">
+      <a-form-item v-show="false" >
+        <a-input v-decorator="['id']" type="hidden"/>
+        <a-input v-decorator="['storeId']" type="hidden"/>
+        <a-input v-decorator="['pickId']" type="hidden"/>
+        <a-input v-decorator="['outFlag']" type="hidden"/>
+      </a-form-item>
+      <a-row :gutter="24">
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="出库单号"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              disabled
+              v-decorator="['outNo', {rules: [{required: false, message: '出库单号不能为空'}]}]" />
+          </a-form-item>
+        </a-col>
+        <!--        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="领用/退货单号"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-input
+              disabled
+              style="width: 70%"
+              v-decorator="['pickNo']"/>
+            <a-button type="primary" style="width: 30%" @click="handleSparePickFormSelect">选择</a-button>
+          </a-form-item>
+        </a-col>
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="仓库"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-tree-select
+              style="width: 100%"
+              @change="handleStoreChange"
+              :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+              :treeData="storeTreeDate"
+              :treeNodeFilterProp="'title'"
+              :showSearch="true"
+              v-decorator="['storeId', {rules: [{required: false, message: '仓库不能为空'}]}]"
+              placeholder="请选择"
+            >
+            </a-tree-select>
+          </a-form-item>
+        </a-col>-->
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="申请部门"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-tree-select
+              style="width: 100%"
+              :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+              :treeData="deptYYMap"
+              v-decorator="['applyDept', {initValue: '09', rules: [{required: true, message: '申请部门不能为空'}]}]"
+              placeholder="请选择"
+            >
+            </a-tree-select>
+            <!-- <a-select @change="typeChange" v-decorator="['applyDept', {initValue: 1, rules: [{required: true, message: '申请部门不能为空'}]}]" placeholder="请选择">
+              <a-select-option
+                v-for="({label,value}) in deptYYMap"
+                :key="value"
+                :label="label"
+                :value="value">{{ label }}
+              </a-select-option>
+            </a-select> -->
+          </a-form-item>
+        </a-col>
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="出库类型"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select @change="typeChange" v-decorator="['type', {initValue: 1, rules: [{required: true, message: '出库类型不能为空'}]}]" placeholder="请选择">
+              <a-select-option
+                v-for="(label,value) in typeMap"
+                :key="value"
+                :label="label"
+                :value="parseInt(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <!--        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="操作人"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['userId']" placeholder="请选择">
+              <a-select-option
+                v-for="({userId, realName}) in userList"
+                :key="userId"
+                :label="realName"
+                :value="userId">{{ realName }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>-->
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="领用日期"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-date-picker
+              style="width: 100%"
+              :format="BaseTool.Date.PICKER_NORM_DATE_PATTERN"
+              v-decorator="['userTime', {rules: [{required: true, message: '操作时间不能为空'}]}]" />
+          </a-form-item>
+        </a-col>
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="成本归属"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['feeFrom', {rules: [{required: true, message: '成本归属不能为空'}]}]" placeholder="请选择">
+              <a-select-option
+                v-for="(label,value) in feeFromMap"
+                :key="value"
+                :label="label"
+                :value="value">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <!--        <a-tree-select-->
+        <!--          style="width: 100%"-->
+        <!--          :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"-->
+        <!--          :treeData="treeData"-->
+        <!--          :treeNodeFilterProp="'title'"-->
+        <!--          :showSearch="true"-->
+        <!--          v-decorator="['parentId', {rules: [{required: isShowParent, message: '上层设备类型不能为空'}]}]"-->
+        <!--          placeholder="请选择"-->
+        <!--        >-->
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="厂区"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-model="tokenType" placeholder="请选择" @change="setTree">
+              <a-select-option
+                v-for="(label,value) in flagMap"
+                :key="value"
+                :label="label"
+                :value="parseInt(value)">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="用途备注"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-textarea
+              :rows="4"
+              v-decorator="['remark', {rules: [{required: false, message: '备注不能为空'}]}]"/>
+          </a-form-item>
+        </a-col>
+
+        <a-col :lg="12" :md="24" :sm="24">
+          <a-form-item
+            label="项目:"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-tree-select
+              style="width: 100%"
+              :treeData="treeData"
+              :showSearch="true"
+              tree-node-filter-prop="title"
+              :dropdownStyle="{ maxHeight: '400px', overflow: 'auto' }"
+              v-decorator="['projectId']"
+              placeholder="请选择"
+            >
+            </a-tree-select>
+          </a-form-item>
+
+          <a-form-item
+            label="部门"
+            :labelCol="BaseTool.Constant.labelCol"
+            :wrapperCol="BaseTool.Constant.wrapperCol"
+          >
+            <a-select v-decorator="['deptId', {rules: [{required: true, message: '部门不能为空'}]}]" placeholder="请选择">
+              <a-select-option
+                v-for="(label,value) in (tokenType===2?lyDeptMap:sdDeptMap)"
+                :key="value"
+                :label="label"
+                :value="value">{{ label }}
+              </a-select-option>
+            </a-select>
+          </a-form-item>
+        </a-col>
+      </a-row>
+    </a-form>
+    <title-divider title="备件明细" width="90px"></title-divider>
+    <div class="table-operator" style="margin-bottom: 8px;">
+      <a-button size="small" type="primary" @click="handleSpareStoreSelect">
+        <a-icon type="plus"/>
+        添加
+      </a-button>
+      <a-button class="margin-left8" size="small" type="danger" @click="handleDel">
+        <a-icon type="delete"/>
+        删除
+      </a-button>
+    </div>
+    <a-table
+      bordered
+      :data-source="data"
+      :columns="columns"
+      tableLayout="auto"
+      rowKey="autoId"
+      :row-selection="rowSelection">
+      <template slot="num" slot-scope="text, record">
+        <div class="editable-cell-input-wrapper">
+          <a-input :value="text" :id="record.autoId + ',num'" @change="$event => onQuantityChange($event, record.autoId, 'num')" />
+        </div>
+      </template>
+      <template slot="addBom" slot-scope="text, record">
+        <div>
+          <a-switch v-model="record.addBom" />
+        </div>
+      </template>
+      <template slot="remark" slot-scope="text, record">
+        <div>
+          <a-input v-model="record.remark" />
+        </div>
+      </template>
+      <span slot="action" slot-scope="record">
+        <template>
+          <a @click="handleBaseFormForModifySelect(record)">修改</a>
+          <a-divider type="vertical" />
+          <a-popconfirm title="是否要删除该条数据?" @confirm="handleDelOne(record)">
+            <a>删除</a>
+          </a-popconfirm>
+        </template>
+      </span>
+    </a-table>
+    <a-row :gutter="48" >
+      <a-col :md="48" :sm="48">
+        <span class="table-page-search-submitButtons" style="float: right;margin-top: 10px">
+          <a-button :loading="confirmLoading" type="primary" @click="save()">提交</a-button>
+          <a-button style="margin-left: 8px" @click="handleCancel()">返回</a-button>
+        </span>
+      </a-col>
+    </a-row>
+    <spare-pick-form-select-modal ref="sparePickFormSelectModal" @selected="handleSparePickFormSelected"/>
+    <spare-back-form-select-modal ref="spareBackFormSelectModal" @selected="handleSpareBackFormSelected"/>
+    <spare-store-select-modal ref="spareStoreSelectModal" @selected="handleSpareStoreSelected"/>
+    <spare-store-select-modal2 ref="spareStoreSelectModal2" @selected="handleSpareStoreSelected"/>
+    <detail-base-form ref="detailBaseForm" @selected="handleDetailSelected"/>
+    <store-select-modal ref="storeSelectModal" @selected="handleStoreSelected"/>
+    <base-form-for-modify ref="baseFormForModify" @selected="handleBaseFormForModifySelected"/>
+  </a-card>
+</template>
+
+<script>
+import pick from 'lodash.pick'
+import { addOutStoreFormYY, updateOutStoreFormYY } from '@/api/store/outstoreform'
+import SparePickFormSelectModal from '@/views/store/sparepickform/modules/SparePickFormSelectModal'
+import SpareBackFormSelectModal from '@/views/store/sparebackform/modules/SpareBackFormSelectModal'
+import DetailBaseForm from './DetailBaseForm'
+import StoreSelectModal from '@/views/store/store/modules/StoreSelectModal'
+import SpareStoreSelectModal from '@/views/store/sparestore/modules/SpareStoreSelectModalYY'
+import SpareStoreSelectModal2 from '@/views/store/sparestore/modules/SpareStoreSelectModalYY2'
+import BaseFormForModify from '@/views/store/outstoredetail/modules/BaseFormForModify'
+import BaseTool from '@/utils/tool'
+import { queryUsersByParentDeptNatureAll } from '@/api/upms/user'
+import { fetchStoreTree } from '@/api/store/store'
+import { getSbPositions } from '@/api/repair/application-form'
+import { fetchProjectTree } from '@/api/project/project'
+import { stringify } from 'qs'
+export default {
+  name: 'BaseOutStoreFormYY',
+  components: {
+    DetailBaseForm,
+    SparePickFormSelectModal,
+    SpareBackFormSelectModal,
+    SpareStoreSelectModal,
+    StoreSelectModal,
+    SpareStoreSelectModal2,
+    BaseFormForModify
+  },
+  data () {
+    return {
+      confirmLoading: false,
+      modalTitle: null,
+      form: this.$form.createForm(this),
+      visible: false,
+      maskClosable: false,
+      outFlag: 1,
+      tokenType: 1,
+      model: {},
+
+      sbPositionList: [],
+      feeFromMap: {},
+      lyDeptMap: {},
+      flagMap: {},
+      sdDeptMap: {},
+      storeId: null,
+      treeData: [],
+      // 下拉框map
+      typeMap: {},
+      deptYYMap: {},
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          customRender: (text, record, index) => {
+            return index + 1
+          }
+        },
+        {
+          title: '是否加入Bom',
+          dataIndex: 'addBom',
+          width: 150,
+          scopedSlots: { customRender: 'addBom' }
+        },
+        {
+          title: '名称',
+          dataIndex: 'spareName'
+        },
+        {
+          title: '编号',
+          dataIndex: 'no'
+        },
+        {
+          title: '规格',
+          dataIndex: 'ggxh'
+        },
+        {
+          title: '批次',
+          dataIndex: 'cbatch'
+        },
+        {
+          title: '数量',
+          dataIndex: 'num',
+          width: 150,
+          scopedSlots: { customRender: 'num' }
+        },
+        {
+          title: '库存',
+          dataIndex: 'storeNum',
+          width: 150
+        },
+        {
+          title: '单位',
+          dataIndex: 'unit'
+        },
+        {
+          title: '仓库',
+          dataIndex: 'storeName'
+        },
+        {
+          title: '货架号',
+          dataIndex: 'storePosition'
+        },
+        /* {
+          title: '备注',
+          dataIndex: 'remark',
+          width: 150,
+          scopedSlots: { customRender: 'remark' }
+        }, */
+        {
+          title: '操作',
+          key: 'action',
+          align: 'center',
+          scopedSlots: { customRender: 'action' }
+        }
+      ],
+      data: [],
+      storeTreeDate: [],
+      userList: {},
+      user: this.$store.getters.userInfo,
+      selectedRowKeys: [],
+      selectedRows: [],
+      options: {
+        rowSelection: {
+          selectedRowKeys: this.selectedRowKeys
+        }
+      },
+      rowSelection: {
+        onChange: (selectedRowKeys, selectedRows) => {
+          this.selectedRowKeys = selectedRowKeys
+          this.selectedRows = selectedRows
+        }
+      },
+      type2: 0
+    }
+  },
+  props: {
+  },
+  created () {
+    this.setTree()
+    // 下拉框map
+    this.getSbPositions()
+    this.feeFromMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.FEE_FORM_TYPE)
+    this.lyDeptMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.DEPT_TYPE_LY)
+    this.sdDeptMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.DEPT_TYPE_SD)
+    this.flagMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.PROJECT_NEW_AND_OLD)
+    console.log(this.lyDeptMap)
+    console.log(this.sdDeptMap)
+    this.deptYYMap = this.DictCache.getChildrenList(this.DictCache.TYPE.OUT_STORE_FORM_DEPT_CODE).map(item => {
+      if (item.code === 'SBB') {
+        item.children = this.DictCache.getChildrenList(this.DictCache.TYPE.SBB)
+      }
+      return item
+    })
+
+    console.log(1, this.deptYYMap, 1)
+    // this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.OUT_STORE_FORM_TYPE)
+  },
+  methods: {
+    base (record, model, type = 0) {
+      this.type2 = type
+      this.visible = true
+      this.model = model
+      this.outFlag = record.outFlag
+      if (record.outFlag === 1) {
+        this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.OUT_STORE_FORM_TYPE)
+      } else {
+        this.typeMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.SPARE_BACK_FORM_TYPE)
+      }
+      const params = { deptId: this.user.companyId }
+      params.nature = this.DictCache.VALUE.SYS_DEPT_NATURE.FEN_GONG_SI
+      queryUsersByParentDeptNatureAll(params).then(res => {
+        this.userList = res.data
+      })
+      fetchStoreTree().then(res => {
+        this.storeTreeDate = res.data
+      })
+      // 如果是空标识添加
+      if (this.BaseTool.Object.isBlank(record.id)) {
+        this.modalTitle = '添加'
+        this.data = []
+        const { form: { setFieldsValue } } = this
+        // 日期处理
+        this.$nextTick(() => {
+          setFieldsValue(Object.assign(pick(record, [
+            'outFlag'
+          ]), pick(model, [
+            'sbCph'
+          ]), {
+            'sbPosition': model.sbPosition.split('->')
+          }))
+        })
+        return
+      }
+      this.modalTitle = '编辑'
+      const { form: { setFieldsValue } } = this
+      // 日期处理
+      this.storeId = record.storeId
+      this.$nextTick(() => {
+        setFieldsValue(Object.assign(pick(record, [
+          'id',
+          'outNo',
+          'userId',
+          'applyDept',
+          'userTime',
+          'storeId',
+          'storeName',
+          'pickId',
+          'feeFrom',
+          'pickNo',
+          'type',
+          'remark'
+        ])))
+      })
+      this.data = record.detailList
+    },
+    setTree () {
+      fetchProjectTree({
+        flag: this.tokenType
+      }).then((res) => {
+        this.treeData = res.data
+      })
+    },
+    save () {
+      const { form: { validateFieldsAndScroll } } = this
+      this.confirmLoading = true
+      validateFieldsAndScroll((errors, values) => {
+        if (errors) {
+          this.confirmLoading = false
+          return
+        }
+        if (this.data.length === 0) {
+          this.$message.error('请添加出库详情')
+          this.confirmLoading = false
+          return
+        }
+        values.outFlag = this.outFlag
+        values.detailList = this.data
+        console.log(values)
+        if (this.model != null) {
+          values.pickId = this.model.id
+        }
+        values.oldOrNew = this.tokenType
+        values.userTime = BaseTool.Date.formatter(values.userTime, BaseTool.Date.PICKER_NORM_DATE_PATTERN)
+        // 日期处理
+        if (this.BaseTool.String.isBlank(values.id)) {
+          addOutStoreFormYY(values)
+            .then(() => {
+              this.handleCancel(values)
+            }).catch(() => {
+              this.confirmLoading = false
+            })
+        } else {
+          updateOutStoreFormYY(values)
+            .then(() => {
+              this.handleCancel(values)
+            }).catch(() => {
+              this.confirmLoading = false
+            })
+        }
+      })
+    },
+    loadData (selectedOptions) {
+      console.log(selectedOptions)
+      const targetOption = selectedOptions[selectedOptions.length - 1]
+      targetOption.loading = true
+      getSbPositions({ parentId: targetOption.id }).then(res => {
+        targetOption.loading = false
+        targetOption.children = res.data.map(item => {
+          item = {
+            label: item.name,
+            value: item.name
+          }
+          return item
+        })
+        this.sbPositionList = [...this.sbPositionList]
+      })
+    },
+    getSbPositions (parentId) {
+      getSbPositions({ parentId }).then(res => {
+        console.log(res)
+        this.sbPositionList = res.data.map(item => {
+          item = {
+            label: item.name,
+            value: item.name,
+            id: item.id,
+            isLeaf: false
+          }
+          return item
+        })
+      })
+    },
+    handleCancel (values) {
+      this.visible = false
+      this.confirmLoading = false
+      this.form.resetFields()
+      if (this.BaseTool.Object.isNotBlank(values)) {
+        this.$emit('ok', values)
+      } else {
+        this.$emit('ok')
+      }
+    },
+    typeChange (values) {
+      this.type = values
+    },
+    handleStoreSelect () {
+      this.$refs.storeSelectModal.base({}, { filter: -1 })
+    },
+    handleStoreSelected (record, keys, rows) {
+      // 重新选择了仓库,则明细需要全部清空
+      this.data = []
+      const [ key ] = keys
+      const [ row ] = rows
+      const { form: { setFieldsValue } } = this
+      this.storeId = key
+      // 日期处理
+      this.$nextTick(() => {
+        setFieldsValue(Object.assign({
+          'storeId': key,
+          'storeName': row.name
+        }))
+      })
+    },
+    handleSparePickFormSelect () {
+      if (this.type === 1) {
+        this.$refs.sparePickFormSelectModal.base()
+      } else {
+        this.$refs.spareBackFormSelectModal.base()
+      }
+    },
+    handleSparePickFormSelected (record, keys, rows) {
+      const [ key ] = keys
+      const [ row ] = rows
+      const { form: { setFieldsValue } } = this
+      // 日期处理
+      setFieldsValue(Object.assign({
+        'pickId': key,
+        'pickNo': row.pickNo
+      }))
+    },
+    handleSpareBackFormSelected (record, keys, rows) {
+      const [ key ] = keys
+      const [ row ] = rows
+      const { form: { setFieldsValue } } = this
+      // 日期处理
+      setFieldsValue(Object.assign({
+        'pickId': key,
+        'pickNo': row.pickNo
+      }))
+    },
+    handleDetailSelect () {
+      if (this.storeId == null) {
+        this.$message.error('请先选择仓库')
+        return
+      }
+      this.$refs.detailBaseForm.base({ storeId: this.storeId })
+    },
+    handleDetailSelected (record) {
+      const { data } = this
+      data.push(record)
+    },
+    handleDel (id) {
+      const data = [...this.data]
+      if (this.selectedRowKeys.length === 0) {
+        this.$message.error('请至少选择一条数据')
+        return
+      }
+      this.data = data.filter(item => !this.selectedRowKeys.includes(item.id))
+    },
+    handleDelOne (record) {
+      const data = [...this.data]
+      this.data = data.filter(item => record.autoId !== item.autoId)
+    },
+    handleSpareStoreSelect () {
+      if (this.type2 === 2) {
+        this.$refs.spareStoreSelectModal2.base({ tokenType: this.tokenType, pickId: this.model.id })
+      } else {
+        this.$refs.spareStoreSelectModal.base({ tokenType: this.tokenType })
+      }
+    },
+    handleSpareStoreSelected (record, keys, rows) {
+      console.log(rows)
+      const { data } = this
+      for (let i = 0; i < rows.length; i++) {
+        let find = false
+        for (let j = 0; j < data.length; j++) {
+          if (rows[i].autoId === data[j].autoId) {
+            find = true
+            break
+          }
+        }
+        if (!find) {
+          const selectData = rows[i]
+          selectData.storeNum = selectData.num
+          selectData.spareNo = selectData.no
+          selectData.num = 1
+          data.push(selectData)
+        }
+      }
+    },
+    handleStoreChange (value) {
+      this.storeId = value
+    },
+    handleBaseFormForModifySelect (record) {
+      this.$refs.baseFormForModify.base(record)
+    },
+    handleBaseFormForModifySelected (values) {
+      console.log('values' + values.id)
+      const { data } = this
+      for (let j = 0; j < data.length; j++) {
+        if (values.id === data[j].id) {
+          data[j].num = values.num
+          data[j].totalPrice = values.totalPrice
+          break
+        }
+      }
+    },
+    onQuantityChange (e, autoId, attr) {
+      const value = e.target.value
+      console.log(value)
+      if (value !== 0 && !value) {
+        return
+      }
+      const data = [...this.data]
+      const target = data.find(item => item.autoId === autoId)
+      if (this.outFlag === 1 && value > target.storeNum) {
+        this.$message.error('领用数量不能大于库存数量')
+        target[attr] = 1
+        return
+      }
+      console.log('target: ' + target)
+      if (target) {
+        target[attr] = value
+        this.data = data
+      }
+    },
+    onTotalPriceChange (e, id, attr) {
+      const value = e.target.value
+      console.log(value)
+      if (value !== 0 && !value) {
+        return
+      }
+      const data = [...this.data]
+      const target = data.find(item => item.id === id)
+      console.log('target: ' + target)
+      if (target) {
+        target[attr] = value
+        this.data = data
+      }
+    }
+  }
+}
+</script>