From 30e858fa504b268b9b436afca0a1259cf6e8c488 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 19 八月 2025 11:01:40 +0800
Subject: [PATCH] 优化
---
admin/src/components/business/OperaCategoryWindow.vue | 166 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 119 insertions(+), 47 deletions(-)
diff --git a/admin/src/components/business/OperaCategoryWindow.vue b/admin/src/components/business/OperaCategoryWindow.vue
index d119f6d..e3f47e0 100644
--- a/admin/src/components/business/OperaCategoryWindow.vue
+++ b/admin/src/components/business/OperaCategoryWindow.vue
@@ -6,47 +6,31 @@
@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>-->
+ <treeselect
+ v-model="form.parentId"
+ placeholder="璇烽�夋嫨"
+ :options="categorys"
+ :normalizer="normalizeOptions"
+ :default-expand-level="1"
+ noChildrenText="娌℃湁瀛愰�夐」"
+ noOptionsText="娌℃湁鍙�夐」"
+ noResultsText="娌℃湁鍖归厤鐨勭粨鏋�" />
</el-form-item>
<el-form-item label="鎺掑簭鐮�" prop="sortnum">
- <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
+ <el-input v-model="form.sortnum" type="number" 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 +48,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 +73,94 @@
api: '/business/category',
'field.id': 'id'
})
+ },
+ methods: {
+ normalizeOptions (node) {
+ if (node.childList && !node.childList.length) {
+ // 鍘绘帀children=[]鐨刢hildren灞炴��
+ delete node.childList
+ }
+ return {
+ id: node.id,
+ label: node.name,
+ children: node.childList
+ }
+ },
+ handleChangeCategory (value) {
+ this.form.parentId = null
+ 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, parentId) {
+ this.title = title
+ this.categorys = JSON.parse(JSON.stringify(categorys||[]));
+ // this.categorys = this.getTreeData(this.categorys)
+ console.log(parentId)
+ this.visible = true
+ this.form = {
+ id: null,
+ name: '',
+ type: '',
+ remark: '',
+ categoryList: [],
+ sortnum: null,
+ parentId: parentId || null
+ }
+ this.form.type = categoryType
+ // 鏂板缓
+ var that = this
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form.parentId = parentId
+ 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