Jelajahi Sumber

采购退货更新

002390 1 tahun lalu
induk
melakukan
9c31f4176a

+ 19 - 0
src/api/business/purchase/purchase-order.js

@@ -118,6 +118,22 @@ const REFER = (data, params) => {
     params: params,
   });
 }
+// 获取入库数据
+const putInStorage = (data) =>{
+  return request({
+    url: "/pu/order/putInStorage",
+    method: "POST",
+    data: data,
+  });
+}
+// 获取入库数据
+const returnedGoods = (data) =>{
+  return request({
+    url: "/pu/order/returnedGoods",
+    method: "POST",
+    data: data,
+  });
+}
 
 export default {
   list,
@@ -133,5 +149,8 @@ export default {
   toNc,
   payRequest,
   REFER,
+  putInStorage,
+  returnedGoods,
+
 
 }

+ 15 - 1
src/views/purchase/purchase-order/index.vue

@@ -360,6 +360,15 @@ export default {
       }
       
     },
+    // 退货
+    handlePurchaseReturn(){
+      console.log(this.checkedList,'1111111111111');
+      // let {id:puOrderId} = ;
+      let puOrderId = Number(this.checkedList[0].id);
+      orderApi.putInStorage({puOrderId}).then(res=>{
+        console.log(res,'res---------------');
+      })
+    },
     // 主表Select框
     handleSelect(selection, row) {
 
@@ -375,6 +384,7 @@ export default {
 
       console.log(this.checkedTabList, 'this.checkedTabList');
     },
+    // 保留两位小数,补位
     keepTwoDecimalStr(num) {
       if(num){
           const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
@@ -526,7 +536,11 @@ export default {
         </el-button-group>
 
         <el-button-group style="margin-left: 10px">
-          <!-- <el-button size="mini">采购退货</el-button> -->
+          <!-- <el-button size="mini" 
+            :disabled="!(checkedList.length == 1 && checkedList[0].deliveryStatus == '0')"
+            :key="checkedList.length"
+            @click="handlePurchaseReturn"
+          >采购退货</el-button> -->
           <el-button size="mini" @click="handlePaymentRequest">付款申请</el-button>
 
           <!-- <el-button size="mini">附件管理</el-button>

+ 63 - 0
src/views/purchase/purchase-order/purchaseReturn/column.js

@@ -0,0 +1,63 @@
+export const TableColumns = [
+  {key:"pkOrg",title:"库存组织"},
+  {key:"orgName",title:"组织名称"},
+  {key:"approver",title:"签字人"},
+  {key:"billmaker",title:"制单人"},
+  {key:"cbizid",title:"采购员"},
+  {key:"cbizName",title:"采购员名称"},
+  {key:"cdptvid",title:"采购部门"},
+  {key:"cdptName",title:"部门名称"},
+  {key:"cwarehouseName",title:"仓库名称"},
+  {key:"cwarehouseid",title:"仓库id"},
+  {key:"cwhsmanagerid",title:"库管员"},
+  {key:"cwhsmanagerName",title:"库管员名称"},
+  {key:"dbilldate",title:"单据日期"},
+  {key:"dmakedate",title:"制单日期"},
+  {key:"freplenishflag",title:"退库"},
+  {key:"modifiedtime",title:"最后修改时间"},
+  {key:"modifier",title:"最后修改人"},
+  {key:"ntotalnum",title:"总数量"},
+  {key:"taudittime",title:"签字日期"},
+  {key:"vbillcode",title:"单据日期"},
+  {key:"project",title:"项目"},
+  {key:"goodsWarehouse",title:"收货仓库"},
+  {key:"shippingAddress",title:"收货地址"},
+  {key:"customerDept",title:"客户部门"},
+  {key:"degreeEmergency",title:"紧急程度"},
+  {key:"agent",title:"代理人"},
+  {key:"syncSrm",title:"是否同步SRM"},
+  {key:"modeProcess",title:"处理方式"},
+  {key:"receivingContact",title:"收货联系人"},
+  {key:"vnote",title:"备注"},
+  {key:"vreturnreason",title:"退货原因"},
+  {key:"billtypeName",title:"出入库类型名称"},
+  {key:"drpOrderCode",title:"drp订单编号"},
+  
+];
+
+// {key:"ncProcurementWarehouseDetailModels",title:"入库单明细"}
+export const DetailColumns =[
+  {key:"materialCode",title:"物料编码"},
+  {key:"materialName",title:"物料名称"},
+  {key:"materialSpec",title:"物料规格"},
+  {key:"materialType",title:"物料型号"},
+  {key:"unitName",title:"计量单位名称"},
+  {key:"udi",title:"udi"},
+  {key:"vlotno",title:"批次号"},
+  {key:"registrationNum",title:"注册证号"},
+  {key:"vapprovalNumber",title:"批准文号"},
+  {key:"vchangerate",title:"换算率"},
+  {key:"dbizdate",title:"入库日期"},
+  {key:"dprodate",title:"生产日期"},
+  {key:"vinvalidDate",title:"有效期至"},
+  {key:"flargess",title:"赠品"},
+  {key:"nassistnum",title:"实收数量"},
+  {key:"nnum",title:"实收主数量"},
+  {key:"nshouldassistNum",title:"应收数量"},
+  {key:"nshouldNum",title:"应收主数量"},
+  {key:"receivingCustomer",title:"收货客户"},
+  {key:"wmsRowNum",title:"WMS行号"},
+  {key:"agent",title:"代理人"},
+  {key:"vsourcebillCode",title:"来源单据号"},
+  {key:"vsourceRowno",title:"来源单据行号"}
+];

+ 250 - 0
src/views/purchase/purchase-order/purchaseReturn/index.vue

@@ -0,0 +1,250 @@
+<!-- 采购退货 -->
+<template>
+
+  <el-drawer 
+    direction="btt" 
+    size="100%" 
+    :with-header="false" 
+    :visible.sync="visible" 
+    @open="beforeOpen"
+    @close="$emit('close')"
+    v-loading="loading"
+  >
+    <el-form 
+      size="mini" 
+      label-position="right" 
+      label-width="140px" 
+      :model="params" 
+      :rules="rules"
+      ref="orderSeeForm" 
+    >
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+      }" style="margin: 10px">
+        <div slot="header" style="
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+          ">
+          <h3>查看</h3>
+          <div style="text-align: right">
+            <el-button size="mini" @click="handleRefresh">刷新</el-button>
+           
+            <el-button size="mini" @click="handleCancel">取 消</el-button>
+          </div>
+        </div>
+        <el-row style="display:flex; flex-wrap: wrap;">
+          <el-col v-for="(column, index) in columns" :key="index" :span="column.span || 6">
+            <el-form-item :prop="column.key" :label="column.title">
+
+              <el-input v-if="column.inputType === 'Input'" 
+                v-model="params[column.key]" 
+                :placeholder="column.placeholder"
+                :clearable="column.clearable" 
+                readonly 
+                style="width: 100%"
+              ></el-input>
+              <dr-popover-select v-if="column.inputType === 'PopoverSelect'" 
+                v-model="params[column.key]" 
+                disabled
+                :value-key="column.valueKey" 
+                :source.sync="params" 
+                :title="column.title" 
+                :type="column.referName"
+                :multiple="column.multiple" 
+                :placeholder="column.placeholder" 
+                :data-mapping="column.dataMapping"
+                :query-params="column.queryParams"
+              ></dr-popover-select>
+
+              <el-input v-if="column.inputType === 'Textarea'" 
+                v-model="params[column.key]" 
+                type="textarea"
+                :placeholder="column.placeholder" 
+                :clearable="column.clearable" 
+                readonly 
+                style="width: 100%"
+              ></el-input>
+
+              <el-input-number v-if="column.inputType === 'InputNumber'" 
+                v-model="params[column.key]"
+                :controls-position="column.controlsPosition" 
+                :placeholder="column.placeholder"
+                :clearable="column.clearable" 
+                :precision="column.precision"
+                disabled 
+                style="width: 100%"
+              ></el-input-number>
+              <el-select v-if="column.inputType === 'Select'" 
+                v-model="params[column.key]" 
+                disabled 
+                size="mini"
+                :clearable="column.clearable" 
+                :placeholder="column.placeholder" 
+                style="width: 100%">
+                <el-option 
+                  v-for="item in dict.type[column.referName]" 
+                  :key="item.value" 
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+              <el-select v-if="column.inputType === 'TagSelect'" 
+                v-model="params[column.key]" 
+                multiple 
+                clearable
+                collapse-tags 
+                :placeholder="column.placeholder" 
+                :clearable="column.clearable" 
+                disabled
+                style="width: 100%">
+                <template #prefix>
+                  <el-icon class="el-icon-view" 
+                    style="cursor: pointer" 
+                    @click.stop="$message.info(234)">
+                  </el-icon>
+                </template>
+                <el-option 
+                  v-for="item in options" 
+                  :key="item.value" 
+                  :label="item.label" 
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+              <el-date-picker v-if="column.inputType === 'DatePicker'" 
+                v-model="params[column.key]" 
+                :type="column.type"
+                :placeholder="column.placeholder" 
+                :clearable="column.clearable" 
+                readonly
+                :picker-options="column.pickerOptions" 
+                style="width: 100%"
+              ></el-date-picker>
+              <el-checkbox v-if="column.inputType === 'Checkbox'" 
+                v-model="params[column.key]" 
+                disabled 
+                true-label="Y"
+                false-label="N"
+              ></el-checkbox>
+              <file-upload-center v-if="column.inputType === 'Upload'" 
+                v-model="params[column.key]"
+                :file-type="column.fileType" 
+                :disabled="true"
+              ></file-upload-center>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-card>
+      <el-card :body-style="{
+        padding: '20px',
+        display: 'flex',
+        'flex-wrap': 'wrap',
+        position: 'relative',
+      }" style="margin: 10px">
+        <el-tabs v-model="tabName" style="width: 100%">
+          <el-tab-pane 
+            v-for="(column, index) in tabColumns" 
+            :key="index" 
+            :label="column.title" 
+            :name="column.key"
+          >
+            <el-table :data="params[column.key]" style="width: 100%">
+              <el-table-column 
+                v-for="(cColumn, cIndex) in column.tableColumns" 
+                :key="cIndex" 
+                :prop="cColumn.key"
+                :label="cColumn.title" 
+                :width="cColumn.width || 80"
+              >
+                <template slot-scope="scope">
+                  <el-tag v-if="cColumn.key === 'index'">
+                    {{ scope.$index + 1 }}
+                  </el-tag>
+                  <el-input v-if="cColumn.inputType === 'Input'" 
+                    v-model="scope.row[cColumn.key]"
+                    :placeholder="cColumn.placeholder" 
+                    :clearable="cColumn.clearable" 
+                    readonly 
+                    size="mini"
+                    style="width: 100%"
+                  ></el-input>
+
+                  <!--  -->
+                  <dr-popover-select v-if="cColumn.inputType === 'PopoverSelect'"
+                    v-model="scope.row[cColumn.key]"
+                    :source.sync="scope.row" 
+                    :title="cColumn.title" 
+                    :value-key="cColumn.valueKey" 
+                    disabled
+                    :type="cColumn.referName" 
+                    :multiple="cColumn.multiple" 
+                    :placeholder="cColumn.placeholder"
+                    :data-mapping="cColumn.dataMapping" 
+                    :query-params="cColumn.queryParams" 
+                    size="mini"
+                  ></dr-popover-select>
+
+                  <el-input-number v-if="cColumn.inputType === 'InputNumber'" 
+                    v-model="scope.row[cColumn.key]"
+                    :precision="cColumn.precision"
+                    :controls-position="cColumn.controlsPosition" 
+                    :placeholder="cColumn.placeholder"
+                    :clearable="cColumn.clearable" 
+                    disabled 
+                    size="mini" 
+                    style="width: 100%"
+                  ></el-input-number>
+
+                  <el-select v-if="cColumn.inputType === 'Select'" 
+                    v-model="scope.row[cColumn.key]" 
+                    disabled 
+                    size="mini"
+                    :clearable="cColumn.clearable" 
+                    :placeholder="cColumn.placeholder" 
+                    style="width: 100%">
+                    <el-option 
+                      v-for="item in dict.type[cColumn.referName]" 
+                      :key="item.value" 
+                      :label="item.label"
+                      :value="item.value"
+                    ></el-option>
+                  </el-select>
+
+                  <el-checkbox v-if="cColumn.inputType === 'Checkbox'" 
+                    v-model="scope.row[cColumn.key]" 
+                    disabled
+                    true-label="Y" 
+                    false-label="N"
+                  ></el-checkbox>
+
+                </template>
+              </el-table-column>
+            </el-table>
+          </el-tab-pane>
+        </el-tabs>
+      </el-card>
+
+    </el-form>
+  </el-drawer>
+
+</template>
+
+<script>
+export default{
+  name:'purchaseReturn',
+
+  data(){
+    return {
+      visible: false,
+      loading:false,
+    }
+  },
+  methods:{
+    beforeOpen(){}
+  }
+}
+</script>