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

+ 9 - 0
src/api/classifyManage/index.js

@@ -80,3 +80,12 @@ export async function getDetailById(data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+// 来源id查入库详情
+export async function getOutInBySourceBizNo(id) {
+  const res = await request.get(`/wms/outin/getOutInBySourceBizNo/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 5 - 2
src/views/bpm/handleTask/components/inoutBound/detailDialog.vue

@@ -455,7 +455,7 @@
   import StatusStep from '@/components/StatusStep/common.vue';
   // import { fileSystemDownload } from '@/utils';
   import outin from '@/api/warehouseManagement/outin';
-  import { getTreeByPid } from '@/api/classifyManage';
+  import { getTreeByPid,getOutInBySourceBizNo } from '@/api/classifyManage';
 
   import {
     materialType,
@@ -475,6 +475,9 @@
     props: {
       businessId: {
         default: ''
+      },
+      type: {
+        default: ''
       }
     },
     data() {
@@ -596,7 +599,7 @@
         return { background: '#EEEEEE', border: 'none' };
       },
       async _getInfo() {
-        const res = await outin.getById(this.businessId);
+        const res =  this.type=='sourceBizNo'?await getOutInBySourceBizNo(this.businessId):await outin.getById(this.businessId)
         console.log('===', res);
         if (res) {
           this.infoData = res;

+ 173 - 107
src/views/bpm/handleTask/components/purchaseOrder/invoice/detailDialog.vue

@@ -1,133 +1,155 @@
 <template>
   <div>
-    <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-      <headerTitle title="发货信息"></headerTitle>
-      <el-row>
-        <el-col :span="12">
-          <el-form-item
-            label="供应商名称:"
-            prop="supplierName"
-            style="margin-bottom: 16px"
-          >
-            {{ form.supplierName }}
-          </el-form-item>
-          <el-form-item
-            label="供应商联系人:"
-            prop="linkName"
-            style="margin-bottom: 16px"
-          >
-            {{ form.linkName }}
-          </el-form-item>
-          <el-form-item
-            label="供应商电话:"
-            prop="linkPhone"
-            style="margin-bottom: 16px"
+    <div class="switch">
+      <div class="switch_left">
+        <ul>
+          <li
+            v-for="item in tabOptions"
+            :key="item.key"
+            :class="{ active: activeComp == item.key }"
+            @click="changeActive(item)"
           >
-            {{ form.linkPhone }}
-          </el-form-item>
+            {{ item.name }}
+          </li>
+        </ul>
+      </div>
+    </div>
+    <div v-show="activeComp == 'main'">
+      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+        <headerTitle title="发货信息"></headerTitle>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item
+              label="供应商名称:"
+              prop="supplierName"
+              style="margin-bottom: 16px"
+            >
+              {{ form.supplierName }}
+            </el-form-item>
+            <el-form-item
+              label="供应商联系人:"
+              prop="linkName"
+              style="margin-bottom: 16px"
+            >
+              {{ form.linkName }}
+            </el-form-item>
+            <el-form-item
+              label="供应商电话:"
+              prop="linkPhone"
+              style="margin-bottom: 16px"
+            >
+              {{ form.linkPhone }}
+            </el-form-item>
 
-          <!-- <el-form-item
+            <!-- <el-form-item
             label="客户地址:"
             prop="partaAddress"
             style="margin-bottom: 16px"
           >
             {{ form.receiveAddress }}
           </el-form-item> -->
-          <el-form-item
-            label="审核状态:"
-            prop="reviewStatus"
-            style="margin-bottom: 16px"
-          >
-            {{ reviewStatusEnum[form.reviewStatus]?.label }}
-          </el-form-item>
-          <el-form-item
-            label="附件:"
-            prop="receiveFiles"
-            style="margin-bottom: 16px"
-          >
-            <div v-if="detailData.sendFiles && detailData.sendFiles?.length">
-              <el-link
-                v-for="link in detailData.sendFiles"
-                :key="link.id"
-                type="primary"
-                :underline="false"
-                @click="downloadFile(link)"
-              >
-                {{ link.name }}</el-link
-              >
-            </div>
-          </el-form-item>
-        </el-col>
+            <el-form-item
+              label="审核状态:"
+              prop="reviewStatus"
+              style="margin-bottom: 16px"
+            >
+              {{ reviewStatusEnum[form.reviewStatus]?.label }}
+            </el-form-item>
+            <el-form-item
+              label="附件:"
+              prop="receiveFiles"
+              style="margin-bottom: 16px"
+            >
+              <div v-if="detailData.sendFiles && detailData.sendFiles?.length">
+                <el-link
+                  v-for="link in detailData.sendFiles"
+                  :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
+          <el-col :span="12">
+            <el-form-item
               label="采购单类型:"
               prop="receiveTypeName"
               style="margin-bottom: 16px"
             >
               {{ form.receiveTypeName }}
             </el-form-item>
-          <el-form-item
-            label="车牌号:"
-            prop="carNo"
-            style="margin-bottom: 16px"
-          >
-            {{ form.carNo }}
-          </el-form-item>
- 
-          <el-form-item
-            label="收货单编码:"
-            prop="receiveNo"
-            style="margin-bottom: 16px"
-          >
-            {{ form.receiveNo }}
-          </el-form-item>
-          <el-form-item
-            label="制单人:"
-            prop="makerName"
-            style="margin-bottom: 16px"
-          >
-            {{ form.makerName }}
-          </el-form-item>
-          <el-form-item prop="orderNo" label="订单编码:">
-            {{ form.orderNo }}
-          </el-form-item>
-          <!-- <el-form-item prop="replied" label="是否回执:">
+            <el-form-item
+              label="车牌号:"
+              prop="carNo"
+              style="margin-bottom: 16px"
+            >
+              {{ form.carNo }}
+            </el-form-item>
+
+            <el-form-item
+              label="收货单编码:"
+              prop="receiveNo"
+              style="margin-bottom: 16px"
+            >
+              {{ form.receiveNo }}
+            </el-form-item>
+            <el-form-item
+              label="制单人:"
+              prop="makerName"
+              style="margin-bottom: 16px"
+            >
+              {{ form.makerName }}
+            </el-form-item>
+            <el-form-item prop="orderNo" label="订单编码:">
+              {{ form.orderNo }}
+            </el-form-item>
+            <!-- <el-form-item prop="replied" label="是否回执:">
             {{ form.replied == 1 ? '是' : '否' }}
           </el-form-item> -->
-        </el-col>
-      </el-row>
-    </el-form>
+          </el-col>
+        </el-row>
+      </el-form>
 
-    <headerTitle title="产品清单"></headerTitle>
-    <ele-pro-table
-      ref="table"
-      :needPage="false"
-      :columns="columns"
-      :toolkit="[]"
-      :datasource="detailData.productList"
-      row-key="id"
-    >
-      <!-- <template v-slot:toolbar>
+      <headerTitle title="产品清单"></headerTitle>
+      <ele-pro-table
+        ref="table"
+        :needPage="false"
+        :columns="columns"
+        :toolkit="[]"
+        :datasource="detailData.productList"
+        row-key="id"
+      >
+        <!-- <template v-slot:toolbar>
         <div class="headbox">
         <span class="amount">总计:{{detailData.totalAmount}}元</span>
         <span class="amount">应付金额:{{detailData.payAmount}}元</span>
       </div>
       </template> -->
-      <template v-slot:technicalDrawings="{ row }">
-        <div v-if="row.technicalDrawings && row.technicalDrawings?.length">
-          <el-link
-            v-for="link in row.technicalDrawings"
-            :key="link.id"
-            type="primary"
-            :underline="false"
-            @click="downloadFile(link)"
-          >
-            {{ link.name }}</el-link
-          >
-        </div>
-      </template>
-    </ele-pro-table>
+        <template v-slot:technicalDrawings="{ row }">
+          <div v-if="row.technicalDrawings && row.technicalDrawings?.length">
+            <el-link
+              v-for="link in row.technicalDrawings"
+              :key="link.id"
+              type="primary"
+              :underline="false"
+              @click="downloadFile(link)"
+            >
+              {{ link.name }}</el-link
+            >
+          </div>
+        </template>
+      </ele-pro-table>
+    </div>
+    <detailDialog
+      v-if="activeComp == 'inoutBoundView'"
+      :businessId="form.orderNo"
+      type="sourceBizNo"
+    ></detailDialog>
+    <add ref="add" v-if="activeComp == 'inoutBound'" type="sourceBizNo" @success="success"></add>
   </div>
 </template>
 
@@ -136,15 +158,30 @@
   import dictMixins from '@/mixins/dictMixins';
   import { reviewStatusEnum } from '@/enum/dict';
   import { getReceiveSaleOrderrecordDetail } from '@/api/bpm/components/purchasingManage/purchaseorderreceive';
+  import detailDialog from '@/views/bpm/handleTask/components/inoutBound/detailDialog.vue';
+  import add from '@/views/bpm/stockManagement/add.vue';
+
   export default {
-    props:{
+    props: {
       businessId: {
         default: ''
+      },
+      taskId: {
+        default: ''
+      },
+      taskDefinitionKey: {
+        default: ''
       }
     },
+    components: {
+      detailDialog,
+      add
+    },
     mixins: [dictMixins],
     data() {
       return {
+        activeComp: 'main',
+        tabOptions: [{ key: 'main', name: '收货单详情' }],
         reviewStatusEnum,
         visible: false,
         detailId: '',
@@ -289,13 +326,42 @@
     },
     created() {
       this.getDetailData(this.businessId);
+      if (
+        !['starter', 'deptLeaderApprove', 'storeManagerApprove'].includes(
+          this.taskDefinitionKey
+        )
+      ) {
+        this.tabOptions.push({ key: 'inoutBoundView', name: '入库单详情' });
+      }
+      if (this.taskDefinitionKey == 'storeManagerApprove') {
+        this.tabOptions.push({ key: 'inoutBound', name: '入库单' });
+      }
     },
     methods: {
+      changeActive(item) {
+        this.activeComp = item.key;
+        this.$emit('activeCompChange', item.key);
+        if (
+          this.taskDefinitionKey == 'storeManagerApprove' &&
+          item.key == 'inoutBound'
+        ) {
+          this.$nextTick(() => {
+            this.$refs.add.pickerSuccess(this.form);
+          });
+        }
+      },
+      save() {
+        this.$refs.add.handleSave();
+      },
+      success(){
+        console.log(this.$parent)
+          this.$parent.handleClose()
+      },
       downloadFile(file) {
         getFile({ objectName: file.storePath }, file.name);
       },
       getTableValue() {
-        return this.form
+        return this.form;
       },
       async getDetailData(id) {
         this.loading = true;

+ 13 - 22
src/views/bpm/handleTask/components/purchaseOrder/invoice/submit.vue

@@ -31,8 +31,11 @@
         icon="el-icon-edit-outline"
         type="success"
         size="mini"
-        @click="open()"
-        v-if="['storeManagerApprove'].includes(taskDefinitionKey)"
+        @click="storeManagerApprove"
+        v-if="
+          ['storeManagerApprove'].includes(taskDefinitionKey) &&
+          activeComp == 'inoutBound'
+        "
         >申请入库
       </el-button>
       <el-button
@@ -78,7 +81,6 @@
         :modal="false"
         @close="cancel"
       >
-        <add ref="add" @cancel="cancel" @handleAudit=handleAudit></add>
       </ele-modal>
     </div>
   </el-col>
@@ -89,14 +91,10 @@
   import { approveTaskWithVariables } from '@/api/bpm/task';
   // import { listAllUserBind } from '@/api/system/organization';
   import { getWarehouseListByIds } from '@/api/bpm/components/saleManage/saleorder';
-  import add from '@/views/bpm/stockManagement/add.vue';
   // 流程实例的详情页,可用于审批
   export default {
     name: '',
-    components: {
-      //   Parser
-      add
-    },
+    components: {},
     props: {
       businessId: {
         default: ''
@@ -121,7 +119,8 @@
           reason: ''
         },
         visible: false,
-        userOptions: []
+        userOptions: [],
+        activeComp: ''
       };
     },
     created() {},
@@ -129,18 +128,8 @@
       cancel() {
         this.visible = false;
       },
-      async open() {
-        if (!this.form.reason) {
-          this.$message.error('审批意见不能为空');
-          return;
-        }
-        this.visible = true;
-
-        let data = await this.getTableValue();
-
-        // console.log( this.$refs.add.pickerSuccess())
-
-        this.$refs.add.pickerSuccess(data);
+      async storeManagerApprove() {
+        this.$emit('submit');
       },
       /** 处理转办审批人 */
       handleUpdateAssignee() {
@@ -150,7 +139,9 @@
       handleBackList() {
         this.$emit('handleBackList');
       },
-
+      activeCompChange(activeComp) {
+        this.activeComp = activeComp;
+      },
       async handleAudit(status) {
         let storemanIds = '';
 

+ 11 - 0
src/views/bpm/handleTask/index.vue

@@ -24,6 +24,7 @@
             :businessId="listData?.businessId"
             :id="listData?.id"
             :taskDefinitionKey="listData?.taskDefinitionKey"
+            @activeCompChange="activeCompChange"
             ref="bziRef"
           ></async-biz-form-component>
         </div>
@@ -48,6 +49,8 @@
             @handleAudit="handleAudit"
             @handleUpdateAssignee="handleUpdateAssignee(item)"
             @handleBackList="handleBackList(item)"
+            @submit="submit"
+            ref="subForm"
           ></async-sub-form-component>
         </div>
         <!-- <el-col :span="16" :offset="6">
@@ -359,11 +362,19 @@
       });
     },
     methods: {
+      submit() {
+        this.$refs.bziRef.save()
+      },
+
       open(data) {
         this.listData = data;
         this.dialogVisible = true;
         this.getDetail();
       },
+      activeCompChange(activeComp) {
+        console.log(activeComp);
+        this.$refs.subForm[0].activeCompChange(activeComp);
+      },
       /** 获得流程实例 */
       getDetail() {
         // 获得流程实例相关

+ 4 - 3
src/views/bpm/stockManagement/add.vue

@@ -1098,11 +1098,10 @@
         </div>
       </div>
       <div class="center mt20">
-        <el-button type="primary" @click="handleSave" :loading="saveLoading"
+        <el-button type="primary" v-if="!isTask" @click="handleSave" :loading="saveLoading"
           >保存</el-button
         >
         <el-button @click="$router.go(-1)" v-if="!isTask">返回</el-button>
-        <el-button @click="cancel" v-if="isTask">返回</el-button>
       </div>
     </el-card>
 
@@ -1392,6 +1391,8 @@
         this.isTask = true;
         this.pickerRow = row;
         this.formData.extInfo.documentSource = row.orderNo;
+        this.formData.sourceBizNo=row.orderNo;
+        this.formData.fromId=row.id;
         this.formData.clientName = row.partaName;
         this.formData.clientCode = row.partaId;
         this.formData.extInfo.supplierName = row.supplierName;
@@ -1979,7 +1980,7 @@
               if (res.code == 0) {
                 await outin.outApproves({ outInId: res.data });
                 this.$message.success('保存成功!');
-                this.$emit('handleAudit', 1);
+                this.$emit('success');
               }
             } catch (error) {
               console.error('保存失败:', error);