Kaynağa Gözat

部分功能修改

cz 11 ay önce
ebeveyn
işleme
5af5c67d05

+ 6 - 1
src/assets/styles/element-ui.scss

@@ -216,4 +216,9 @@
 //   background-color: #1b374c !important;
 //   border-color: #1b374c !important;
 
-// }
+// }
+
+// 更改element的样式变量值
+:root {
+  --el-border-color: #c0c1c2 !important;
+}

+ 3 - 1
src/assets/styles/variables.module.scss

@@ -42,6 +42,7 @@ $--color-warning: #E6A23C;
 $--color-danger: #F56C6C;
 $--color-info: #909399;
 
+
 $base-sidebar-width: 200px;
 
 // the :export directive is the magic sauce for webpack
@@ -62,4 +63,5 @@ $base-sidebar-width: 200px;
   dangerColor: $--color-danger;
   infoColor: $--color-info;
   warningColor: $--color-warning;
-}
+
+}

+ 2 - 1
src/components/process/SF/Contract.vue

@@ -593,7 +593,8 @@
     </byForm>
 
     <el-dialog v-if="openProductCompany" v-model="openProductCompany" title="产品库" width="90%" append-to-body>
-      <SelectProduct @selectProduct="selectProduct" :isRawMaterial="'1'" :disablePerm="'1'"></SelectProduct>
+      <SelectProduct @selectProduct="selectProduct" :disablePerm="'1'"></SelectProduct>
+      <!-- :isRawMaterial="'1'" -->
       <!-- :companyId="formData.data.companyId" -->
       <template #footer>
         <el-button @click="openProductCompany = false" size="defualt" v-debounce>关 闭</el-button>

+ 2 - 1
src/components/process/SF/ContractChange.vue

@@ -593,7 +593,8 @@
     </byForm>
 
     <el-dialog v-if="openProductCompany" v-model="openProductCompany" title="产品库" width="90%" append-to-body>
-      <SelectProduct @selectProduct="selectProduct" :isRawMaterial="'1'" :disablePerm="'1'"></SelectProduct>
+      <SelectProduct @selectProduct="selectProduct" :disablePerm="'1'"></SelectProduct>
+      <!-- :isRawMaterial="'1'" -->
       <!-- :companyId="formData.data.companyId" -->
       <template #footer>
         <el-button @click="openProductCompany = false" size="defualt" v-debounce>关 闭</el-button>

+ 30 - 15
src/components/process/SF/CostControl.vue

@@ -813,9 +813,10 @@ const formConfig = computed(() => {
       type: "select",
       label: "是否公户转出",
       prop: "isPublicTransfer",
-      itemWidth: 25,
+      itemWidth: 50,
       data: isAfterSubmit.value,
-      disabled: !isHaveFinance.value,
+      // disabled: !isHaveFinance.value,
+      disabled: isDisabled.value,
       fn: (val) => {
         formData.data.paymentAccountId = "";
         formData.data.paymentAccountName = "";
@@ -844,9 +845,10 @@ const formConfig = computed(() => {
       type: "select",
       label: "付款方式",
       prop: "paymentMethod",
-      itemWidth: 25,
+      itemWidth: 50,
       data: paymentMethod.value,
-      disabled: !isHaveFinance.value,
+      // disabled: !isHaveFinance.value,
+      disabled: isDisabled.value,
       isShow: isShowAtt("paymentMethod", "mainObj"),
       fn: (val) => {
         if (
@@ -876,7 +878,7 @@ const formConfig = computed(() => {
       type: "input",
       prop: "shopName",
       label: "充值店铺名称",
-      itemWidth: 25,
+      itemWidth: 50,
       disabled: true,
       isShow:
         isShowAtt("paymentMethod", "mainObj") &&
@@ -887,11 +889,12 @@ const formConfig = computed(() => {
       prop: "paymentAccountId",
       label: "公司账户",
       data: accountList.value,
-      itemWidth: 25,
+      itemWidth: 50,
       fn: (val) => {
         changeShroffAccount(val);
       },
-      disabled: !isHaveFinance.value,
+      // disabled: !isHaveFinance.value,
+      disabled: isDisabled.value,
       isShow: isShowAtt("paymentAccountId", "mainObj"),
       // isShowAtt("paymentAccountId", "mainObj") &&
       // formData.data.isPublicTransfer &&
@@ -903,7 +906,8 @@ const formConfig = computed(() => {
       label: "开户行",
       placeholder: "请输入开户行",
       itemWidth: 25,
-      disabled: !isHaveFinance.value,
+      // disabled: !isHaveFinance.value,
+      disabled: isDisabled.value,
       isShow: isShowAtt("paymentAccountId", "mainObj"),
       // isShow:
       //   isShowAtt("paymentAccountId", "mainObj") &&
@@ -916,7 +920,8 @@ const formConfig = computed(() => {
       label: "开户名",
       placeholder: "请输入开户名",
       itemWidth: 25,
-      disabled: !isHaveFinance.value,
+      // disabled: !isHaveFinance.value,
+      disabled: isDisabled.value,
       isShow: isShowAtt("paymentAccountId", "mainObj"),
       // isShow:
       //   isShowAtt("paymentAccountId", "mainObj") &&
@@ -929,7 +934,8 @@ const formConfig = computed(() => {
       label: "账号",
       placeholder: "请输入账号",
       itemWidth: 25,
-      disabled: !isHaveFinance.value,
+      // disabled: !isHaveFinance.value,
+      disabled: isDisabled.value,
       isShow: isShowAtt("paymentAccountId", "mainObj"),
       // isShow:
       //   isShowAtt("paymentAccountId", "mainObj") &&
@@ -1592,10 +1598,7 @@ const handleChangeMoney = (val, index, att) => {
     if (currentCostTypeData.value.name.indexOf("其他费用") != -1) {
       // 是否预付
       if (formData.data.isAdvance == "1") {
-        row.currentPayable =
-          formData.data.isPublicTransfer == "1"
-            ? row.currentPrepaidTax
-            : row.currentPrepaid;
+        row.currentPayable = row.currentPrepaidTax + row.currentPrepaid;
       } else {
         row.currentPayableDeduction =
           formData.data.isPublicTransfer == "1"
@@ -2160,6 +2163,7 @@ const handleSubmit = async (isStag = false) => {
               row["calculateItemName" + (j + 1 + "")] =
                 row.submitMapLabelData[key];
               calculateItemList.push({
+                sort: j + 1,
                 type: key,
                 businessId: row.submitMapData[key],
                 businessName: row.submitMapLabelData[key],
@@ -2318,9 +2322,13 @@ const getAllData = (businessId) => {
     for (const key in res) {
       formData.data[key] = res[key];
     }
-    if (formData.data.companyId && formData.data.companyId.indexOf(",") != -1) {
+    if (
+      (formData.data.companyId && formData.data.companyId.indexOf(",") != -1) ||
+      currentCostTypeData.value.name == "采购货款"
+    ) {
       formData.data.companyId = formData.data.companyId.split(",");
     }
+
     if (formData.data.isPublicTransfer != undefined) {
       proxy
         .post("/accountManagement/page", {
@@ -2360,6 +2368,13 @@ const getAllData = (businessId) => {
           (x) => x.value == formData.data.costType
         );
         checkDisabled();
+        if (
+          (formData.data.companyId &&
+            formData.data.companyId.indexOf(",") != -1) ||
+          currentCostTypeData.value.name == "采购货款"
+        ) {
+          formData.data.companyId = formData.data.companyId.split(",");
+        }
       }
     }, 1000);
     if (Array.isArray(formData.data.companyId)) {

+ 2 - 1
src/components/product/SelectProduct.vue

@@ -108,11 +108,12 @@ const props = defineProps({
     type: String,
     default: "",
   },
-  // 过滤是否配置过bom
+  // 过滤是否配置过原材料
   isRawMaterial: {
     type: String,
     default: "",
   },
+  // 是否禁用权限
   disablePerm: {
     type: String,
     default: "",

+ 45 - 45
src/views/EHSD/saleContract/collectionRegistration/index.vue

@@ -167,9 +167,9 @@ const config = computed(() => {
     },
     {
       attrs: {
-        label: "关联合同",
+        label: "关联订单",
         slot: "contract",
-        width: 220,
+        width: 240,
         fixed: "left",
       },
     },
@@ -195,48 +195,48 @@ const config = computed(() => {
         "min-width": 200,
       },
     },
-    {
-      attrs: {
-        label: "付款人",
-        prop: "name",
-        width: 100,
-      },
-    },
-    {
-      attrs: {
-        label: "付款账号",
-        prop: "accountOpening",
-        width: 200,
-      },
-    },
-    {
-      attrs: {
-        label: "付款开户行",
-        prop: "openingBank",
-        width: 100,
-      },
-    },
-    {
-      attrs: {
-        label: "收款人",
-        prop: "myAccountName",
-        width: 130,
-      },
-    },
-    {
-      attrs: {
-        label: "收款账号",
-        prop: "myAccountOpening",
-        width: 200,
-      },
-    },
-    {
-      attrs: {
-        label: "收款开户行",
-        prop: "myOpeningBank",
-        width: 100,
-      },
-    },
+    // {
+    //   attrs: {
+    //     label: "付款人",
+    //     prop: "name",
+    //     width: 100,
+    //   },
+    // },
+    // {
+    //   attrs: {
+    //     label: "付款账号",
+    //     prop: "accountOpening",
+    //     width: 200,
+    //   },
+    // },
+    // {
+    //   attrs: {
+    //     label: "付款开户行",
+    //     prop: "openingBank",
+    //     width: 100,
+    //   },
+    // },
+    // {
+    //   attrs: {
+    //     label: "收款人",
+    //     prop: "myAccountName",
+    //     width: 130,
+    //   },
+    // },
+    // {
+    //   attrs: {
+    //     label: "收款账号",
+    //     prop: "myAccountOpening",
+    //     width: 200,
+    //   },
+    // },
+    // {
+    //   attrs: {
+    //     label: "收款开户行",
+    //     prop: "myOpeningBank",
+    //     width: 100,
+    //   },
+    // },
     {
       attrs: {
         label: "确认状态",
@@ -376,7 +376,7 @@ const formConfig = computed(() => {
     },
     {
       type: "title1",
-      title: "关联合同",
+      title: "关联订单",
     },
     {
       type: "slot",

+ 38 - 2
src/views/EHSD/saleContract/shipmentRegistration/index.vue

@@ -119,6 +119,16 @@ const config = computed(() => {
     },
     {
       attrs: {
+        label: "是否特批",
+        prop: "flowId",
+        width: 80,
+      },
+      render(val) {
+        return val ? "是" : "否";
+      },
+    },
+    {
+      attrs: {
         label: "申请时间",
         prop: "createTime",
         // width: 100,
@@ -168,8 +178,8 @@ const config = computed(() => {
     {
       attrs: {
         label: "操作",
-        width: "100",
-        align: "center",
+        width: "140",
+        align: "right",
         fixed: "right",
       },
       renderHTML(row) {
@@ -185,6 +195,19 @@ const config = computed(() => {
               getDtl(row);
             },
           },
+          row.flowId
+            ? {
+                attrs: {
+                  label: "查看",
+                  type: "primary",
+                  text: true,
+                },
+                el: "button",
+                click() {
+                  openDetail(row);
+                },
+              }
+            : {},
           // {
           //   attrs: {
           //     label: "删除",
@@ -421,6 +444,19 @@ const selectCustomer = (row) => {
   openSelectCustomer.value = false;
   proxy.msgTip("选择成功");
 };
+
+const openDetail = (row) => {
+  proxy.$router.replace({
+    path: "/platform_manage/process/processApproval",
+    query: {
+      flowKey: "sales_outbound_approved_flow",
+      flowName: "销售出库特批详情",
+      businessId: row.id,
+      random: proxy.random(),
+      processType: 20,
+    },
+  });
+};
 </script>
 
 <style lang="scss" scoped>

+ 12 - 0
src/views/customer/addCustomer.vue

@@ -705,6 +705,18 @@ const formConfig = computed(() => {
     //   itemType: "text",
     // },
     {
+      type: "input",
+      prop: "jdSubjectCode",
+      label: "金蝶科目代码",
+      itemWidth: 50,
+    },
+    {
+      type: "input",
+      prop: "jdSubjectName",
+      label: "金蝶科目名称",
+      itemWidth: 50,
+    },
+    {
       type: "title1",
       title: "联系人",
     },

+ 45 - 45
src/views/finance/fundManage/account/index.vue

@@ -14,13 +14,13 @@
       <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="submit" v-loading="loadingDialog">
         <template #balance>
           <div style="width: 100%">
-            <el-button type="primary" @click="clickBalance" :disabled="formData.data.accountRemainderList.length>0">添加</el-button>
+            <el-button type="primary" @click="clickBalance">添加</el-button>
             <el-table :data="formData.data.accountRemainderList" style="width: 100%; margin-top: 16px">
               <el-table-column label="币种">
                 <template #default="{ row, $index }">
                   <el-form-item :prop="'accountRemainderList.' + $index + '.currency'" :rules="rules.currency" :inline-message="true"
                                 class="margin-b-0 wid100">
-                    <el-select v-model="row.currency" placeholder="请选择币种" style="width: 100%" disabled>
+                    <el-select v-model="row.currency" placeholder="请选择币种" style="width: 100%">
                       <el-option v-for="item in accountCurrency" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
                     </el-select>
                   </el-form-item>
@@ -35,11 +35,11 @@
                   </el-form-item>
                 </template>
               </el-table-column>
-              <!-- <el-table-column label="操作" width="80">
+              <el-table-column label="操作" width="80">
                 <template #default="{ row, $index }">
                   <el-button type="primary" link @click="handleRemove($index)" v-if="!row.id">删除</el-button>
                 </template>
-              </el-table-column> -->
+              </el-table-column>
             </el-table>
           </div>
         </template>
@@ -83,6 +83,7 @@ const config = computed(() => {
       attrs: {
         label: "类型",
         prop: "type",
+        width: 80,
       },
       render(val) {
         return proxy.dictValueLabel(val, typeData.value);
@@ -431,7 +432,7 @@ const clickBalance = () => {
     formData.data.accountRemainderList.length > 0
   ) {
     formData.data.accountRemainderList.push({
-      currency: "CNY",
+      currency: "",
       remainder: undefined,
     });
   } else {
@@ -453,47 +454,46 @@ const isRepeat = (arr) => {
 };
 const submitForm = () => {
   submit.value.handleSubmit(() => {
-    loadingDialog.value = true;
-    proxy.post("/accountManagement/" + modalType.value, formData.data).then(
-      () => {
-        ElMessage({
-          message: modalType.value == "add" ? "添加成功" : "编辑成功",
-          type: "success",
-        });
-        dialogVisible.value = false;
-        getList();
-      },
-      (err) => {
-        console.log(err);
-        loadingDialog.value = false;
-      }
-    );
-    // if (
-    //   formData.data.accountRemainderList &&
-    //   formData.data.accountRemainderList.length > 0
-    // ) {
-    //   if (isRepeat(formData.data.accountRemainderList)) {
-    //     return ElMessage("请勿重复添加货币余额");
-    //   } else {
-    //     loadingDialog.value = true;
-    //     proxy.post("/accountManagement/" + modalType.value, formData.data).then(
-    //       () => {
-    //         ElMessage({
-    //           message: modalType.value == "add" ? "添加成功" : "编辑成功",
-    //           type: "success",
-    //         });
-    //         dialogVisible.value = false;
-    //         getList();
-    //       },
-    //       (err) => {
-    //         console.log(err);
-    //         loadingDialog.value = false;
-    //       }
-    //     );
+    // proxy.post("/accountManagement/" + modalType.value, formData.data).then(
+    //   () => {
+    //     ElMessage({
+    //       message: modalType.value == "add" ? "添加成功" : "编辑成功",
+    //       type: "success",
+    //     });
+    //     dialogVisible.value = false;
+    //     getList();
+    //   },
+    //   (err) => {
+    //     console.log(err);
+    //     loadingDialog.value = false;
     //   }
-    // } else {
-    //   return ElMessage("请添加至少一条账户余额");
-    // }
+    // );
+    if (
+      formData.data.accountRemainderList &&
+      formData.data.accountRemainderList.length > 0
+    ) {
+      if (isRepeat(formData.data.accountRemainderList)) {
+        return ElMessage("请勿重复添加货币余额");
+      } else {
+        loadingDialog.value = true;
+        proxy.post("/accountManagement/" + modalType.value, formData.data).then(
+          () => {
+            ElMessage({
+              message: modalType.value == "add" ? "添加成功" : "编辑成功",
+              type: "success",
+            });
+            dialogVisible.value = false;
+            getList();
+          },
+          (err) => {
+            console.log(err);
+            loadingDialog.value = false;
+          }
+        );
+      }
+    } else {
+      return ElMessage("请添加至少一条账户余额");
+    }
   });
 };
 const update = (row) => {

+ 21 - 21
src/views/finance/fundManage/costControl/index.vue

@@ -234,27 +234,27 @@ const config = computed(() => {
       },
     },
 
-    {
-      attrs: {
-        label: "开户行",
-        prop: "accountBank",
-        "min-width": 150,
-      },
-    },
-    {
-      attrs: {
-        label: "开户名",
-        prop: "accountName",
-        "min-width": 150,
-      },
-    },
-    {
-      attrs: {
-        label: "开户账号",
-        prop: "accountNumber",
-        "min-width": 150,
-      },
-    },
+    // {
+    //   attrs: {
+    //     label: "开户行",
+    //     prop: "accountBank",
+    //     "min-width": 150,
+    //   },
+    // },
+    // {
+    //   attrs: {
+    //     label: "开户名",
+    //     prop: "accountName",
+    //     "min-width": 150,
+    //   },
+    // },
+    // {
+    //   attrs: {
+    //     label: "开户账号",
+    //     prop: "accountNumber",
+    //     "min-width": 150,
+    //   },
+    // },
     {
       attrs: {
         label: "审批状态",

+ 14 - 6
src/views/finance/fundManage/flow/index.vue

@@ -73,7 +73,7 @@
           <div style="width: 100%">
             <div v-if="item.contractCodes">
               <div v-for="(contract, index) in item.contractCodes.split(',')" :key="index">
-                <a style="color: #409eff; cursor: pointer; word-break: break-all" @click="openDetails(contract)">{{ contract }}</a>
+                <a style="color: #409eff; cursor: pointer; word-break: break-all" @click="openDetails(item,index)">{{ contract }}</a>
               </div>
             </div>
           </div>
@@ -431,6 +431,7 @@ const config = computed(() => {
       attrs: {
         label: "摘要",
         prop: "remarks",
+        "min-width": 240,
       },
     },
     {
@@ -838,11 +839,18 @@ const submitSearch = () => {
 };
 const openPrint = ref(false);
 const rowData = ref({});
-const openDetails = (val) => {
-  rowData.value = {
-    code: val,
-  };
-  openPrint.value = true;
+const openDetails = (item, index) => {
+  // rowData.value = {
+  //   code: val,
+  // };
+  // openPrint.value = true;
+  let arr = item.contractIds.split(",");
+  proxy.$router.push({
+    name: "contractDetails",
+    query: {
+      currentContractId: arr[index],
+    },
+  });
 };
 const printObj = ref({
   id: "printMe",

+ 13 - 3
src/views/monitor/logininfor/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container pageIndexClass">
-    <div style="background:#fff;padding:15px">
+    <div style="background:#fff;padding:15px;height:calc(100vh - 120px);overflow:auto">
       <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
         <el-form-item label="登录地址" prop="ipaddr">
           <el-input v-model="queryParams.ipaddr" placeholder="请输入登录地址" clearable style="width: 240px;" @keyup.enter="handleQuery" />
@@ -62,8 +62,10 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination v-show="total > 0" style="margin-bottom:30px;" :total="total" v-model:page="queryParams.pageNum"
-                  v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <div style="position:relative">
+        <pagination v-show="total > 0" style="margin-bottom:30px;" :total="total" v-model:page="queryParams.pageNum"
+                    v-model:limit="queryParams.pageSize" @pagination="getList" />
+      </div>
 
     </div>
   </div>
@@ -194,3 +196,11 @@ function handleExport() {
 
 getList();
 </script>
+<style scoped>
+:deep(.pagination-container .el-pagination) {
+  right: 30px !important;
+}
+.pagination-container {
+  margin-top: 0px !important;
+}
+</style>

+ 14 - 3
src/views/monitor/operlog/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container pageIndexClass">
 
-    <div style="background:#fff;padding:15px">
+    <div style="background:#fff;padding:15px;height:calc(100vh - 120px);overflow:auto">
       <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
         <el-form-item label="系统模块" prop="title">
           <el-input v-model="queryParams.title" placeholder="请输入系统模块" clearable style="width: 240px;" @keyup.enter="handleQuery" />
@@ -80,8 +80,10 @@
         </el-table-column>
       </el-table>
 
-      <pagination v-show="total > 0" style="margin-bottom:30px;" :total="total" v-model:page="queryParams.pageNum"
-                  v-model:limit="queryParams.pageSize" @pagination="getList" />
+      <div style="position:relative">
+        <pagination v-show="total > 0" style="margin-bottom:30px;" :total="total" v-model:page="queryParams.pageNum"
+                    v-model:limit="queryParams.pageSize" @pagination="getList" />
+      </div>
 
     </div>
     <!-- 操作日志详细 -->
@@ -252,3 +254,12 @@ function handleExport() {
 
 getList();
 </script>
+<style scoped>
+:deep(.pagination-container .el-pagination) {
+  right: 30px !important;
+  margin-top: 0px !important;
+}
+.pagination-container {
+  margin-top: 0px !important;
+}
+</style>

+ 4 - 0
src/views/process/processApproval/index.vue

@@ -382,6 +382,10 @@ const onPreviewFile = (file) => {
 };
 
 const handleNextClose = () => {
+  for (let i = 0; i < nextHandleUser.value.length; i++) {
+    const node = nextHandleUser.value[i];
+    node.handleUserId = "";
+  }
   btnLoading.value = false;
   dialogVisible.value = false;
 };

+ 12 - 0
src/views/purchaseManage/supplier/supplier/index.vue

@@ -559,6 +559,18 @@ const formConfig = computed(() => {
       itemType: "textarea",
     },
     {
+      type: "input",
+      prop: "jdSubjectCode",
+      label: "金蝶科目代码",
+      itemWidth: 50,
+    },
+    {
+      type: "input",
+      prop: "jdSubjectName",
+      label: "金蝶科目名称",
+      itemWidth: 50,
+    },
+    {
       type: "title1",
       title: "其他联系人",
     },

+ 1 - 1
src/views/purchaseSales/outAndInWarehouse/record/index.vue

@@ -136,7 +136,7 @@ const typeList = ref([
     value: "8",
   },
   {
-    label: "生产出库",
+    label: "生产领料",
     value: "9",
   },
   {

+ 1 - 1
src/views/purchaseSales/outAndInWarehouse/waitingForDelivery/index.vue

@@ -163,7 +163,7 @@ const businessType = ref([
     value: "8",
   },
   {
-    label: "生产出库",
+    label: "生产领料",
     value: "9",
   },
 ]);

+ 76 - 37
src/views/report/accountBalance/index.vue

@@ -29,42 +29,53 @@
           </el-table-column>
           <el-table-column prop="subjectsName" label="科目名称" width="140" fixed="left" />
           <el-table-column prop="calculateItemStr" label="核算项目" min-width="150" fixed="left" />
-          <el-table-column prop="yearBeginBalance" label="年初余额" width="90" fixed="left" align="right">
-            <template #default="{ row, $index }">
-              <div style="width: 100%">
-                {{moneyFormat(row.yearBeginBalance,2)}}
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column prop="yearBeginBorrowAmount" label="借方余额" width="105" fixed="left" align="right">
-            <template #default="{ row, $index }">
-              <div style="width: 100%">
-                <el-input-number v-model="row['yearBeginBorrowAmount']" :placeholder="'借方余额'" onmousewheel="return false;" :precision="2"
-                                 :controls="false" :min="0" @change="(val)=>handleChangeVal(row,val)" :disabled="getIsDisabled()" style="width:100%">
-                </el-input-number>
-              </div>
-            </template>
+          <el-table-column prop="calculateItemStr" label="期初余额" align="center">
+            <el-table-column prop="yearBeginBorrowAmount" label="借方" width="105" fixed="left" align="right">
+              <template #default="{ row, $index }">
+                <div style="width: 100%">
+                  <!-- row['yearBeginBorrowAmount'] -->
+                  <el-input-number :model-value="row['yearBeginBorrowAmount']" :placeholder="'借方余额'" onmousewheel="return false;" :precision="2"
+                                   :controls="false" :min="0" @change="(val,oldVal)=>handleChangeVal(row,val,'',$index,oldVal)"
+                                   :disabled="getIsDisabled()" style="width:100%;margin:3px 0" v-if="$index < sourceList.data.length - 1">
+                  </el-input-number>
+                  <div v-else>
+                    {{moneyFormat(row.yearBeginBorrowAmount,2)}}
+                  </div>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column prop="yearBeginBalance" label="余额" width="90" fixed="left" align="right">
+              <template #default="{ row, $index }">
+                <div style="width: 100%">
+                  {{moneyFormat(row.yearBeginBalance,2)}}
+                </div>
+              </template>
+            </el-table-column>
           </el-table-column>
           <template v-if="monthList && monthList.length>0">
             <el-table-column v-for="col in monthList" :key="col.key" :label="col.label" width="90" align="left">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-input-number v-model="row['month'+col.key+'Amount']" :placeholder="col.key+'月'" onmousewheel="return false;" :precision="2"
-                                   :controls="false" :min="0" @change="(val)=>handleChangeVal(row,val,col)" :disabled="getIsDisabled()"
-                                   style="width:100%">
+                  <!-- v-model="row['month'+col.key+'Amount']" -->
+                  <el-input-number :model-value="row['month'+col.key+'Amount']" :placeholder="col.key+'月'" onmousewheel="return false;" :precision="2"
+                                   :controls="false" :min="0" @change="(val,oldVal)=>handleChangeVal(row,val,col,$index,oldVal)"
+                                   :disabled="getIsDisabled()" style="width:100%;margin:3px 0" v-if="$index < sourceList.data.length - 1">
                   </el-input-number>
+                  <div v-else>
+                    {{moneyFormat(row['month'+col.key+'Amount'],2)}}
+                  </div>
                 </div>
               </template>
             </el-table-column>
           </template>
-          <el-table-column prop="tradeAmount" label="本期发生" width="90" align="right">
+          <el-table-column prop="tradeAmount" label="本期发生" width="90" align="right" fixed="right">
             <template #default="{ row, $index }">
               <div style="width: 100%">
                 {{moneyFormat(row.tradeAmount,2)}}
               </div>
             </template>
           </el-table-column>
-          <el-table-column prop="balanceAmount" label="余额" width="90" align="right">
+          <el-table-column prop="balanceAmount" label="余额" width="90" align="right" fixed="right">
             <template #default="{ row, $index }">
               <div style="width: 100%">
                 {{moneyFormat(row.balanceAmount,2)}}
@@ -526,7 +537,6 @@ const formConfig = computed(() => {
       itemWidth: 50,
       fn: (val) => {
         let current = userList.value.find((x) => x.value == val);
-        console.log(current, "ada");
         if (current) {
           formData.data.deptId = current.deptId;
         }
@@ -765,23 +775,52 @@ const changeMoney = (val, month, customerId) => {
   }
 };
 
-const handleChangeVal = (item, val, col) => {
-  if (val) {
-    const data = {
-      ...item,
-      idStr: item.subjectsCalculateItemIds,
-      year: sourceList.value.pagination.year,
-    };
-    if (col) {
-      data["month" + col.key + "Amount"] = val;
-    } else {
-      data.yearBeginBorrowAmount = val;
-    }
-    proxy.post("/calculateItemBalance/editOrSave", data).then((res) => {
-      // proxy.msgTip("配置成功");
-      // getList();
-    });
+const handleChangeVal = (item, val, col, index, oldVal) => {
+  const data = {
+    ...item,
+    idStr: item.subjectsCalculateItemIds,
+    year: sourceList.value.pagination.year,
+  };
+  if (col) {
+    data["month" + col.key + "Amount"] = val;
+    sourceList.value.data[index]["month" + col.key + "Amount"] = val;
+  } else {
+    data.yearBeginBorrowAmount = val;
+    sourceList.value.data[index].yearBeginBorrowAmount = val;
+  }
+  proxy.post("/calculateItemBalance/editOrSave", data).then((res) => {
+    // proxy.msgTip("配置成功");
+    // getList();
+  });
+  refreshData(index, col, oldVal);
+};
+
+const refreshData = (index, col, oldVal) => {
+  const row = sourceList.value.data[index];
+  const lastRow = sourceList.value.data[sourceList.value.data.length - 1];
+  if (col) {
+    lastRow["month" + col.key + "Amount"] =
+      lastRow["month" + col.key + "Amount"] -
+      oldVal +
+      row["month" + col.key + "Amount"];
+  } else {
+    lastRow.yearBeginBorrowAmount =
+      lastRow.yearBeginBorrowAmount - oldVal + row.yearBeginBorrowAmount;
+  }
+  let amount = 0;
+  for (let i = 0; i < monthList.value.length; i++) {
+    const key = monthList.value[i].key;
+    amount = amount + Number(row["month" + key + "Amount"]);
   }
+  // 重新计算余额   余额 = 年初余额 + (-年初借方) + 1-12月合计 + 本期发生
+  row.balanceAmount = Number(
+    parseFloat(
+      row.yearBeginBalance -
+        row.yearBeginBorrowAmount +
+        row.tradeAmount +
+        amount
+    ).toFixed(2)
+  );
 };
 
 let date = new Date();

+ 31 - 10
src/views/report/remittanceDetails/index.vue

@@ -16,6 +16,18 @@
           </div>
         </template>
 
+        <template #oppositeSubjectName1="{item}">
+          <div style="width:100%">
+            <el-input v-model="item.oppositeSubjectName1" placeholder=" " @change="(val)=>changeData(item,val)"></el-input>
+          </div>
+        </template>
+
+        <template #saleGroupExpenseCategory="{item}">
+          <div style="width:100%">
+            <el-input v-model="item.saleGroupExpenseCategory" placeholder=" " @change="(val)=>changeData(item,val)"></el-input>
+          </div>
+        </template>
+
         <template #time="{item}">
           <div style="width:100%">
             <el-date-picker v-model="item.settleStartDate" type="date" style="width:150px" placeholder="开始日期" value-format="YYYY-MM-DD"
@@ -153,7 +165,7 @@ const selectConfig = computed(() => {
     {
       type: "time",
       itemType: "date",
-      label: "交易日期",
+      label: "业务日期",
       placeholder: "开始日期",
       prop: "beginTime",
       placeholderOne: "结束日期",
@@ -178,7 +190,7 @@ const config = computed(() => {
     // },
     {
       attrs: {
-        label: "交易时间",
+        label: "业务日期",
         prop: "transactionTime",
         width: 160,
         fixed: "left",
@@ -196,21 +208,21 @@ const config = computed(() => {
       attrs: {
         label: "收付款说明",
         prop: "remark",
-        width: 160,
+        width: 250,
         fixed: "left",
       },
     },
     {
       attrs: {
         label: "对方科目",
-        prop: "oppositeSubjectName1",
-        width: 110,
+        slot: "oppositeSubjectName1",
+        width: 130,
       },
     },
     {
       attrs: {
         label: "销售组费用类别",
-        prop: "saleGroupExpenseCategory",
+        slot: "saleGroupExpenseCategory",
         width: 130,
       },
     },
@@ -269,7 +281,7 @@ const config = computed(() => {
       attrs: {
         label: "科目名称",
         prop: "subjectName",
-        width: 150,
+        width: 170,
       },
     },
     {
@@ -355,9 +367,9 @@ const config = computed(() => {
         prop: "belongType",
         width: 90,
       },
-      render(val) {
-        return proxy.dictKeyValue(val, belongTypeData.value);
-      },
+      // render(val) {
+      //   return proxy.dictKeyValue(val, belongTypeData.value);
+      // },
     },
     // {
     //   attrs: {
@@ -712,6 +724,15 @@ const exportExcel = () => {
       proxy.downloadFile(res, "汇款明细.xlsx");
     });
 };
+
+const changeData = (item) => {
+  let data = {
+    id: item.id,
+    oppositeSubjectName: item.oppositeSubjectName1,
+    saleExpenseCategory: item.saleGroupExpenseCategory,
+  };
+  proxy.postTwo("/report/finance/remitDetail/edit", data).then((res) => {});
+};
 </script>
 
 <style lang="scss" scoped>

+ 18 - 10
src/views/salesMange/shipmentMange/document/index.vue

@@ -84,12 +84,13 @@
       </template>
     </el-dialog>
 
-    <el-dialog title="货运详情" v-if="openAddAcceptCode" v-model="openAddAcceptCode" width="600">
+    <el-dialog title="货运详情" v-if="openAddAcceptCode" v-model="openAddAcceptCode" width="50%">
       <byForm :formConfig="formConfigTwo" :formOption="formOption" v-model="formDataTwo.data" :rules="rulesTwo" ref="submitTwo"
               v-loading="loadingTwo">
         <template #departureTime>
-          <div>
-            <el-date-picker v-model="formDataTwo.data.departureTime" type="datetime" placeholder="请选择起运时间" value-format="YYYY-MM-DD HH:mm:ss" />
+          <div style="width:100%">
+            <el-date-picker v-model="formDataTwo.data.departureTime" style="width:100%" type="datetime" placeholder="请选择起运时间"
+                            value-format="YYYY-MM-DD HH:mm:ss" />
           </div>
         </template>
         <template #file>
@@ -414,10 +415,10 @@
               <td :rowspan="printDetails.documentsProducts.length" style="text-align: center" v-if="index === 0 && [1].includes(openStatus)">
                 {{ printDetails.sumRoughWeight }}
               </td>
-              <td :rowspan="printDetails.documentsProducts.length" style="text-align: center" v-if="index === 0 && [1].includes(openStatus)">总尺寸</td>
+              <td :rowspan="printDetails.documentsProducts.length" style="text-align: center" v-if="index === 0 && [1].includes(openStatus)">总尺寸1</td>
               <td :rowspan="printDetails.documentsProducts.length" style="text-align: center; border-right: 0"
                   v-if="index === 0 && [1].includes(openStatus)">
-                总体积
+                总体积2
               </td>
               <td style="text-align: center" v-if="[2, 3].includes(openStatus)">{{ printDetails.contract.currency }}{{ item.price }}</td>
               <td style="text-align: center; border-right: 0" v-if="[2, 3].includes(openStatus)">
@@ -1427,14 +1428,14 @@ const formConfigTwo = computed(() => {
       prop: "acceptCarriage",
       label: "承运方",
       itemType: "text",
-      itemWidth: 40,
+      itemWidth: 100,
     },
     {
       type: "input",
       prop: "code",
       label: "单号",
       itemType: "text",
-      itemWidth: 60,
+      itemWidth: 100,
     },
     {
       type: "slot",
@@ -1448,10 +1449,17 @@ const formConfigTwo = computed(() => {
       label: "备注",
       itemType: "textarea",
     },
+    // {
+    //   type: "slot",
+    //   prop: "file",
+    //   slotName: "file",
+    //   label: "上传附件",
+    // },
     {
-      type: "slot",
-      prop: "file",
-      slotName: "file",
+      type: "upload",
+      listType: "text",
+      accept: "",
+      prop: "fileList",
       label: "上传附件",
     },
   ];