|
@@ -19,37 +19,84 @@
|
|
|
action: () => openModal('add'),
|
|
|
},
|
|
|
]"
|
|
|
- @get-list="getList">
|
|
|
+ @get-list="getList"
|
|
|
+ >
|
|
|
<template #fileSlot="{ item }">
|
|
|
- <div style="cursor: pointer; color: #409eff" @click="handleClickFile(item)">
|
|
|
+ <div
|
|
|
+ style="cursor: pointer; color: #409eff"
|
|
|
+ @click="handleClickFile(item)"
|
|
|
+ >
|
|
|
{{ item.fileName }}
|
|
|
</div>
|
|
|
</template>
|
|
|
</byTable>
|
|
|
</div>
|
|
|
- <el-dialog :title="modalType == 'add' ? '添加供应价格' : '编辑供应价格'" v-model="dialogVisible" width="800" v-loading="loading">
|
|
|
- <byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="byform">
|
|
|
+ <el-dialog
|
|
|
+ :title="modalType == 'add' ? '添加供应价格' : '编辑供应价格'"
|
|
|
+ v-model="dialogVisible"
|
|
|
+ width="800"
|
|
|
+ v-loading="loading"
|
|
|
+ >
|
|
|
+ <byForm
|
|
|
+ :formConfig="formConfig"
|
|
|
+ :formOption="formOption"
|
|
|
+ v-model="formData.data"
|
|
|
+ :rules="rules"
|
|
|
+ ref="byform"
|
|
|
+ >
|
|
|
<template #details>
|
|
|
<div style="width: 100%">
|
|
|
- <el-button type="primary" @click="openProduct = true" :disabled="modalType == 'edit'"> 选择 </el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="openProduct = true"
|
|
|
+ :disabled="modalType == 'edit'"
|
|
|
+ >
|
|
|
+ 选择
|
|
|
+ </el-button>
|
|
|
|
|
|
- <el-form ref="tableForm" :model="formData.data" :rules="rules" label-width="0px" style="margin-top: 15px">
|
|
|
+ <el-form
|
|
|
+ ref="tableForm"
|
|
|
+ :model="formData.data"
|
|
|
+ :rules="rules"
|
|
|
+ label-width="0px"
|
|
|
+ style="margin-top: 15px"
|
|
|
+ >
|
|
|
<el-table :data="formData.data.supplierPriceList">
|
|
|
<el-table-column prop="code" label="货品编码" />
|
|
|
<el-table-column prop="name" label="货品名称" min-width="150" />
|
|
|
<el-table-column prop="spec" label="规格型号" />
|
|
|
- <el-table-column prop="unit" label="单位" :formatter="(row) => dictValueLabel(row.unit, productUnit)" />
|
|
|
+ <el-table-column
|
|
|
+ prop="unit"
|
|
|
+ label="单位"
|
|
|
+ :formatter="(row) => dictValueLabel(row.unit, productUnit)"
|
|
|
+ />
|
|
|
<el-table-column prop="price" label="供应单价" min-width="150">
|
|
|
<template #default="{ row, $index }">
|
|
|
- <el-form-item :prop="'supplierPriceList.' + $index + '.price'" :rules="rules.price" :inline-message="true">
|
|
|
- <el-input-number v-model="row.price" :precision="2" :controls="false" :min="1" onmousewheel="return false;" />
|
|
|
+ <el-form-item
|
|
|
+ :prop="'supplierPriceList.' + $index + '.price'"
|
|
|
+ :rules="rules.price"
|
|
|
+ :inline-message="true"
|
|
|
+ >
|
|
|
+ <el-input-number
|
|
|
+ v-model="row.price"
|
|
|
+ :precision="2"
|
|
|
+ :controls="false"
|
|
|
+ :min="1"
|
|
|
+ onmousewheel="return false;"
|
|
|
+ />
|
|
|
</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)" :disabled="modalType == 'edit'">删除</el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ link
|
|
|
+ @click="handleRemove($index)"
|
|
|
+ :disabled="modalType == 'edit'"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -59,12 +106,29 @@
|
|
|
</byForm>
|
|
|
<template #footer>
|
|
|
<el-button @click="dialogVisible = false" size="large">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitForm('byform')" size="large" :loading="submitLoading"> 确 定 </el-button>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ @click="submitForm('byform')"
|
|
|
+ size="large"
|
|
|
+ :loading="submitLoading"
|
|
|
+ >
|
|
|
+ 确 定
|
|
|
+ </el-button>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog v-if="openProduct" v-model="openProduct" title="选择货品" width="70%" append-to-body>
|
|
|
- <SelectGoods :selectList="acquireSelectList()" @cancel="openProduct = false" @pushGoods="pushGoods"></SelectGoods>
|
|
|
+ <el-dialog
|
|
|
+ v-if="openProduct"
|
|
|
+ v-model="openProduct"
|
|
|
+ title="选择货品"
|
|
|
+ width="70%"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <SelectGoods
|
|
|
+ :selectList="acquireSelectList()"
|
|
|
+ @cancel="openProduct = false"
|
|
|
+ @pushGoods="pushGoods"
|
|
|
+ ></SelectGoods>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -98,7 +162,9 @@ let openProduct = ref(false);
|
|
|
let modalType = ref("add");
|
|
|
let fileList = ref([]);
|
|
|
let rules = ref({
|
|
|
- supplierInfoId: [{ required: true, message: "请选择供应商", trigger: "change" }],
|
|
|
+ supplierInfoId: [
|
|
|
+ { required: true, message: "请选择供应商", trigger: "change" },
|
|
|
+ ],
|
|
|
price: [{ required: true, message: "请输入供应单价", trigger: "blur" }],
|
|
|
});
|
|
|
const { proxy } = getCurrentInstance();
|
|
@@ -226,11 +292,15 @@ const config = computed(() => {
|
|
|
el: "button",
|
|
|
click() {
|
|
|
// 弹窗提示是否删除
|
|
|
- ElMessageBox.confirm("此操作将永久删除该数据, 是否继续?", "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
- }).then(() => {
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ "此操作将永久删除该数据, 是否继续?",
|
|
|
+ "提示",
|
|
|
+ {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }
|
|
|
+ ).then(() => {
|
|
|
// 删除
|
|
|
proxy
|
|
|
.post("/supplierPrice/delete", {
|
|
@@ -295,14 +365,16 @@ const formConfig = reactive([
|
|
|
const getList = async (req) => {
|
|
|
sourceList.value.pagination = { ...sourceList.value.pagination, ...req };
|
|
|
loading.value = true;
|
|
|
- proxy.post("/supplierPrice/page", sourceList.value.pagination).then((message) => {
|
|
|
- console.log(message);
|
|
|
- sourceList.value.data = message.rows;
|
|
|
- sourceList.value.pagination.total = message.total;
|
|
|
- setTimeout(() => {
|
|
|
- loading.value = false;
|
|
|
- }, 200);
|
|
|
- });
|
|
|
+ proxy
|
|
|
+ .post("/supplierPrice/page", sourceList.value.pagination)
|
|
|
+ .then((message) => {
|
|
|
+ console.log(message);
|
|
|
+ sourceList.value.data = message.rows;
|
|
|
+ sourceList.value.pagination.total = message.total;
|
|
|
+ setTimeout(() => {
|
|
|
+ loading.value = false;
|
|
|
+ }, 200);
|
|
|
+ });
|
|
|
};
|
|
|
const openModal = () => {
|
|
|
dialogVisible.value = true;
|
|
@@ -343,41 +415,34 @@ const submitForm = () => {
|
|
|
message: `已存在供应价格,价格为${res.existSupplierPriceList[0].price}`,
|
|
|
type: "info",
|
|
|
});
|
|
|
- ElMessageBox.confirm("继续提交将修改已存在的单价数据, 是否继续?", "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
- })
|
|
|
+ ElMessageBox.confirm(
|
|
|
+ "继续提交将修改已存在的单价数据, 是否继续?",
|
|
|
+ "提示",
|
|
|
+ {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ }
|
|
|
+ )
|
|
|
.then(() => {
|
|
|
- const arr = [];
|
|
|
- for (let i = 0; i < formData.data.supplierPriceList.length; i++) {
|
|
|
- const iele = formData.data.supplierPriceList[i];
|
|
|
- for (let j = 0; j < res.existSupplierPriceList.length; j++) {
|
|
|
- const jele = res.existSupplierPriceList[j];
|
|
|
- if (iele.productInfoId === jele.productInfoId) {
|
|
|
- jele.price = iele.price;
|
|
|
- arr.push(jele);
|
|
|
+ submitData.renewWhileItExists = true;
|
|
|
+ proxy
|
|
|
+ .post("/supplierPrice/" + modalType.value, submitData)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.addSuccess) {
|
|
|
+ ElMessage({
|
|
|
+ message: "修改成功",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ getList();
|
|
|
+ dialogVisible.value = false;
|
|
|
+ submitLoading.value = false;
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- formData.data.supplierPriceList = arr.map((x) => ({
|
|
|
- productInfoId: x.productInfoId,
|
|
|
- price: x.price,
|
|
|
- }));
|
|
|
- formData.data.renewWhileItExists = true;
|
|
|
- proxy.post("/supplierPrice/" + modalType.value, formData.data).then((res) => {
|
|
|
- if (res.addSuccess) {
|
|
|
- ElMessage({
|
|
|
- message: "修改成功",
|
|
|
- type: "success",
|
|
|
- });
|
|
|
- getList();
|
|
|
- dialogVisible.value = false;
|
|
|
- submitLoading.value = false;
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => {
|
|
|
+ submitLoading.value = false;
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
(err) => {
|
|
@@ -386,19 +451,25 @@ const submitForm = () => {
|
|
|
);
|
|
|
} else {
|
|
|
formData.data.supplierInfoId = formData.data.supplierInfoIdCopy;
|
|
|
- formData.data.productInfoId = formData.data.supplierPriceList[0].productInfoId;
|
|
|
+ formData.data.productInfoId =
|
|
|
+ formData.data.supplierPriceList[0].productInfoId;
|
|
|
formData.data.price = formData.data.supplierPriceList[0].price;
|
|
|
delete formData.data.supplierPriceList;
|
|
|
delete formData.data.supplierInfoIdCopy;
|
|
|
- proxy.post("/supplierPrice/" + modalType.value, formData.data).then((res) => {
|
|
|
- ElMessage({
|
|
|
- message: "修改成功",
|
|
|
- type: "success",
|
|
|
- });
|
|
|
- getList();
|
|
|
- dialogVisible.value = false;
|
|
|
- submitLoading.value = false;
|
|
|
- });
|
|
|
+ proxy.post("/supplierPrice/" + modalType.value, formData.data).then(
|
|
|
+ (res) => {
|
|
|
+ ElMessage({
|
|
|
+ message: "修改成功",
|
|
|
+ type: "success",
|
|
|
+ });
|
|
|
+ getList();
|
|
|
+ dialogVisible.value = false;
|
|
|
+ submitLoading.value = false;
|
|
|
+ },
|
|
|
+ (err) => {
|
|
|
+ submitLoading.value = false;
|
|
|
+ }
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
});
|
|
@@ -455,9 +526,14 @@ const handleRemove = (index) => {
|
|
|
const pushGoods = (goods) => {
|
|
|
if (goods && goods.length > 0) {
|
|
|
let afterFiltering = [];
|
|
|
- if (formData.data.supplierPriceList && formData.data.supplierPriceList.length > 0) {
|
|
|
+ if (
|
|
|
+ formData.data.supplierPriceList &&
|
|
|
+ formData.data.supplierPriceList.length > 0
|
|
|
+ ) {
|
|
|
afterFiltering = goods.filter((item) => {
|
|
|
- let data = formData.data.supplierPriceList.filter((itemProduct) => itemProduct.productInfoId === item.id);
|
|
|
+ let data = formData.data.supplierPriceList.filter(
|
|
|
+ (itemProduct) => itemProduct.productInfoId === item.id
|
|
|
+ );
|
|
|
if (data && data.length > 0) {
|
|
|
return false;
|
|
|
}
|
|
@@ -466,7 +542,11 @@ const pushGoods = (goods) => {
|
|
|
} else {
|
|
|
afterFiltering = goods;
|
|
|
}
|
|
|
- const arr = afterFiltering.map((x) => ({ ...x, productInfoId: x.id, price: "" }));
|
|
|
+ const arr = afterFiltering.map((x) => ({
|
|
|
+ ...x,
|
|
|
+ productInfoId: x.id,
|
|
|
+ price: "",
|
|
|
+ }));
|
|
|
arr.forEach((item) => {
|
|
|
if (!formData.data.supplierPriceList.some((e) => e.id === item.id)) {
|
|
|
formData.data.supplierPriceList.push(item);
|
|
@@ -500,7 +580,10 @@ getDict();
|
|
|
getList();
|
|
|
const acquireSelectList = () => {
|
|
|
let data = [];
|
|
|
- if (formData.data.supplierPriceList && formData.data.supplierPriceList.length > 0) {
|
|
|
+ if (
|
|
|
+ formData.data.supplierPriceList &&
|
|
|
+ formData.data.supplierPriceList.length > 0
|
|
|
+ ) {
|
|
|
data = formData.data.supplierPriceList.map((item) => {
|
|
|
return {
|
|
|
id: item.productInfoId,
|