|  |  | 
 |  |  |     @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> | 
 |  |  | 
 |  |  |       // 表单数据 | 
 |  |  |       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' }] | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |   }, | 
 |  |  | 
 |  |  |       api: '/business/category', | 
 |  |  |       'field.id': 'id' | 
 |  |  |     }) | 
 |  |  |   }, | 
 |  |  |   methods: { | 
 |  |  |     normalizeOptions (node) { | 
 |  |  |       if (node.childList && !node.childList.length) { | 
 |  |  |         // 去掉children=[]的children属性 | 
 |  |  |         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(this.categorys) | 
 |  |  |       this.visible = true | 
 |  |  |       this.form = { | 
 |  |  |         id: null, | 
 |  |  |         name: '', | 
 |  |  |         type: '', | 
 |  |  |         remark: '', | 
 |  |  |         categoryList: [], | 
 |  |  |         sortnum: null, | 
 |  |  |         parentId: parentId | 
 |  |  |       } | 
 |  |  |       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> |