石广澎
2023-12-02 19fe807c723fd8c4e6479a4f2c2c9de931aefb82
fix:
物品退回接口对接
5个文件已修改
188 ■■■■ 已修改文件
admin-web/src/api/deptGoods/itemret.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/departmentitem/itemret/retDetails/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/departmentitem/itemret/returnNote/detail.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/departmentitem/itemret/returnNote/edit.vue 166 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/departmentitem/itemret/returnNote/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/api/deptGoods/itemret.js
@@ -2,7 +2,7 @@
// 新增
export function returnAdd(data) {
    return request({
        url: '/pc/l/wh/form/scrapped/add',
        url: '/pc/l/wh/using/form/back/add',
        method: 'post',
        data,
    });
@@ -11,7 +11,7 @@
// 列表
export function returnList(params) {
    return request({
        url: '/pc/l/wh/form/scrapped/deptList',
        url: '/pc/l/wh/using/form/back/list',
        method: 'get',
        params,
    });
@@ -20,7 +20,7 @@
// 详情
export function returnDetail(params) {
    return request({
        url: '/pc/l/wh/form/scrapped/deptDetail',
        url: '/pc/l/wh/using/form/back/detail',
        method: 'get',
        params,
    });
admin-web/src/views/departmentitem/itemret/retDetails/index.vue
@@ -126,7 +126,7 @@
      table: {
        showIndex: true, // 是否显示序号
        expand: false, // 是否显示详情数据
        url: SettingIplatform.apiBaseURL + '/pc/l/wh/form/transfer/department/list', // 请求地址
        url: SettingIplatform.apiBaseURL + '/pc/l/wh/using/form/back/list/detail', // 请求地址
        // 工具条
        tools: {
          columnsCtrl: {
admin-web/src/views/departmentitem/itemret/returnNote/detail.vue
@@ -86,12 +86,12 @@
  </win-md>
</template>
<script>
import {scrappedDetail} from '@/api/deptGoods/scrap';
import winMd from '@/components/win/win-md';
import * as DateFormatter from '@/utils/DateFormatter';
import {getDownUrl} from '@/utils/base';
import Viewer from 'viewerjs';
import 'viewerjs/dist/viewer.css';
import {returnDetail} from "@/api/deptGoods/itemret";
let viewer = null;
@@ -132,7 +132,7 @@
    }
  },
  created() {
    scrappedDetail({ id: this.setting.id }).then((res) => {
    returnDetail({ id: this.setting.id }).then((res) => {
      this.detail = res;
      this.loading = false
      this.fileList = this.detail.procureDoc ? JSON.parse(this.detail.procureDoc) : [];
@@ -163,12 +163,6 @@
          index++;
        }
      }
      // this.fileList.forEach((f, i) => {
      //   if (file.uid == f.uid) {
      //     index = i
      //   }
      // })
      // document.querySelector('#uploadPreviewImages').children[0].click()
      viewer.view(index);
    },
    checkImg(name) {
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>
@@ -142,15 +142,15 @@
              <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"
                      type="number"
                      v-model.number="row.counts"
                    ></el-input>
                  </el-form-item>
                </template>
@@ -159,22 +159,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 +209,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 +218,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},
@@ -333,13 +332,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 +471,27 @@
      this.$refs['ruleForm'].validate((valid) => {
        if (valid) {
          let params = JSON.parse(JSON.stringify(this.formData))
          params.goods.map((g,gid)=>{
          params.goods.map((g, gid) => {
            delete g.goodsOptions
            let arr=[]
            g.models.map(m=>{
              arr=arr.concat(m)
            let arr = []
            g.models.map(m => {
              arr = arr.concat(m)
            })
            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('保存失败');
              });
          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('校验未通过,请检查。');
        }
admin-web/src/views/departmentitem/itemret/returnNote/index.vue
@@ -72,7 +72,6 @@
</template>
<script>
import {outputList} from '@/api/stock/accessStock';
import MyButton from '@/components/myButton/myButton';
import myImport from '@/views/components/myImport';
import edit from './edit';
@@ -80,6 +79,7 @@
import listPage from '@/views/mixins/listPage'
import {getUserDetail} from "@/utils/auth";
import SettingIplatform from "@/utils/settingIplatform";
import {returnList} from "@/api/deptGoods/itemret";
export default {
  name: 'index',
@@ -148,7 +148,7 @@
  methods: {
    fetchData() {
      this.loading = true;
      outputList({
      returnList({
        pageNum: this.pageNum,
        pageSize: this.pageSize,
        ...this.filterFrom,