123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <template>
- <div class="app-container">
- <!-- 对话框(添加 / 修改) -->
- <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="45%" v-dialogDrag append-to-body>
- <el-form ref="formRef" :model="formData" :rules="formRules" v-loading="formLoading" label-width="100px">
- <el-form-item label="商品分类" prop="goodsTypeId">
- <el-input v-model="formData.goodsTypeId" placeholder="请输入商品分类" />
- </el-form-item>
- <el-form-item label="商品名称" prop="goodsName">
- <el-input v-model="formData.goodsName" placeholder="请输入商品名称" />
- </el-form-item>
- <el-form-item label="商品价格" prop="goodsPrice">
- <el-input v-model="formData.goodsPrice" placeholder="请输入商品价格" />
- </el-form-item>
- <el-form-item label="商品图标">
- <ImageUpload v-model="formData.goodsIcon"/>
- </el-form-item>
- </el-form>
- <div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitForm" :disabled="formLoading">确 定</el-button>
- <el-button @click="dialogVisible = false">取 消</el-button>
- </div>
- </el-dialog>
- </div>
- </template>
- <script>
- import * as GoodsApi from '@/api/restaurant/restaurant';
- import ImageUpload from '@/components/ImageUpload';
- export default {
- name: "GoodsForm",
- components: {
- ImageUpload,
- },
- data() {
- return {
- // 弹出层标题
- dialogTitle: "",
- // 是否显示弹出层
- dialogVisible: false,
- // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
- formLoading: false,
- // 表单参数
- formData: {
- goodsTypeId: undefined,
- goodsName: undefined,
- goodsPrice: undefined,
- goodsIcon: undefined,
- },
- // 表单校验
- formRules: {
- },
- };
- },
- methods: {
- /** 打开弹窗 */
- async open(id) {
- this.dialogVisible = true;
- this.reset();
- // 修改时,设置数据
- if (id) {
- this.formLoading = true;
- try {
- const res = await GoodsApi.getGoods(id);
- this.formData = res.data;
- this.title = "修改商品";
- } finally {
- this.formLoading = false;
- }
- }
- this.title = "新增商品";
- },
- /** 提交按钮 */
- async submitForm() {
- // 校验主表
- await this.$refs["formRef"].validate();
- this.formLoading = true;
- try {
- const data = this.formData;
- // 修改的提交
- if (data.id) {
- await GoodsApi.updateGoods(data);
- this.$modal.msgSuccess("修改成功");
- this.dialogVisible = false;
- this.$emit('success');
- return;
- }
- // 添加的提交
- await GoodsApi.createGoods(data);
- this.$modal.msgSuccess("新增成功");
- this.dialogVisible = false;
- this.$emit('success');
- } finally {
- this.formLoading = false;
- }
- },
- /** 表单重置 */
- reset() {
- this.formData = {
- goodsTypeId: undefined,
- goodsName: undefined,
- goodsPrice: undefined,
- goodsIcon: undefined,
- };
- this.resetForm("formRef");
- }
- }
- };
- </script>
|