From a1d7e81859f554f3a53680cc35f0f49bf1f77098 Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期四, 14 五月 2026 14:37:02 +0800
Subject: [PATCH] 导入项目

---
 src/views/iot/rule/scene/form/sections/BasicInfoSection.vue |   86 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 deletions(-)

diff --git a/src/views/iot/rule/scene/form/sections/BasicInfoSection.vue b/src/views/iot/rule/scene/form/sections/BasicInfoSection.vue
new file mode 100644
index 0000000..4e77053
--- /dev/null
+++ b/src/views/iot/rule/scene/form/sections/BasicInfoSection.vue
@@ -0,0 +1,86 @@
+<!-- 鍩虹淇℃伅閰嶇疆缁勪欢 -->
+<template>
+  <el-card class="border border-[var(--el-border-color-light)] rounded-8px mb-10px" shadow="never">
+    <template #header>
+      <div class="flex items-center justify-between">
+        <div class="flex items-center gap-8px">
+          <Icon icon="ep:info-filled" class="text-[var(--el-color-primary)] text-18px" />
+          <span class="text-16px font-600 text-[var(--el-text-color-primary)]">鍩虹淇℃伅</span>
+        </div>
+        <div class="flex items-center gap-8px">
+          <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="formData.status" />
+        </div>
+      </div>
+    </template>
+
+    <div class="p-0">
+      <el-row :gutter="24" class="mb-24px">
+        <el-col :span="12">
+          <el-form-item label="鍦烘櫙鍚嶇О" prop="name" required>
+            <el-input
+              v-model="formData.name"
+              placeholder="璇疯緭鍏ュ満鏅悕绉�"
+              maxlength="50"
+              show-word-limit
+              clearable
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="鍦烘櫙鐘舵��" prop="status" required>
+            <el-radio-group v-model="formData.status">
+              <el-radio
+                v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
+                :key="dict.value"
+                :label="dict.value"
+              >
+                {{ dict.label }}
+              </el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-form-item label="鍦烘櫙鎻忚堪" prop="description">
+        <el-input
+          v-model="formData.description"
+          type="textarea"
+          placeholder="璇疯緭鍏ュ満鏅弿杩帮紙鍙�夛級"
+          :rows="3"
+          maxlength="200"
+          show-word-limit
+          resize="none"
+        />
+      </el-form-item>
+    </div>
+  </el-card>
+</template>
+
+<script setup lang="ts">
+import { useVModel } from '@vueuse/core'
+import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
+import type { IotSceneRule } from '@/api/iot/rule/scene'
+
+/** 鍩虹淇℃伅閰嶇疆缁勪欢 */
+defineOptions({ name: 'BasicInfoSection' })
+
+const props = defineProps<{
+  modelValue: IotSceneRule
+  rules?: any
+}>()
+
+const emit = defineEmits<{
+  (e: 'update:modelValue', value: IotSceneRule): void
+}>()
+
+const formData = useVModel(props, 'modelValue', emit) // 琛ㄥ崟鏁版嵁
+</script>
+
+<style scoped>
+:deep(.el-form-item) {
+  margin-bottom: 20px;
+}
+
+:deep(.el-form-item:last-child) {
+  margin-bottom: 0;
+}
+</style>

--
Gitblit v1.8.0