From f5ec875275b0a783186a147e780bc03d96a91f57 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 08 四月 2025 11:24:13 +0800
Subject: [PATCH] 代码初始化

---
 admin/src/components/business/OperaCategoryWindow.vue |  144 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 97 insertions(+), 47 deletions(-)

diff --git a/admin/src/components/business/OperaCategoryWindow.vue b/admin/src/components/business/OperaCategoryWindow.vue
index d119f6d..181d604 100644
--- a/admin/src/components/business/OperaCategoryWindow.vue
+++ b/admin/src/components/business/OperaCategoryWindow.vue
@@ -6,47 +6,22 @@
     @confirm="confirm"
   >
     <el-form :model="form" ref="form" :rules="rules">
-      <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
-        <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
-        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
-        <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
-      </el-form-item>
-      <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
-        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
-      </el-form-item>
-      <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
-        <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
-      </el-form-item>
       <el-form-item label="鍚嶇О" prop="name">
         <el-input v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/>
       </el-form-item>
-      <el-form-item label="澶囨敞" prop="remark">
-        <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
-        <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
+      <el-form-item label="閫夋嫨鐖剁骇" prop="parentId">
+        <el-cascader  v-model="form.categoryList" :options="categorys" @change="handleChangeCategory" :show-all-levels="false"
+                      clearable filterable :props="categoryprops"  >
+          <template slot-scope="{ node, data }">
+            <span>{{ data.name }}</span> <!-- 鑷畾涔夋樉绀哄唴瀹� -->
+          </template>
+        </el-cascader>
       </el-form-item>
       <el-form-item label="鎺掑簭鐮�" prop="sortnum">
-        <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+        <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜锛堝崌搴忥級" v-trim/>
       </el-form-item>
-      <el-form-item label="鍥炬爣" prop="imgurl">
-        <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ浘鏍�" v-trim/>
-      </el-form-item>
-      <el-form-item label="绫诲瀷 0SHE浼ゅ绫诲瀷 1瀹夊叏椋庨櫓浼ゅ绫诲瀷 2瀹夊叏椋庨櫓鍙戠敓鍦扮偣 3DCA浣嶇疆 4DCA闂 5SHE椋庨櫓鍦扮偣" prop="type">
-        <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� 0SHE浼ゅ绫诲瀷 1瀹夊叏椋庨櫓浼ゅ绫诲瀷 2瀹夊叏椋庨櫓鍙戠敓鍦扮偣 3DCA浣嶇疆 4DCA闂 5SHE椋庨櫓鍦扮偣" v-trim/>
-      </el-form-item>
-      <el-form-item label="鐖剁骇缂栫爜锛堣嚜鍏宠仈锛�" prop="parentId">
-        <el-input v-model="form.parentId" placeholder="璇疯緭鍏ョ埗绾х紪鐮侊紙鑷叧鑱旓級" v-trim/>
-      </el-form-item>
-      <el-form-item label="鍚嶇О璺緞" prop="namePath">
-        <el-input v-model="form.namePath" placeholder="璇疯緭鍏ュ悕绉拌矾寰�" v-trim/>
-      </el-form-item>
-      <el-form-item label="缂栫爜璺緞" prop="idPath">
-        <el-input v-model="form.idPath" placeholder="璇疯緭鍏ョ紪鐮佽矾寰�" v-trim/>
+      <el-form-item label="澶囨敞" prop="remark">
+        <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�" v-trim/>
       </el-form-item>
     </el-form>
   </GlobalWindow>
@@ -64,23 +39,23 @@
       // 琛ㄥ崟鏁版嵁
       form: {
         id: null,
-        creator: '',
-        createDate: '',
-        editor: '',
-        editDate: '',
-        isdeleted: '',
         name: '',
-        remark: '',
-        status: '',
-        sortnum: '',
-        imgurl: '',
         type: '',
-        parentId: '',
-        namePath: '',
-        idPath: ''
+        remark: '',
+        categoryList: [],
+        sortnum: null,
+        parentId: null
       },
+      categoryprops: {
+        label: 'name',
+        value: 'id',
+        checkStrictly: true,
+        lazyLoad: this.lazyLoad
+      },
+      categorys: [],
       // 楠岃瘉瑙勫垯
       rules: {
+        name: [{ required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }]
       }
     }
   },
@@ -89,6 +64,81 @@
       api: '/business/category',
       'field.id': 'id'
     })
+  },
+  methods: {
+    handleChangeCategory (value) {
+      if (this.form.categoryList && this.form.categoryList.length >= 1) {
+        this.form.parentId = this.form.categoryList[this.form.categoryList.length - 1]
+      }
+    },
+    getTreeData (data) {
+      if (!data) {
+        return data
+      }
+      for (let i = 0; i < data.length; i++) {
+        console.log(data)
+        if (data[i].childList) {
+          if (data[i].childList.length < 1) {
+            data[i].childList = [] // children鑻ヤ负绌烘暟缁勶紝鍒欏皢children璁句负undefined
+            data[i].childern = [] // children鑻ヤ负绌烘暟缁勶紝鍒欏皢children璁句负undefined
+          } else {
+            this.getTreeData(data[i].childList) // children鑻ヤ笉涓虹┖鏁扮粍锛屽垯缁х画 閫掑綊璋冪敤 鏈柟娉�
+          }
+        }
+      }
+      return data
+    },
+    open (title, target, categorys, categoryType, parentIdPath) {
+      this.title = title
+      this.categorys = categorys || []
+      this.categorys = this.getTreeData(this.categorys)
+      console.log(this.categorys)
+      this.visible = true
+      this.form = {
+        id: null,
+        name: '',
+        type: '',
+        remark: '',
+        categoryList: [],
+        sortnum: null,
+        parentId: null
+      }
+      this.form.type = categoryType
+      // 鏂板缓
+      var that = this
+      if (target == null) {
+        this.$nextTick(() => {
+          this.$refs.form.resetFields()
+          this.form[this.configData['field.id']] = null
+          this.form.categoryList = []
+          if (parentIdPath && parentIdPath != null) {
+            var array = parentIdPath.split('/')
+            array.forEach(item => {
+              if (item && item != null && item !== '') {
+                that.form.categoryList.push(parseInt(item))
+              }
+            })
+            that.handleChangeCategory()
+          }
+        })
+        return
+      }
+      // 缂栬緫
+      this.$nextTick(() => {
+        for (const key in this.form) {
+          this.form[key] = target[key]
+        }
+        this.form.categoryList = []
+        if (target.parentId && target.idParentPath) {
+          var array = target.idParentPath.split('/')
+          array.forEach(item => {
+            if (item && item != null && item !== '') {
+              that.form.categoryList.push(parseInt(item))
+            }
+          })
+        }
+      })
+    }
   }
 }
 </script>

--
Gitblit v1.9.3