Browse Source

bugfix:折扣设备-新增问题;

bing 5 days ago
parent
commit
06d66ca460

+ 2 - 2
src/api/consumption/xfDiscount/types.ts

@@ -16,7 +16,7 @@ export interface XfDiscountVO {
16
    */
16
    */
17
   mealType: number;
17
   mealType: number;
18
 
18
 
19
-  mealTypeName: string;
19
+  /* mealTypeName: string; */
20
 
20
 
21
   /**
21
   /**
22
    * 折扣类型,默认为0
22
    * 折扣类型,默认为0
@@ -68,7 +68,7 @@ export interface XfDiscountForm extends BaseEntity {
68
   /**
68
   /**
69
    * 餐类Id
69
    * 餐类Id
70
    */
70
    */
71
-  mealType?: number;
71
+  mealType?: string;
72
 
72
 
73
   /**
73
   /**
74
    * 折扣类型,默认为0
74
    * 折扣类型,默认为0

+ 31 - 15
src/views/basics/basicParameter/ptMealtype/DetailForm.vue

@@ -5,20 +5,36 @@
5
         <el-form-item label="餐类名称" prop="mealName">
5
         <el-form-item label="餐类名称" prop="mealName">
6
           <el-select v-model="formData.mealName" placeholder="请选择餐类名称" @change="selectMealType($event)">
6
           <el-select v-model="formData.mealName" placeholder="请选择餐类名称" @change="selectMealType($event)">
7
             <el-option
7
             <el-option
8
-                v-for="dict in meal_type"
9
-                :key="dict.label"
10
-                :label="dict.label"
11
-                :value="{mealName: dict.label, typeId:dict.value}"
8
+              v-for="dict in meal_type"
9
+              :key="dict.label"
10
+              :label="dict.label"
11
+              :value="{ mealName: dict.label, typeId: dict.value }"
12
             ></el-option>
12
             ></el-option>
13
           </el-select>
13
           </el-select>
14
         </el-form-item>
14
         </el-form-item>
15
         <el-form-item label="开始时间" prop="beginTime">
15
         <el-form-item label="开始时间" prop="beginTime">
16
-          <el-time-select v-model="formData.beginTime" :max-time="formData.endTime" style="width: 240px" start="05:00"
17
-          step="00:15" end="23:59" format="HH:mm:ss" placeholder="请选择时间"/>
16
+          <el-time-select
17
+            v-model="formData.beginTime"
18
+            :max-time="formData.endTime"
19
+            style="width: 240px"
20
+            start="05:00"
21
+            step="00:15"
22
+            end="23:59"
23
+            format="HH:mm:ss"
24
+            placeholder="请选择时间"
25
+          />
18
         </el-form-item>
26
         </el-form-item>
19
         <el-form-item label="结束时间" prop="endTime">
27
         <el-form-item label="结束时间" prop="endTime">
20
-          <el-time-select v-model="formData.endTime" :min-time="formData.beginTime" style="width: 240px" start="05:00"
21
-          step="00:15" end="23:59" format="HH:mm:ss" placeholder="请选择结束时间"/>
28
+          <el-time-select
29
+            v-model="formData.endTime"
30
+            :min-time="formData.beginTime"
31
+            style="width: 240px"
32
+            start="05:00"
33
+            step="00:15"
34
+            end="23:59"
35
+            format="HH:mm:ss"
36
+            placeholder="请选择结束时间"
37
+          />
22
         </el-form-item>
38
         </el-form-item>
23
         <el-form-item label="类别说明" prop="mealNotes">
39
         <el-form-item label="类别说明" prop="mealNotes">
24
           <el-input v-model="formData.mealNotes" placeholder="请输入类别说明" />
40
           <el-input v-model="formData.mealNotes" placeholder="请输入类别说明" />
@@ -70,14 +86,14 @@ const formData = ref<PtMealTypeForm>({
70
   mealName: '',
86
   mealName: '',
71
   beginTime: '',
87
   beginTime: '',
72
   endTime: '',
88
   endTime: '',
73
-  mealNotes: '',
89
+  mealNotes: ''
74
 });
90
 });
75
 // 表单校验规则
91
 // 表单校验规则
76
 const formRules = reactive({
92
 const formRules = reactive({
77
   mealId: [{ required: true, message: '营业时段id不能为空', trigger: 'blur' }],
93
   mealId: [{ required: true, message: '营业时段id不能为空', trigger: 'blur' }],
78
   mealName: [{ required: true, message: '餐类名称不能为空', trigger: 'blur' }],
94
   mealName: [{ required: true, message: '餐类名称不能为空', trigger: 'blur' }],
79
   beginTime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
95
   beginTime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }],
80
-  endTime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }],
96
+  endTime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }]
81
 });
97
 });
82
 /** 当前组件方法 */
98
 /** 当前组件方法 */
83
 /** 窗体打开事件 */
99
 /** 窗体打开事件 */
@@ -104,15 +120,15 @@ const resetForm = () => {
104
     mealName: '',
120
     mealName: '',
105
     beginTime: '',
121
     beginTime: '',
106
     endTime: '',
122
     endTime: '',
107
-    mealNotes: '',
123
+    mealNotes: ''
108
   };
124
   };
109
   formRef.value?.resetFields();
125
   formRef.value?.resetFields();
110
 };
126
 };
111
 
127
 
112
 const selectMealType = (event) => {
128
 const selectMealType = (event) => {
113
-  formData.value.typeId = event.typeId
114
-  formData.value.mealName = event.mealName
115
-}
129
+  formData.value.typeId = event.typeId;
130
+  formData.value.mealName = event.mealName;
131
+};
116
 // 传回给父组件的属性与方法
132
 // 传回给父组件的属性与方法
117
 // 提供 open 方法,用于打开弹窗
133
 // 提供 open 方法,用于打开弹窗
118
 defineExpose({ open });
134
 defineExpose({ open });
@@ -122,7 +138,7 @@ const emit = defineEmits(['success']);
122
 /** 提交按钮 */
138
 /** 提交按钮 */
123
 const submitForm = async () => {
139
 const submitForm = async () => {
124
   // 校验表单
140
   // 校验表单
125
-  if (!formRef) return;
141
+  if (!formRef.value) return;
126
   const valid = await formRef.value?.validate();
142
   const valid = await formRef.value?.validate();
127
   if (!valid) return;
143
   if (!valid) return;
128
   // 提交请求
144
   // 提交请求

+ 7 - 5
src/views/consumption/xfDiscount/DetailForm.vue

@@ -9,7 +9,7 @@
9
         </el-form-item>
9
         </el-form-item>
10
         <el-form-item label="餐类" prop="mealType">
10
         <el-form-item label="餐类" prop="mealType">
11
           <el-select v-model="formData.mealType" placeholder="请选择餐类" clearable style="width: 100%">
11
           <el-select v-model="formData.mealType" placeholder="请选择餐类" clearable style="width: 100%">
12
-            <el-option v-for="item in mealTypeOptions" :key="item.mealId" :label="item.mealName" :value="item.mealId" />
12
+            <el-option v-for="item in meal_type" :key="item.value" :label="item.label" :value="item.value" />
13
           </el-select>
13
           </el-select>
14
         </el-form-item>
14
         </el-form-item>
15
         <el-form-item label="状态" prop="status">
15
         <el-form-item label="状态" prop="status">
@@ -82,6 +82,8 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
82
 // 国际化
82
 // 国际化
83
 const { t } = useI18n();
83
 const { t } = useI18n();
84
 
84
 
85
+const { meal_type } = toRefs<any>(proxy?.useDict('meal_type'));
86
+
85
 // 对话框
87
 // 对话框
86
 const dialog = reactive<DialogOption>({
88
 const dialog = reactive<DialogOption>({
87
   visible: false,
89
   visible: false,
@@ -99,7 +101,7 @@ const formRef = ref<ElFormInstance>();
99
 const formData = ref<XfDiscountForm>({
101
 const formData = ref<XfDiscountForm>({
100
   discountId: undefined,
102
   discountId: undefined,
101
   cardType: undefined,
103
   cardType: undefined,
102
-  mealType: undefined,
104
+  mealType: '',
103
   rateType: '0',
105
   rateType: '0',
104
   oneRate: undefined,
106
   oneRate: undefined,
105
   twoRate: undefined,
107
   twoRate: undefined,
@@ -185,14 +187,14 @@ const submitForm = async () => {
185
 // const mealTypeOptions = await getAllPtMealtype();
187
 // const mealTypeOptions = await getAllPtMealtype();
186
 
188
 
187
 const cardTypeOptions = ref<PtCardTypeVO[]>([]);
189
 const cardTypeOptions = ref<PtCardTypeVO[]>([]);
188
-const mealTypeOptions = ref<PtMealTypeVO[]>([]);
190
+// const mealTypeOptions = ref<PtMealTypeVO[]>([]);
189
 /** 初始化 */
191
 /** 初始化 */
190
 onMounted(() => {
192
 onMounted(() => {
191
   listUsePtCardType().then((res) => {
193
   listUsePtCardType().then((res) => {
192
     cardTypeOptions.value = res.data;
194
     cardTypeOptions.value = res.data;
193
   });
195
   });
194
-  getAllPtMealType().then((res) => {
196
+  /* getAllPtMealType().then((res) => {
195
     mealTypeOptions.value = res.data;
197
     mealTypeOptions.value = res.data;
196
-  });
198
+  }); */
197
 });
199
 });
198
 </script>
200
 </script>

+ 6 - 1
src/views/consumption/xfDiscount/index.vue

@@ -43,7 +43,11 @@
43
         <el-table-column type="selection" width="55" align="center" />
43
         <el-table-column type="selection" width="55" align="center" />
44
         <el-table-column v-if="false" label="折扣Id,主键" align="center" prop="discountId" />
44
         <el-table-column v-if="false" label="折扣Id,主键" align="center" prop="discountId" />
45
         <el-table-column v-if="columns[0].visible" label="卡类" align="center" prop="cardTypeName" />
45
         <el-table-column v-if="columns[0].visible" label="卡类" align="center" prop="cardTypeName" />
46
-        <el-table-column v-if="columns[1].visible" label="餐类" align="center" prop="mealTypeName" />
46
+        <el-table-column v-if="columns[1].visible" label="餐类" align="center" prop="mealType">
47
+          <template #default="scope">
48
+            <dict-tag :options="meal_type" :value="scope.row.mealType" />
49
+          </template>
50
+        </el-table-column>
47
         <el-table-column v-if="columns[8].visible" label="启用状态" align="center" prop="status">
51
         <el-table-column v-if="columns[8].visible" label="启用状态" align="center" prop="status">
48
           <template #default="scope">
52
           <template #default="scope">
49
             <dict-tag :options="useableStatus" :value="scope.row.status" />
53
             <dict-tag :options="useableStatus" :value="scope.row.status" />
@@ -100,6 +104,7 @@ import router from '@/router';
100
 defineOptions({ name: 'XfDiscount' });
104
 defineOptions({ name: 'XfDiscount' });
101
 
105
 
102
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
106
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
107
+const { meal_type } = toRefs<any>(proxy?.useDict('meal_type'));
103
 // 是否加载遮罩层
108
 // 是否加载遮罩层
104
 const loading = ref(true);
109
 const loading = ref(true);
105
 // 是否显示查询项
110
 // 是否显示查询项