|
@@ -29,20 +29,27 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="单价:">
|
|
|
- <el-input v-model="baseForm.price" />
|
|
|
+ <el-form-item label="单价:" prop="price">
|
|
|
+ <el-input v-model="baseForm.price" @blur="handleBlur"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
- <el-form-item label="数量:">
|
|
|
- <el-input v-model="baseForm.meterAmount" />
|
|
|
+ <el-form-item label="数量:" prop="meterAmount" >
|
|
|
+ <el-input v-model="baseForm.meterAmount" @blur="handleBlur" ></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="计量金额:">
|
|
|
- <el-input v-model="baseForm.meterMoney" />
|
|
|
+ <el-input v-model="baseForm.meterMoney" disabled type='number'/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="合同规定预付款金额:">
|
|
|
+ <el-input v-model="baseForm.contractStatedMoney" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
<el-col :span="8">
|
|
|
<el-form-item label="业务日期:" prop="businessDate">
|
|
|
<el-date-picker v-model="baseForm.businessDate" class="block" format="YYYY-MM-DD" type="date" value-format="YYYY-MM-DD" />
|
|
@@ -84,7 +91,7 @@
|
|
|
<el-input v-model="baseForm.certificate" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="16">
|
|
|
+ <el-col :span="8">
|
|
|
<el-form-item label="备注:">
|
|
|
<el-input v-model="baseForm.remark" />
|
|
|
</el-form-item>
|
|
@@ -230,10 +237,18 @@ const getTreeData = async ()=>{
|
|
|
}
|
|
|
const treeItem = ref({})
|
|
|
const treeClick = ({ node, data, keys })=>{
|
|
|
+ console.log(data.value?.materialName)
|
|
|
+ console.log(!treeItem.value?.clPrepaymentRatio)
|
|
|
+ if (data.value?.materialName && !treeItem.value?.clPrepaymentRatio) {
|
|
|
+ window.$message.warning('请联系管理员设置材料预付款百分比!')
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
treeItem.value = data
|
|
|
baseForm.value.contractMaterialName = data.materialName
|
|
|
- baseForm.value.price = data.price
|
|
|
-
|
|
|
+ handleBlur()
|
|
|
+ //由于业务需求改变,不需要回显示 单价
|
|
|
+ // baseForm.value.price = data.price
|
|
|
}
|
|
|
|
|
|
//基础表单
|
|
@@ -245,16 +260,14 @@ const baseFormRules = {
|
|
|
trigger: 'blur',
|
|
|
message: '请输入材料到场编号',
|
|
|
},
|
|
|
- meterAmount: {
|
|
|
- required: true,
|
|
|
- trigger: 'blur',
|
|
|
- message: '请输入数量',
|
|
|
- },
|
|
|
- price: {
|
|
|
- required: true,
|
|
|
- trigger: 'blur',
|
|
|
- message: '请输入单价',
|
|
|
- },
|
|
|
+ meterAmount:[
|
|
|
+ { required:true , message:'请输入数量',trigger:'blur'},
|
|
|
+ { pattern: /^[0-9.]*$/,message:'数量需为数字',trigger:'blur'}
|
|
|
+ ],
|
|
|
+ price:[
|
|
|
+ { required:true , message:'请输入单价',trigger:'blur'},
|
|
|
+ { pattern: /^[0-9.]*$/,message:'单价需为数字',trigger:'blur'}
|
|
|
+ ],
|
|
|
businessDate: {
|
|
|
required: true,
|
|
|
trigger: 'blur',
|
|
@@ -272,6 +285,26 @@ const baseFormRules = {
|
|
|
},
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+// 计算金额
|
|
|
+const handleBlur = async () => {
|
|
|
+ console.log(treeItem.value?.clPrepaymentRatio)
|
|
|
+ if ( baseForm.value?.price && baseForm.value?.meterAmount ) {
|
|
|
+ baseForm.value.meterMoney = Math.round(baseForm.value.price * baseForm.value.meterAmount)
|
|
|
+
|
|
|
+ if ( treeItem.value?.clPrepaymentRatio ) {
|
|
|
+ baseForm.value.contractStatedMoney = Math.round(baseForm.value.meterMoney * treeItem.value?.clPrepaymentRatio / 100)
|
|
|
+ } else {
|
|
|
+ baseForm.value.contractStatedMoney = 0
|
|
|
+ window.$message.warning('请先选择左侧节点')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ baseForm.value.meterMoney = 0
|
|
|
+ baseForm.value.contractStatedMoney = 0
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
const modalSaving = ref(false)
|
|
|
const modalSave = async () => {
|
|
|
if (!treeItem.value?.id && ids.value.length < 1) {
|
|
@@ -350,6 +383,11 @@ const modalClose = () => {
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style scoped lang="scss">
|
|
|
-
|
|
|
+<style scoped>
|
|
|
+ .el-form-item__label {
|
|
|
+ line-height: 1 !important; /* 重置默认的行高 */
|
|
|
+ }
|
|
|
+ .el-input {
|
|
|
+ vertical-align: middle; /* 使input垂直居中对齐 */
|
|
|
+ }
|
|
|
</style>
|