wujianwei
2025-12-23 331cd2ed3eb71666947d1e46201fca8a99a004ed
ui/admin-ui3/src/views/tms/tmsContract/index.vue
@@ -45,6 +45,26 @@
        >导出
        </el-button>
      </template>
      <template #billingCycle-form="scope">
       <div style="display: flex;">
         <div style="width: 40px;flex: 0 0 35px;">上月</div>
         <avue-input-number  style="width: 100px;flex: 0 0 100px;" max="31" min="0" v-model="form.billingCycleLastMonthDay"></avue-input-number>
         <div style="width: 90px;flex: 0 0 88px;">日起,至当月</div>
         <avue-input-number style="width: 100px;flex: 0 0 100px;" max="31" min="0"  v-model="form.billingCycleCurrentMonthDay"></avue-input-number>
       </div>
      </template>
      <template #reconciliation-form="scope">
       <div style="display: flex;">
         <avue-input-number  style="width: 100px;flex: 0 0 100px;" @change="reconciliationDayChange"  min="0" v-model="form.reconciliationDay"></avue-input-number>
         <div style="width: 40px;flex: 0 0 88px;">日+开票账期</div>
         <avue-input-number style="width: 100px;flex: 0 0 100px;"  min="0" @change="invoiceDayChange" v-model="form.invoiceDay"></avue-input-number>
         <div style="width: 40px;flex: 0 0 88px;">日+付款账期</div>
         <avue-input-number style="width: 100px;flex: 0 0 100px;" min="0" @change="paymentDayChange" v-model="form.paymentDay"></avue-input-number>
         <div style="width: 40px;flex: 0 0 88px;">日=总账期</div>
         <avue-input-number style="width: 100px;flex: 0 0 100px;" min="0" v-model="form.totalAccountDay"></avue-input-number>
       </div>
      </template>
    </avue-crud>
  </basicContainer>
</template>
@@ -68,6 +88,7 @@
import dayjs from 'dayjs';
import {formatDate} from "@/utils/ruoyi";
import {getTmsSettlementEntity, listTmsSettlementEntity} from "@/api/tms/tmsSettlementEntity";
import router from "@/router";
const {proxy} = useCurrentInstance();
const crudRef = ref();
@@ -110,6 +131,29 @@
            {
              required: true,
              message: "系统编号不能为空", trigger: "blur"
            }
          ],
        },
        isTempContract: {
          label: '临时合同',
          type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
          addDisplay: true,value:'1',
          editDisplay: true,
          viewDisplay: true,
          change: ({value}: any) => {
            option.value.group.forEach((item: any) => {
              if (item.prop == 'fjxx') {
                item.column.attachmentPath.rules.forEach((item:any)=>{
                  item.required = value == 1;
                })
              }
            })
            console.log(value)
          },
          rules: [
            {
              required: true,
              message: "是否临时合同不能为空", trigger: "change"
            }
          ],
        },
@@ -156,12 +200,6 @@
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "签约日期不能为空", trigger: "blur"
            }
          ],
        },
        contractDate: {
          label: '合同期限',
@@ -242,7 +280,7 @@
              message: "甲方名称不能为空", trigger: "change"
            }
          ],
          type: 'table',suffixIcon:'search',
          type: 'table',suffixIcon:'search',dataType: 'string',
          children:{
            border: true,
            searchMenuSpan: 5,
@@ -336,7 +374,7 @@
              message: "乙方名称不能为空", trigger: "change"
            }
          ],
          type: 'table',suffixIcon:'search',
          type: 'table',suffixIcon:'search',dataType: 'string',
          children:{
            border: true,
            searchMenuSpan: 5,
@@ -424,66 +462,103 @@
        },
      }
    },
    // {
    //   label: '款项信息',
    //   prop: 'kfxx',
    //   column: {
    //     contractAmount: {
    //       label: '合同金额',
    //       addDisplay: true,
    //       editDisplay: true,
    //       viewDisplay: true,
    //       rules: [
    //         {
    //           required: true,
    //           message: "合同金额不能为空", trigger: "blur"
    //         }
    //       ],
    //     },
    //     // paymentMethod: {
    //     //   label: '付款方式',
    //     //   type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/payment_method',
    //     //   addDisplay: true,
    //     //   editDisplay: true,
    //     //   viewDisplay: true,
    //     //   rules: [
    //     //     {
    //     //       required: true,
    //     //       message: "付款方式不能为空", trigger: "change"
    //     //     }
    //     //   ],
    //     // },
    //     paymentCycle: {
    //       label: '付款周期',
    //       addDisplay: true,
    //       editDisplay: true,
    //       viewDisplay: true,
    //     },
    //     paidAmount: {
    //       label: '已付款项',
    //       addDisplay: true,
    //       editDisplay: true,
    //       viewDisplay: true,
    //     },
    //     unpaidAmount: {
    //       label: '未付款项',
    //       addDisplay: true,
    //       editDisplay: true,
    //       viewDisplay: true,
    //     },
    //     invoiceStatus: {
    //       label: '发票状态',
    //       type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/invoice_status',
    //       addDisplay: true,
    //       editDisplay: true,
    //       viewDisplay: true,
    //       // rules: [
    //       //   {
    //       //     required: true,
    //       //     message: "发票状态不能为空", trigger: "change"
    //       //   }
    //       // ],
    //     },
    //   }
    // },
    {
      label: '款项信息',
      prop: 'kfxx',
      label: '结算信息',
      prop: 'jsxx',
      column: {
        contractAmount: {
          label: '合同金额',
        cycleType: {
          label: '周期类型',
          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/cycle_type',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
          rules: [
            {
              required: true,
              message: "合同金额不能为空", trigger: "blur"
              message: "周期类型不能为空", trigger: "change"
            }
          ],
        },
        // paymentMethod: {
        //   label: '付款方式',
        //   type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/payment_method',
        //   addDisplay: true,
        //   editDisplay: true,
        //   viewDisplay: true,
        //   rules: [
        //     {
        //       required: true,
        //       message: "付款方式不能为空", trigger: "change"
        //     }
        //   ],
        // },
        paymentCycle: {
          label: '付款周期',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        paidAmount: {
          label: '已付款项',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        unpaidAmount: {
          label: '未付款项',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        },
        invoiceStatus: {
          label: '发票状态',
          type: 'select', dataType: 'string', dicUrl: '/system/dict/data/type/invoice_status',
          addDisplay: true,
          editDisplay: true,
          viewDisplay: true,
        billingCycle:{
          label: '账期周期',labelWidth: 80,
          // rules: [
          //   {
          //     required: true,
          //     message: "发票状态不能为空", trigger: "change"
          //     message: "周期类型不能为空", trigger: "change"
          //   }
          // ],
        },
        reconciliation:{
          label: '对账账期', span:24,
          // rules: [
          //   {
          //     required: true,
          //     message: "对账账期不能为空", trigger: "change"
          //   }
          // ],
        }
      }
    },
    {
@@ -625,6 +700,13 @@
    },
    contractName: {
      label: '合同名称',
      display: false,minWidth:150,
      hide: false,
      search: true,
    },
    isTempContract: {
      label: '临时合同',
      type: 'radio', dataType: 'string', dicUrl: '/system/dict/data/type/sys_number_is',
      display: false,minWidth:150,
      hide: false,
      search: true,
@@ -779,6 +861,9 @@
  deleteApi: delTmsContract,
  addApi: addTmsContract,
  updateApi: updateTmsContract,
  getBeginListFunc:()=>{
    queryParams.value.contractStatus = <any>router.currentRoute.value.query.contactStatus || undefined;
  },
  handleUpdateFunc: () => {
    crudRef.value.rowEdit(selectionList.value[0]);
  },
@@ -786,7 +871,23 @@
    selectionList.value = selection;
  },
})
const reconciliationDayChange = ({value}:any)=>{
  const reconciliationDay = Number(value) || 0;
  const paymentDay = Number(form.value.paymentDay) || 0;
  const previousTotal = Number(form.value.paymentDay) || 0;
  form.value.totalAccountDay = reconciliationDay + paymentDay + previousTotal;
}
const invoiceDayChange = ({value}:any)=>{
  const reconciliationDay = Number(form.value.reconciliationDay) || 0;
  const paymentDay =  Number(value) || 0;
  const previousTotal = Number(form.value.paymentDay) || 0;
  form.value.totalAccountDay = reconciliationDay + paymentDay + previousTotal;
}
const paymentDayChange = ({value}:any)=>{
  const reconciliationDay = Number(form.value.reconciliationDay) || 0;
  const paymentDay = Number(form.value.invoiceDay) || 0;
  const previousTotal =  Number(value) || 0;
  form.value.totalAccountDay = reconciliationDay + paymentDay + previousTotal;
}
</script>