自己写的,在项目中测试了,能用,希望还能完善