|
@@ -31,7 +31,7 @@
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row :gutter="10">
|
|
<el-row :gutter="10">
|
|
- <el-col :span="8">
|
|
|
|
|
|
+ <el-col :span="6">
|
|
<el-form-item label="供应商" prop="supplyId">
|
|
<el-form-item label="供应商" prop="supplyId">
|
|
<el-select
|
|
<el-select
|
|
v-model="formData.data.supplyId"
|
|
v-model="formData.data.supplyId"
|
|
@@ -49,6 +49,35 @@
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+ <el-col :span="6">
|
|
|
|
+ <el-form-item label="是否合同" prop="isAgreement">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="formData.data.isAgreement"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ >
|
|
|
|
+ <el-option label="是" value="1"> </el-option>
|
|
|
|
+ <el-option label="否" value="0"> </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :span="6">
|
|
|
|
+ <el-form-item label="付款方式" prop="paymentMethod">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="formData.data.paymentMethod"
|
|
|
|
+ placeholder="请选择"
|
|
|
|
+ filterable
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in fundsPaymentMethod"
|
|
|
|
+ :label="item.dictValue"
|
|
|
|
+ :value="item.dictKey"
|
|
|
|
+ >
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
</el-row>
|
|
</el-row>
|
|
<el-form-item label="采购说明" prop="purchaseContent">
|
|
<el-form-item label="采购说明" prop="purchaseContent">
|
|
<el-input
|
|
<el-input
|
|
@@ -125,7 +154,62 @@
|
|
<el-table-column prop="amount" label="金额" />
|
|
<el-table-column prop="amount" label="金额" />
|
|
<el-table-column prop="zip" label="操作" width="100">
|
|
<el-table-column prop="zip" label="操作" width="100">
|
|
<template #default="{ $index }">
|
|
<template #default="{ $index }">
|
|
- <el-button type="primary" link @click="handleRemove($index)"
|
|
|
|
|
|
+ <el-button type="primary" link @click="handleRemove($index, 20)"
|
|
|
|
+ >删除</el-button
|
|
|
|
+ >
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <div class="_t">其他费用</div>
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="primary" style="margin: 10px 0" @click="handleAdd">
|
|
|
|
+ 添加
|
|
|
|
+ </el-button>
|
|
|
|
+ <el-table :data="formData.data.otherFeeList">
|
|
|
|
+ <el-table-column prop="name" label="费用名称" min-width="150">
|
|
|
|
+ <template #default="{ row, $index }">
|
|
|
|
+ <el-form-item
|
|
|
|
+ :prop="'otherFeeList.' + $index + '.name'"
|
|
|
|
+ :rules="rules.name"
|
|
|
|
+ :inline-message="true"
|
|
|
|
+ >
|
|
|
|
+ <el-input v-model="row.name" placeholder="请输入" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="price" label="金额" min-width="150">
|
|
|
|
+ <template #default="{ row, $index }">
|
|
|
|
+ <el-form-item
|
|
|
|
+ :prop="'purchaseDetailList.' + $index + '.price'"
|
|
|
|
+ :rules="rules.price"
|
|
|
|
+ :inline-message="true"
|
|
|
|
+ >
|
|
|
|
+ <el-input-number
|
|
|
|
+ v-model="row.price"
|
|
|
|
+ :precision="4"
|
|
|
|
+ :controls="false"
|
|
|
|
+ :min="0"
|
|
|
|
+ @change="handleChangeAmount"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column prop="remark" label="备注" min-width="150">
|
|
|
|
+ <template #default="{ row, $index }">
|
|
|
|
+ <el-form-item
|
|
|
|
+ :prop="'otherFeeList.' + $index + '.remark'"
|
|
|
|
+ :rules="rules.remark"
|
|
|
|
+ :inline-message="true"
|
|
|
|
+ >
|
|
|
|
+ <el-input v-model="row.remark" placeholder="请输入" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="zip" label="操作" width="100">
|
|
|
|
+ <template #default="{ $index }">
|
|
|
|
+ <el-button type="primary" link @click="handleRemove($index, 10)"
|
|
>删除</el-button
|
|
>删除</el-button
|
|
>
|
|
>
|
|
</template>
|
|
</template>
|
|
@@ -164,6 +248,7 @@ let formData = reactive({
|
|
data: {
|
|
data: {
|
|
purchaseTime: "",
|
|
purchaseTime: "",
|
|
purchaseDetailList: [],
|
|
purchaseDetailList: [],
|
|
|
|
+ otherFeeList: [],
|
|
},
|
|
},
|
|
});
|
|
});
|
|
let rules = ref({
|
|
let rules = ref({
|
|
@@ -176,14 +261,32 @@ let rules = ref({
|
|
],
|
|
],
|
|
supplyId: [{ required: true, message: "请选择供应商", trigger: "change" }],
|
|
supplyId: [{ required: true, message: "请选择供应商", trigger: "change" }],
|
|
count: [{ required: true, message: "请输入本次采购数量", trigger: "blur" }],
|
|
count: [{ required: true, message: "请输入本次采购数量", trigger: "blur" }],
|
|
- price: [{ required: true, message: "请输入单价", trigger: "blur" }],
|
|
|
|
|
|
+ price: [{ required: true, message: "请输入单价/金额", trigger: "blur" }],
|
|
remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
|
|
remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
|
|
|
|
+ isAgreement: [
|
|
|
|
+ { required: true, message: "请选择是否合同", trigger: "change" },
|
|
|
|
+ ],
|
|
|
|
+ paymentMethod: [
|
|
|
|
+ { required: true, message: "请选择付款方式", trigger: "change" },
|
|
|
|
+ ],
|
|
});
|
|
});
|
|
|
|
|
|
let openProduct = ref(false);
|
|
let openProduct = ref(false);
|
|
|
|
+const handleAdd = () => {
|
|
|
|
+ formData.data.otherFeeList.push({
|
|
|
|
+ name: "",
|
|
|
|
+ price: 0,
|
|
|
|
+ remark: "",
|
|
|
|
+ });
|
|
|
|
+};
|
|
// 物品相应逻辑
|
|
// 物品相应逻辑
|
|
-const handleRemove = (index) => {
|
|
|
|
- formData.data.purchaseDetailList.splice(index, 1);
|
|
|
|
|
|
+const handleRemove = (index, type) => {
|
|
|
|
+ if (type == 10) {
|
|
|
|
+ formData.data.otherFeeList.splice(index, 1);
|
|
|
|
+ } else if (type == 20) {
|
|
|
|
+ formData.data.purchaseDetailList.splice(index, 1);
|
|
|
|
+ }
|
|
|
|
+ handleChangeAmount();
|
|
return ElMessage({
|
|
return ElMessage({
|
|
message: "删除成功!",
|
|
message: "删除成功!",
|
|
type: "success",
|
|
type: "success",
|
|
@@ -280,20 +383,35 @@ const getDetails = () => {
|
|
formData.data.purchaseDetailList = res.map((x) => ({
|
|
formData.data.purchaseDetailList = res.map((x) => ({
|
|
...x,
|
|
...x,
|
|
subscribeCount: x.count,
|
|
subscribeCount: x.count,
|
|
- count: 0,
|
|
|
|
|
|
+ count: Number(x.count) - Number(x.purchaseCount),
|
|
price: null,
|
|
price: null,
|
|
amount: null,
|
|
amount: null,
|
|
}));
|
|
}));
|
|
});
|
|
});
|
|
};
|
|
};
|
|
|
|
+// 获取用户信息并赋默认值
|
|
|
|
+const tenantId = "@福建宏星!#¥%……&*()";
|
|
|
|
+// const tenantId = userInfo.tenantId;
|
|
// 获取供应商数据
|
|
// 获取供应商数据
|
|
const supplierData = ref([]);
|
|
const supplierData = ref([]);
|
|
|
|
+const fundsPaymentMethod = ref([]);
|
|
const getSupplierList = async (req) => {
|
|
const getSupplierList = async (req) => {
|
|
proxy
|
|
proxy
|
|
.post("/supplierInfo/page", { pageNum: 1, pageSize: 9999 })
|
|
.post("/supplierInfo/page", { pageNum: 1, pageSize: 9999 })
|
|
.then((res) => {
|
|
.then((res) => {
|
|
supplierData.value = res.rows;
|
|
supplierData.value = res.rows;
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+ proxy
|
|
|
|
+ .post("/dictTenantData/page", {
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 999,
|
|
|
|
+ tenantId: tenantId,
|
|
|
|
+ dictCode: "funds_payment_method",
|
|
|
|
+ })
|
|
|
|
+ .then((res) => {
|
|
|
|
+ fundsPaymentMethod.value = res.rows;
|
|
|
|
+ });
|
|
};
|
|
};
|
|
// 供应商改变逻辑
|
|
// 供应商改变逻辑
|
|
const handleChangeSupplier = (val) => {
|
|
const handleChangeSupplier = (val) => {
|
|
@@ -307,6 +425,10 @@ const handleChangeAmount = () => {
|
|
e.amount = e.count * e.price;
|
|
e.amount = e.count * e.price;
|
|
sum += e.amount;
|
|
sum += e.amount;
|
|
}
|
|
}
|
|
|
|
+ for (let i = 0; i < formData.data.otherFeeList.length; i++) {
|
|
|
|
+ const e = formData.data.otherFeeList[i];
|
|
|
|
+ sum += e.price;
|
|
|
|
+ }
|
|
formData.data.amount = sum;
|
|
formData.data.amount = sum;
|
|
};
|
|
};
|
|
// 向父组件暴露
|
|
// 向父组件暴露
|