feat: 🚀 完工
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
:labelWidth="dataStore.labelWidth"
|
||||
:inline="true"
|
||||
ref="detailsRef"
|
||||
@selectChange="handleChange"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -24,19 +25,140 @@ import { cloneDeep } from "lodash-es";
|
||||
import { DETAILS_FORM_DATA, DETAILS_RULE_FORM } from "./constant/list/add";
|
||||
import DetailsSearch from "@/components/DetailsSearch/index.vue";
|
||||
import PermissionButton from "@/components/PermissionButton/index.vue";
|
||||
|
||||
import { useUserStore } from "@/stores/modules/user";
|
||||
import $Bus from "@/utils/mittBus";
|
||||
import { getGoodsAddApi, getGoodsUpApi, getGoodsDetailsApi, getGoodsCheckExistswApi } from "@/api/modules/setGoods";
|
||||
import { getWarehousesListApi } from "@/api/modules/global";
|
||||
import { useMsg } from "@/hooks/useMsg";
|
||||
const userStore = useUserStore();
|
||||
const route = useRoute();
|
||||
const $router = useRouter();
|
||||
// 数据源
|
||||
const dataStore = reactive<any>({
|
||||
buttons: cloneDeep(BUTTON),
|
||||
labelWidth: "120px",
|
||||
formData: cloneDeep(DETAILS_FORM_DATA),
|
||||
ruleForm: cloneDeep(DETAILS_RULE_FORM)
|
||||
ruleForm: cloneDeep(DETAILS_RULE_FORM),
|
||||
id: null,
|
||||
title: ""
|
||||
});
|
||||
|
||||
// 详情表单实例
|
||||
const detailsRef = ref(null);
|
||||
|
||||
//初始化组织数据
|
||||
const init = () => {
|
||||
if (userStore.orgIdArr.length) {
|
||||
dataStore.formData[0].options = userStore?.orgIdArr;
|
||||
}
|
||||
};
|
||||
init();
|
||||
|
||||
//新增
|
||||
const handleAdd = async () => {
|
||||
const result = await getGoodsAddApi(dataStore.ruleForm);
|
||||
if (result?.code === 0) {
|
||||
useMsg("success", "新增成功 !");
|
||||
dataStore.id = result?.data?.id;
|
||||
$Bus.emit("setGoodsResetList");
|
||||
}
|
||||
};
|
||||
//更新
|
||||
const getGoodsUp = async () => {
|
||||
const result = await getGoodsUpApi(dataStore.id, dataStore.ruleForm);
|
||||
if (result?.code === 0) {
|
||||
useMsg("success", "更新成功 !");
|
||||
$Bus.emit("setGoodsResetList");
|
||||
}
|
||||
};
|
||||
//详情
|
||||
const getGoodsDetails = async () => {
|
||||
dataStore.id = route.query.id;
|
||||
if (!dataStore.id) {
|
||||
return;
|
||||
}
|
||||
//getGoodsDetailsApi
|
||||
const result = await getGoodsDetailsApi(dataStore.id);
|
||||
if (result?.code === 0) {
|
||||
dataStore.ruleForm = result?.data;
|
||||
}
|
||||
};
|
||||
getGoodsDetails();
|
||||
//验证
|
||||
const getGoodsCheckExistsw = async () => {
|
||||
const result = await getGoodsCheckExistswApi({
|
||||
use_org_number: dataStore.ruleForm.use_org_number,
|
||||
warehouse_number: dataStore.ruleForm.warehouse_number
|
||||
});
|
||||
if (result?.code === 0 && result?.data?.exists) {
|
||||
useMsg("error", "仓库已存在数据, 无需再次新增 !");
|
||||
}
|
||||
};
|
||||
// 按钮点击事件
|
||||
const handleButtonClickCallback = () => {};
|
||||
const handleButtonClickCallback = (item: any) => {
|
||||
const { type } = item;
|
||||
dataStore.title = route.query.title;
|
||||
if (type === "save") {
|
||||
if (!dataStore.ruleForm.use_org_number) {
|
||||
return useMsg("warning", "组织不能为空 !");
|
||||
}
|
||||
if (!dataStore.ruleForm.warehouse_number) {
|
||||
return useMsg("warning", "仓库不能为空 !");
|
||||
}
|
||||
if (!dataStore.ruleForm.pos_picking_priority) {
|
||||
return useMsg("warning", "仓位不能为空 !");
|
||||
}
|
||||
dataStore.title === "新增仓位找货优先级" ? handleAdd() : getGoodsUp();
|
||||
}
|
||||
if (type === "preview") {
|
||||
if (!dataStore.id) {
|
||||
useMsg("warning", "请先保存数据 !");
|
||||
}
|
||||
$router.push({
|
||||
path: "/foundation/set/goods/preview",
|
||||
query: { id: dataStore.id, name: dataStore.title }
|
||||
});
|
||||
}
|
||||
if (type === "return") {
|
||||
$router.push({
|
||||
path: "/foundation/set/goods/index"
|
||||
});
|
||||
}
|
||||
};
|
||||
//仓库列表 /foundation/set/goods/preview
|
||||
const getWarehousesList = async () => {
|
||||
const result = await getWarehousesListApi({ use_org_number: dataStore.ruleForm.use_org_number });
|
||||
if (result?.code === 0) {
|
||||
const { data } = result;
|
||||
if (data?.length) {
|
||||
let options: any = [];
|
||||
data.forEach((item: any) => {
|
||||
options.push({
|
||||
id: item.id,
|
||||
value: item.warehouse_number,
|
||||
label: item.warehouse_name
|
||||
});
|
||||
});
|
||||
dataStore.formData[1].options = options;
|
||||
}
|
||||
}
|
||||
};
|
||||
const handleChange = (item: any) => {
|
||||
console.log(item);
|
||||
getGoodsCheckExistsw();
|
||||
};
|
||||
//监听当前组织
|
||||
watch(
|
||||
() => dataStore.ruleForm.use_org_number,
|
||||
(newVal: any) => {
|
||||
if (newVal) {
|
||||
getWarehousesList();
|
||||
}
|
||||
},
|
||||
{
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
|
||||
Reference in New Issue
Block a user