HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

HBuilderX历史版本下载地址

HBuilderX历史版本

百度网盘链接: 网盘访问地址

提取码: bmnh

其它问题,请另开新帖说明。不要在此帖子下,反馈无关的问题。

百度网盘链接: 网盘访问地址

提取码: bmnh

其它问题,请另开新帖说明。不要在此帖子下,反馈无关的问题。

石家庄地区餐饮app 食堂点餐 自助点餐app制作

1石家庄地区餐饮 食堂点餐 自助点餐app制作
5顾客可以自助扫码点餐,
1就餐后线上支付或者线下支付
0服务员服务点餐,
3即时处理订单信息
3借助各类营销工具
1吸引更多顾客在线点餐或到店消费
0扫码买单,提高收银效率,提升消费体验
1打印二维码台卡,放置在门店收银台,
1顾客使用微信或支付宝扫一扫即可买单
9可成品 可定制
电话首写数字

继续阅读 »

1石家庄地区餐饮 食堂点餐 自助点餐app制作
5顾客可以自助扫码点餐,
1就餐后线上支付或者线下支付
0服务员服务点餐,
3即时处理订单信息
3借助各类营销工具
1吸引更多顾客在线点餐或到店消费
0扫码买单,提高收银效率,提升消费体验
1打印二维码台卡,放置在门店收银台,
1顾客使用微信或支付宝扫一扫即可买单
9可成品 可定制
电话首写数字

收起阅读 »

APP定制开发、APP项目定制开发专业项目开发

uniapp模板 uniapp 移动APP

APP定制开发、APP项目定制开发专业项目开发
APP项目定制开发,UI设计图定制开发
一个全新的APP在定制开发的时候,一定要明确几点;
1.需求明确,明确功能需求以及大概的工期和报价;
2.原型图和UI设计图确认;

  1. 前端切图代码编写;
  2. 后台搭建,填充相关内容,进行测试;
  3. 上线前,把数据清空然后填充相关所有的内容,进行制作;
  4. 安排上线。
继续阅读 »

APP定制开发、APP项目定制开发专业项目开发
APP项目定制开发,UI设计图定制开发
一个全新的APP在定制开发的时候,一定要明确几点;
1.需求明确,明确功能需求以及大概的工期和报价;
2.原型图和UI设计图确认;

  1. 前端切图代码编写;
  2. 后台搭建,填充相关内容,进行测试;
  3. 上线前,把数据清空然后填充相关所有的内容,进行制作;
  4. 安排上线。
收起阅读 »

最新完整的框架在哪下载?

Git

最新完整的框架在哪下载?

最新完整的框架在哪下载?

uniapp中使用全景图片查看器,查看全景VR图片

uniapp

全景图片查看器,有了Three.js的支持,已经是很简单的东西,网络上相关的插件有很多,这里推荐几个:Panolens.jsPano.jsphoto-sphere-viewer.js,这些插件都是基于Three.js,我这次是用的是photo-sphere-viewer.js。
但是使用这些插件,都是H5端的,uniapp中不能直接用。但uniapp有个组件web-view,可以引入内部或外部的HTML,文档传送:web-view。那这样问题思路就很清晰了,写一个HTML,使用查看器插件,再在uniapp项目中使用web-view组件,将本地的HTML导入。。。很简单吧

而且,查看器的使用也是巨简单,


引入两个js文件,


写个放插件的div,js中new一个插件对象,放上全景图片路径,完事儿~~其他具体的参数请去熟读并背诵文档

接下来就是在uniapp项目中引入,阅读web-view文档,我们能看到:

说明HTML文件不是随便放的,有特定的文件路径

uni页面使用web-view:


这里弄好了,简单的demo就完成了,就可以去调试运行了

经测试,我的demo在H5端、模拟器、真机都可以运行使用,小程序端还有点兼容问题,
运行效果:由于查看器是H5的插件,所以demo效果在H5端调试效果最好,图片清晰度、运行速度以及查看器自带的一些功能都是H5端效果最好

总结就是:::①请熟读并背诵文档,②动手实操

继续阅读 »

全景图片查看器,有了Three.js的支持,已经是很简单的东西,网络上相关的插件有很多,这里推荐几个:Panolens.jsPano.jsphoto-sphere-viewer.js,这些插件都是基于Three.js,我这次是用的是photo-sphere-viewer.js。
但是使用这些插件,都是H5端的,uniapp中不能直接用。但uniapp有个组件web-view,可以引入内部或外部的HTML,文档传送:web-view。那这样问题思路就很清晰了,写一个HTML,使用查看器插件,再在uniapp项目中使用web-view组件,将本地的HTML导入。。。很简单吧

而且,查看器的使用也是巨简单,


引入两个js文件,


写个放插件的div,js中new一个插件对象,放上全景图片路径,完事儿~~其他具体的参数请去熟读并背诵文档

接下来就是在uniapp项目中引入,阅读web-view文档,我们能看到:

说明HTML文件不是随便放的,有特定的文件路径

uni页面使用web-view:


这里弄好了,简单的demo就完成了,就可以去调试运行了

经测试,我的demo在H5端、模拟器、真机都可以运行使用,小程序端还有点兼容问题,
运行效果:由于查看器是H5的插件,所以demo效果在H5端调试效果最好,图片清晰度、运行速度以及查看器自带的一些功能都是H5端效果最好

总结就是:::①请熟读并背诵文档,②动手实操

收起阅读 »

聊天(IM)界面发消息滚动到底部

今天有小伙伴问我,制作(IM)聊天时,发送的聊天消息不能自动滚动,通过一些了算法,随后发现有一些问题,不是很好,问我有没有相关的好的方法。嗯嗯嗯,当然,我这确实有一个比较好的方法。具体如下
原理 利用 scroll-view的scroll-into-view属性
效果图 见附件
具体代码如下

<template>  
    <view class='test'>  
        <scroll-view :scroll-into-view="viewIndex" scroll-view scroll-with-animation='true' :style="{'box-sizing':'border-box', 'padding':'20rpx','height':'200rpx'}"  
         scroll-y="true" class="scroll-Y">  
            <!-- 具体聊天内容 -->  
            <view v-for="(c,i) in chatList" :key="i">  
                {{c}}  
            </view>  

            <!-- 可滚动到底部的view标签 -->  
            <view :id="'im_'+chatList.length" class="bottom"></view>  
        </scroll-view>  
        <view>  
            <button @click="add">添加一行内容</button>  
        </view>  
    </view>  
</template>  
<!--  页面方法 -->  
<script>  
    export default {  
        data() {  
            return {  
                viewIndex: '',  
                chatList: ['你好', '很好'], // 模拟消息记录 为演示滚动效果,此处只有简单的消息信息  
            }  
        },  
        methods: {  
            add() {  
                //模拟发消息添加一条记录  
                this.chatList[this.chatList.length] = "你添加了一行内容" + this.chatList.length;  

                this.viewIndex = "";  
                //设置viewIndex值,使聊天滚动到底部  
                this.$nextTick(() => {  
                    this.viewIndex = "im_" + this.chatList.length;  

                })  
            }  
        },  
    }  
</script>  
<style scoped>  
    .bottom {  
        width: 100vw;  
        height: 20rpx;  
    }  
</style>  
继续阅读 »

今天有小伙伴问我,制作(IM)聊天时,发送的聊天消息不能自动滚动,通过一些了算法,随后发现有一些问题,不是很好,问我有没有相关的好的方法。嗯嗯嗯,当然,我这确实有一个比较好的方法。具体如下
原理 利用 scroll-view的scroll-into-view属性
效果图 见附件
具体代码如下

<template>  
    <view class='test'>  
        <scroll-view :scroll-into-view="viewIndex" scroll-view scroll-with-animation='true' :style="{'box-sizing':'border-box', 'padding':'20rpx','height':'200rpx'}"  
         scroll-y="true" class="scroll-Y">  
            <!-- 具体聊天内容 -->  
            <view v-for="(c,i) in chatList" :key="i">  
                {{c}}  
            </view>  

            <!-- 可滚动到底部的view标签 -->  
            <view :id="'im_'+chatList.length" class="bottom"></view>  
        </scroll-view>  
        <view>  
            <button @click="add">添加一行内容</button>  
        </view>  
    </view>  
</template>  
<!--  页面方法 -->  
<script>  
    export default {  
        data() {  
            return {  
                viewIndex: '',  
                chatList: ['你好', '很好'], // 模拟消息记录 为演示滚动效果,此处只有简单的消息信息  
            }  
        },  
        methods: {  
            add() {  
                //模拟发消息添加一条记录  
                this.chatList[this.chatList.length] = "你添加了一行内容" + this.chatList.length;  

                this.viewIndex = "";  
                //设置viewIndex值,使聊天滚动到底部  
                this.$nextTick(() => {  
                    this.viewIndex = "im_" + this.chatList.length;  

                })  
            }  
        },  
    }  
</script>  
<style scoped>  
    .bottom {  
        width: 100vw;  
        height: 20rpx;  
    }  
</style>  
收起阅读 »

uniapp使用mockjs模拟数据,支持H5、微信小程序、APP

1.安装node服务,我采用的是koa2脚手架:
npm install -g koa-generator (全局安装一次就好)

2.新建项目(cd到某个盘符或者桌面创建)
koa2 -e 项目名称

3.npm install

4.npm install koa2-cors(配置允许本地跨域)

5.npm install mockjs --sava(安装mockjs)

6.在app.js文件里引入如下
const cors = require('koa2-cors')
app.use(cors()) //注意书写位置(模板写哪里就写哪里)

7、npm run dev (koa2端口号默认是3000)请用Network地址

8、记得在nodeServer执行npm install

继续阅读 »

1.安装node服务,我采用的是koa2脚手架:
npm install -g koa-generator (全局安装一次就好)

2.新建项目(cd到某个盘符或者桌面创建)
koa2 -e 项目名称

3.npm install

4.npm install koa2-cors(配置允许本地跨域)

5.npm install mockjs --sava(安装mockjs)

6.在app.js文件里引入如下
const cors = require('koa2-cors')
app.use(cors()) //注意书写位置(模板写哪里就写哪里)

7、npm run dev (koa2端口号默认是3000)请用Network地址

8、记得在nodeServer执行npm install

收起阅读 »

pda的广播扫码uni-app

一直困惑在uni-app中实现pda的广播扫码功能,今天终于找到了一个解决方案。
方案就是做一个全局监听,只引入一次,来防止很多页面都引入了扫码的组件,造成多次扫描,数据出现多次
知识点:全局监听官网的全局监听地址
uni.$emit:触发全局的自定事件。附加参数都会传给监听器回调。
uni.$on:监听全局的自定义事件。事件可以由 uni.$emit 触发,回调函数会接收所有传入事件触发函数的额外参数
uni.$off:移除全局自定义事件监听器。

一定要记得移除全局事件,不燃就会出现多次扫描

一:在你的pda中要是设置广播输出:模式是键盘方式输出
方法:设置---扫描---Default:把里面的键盘方式输出取消掉,就会看到下面的广播动作广播数据标签(这两个很重要,在后面会用到)
上图:

二:在你的uni-app项目里 新建一个公共组件 就叫 scan-code 吧,放到公共组件components中,目录:components/scan-code/scan-code.vue
这里就用到了广播动作广播数据标签
filter.addAction("android.intent.ACTION_DECODE_DATA")
intent.getStringExtra("barcode_string")
代码里的filter.addAction里换成你的广播动作,intent.getStringExtra(里换成你的广播标签
代码如下:

<template>  
    <view class="content"></view>  
</template>  

<script>  
var main,receiver,filter;    
var _codeQueryTag = false;    
export default {  
    data() {  
        return {  
            scanCode: ''  
        }  
    },  
    created: function (option) {  
        this.initScan()  
        this.startScan();    
    },    
    onHide:function(){    
        this.stopScan();    
    },  
    destroyed:function(){    
        /*页面退出时一定要卸载监听,否则下次进来时会重复,造成扫一次出2个以上的结果*/    
        this.stopScan();    
    },    
    methods: {  
        initScan() {  
            let _this = this;  
            main = plus.android.runtimeMainActivity();//获取activity  
            var IntentFilter = plus.android.importClass('android.content.IntentFilter');   
            filter = new IntentFilter();    
            filter.addAction("android.intent.ACTION_DECODE_DATA"); // 换你的广播动作  
            receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver',{  
            onReceive : function(context, intent) {  
                plus.android.importClass(intent);     
                let code = intent.getStringExtra("barcode_string");// 换你的广播标签  
                _this.queryCode(code);    
            }});    
        },    
        startScan(){    
            main.registerReceiver(receiver,filter);  
        },    
        stopScan(){  
            main.unregisterReceiver(receiver);    
        },    
        queryCode: function(code){  
            //防重复  
            if(_codeQueryTag)return false;    
            _codeQueryTag = true;    
            setTimeout(function(){    
                _codeQueryTag = false;    
            },150);  
            var id = code  
            console.log('id:', id)  
            uni.$emit('scancodedate',{code:id})  
        }  
    }  
}  
</script>  

<style>  
    page {  
        background-color: #efeff4;  
    }  
    .content {  
        text-align: center;  
    }  
</style>

三:页面引用,只引用一次就好,我是index.vue 引用的,我的app的其他功能都是在这个页面链接走的
直接上代码:
切记:首页往各个子页面跳转的时候 移除监听事件uni.$off('scancodedate'),要不首页的监听会一直存在,就会出现首页这个扫码
uni.navigateTo({ 之前、之前、之前 uni.$off('scancodedate')

<template>  
    <view>  
        <view>你的页面内容</view>  
        <scan-code></scan-code>  
    </view>  
</template>  

<script>  
import scanCode from "@/components/scan-code/scan-code.vue";  
export default {  
    components: { scanCode },  
    data() {  
        return {}  
    }  
    onShow: function() {  
        var _this = this  
        uni.$off('scancodedate') // 每次进来先 移除全局自定义事件监听器  
        uni.$on('scancodedate',function(data){  
            console.log('你想要的code:', data.code)  
        })  
    }  
} 

其他的页面引用方法:不需要再次引入scanCode
因为其他的页面都是从首页跳转过来的,所以其他的页面需要
onUnload() {
// 移除监听事件
uni.$off('scancodedate')
}

代码如下:

onLoad() {  
   var _this = this  
   uni.$on('scancodedate',function(data){  
        // _this 这里面的方法用这个 _this.code(data.code)  
    console.log('你想要的code:', data.code)  
   })  
},  
onUnload() {  
   // 移除监听事件      
   uni.$off('scancodedate')  
}  

如果这个页面还有详细页面需要跳转,切记 uni.navigateTo({ 之前、之前、之前 uni.$off('scancodedate')

到此所有的代码就完事了。

重点就是全局监听,真机测试的时候在控制台可以打印出你的code和routes,看下是否每次的扫描只是执行的本页面(路由)下的程序。

继续阅读 »

一直困惑在uni-app中实现pda的广播扫码功能,今天终于找到了一个解决方案。
方案就是做一个全局监听,只引入一次,来防止很多页面都引入了扫码的组件,造成多次扫描,数据出现多次
知识点:全局监听官网的全局监听地址
uni.$emit:触发全局的自定事件。附加参数都会传给监听器回调。
uni.$on:监听全局的自定义事件。事件可以由 uni.$emit 触发,回调函数会接收所有传入事件触发函数的额外参数
uni.$off:移除全局自定义事件监听器。

一定要记得移除全局事件,不燃就会出现多次扫描

一:在你的pda中要是设置广播输出:模式是键盘方式输出
方法:设置---扫描---Default:把里面的键盘方式输出取消掉,就会看到下面的广播动作广播数据标签(这两个很重要,在后面会用到)
上图:

二:在你的uni-app项目里 新建一个公共组件 就叫 scan-code 吧,放到公共组件components中,目录:components/scan-code/scan-code.vue
这里就用到了广播动作广播数据标签
filter.addAction("android.intent.ACTION_DECODE_DATA")
intent.getStringExtra("barcode_string")
代码里的filter.addAction里换成你的广播动作,intent.getStringExtra(里换成你的广播标签
代码如下:

<template>  
    <view class="content"></view>  
</template>  

<script>  
var main,receiver,filter;    
var _codeQueryTag = false;    
export default {  
    data() {  
        return {  
            scanCode: ''  
        }  
    },  
    created: function (option) {  
        this.initScan()  
        this.startScan();    
    },    
    onHide:function(){    
        this.stopScan();    
    },  
    destroyed:function(){    
        /*页面退出时一定要卸载监听,否则下次进来时会重复,造成扫一次出2个以上的结果*/    
        this.stopScan();    
    },    
    methods: {  
        initScan() {  
            let _this = this;  
            main = plus.android.runtimeMainActivity();//获取activity  
            var IntentFilter = plus.android.importClass('android.content.IntentFilter');   
            filter = new IntentFilter();    
            filter.addAction("android.intent.ACTION_DECODE_DATA"); // 换你的广播动作  
            receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver',{  
            onReceive : function(context, intent) {  
                plus.android.importClass(intent);     
                let code = intent.getStringExtra("barcode_string");// 换你的广播标签  
                _this.queryCode(code);    
            }});    
        },    
        startScan(){    
            main.registerReceiver(receiver,filter);  
        },    
        stopScan(){  
            main.unregisterReceiver(receiver);    
        },    
        queryCode: function(code){  
            //防重复  
            if(_codeQueryTag)return false;    
            _codeQueryTag = true;    
            setTimeout(function(){    
                _codeQueryTag = false;    
            },150);  
            var id = code  
            console.log('id:', id)  
            uni.$emit('scancodedate',{code:id})  
        }  
    }  
}  
</script>  

<style>  
    page {  
        background-color: #efeff4;  
    }  
    .content {  
        text-align: center;  
    }  
</style>

三:页面引用,只引用一次就好,我是index.vue 引用的,我的app的其他功能都是在这个页面链接走的
直接上代码:
切记:首页往各个子页面跳转的时候 移除监听事件uni.$off('scancodedate'),要不首页的监听会一直存在,就会出现首页这个扫码
uni.navigateTo({ 之前、之前、之前 uni.$off('scancodedate')

<template>  
    <view>  
        <view>你的页面内容</view>  
        <scan-code></scan-code>  
    </view>  
</template>  

<script>  
import scanCode from "@/components/scan-code/scan-code.vue";  
export default {  
    components: { scanCode },  
    data() {  
        return {}  
    }  
    onShow: function() {  
        var _this = this  
        uni.$off('scancodedate') // 每次进来先 移除全局自定义事件监听器  
        uni.$on('scancodedate',function(data){  
            console.log('你想要的code:', data.code)  
        })  
    }  
} 

其他的页面引用方法:不需要再次引入scanCode
因为其他的页面都是从首页跳转过来的,所以其他的页面需要
onUnload() {
// 移除监听事件
uni.$off('scancodedate')
}

代码如下:

onLoad() {  
   var _this = this  
   uni.$on('scancodedate',function(data){  
        // _this 这里面的方法用这个 _this.code(data.code)  
    console.log('你想要的code:', data.code)  
   })  
},  
onUnload() {  
   // 移除监听事件      
   uni.$off('scancodedate')  
}  

如果这个页面还有详细页面需要跳转,切记 uni.navigateTo({ 之前、之前、之前 uni.$off('scancodedate')

到此所有的代码就完事了。

重点就是全局监听,真机测试的时候在控制台可以打印出你的code和routes,看下是否每次的扫描只是执行的本页面(路由)下的程序。

收起阅读 »

专业团队开发uniapp、uniapp定制开发项目

移动APP uniapp

uniapp定制开发项目 uniapp项目开发 uniapp项目制定
要想做一个APP。首先肯定是要先了解清楚整体项目的流程,从南到北从西到东必须要走顺走通了,如果不通顺的情况下,无法确认APP的功能价格以及报价;
1.需求明确:需求明确后可以知道项目整体的大概周期时间,以及所需费用多少;

  1. UI设计图确认:UI设计图等于是一个原型图,原型图定的是颜色布局以及基本功能都有哪些;
  2. 前端切图代码编写;
  3. 后台搭建,填充项目内容以及项目内容的基本修改;
  4. 内部测试,修改完善细节;
  5. 测试完毕后,填充内容,安排时间绑定一级域名进行上线;
  6. 158-3211-5099(vx)
继续阅读 »

uniapp定制开发项目 uniapp项目开发 uniapp项目制定
要想做一个APP。首先肯定是要先了解清楚整体项目的流程,从南到北从西到东必须要走顺走通了,如果不通顺的情况下,无法确认APP的功能价格以及报价;
1.需求明确:需求明确后可以知道项目整体的大概周期时间,以及所需费用多少;

  1. UI设计图确认:UI设计图等于是一个原型图,原型图定的是颜色布局以及基本功能都有哪些;
  2. 前端切图代码编写;
  3. 后台搭建,填充项目内容以及项目内容的基本修改;
  4. 内部测试,修改完善细节;
  5. 测试完毕后,填充内容,安排时间绑定一级域名进行上线;
  6. 158-3211-5099(vx)
收起阅读 »

【伤心】为什么非要强制开发者使用 uni-AD 呢?没有选择权吗?

广告联盟

之前的版本没有问题,升级到 4 月底的版本后,打包使用自己的广告系统会直接在页面上提示广告配置错误。

为什么非要强制使用 uni-AD 呢? 不能给开发者选择的权利吗?

之前的版本没有问题,升级到 4 月底的版本后,打包使用自己的广告系统会直接在页面上提示广告配置错误。

为什么非要强制使用 uni-AD 呢? 不能给开发者选择的权利吗?

关于小程序项目导入Hbuilder X之后被识别为Web项目的问题

微信小程序

已经创建好的小程序项目导入Hbuilder X之后可能会出现小程序项目被识别成Web项目的问题。我推测,有可能是使用了NPM包之后引起的。经过测试,证实了推测。知道了原因,解决方法也很简单,只要将项目更目录下的package.json和package-lock.json重命名,然后右键点击项目文件夹,重新识别项目即可。之后再把重命名的文件名改回来就OK了!

继续阅读 »

已经创建好的小程序项目导入Hbuilder X之后可能会出现小程序项目被识别成Web项目的问题。我推测,有可能是使用了NPM包之后引起的。经过测试,证实了推测。知道了原因,解决方法也很简单,只要将项目更目录下的package.json和package-lock.json重命名,然后右键点击项目文件夹,重新识别项目即可。之后再把重命名的文件名改回来就OK了!

收起阅读 »

招 UNI-APP开发!在深圳科技园

招聘

目前我们大前端团队的职位要求是:

有uni app 开发打包生成H5和APP,并且项目上线的经验;

薪资看能力,你来报!

麻烦符合条件的发简历到邮箱987654114@qq.com; 最好提供作品APP的下载地址,我这和同事评估后会做进一步约面笔试和沟通。

公司福利:

(1)保险保障:入职即购买五险一金(社保一档),每月还有绩效奖金;

(2)带薪假期:法定节假日(休),工作满一年6天年假(休),传统节日福利礼品(休 拿);

(3)周边设施:公司就在高新园B口旁,周围各种精品小吃,日常快餐,豪华大餐,应有尽有,品类繁多。繁华商场,高端科技园区,休闲舒心;

(4)团队建设:每天公司餐补和下班路费补贴,每周一次公司休闲的下午茶,每月一次公司爱的聚餐,每年一次公司豪华旅游和年底Patty年会,还有不限次团建,胡吃海喝,等你加入;

(5)工作满一年,年底13薪,过年回家动车、机票报销,优秀员工还有更多福利

(6)泡面、茶叶、咖啡无限供应

(7)技术书籍、教程培训全额报销,每年开发者大会、培训活动报销

继续阅读 »

目前我们大前端团队的职位要求是:

有uni app 开发打包生成H5和APP,并且项目上线的经验;

薪资看能力,你来报!

麻烦符合条件的发简历到邮箱987654114@qq.com; 最好提供作品APP的下载地址,我这和同事评估后会做进一步约面笔试和沟通。

公司福利:

(1)保险保障:入职即购买五险一金(社保一档),每月还有绩效奖金;

(2)带薪假期:法定节假日(休),工作满一年6天年假(休),传统节日福利礼品(休 拿);

(3)周边设施:公司就在高新园B口旁,周围各种精品小吃,日常快餐,豪华大餐,应有尽有,品类繁多。繁华商场,高端科技园区,休闲舒心;

(4)团队建设:每天公司餐补和下班路费补贴,每周一次公司休闲的下午茶,每月一次公司爱的聚餐,每年一次公司豪华旅游和年底Patty年会,还有不限次团建,胡吃海喝,等你加入;

(5)工作满一年,年底13薪,过年回家动车、机票报销,优秀员工还有更多福利

(6)泡面、茶叶、咖啡无限供应

(7)技术书籍、教程培训全额报销,每年开发者大会、培训活动报销

收起阅读 »