|
@@ -6,14 +6,14 @@
|
|
|
<el-button type="primary" @click="clickAdd()" plain :disabled="getBtnDisabled()" style="margin-bottom: 16px"
|
|
|
v-if="!judgeStatus()">添加</el-button>
|
|
|
<el-table :data="formData.data.costControlDetailList" style="width: 100%; ">
|
|
|
- <el-table-column prop="remark" label="收付款说明" min-width="200" v-if="isShowAtt('remark','detailObj')">
|
|
|
+ <el-table-column prop="remark" label="收付款说明" min-width="250" v-if="isShowAtt('remark','detailObj')" fixed="left">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.remark'" :rules="rules.remark" :inline-message="true" class="margin-b-0">
|
|
|
<el-input v-model="row.remark" placeholder="请输入" type="textarea" disabled />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="applyRemark" label="申请事由" min-width="200" v-if="isShowAtt('applyRemark','detailObj')">
|
|
|
+ <el-table-column prop="applyRemark" label="申请事由" min-width="250" v-if="isShowAtt('applyRemark','detailObj')">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.applyRemark'" :rules="rules.applyRemark" :inline-message="true"
|
|
|
class="margin-b-0">
|
|
@@ -52,6 +52,17 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column prop="payeeAccountId" label="收款单位" width="150" v-if="isShowAtt('payeeAccountId','detailObj')">
|
|
|
+ <template #default="{ row, $index }">
|
|
|
+ <el-form-item :prop="'costControlDetailList.' + $index + '.payeeAccountId'" :rules="rules.payeeAccountId" :inline-message="true"
|
|
|
+ class="margin-b-0">
|
|
|
+ <el-select v-model="row.payeeAccountId" placeholder="请选择" style="width: 100%" filterable
|
|
|
+ @change="(val)=>changeSelectData(val,$index,'4')">
|
|
|
+ <el-option v-for="item in payeeData" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column prop="invoiceTaxPoint" label="开票税点" width="100" v-if="isShowAtt('invoiceTaxPoint','detailObj')">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.invoiceTaxPoint'" :rules="rules.invoiceTaxPoint" :inline-message="true"
|
|
@@ -112,7 +123,7 @@
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.accountPeriodAmountTax'" :rules="rules.accountPeriodAmountTax"
|
|
|
:inline-message="true" class="margin-b-0">
|
|
|
<el-input-number onmousewheel="return false;" v-model="row.accountPeriodAmountTax" placeholder="请输入" style="width: 100%"
|
|
|
- :precision="2" :controls="false" :min="0" />
|
|
|
+ :precision="2" :controls="false" :min="0" disabled />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -121,7 +132,7 @@
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.accountPeriodAmount'" :rules="rules.accountPeriodAmount"
|
|
|
:inline-message="true" class="margin-b-0">
|
|
|
<el-input-number onmousewheel="return false;" v-model="row.accountPeriodAmount" placeholder="请输入" style="width: 100%" :precision="2"
|
|
|
- :controls="false" :min="0" />
|
|
|
+ :controls="false" :min="0" disabled />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -130,7 +141,7 @@
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.accountPeriodAdjustAmount'" :rules="rules.accountPeriodAdjustAmount"
|
|
|
:inline-message="true" class="margin-b-0">
|
|
|
<el-input-number onmousewheel="return false;" v-model="row.accountPeriodAdjustAmount" placeholder="请输入" style="width: 100%"
|
|
|
- :precision="2" :controls="false" :min="0" />
|
|
|
+ :precision="2" :controls="false" :min="0" disabled />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -202,26 +213,7 @@
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column> -->
|
|
|
- <el-table-column prop="payeeAccountId" label="收款单位" width="150" v-if="isShowAtt('payeeAccountId','detailObj')">
|
|
|
- <template #default="{ row, $index }">
|
|
|
- <el-form-item :prop="'costControlDetailList.' + $index + '.payeeAccountId'" :rules="rules.payeeAccountId" :inline-message="true"
|
|
|
- class="margin-b-0">
|
|
|
- <!-- <el-select v-model="row.promotionFeeType" placeholder="请选择" style="width: 100%" filterable>
|
|
|
- <el-option v-for="item in corporationList" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
- </el-select> -->
|
|
|
- <el-input v-model="row.payeeAccountId"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <!-- <el-table-column prop="payeeAccountId" label="其他" width="150" >
|
|
|
- <template #default="{ row, $index }">
|
|
|
- <el-form-item :prop="'costControlDetailList.' + $index + '.payeeAccountId'" :rules="rules.payeeAccountId" :inline-message="true"
|
|
|
- class="margin-b-0">
|
|
|
-
|
|
|
- <el-input v-model="row.payeeAccountId"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
- </el-table-column> -->
|
|
|
+
|
|
|
<el-table-column prop="shopId" label="店铺名称" width="150" v-if="isShowAtt('shopId','detailObj')">
|
|
|
<template #default="{ row, $index }">
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.shopId'" :rules="rules.shopId" :inline-message="true" class="margin-b-0">
|
|
@@ -316,7 +308,7 @@
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.returnAmount'" :rules="rules.returnAmount" :inline-message="true"
|
|
|
class="margin-b-0">
|
|
|
<el-input-number onmousewheel="return false;" v-model="row.returnAmount" placeholder="请输入" style="width: 100%" :precision="2"
|
|
|
- :controls="false" :min="0" />
|
|
|
+ :controls="false" :min="0" @change="handleGetRemark($index)" />
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -326,13 +318,13 @@
|
|
|
<el-form-item :prop="'costControlDetailList.' + $index + '.accountSubjectsId'" :rules="rules.accountSubjectsId"
|
|
|
:inline-message="true" class="margin-b-0">
|
|
|
<el-tree-select v-model="row.accountSubjectsId" :data="accountSubjectsData" check-strictly :render-after-expand="false"
|
|
|
- node-key="id" :props="defaultProps" style="width:100%" />
|
|
|
+ node-key="id" :props="defaultProps" style="width:100%" disabled />
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="核算项目名称" width="110" prop="amount" v-if="isShowAtt('accountSubjectsId','detailObj')" />
|
|
|
- <el-table-column label="核算项目" width="100" prop="amount" v-if="isShowAtt('accountSubjectsId','detailObj')" />
|
|
|
+ <el-table-column label="核算项目名称" width="110" prop="accountSubjectsName" v-if="isShowAtt('accountSubjectsId','detailObj')" />
|
|
|
+ <el-table-column label="核算项目" width="100" prop="accountSubjectsName" v-if="isShowAtt('accountSubjectsId','detailObj')" />
|
|
|
<el-table-column label="记账金额" width="100" prop="money" v-if="isShowAtt('money','detailObj')" />
|
|
|
<el-table-column label="操作" width="60" align="center" fixed="right" v-if="!judgeStatus()">
|
|
|
<template #default="{ $index }">
|
|
@@ -368,6 +360,7 @@ const paymentMethod = computed(
|
|
|
() => proxy.useUserStore().allDict["payment_method"]
|
|
|
);
|
|
|
const logisticsCompanyData = ref([]);
|
|
|
+const payeeData = ref([]);
|
|
|
const accountSubjectsData = ref([]);
|
|
|
const accountSubjectsList = ref([]);
|
|
|
|
|
@@ -407,6 +400,7 @@ const formData = reactive({
|
|
|
data: {
|
|
|
applyTime: moment().format("yyyy-MM-DD"),
|
|
|
companyId: proxy.useUserStore().user.companyId,
|
|
|
+ companyIdSet: [],
|
|
|
deptId: proxy.useUserStore().user.dept.deptId,
|
|
|
applyUserId: proxy.useUserStore().user.userId,
|
|
|
costControlDetailList: [
|
|
@@ -558,8 +552,27 @@ const formConfig = computed(() => {
|
|
|
getDeptData(val);
|
|
|
},
|
|
|
disabled: true,
|
|
|
- isShow: isShowAtt("companyId", "mainObj"),
|
|
|
+ isShow:
|
|
|
+ isShowAtt("companyId", "mainObj") &&
|
|
|
+ currentCostTypeData.value.name != "采购货款",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ type: "treeSelect",
|
|
|
+ prop: "companyIdSet",
|
|
|
+ label: "业务公司",
|
|
|
+ data: treeData.value,
|
|
|
+ propsTreeLabel: "deptName",
|
|
|
+ propsTreeValue: "deptId",
|
|
|
+ itemWidth: 25,
|
|
|
+ // fn: (val) => {
|
|
|
+ // getDeptData(val);
|
|
|
+ // },
|
|
|
+ multiple: true,
|
|
|
+ isShow:
|
|
|
+ isShowAtt("companyId", "mainObj") &&
|
|
|
+ currentCostTypeData.value.name == "采购货款",
|
|
|
},
|
|
|
+
|
|
|
{
|
|
|
type: "treeSelect",
|
|
|
prop: "deptId",
|
|
@@ -746,6 +759,9 @@ const rules = ref({
|
|
|
isVoucher: [
|
|
|
{ required: true, message: "请选择是否后提交凭证", trigger: "change" },
|
|
|
],
|
|
|
+ companyIdSet: [
|
|
|
+ { required: true, message: "请选择业务公司", trigger: "change" },
|
|
|
+ ],
|
|
|
companyId: [{ required: true, message: "请选择业务公司", trigger: "change" }],
|
|
|
deptId: [{ required: true, message: "请选择业务部门", trigger: "change" }],
|
|
|
invoiceTaxPoint: [
|
|
@@ -934,6 +950,7 @@ const getDeptData = (val) => {
|
|
|
|
|
|
const changeCostType = (val) => {
|
|
|
currentCostTypeData.value = paymentTypeData.value.find((x) => x.value == val);
|
|
|
+ formData.data.tradeType = currentCostTypeData.value.tradeType;
|
|
|
if (formData.data && formData.data.applyUserId) {
|
|
|
changApplyUserId(formData.data.applyUserId);
|
|
|
}
|
|
@@ -967,7 +984,7 @@ const changeCostType = (val) => {
|
|
|
};
|
|
|
|
|
|
const changeSelectData = (val, index, type) => {
|
|
|
- // type 1:快递公司 2:店铺 3:供应商
|
|
|
+ // type 1:快递公司 2:店铺 3:供应商 4:收款单位
|
|
|
let current = null;
|
|
|
switch (type) {
|
|
|
case "1":
|
|
@@ -975,6 +992,10 @@ const changeSelectData = (val, index, type) => {
|
|
|
if (current) {
|
|
|
formData.data.costControlDetailList[index].invoiceTaxPoint =
|
|
|
current.taxPoints;
|
|
|
+ formData.data.costControlDetailList[index].balancePrepaid =
|
|
|
+ current.balancePrepaid;
|
|
|
+ formData.data.costControlDetailList[index].balancePrepaidTax =
|
|
|
+ current.balancePrepaidTax;
|
|
|
formData.data.costControlDetailList[index].labelName = current.label;
|
|
|
}
|
|
|
break;
|
|
@@ -989,13 +1010,26 @@ const changeSelectData = (val, index, type) => {
|
|
|
if (current) {
|
|
|
formData.data.costControlDetailList[index].invoiceTaxPoint =
|
|
|
current.privTaxPoints;
|
|
|
+ formData.data.costControlDetailList[index].balancePrepaid =
|
|
|
+ current.balancePrepaid;
|
|
|
+ formData.data.costControlDetailList[index].balancePrepaidTax =
|
|
|
+ current.balancePrepaidTax;
|
|
|
+ formData.data.costControlDetailList[index].labelName = current.label;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "4":
|
|
|
+ current = payeeData.value.find((x) => x.value == val);
|
|
|
+ if (current) {
|
|
|
+ formData.data.costControlDetailList[index].invoiceTaxPoint =
|
|
|
+ current.taxPoints;
|
|
|
formData.data.costControlDetailList[index].labelName = current.label;
|
|
|
}
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
- if (current && ["1", "2"].includes(type)) {
|
|
|
+ if (current && ["1", "2", "4"].includes(type)) {
|
|
|
formData.data.accountBank = current.accountBank;
|
|
|
formData.data.accountName = current.accountName;
|
|
|
formData.data.accountNumber = current.accountNumber;
|
|
@@ -1011,6 +1045,16 @@ const getDict = () => {
|
|
|
accountSubjectsData.value = proxy.handleTree(res, "id");
|
|
|
});
|
|
|
|
|
|
+ proxy.post("/payeeInfo/page", { pageNum: 1, pageSize: 999 }).then((res) => {
|
|
|
+ payeeData.value = res.rows.map((item) => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ label: item.name,
|
|
|
+ value: item.id,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
proxy
|
|
|
.post("/logisticsCompanyInfo/list", { pageNum: 1, pageSize: 999 })
|
|
|
.then((res) => {
|
|
@@ -1113,7 +1157,14 @@ const handleGetRemark = (index) => {
|
|
|
// index
|
|
|
// ].remark = `支付${row.applyRemark}${currentCostTypeData.value.name}${money}`;
|
|
|
formData.data.costControlDetailList[index].money = money;
|
|
|
- if (currentCostTypeData.value.name.indexOf("备用金") != -1) {
|
|
|
+ if (currentCostTypeData.value.name.indexOf("归还") != -1) {
|
|
|
+ formData.data.costControlDetailList[index].money = parseFloat(
|
|
|
+ Number(row.returnAmount)
|
|
|
+ ).toFixed(2);
|
|
|
+ formData.data.costControlDetailList[
|
|
|
+ index
|
|
|
+ ].remark = `归还备用金${formData.data.costControlDetailList[index].money}`;
|
|
|
+ } else if (currentCostTypeData.value.name.indexOf("备用金") != -1) {
|
|
|
formData.data.costControlDetailList[
|
|
|
index
|
|
|
].remark = `支付${row.applyRemark}备用金${money}`;
|
|
@@ -1137,6 +1188,20 @@ const handleGetRemark = (index) => {
|
|
|
};
|
|
|
|
|
|
const clickAdd = () => {
|
|
|
+ let accountSubjectsId = "";
|
|
|
+ let accountSubjectsName = "";
|
|
|
+ if (
|
|
|
+ currentCostTypeData.value &&
|
|
|
+ currentCostTypeData.value.accountSubjectsId
|
|
|
+ ) {
|
|
|
+ accountSubjectsId = currentCostTypeData.value.accountSubjectsId;
|
|
|
+ let currentAccountSubjects = accountSubjectsList.value.find(
|
|
|
+ (x) => x.id == accountSubjectsId
|
|
|
+ );
|
|
|
+ if (currentAccountSubjects) {
|
|
|
+ accountSubjectsName = currentAccountSubjects.calculateItemName;
|
|
|
+ }
|
|
|
+ }
|
|
|
if (
|
|
|
formData.data.costControlDetailList &&
|
|
|
formData.data.costControlDetailList.length > 0
|
|
@@ -1147,7 +1212,8 @@ const clickAdd = () => {
|
|
|
payeeAccountId: "",
|
|
|
applyRemark: "",
|
|
|
deductionMonth: "",
|
|
|
- accountSubjectsId: "",
|
|
|
+ accountSubjectsId: accountSubjectsId,
|
|
|
+ accountSubjectsName: accountSubjectsName,
|
|
|
logisticsCompanyId: "",
|
|
|
invoiceTaxPoint: "",
|
|
|
currentPayable: null,
|
|
@@ -1179,7 +1245,8 @@ const clickAdd = () => {
|
|
|
payeeAccountId: "",
|
|
|
applyRemark: "",
|
|
|
deductionMonth: "",
|
|
|
- accountSubjectsId: "",
|
|
|
+ accountSubjectsId: accountSubjectsId,
|
|
|
+ accountSubjectsName: accountSubjectsName,
|
|
|
logisticsCompanyId: "",
|
|
|
invoiceTaxPoint: "",
|
|
|
currentPayable: null,
|
|
@@ -1261,7 +1328,10 @@ const disabledFn = (date) => {
|
|
|
return moment(current).add(1, "month").isBefore(moment());
|
|
|
};
|
|
|
|
|
|
-const handleSubmit = async () => {
|
|
|
+const handleSubmit = async (isStag = false) => {
|
|
|
+ if (isStag) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
let flag = await formDom.value.handleSubmit(() => {});
|
|
|
if (flag) {
|
|
|
if (
|
|
@@ -1361,6 +1431,7 @@ const getAllData = (businessId) => {
|
|
|
};
|
|
|
|
|
|
onMounted(() => {
|
|
|
+ formData.data.companyIdSet.push(proxy.useUserStore().user.companyId);
|
|
|
getDeptData(formData.data.companyId);
|
|
|
formOption.disabled = judgeStatus();
|
|
|
if (route.query && route.query.businessId && route.query.processType) {
|