MrShi
2025-01-17 78d03fa48defaf77c2b533dc4616a210088ab49c
admin/src/views/stock/components/InEdit.vue
@@ -1,27 +1,27 @@
<template>
  <GlobalWindow title="新建出库单" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close"
  <GlobalWindow title="新建入库单" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close"
    @confirm="confirm">
    <el-form :model="param" ref="form" :rules="rules">
      <div class="df_ac">
        <el-form-item class="w3" label="出库仓库" prop="parentId">
          <el-select :disabled="param.id" v-model="param.parentId" placeholder="不填为则一级分类">
            <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
        <el-form-item class="w3" label="入库仓库" prop="warehouseId">
          <el-select :disabled="param.id" v-model="param.warehouseId" placeholder="请选择">
            <el-option v-for="op in storeList" :key="op.id" :label="op.name" :value="op.id"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item class="w3" label="出库日期">
          <el-date-picker type="date" v-model="param.getDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
            placeholder="请选择出库日期"></el-date-picker>
        <el-form-item class="w3" label="入库日期" prop="doneDate">
          <el-date-picker type="date" v-model="param.doneDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd"
            placeholder="请选择入库日期"></el-date-picker>
        </el-form-item>
        <el-form-item class="w3" label="出库类型" prop="parentId">
          <el-select :disabled="param.id" v-model="param.parentId" placeholder="不填为则一级分类">
            <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
        <el-form-item class="w3" label="入库类型" prop="type">
          <el-select :disabled="param.id" v-model="param.type" placeholder="请选择入库类型">
            <el-option v-for="op in StoreTypeOps" :key="op.id" :label="op.name" :value="op.id"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item class="w3" label="处理人" prop="name">
          <el-input v-model="param.name" v-trim />
          <el-input v-model="param.createUserName" :disabled="true" v-trim />
        </el-form-item>
        <el-form-item class="w6" label="备注" prop="name">
          <el-input v-model="param.name" placeholder="请输入" v-trim />
        <el-form-item class="w6" label="备注" prop="remark">
          <el-input v-model="param.remark" placeholder="请输入" v-trim />
        </el-form-item>
      </div>
    </el-form>
@@ -32,18 +32,19 @@
    <el-button type="primary" @click="handleOpenMaterial">选择物料</el-button>
    <el-table :data="list" stripe>
      <el-table-column align="center" label="序号" type="index" width="50" />
      <el-table-column prop="creatorName" label="物料名称" show-overflow-tooltip min-width="80px"></el-table-column>
      <el-table-column prop="categoryName" label="物料编码" show-overflow-tooltip min-width="90px"></el-table-column>
      <el-table-column prop="createDate" label="条形码" show-overflow-tooltip min-width="70px"></el-table-column>
      <el-table-column prop="dealUserName" label="品牌" show-overflow-tooltip min-width="70px"></el-table-column>
      <el-table-column prop="dealUserName" label="单位" show-overflow-tooltip min-width="70px"></el-table-column>
      <el-table-column prop="dealUserName" label="出库数量" min-width="90px">
      <el-table-column prop="name" label="物料名称" show-overflow-tooltip min-width="80px"></el-table-column>
      <el-table-column prop="code" label="物料编码" show-overflow-tooltip min-width="90px"></el-table-column>
      <el-table-column prop="qrcode" label="条形码" show-overflow-tooltip min-width="70px"></el-table-column>
      <el-table-column prop="brand" label="品牌" show-overflow-tooltip min-width="70px"></el-table-column>
      <el-table-column prop="unitName" label="单位" show-overflow-tooltip min-width="70px"></el-table-column>
      <el-table-column prop="dealUserName" label="入库数量" min-width="90px">
        <template v-slot="{row}">
          <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.aa" class="w100"></el-input>
          <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.stock"
            class="w100"></el-input>
        </template>
      </el-table-column>
      <el-table-column prop="dealUserName" label="库存数量" show-overflow-tooltip min-width="80px"></el-table-column>
      <el-table-column prop="dealUserName" label="操作" min-width="60px">
      <el-table-column prop="maxStock" label="库存数量" show-overflow-tooltip min-width="80px"></el-table-column>
      <el-table-column label="操作" min-width="60px">
        <template v-slot="scope">
          <span @click="handleDel(scope)" class="red pointer">删除</span>
        </template>
@@ -57,42 +58,81 @@
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
import AssetSel from './AssetSel'
import { create, fetchCateList, getInfoById } from '@/api/business/category.js'
import { fetchList as getStoreList } from '@/api/ywWarehouse'
import { ywOutinboundCreate } from '@/api/store/index'
import { StoreTypeOps, rules } from './config'
import { Message } from 'element-ui'
export default {
  name: 'OperaCategoryWindow',
  components: { GlobalWindow, AssetSel },
  data() {
    return {
      // 表单数据
      param: {},
      param: {
        createUserName: this.$store.state.userInfo.username,
        creator: this.$store.state.userInfo.id,
        inOut: 0
      },
      activeName: 'first',
      isShowModal: false,
      isShowSel: false,
      isLoading: false,
      // 验证规则
      rules: {
        name: [{ required: true, message: '请输入二级分类名称', trigger: 'blur' }],
      },
      list: [{}],
      rules,
      storeList: [],
      list: [],
      StoreTypeOps: StoreTypeOps.filter(i => i.type == 0),
      dataList: [],
    }
  },
  created() {
    this.initData()
    console.log(this.$store.state.userInfo)
  },
  methods: {
    confirm() {
      this.$refs['form'].validate((valid) => {
        if (valid) {
          const { param, list } = this
          if(list.length == 0) return Message.warning('请先选择物料信息')
          let count = 0 // 入库数量必填
          list.forEach(item => {
            if(!item.stock) count ++
          })
          if(count > 0) return Message.warning('请输入正确的入库数量')
          this.isLoading = true
          ywOutinboundCreate({
            ...param,
            recordList: list
          }).then(res => {
            this.isLoading = false
            Message.success('提交成功')
            this.$emit('success')
            this.close()
          }, () => {
            this.isLoading = false
          })
        }
      })
    },
    getList() {
      fetchCateList({ type: 5 }).then(res => {
        this.dataList = res || []
    initData() {
      getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => {
        this.storeList = res.records || []
      })
    },
    changeSel() {
    changeSel(val) {
      const list = val
      list.forEach(item => {
        const index = this.list.findIndex(i => i.id == item.id)
        if(index == -1){
          item.materialId = item.id
          item.multifile = null
          this.list.push(item)
        }
      })
    },
    handleDel(val) {
      const index = val.$index
@@ -103,6 +143,7 @@
      this.isShowSel = true
      this.$nextTick(() => {
        this.$refs.AssetSelRef.isShowModal = true
        this.$refs.AssetSelRef.getList()
      })
    },
    close() {