2025-05-09 10:54:40 +08:00
|
|
|
<script setup lang="ts">
|
|
|
|
|
import { ref, watch } from "vue";
|
|
|
|
|
import { ElMessage } from "element-plus";
|
2025-06-09 09:17:18 +08:00
|
|
|
import { addShop, updateShop, ShopDTO, UpdateShopCommand, AddShopCommand } from "@/api/shop/shop";
|
|
|
|
|
import { useWxStore } from "@/store/modules/wx";
|
2025-05-09 10:54:40 +08:00
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
|
|
|
visible: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false
|
|
|
|
|
},
|
|
|
|
|
row: {
|
|
|
|
|
type: Object as () => ShopDTO,
|
|
|
|
|
default: () => ({})
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const emit = defineEmits(["update:visible", "refresh"]);
|
|
|
|
|
|
2025-06-09 09:17:18 +08:00
|
|
|
const wxStore = useWxStore();
|
|
|
|
|
|
2025-05-09 10:54:40 +08:00
|
|
|
const formRef = ref();
|
|
|
|
|
const formData = ref<UpdateShopCommand>({
|
2025-06-09 09:17:18 +08:00
|
|
|
corpid: wxStore.corpid,
|
2025-05-09 10:54:40 +08:00
|
|
|
shopId: 0,
|
2025-06-11 16:25:04 +08:00
|
|
|
shopName: "",
|
|
|
|
|
belongType: undefined
|
2025-05-09 10:54:40 +08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const rules = {
|
2025-06-11 16:25:04 +08:00
|
|
|
shopName: [{ required: true, message: "请输入地址名称", trigger: "blur" }],
|
|
|
|
|
belongType: [{ required: true, message: "请选择商品模式", trigger: "change" }]
|
2025-05-09 10:54:40 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
watch(
|
|
|
|
|
() => props.visible,
|
|
|
|
|
val => {
|
|
|
|
|
if (val) {
|
|
|
|
|
if (props.row?.shopId) {
|
|
|
|
|
formData.value = {
|
|
|
|
|
...props.row,
|
2025-06-09 09:17:18 +08:00
|
|
|
shopId: props.row.shopId,
|
|
|
|
|
corpid: props.row.corpid,
|
2025-05-09 10:54:40 +08:00
|
|
|
};
|
|
|
|
|
} else {
|
|
|
|
|
formData.value = {
|
|
|
|
|
shopId: 0,
|
2025-06-09 09:17:18 +08:00
|
|
|
shopName: "",
|
|
|
|
|
corpid: wxStore.corpid
|
2025-05-09 10:54:40 +08:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const handleSubmit = async () => {
|
|
|
|
|
try {
|
|
|
|
|
await formRef.value.validate();
|
|
|
|
|
|
|
|
|
|
if (formData.value.shopId) {
|
|
|
|
|
await updateShop(formData.value.shopId, formData.value);
|
|
|
|
|
ElMessage.success("修改成功");
|
|
|
|
|
} else {
|
|
|
|
|
await addShop(formData.value);
|
|
|
|
|
ElMessage.success("新增成功");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
emit("update:visible", false);
|
|
|
|
|
emit("refresh");
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error(error);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleClose = () => {
|
|
|
|
|
emit("update:visible", false);
|
|
|
|
|
};
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
2025-06-02 10:25:04 +08:00
|
|
|
<el-dialog :title="formData.shopId ? '编辑地址' : '新增地址'" :model-value="visible" @update:model-value="handleClose"
|
2025-05-09 10:54:40 +08:00
|
|
|
width="600px">
|
|
|
|
|
<el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
|
2025-06-02 10:25:04 +08:00
|
|
|
<el-form-item label="地址ID" prop="shopId" v-if="formData.shopId">
|
2025-05-09 10:54:40 +08:00
|
|
|
<el-input v-model="formData.shopId" :disabled="true" />
|
|
|
|
|
</el-form-item>
|
2025-06-02 10:25:04 +08:00
|
|
|
<el-form-item label="地址名称" prop="shopName">
|
|
|
|
|
<el-input v-model="formData.shopName" placeholder="请输入地址名称" />
|
2025-05-09 10:54:40 +08:00
|
|
|
</el-form-item>
|
2025-06-11 16:25:04 +08:00
|
|
|
<el-form-item label="商品模式" prop="belongType">
|
|
|
|
|
<el-select v-model="formData.belongType" placeholder="请选择归属类型">
|
|
|
|
|
<el-option label="借还模式" :value="0" />
|
|
|
|
|
<el-option label="固资模式" :value="1" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
2025-05-09 10:54:40 +08:00
|
|
|
</el-form>
|
|
|
|
|
<template #footer>
|
|
|
|
|
<el-button @click="handleClose">取消</el-button>
|
|
|
|
|
<el-button type="primary" @click="handleSubmit">确定</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</template>
|