|
@@ -9,6 +9,17 @@
|
|
|
</van-nav-bar>
|
|
|
<van-form @submit="onSubmit" label-align="top" style="margin-top: 20px">
|
|
|
<van-cell-group inset>
|
|
|
+ <van-field v-model="formData.warehouseName" readonly label="数据来源" />
|
|
|
+ <van-field v-model="formData.warehouseName" readonly label="单号" />
|
|
|
+ <van-field v-model="formData.warehouseName" readonly label="物品名称" />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.warehouseName"
|
|
|
+ readonly
|
|
|
+ label="待入库数量"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ <div style="padding: 5px 0 5px 15px; color: #999999">本次入库</div>
|
|
|
+ <van-cell-group inset>
|
|
|
<van-field
|
|
|
v-model="formData.warehouseName"
|
|
|
is-link
|
|
@@ -26,59 +37,15 @@
|
|
|
@confirm="onConfirm"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
- <!-- 明细列表 -->
|
|
|
- <div v-for="(item, index) in list" :key="index">
|
|
|
- <div class="row">
|
|
|
- <div class="title">明细{{ index + 1 }}</div>
|
|
|
- <div
|
|
|
- class="delete"
|
|
|
- @click.native="handleDel(index)"
|
|
|
- v-if="!route.query.id"
|
|
|
- >
|
|
|
- <van-icon name="cross" />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <van-field
|
|
|
- v-model="list[index].productName"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- label="物品名称"
|
|
|
- placeholder="选择物品名称"
|
|
|
- @click="handleSelect(index)"
|
|
|
- :rules="[{ required: true, message: '物品名称不能为空' }]"
|
|
|
- required
|
|
|
- />
|
|
|
-
|
|
|
- <van-field
|
|
|
- v-model="list[index].quantity"
|
|
|
- label="入库数量"
|
|
|
- placeholder="请输入入库数量"
|
|
|
- :rules="[{ required: true, message: '入库数量不能为空' }]"
|
|
|
- required
|
|
|
- />
|
|
|
- </div>
|
|
|
- <van-popup v-model:show="typeModalOne" round position="bottom">
|
|
|
- <van-picker
|
|
|
- :columns="columnsOne"
|
|
|
- @cancel="typeModalOne = false"
|
|
|
- @confirm="(data) => onConfirmOne(data, index)"
|
|
|
- />
|
|
|
- </van-popup>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.warehouseName"
|
|
|
+ label="入库数量"
|
|
|
+ placeholder="请输入入库数量"
|
|
|
+ :rules="[{ required: true, message: '入库数量不能为空' }]"
|
|
|
+ required
|
|
|
+ />
|
|
|
</van-cell-group>
|
|
|
-
|
|
|
- <div style="text-align: center; line-height: 28px" v-if="!route.query.id">
|
|
|
- <van-button
|
|
|
- icon="plus"
|
|
|
- type="primary"
|
|
|
- plain
|
|
|
- size="mini"
|
|
|
- style="margin-top: 10px"
|
|
|
- @click="handleAddRow"
|
|
|
- >添加明细</van-button
|
|
|
- >
|
|
|
- </div>
|
|
|
-
|
|
|
- <div style="margin: 16px" v-if="!route.query.id">
|
|
|
+ <div style="margin: 16px">
|
|
|
<van-button round block type="primary" native-type="submit">
|
|
|
提交
|
|
|
</van-button>
|
|
@@ -94,23 +61,13 @@ import { useRoute } from "vue-router";
|
|
|
|
|
|
const proxy = getCurrentInstance().proxy;
|
|
|
const route = useRoute();
|
|
|
-const showPicker = ref(false);
|
|
|
const typeModal = ref(false);
|
|
|
-const typeModalOne = ref(false);
|
|
|
-let selectIndex = ref(null);
|
|
|
const formData = ref({
|
|
|
warehouseId: "",
|
|
|
type: "1",
|
|
|
warehouseName: "",
|
|
|
});
|
|
|
-const list = ref([]);
|
|
|
-const handleAddRow = () => {
|
|
|
- list.value.push({
|
|
|
- productId: "",
|
|
|
- productName: "",
|
|
|
- quantity: "",
|
|
|
- });
|
|
|
-};
|
|
|
+
|
|
|
const getDict = () => {
|
|
|
proxy.post("/warehouse/page", { pageNum: 1, pageSize: 9999 }).then((res) => {
|
|
|
columns.value = res.data.rows.map((item) => {
|
|
@@ -119,39 +76,16 @@ const getDict = () => {
|
|
|
value: item.id,
|
|
|
};
|
|
|
});
|
|
|
- // formData.value.warehouseName = formData.value.warehouseId
|
|
|
- // ? columns.value.find((item) => item.value == formData.value.warehouseId).name
|
|
|
- // : null;
|
|
|
});
|
|
|
-
|
|
|
- proxy
|
|
|
- .post("/productInfo/page", { pageNum: 1, pageSize: 9999, definition: "1" })
|
|
|
- .then((res) => {
|
|
|
- columnsOne.value = res.data.rows.map((item) => {
|
|
|
- return {
|
|
|
- text: item.name,
|
|
|
- value: item.id,
|
|
|
- };
|
|
|
- });
|
|
|
- // formData.value.warehouseName = formData.value.warehouseId
|
|
|
- // ? columns.value.find((item) => item.value == formData.value.warehouseId).name
|
|
|
- // : null;
|
|
|
- });
|
|
|
};
|
|
|
|
|
|
const getDetails = (id) => {
|
|
|
- proxy.post("/stockJournal/detail", { id }).then((res) => {
|
|
|
+ proxy.post("/stockWait/detail", { id }).then((res) => {
|
|
|
formData.value = res.data;
|
|
|
- list.value = res.data.list.map((x) => ({
|
|
|
- productId: x.productId,
|
|
|
- productName: x.productName,
|
|
|
- quantity: x.quantity,
|
|
|
- }));
|
|
|
});
|
|
|
};
|
|
|
|
|
|
const columns = ref([]);
|
|
|
-const columnsOne = ref([]);
|
|
|
|
|
|
const onConfirm = ({ selectedOptions }) => {
|
|
|
formData.value.warehouseId = selectedOptions[0].value;
|
|
@@ -159,30 +93,9 @@ const onConfirm = ({ selectedOptions }) => {
|
|
|
typeModal.value = false;
|
|
|
};
|
|
|
|
|
|
-const onConfirmOne = ({ selectedOptions }, index) => {
|
|
|
- list.value[selectIndex.value].productId = selectedOptions[0].value;
|
|
|
- list.value[selectIndex.value].productName = selectedOptions[0].text;
|
|
|
- typeModalOne.value = false;
|
|
|
-};
|
|
|
-
|
|
|
-const handleSelect = (index) => {
|
|
|
- selectIndex.value = index;
|
|
|
- typeModalOne.value = true;
|
|
|
-};
|
|
|
-
|
|
|
-const handleDel = (index) => {
|
|
|
- list.value.splice(index, 1);
|
|
|
-};
|
|
|
-
|
|
|
const onClickLeft = () => history.back();
|
|
|
|
|
|
const onSubmit = () => {
|
|
|
- if (!list.value.length > 0) return showFailToast("请添加明细!");
|
|
|
- formData.value.list = list.value.map((x) => ({
|
|
|
- productId: x.productId,
|
|
|
- quantity: x.quantity,
|
|
|
- }));
|
|
|
- formData.value.type = "1";
|
|
|
proxy.post("/stock/add", formData.value).then(
|
|
|
(res) => {
|
|
|
setTimeout(() => {
|
|
@@ -195,6 +108,7 @@ const onSubmit = () => {
|
|
|
}
|
|
|
);
|
|
|
};
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
getDetails(route.query.id);
|
|
|
getDict();
|