Ver Fonte

添加禁用启用

lifanagju_citu há 2 semanas atrás
pai
commit
a74e2f92eb

+ 18 - 3
src/views/menduner/system/talentMap/hotel/HotelForm.vue

@@ -25,6 +25,17 @@
       <el-form-item label="定位级别(英)" prop="positioning_level_en">
         <el-input v-model="formData.positioning_level_en" placeholder="请输入定位级别(英)" />
       </el-form-item>
+      <el-form-item label="标签状态" prop="status">
+        <el-radio-group v-model="formData.status">
+          <el-radio
+            v-for="dict in statusOptions"
+            :key="dict.value"
+            :value="dict.value"
+          >
+            {{ dict.label }}
+          </el-radio>
+        </el-radio-group>
+      </el-form-item>
     </el-form>
     <template #footer>
       <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
@@ -56,9 +67,11 @@ const formData = ref({
   brand_name_zh: undefined,
   brand_name_en: undefined,
   positioning_level_zh: undefined,
-  positioning_level_en: undefined
+  positioning_level_en: undefined,
+  status: 'active'
 })
 const formRules = reactive({
+  status: [{ required: true, message: '酒店状态不能为空', trigger: 'blur' }],
   group_name_zh: [{ required: true, message: '集团名称不能为空', trigger: 'blur' }],
   group_name_en: [{ required: true, message: '集团英文名称不能为空', trigger: 'blur' }],
   brand_name_zh: [{ required: true, message: '品牌名称不能为空', trigger: 'blur' }],
@@ -68,7 +81,7 @@ const formRules = reactive({
 })
 
 /** 打开弹窗 */
-const valueKeys = ['group_name_zh', 'group_name_en', 'brand_name_zh', 'brand_name_en', 'positioning_level_zh', 'positioning_level_en']
+const valueKeys = ['group_name_zh', 'group_name_en', 'brand_name_zh', 'brand_name_en', 'positioning_level_zh', 'positioning_level_en', 'status']
 const editItemData = ref({})
 const open = async (type, data) => {
   editItemData.value = {}
@@ -81,6 +94,7 @@ const open = async (type, data) => {
   if (data && Object.keys(data).length) {
     formData.value = { ...data }
     valueKeys.forEach(key => editItemData.value[key] = data[key])
+    if (data.status === 'disable') formData.value.status = 'inactive'
   }
 }
 defineExpose({ open }) // 提供 open 方法,用于打开弹窗
@@ -121,7 +135,8 @@ const submitForm = async () => {
 const resetForm = () => {
   Object.keys(formData.value).forEach(key => {
     formData.value[key] = undefined
-  })
+  }),
+  formData.value.status = 'active'
   formRef.value?.resetFields()
 }
 </script>

+ 7 - 0
src/views/menduner/system/talentMap/hotel/index.vue

@@ -58,6 +58,13 @@
       <el-table-column label="品牌英文名称" align="center" prop="brand_name_en" :show-overflow-tooltip="true" />
       <el-table-column label="定位级别中文名称" align="center" prop="positioning_level_zh" />
       <el-table-column label="定位级别英文名称" align="center" prop="positioning_level_en" :show-overflow-tooltip="true" />
+      <el-table-column label="酒店状态" align="center" prop="status">
+        <template #default="scope">
+          <el-tag :type="scope.row.status === 'active' ? 'success' : 'danger'">
+            {{ scope.row.status === 'active' ? '已启用' : '已禁用' }}
+          </el-tag>
+        </template>
+      </el-table-column>
       <!-- <el-table-column label="创建时间" align="center" prop="created_at" width="180" /> -->
       <el-table-column label="更新时间" align="center" prop="updated_at" width="180" />
       <el-table-column label="操作" align="center">