Просмотр исходного кода

订单管理修改客户代号必填项

yusheng 2 лет назад
Родитель
Сommit
17f863def4

+ 20 - 4
src/api/purchasingManage/returnGoods.js

@@ -55,7 +55,23 @@ export async function deleteReturnInformation(data) {
   return Promise.reject(new Error(res.data.message));
 }
 
-
-
-
-
+/**
+ * 提交
+ */
+export async function submit(data) {
+  const res = await request.post(`/bpm/purchaseReturnApprove/submit`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+/**
+ * 获取仓库信息
+ */
+export async function getWarehouseListByIds(data) {
+  const res = await request.post(`wms/warehouse/getWarehouseListByIds`, data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 12 - 2
src/views/contractManage/contractBook/components/inventoryTable.vue

@@ -64,8 +64,17 @@
           ></el-input>
         </el-form-item>
       </template>
-      <template v-slot:customerMark="{ row, $index }">
-        <el-form-item>
+      <template v-slot:headerCustomerMark="{ column }">
+        <span class="is-required">{{ column.label }}</span>
+      </template>
+      <template  v-slot:customerMark="{ row, $index }">
+        <el-form-item 
+            :prop="'datasource.' + $index + '.customerMark'"
+            :rules="{
+            required: true,
+            message: '请输入',
+            trigger: 'change'
+          }">
           <el-input v-model="row.customerMark" placeholder="请输入"></el-input>
         </el-form-item>
       </template>
@@ -553,6 +562,7 @@
             prop: 'customerMark',
             label: '客户代号',
             slot: 'customerMark',
+            headerSlot: 'headerCustomerMark'
             // show: this.isCustomerMark
           },
           {

+ 34 - 3
src/views/purchasingManage/purchaseOrder/returnGoods/components/addReturnGoodsDialog.vue

@@ -102,6 +102,8 @@
 
     <div slot="footer" class="footer">
       <el-button type="primary" @click="save">保存</el-button>
+      <el-button type="primary" @click="save('sub')">提交</el-button>
+
       <el-button @click="cancel">返回</el-button>
     </div>
     <sendListDialog
@@ -118,7 +120,9 @@
   import {
     getReturnSaleOrderrecordDetail,
     UpdateReturnInformation,
-    addReturnInformation
+    addReturnInformation,
+    submit,
+    getWarehouseListByIds
   } from '@/api/purchasingManage/returnGoods';
   import { getReceiveSaleOrderrecordDetail } from '@/api/purchasingManage/purchaseorderreceive';
   import inventoryTable from './inventoryTable.vue';
@@ -181,7 +185,7 @@
             }
           ]
         },
-
+        businessId: '',
         // 提交状态
         loading: false,
         // 是否是修改
@@ -234,6 +238,8 @@
 
       //获取退货单详情
       async getReturnSaleOrderrecordDetail(id) {
+        this.businessId = id;
+
         this.loading = true;
         const data = await getReturnSaleOrderrecordDetail(id);
         this.loading = false;
@@ -298,7 +304,7 @@
           })
         ]);
       },
-      async save() {
+      async save(type) {
         try {
           await this.getValidate();
           // 表单验证通过,执行保存操作
@@ -321,6 +327,10 @@
               .then((res) => {
                 this.loading = false;
                 this.$message.success('修改成功');
+                if (type === 'sub') {
+                  this.sub(res);
+                  return;
+                }
                 this.cancel();
                 this.$emit('done');
               })
@@ -332,6 +342,10 @@
               .then((res) => {
                 this.loading = false;
                 this.$message.success('新增成功');
+                if (type === 'sub') {
+                  this.sub(res);
+                  return;
+                }
                 this.cancel();
                 this.$emit('done');
               })
@@ -344,6 +358,23 @@
           // 表单验证未通过,不执行保存操作
         }
       },
+      async sub(res) {
+        let ids = this.$refs.inventoryTableref
+          .getTableValue()
+          .map((item) => item.warehouseId);
+        let data = await getWarehouseListByIds(ids || []);
+        let storemanIds = data.map((item) => item.ownerId);
+        submit({
+          businessId: this.businessId || res,
+          variables: {
+            storemanIds:storemanIds.toString(),
+            pass: true
+          }
+        }).then((res) => {
+          this.cancel();
+          this.$emit('done');
+        });
+      },
       cancel() {
         this.$nextTick(() => {
           this.activeName = 'base';

+ 30 - 3
src/views/purchasingManage/purchaseOrder/returnGoods/components/detailDialog.vue

@@ -41,7 +41,7 @@
             prop="linkName"
             style="margin-bottom: 16px"
           >
-            {{form.linkName}}
+            {{ form.linkName }}
           </el-form-item>
           <el-form-item
             label="备注:"
@@ -64,6 +64,25 @@
           >
             {{ form.makerName }}
           </el-form-item>
+          <el-form-item
+            label="回执附件:"
+            prop="repliedFiles"
+            style="margin-bottom: 16px"
+          >
+            <div
+              v-if="detailData.repliedFiles && detailData.repliedFiles?.length"
+            >
+              <el-link
+                v-for="link in detailData.repliedFiles"
+                :key="link.id"
+                type="primary"
+                :underline="false"
+                @click="downloadFile(link)"
+              >
+                {{ link.name }}</el-link
+              >
+            </div>
+          </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item
@@ -83,7 +102,11 @@
           <el-form-item prop="orderNo" label="订单编码:">
             {{ form.orderNo }}
           </el-form-item>
-          <el-form-item prop="linkPhone"  label-width="150px" label="供应商联系电话:">
+          <el-form-item
+            prop="linkPhone"
+            label-width="150px"
+            label="供应商联系电话:"
+          >
             {{ form.linkPhone }}
           </el-form-item>
 
@@ -94,7 +117,11 @@
           >
             {{ reviewStatusEnum[form.reviewStatus].label }}
           </el-form-item>
-          <el-form-item prop="receiveAddress"  label-width="150px" label="供应商收货地址:">
+          <el-form-item
+            prop="receiveAddress"
+            label-width="150px"
+            label="供应商收货地址:"
+          >
             {{ form.receiveAddress }}
           </el-form-item>
           <el-form-item

+ 200 - 165
src/views/purchasingManage/purchaseOrder/returnGoods/index.vue

@@ -1,110 +1,143 @@
 <template>
   <div class="ele-body">
     <el-card shadow="never" v-loading="loading">
-         <div class="ele-border-lighter form-content" v-loading="loading">
-            <search-table @search="reload"> </search-table>
+      <div class="ele-border-lighter form-content" v-loading="loading">
+        <search-table @search="reload"> </search-table>
 
-            <!-- 数据表格 -->
-            <ele-pro-table
-              ref="table"
-              :columns="columns"
-              :datasource="datasource"
-              height="calc(100vh - 385px)"
-              full-height="calc(100vh - 116px)"
-              tool-class="ele-toolbar-form"
-              :selection.sync="selection"
-              cache-key="eomContactPageTable"
+        <!-- 数据表格 -->
+        <ele-pro-table
+          ref="table"
+          :columns="columns"
+          :datasource="datasource"
+          height="calc(100vh - 385px)"
+          full-height="calc(100vh - 116px)"
+          tool-class="ele-toolbar-form"
+          :selection.sync="selection"
+          cache-key="eomContactPageTable"
+        >
+          <!-- 表头工具栏 -->
+          <template v-slot:toolbar>
+            <el-button
+              size="small"
+              type="primary"
+              icon="el-icon-plus"
+              class="ele-btn-icon"
+              @click="openEdit('add', {})"
             >
-              <!-- 表头工具栏 -->
-              <template v-slot:toolbar>
-                <el-button
-                  size="small"
-                  type="primary"
-                  icon="el-icon-plus"
-                  class="ele-btn-icon"
-                  @click="openEdit('add',{})"
-                >
-                  新建
-                </el-button>
-              
-                <el-button
-                  size="small"
-                  type="danger"
-                  el-icon-delete
-                  class="ele-btn-icon"
-                  @click="allDelBtn"
-                  :disabled="selection?.length===0"
-                >
-                  批量删除
-                </el-button>
-              </template>
+              新建
+            </el-button>
 
-              <!-- 查看详情列 -->
-           
-              <template v-slot:returnNo="{ row }">
-                <el-link type="primary" :underline="false" @click="openorderDetail(row,'returnNo')"> {{ row.returnNo }}</el-link>
-              </template>
-              <template v-slot:receiveNo="{ row }">
-                <el-link type="primary" :underline="false" @click="openorderDetail(row,'sendNo')"> {{ row.receiveId }}</el-link>
-              </template>
-              <template v-slot:orderNo="{ row }">
-                <el-link type="primary" :underline="false" @click="openorderDetail(row,'orderNo')"> {{ row.orderNo }}</el-link>
-              </template>
-              <!-- 操作列 -->
-              <template v-slot:action="{ row }">
-                
-                <el-link
-                  type="primary"
-                  :underline="false"
-                  icon="el-icon-edit"
-                  @click="openEdit('edit',row)"
-                >
-                  修改
+            <el-button
+              size="small"
+              type="danger"
+              el-icon-delete
+              class="ele-btn-icon"
+              @click="allDelBtn"
+              :disabled="selection?.length === 0"
+            >
+              批量删除
+            </el-button>
+          </template>
+
+          <!-- 查看详情列 -->
+
+          <template v-slot:returnNo="{ row }">
+            <el-link
+              type="primary"
+              :underline="false"
+              @click="openorderDetail(row, 'returnNo')"
+            >
+              {{ row.returnNo }}</el-link
+            >
+          </template>
+          <template v-slot:receiveNo="{ row }">
+            <el-link
+              type="primary"
+              :underline="false"
+              @click="openorderDetail(row, 'sendNo')"
+            >
+              {{ row.receiveId }}</el-link
+            >
+          </template>
+          <template v-slot:orderNo="{ row }">
+            <el-link
+              type="primary"
+              :underline="false"
+              @click="openorderDetail(row, 'orderNo')"
+            >
+              {{ row.orderNo }}</el-link
+            >
+          </template>
+          <!-- 操作列 -->
+          <template v-slot:action="{ row }">
+            <el-link
+              type="primary"
+              :underline="false"
+              icon="el-icon-edit"
+              @click="openEdit('edit', row)"
+              v-if="[0, 3].includes(row.reviewStatus)"
+            >
+              修改
+            </el-link>
+            <el-link
+              type="primary"
+              :underline="false"
+              icon="el-icon-plus"
+              @click="sub(row)"
+              v-if="[0, 3].includes(row.reviewStatus)"
+            >
+              提交
+            </el-link>
+            <el-popconfirm
+              class="ele-action"
+              title="确定要删除此信息吗?"
+              @confirm="remove([row.id])"
+              v-if="[0, 3].includes(row.reviewStatus)"
+            >
+              <template v-slot:reference>
+                <el-link type="danger" :underline="false" icon="el-icon-delete">
+                  删除
                 </el-link>
-                <el-popconfirm
-                  class="ele-action"
-                  title="确定要删除此信息吗?"
-                  @confirm="remove([row.id])"
-                >
-                  <template v-slot:reference>
-                    <el-link
-                      type="danger"
-                      :underline="false"
-                      icon="el-icon-delete"
-                    >
-                      删除
-                    </el-link>
-                  </template>
-                </el-popconfirm>
               </template>
-            </ele-pro-table>
-          </div>
+            </el-popconfirm>
+          </template>
+        </ele-pro-table>
+      </div>
     </el-card>
 
-
-    <add-return-goods-dialog ref="invoiceDialogRef"  @done="reload"></add-return-goods-dialog>
-    <send-detail-dialog  ref="sendDetailDialogRef"></send-detail-dialog>
-    <order-detail-dialog  ref="orderDetailDialogRef"></order-detail-dialog>
+    <add-return-goods-dialog
+      ref="invoiceDialogRef"
+      @done="reload"
+    ></add-return-goods-dialog>
+    <send-detail-dialog ref="sendDetailDialogRef"></send-detail-dialog>
+    <order-detail-dialog ref="orderDetailDialogRef"></order-detail-dialog>
     <detail-dialog ref="DetailDialogRef"></detail-dialog>
-<!-- 多选删除弹窗 -->
-    <pop-modal :visible.sync="delVisible" content="是否确定删除?" @done="commitBtn"/>
+    <!-- 多选删除弹窗 -->
+    <pop-modal
+      :visible.sync="delVisible"
+      content="是否确定删除?"
+      @done="commitBtn"
+    />
   </div>
 </template>
 
 <script>
-import searchTable from './components/searchTable.vue';
-import addReturnGoodsDialog from './components/addReturnGoodsDialog.vue';
-import detailDialog from './components/detailDialog.vue';
-import sendDetailDialog from '@/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue'
-import orderDetailDialog from '@/views/purchasingManage/purchaseOrder/components/detailDialog.vue'
-import popModal from '@/components/pop-modal';
-import {reviewStatusEnum} from '@/enum/dict';
-
-import {getReturnTableList,deleteReturnInformation} from '@/api/purchasingManage/returnGoods';
-import dictMixins from '@/mixins/dictMixins';
+  import searchTable from './components/searchTable.vue';
+  import addReturnGoodsDialog from './components/addReturnGoodsDialog.vue';
+  import detailDialog from './components/detailDialog.vue';
+  import sendDetailDialog from '@/views/purchasingManage/purchaseOrder/invoice/components/detailDialog.vue';
+  import orderDetailDialog from '@/views/purchasingManage/purchaseOrder/components/detailDialog.vue';
+  import popModal from '@/components/pop-modal';
+  import { reviewStatusEnum } from '@/enum/dict';
 
+  import {
+    getReturnTableList,
+    deleteReturnInformation,
+    submit
+  } from '@/api/purchasingManage/returnGoods';
+  import dictMixins from '@/mixins/dictMixins';
 
-export default {
+  export default {
     mixins: [dictMixins],
     components: {
       searchTable,
@@ -112,21 +145,21 @@ export default {
       orderDetailDialog,
       popModal,
       addReturnGoodsDialog,
-      detailDialog,
+      detailDialog
     },
     data() {
       return {
         activeComp: 'saleorder',
-   
-        selection:[],   //单选中集合
-        delVisible:false,  //批量删除弹框状态
-        loading: false,  // 加载状态
+
+        selection: [], //单选中集合
+        delVisible: false, //批量删除弹框状态
+        loading: false, // 加载状态
         columns: [
           {
-             width: 45,
-             type: 'selection',
-             columnKey: 'selection',
-             align: 'center'
+            width: 45,
+            type: 'selection',
+            columnKey: 'selection',
+            align: 'center'
           },
           {
             columnKey: 'index',
@@ -160,13 +193,13 @@ export default {
             slot: 'orderNo',
             showOverflowTooltip: true,
             minWidth: 200
-          }, 
+          },
           {
             prop: 'supplierName',
             label: '供应商名称',
             align: 'center',
             showOverflowTooltip: true,
-            minWidth: 180,
+            minWidth: 180
           },
           // {
           //   prop: 'payAmount',
@@ -183,8 +216,8 @@ export default {
             showOverflowTooltip: true,
             minWidth: 200,
             formatter: (_row, _column, cellValue) => {
-            return reviewStatusEnum[_row.reviewStatus].label;
-          }
+              return reviewStatusEnum[_row.reviewStatus].label;
+            }
           },
           {
             prop: 'createTime',
@@ -201,16 +234,14 @@ export default {
             resizable: false,
             slot: 'action',
             showOverflowTooltip: true,
-            fixed: 'right',
+            fixed: 'right'
           }
         ]
       };
     },
     computed: {},
- 
+
     methods: {
-    
-    
       /* 表格数据源 */
       datasource({ page, limit, where, order }) {
         return getReturnTableList({
@@ -219,26 +250,25 @@ export default {
           ...where
         });
       },
-    
-  
+
       /* 刷新表格 */
       reload(where) {
         this.$refs.table.reload({ page: 1, where });
       },
-      
+
       //新增编辑
-      openEdit(type,row) {
-        this.$refs.invoiceDialogRef.open( type,row);
+      openEdit(type, row) {
+        this.$refs.invoiceDialogRef.open(type, row);
         this.$refs.invoiceDialogRef.$refs.form &&
-        this.$refs.invoiceDialogRef.$refs.form.clearValidate();
+          this.$refs.invoiceDialogRef.$refs.form.clearValidate();
       },
-     
+
       //批量删除
-      allDelBtn(){
-        if(this.selection.length===0) return
-        this.delVisible=true
+      allDelBtn() {
+        if (this.selection.length === 0) return;
+        this.delVisible = true;
       },
-      
+
       //删除接口
       remove(delData) {
         deleteReturnInformation(delData).then((res) => {
@@ -247,65 +277,70 @@ export default {
         });
       },
 
-    //删除弹框确定
-      commitBtn(){
-        const dataId=this.selection.map(v=>v.id)
-        this.remove(dataId)
+      //删除弹框确定
+      commitBtn() {
+        const dataId = this.selection.map((v) => v.id);
+        this.remove(dataId);
       },
-
-    //查看详情
-    openorderDetail(row,type){
-      if(type==='returnNo'){
-        this.$refs.DetailDialogRef.open(row);
-      }
-      if(type==='sendNo'){
-        this.$refs.sendDetailDialogRef.open({id:row.receiveId});
-      }
-      if(type==='orderNo'){
-        this.$refs.orderDetailDialogRef.open({id:row.orderId});
-      }
-       
+      sub(res) {
+        submit({
+          businessId: res.id
+        }).then((res) => {
+          this.$message.success('提交成功');
+          this.reload();
+        });
       },
-
+      //查看详情
+      openorderDetail(row, type) {
+        if (type === 'returnNo') {
+          this.$refs.DetailDialogRef.open(row);
+        }
+        if (type === 'sendNo') {
+          this.$refs.sendDetailDialogRef.open({ id: row.receiveId });
+        }
+        if (type === 'orderNo') {
+          this.$refs.orderDetailDialogRef.open({ id: row.orderId });
+        }
+      }
     }
   };
 </script>
 
 <style lang="scss" scoped>
-.ele-body{
-  padding-top:0;
-  padding-bottom: 0;
-}
-:deep .el-card__body{
-padding: 0;
-}
-:deep(.el-link--inner){
-  margin-left: 0px !important;
-}
+  .ele-body {
+    padding-top: 0;
+    padding-bottom: 0;
+  }
+  :deep .el-card__body {
+    padding: 0;
+  }
+  :deep(.el-link--inner) {
+    margin-left: 0px !important;
+  }
 
-.sys-organization-list {
-  height: calc(100vh - 264px);
-  box-sizing: border-box;
-  border-width: 1px;
-  border-style: solid;
-  overflow: auto;
-}
-.sys-organization-list :deep(.el-tree-node__content) {
-  height: 40px;
-  & > .el-tree-node__expand-icon {
-    margin-left: 10px;
+  .sys-organization-list {
+    height: calc(100vh - 264px);
+    box-sizing: border-box;
+    border-width: 1px;
+    border-style: solid;
+    overflow: auto;
+  }
+  .sys-organization-list :deep(.el-tree-node__content) {
+    height: 40px;
+    & > .el-tree-node__expand-icon {
+      margin-left: 10px;
+    }
   }
-}
 
-.switch_left ul .active{
-  border-top: 4px solid var(--color-primary);
+  .switch_left ul .active {
+    border-top: 4px solid var(--color-primary);
     color: var(--color-primary-5);
-}
-.switch{
-  padding-bottom: 20px;
-}
+  }
+  .switch {
+    padding-bottom: 20px;
+  }
 
-.el-dropdown-link {
+  .el-dropdown-link {
     cursor: pointer;
     color: var(--color-primary-5);
   }