石广澎
2023-12-12 9cf4b513cfc65d641d46be6ea424a9f45e4d48f7
admin-web/src/views/departmentitem/itemret/returnNote/edit.vue
@@ -20,12 +20,12 @@
          <el-col :span="12">
            <el-form-item label="退回时间" prop="dealTime">
              <el-date-picker
                  v-model="formData.dealTime"
                  type="datetime"
                  value="yyyy-MM-dd HH:mm:ss"
                  value-format="yyyyMMddHHmmss"
                  placeholder="请选择日期"
                  style="width: 100%"
                v-model="formData.dealTime"
                type="datetime"
                value="yyyy-MM-dd HH:mm:ss"
                value-format="yyyyMMddHHmmss"
                placeholder="请选择日期"
                style="width: 100%"
              >
              </el-date-picker>
            </el-form-item>
@@ -42,64 +42,64 @@
          <el-row :gutter="24">
            <el-col :span="12">
              <el-form-item
                  label="物品分类"
                  :prop="`goods.${goodsIndex}.baseCategoryId`"
                  :rules="{
                label="物品分类"
                :prop="`goods.${goodsIndex}.baseCategoryId`"
                :rules="{
                  required: true,
                  message: '请选择物品分类',
                  trigger: 'change',
                }"
              >
                <el-cascader
                    v-model="goodsItem.baseCategoryId"
                    :options="categoryOptions"
                    :props="{ value: 'id',emitPath: false }"
                    :show-all-levels="false"
                    filterable
                    clearable
                    @change="categoryChange($event, goodsIndex)"
                    style="width: 100%"
                  v-model="goodsItem.baseCategoryId"
                  :options="categoryOptions"
                  :props="{ value: 'id',emitPath: false }"
                  :show-all-levels="false"
                  filterable
                  clearable
                  @change="categoryChange($event, goodsIndex)"
                  style="width: 100%"
                ></el-cascader>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item
                  label="物品名称"
                  :prop="`goods.${goodsIndex}.baseGoodsTemplateId`"
                  :rules="rules.baseGoodsTemplateId"
                label="物品名称"
                :prop="`goods.${goodsIndex}.baseGoodsTemplateId`"
                :rules="rules.baseGoodsTemplateId"
              >
                <el-select
                    v-model="goodsItem.baseGoodsTemplateId"
                    :placeholder="goodsItem.baseCategoryId?'请选择物品':'请先选择物品分类'"
                    filterable
                    clearable
                    :disabled="!goodsItem.baseCategoryId"
                    style="width: 100%"
                    @change="goodsTemplateChange($event, goodsIndex)"
                  v-model="goodsItem.baseGoodsTemplateId"
                  :placeholder="goodsItem.baseCategoryId?'请选择物品':'请先选择物品分类'"
                  filterable
                  clearable
                  :disabled="!goodsItem.baseCategoryId"
                  style="width: 100%"
                  @change="goodsTemplateChange($event, goodsIndex)"
                >
                  <el-option
                      v-for="item in goodsItem.goodsOptions"
                      :key="item.id"
                      :label="item.goodsName"
                      :value="item.id"
                    v-for="item in goodsItem.goodsOptions"
                    :key="item.id"
                    :label="item.goodsName"
                    :value="item.id"
                  />
                </el-select>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item
                  label="选择分发单"
                  :prop="`goods.${goodsIndex}.businessFormCode`"
                  :rules="rules.businessFormCode">
                label="选择分发单"
                :prop="`goods.${goodsIndex}.businessFormCode`"
                :rules="rules.businessFormCode">
                <div @click="showFenFa(goodsIndex)">
                  <el-input
                      placeholder="请选择分发单"
                      readonly
                      v-model="goodsItem.businessFormCode"
                      :placeholder="goodsItem.baseGoodsTemplateId?'请选择分发单':'请先选择物品'"
                      :disabled="!goodsItem.baseGoodsTemplateId"
                      suffix-icon="el-icon-arrow-down"
                      class="cursor-p"></el-input>
                    placeholder="请选择分发单"
                    readonly
                    v-model="goodsItem.businessFormCode"
                    :placeholder="goodsItem.baseGoodsTemplateId?'请选择分发单':'请先选择物品'"
                    :disabled="!goodsItem.baseGoodsTemplateId"
                    suffix-icon="el-icon-arrow-down"
                    class="cursor-p"></el-input>
                </div>
              </el-form-item>
            </el-col>
@@ -124,17 +124,17 @@
            </el-row>
            <el-table :data="mItem" :stripe="true">
              <!-- A类商品显示 -->
              <el-table-column width="100" prop="price" label="使用人" align="center" v-if="mItem[0].nowUserName">
              <el-table-column prop="price" label="使用人" align="center" v-if="mItem[0].nowUserName">
                <template slot-scope="scope">
                  {{ scope.row.nowUserName }}
                </template>
              </el-table-column>
              <el-table-column width="100" prop="price" label="分发数量" align="center">
              <el-table-column prop="price" label="分发数量" align="center">
                <template slot-scope="scope">
                  {{ scope.row.goodsNum }}
                </template>
              </el-table-column>
              <el-table-column width="100" prop="price" label="可退数量" align="center">
              <el-table-column prop="price" label="可退数量" align="center">
                <template slot-scope="scope">
                  {{ scope.row.userUseCount }}
                </template>
@@ -142,15 +142,16 @@
              <el-table-column prop="counts" label="退回数量" align="center">
                <template slot-scope="{row,$index}">
                  <el-form-item
                      label-width="0"
                      :prop="`goods.${goodsIndex}.models.${mIndex}.counts`"
                      :rules="[
                    label-width="0"
                    :prop="`goods.${goodsIndex}.models.${mIndex}.counts`"
                    :rules="[
                          {validator: checkCounts,counts:row.counts,userUseCount: row.userUseCount, trigger: ['blur', 'change']}
                        ]"
                  >
                    <el-input
                        type="number"
                        v-model.number="row.counts"
                      clearable
                      type="number"
                      v-model.number="row.counts"
                    ></el-input>
                  </el-form-item>
                </template>
@@ -159,22 +160,22 @@
          </div>
          <div class="btn-group">
            <el-button
                v-if="formData.goods.length > 1"
                name="移除"
                type="danger"
                plain
                size="mini"
                @click="removeGoods(goodsIndex)"
              v-if="formData.goods.length > 1"
              name="移除"
              type="danger"
              plain
              size="mini"
              @click="removeGoods(goodsIndex)"
            >移除
            </el-button
            >
            <el-button
                v-if="formData.goods.length - 1 == goodsIndex"
                name="新增物品"
                type="primary"
                plain
                size="mini"
                @click="addGoods"
              v-if="formData.goods.length - 1 == goodsIndex"
              name="新增物品"
              type="primary"
              plain
              size="mini"
              @click="addGoods"
            >新增物品
            </el-button
            >
@@ -209,7 +210,6 @@
<script>
import {departmentListAll} from '@/api/system/deptment';
import {goodsTemplate} from '@/api/baseSetting/finsystenant';
import {outputAdd} from '@/api/stock/accessStock';
import {getTree} from '@/api/foudation/classification';
import MyButton from '@/components/myButton/myButton';
import winMd from '@/components/win/win-md';
@@ -219,7 +219,7 @@
import {mapGetters} from 'vuex';
import * as DateFormatter from '@/utils/DateFormatter';
import {getFfOrderByGoodsIdAndDept, getGoodsUseInfoByFfOrderAndGoodId} from "@/api/deptGoods/scrap";
import {getDicts} from "@/api/system/dict/data";
import {returnAdd} from "@/api/deptGoods/itemret";
export default {
  components: {MyButton, winMd, winSm, upload},
@@ -265,7 +265,7 @@
      fenfaData: [],
      formData: {
        departmentId: '', // 退回部门id
        dealTime: '', // 退回时间
        dealTime: DateFormatter.formatDate(new Date(), 'yyyyMMddhhmmss'), // 退回时间
        procureDoc: '',
        goods: [],
      },
@@ -333,13 +333,13 @@
    // 获取部门列表
    async getdeptmentList() {
      await departmentListAll({tenantId: this.userInfo.tenantId})
          .then((res) => {
            this.departmentOptions = res;
            this.formData.goods.push(JSON.parse(JSON.stringify(this.goodsItem)));
          })
          .catch((err) => {
            console.log('err', err);
          });
        .then((res) => {
          this.departmentOptions = res;
          this.formData.goods.push(JSON.parse(JSON.stringify(this.goodsItem)));
        })
        .catch((err) => {
          console.log('err', err);
        });
    },
    removeEmptyChildren(arr) {
@@ -472,26 +472,36 @@
      this.$refs['ruleForm'].validate((valid) => {
        if (valid) {
          let params = JSON.parse(JSON.stringify(this.formData))
          params.goods.map((g,gid)=>{
          params.goods.map(g => {
            delete g.goodsOptions
            let arr=[]
            g.models.map(m=>{
              arr=arr.concat(m)
            let arr = []
            g.models.map(m => {
              m.map(item=>{
                if(item.counts&&item.counts>0){
                  arr.push(item)
                }
              })
            })
            g.models = arr
          })
          console.log('params', params);
          return
          outputAdd(this.formData)
              .then((res) => {
                this.$message.success('保存成功!');
                this.close();
                this.$emit('search');
              })
              .catch((err) => {
                console.log('edit err', err);
                this.$message.error('保存失败');
              });
          params.goods = params.goods.filter(g=>g.models.length>0)
          if(params.goods.length===0){
            this.$message.error('请至少填写一个退回物品');
            return;
          }
          if (this.loading) return
          this.loading = true
          returnAdd(params)
            .then((res) => {
              this.loading = false
              this.$message.success('保存成功!');
              this.close();
              this.$emit('search');
            })
            .catch((err) => {
              this.loading = false
              this.$message.error('保存失败');
            });
        } else {
          this.$message.error('校验未通过,请检查。');
        }