Procházet zdrojové kódy

企业台账管理自动计算

CzRger před 10 měsíci
rodič
revize
65cf003689

+ 78 - 23
snowy-admin-web/src/views/yqyc/zero/enterprise-ledger/detail.vue

@@ -114,7 +114,7 @@
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="备案数量:" name="recordQuantity">
-								<a-input-number v-model:value="bodyData.recordQuantity" :disabled="isView" placeholder="请输入备案数量" :precision="0" style="width: 100%;" @change="onChangeRecordTotalPrice"/>
+								<a-input-number v-model:value="bodyData.recordQuantity" :disabled="isView" placeholder="请输入备案数量" :precision="0" :min="0" style="width: 100%;" @change="onChangeRecordQuantity"/>
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
@@ -144,7 +144,7 @@
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="备案单价:" name="recordPrice">
-								<a-input-number v-model:value="bodyData.recordPrice" :disabled="isView" placeholder="请输入备案单价" style="width: 100%" @change="onChangeRecordTotalPrice"/>
+								<a-input-number v-model:value="bodyData.recordPrice" :disabled="isView" placeholder="请输入备案单价" style="width: 100%" @change="onChangeRecordPrice"/>
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
@@ -159,27 +159,27 @@
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="法定数量:" name="legalQuantity">
-								<a-input v-model:value="bodyData.legalQuantity" :disabled="isView" placeholder="请输入法定数量" allow-clear />
+								<a-input-number v-model:value="bodyData.legalQuantity" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入法定数量" @change="onChangeLegalQuantity"/>
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="第二法定数量:" name="secondLegalQuantity">
-								<a-input v-model:value="bodyData.secondLegalQuantity" :disabled="isView" placeholder="请输入第二法定数量" allow-clear />
+								<a-input-number v-model:value="bodyData.secondLegalQuantity" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入第二法定数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="重量比例因子:" name="weightRatioFactor">
-								<a-input v-model:value="bodyData.weightRatioFactor" :disabled="isView" placeholder="请输入重量比例因子" allow-clear />
+								<a-input v-model:value="bodyData.weightRatioFactor" :disabled="true" placeholder="备案数量 / 法定数量" @change="onChangeWeightRatioFactor"/>
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="第一比例因子:" name="firstRatioFactor">
-								<a-input v-model:value="bodyData.firstRatioFactor" :disabled="isView" placeholder="请输入第一比例因子" allow-clear />
+								<a-input v-model:value="bodyData.firstRatioFactor" :disabled="true" placeholder="请输入第一比例因子" allow-clear />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="第二比例因子:" name="secondRatioFactor">
-								<a-input v-model:value="bodyData.secondRatioFactor" :disabled="isView" placeholder="请输入第二比例因子" allow-clear />
+								<a-input v-model:value="bodyData.secondRatioFactor" :disabled="true" placeholder="请输入第二比例因子" allow-clear />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
@@ -194,72 +194,72 @@
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="剩余备案数量:" name="remainingRecordAmount">
-								<a-input v-model:value="bodyData.remainingRecordAmount" :disabled="isView" placeholder="请输入剩余备案数量" allow-clear />
+								<a-input v-model:value="bodyData.remainingRecordAmount" :disabled="true" placeholder="请输入剩余备案数量" allow-clear />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="进账累计数量:" name="inAccountCumulativeAmount">
-								<a-input v-model:value="bodyData.inAccountCumulativeAmount" :disabled="isView" placeholder="请输入进账累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.inAccountCumulativeAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入进账累计数量" @change="onChangeInAccountCumulativeAmount"/>
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="出账累计数量:" name="outAccountCumulativeAmount">
-								<a-input v-model:value="bodyData.outAccountCumulativeAmount" :disabled="isView" placeholder="请输入出账累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.outAccountCumulativeAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入出账累计数量" @change="onChangeOutAccountCumulativeAmount"/>
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="库存累计数量:" name="inventoryCumulativeAmount">
-								<a-input v-model:value="bodyData.inventoryCumulativeAmount" :disabled="isView" placeholder="请输入库存累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.inventoryCumulativeAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入库存累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="一线进区累计数量:" name="firstInAmount">
-								<a-input v-model:value="bodyData.firstInAmount" :disabled="isView" placeholder="请输入一线进区累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.firstInAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入一线进区累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="一线出区累计数量:" name="firstOutAmount">
-								<a-input v-model:value="bodyData.firstOutAmount" :disabled="isView" placeholder="请输入一线出区累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.firstOutAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入一线出区累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="二线进区累计数量:" name="secondInAmount">
-								<a-input v-model:value="bodyData.secondInAmount" :disabled="isView" placeholder="请输入二线进区累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.secondInAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入二线进区累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="二线出区累计数量:" name="secondOutAmount">
-								<a-input v-model:value="bodyData.secondOutAmount" :disabled="isView" placeholder="请输入二线出区累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.secondOutAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入二线出区累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="区内转入累计数量:" name="intraZoneTransferInAmount">
-								<a-input v-model:value="bodyData.intraZoneTransferInAmount" :disabled="isView" placeholder="请输入区内转入累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.intraZoneTransferInAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入区内转入累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="区内转出累计数量:" name="intraZoneTransferOutAmount">
-								<a-input v-model:value="bodyData.intraZoneTransferOutAmount" :disabled="isView" placeholder="请输入区内转出累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.intraZoneTransferOutAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入区内转出累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="区外转入累计数量:" name="extraZoneTransferInAmount">
-								<a-input v-model:value="bodyData.extraZoneTransferInAmount" :disabled="isView" placeholder="请输入区外转入累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.extraZoneTransferInAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入区外转入累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="转至区外累计数量:" name="transferToExtraZoneAmount">
-								<a-input v-model:value="bodyData.transferToExtraZoneAmount" :disabled="isView" placeholder="请输入转至区外累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.transferToExtraZoneAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入转至区外累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="补税累计数量:" name="compensationTaxAmount">
-								<a-input v-model:value="bodyData.compensationTaxAmount" :disabled="isView" placeholder="请输入补税累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.compensationTaxAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入补税累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
 							<a-form-item label="核销累计数量:" name="writeOffAmount">
-								<a-input v-model:value="bodyData.writeOffAmount" :disabled="isView" placeholder="请输入核销累计数量" allow-clear />
+								<a-input-number v-model:value="bodyData.writeOffAmount" :disabled="isView" :precision="0" :min="0" style="width: 100%;" placeholder="请输入核销累计数量" />
 							</a-form-item>
 						</a-col>
 						<a-col :span="8">
@@ -462,6 +462,10 @@ const bodyRules = {
 	currency: [required('请输入币制')],
 	legalQuantity: [required('请输入法定数量')],
 	recordAmount: [required('请输入备案数量')],
+	weightRatioFactor: [required('请输入重量比例因子')],
+	remainingRecordAmount: [required('请输入剩余备案数量')],
+	inAccountCumulativeAmount: [required('请输入进账累计数量')],
+	outAccountCumulativeAmount: [required('请输入出账累计数量')],
 }
 const bodyColumns = [
 	{
@@ -841,13 +845,64 @@ const deleteBatchFile = () => {
 		return flag
 	})
 }
-const onChangeRecordTotalPrice = () => {
+const onChangeRecordQuantity = () => {
 	setTimeout(() => {
-		if (bodyData.value.recordQuantity && bodyData.value.recordPrice) {
+		if (proxy.$util.isValue(bodyData.value.recordQuantity) && proxy.$util.isValue(bodyData.value.recordPrice)) {
 			bodyData.value.recordTotalPrice = Number(bodyData.value.recordQuantity) * Number(bodyData.value.recordPrice)
 		} else {
 			bodyData.value.recordTotalPrice = ''
 		}
+		if (proxy.$util.isValue(bodyData.value.recordQuantity) && proxy.$util.isValue(bodyData.value.legalQuantity) && (Number(bodyData.value.legalQuantity) > 0)) {
+			bodyData.value.weightRatioFactor = Number(bodyData.value.recordQuantity) / Number(bodyData.value.legalQuantity)
+		} else {
+			bodyData.value.weightRatioFactor = ''
+		}
+		if (proxy.$util.isValue(bodyData.value.recordQuantity) && proxy.$util.isValue(bodyData.value.inAccountCumulativeAmount) && proxy.$util.isValue(bodyData.value.outAccountCumulativeAmount)) {
+			bodyData.value.remainingRecordAmount = Number(bodyData.value.inAccountCumulativeAmount) - Number(bodyData.value.outAccountCumulativeAmount) - Number(bodyData.value.recordQuantity)
+		} else {
+			bodyData.value.remainingRecordAmount = ''
+		}
+	}, 100)
+}
+const onChangeRecordPrice = () => {
+	setTimeout(() => {
+		if (proxy.$util.isValue(bodyData.value.recordQuantity) && proxy.$util.isValue(bodyData.value.recordPrice)) {
+			bodyData.value.recordTotalPrice = Number(bodyData.value.recordQuantity) * Number(bodyData.value.recordPrice)
+		} else {
+			bodyData.value.recordTotalPrice = ''
+		}
+	}, 100)
+}
+const onChangeLegalQuantity = () => {
+	setTimeout(() => {
+		if (proxy.$util.isValue(bodyData.value.recordQuantity) && proxy.$util.isValue(bodyData.value.legalQuantity) && (Number(bodyData.value.legalQuantity) > 0)) {
+			bodyData.value.weightRatioFactor = Number(bodyData.value.recordQuantity) / Number(bodyData.value.legalQuantity)
+		} else {
+			bodyData.value.weightRatioFactor = ''
+		}
+	}, 100)
+}
+const onChangeWeightRatioFactor = () => {
+	setTimeout(() => {
+		bodyData.value.firstRatioFactor = bodyData.value.weightRatioFactor
+	}, 100)
+}
+const onChangeInAccountCumulativeAmount = () => {
+	setTimeout(() => {
+		if (proxy.$util.isValue(bodyData.value.recordQuantity) && proxy.$util.isValue(bodyData.value.inAccountCumulativeAmount) && proxy.$util.isValue(bodyData.value.outAccountCumulativeAmount)) {
+			bodyData.value.remainingRecordAmount = Number(bodyData.value.inAccountCumulativeAmount) - Number(bodyData.value.outAccountCumulativeAmount) - Number(bodyData.value.recordQuantity)
+		} else {
+			bodyData.value.remainingRecordAmount = ''
+		}
+	}, 100)
+}
+const onChangeOutAccountCumulativeAmount = () => {
+	setTimeout(() => {
+		if (proxy.$util.isValue(bodyData.value.recordQuantity) && proxy.$util.isValue(bodyData.value.inAccountCumulativeAmount) && proxy.$util.isValue(bodyData.value.outAccountCumulativeAmount)) {
+			bodyData.value.remainingRecordAmount = Number(bodyData.value.inAccountCumulativeAmount) - Number(bodyData.value.outAccountCumulativeAmount) - Number(bodyData.value.recordQuantity)
+		} else {
+			bodyData.value.remainingRecordAmount = ''
+		}
 	}, 100)
 }
 // 抛出函数