Ver Fonte

采购退货

changhaoning há 2 anos atrás
pai
commit
a175e246a7

+ 14 - 0
src/api/pages/pur/pur-return-handle.js

@@ -0,0 +1,14 @@
+/**
+* @desc   : 采购退货办理服务
+* @author : 常皓宁
+* @date   : 2024/3/22 13:09
+*/
+export default {
+  purReturnHandleService: {
+    prefix: '/mdm-server/ivt/inbound_purchase_return/',
+    //采购退库根据总单id查询总单和明细 办理用
+    selectByUpdate: 'select_by_update',
+    //采购退货入库办理
+    inboundHandle:'inbound_handle',
+  }
+}

+ 9 - 1
src/api/pages/pur/pur-return.js

@@ -6,6 +6,9 @@
 export default {
   purReturnService: {
     prefix: '/mdm-server/ivt/intoReturn/',
+    //采购退库根据总单id查询总单和明细 办理用
+    selectByUpdate: 'select_by_update',
+    //作废
     cancel:'cancel',
   }
 }
@@ -17,6 +20,11 @@ export default {
  */
 export const routeUrl = {
   purReturn: {
-    invalid: {key: 'invalid', routeName: 'invalid'},
+    //编辑
+    edit: {key: 'edit', routeName: 'pur-return-edit'},
+    //出库办理
+    outHandle :{key:'outHandle',routeName: 'pur-return-handle' ,primaryKey:'intoId',chooseFlag:true },
+    //作废
+    invalid: {key: 'invalid', method: 'invalid'},
   }
 }

+ 1 - 1
src/components/modal/dk-function/dk-function.vue

@@ -276,7 +276,7 @@ export default {
     // 先过滤顶级
     this.parentData = this.data?.filter(it => !it.parentId);
     this.webData = this.parentData.filter(f => f.appCode == 'CP-WEB')
-    // this.appData = this.parentData.filter(f => f.appCode == 'PDA-PROD')
+    this.appData = this.parentData.filter(f => f.appCode == 'CP-WXP')
     if (this.collapseFlag) {
       this.model = this.data.map(it => it.id)
     } else {

+ 8 - 1
src/mixins/index.js

@@ -172,7 +172,14 @@ export const indexMixin = {
               } else {
                 if (routeUrl.chooseFlag && chooseKeys && chooseKeys.length > 0) {
                   // this.$router.push(url.endsWith('/') ? (url + chooseKeys[0]) : (url + '/' + chooseKeys[0]))
-                  this.$router.push({name: routeName, params: {id: chooseKeys[0]}});
+                  console.log('routeUrl',routeUrl)
+                  console.log('chooseRows[0]',chooseRows[0])
+                  // 跟页面的primaryKey不一致时,取route中设置的primaryKey
+                  if(routeUrl.primaryKey){
+                    this.$router.push({name: routeName, params: {id: chooseRows[0][routeUrl.primaryKey]}});
+                  }else{
+                    this.$router.push({name: routeName, params: {id: chooseKeys[0]}});
+                  }
                 } else {
                   this.$router.push({name: routeName})
                 }

+ 0 - 1
src/view/pur/pur-order/index.vue

@@ -114,7 +114,6 @@
             <DkTableColumn
               v-for="(item, index) in tableDataTitle_goodsDetail"
               :key="detailModel+index"
-              align="center"
               :type="item.type"
               :field="item.field"
               :title="item.title"

+ 14 - 0
src/view/pur/pur-return/edit.vue

@@ -0,0 +1,14 @@
+<template>
+  <CommonForm type="edit" ></CommonForm>
+</template>
+
+<script>
+import CommonForm from './form'
+
+export default {
+  name: 'pur-return-edit',
+  components:{
+    CommonForm
+  },
+}
+</script>

+ 29 - 18
src/view/pur/pur-return/form.vue

@@ -273,7 +273,7 @@ export default {
         },
         //退货金额
         {
-          field: 'intoAmt',
+          field: 'itemAmt',
           title: self.$t('returnAmt1'),
           type: 'disabled',
           digits: 2,
@@ -281,7 +281,7 @@ export default {
         },
         //可退货金额
         {
-          field: 'itemAmt',
+          field: 'intoAmt',
           title: self.$t('可退货金额'),
           type: 'disabled',
           digits: 2,
@@ -409,8 +409,8 @@ export default {
           })
           this.purchaseItemList = itemBatchRows
           for (let index = 0; index < this.purchaseItemList.length; index++) {
-            this.purchaseItemList[index].itemQty = this.purchaseItemList[index].intoQty * -1
-            this.purchaseItemList[index].itemAmt = this.purchaseItemList[index].intoAmt * -1
+            this.purchaseItemList[index].itemQty = (this.purchaseItemList[index].intoQty - this.purchaseItemList[index].returnQty) * -1
+            this.purchaseItemList[index].itemAmt = (this.purchaseItemList[index].intoAmt - this.purchaseItemList[index].returnAmt) * -1
           }
           //关闭选择弹框
           this.modalCancel() // 清空选择界面
@@ -529,6 +529,12 @@ export default {
       // 新建
       if (this.type === this.$config.formMode.add) {
         let tableFilter = this.$refs['detailTable'].getTableDataFilter();
+        tableFilter.map(row => {
+          let item = row
+          // 退货价
+          this.$set(item, 'priceReturn', row['priceInto']* -1)
+          return item
+        })
         // 采购退货明细
         this.params.intoReturnItemVOList = tableFilter
         // 入库中数量
@@ -557,7 +563,7 @@ export default {
       }
       //退货办理
       else if (this.type === this.$config.formMode.handle) {
-        return this.excute(this.$service.purEnterService, this.$service.purEnterService.purchaseHandleInbound, this.params)
+        return this.excute(this.$service.purReturnHandleService, this.$service.purReturnHandleService.inboundHandle, this.params)
       }
     },
     /***************************列表及其他事件************************************/
@@ -595,7 +601,7 @@ export default {
      * @date   : 2024/2/29 8:49
      */
     detail(id) {
-      return this.excuteNoParam(this.$service.purEnterService, this.$service.purEnterService.selectByUpdate, [id])
+      return this.excuteNoParam(this.$service.purReturnService, this.$service.purReturnService.selectByUpdate, [id])
     },
 
     /**
@@ -604,25 +610,28 @@ export default {
      * @date   : 2024/2/29 9:49
      */
     setValuesByEdit(data) {
+      console.log('data',data)
       this.formData.intoId = data.data.intoId
       this.formData.fromId = data.data.fromId
       this.formData.fromNo = data.data.fromNo
       this.formData.supId = data.data.supId
-      this.formData.supplierName = data.data.supplierName
+      this.formData.supplierName = data.data.supName
       this.formData.remarks = data.data.remarks
-      this.formData.contactName = data.contactName
-      this.formData.contactPhone = data.contactPhone
       this.formData.whId = data.data.whId
       this.formData.whName = data.data.whName
       let dataItem = data.dataItem
       dataItem.map(row => {
         let item = row
-        // 采购价(入库价)
-        this.$set(item, 'pricePur', row['priceInto'])
-        // 入库数量
-        this.$set(item, 'itemQty', row['intoingQty'])
-        // 入库金额
-        this.$set(item, 'itemAmt', row['intoingAmt'])
+        // 标价
+        this.$set(item, 'priceInto', row['priceStd'])
+        // 退货数量
+        this.$set(item, 'itemQty', row['itemQty']*-1)
+        // 退货金额
+        this.$set(item, 'itemAmt', row['itemQty']*row['priceStd'])
+        // 可退货数量
+        this.$set(item, 'intoQty', row['intoQty'] - row['returnQty'])
+        // 可退货金额
+        this.$set(item, 'intoAmt', row['intoAmt'] - row['returnAmt'])
         return item
       })
       this.purchaseItemList = dataItem
@@ -666,9 +675,11 @@ export default {
    */
   created() {
     this.resizeTableFlag = true;  // 计算表格高度
-    // 入库办理
-    if (this.type === this.$config.formMode.handle) {
-      this.showAutoFlag = false;
+    // 出库办理
+    if (this.$route.params.id){
+      if (this.type === this.$config.formMode.handle) {
+        this.showAutoFlag = false;
+      }
     }
   },
 

+ 660 - 5
src/view/pur/pur-return/handle.vue

@@ -1,14 +1,669 @@
+<!-- @desc:采购退货新建  @auth:常皓宁 @time:2024/03/14 14:15 -->
 <template>
-  <CommonForm type="handle" ></CommonForm>
+  <div class="main-div" style="position: relative;">
+    <loading :loading="loading" v-if="!modalVisible"></loading>
+    <DkCollapse @on-change="changeCollapse" ref="collapse">
+      <DkPanel prop="essentialInformation">
+        <!--  单据信息  -->
+        <DkForm slot="content" ref="formInline" v-model="formData"
+                style="width:100%" :label-max-words="5">
+          <!--供应商-->
+          <DkFormItem prop="supId" :label="$t('supplierName')" :required="true">
+            <SelectMagnifier v-model="formData.supId" :display-text="formData.supplierName"
+                             :type="this.$config.MagnifierType.supplier"
+                             :multiple="false"
+                             :otherCondition="{supplierType:'供应商类别-采购'}"/>
+          </DkFormItem>
+          <!--来源单号-->
+          <DkFormItem prop="fromNo">
+            <InputPop ref="fromNo" v-model="formData.fromNo" :readonly="true"/>
+          </DkFormItem>
+          <!--收货仓库-->
+          <DkFormItem prop="whId" :label="$t('returnWareHouse')" :required="true">
+            <SelectPop v-model="formData.whId" ref="whId"
+                       :options="warehouseList"
+                       :multiple="false"
+                       labelKey="whName" valueKey="whId"
+                       @on-select="changItemWhId">
+            </SelectPop>
+          </DkFormItem>
+          <!--自动出库库标识-->
+          <DkFormItem prop="autoFlag" v-show="showAutoFlag">
+            <template>
+              <i-switch v-model="formData.automaticFlg":disabled="type === $config.formMode.handle">
+                <span slot="open"></span>
+                <span slot="close"></span>
+              </i-switch>
+            </template>
+          </DkFormItem>
+          <!--备注-->
+          <DkFormItem prop="remarks">
+            <InputPop ref="remarks" v-model="formData.remarks"
+                      maxlength=500 textareaFlag/>
+          </DkFormItem>
+        </DkForm>
+      </DkPanel>
+      <!--商品信息-->
+      <DkPanel prop="goodsInformation">
+        <div id="search-cond-div-goods-info" ref="search-cond-div-goods-info" slot="content">
+          <EditTable slot="left"
+                     ref="detailTable"
+                     majorField="itemId"
+                     :data="purchaseItemList"
+                     :columns="goodsColumns"
+                     :height="400"
+                     :freeze="false"
+                     :show-footer="true"
+                     :add-flag="false"
+                     @changeValue="changeValue"
+          ></EditTable>
+        </div>
+      </DkPanel>
+      <!--附件-->
+      <DkPanel prop="files">
+        <div id="search-cond-div-files-info" ref="search-cond-div-files-info"
+             slot="content">
+          <DkPicWall v-model="formData.annexPaths" :disabled="this.allCanNoEdit?true:false"
+                     folder="t_order/annex_paths" :accept="$config.uploadFileConfig.acceptPicType"
+                     :format="['jpg','jpeg','png']"></DkPicWall>
+        </div>
+      </DkPanel>
+    </DkCollapse>
+
+    <!--      下部分按钮区域-->
+    <DkSaveButton ref="saveButton" :loading="loading" @save="save" @close="close"></DkSaveButton>
+
+    <!--选择采购入库单弹窗-->
+    <DkModal
+      :loading="loading"
+      ref="modal_search"
+      id="search-data-class"
+      class-name="change-class"
+      width="1100px"
+      v-model="chooseModal"
+      :shortcut-flag="false"
+      @modalOk="modalOk"
+      @modalCancel="modalCancel"
+      @on-visible-change="openPurchaseModal"
+      :title="modalTitle">
+      <BaseIndexButtonGroup id="ButtonGroup">
+        <template #left>
+          <BaseIndexButton ref="search" name="search" @click="getDataTable"></BaseIndexButton>
+          <BaseIndexButton :finalFlag="true" ref="clear" name="clear"
+                           @click="$refs['searchCond'].clearCondition()"></BaseIndexButton>
+        </template>
+      </BaseIndexButtonGroup>
+      <SearchCond id="search-cond-div" width="1000px" class="search-cond-class"
+                  v-if="searchContent && searchContent.length > 0" ref="searchCond"
+                  v-model="searchCond" :setFlag="false" :searchContent="searchContent" :col-count="4"></SearchCond>
+      <DkSplit mode="vertical" v-model="split" :height="chooseTableHeight">
+        <div slot="top">
+          <DkTable
+            ref="purTable"
+            :data="purList"
+            :height="this.chooseTableHeight * split"
+            :page-flag="false"
+            :show-setting-flag="false"
+            :freeze="false"
+            :multiple="false"
+            :choose-flag="false"
+            :clearCheckFlag="false"
+            :auto-width-flag="false"
+            primaryKey="intoId"
+            :showCheckboxHeader="false"
+            :chooseCheckFlag="false"
+            :showSettingFlag="false"
+            @current-change="currentChange($event)">
+            <!-- 采购入库单号-->
+            <DkTableColumn field="intoNo"></DkTableColumn>
+            <!-- 来源单号-->
+            <DkTableColumn field="fromNo"></DkTableColumn>
+            <!--部门-->
+            <DkTableColumn field="orgName"></DkTableColumn>
+            <!--员工-->
+            <DkTableColumn field="staffName"></DkTableColumn>
+            <!--客户-->
+            <DkTableColumn field="cusName"></DkTableColumn>
+            <!--入库状态-->
+            <DkTableColumn field="intoStatusName" :color-cards="['入库中','已入库']"></DkTableColumn>
+            <!--已入库数量-->
+            <DkTableColumn field="intoQty" :digits="0" sum :title="'已入库数量'"></DkTableColumn>
+            <!--已入库金额-->
+            <DkTableColumn field="intoAmt" :digits="0" sum :title="'已入库金额'"></DkTableColumn>
+            <!--制单人-->
+            <DkTableColumn field="makeStaffName"></DkTableColumn>
+            <!--制单时间-->
+            <DkTableColumn field="makeTime"></DkTableColumn>
+            <!--备注-->
+            <DkTableColumn field="remarks"></DkTableColumn>
+          </DkTable>
+        </div>
+        <div slot="bottom">
+          <!--入库单明细-->
+          <DkTable :pageFlag="false"
+                   :pageTotalFlag="false"
+                   primaryKey="itemId"
+                   :id="'table-'+$options.name"
+                   :show-footer="true"
+                   ref="detail-select"
+                   :showSettingFlag="false"
+                   :data="tableDataDetail_goodsDetail"
+                   :height="this.chooseTableHeight * (1-split)">
+            <!-- 来源单号-->
+            <DkTableColumn field="fromNo"></DkTableColumn>
+            <!-- 商品型号-->
+            <DkTableColumn field="skuModel" :filter="false"></DkTableColumn>
+            <!-- 商品名称-->
+            <DkTableColumn field="skuName"></DkTableColumn>
+            <!-- 唯一编码-->
+            <DkTableColumn field="skuCode" :filter="false"></DkTableColumn>
+            <!-- 品牌-->
+            <DkTableColumn field="brandName" :filter="false"></DkTableColumn>
+            <!--品牌简称-->
+            <DkTableColumn field="shortName" :filter="false"></DkTableColumn>
+            <!--非标号-->
+            <DkTableColumn field="nonStandardCode"></DkTableColumn>
+            <!--已入库数量-->
+            <DkTableColumn field="intoQty" :title="'已入库数量'"></DkTableColumn>
+            <!--已入库金额-->
+            <DkTableColumn field="intoAmt" :title="'已入库金额'"></DkTableColumn>
+            <!--备注-->
+            <DkTableColumn field="remarks"></DkTableColumn>
+          </DkTable>
+        </div>
+      </DkSplit>
+    </DkModal>
+  </div>
 </template>
 
 <script>
-import CommonForm from "./form";
+
+import {formMixin} from '@/mixins/form'
 
 export default {
-name: "purchase-return-handle",
-  components:{
-    CommonForm
+  name: "procure-return-handle",
+  components: {},
+  mixins: [formMixin],
+  props: {
+    type: {
+      type: String,
+      default:'handle'
+    },
+  },
+  data() {
+    let self = this
+    return {
+      fromId:null,//采购入库单来源Id
+      //是否显示自动办理入库标识
+      showAutoFlag: true,
+      tableHeight: 450,
+      tableDataDetail_goodsDetail: [],  // 用于存放入库单明细数据
+      split: 0.5,// 分区的默认
+      chooseTableHeight: 600,
+      purList: [],// 选择采购入库单
+      // 查询条件
+      searchCond: {},
+      // 选择采购入库单弹窗查询条件
+      searchContent:
+        [
+          {
+            itemCode: '入库单号-文本',
+            itemName: 'intoNo',
+            valueFormat: {code: 'intoNo'},
+            valueKind: 'STR'
+          },
+        ],
+      //明细明细分页
+      detailPageInfo: {
+        total: 0,
+        pageSize: this.$config.pageSize,
+        currentPage: 1
+      },
+      modalTitle: '选择采购入库单',//选择成型线弹窗名称
+      chooseModal: false,
+      purItemId: null,
+      loading: false,
+      allCanNoEdit: false, //是否所有的都不允许编辑
+      formData: {
+        intoId: null,//入库单Id
+        fromId: null,//来源单Id
+        fromNo: null,//来源单号
+        purId: null,//采购入库单Id
+        purNo: null,//采购入库单号
+        supId: null,//供应商Id
+        supplierName: null,//供应商
+        whId: null,//仓库Id
+        whName: null,//仓库
+        automaticFlg: false,//自动出库标识
+        remarks: null,
+      },
+      //明细
+      purchaseItemList: [],
+      goodsColumns: [
+        {field: 'skuModel', type: 'disabled'},//商品型号
+        {field: 'skuName', type: 'disabled'},//商品名称
+        //入库单价
+        {
+          field: 'priceInto',
+          type: 'disabled',
+          digits: 2,
+          flgUserSensitive: true,
+        },
+        // 退货数量
+        {
+          field: 'itemQty',
+          title: self.$t('returnQty1'),
+          type: 'number',
+          digits: 0,
+          sum: true,
+          negative: () => true,
+          formula: {
+            itemAmt: ['priceInto*itemQty', 'priceInto', 'itemQty'],
+          },
+        },
+        //退货金额
+        {
+          field: 'itemAmt',
+          title: self.$t('returnAmt1'),
+          type: 'disabled',
+          digits: 2,
+          flgUserSensitive: true,
+        },
+        {
+          field: 'whId',
+          type: 'select',
+          options: () => self.warehouseList,
+          labelKey: 'whName',
+          valueKey: 'whId',
+          dataType: self.$config.tableSelectType.warehouse,
+          fieldUpdate: [
+            {updateField: 'whName', valueFiled: 'whName'},
+            {updateField: 'whId', valueFiled: 'whId'},
+          ],
+          searchDataFlag: false,
+        },//仓库名称
+        {
+          field: 'remarks',
+        },
+      ],
+      warehouseList: [],//仓库
+    }
+  },
+
+  methods: {
+
+    /**
+     * @desc   : 总单仓库修改明细仓库
+     * @author : 常皓宁
+     * @date   : 2024/3/19 9:23
+     */
+    changItemWhId(){
+      let itemData = this.$refs['detailTable'].getTableDataFilter();
+      let whName = this.warehouseList.filter(it => it.whId  == this.formData.whId)
+      if(itemData && itemData.length > 0){
+        itemData.forEach(it =>{
+          it.whId = this.formData.whId
+          it.whId_Name = whName[0].whName
+          it.whName = whName[0].whName
+        })
+        this.$refs['detailTable'].$refs.xTable.reloadData(itemData)
+      }
+    },
+
+    /**
+     * @desc   : 选择采购入库单
+     * @author : 常皓宁
+     * @date   : 2024/3/15 13:02
+     */
+    choosePurchase(modalOpenFlag) {
+      if(modalOpenFlag){
+        this.chooseModal = true
+        this.getDataTable()
+      }
+    },
+
+    /**
+     * @desc   : 打开采购入库单modal
+     * @author : 常皓宁
+     * @date   : 2024/3/15 13:06
+     */
+    openPurchaseModal(e) {
+      this.$nextTick(() => {
+        if (e) {
+          this.modalVisible = true;
+        } else {
+          this.modalVisible = false;
+          // 清空列表和查询条件
+          this.$refs['searchCond'].clearCondition()
+          // 清空数据源
+          this.moldlineList = []
+        }
+      })
+    },
+
+    /**
+     * @desc   : 清空选择框
+     * @author : 周兴
+     * @date   : 2023/2/21 15:34
+     */
+    modalCancel() {
+      this.$refs['searchCond'].clearCondition()
+      // 清空数据源
+      this.moldlineList = []
+    },
+
+    /**
+     * @desc   : 选择采购入库单确定事件
+     * @author : 常皓宁
+     * @date   : 2024/3/15 15:23
+     */
+    modalOk() {
+      let batchRows = []
+      let itemBatchRows = []
+      //包括左侧
+      if (this.purList) {
+        batchRows = this.$refs['purTable'].batchRows
+        itemBatchRows = this.$refs['detail-select'].batchRows
+        console.log('batchRows',batchRows)
+        console.log('itemBatchRows',itemBatchRows)
+        // 总单
+        if (batchRows) {
+          this.formData.purId = batchRows[0].fromId
+          this.formData.purNo = batchRows[0].fromNo
+          this.formData.fromId = batchRows[0].fromId
+          this.formData.fromNo = batchRows[0].fromNo
+          this.formData.supId = batchRows[0].supId
+          this.formData.supplierName = batchRows[0].supplierName
+          this.formData.whId = batchRows[0].whId
+          this.formData.whName = batchRows[0].whName
+        }
+        // 明细
+        if (itemBatchRows) {
+          itemBatchRows.map(row => {
+            let item = row
+            this.$set(item, 'intoItemId', row['itemId'])
+            // 仓库
+            this.$set(item, 'whId', this.formData.whId)
+            this.$set(item, 'whName', this.formData.whName)
+          })
+          this.purchaseItemList = itemBatchRows
+          for (let index = 0; index < this.purchaseItemList.length; index++) {
+            this.purchaseItemList[index].itemQty = (this.purchaseItemList[index].intoQty - this.purchaseItemList[index].returnQty) * -1
+            this.purchaseItemList[index].itemAmt = (this.purchaseItemList[index].intoAmt - this.purchaseItemList[index].returnAmt) * -1
+          }
+          //关闭选择弹框
+          this.modalCancel() // 清空选择界面
+          this.chooseModal = false
+        }
+      }
+    },
+
+    /**
+     * @desc   : 行点击事件
+     * @author : 常皓宁
+     * @date   : 2024/2/28 15:01
+     */
+    currentChange({row}) {
+      if (row != null) {
+        this.intoId = row.intoId
+        //查询采购入库单明细
+        this.getDetail(1)
+      }
+    },
+
+    /**
+     * @desc   : 获取总单id对应明细
+     * @author : 常皓宁
+     * @date   : 2024/2/28 15:03
+     */
+    getDetail(currentPage) {
+      if (currentPage) {
+        this.detailPageInfo.currentPage = currentPage
+      }
+      let params = {
+        intoId: this.intoId,
+        pageSize: this.detailPageInfo.pageSize,
+        currentPage: this.detailPageInfo.currentPage
+      }
+      // 查询数据
+      return this.excute(this.$service.purEnterItemService, this.$service.purEnterItemService.selectByCond, params).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.tableDataDetail_goodsDetail = res.data.list
+          // 全选
+          this.$nextTick(() => {
+            this.$refs['detail-select'].checkAll();
+          })
+          this.$refs['detail-select'].pageInfo.total = res.data.total
+        } else {
+          this.tableDataDetail_goodsDetail = []
+        }
+      })
+    },
+
+    /**
+     * @desc   : 数据校验
+     * @author : 常皓宁
+     * @date   : 2024/3/2 9:51
+     */
+    validData() {
+      // // 明细必须有数据
+      // let itemTable = this.$refs['detailTable'].getTableDataFilter();
+      // if (!itemTable || itemTable.length == 0) {
+      //   this.$Message.warning(this.$t('W_012'))
+      //   return false;
+      // }
+      // for (let i = 0; i < itemTable.length; i++) {
+      //   if (!itemTable[i].itemQty || itemTable[i].itemQty === '') {
+      //     this.$message.warning(this.$t('W_041', {'param': this.$t('sequence') + (i + 1) + this.$t('rowNo') + this.$t('itemQty')}))
+      //     return false;
+      //   }
+      //   if (!itemTable[i].pricePur || itemTable[i].pricePur === '') {
+      //     this.$message.warning(this.$t('W_041', {'param': this.$t('sequence') + (i + 1) + this.$t('rowNo') + this.$t('pricePur')}))
+      //     return false;
+      //   }
+      // }
+      return true
+    },
+
+    /**
+     * @desc   : 行改变事件
+     * @author : 常皓宁
+     * @date   : 2024/3/19 10:51
+     */
+    changeValue(field, row, rowIndex) {
+      if (!row.whId || row.whId === 0 || row.whId === null) {
+        this.$set(row, 'whId', this.whId);
+        this.$set(row, 'whId_Name', this.whName);
+      }
+    },
+
+    /**
+     *   @desc   : 清空参数
+     *   @date   : 2022/12/20 15:33
+     *   @author : 常皓宁
+     */
+    clear() {
+      this.formData = {
+        fromId: null,//来源单Id
+        fromNo: null,//来源单号
+        purId: null,
+        purNo: null,
+        supId: null,
+        supName: null,
+        whId: null,
+        whName: null,
+        remarks: null,
+      },
+        this.purchaseItemList = []
+    },
+
+    /**
+     * @desc   : 给参数赋值
+     * @author : 常皓宁
+     * @date   : 2024/2/28 13:41
+     */
+    setParams() {
+      this.params = {...this.formData}
+
+      // 新建
+      if (this.type === this.$config.formMode.add) {
+        let tableFilter = this.$refs['detailTable'].getTableDataFilter();
+        tableFilter.map(row => {
+          let item = row
+          // 退货价
+          this.$set(item, 'priceReturn', row['priceInto']* -1)
+          return item
+        })
+        // 采购退货明细
+        this.params.intoReturnItemVOList = tableFilter
+        // 入库中数量
+        this.params.sumQuantity = tableFilter.sum('itemQty')
+        // 入库中金额
+        this.params.sumAmount = tableFilter.sum('itemAmt')
+      }
+      // 入库办理
+      if (this.type === this.$config.formMode.handle) {
+        let tableFilter = this.$refs['detailTable'].getTableDataFilter();
+        // 采购入库明细
+        this.params.itemList = tableFilter
+      }
+    },
+
+    /**
+     * @desc   : 提交事件
+     * @author : 付斌
+     * @date   : 2024-02-19 10:47
+     */
+    saveData() {
+      console.log('this.params', this.params)
+      //新建
+      if (this.type === this.$config.formMode.add) {
+        return this.excute(this.$service.purReturnService, this.$service.purReturnService.insert, this.params)
+      }
+      //退货办理
+      else if (this.type === this.$config.formMode.handle) {
+        return this.excute(this.$service.purReturnHandleService, this.$service.purReturnHandleService.inboundHandle, this.params)
+      }
+    },
+    /***************************列表及其他事件************************************/
+
+    /***************************设定参数函数************************************/
+
+    /***************************created调用数据接口函数************************************/
+
+    /**
+     * @desc   : 获取采购入库数据
+     * @author : 常皓宁
+     * @date   : 2024/3/15 13:08
+     */
+    getDataTable() {
+      let param = {}
+      param.fromId = this.fromId
+      param.cpId = this.$store.state.user.cpId
+      param.intoStatus = this.$config.intoStatus.yiRuKu
+      param = Object.assign(param, this.searchCond._value)
+      this.loading = true;
+      this.excute(this.$service.purEnterService, this.$service.purEnterService.selectByCond, param).then(res => {
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.purList = res.data.list
+        } else {
+          this.$Message.warning(res.message)
+          this.purList = []
+        }
+        this.loading = false;
+      })
+    },
+
+    /**
+     * @desc   : 通过id查询
+     * @author : 常皓宁
+     * @date   : 2024/2/29 8:49
+     */
+    detail(id) {
+      console.log('id',id)
+      return this.excuteNoParam(this.$service.purReturnHandleService, this.$service.purReturnHandleService.selectByUpdate, [id])
+    },
+
+    /**
+     * @desc   : 编辑页面赋值
+     * @author : 常皓宁
+     * @date   : 2024/2/29 9:49
+     */
+    setValuesByEdit(data) {
+      console.log('data',data)
+      this.formData.intoId = data.data.intoId
+      this.formData.fromId = data.data.fromId
+      this.formData.fromNo = data.data.fromNo
+      this.formData.supId = data.data.supId
+      this.formData.supplierName = data.data.supName
+      this.formData.remarks = data.data.remarks
+      this.formData.whId = data.data.whId
+      this.formData.whName = data.data.whName
+      let dataItem = data.dataItem
+      dataItem.map(row => {
+        let item = row
+        // 标价
+        this.$set(item, 'priceInto', row['priceStd'])
+        // 退货数量
+        this.$set(item, 'itemQty', row['itemQty']*-1)
+        // 退货金额
+        this.$set(item, 'itemAmt', row['itemQty']*row['priceStd'])
+        // 可退货数量
+        this.$set(item, 'intoQty', row['intoQty'] - row['returnQty'])
+        // 可退货金额
+        this.$set(item, 'intoAmt', row['intoAmt'] - row['returnAmt'])
+        return item
+      })
+      this.purchaseItemList = dataItem
+    },
+
+    /**
+     * @desc   : 获取仓库
+     * @author : 常皓宁
+     * @date   : 2024/2/28 14:39
+     */
+    getWareHouseList() {
+      let params = {
+        cpId: this.$store.state.user.cpId
+      }
+      this.excute(this.$service.commonService, this.$service.commonService.getWarehouse, params, false).then(res => {//调用api查询方法
+        if (res.code === this.$config.SUCCESS_CODE) {
+          this.warehouseList = res.data
+          //赋值默认仓库 组件需要
+          let newList = res.data.filter(it => it.flgDefault)
+          this.whId = newList[0].whId
+          this.whName = newList[0].whName
+        }
+      })
+    },
+
+    /**
+     * @desc   : 加载数据
+     * @author : 常皓宁
+     * @date   : 2024/2/28 14:37
+     */
+    initData() {
+      this.getWareHouseList();   // 获取仓库数据
+    },
+  },
+  /**
+   * @desc   : 在实例创建完成后被立即同步调用
+   * @author : 寇珊珊
+   * @date   : 2022/3/3 10:32
+   */
+  created() {
+    this.resizeTableFlag = true;  // 计算表格高度
+    this.showAutoFlag = false;
   },
 }
 </script>
+
+
+<style scoped>
+
+
+/deep/ .ivu-modal-body {
+  background: #EAEDF7 !important;
+}
+
+</style>

+ 19 - 24
src/view/pur/pur-return/index.vue

@@ -8,10 +8,10 @@
         <BaseIndexButton ref="search" name="search"></BaseIndexButton>
         <!--    清空条件    -->
         <BaseIndexButton ref="clear" name="clear"></BaseIndexButton>
+        <!--    编辑    -->
+        <BaseIndexButton ref="edit" name="edit"></BaseIndexButton>
         <!--    出库办理    -->
-        <BaseIndexButton ref="entryHandle" name="entryHandle"></BaseIndexButton>
-        <!--    出库撤回    -->
-        <BaseIndexButton ref="entryBack" name="entryBack"></BaseIndexButton>
+        <BaseIndexButton ref="outHandle" name="outHandle"></BaseIndexButton>
         <!--    作废    -->
         <BaseIndexButton ref="invalid" name="invalid"></BaseIndexButton>
       </template>
@@ -58,9 +58,9 @@
           <!--出库状态-->
           <DkTableColumn field="outStatusName" :color-cards="['出库中','已出库']"></DkTableColumn>
           <!-- 出库中数量-->
-          <DkTableColumn field="intoingQty" :digits="0" sum :title="'出库中数量'"></DkTableColumn>
+          <DkTableColumn field="outingQty" :digits="0" sum :title="'出库中数量'" dataType="number"></DkTableColumn>
           <!-- 出库中金额-->
-          <DkTableColumn field="intoingAmt" :digits="0" sum :title="'出库中金额'"></DkTableColumn>
+          <DkTableColumn field="outingAmt" :digits="0" sum :title="'出库中金额'" dataType="number"></DkTableColumn>
           <!--制单人-->
           <DkTableColumn field="makeStaffName"></DkTableColumn>
           <!--制单时间-->
@@ -97,9 +97,9 @@
           <!--出库状态-->
           <DkTableColumn field="outStatusName" :color-cards="['出库中','已出库']"></DkTableColumn>
           <!--已出库数量-->
-          <DkTableColumn field="intoQty" :digits="0" sum :title="'已出库数量'"></DkTableColumn>
+          <DkTableColumn field="outQty" :digits="0" sum :title="'已出库数量'" dataType="number"></DkTableColumn>
           <!--已出库金额-->
-          <DkTableColumn field="intoAmt" :digits="0" sum :title="'已出库金额'"></DkTableColumn>
+          <DkTableColumn field="outAmt" :digits="0" sum :title="'已出库金额'" dataType="number"></DkTableColumn>
           <!--制单人-->
           <DkTableColumn field="makeStaffName"></DkTableColumn>
           <!--制单时间-->
@@ -137,9 +137,9 @@
             <!--非标号-->
             <DkTableColumn field="nonStandardCode"></DkTableColumn>
             <!--出库中数量-->
-            <DkTableColumn field="intoingQty" :title="'出库中数量'"></DkTableColumn>
+            <DkTableColumn field="outingQty" :title="'出库中数量'" dataType="number"></DkTableColumn>
             <!--出库中金额-->
-            <DkTableColumn field="intoingAmt" :title="'出库中金额'"></DkTableColumn>
+            <DkTableColumn field="outingAmt" :title="'出库中金额'" dataType="number"></DkTableColumn>
             <!--备注-->
             <DkTableColumn field="remarks"></DkTableColumn>
           </DkTable>
@@ -169,9 +169,9 @@
             <!--非标号-->
             <DkTableColumn field="nonStandardCode"></DkTableColumn>
             <!--已出库数量-->
-            <DkTableColumn field="intoQty" :title="'已出库数量'"></DkTableColumn>
+            <DkTableColumn field="outQty" :title="'已出库数量'" dataType="number"></DkTableColumn>
             <!--已出库金额-->
-            <DkTableColumn field="intoAmt" :title="'已出库金额'"></DkTableColumn>
+            <DkTableColumn field="outAmt" :title="'已出库金额'" dataType="number"></DkTableColumn>
             <!--备注-->
             <DkTableColumn field="remarks"></DkTableColumn>
           </DkTable>
@@ -320,11 +320,14 @@ export default {
           this.$Message.warning(this.$t('W_007', {'param': this.$t('W_102')}));
           return
         }
+        let params ={
+          returnId:rows[0].returnId,
+        }
         this.$IBMessage({content: this.$t('Q_002', {'param': this.$v('invalid')}), title: this.$t('systemQuestion')},
           {
             ok: () => {
               this.loading = true
-              this.excuteNoParam(this.$service.purReturnService, this.$service.purReturnService.cancel, [rows[0].returnId], false).then(res => {
+              this.excute(this.$service.purReturnService, this.$service.purReturnService.cancel, params, false).then(res => {
                 if (res.code === this.$config.SUCCESS_CODE) {
                   this.$Message.success(this.$t('I_001', {'param': this.$t('invalid')}))
                 } else {
@@ -420,21 +423,13 @@ export default {
      */
     openValidData(btnName, rows) {
       //出库办理
-      if (rows && rows[0] && btnName === 'entryHandle') {
+      if (rows && rows[0] && btnName === 'outHandle') {
         //已出库不允许进行出库办理
         if( this.tableModel=='ingOut' ){
           this.$Message.warning(this.$t('W_007', {'param': this.$t('W_096')}));
           return false;
         }
       }
-      //出库撤回
-      else if (rows && rows[0] &&btnName === 'entryBack') {
-        //出库中不允许进行出库撤回
-        if( this.tableModel=='waitOut' ){
-          this.$Message.warning(this.$t('W_007', {'param': this.$t('W_097')}));
-          return false;
-        }
-      }
       return true;
     },
 
@@ -443,7 +438,7 @@ export default {
      * @author : 常皓宁
      * @date   : 2024/3/18 14:16
      */
-    entryBack(){
+    outBack(){
       //当前tab页是否在出库中,是可以进行出库撤回
       if (this.tableModel== 'waitOut'){
         this.$Message.error(this.$t('W_007', {'param': this.$t('W_095')}))
@@ -454,7 +449,7 @@ export default {
             cpId : this.$store.state.user.cpId
           }
           this.$IBMessage({
-              content: this.$t('Q_002', {'param': this.$v('entryBack')}),
+              content: this.$t('Q_002', {'param': this.$v('outBack')}),
               title: this.$t('systemQuestion')
             },
             {
@@ -463,7 +458,7 @@ export default {
                 //其他出库撤销
                 this.excute(this.$service.purEnterService, this.$service.purEnterService.purchaseInboundCancel, params).then(res => {
                   if (res.code === this.$config.SUCCESS_CODE) {
-                    this.$Message.success(this.$t('I_001', {'param': this.$v('entryBack')}))
+                    this.$Message.success(this.$t('I_001', {'param': this.$v('outBack')}))
                     this.getData()
                   }else{
                     this.$Message.error(res.message)