yusheng 1 год назад
Родитель
Сommit
49b686f597

+ 2 - 1
src/api/saleManage/palletManagement.js

@@ -23,7 +23,8 @@ export async function getDetail(data) {
  * 更新
  */
 export async function updateTrayList(data) {
-  const res = await request.put(`/eom/saleordersendrecord/updateTrayList`, data);
+  console.log(data)
+  const res = await request.post(`/eom/saleordersendrecord/updateTrayList`, data);
   if (res.data.code == 0) {
     return res.data.data;
   }

+ 31 - 33
src/views/contractManage/contractBook/components/addDialog.vue

@@ -72,7 +72,7 @@
               </el-option>
             </el-select>
           </el-form-item>
-          <el-form-item
+          <!-- <el-form-item
             prop="remark"
             label="是否首工序"
             v-if="form.categoryId == '1752993827954225153'"
@@ -82,7 +82,7 @@
                 item.label
               }}</el-radio>
             </el-radio-group>
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item
             label="核价单"
             prop="sourceName"
@@ -144,7 +144,22 @@
               placeholder="请输入"
             />
           </el-form-item>
+          <el-form-item
+            label="需求类型"
+            prop="requireSourceType"
+            v-if="form.type == 2"
 
+            style="margin-bottom: 22px"
+          >
+            <DictSelection
+              dictName="需求类型"
+              v-if="form.type == 2"
+              clearable
+              v-model="form.requireSourceType"
+              :disabled="!!form.sourceName"
+            >
+            </DictSelection>
+          </el-form-item>
           <el-form-item label="合同名称" prop="contractName">
             <el-input
               clearable
@@ -188,15 +203,6 @@
           </el-form-item>
 
           <el-form-item label="结算方式" prop="settlementMode">
-            <!-- <el-select v-model="form.receiptPaymentType" placeholder="请选择">
-              <el-option
-                v-for="item in paymentTypeOptions"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              >
-              </el-option>
-            </el-select> -->
             <DictSelection
               dictName="结算方式"
               clearable
@@ -235,17 +241,6 @@
             >
             </el-date-picker>
           </el-form-item>
-
-          <!-- <el-form-item label="计价方式" prop="pricingWay">
-            <el-radio-group
-              v-model="form.pricingWay"
-              @change="changePricingWay"
-            >
-              <el-radio v-for="item in pricingWayList" :label="item.id">{{
-                item.name
-              }}</el-radio>
-            </el-radio-group>
-          </el-form-item> -->
         </el-col>
       </el-row>
       <headerTitle title="基本信息"></headerTitle>
@@ -583,7 +578,7 @@
 
 <script>
   import modalTitle from '@/BIZComponents/modalTitle.vue';
-  import { emailReg, telReg} from 'ele-admin';
+  import { emailReg, telReg } from 'ele-admin';
   import { acceptUnpackoptions } from '@/enum/dict';
   import inventoryTable from './inventoryTable.vue';
   import inventoryTable1 from '@/BIZComponents//inventoryTable.vue';
@@ -696,6 +691,8 @@
         settlementMode: '4',
         pricingWay: 1,
         customerMark: '',
+        requireSourceType:'',
+        requireSourceTypeName:'',
         totalPrice: null,
         isFirstProcess: 0,
         type: '', //1=销售合同  2=采购合同
@@ -953,7 +950,10 @@
               this.$refs.paymentListTable.putTableValue(
                 data.receiptPaymentList
               );
-              this.$refs.paymentListTable&&this.$refs.paymentListTable.setDiscountAmount(contractVO.discountTotalPrice);
+            this.$refs.paymentListTable &&
+              this.$refs.paymentListTable.setDiscountAmount(
+                contractVO.discountTotalPrice
+              );
             this.$refs.rawDetailListRef &&
               this.$refs.rawDetailListRef.putTableValueNew(contractVO.rawList); //原料
             this.$refs.outputDetailListRef &&
@@ -1323,7 +1323,10 @@
           this.$refs.inventoryTable.putTableValue(row);
         this.$refs.paymentListTable &&
           this.$refs.paymentListTable.putTableValue(row.receiptPaymentList);
-          this.$refs.paymentListTable&&this.$refs.paymentListTable.setDiscountAmount(contractVO.discountTotalPrice);
+        this.$refs.paymentListTable &&
+          this.$refs.paymentListTable.setDiscountAmount(
+            contractVO.discountTotalPrice
+          );
         this.getEnterprise();
         await this.getLinkInfo(
           contractVO.type == '2' ? contractVO.partbId : contractVO.partaId
@@ -1639,14 +1642,9 @@
         // this.$set(this.form, 'contractName', cusInfo?.base?.simpleName);
         let form = {
           contractVO: {
-            ...this.form
-            // partbName: cusInfo.base.name,
-            // partbId: cusInfo.base.id,
-            // partbUnifiedSocialCreditCode: cusInfo.base.unifiedSocialCreditCode,
-            // partbAddress: cusInfo.base.addressName + cusInfo.base.address,
-            // partbLinkName: cusInfo.linkList[0]?.linkName,
-            // partbLinkId: cusInfo.linkList[0]?.id,
-            // partbTel: cusInfo.linkList[0]?.mobilePhone,
+            ...this.form,
+            requireSourceType: info.sourceType,
+            requireSourceTypeName:  info.sourceTypeName
           },
           productList: info.detailList || []
         };

+ 115 - 0
src/views/contractManage/contractBook/components/changeList.vue

@@ -0,0 +1,115 @@
+<template>
+  <div>
+    <ele-pro-table
+      ref="table"
+      :needPage="false"
+      :columns="columns"
+      :datasource="datasource"
+      class="time-form"
+    >
+      <!-- 查看详情列 -->
+      <template v-slot:contractName="{ row }">
+        <el-link type="primary" :underline="false" @click="openDetail(row)">
+          {{ row.contractName }}
+        </el-link>
+      </template>
+    </ele-pro-table>
+    <detail-dialog ref="contactDetailDialogRef"></detail-dialog>
+  </div>
+</template>
+<script>
+  import { reviewStatus } from '@/enum/dict';
+  import { getTableList } from '@/api/contractManage/contractChange.js';
+  import detailDialog from './detailDialog1.vue';
+
+  export default {
+    components: { detailDialog },
+    data() {
+      return {
+        datasource: [],
+        columns: [
+          {
+            width: 60,
+            label: '序号',
+            type: 'index',
+            columnKey: 'index',
+            align: 'center'
+          },
+          {
+            minWidth: 200,
+            prop: 'changeCode',
+            label: '编码',
+            align: 'center',
+            slot: 'changeCode',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 200,
+            prop: 'contractName',
+            label: '变更合同',
+            slot: 'contractName',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+
+          {
+            minWidth: 200,
+            prop: 'reason',
+            label: '变更原因',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+
+          {
+            minWidth: 80,
+            prop: 'remark',
+            label: '变更描述',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            prop: 'approvalStatus',
+            label: '审核状态',
+            align: 'center',
+            showOverflowTooltip: true,
+            minWidth: 100,
+            formatter: (_row, _column, cellValue) => {
+              return reviewStatus[_row.approvalStatus];
+            }
+          },
+          {
+            minWidth: 100,
+            prop: 'createUserName',
+            label: '创建人',
+            align: 'center',
+            showOverflowTooltip: true
+          },
+          {
+            minWidth: 100,
+            prop: 'createTime',
+            label: '创建时间',
+            align: 'center',
+            showOverflowTooltip: true
+          }
+        ]
+      };
+    },
+
+    methods: {
+      //查看详情
+      openDetail(row) {
+        this.$refs.contactDetailDialogRef.open(row);
+      },
+      init(id) {
+        getTableList({
+          pageNum: 1,
+          size: 100,
+          contractId: id
+        }).then((res) => {
+          console.log(res, 'dsds');
+        });
+      }
+    }
+  };
+</script>
+<style lang="scss" scoped></style>

+ 19 - 5
src/views/contractManage/contractBook/components/detailDialog.vue

@@ -72,6 +72,10 @@
             <el-form-item label="合同名称:" prop="contractName">
               <el-input v-model="form.contractName" disabled></el-input>
             </el-form-item>
+            <el-form-item label="需求类型:" v-if="form.type==2" prop="requireSourceTypeName">
+              <el-input v-model="form.requireSourceTypeName" disabled></el-input>
+            </el-form-item>
+            
             <el-form-item label="编码:" prop="contractNo">
               <el-input v-model="form.contractNo" disabled></el-input>
             </el-form-item>
@@ -235,7 +239,10 @@
       v-if="activeComp === 'bpm' && form.processInstanceId"
       :id="form.processInstanceId"
     ></bpmDetail>
-
+    <changeList
+      v-if="activeComp === 'changeList'"
+      ref="changeList"
+    ></changeList>
     <div slot="footer" class="footer">
       <el-button @click="cancel">返回</el-button>
     </div>
@@ -251,6 +258,7 @@
   import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
   import fileMain from '@/components/addDoc/index';
   import modalTitle from '@/BIZComponents/modalTitle.vue';
+  import changeList from './changeList.vue';
 
   export default {
     mixins: [dictMixins],
@@ -258,7 +266,8 @@
       inventoryTabledetail,
       bpmDetail,
       fileMain,
-      modalTitle
+      modalTitle,
+      changeList
     },
     data() {
       return {
@@ -268,8 +277,8 @@
         tabOptions: [
           { key: 'main', name: '合同详情' },
           { key: 'bpm', name: '流程详情' },
-          { key: 'changeList', name: '变更记录' },
-          { key: 'dversion', name: '历史版本' },
+          { key: 'changeList', name: '变更记录' }
+          // { key: 'dversion', name: '历史版本' },
         ],
         visible: false,
         detailId: '',
@@ -344,7 +353,7 @@
       },
       changeK(key) {
         this.activeComp = key;
-        if(key=='main'){
+        if (key == 'main') {
           this.$nextTick(() => {
             this.$refs.inventoryTabledetailRef &&
               this.$refs.inventoryTabledetailRef.putTableValue({
@@ -359,6 +368,11 @@
               );
           });
         }
+        if (key == 'changeList') {
+          this.$nextTick(() => {
+            this.$refs.changeList.init(this.form.id)
+          });
+        }
       },
       cancel() {
         this.$nextTick(() => {

+ 437 - 0
src/views/contractManage/contractBook/components/detailDialog1.vue

@@ -0,0 +1,437 @@
+<template>
+  <ele-modal
+    custom-class="ele-dialog-form long-dialog-form"
+    :centered="true"
+    v-if="visible"
+    :visible.sync="visible"
+    :title="title"
+    :close-on-click-modal="false"
+    :append-to-body="true"
+    width="70%"
+    :fullscreen="fullscreen"
+    @close="cancel"
+  >
+    <template slot="title">
+      <modalTitle
+        :title="title"
+        @setFullscreen="fullscreen = !fullscreen"
+      ></modalTitle>
+    </template>
+    <div class="switch">
+      <div class="switch_left">
+        <ul>
+          <li
+            v-for="item in tabOptions"
+            :key="item.key"
+            :class="{ active: activeComp == item.key }"
+            @click="changeK(item.key)"
+          >
+            {{ item.name }}
+          </li>
+        </ul>
+      </div>
+    </div>
+    <div v-if="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="type">
+              <el-input v-model="form.categoryName" disabled>
+                <template slot="prepend">{{ form.typeName }}</template>
+              </el-input>
+            </el-form-item>
+            <el-form-item
+              label="核价单:"
+              prop="sourceName"
+              v-if="form.sourceType == 2"
+            >
+              <el-input v-model="form.sourceName" disabled></el-input>
+            </el-form-item>
+            <el-form-item
+              label="报价单:"
+              prop="sourceName"
+              v-if="form.sourceType == 1"
+            >
+              <el-input v-model="form.sourceName" disabled></el-input>
+            </el-form-item>
+            <el-form-item
+              label="计划名称:"
+              prop="sourceName"
+              v-if="form.sourceType == 3"
+            >
+              <el-input v-model="form.sourceName" disabled></el-input>
+            </el-form-item>
+            <el-form-item
+              label="商机名称:"
+              prop="sourceName"
+              v-if="form.sourceType == 4"
+            >
+              <el-input v-model="form.sourceName" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="合同名称:" prop="contractName">
+              <el-input v-model="form.contractName" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="编码:" prop="contractNo">
+              <el-input v-model="form.contractNo" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="合同编号:" prop="contractNumber">
+              <el-input v-model="form.contractNumber" disabled></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="签订日期:" prop="contractStartDate">
+              <el-input v-model="form.contractStartDate" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="结束日期:" prop="contractEndDate">
+              <el-input v-model="form.contractEndDate" disabled></el-input>
+            </el-form-item>
+            <!-- <el-form-item label="计价方式:" prop="payWay">
+              <el-select v-model="form.pricingWay" disabled style="width: 100%">
+                <el-option :value="1" label="按数量计费"></el-option>
+                <el-option :value="2" label="按重量计费"></el-option>
+              </el-select>
+            </el-form-item> -->
+            <el-form-item label="结算方式:" prop="payWay">
+              <el-input v-model="form.settlementModeName" disabled></el-input>
+            </el-form-item>
+            <el-form-item prop="contractFile" label="合同附件:">
+              <fileMain v-model="form.fileId" type="view"></fileMain>
+            </el-form-item>
+          </el-col>
+        </el-row>
+        <headerTitle title="基本信息"></headerTitle>
+        <el-row>
+          <el-col :span="12">
+            <el-form-item label="甲方名称:" prop="partaName">
+              <el-input v-model="form.partaName" disabled></el-input>
+            </el-form-item>
+            <el-form-item
+              label="甲方统一社会信用代码:"
+              prop="partaUnifiedSocialCreditCode"
+              class="form_item_label"
+            >
+              <el-input
+                v-model="form.partaUnifiedSocialCreditCode"
+                disabled
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="甲方联系人:" prop="partaLinkName">
+              <el-input v-model="form.partaLinkName" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="甲方电话:" prop="partaTel">
+              <el-input v-model="form.partaTel" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="甲方传真:" prop="partaFax">
+              <el-input v-model="form.partaFax" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="	甲方Email:" prop="partaEmail">
+              <el-input v-model="form.partaEmail" disabled></el-input>
+            </el-form-item>
+            <el-form-item label="甲方地址:" prop="partaAddress">
+              <el-input v-model="form.partaAddress" disabled></el-input>
+            </el-form-item>
+            <!-- <el-form-item
+              label="甲方税号"
+              prop="contactAddress"
+
+            >
+              <el-input
+                clearable
+                v-model="form.contactAddress"
+                placeholder="请输入"
+              />
+            </el-form-item> -->
+          </el-col>
+
+          <el-col :span="12">
+            <el-form-item label="乙方名称:" prop="partbName">
+              <el-input v-model="form.partbName" disabled></el-input>
+            </el-form-item>
+            <el-form-item
+              label="乙方统一社会信用代码:"
+              prop="partbUnifiedSocialCreditCode"
+              class="form_item_label"
+            >
+              <el-input
+                v-model="form.partbUnifiedSocialCreditCode"
+                disabled
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="乙方联系人:" prop="partbLinkName">
+              <el-input v-model="form.partbLinkName" disabled></el-input>
+            </el-form-item>
+            <el-form-item prop="partbTel" label="乙方联系电话:">
+              <el-input v-model="form.partbTel" disabled></el-input>
+            </el-form-item>
+            <el-form-item prop="partbFax" label="乙方传真:">
+              <el-input v-model="form.partbFax" disabled></el-input>
+            </el-form-item>
+
+            <el-form-item label="乙方Email:" prop="partbEmail">
+              <el-input v-model="form.partbEmail" disabled></el-input>
+            </el-form-item>
+
+            <el-form-item label="乙方地址:" prop="partbAddress">
+              <el-input v-model="form.partbAddress" disabled></el-input>
+            </el-form-item>
+            <!-- <el-form-item
+              label="乙方税号"
+              prop="contactAddress"
+
+            >
+              <el-input
+                clearable
+                v-model="form.contactAddress"
+                placeholder="请输入"
+              />
+            </el-form-item> -->
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-tabs v-model="activeName" style="margin-top: 15px" type="border-card">
+        <el-tab-pane label="物品清单" name="1">
+          <inventoryTabledetail
+            ref="inventoryTabledetailRef"
+            :isCustomerMark="form.type == '1'"
+            :isDiscountTotalPrice="true"
+            :contractBookType="form.type"
+            :pricingWay="form.pricingWay"
+            :isChangeCount="false"
+          ></inventoryTabledetail>
+        </el-tab-pane>
+        <el-tab-pane label="带料清单" name="2">
+          <inventoryTabledetail
+            ref="rawDetailListRef"
+            :isCustomerMark="true"
+            :contractBookType="form.type"
+          ></inventoryTabledetail>
+        </el-tab-pane>
+        <el-tab-pane label="产出清单" name="3">
+          <inventoryTabledetail
+            ref="outputDetailListRef"
+            :isCustomerMark="true"
+            :contractBookType="form.type"
+          ></inventoryTabledetail>
+        </el-tab-pane>
+      </el-tabs>
+      <!-- <headerTitle title="产品清单"></headerTitle> -->
+
+      <headerTitle
+        :title="form.type == '2' ? '付款方式' : '收款方式'"
+        style="margin-top: 30px"
+      ></headerTitle>
+      <ele-pro-table
+        ref="table"
+        :needPage="false"
+        :columns="receiptPaymentListcolumns"
+        :toolkit="[]"
+        :datasource="detailData.receiptPaymentList"
+        row-key="id"
+      >
+      </ele-pro-table>
+    </div>
+    <bpmDetail
+      v-if="activeComp === 'bpm' && form.processInstanceId"
+      :id="form.processInstanceId"
+    ></bpmDetail>
+    <changeList
+      v-if="activeComp === 'changeList'"
+      ref="changeList"
+    ></changeList>
+    <div slot="footer" class="footer">
+      <el-button @click="cancel">返回</el-button>
+    </div>
+  </ele-modal>
+</template>
+
+<script>
+  import { getDetail, getExport } from '@/api/contractManage/contractBook';
+  import { getFile } from '@/api/system/file';
+  import dictMixins from '@/mixins/dictMixins';
+  import { copyObj } from '@/utils/util';
+  import bpmDetail from '@/views/bpm/processInstance/detail.vue';
+  import inventoryTabledetail from '@/BIZComponents/inventoryTableDetails.vue';
+  import fileMain from '@/components/addDoc/index';
+  import modalTitle from '@/BIZComponents/modalTitle.vue';
+  import changeList from './changeList.vue';
+
+  export default {
+    mixins: [dictMixins],
+    components: {
+      inventoryTabledetail,
+      bpmDetail,
+      fileMain,
+      modalTitle,
+      changeList
+    },
+    data() {
+      return {
+        fullscreen: false,
+        activeName: '1',
+        activeComp: 'main',
+        tabOptions: [
+          { key: 'main', name: '合同详情' },
+          { key: 'bpm', name: '流程详情' },
+          { key: 'changeList', name: '变更记录' }
+          // { key: 'dversion', name: '历史版本' },
+        ],
+        visible: false,
+        detailId: '',
+        title: '详情',
+        row: {},
+        form: {},
+        rules: {},
+        detailData: {},
+        receiptPaymentListcolumns: [
+          {
+            width: 45,
+            type: 'index',
+            columnKey: 'index',
+            align: 'center',
+            fixed: 'left'
+          },
+          {
+            width: 200,
+            prop: 'moneyName',
+            label: '款项名称',
+            slot: 'moneyName',
+            align: 'center'
+          },
+          {
+            width: 100,
+            prop: 'price',
+            label: '金额',
+            slot: 'price',
+            formatter: (_row, _column, cellValue) => {
+              return _row.price + '元';
+            },
+            align: 'center'
+          },
+          {
+            width: 100,
+            prop: 'ratio',
+            label: '比例',
+            slot: 'ratio',
+            formatter: (_row, _column, cellValue) => {
+              return _row.ratio + '%';
+            },
+            align: 'center'
+          },
+          {
+            width: 160,
+            prop: 'deadLine',
+            label: '截止日期',
+            slot: 'deadLine',
+            align: 'center'
+          },
+          {
+            prop: 'remark',
+            label: '说明',
+            slot: 'remark',
+            align: 'center'
+          }
+        ]
+      };
+    },
+    methods: {
+      //导出
+      async exportTable() {
+        this.loading = true;
+        const response = await getExport(this.detailId);
+      },
+      async open(row) {
+        this.form = row;
+        this.visible = true;
+        this.activeName = '1';
+        this.getDetailData(row.id);
+        this.detailId = row.id;
+      },
+      changeK(key) {
+        this.activeComp = key;
+        if (key == 'main') {
+          this.$nextTick(() => {
+            this.$refs.inventoryTabledetailRef &&
+              this.$refs.inventoryTabledetailRef.putTableValue({
+                ...this.detailData,
+                ...this.detailData.contractVO
+              });
+            this.$refs.rawDetailListRef &&
+              this.$refs.rawDetailListRef.putTableValueNew(this.form.rawList); //原料
+            this.$refs.outputDetailListRef &&
+              this.$refs.outputDetailListRef.putTableValueNew(
+                this.form.outputList
+              );
+          });
+        }
+        if (key == 'changeList') {
+          this.$nextTick(() => {
+            this.$refs.changeList.init(this.form.id)
+          });
+        }
+      },
+      cancel() {
+        this.$nextTick(() => {
+          // 关闭后,销毁所有的表单数据
+          (this.form = copyObj(this.formDef)),
+            (this.otherForm = copyObj(this.otherFormDef)),
+            (this.tableBankData = []);
+          this.tableLinkData = [];
+          this.visible = false;
+        });
+      },
+      downloadFile(file) {
+        getFile({ objectName: file.storePath }, file.name);
+      },
+      async getDetailData(id) {
+        this.loading = true;
+        const data = await getDetail(id);
+        this.loading = false;
+        if (data) {
+          data.productList.forEach((item) => {
+            item['pricingWay'] = item.pricingWay || data.contractVO?.pricingWay;
+          });
+          this.detailData = data;
+          this.form = data.contractVO;
+          // if (this.form.fileId) {
+          //   this.form.fileId = JSON.parse(this.form.fileId);
+          // } else {
+          //   this.form.fileId = [];
+          // }
+          this.$nextTick(() => {
+            this.$refs.inventoryTabledetailRef &&
+              this.$refs.inventoryTabledetailRef.putTableValue({
+                ...data,
+                ...data.contractVO
+              });
+            this.$refs.rawDetailListRef &&
+              this.$refs.rawDetailListRef.putTableValueNew(this.form.rawList); //原料
+            this.$refs.outputDetailListRef &&
+              this.$refs.outputDetailListRef.putTableValueNew(
+                this.form.outputList
+              );
+          });
+        }
+      }
+    }
+  };
+</script>
+
+<style scoped lang="scss">
+  .ele-dialog-form {
+    .el-form-item {
+      margin-bottom: 10px;
+    }
+  }
+
+  .headbox {
+    display: flex;
+    justify-content: flex-start;
+    align-items: center;
+    .amount {
+      font-size: 14px;
+      font-weight: bold;
+      margin-right: 20px;
+    }
+  }
+</style>

+ 29 - 8
src/views/contractManage/contractChange/index.vue

@@ -17,10 +17,20 @@
       >
         <!-- 查看详情列 -->
         <template v-slot:changeCode="{ row }">
-          <el-link type="primary" :underline="false" @click="handleAddOrEdit(row,'view')">
+          <el-link
+            type="primary"
+            :underline="false"
+            @click="handleAddOrEdit(row, 'view')"
+          >
             {{ row.changeCode }}
           </el-link>
         </template>
+        <!-- 查看详情列 -->
+        <template v-slot:contractName="{ row }">
+          <el-link type="primary" :underline="false" @click="openDetail(row)">
+            {{ row.contractName }}
+          </el-link>
+        </template>
         <!-- 表头工具栏 -->
         <template v-slot:toolbar>
           <el-button
@@ -41,7 +51,10 @@
             :underline="false"
             icon="el-icon-edit"
             @click="handleAddOrEdit(row, 'update')"
-            v-if="[0, 3].includes(row.approvalStatus)&&$hasPermission('eom:contractchangerecord:update')"
+            v-if="
+              [0, 3].includes(row.approvalStatus) &&
+              $hasPermission('eom:contractchangerecord:update')
+            "
           >
             修改
           </el-link>
@@ -58,7 +71,10 @@
             class="ele-action"
             title="确定要删除此信息吗?"
             @confirm="remove([row.id])"
-            v-if="[0, 3].includes(row.approvalStatus)&&$hasPermission('eom:contractchangerecord:delete')"
+            v-if="
+              [0, 3].includes(row.approvalStatus) &&
+              $hasPermission('eom:contractchangerecord:delete')
+            "
           >
             <template v-slot:reference>
               <el-link type="danger" :underline="false" icon="el-icon-delete">
@@ -67,7 +83,6 @@
             </template>
           </el-popconfirm>
         </template>
-
       </ele-pro-table>
     </el-card>
 
@@ -81,6 +96,7 @@
       ref="processSubmitDialogRef"
       @reload="reload"
     ></process-submit-dialog>
+    <detail-dialog ref="contactDetailDialogRef"></detail-dialog>
   </div>
 </template>
 
@@ -95,13 +111,15 @@
     deleteInformation
   } from '@/api/contractManage/contractChange.js';
   import tabMixins from '@/mixins/tableColumnsMixin';
+  import detailDialog from '@/views/contractManage/contractBook/components/detailDialog.vue';
 
   export default {
-    mixins:[tabMixins],
+    mixins: [tabMixins],
     components: {
       addOrEditDialog,
       searchTable,
-      processSubmitDialog
+      processSubmitDialog,
+      detailDialog
     },
     data() {
       return {
@@ -112,7 +130,7 @@
         processSubmitDialogFlag: false,
         selection: [],
         cacheKeyUrl: 'eos-6f5d0bf2-contract-contractChange',
-        columnsVersion:1,
+        columnsVersion: 1
       };
     },
     computed: {
@@ -215,7 +233,10 @@
           this.$refs.detailDialogRef.init(row, type);
         });
       },
-
+      //查看详情
+      openDetail(row) {
+        this.$refs.contactDetailDialogRef.open(row);
+      },
       /* 表格数据源 */
       datasource({ page, limit, where, order }) {
         return getTableList({

+ 8 - 3
src/views/financialManage/invoiceManage/components/addOrEditDialog.vue

@@ -646,9 +646,14 @@
         this.payableManage(data.data);
       },
       //对账单回调
-      getAccountData(tableInfo) {
-        console.log(tableInfo,'tableInfo')
-        this.getContactDetail(tableInfo.contactId, {});
+      async getAccountData(tableInfo) {
+        let res={}
+        if (this.form.type == 2) {
+          res = await getpurchaseorderDetail(tableInfo?.children?.orderId);
+        } else {
+          res = await getSaleOrderDetail(tableInfo?.children?.orderId);
+        }
+        this.getContactDetail(tableInfo.contactId, res);
         this.$nextTick(() => {
           this.$set(this.form, 'sourceId', tableInfo?.children?.id);
           this.$set(this.form, 'sourceCode', tableInfo?.statementNo);

+ 15 - 6
src/views/purchasingManage/purchaseOrder/components/addDialog.vue

@@ -58,7 +58,11 @@
               orderSourceType.includes(form.sourceType) && form.outsourceScene
             "
           >
-            <el-select v-model="form.outsourceScene" disabled    style="width: 100%">
+            <el-select
+              v-model="form.outsourceScene"
+              disabled
+              style="width: 100%"
+            >
               <el-option
                 :value="item.value"
                 :label="item.label"
@@ -419,7 +423,7 @@
       ref="selectContractRef"
       @changeParent="changeContract"
       :type="2"
-      :sourceType="form.relationType"
+      :sourceType="form.sourceType"
     ></contractListDialog>
     <inquiryManageList
       ref="inquiryManageRef"
@@ -815,7 +819,7 @@
       },
       //选择核价单
       handInquiry(e) {
-        this.$refs.inquiryListRef.open(this.form.relationType);
+        this.$refs.inquiryListRef.open(this.form.sourceType);
       },
       //选择采购核价回调
       async changeInquiryList(data) {
@@ -878,6 +882,9 @@
         });
         this.$store.commit('order/setAllcountAmount', totalPrice);
         this.$set(this.form, 'totalPrice', totalPrice);
+        if (this.form.relationType == 3) {
+          this.$set(this.form, 'payAmount', totalPrice);
+        }
 
         this.$refs.inventoryTable &&
           this.$refs.inventoryTable.putTableValue(productList);
@@ -969,7 +976,7 @@
               settlementMode,
               settlementModeName,
               pricingWay,
-              isFirstProcess
+              isFirstProcess,requireSourceType,requireSourceTypeName
             } = contractVO;
             this.form = Object.assign({}, this.form, {
               partaAddress,
@@ -998,7 +1005,9 @@
               totalAmount: totalPrice,
               payAmount: discountTotalPrice,
               receiveAddress: partaAddress,
-              isFirstProcess
+              isFirstProcess,
+              sourceType:requireSourceType,
+              sourceTypeName:requireSourceTypeName,
             });
             this.getLinkInfo(partaId);
 
@@ -1201,7 +1210,7 @@
         let item = {
           id: this.form.contractId
         };
-        this.$refs.selectContractRef.open(item, this.form.relationType);
+        this.$refs.selectContractRef.open(item, this.form.sourceType);
       },
       //清除合同
       clearContrcat() {

+ 2 - 0
src/views/purchasingManage/purchaseOrder/components/billDetailDialog.vue

@@ -172,6 +172,8 @@ export default {
       let params = {
         productCode: row.productCode,
         relationType: type,
+        taskId: row.taskId,
+        batchNo: row.batchNo,
         relationIds: this.type != 5 ? (row[arrName] || []) : ([...row.requirementIds, ...row.planIds, ...row.inquiryIds, ...row.contractIds] || [])
       }
       this.loading = true;

+ 1 - 1
src/views/saleManage/saleOrder/components/contractListDialog.vue

@@ -280,7 +280,7 @@
           where['ifRelation'] =0;
         }
         if(this.sourceType){
-          where['sourceType'] = this.sourceType;
+          where['requireSourceType'] = this.sourceType;
         }
         let params = {
           pageNum: page,

+ 20 - 5
src/views/saleManage/saleOrder/palletManagement/components/detailDialog.vue

@@ -76,6 +76,20 @@
           },
           {
             minWidth: 160,
+            prop: 'sendNo',
+            label: '发货单编码',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
+          {
+            minWidth: 160,
+            prop: 'confirmNo',
+            label: '收货确认单编码',
+            showOverflowTooltip: true,
+            align: 'center'
+          },
+          {
+            minWidth: 180,
             prop: 'productCode',
             label: '编码',
             showOverflowTooltip: true,
@@ -94,7 +108,7 @@
             prop: 'batchNo',
             label: '批次号',
             showOverflowTooltip: true,
-            align: 'center'
+            align: 'center',
           },
           {
             minWidth: 160,
@@ -132,7 +146,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 100,
+            minWidth: 80,
             prop: 'packingQuantity',
             align: 'center',
             label: '包装数量',
@@ -143,17 +157,18 @@
             prop: 'packingUnit',
             align: 'center',
             label: '包装单位',
+            minWidth: 100,
             showOverflowTooltip: true
           },
           {
-            minWidth: 100,
+            minWidth: 80,
             prop: 'totalCount',
             label: '计量数量',
             showOverflowTooltip: true,
             align: 'center'
           },
           {
-            minWidth: 150,
+            minWidth: 100,
             prop: 'measuringUnit',
             label: '计量单位',
             showOverflowTooltip: true,
@@ -182,7 +197,7 @@
         await this.getDetailData(row.orderId);
       },
       save() {
-        updateTrayList(this.trayListData).then((res) => {
+        updateTrayList({list:this.trayListData}).then((res) => {
           this.$message.success('操作成功');
           this.$emit('success');
 

+ 5 - 2
src/views/saleManage/saleOrder/palletManagement/index.vue

@@ -14,7 +14,8 @@
           full-height="calc(100vh - 116px)"
           tool-class="ele-toolbar-form"
           :selection.sync="selection"
-          cache-key="eomContactPageTable"
+          @columns-change="handleColumnChange"
+          :cache-key="cacheKeyUrl"
           :page-size="20"
         >
           <template v-slot:orderNo="{ row }">
@@ -54,9 +55,10 @@
 
   import dictMixins from '@/mixins/dictMixins';
   import { getTableList } from '@/api/saleManage/palletManagement';
+  import tabMixins from '@/mixins/tableColumnsMixin';
 
   export default {
-    mixins: [dictMixins],
+    mixins: [dictMixins,tabMixins],
     components: {
       searchTable,
       orderDetailDialog,
@@ -66,6 +68,7 @@
     data() {
       return {
         loading: false, // 加载状态
+        cacheKeyUrl:'eos-3f2ac512-saleOrder-palletManagement',
         columns: [
           {
             columnKey: 'index',