changhaoning 2 лет назад
Родитель
Сommit
85d09e0bc3

+ 1 - 1
src/api/pages/pur/pur-order.js

@@ -18,7 +18,7 @@ export const routeUrl = {
   purOrder: {
     add: {key: 'add', routeName: 'pur-order-add'},
     edit: {key: 'edit', routeName: 'pur-order-edit'},
-    revert: {key: 'revert', method: 'revert'},
+    invalid: {key: 'invalid', method: 'invalid'},
     purchaseReturn: {key: 'purchaseReturn', method: 'purchaseReturn'},
   }
 }

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

@@ -5,7 +5,7 @@
  */
 export default {
   purReturnItemService: {
-    prefix: '/mdm-server/ivt/intoReturnItem/',
+    prefix: '/mdm-server/ivt/inboundItem/',
   }
 }
 

+ 2 - 4
src/api/pages/pur/pur-return.js

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

+ 1 - 0
src/locale/lang/zh-CN.js

@@ -528,6 +528,7 @@ export const messages = {
   W_103: '已出库数据不允许进行出库办理',
   W_104: '已出库数据不允许进行编辑',
   W_105: '已入库单据不允许进行作废处理',
+  W_106: '非待入库单据不允许进行作废处理',
   E_001: '系统出现异常,请联系管理员。',
   Q_001: '当前页面的数据有过更改,请确认需要保存吗?',
   Q_002: '确定要进行{param}操作吗?',

+ 28 - 10
src/view/pur/pur-enter/form.vue

@@ -71,7 +71,6 @@
         </DkForm>
       </DkPanel>
       <!--商品信息-->
-      {{this.purchaseItemFlag}}
       <DkPanel prop="goodsInformation">
         <div id="search-cond-div-goods-info" ref="search-cond-div-goods-info" slot="content">
           <EditTable slot="left"
@@ -339,10 +338,10 @@ export default {
         pageSize: this.$config.pageSize,
         currentPage: 1
       },
-      modalTitle: '选择采购订单',//选择成型线弹窗名称
-      chooseModal: false,
+      modalTitle: '选择采购订单',//选择源单名称
+      chooseModal: false,//选择源单model
       purItemId: null,
-      purchaseItemFlag: this.type === this.$config.formMode.add ? false : (this.type === this.$config.formMode.handle ? true:false) ,
+      purchaseItemFlag: this.type === this.$config.formMode.add ? false : (this.type === this.$config.formMode.handle ? true:false) ,//商品信息新增
       loading: false,
       allCanNoEdit: false, //是否所有的都不允许编辑
       formData: {
@@ -366,7 +365,8 @@ export default {
           field: 'skuCode',
           controlId: 'skuId',
           treeNode: true,
-          type: self.type === self.$config.formMode.add ? (self.type === self.$config.formMode.handle?'disabled':'tableSelect') : 'disabled',
+          type: 'tableSelect',
+          // type: 'disabled',
           fixed: 'left',
           promotionType: true,
           dataType: self.$config.tableSelectType.goodsForPurchase,
@@ -384,7 +384,7 @@ export default {
         {
           field: 'skuName',
           controlId: 'skuId',
-          type: self.type === self.$config.formMode.add ? (self.type === self.$config.formMode.handle?'disabled':'tableSelect') : 'disabled',
+          type: 'tableSelect',
           fixed: 'left',
           promotionType: true,
           dataType: self.$config.tableSelectType.goodsForPurchase,
@@ -409,6 +409,14 @@ export default {
             itemAmt: ['pricePur*itemQty', 'pricePur', 'itemQty'],
           },
         },
+        // 可入库数量
+        {
+          field: 'canQty',
+          title: self.$t('可入库数量'),
+          type: 'disabled',
+          digits: 0,
+          sum: true,
+        },
         //入库单价
         {
           field: 'pricePur',
@@ -426,9 +434,7 @@ export default {
           type: 'number',
           digits: 2,
           sum: true,
-          formula: {
-            pricePur: ['itemAmt/itemQty', 'itemAmt', 'itemQty'],
-          },
+
         },
         {
           field: 'whId',
@@ -547,12 +553,17 @@ export default {
             // 仓库
             this.$set(item, 'whId', this.formData.whId)
             this.$set(item, 'whName', this.formData.whName)
+            // 可入库数量
+            this.$set(item, 'canQty', row['itemQty'] - row['intoQty'] - row['intoingQty'])
+            // 不可查询
+            this.$set(item, 'readOnly', ['skuCode','skuName'])
           })
           this.purchaseItemList = itemBatchRows
           //关闭选择弹框
           this.modalCancel() // 清空选择界面
           this.chooseModal = false
           this.purchaseItemFlag = true
+          // this.goodsColumns[0].type = 'disabled'
         }
       }
     },
@@ -587,7 +598,9 @@ export default {
       // 查询数据
       return this.excute(this.$service.purchaseItemService, this.$service.purchaseItemService.selectByCond, params).then(res => {
         if (res.code === this.$config.SUCCESS_CODE) {
-          this.tableDataDetail_goodsDetail = res.data.list
+          let tableDataDetail_goodsDetail = res.data.list
+          let data = tableDataDetail_goodsDetail.filter(it => it.itemQty - it.intoingQty > 0)
+          this.tableDataDetail_goodsDetail = data
           // 全选
           this.$nextTick(()=>{
             this.$refs['detail-select'].checkAll();
@@ -620,6 +633,10 @@ export default {
           this.$message.warning(this.$t('W_041', {'param': this.$t('sequence') + (i + 1) + this.$t('rowNo') + this.$t('pricePur')}))
           return false;
         }
+        if (itemTable[i].itemQty > itemTable[i].canQty) {
+          this.$message.warning(this.$t('W_008', {'param1': this.$t('sequence') + (i + 1) + this.$t('rowNo') + this.$t('entryQty'),'param2':this.$t('可入库数量')}))
+          return false;
+        }
       }
       return true
     },
@@ -791,6 +808,7 @@ export default {
     getDataTable() {
       let param = {}
       param.cpId = this.$store.state.user.cpId
+      param.intoStatusList = [this.$config.intoStatus.daiRuKu,this.$config.intoStatus.ruKuZhong]
       param = Object.assign(param, this.searchCond._value)
       this.loading = true;
       this.excute(this.$service.purOrderService, this.$service.purOrderService.selectByCond, param).then(res => {

+ 4 - 4
src/view/pur/pur-enter/index.vue

@@ -60,9 +60,9 @@
           <!--入库状态-->
           <DkTableColumn field="intoStatusName" :color-cards="['入库中','已入库']"></DkTableColumn>
           <!-- 入库中数量-->
-          <DkTableColumn field="intoingQty" :digits="0" sum :title="'入库中数量'"></DkTableColumn>
+          <DkTableColumn field="intoingQty" :digits="0" sum :title="'入库中数量'" data-type="number"></DkTableColumn>
           <!-- 入库中金额-->
-          <DkTableColumn field="intoingAmt" :digits="0" sum :title="'入库中金额'"></DkTableColumn>
+          <DkTableColumn field="intoingAmt" :digits="0" sum :title="'入库中金额'" data-type="number"></DkTableColumn>
           <!--制单人-->
           <DkTableColumn field="makeStaffName"></DkTableColumn>
           <!--制单时间-->
@@ -95,9 +95,9 @@
           <!--入库状态-->
           <DkTableColumn field="intoStatusName" :color-cards="['入库中','已入库']"></DkTableColumn>
           <!--已入库数量-->
-          <DkTableColumn field="intoQty" :digits="0" sum :title="'已入库数量'"></DkTableColumn>
+          <DkTableColumn field="intoQty" :digits="0" sum :title="'已入库数量'" data-type="number"></DkTableColumn>
           <!--已入库金额-->
-          <DkTableColumn field="intoAmt" :digits="0" sum :title="'已入库金额'"></DkTableColumn>
+          <DkTableColumn field="intoAmt" :digits="0" sum :title="'已入库金额'" data-type="number"></DkTableColumn>
           <!--制单人-->
           <DkTableColumn field="makeStaffName"></DkTableColumn>
           <!--制单时间-->

+ 42 - 1
src/view/pur/pur-order/form.vue

@@ -67,6 +67,7 @@
                      :height="400"
                      :freeze="false"
                      :show-footer="true"
+                     :canDelete="canDeleteLeft"
           ></EditTable>
         </div>
       </DkPanel>
@@ -301,6 +302,18 @@ export default {
           sum: true
         },//采购标价
         {
+          field: 'ingIntoQty',
+          title: self.$t('已转入库数量'),
+          type: 'disabled',
+          digits: 2,
+          number: true,
+          sum: true
+        },//可转入库数量
+        {
+          field: 'intoStatusName',
+          type: 'disabled',
+        },//入库状态
+        {
           field: 'remarks',
         },
       ],
@@ -384,6 +397,15 @@ export default {
         this.$Message.warning(this.$t('W_001', {param: this.$t('pricePurchase')}))
         return false
       }
+      // 明细必须有数据
+      let itemTable = this.$refs['detailTable'].getTableDataFilter();
+      for (let i = 0; i < itemTable.length; i++) {
+        // 编辑时 商品数量不能小于已转入库数量
+        if (itemTable[i].itemQty < itemTable[i].ingIntoQty) {
+          this.$message.warning(this.$t('W_009', {'param1': this.$t('sequence') + (i + 1) + this.$t('rowNo') + this.$t('itemQty'),'param2':this.$t('已转入库数量')}))
+          return false;
+        }
+      }
       return true
     },
 
@@ -538,6 +560,14 @@ export default {
     },
 
     /**
+    * @desc   : 删除按钮不显示
+    * @author : 常皓宁
+    * @date   : 2024/3/26 10:24
+    */
+    canDeleteLeft (row) {
+      return row['intoStatus'] && row['intoStatus'] == this.$config.intoStatus.daiRuKu
+    },
+    /**
      * @desc   : 编辑页面赋值
      * @author : 常皓宁
      * @date   : 2024/2/29 9:49
@@ -553,7 +583,18 @@ export default {
       this.formData.contactName = data.contactName
       this.formData.contactPhone = data.contactPhone
       this.formData.remarks = data.remarks
-      this.purchaseItemList = data.purchaseItemResponseList
+      let purchaseItemResponseList = data.purchaseItemResponseList
+      purchaseItemResponseList.map(row =>{
+        let item = row
+        //可转入库数量
+        this.$set(item, 'ingIntoQty', row['intoQty'] + row['intoingQty'])
+        console.log('row',row)
+        if(row['intoStatus'] != this.$config.intoStatus.daiRuKu){
+          // 不可查询
+          this.$set(item, 'readOnly', ['skuCode','skuName'])
+        }
+      })
+      this.purchaseItemList = purchaseItemResponseList
     },
 
 

+ 53 - 30
src/view/pur/pur-order/index.vue

@@ -6,8 +6,8 @@
         <BaseIndexButton ref="search" name="search"></BaseIndexButton>
         <BaseIndexButton ref="clear" name="clear"></BaseIndexButton>
         <BaseIndexButton ref="edit" name="edit"></BaseIndexButton>
-        <!--冲正-->
-        <BaseIndexButton ref="revert" name="revert"></BaseIndexButton>
+        <!--作废-->
+        <BaseIndexButton ref="invalid" name="invalid"></BaseIndexButton>
         <!--采购退货-->
         <BaseIndexButton ref="purchaseReturn" name="purchaseReturn"></BaseIndexButton>
         <!--打印-->
@@ -164,7 +164,7 @@ export default {
   data() {
     let self = this
     return {
-      purId:null,//总单ID
+      purId: null,//总单ID
       standardGoodsFlag: true,
       reviewResumeFlag: false,
       totalTab: null,//存放总单tab切换到那个标签
@@ -330,7 +330,10 @@ export default {
         {
           itemCode: '采购日期-时间',
           itemName: 'pickupDate',
-          valueFormat: {code: 'pickupDate', default: [new Date().addMonths(-1).format('yyyy-MM-dd'), new Date().format('yyyy-MM-dd')]},
+          valueFormat: {
+            code: 'pickupDate',
+            default: [new Date().addMonths(-1).format('yyyy-MM-dd'), new Date().format('yyyy-MM-dd')]
+          },
           valueKind: 'DATE_RANGE'
         },
       ],
@@ -345,9 +348,9 @@ export default {
     getData(params) {
       // 查询数据
       let excute = this.excute(this.$service.purOrderService, this.$service.purOrderService.selectByCond, params)
-      excute.then(res=>{
-        console.log('res',res)
-        if(res.code === this.$config.SUCCESS_CODE){
+      excute.then(res => {
+        console.log('res', res)
+        if (res.code === this.$config.SUCCESS_CODE) {
           this.tableDataDetail_goodsDetail = []
         }
       })
@@ -355,15 +358,15 @@ export default {
     },
 
     /**
-    * @desc   : 采购退货
-    * @author : 常皓宁
-    * @date   : 2024/3/21 9:39
-    */
-    purchaseReturn(){
-      if(this.$refs['table-select'].batchKeys.length == 1){
+     * @desc   : 采购退货
+     * @author : 常皓宁
+     * @date   : 2024/3/21 9:39
+     */
+    purchaseReturn() {
+      if (this.$refs['table-select'].batchKeys.length == 1) {
         // 判断状态是否可以进行采购退货
         let row = this.$refs['table-select'].batchRows[0];
-        if(row.intoStatus == this.$config.intoStatus.daiRuKu){
+        if (row.intoStatus == this.$config.intoStatus.daiRuKu) {
           this.$Message.warning(this.$t('W_007', {'param': this.$t('W_101')}));
           return
         }
@@ -378,21 +381,41 @@ export default {
     openFile(row) {
       window.open(this.$config.imgUrl + row.url)
     },
+
     /**
-     * @desc   : 冲正
-     * @author : 付斌
-     * @date   : 2024-02-19 10:01
+     * @desc   : 作废
+     * @author : 常皓宁
+     * @date   : 2024-03-05 8:56
      */
-    revert() {
-
+    invalid(rows) {
+      if (rows && rows.length > 0) {
+        if (rows[0].intoStatus != this.$config.intoStatus.daiRuKu) {
+          this.$Message.warning(this.$t('W_007', {'param': this.$t('W_106')}));
+          return
+        }
+        this.$IBMessage({content: this.$t('Q_002', {'param': this.$v('invalid')}), title: this.$t('systemQuestion')},
+          {
+            ok: () => {
+              this.loading = true
+              this.excuteNoParam(this.$service.purOrder, this.$service.purOrder.invalid, [rows[0].purId], false).then(res => {
+                if (res.code === this.$config.SUCCESS_CODE) {
+                  this.$Message.success(this.$t('I_001', {'param': this.$t('invalid')}))
+                } else {
+                  this.$Message.warning(res.message)
+                }
+                this.loading = false
+              })
+            },
+          })
+      }
     },
 
     /**
-    * @desc   : 行点击事件
-    * @author : 常皓宁
-    * @date   : 2024/2/28 15:01
-    */
-    currentChange({ row }) {
+     * @desc   : 行点击事件
+     * @author : 常皓宁
+     * @date   : 2024/2/28 15:01
+     */
+    currentChange({row}) {
       if (row != null) {
         this.purId = row.purId
         this.getDetail(1)
@@ -400,16 +423,16 @@ export default {
     },
 
     /**
-    * @desc   : 获取总单id对应明细
-    * @author : 常皓宁
-    * @date   : 2024/2/28 15:03
-    */
+     * @desc   : 获取总单id对应明细
+     * @author : 常皓宁
+     * @date   : 2024/2/28 15:03
+     */
     getDetail(currentPage) {
       if (currentPage) {
         this.detailPageInfo.currentPage = currentPage
       }
       let params = {
-        purId:this.purId,
+        purId: this.purId,
         pageSize: this.detailPageInfo.pageSize,
         currentPage: this.detailPageInfo.currentPage
       }
@@ -418,7 +441,7 @@ export default {
         if (res.code === this.$config.SUCCESS_CODE) {
           this.tableDataDetail_goodsDetail = res.data.list
           this.$refs['detail-select'].pageInfo.total = res.data.total
-        }else{
+        } else {
           this.tableDataDetail_goodsDetail = []
         }
       })

+ 9 - 9
src/view/pur/pur-return/form.vue

@@ -612,15 +612,15 @@ export default {
      */
     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
+      this.formData.intoId = data.intoId
+      this.formData.fromId = data.fromId
+      this.formData.fromNo = data.fromNo
+      this.formData.supId = data.supId
+      this.formData.supplierName = data.supName
+      this.formData.remarks = data.remarks
+      this.formData.whId = data.whId
+      this.formData.whName = data.whName
+      let dataItem = data.goodsList
       dataItem.map(row => {
         let item = row
         // 标价

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

@@ -1,669 +1,18 @@
-<!-- @desc:采购退货新建  @auth:常皓宁 @time:2024/03/14 14:15 -->
 <template>
-  <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>
+  <CommonForm type="handle" ></CommonForm>
 </template>
 
 <script>
-
-import {formMixin} from '@/mixins/form'
+import CommonForm from './form'
 
 export default {
-  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;
+  name: 'pur-return-handle',
+  components:{
+    CommonForm
   },
 }
 </script>
 
-
 <style scoped>
 
-
-/deep/ .ivu-modal-body {
-  background: #EAEDF7 !important;
-}
-
 </style>

+ 18 - 26
src/view/pur/pur-return/index.vue

@@ -36,14 +36,14 @@
                  ref="table-select"
                  :data="tableData"
                  :height="this.tableHeight * split - 60"
-                 primaryKey="returnId"
+                 primaryKey="intoId"
                  :multiple="false"
                  :choose-flag="false"
                  v-if="this.tableModel === 'waitOut'"
                  @current-change="currentChange($event)"
                  @pageChange="pageSizeChange">
           <!-- 采购出库单号-->
-          <DkTableColumn field="returnNo"></DkTableColumn>
+          <DkTableColumn field="intoNo" :title="$t('returnNo')"></DkTableColumn>
           <!--部门-->
           <DkTableColumn field="orgName"></DkTableColumn>
           <!--员工-->
@@ -54,16 +54,12 @@
           <DkTableColumn field="contactName"></DkTableColumn>
           <!--联系电话-->
           <DkTableColumn field="contactPhone"></DkTableColumn>
-          <!--送货日期-->
-          <DkTableColumn field="deliveryDate" data-type="date"/>
-           <!--退货状态-->
-          <DkTableColumn field="returnStatus"></DkTableColumn>
           <!--出库状态-->
-          <DkTableColumn field="outStatusName" :color-cards="['出库中','已出库']"></DkTableColumn>
+          <DkTableColumn field="intoStatusName"></DkTableColumn>
           <!-- 出库中数量-->
-          <DkTableColumn field="outingQty" :digits="0" sum :title="'出库中数量'" dataType="number"></DkTableColumn>
+          <DkTableColumn field="intoingQty" :digits="0" sum :title="'入库中数量'" dataType="number"></DkTableColumn>
           <!-- 出库中金额-->
-          <DkTableColumn field="outingAmt" :digits="0" sum :title="'出库中金额'" dataType="number"></DkTableColumn>
+          <DkTableColumn field="intoingAmt" :digits="0" sum :title="'入库中金额'" dataType="number"></DkTableColumn>
           <!--制单人-->
           <DkTableColumn field="makeStaffName"></DkTableColumn>
           <!--制单时间-->
@@ -77,7 +73,7 @@
                  ref="table-select"
                  :data="tableData"
                  :height="this.tableHeight * split - 60"
-                 primaryKey="returnId"
+                 primaryKey="intoId"
                  :multiple="false"
                  :choose-flag="false"
                  v-if="this.tableModel === 'ingOut'"
@@ -95,16 +91,12 @@
           <DkTableColumn field="contactName"></DkTableColumn>
           <!--联系电话-->
           <DkTableColumn field="contactPhone"></DkTableColumn>
-          <!--送货日期-->
-          <DkTableColumn field="deliveryDate" data-type="date"/>
-          <!--退货状态-->
-          <DkTableColumn field="returnStatus"></DkTableColumn>
           <!--出库状态-->
-          <DkTableColumn field="outStatusName" :color-cards="['出库中','已出库']"></DkTableColumn>
+          <DkTableColumn field="intoStatusName"></DkTableColumn>
           <!--已出库数量-->
-          <DkTableColumn field="outQty" :digits="0" sum :title="'已出库数量'" dataType="number"></DkTableColumn>
+          <DkTableColumn field="intoQty" :digits="0" sum :title="'已入库数量'" dataType="number"></DkTableColumn>
           <!--已出库金额-->
-          <DkTableColumn field="outAmt" :digits="0" sum :title="'已出库金额'" dataType="number"></DkTableColumn>
+          <DkTableColumn field="intoAmt" :digits="0" sum :title="'已入库金额'" dataType="number"></DkTableColumn>
           <!--制单人-->
           <DkTableColumn field="makeStaffName"></DkTableColumn>
           <!--制单时间-->
@@ -236,7 +228,7 @@ export default {
       tableData: [],
       goodsDetailData: [],//商品明细
       reviewResumeData: [],//附件明细
-      returnId: null,//出库Id
+      intoId: null,//出库Id
       //明细明细分页
       detailPageInfo: {
         total: 0,
@@ -343,7 +335,7 @@ export default {
           return
         }
         let params ={
-          returnId:rows[0].returnId,
+          intoId:rows[0].intoId,
         }
         this.$IBMessage({content: this.$t('Q_002', {'param': this.$v('invalid')}), title: this.$t('systemQuestion')},
           {
@@ -372,7 +364,7 @@ export default {
       params.currentPage = this.pageInfo.currentPage
       params.pageSize = this.pageInfo.pageSize
       params.flgValid = true
-      params.returnType = '退货类型-采退退货'
+      params.intoType = '入库类型-采退入库'
       if (this.isShowCancel) {
         params.isShowCancel = 1
       } else {
@@ -383,9 +375,9 @@ export default {
         params.cpId = this.$store.state.user.cpId  //所属公司
       }
       if (this.tableModel === 'waitOut') {
-        params.outStatusList = [this.$config.outStatus.chuKuZhong]
+        params.intoStatusList = [this.$config.intoStatus.ruKuZhong]
       } else if (this.tableModel === 'ingOut') {
-        params.outStatusList = [this.$config.outStatus.yiChuKu]
+        params.intoStatusList = [this.$config.intoStatus.yiRuKu]
       }
       return params
     },
@@ -415,7 +407,7 @@ export default {
      */
     currentChange({row}) {
       if (row != null) {
-        this.returnId = row.returnId
+        this.intoId = row.intoId
         this.getDetail(1)
       }
     },
@@ -430,7 +422,7 @@ export default {
         this.detailPageInfo.currentPage = currentPage
       }
       let params = {
-        returnId: this.returnId,
+        intoId: this.intoId,
         pageSize: this.detailPageInfo.pageSize,
         currentPage: this.detailPageInfo.currentPage
       }
@@ -481,7 +473,7 @@ export default {
       }else {
         if (this.$refs['table-select'].batchKeys.length === 1){
           let params = {
-            returnId : this.$refs['table-select'].batchKeys[0],
+            intoId : this.$refs['table-select'].batchKeys[0],
             cpId : this.$store.state.user.cpId
           }
           this.$IBMessage({
@@ -509,7 +501,7 @@ export default {
     },
   },
   created() {
-    this.primaryKey = 'returnId'  // 设置主键Id
+    this.primaryKey = 'intoId'  // 设置主键Id
     this.routeObjName = 'purReturn'  // 设置路由名称
   },
 }