位置: IT常识 - 正文

【uniapp】页面下拉刷新(uniapp按钮)

编辑:rootadmin
【uniapp】页面下拉刷新

目录

一、全局

二、局部

1、一个页面一个下拉刷新

2、一个页面多个下拉刷新(切换时滚动条回到顶部)

3、一个页面多个下拉刷新(切换时恢复滚动条位置)


一、全局

推荐整理分享【uniapp】页面下拉刷新(uniapp按钮),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp底部弹出框,uniapp按钮,uniapp 首页,uniapp设置首页,uniapp实现下拉弹出新页面,uniapp底部弹出框,uniapp界面,uniapp 首页,内容如对您有帮助,希望把文章链接给更多的朋友!

修改pages.json的"enablePullDownRefresh": true,

{    "pages": [         {            "path": "pages/tabBar/dashboard/index",            "style": {                "navigationBarTitleText": "项目管理",                "enablePullDownRefresh": true,                "navigationBarTextStyle": "white",                "navigationBarBackgroundColor": "#374449"            }        },    ],    "globalStyle": {        "navigationBarTextStyle": "black",        "navigationBarTitleText": "管理平台",        "navigationBarBackgroundColor": "#F8F8F8",        "backgroundColor": "#F8F8F8"    },}

页面中(onPullDownRefresh 处理函数和onLoad等生命周期函数同级 )

export default {    data() {            return {                productList: [], //列表                query: {                    keyword: '', //搜索框                    pagesize: 10,                    page: 1,                },                total: 0, //总条数                showTotal: true, //是否显示“下拉加载更多~”            }        },        // 下拉刷新        onPullDownRefresh() {            var allTotal = this.query.page * this.query.pagesize            //this.page为加载次数,this.pageSize为每一次加载的数据条数            if (allTotal < this.total) {                //this.total为请求数据的总条数。只要现有条数小于总条数就执行一下代码                this.showTotal = true;                this.query.page++;                //加载次数递加                this.getlist() //请求更多数据列表            } else {                this.showTotal = false;            }            uni.stopPullDownRefresh();//停止刷新        },}二、局部

我使用的是插件https://ext.dcloud.net.cn/plugin?id=343

插件文档https://www.mescroll.com/uni.html 

这个插件的还有相对应的案例我已经下载下来了,到时候直接放到编辑器打开即可 链接:https://pan.baidu.com/s/1q6IB-mCdCQqcvKaZmzJtcg 提取码:e66j

我的需求是顶部内容固定不动,列表下拉刷新(没有页码,数据一次性展示) 

1、一个页面一个下拉刷新

页面使用

<template><view class="details-container"><view class="example-body"><view v-for="(item,index) in tags" :key="index":class="whichSelected===index?'stateBtnSelected':'stateBtnNoselect'" :circle="true"@click="selectState(index)">{{item}}</view></view><view class="center" v-show="tabs===0"> <!-- 第一步:参数一个都不能少,三个事件是固定的 --><mescroll-body ref="mescrollRef" @init="mescrollInit" @down="downCallback" @up="upCallback":down="downOption" :up="upOption"><Tree :list="list" :local='local'></Tree></mescroll-body></view></view></template><script>import Tree from '../../components/Tree/index.vue' //第二步:引入import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";export default {mixins: [MescrollMixin],//第二步:引入name: 'Details',components: {Tree,},data() {return {tags: [],whichSelected: 0, //标签tabs: 0, //标签对应页面list: [], //列表content: {}, //上一页数据local: '', //第三步:数据//downOption和upOption的参数配置在mescroll-uni.js中查看downOption: {auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)},upOption: { use: false, // 是否启用上拉加载; 默认true auto: false }};},onLoad(e) {let that = thisthis.local = uni.getLocale()this.content = JSON.parse(e.item)if (this.local === 'zh-Hans') {uni.setNavigationBarTitle({title: that.content.Name,})} else {uni.setNavigationBarTitle({title: that.content.Name_EN,})}this.GetFileListById()this.tags.push(this.$t('word.whole'))},methods: { //第三步:事件/*下拉刷新的回调 */downCallback() { let that = thisthis.api.GetFileListById({ //调用接口datagramsid: that.content.Id}).then(res => {that.list = res.data.Data this.$nextTick(() => { this.mescroll.endSuccess(this.list.length) })}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})}, /*上拉 */upCallback() { let that = thisthis.api.GetFileListById({ //调用接口datagramsid: that.content.Id}).then(res => {that.list = res.data.Data let curPageLen = this.list.length; // 接口返回的是否有下一页 (true/false) let hasNext = false; setTimeout(() => { this.mescroll.endSuccess(curPageLen, hasNext) }, 20)}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})},GetFileListById() {let that = thisthis.api.GetFileListById({datagramsid: that.content.Id}).then(res => {that.list = res.data.Data})},}}</script>2、一个页面多个下拉刷新(切换时滚动条回到顶部)

【uniapp】页面下拉刷新(uniapp按钮)

多页tabs切换,实现下拉刷新(没有页码,数据一次性展示) ,每个tab页面内容都不相同

插件上说不能使用v-if,是因为使用了v-if就不能实现切换tabs恢复滚动条位置(v-if是创建和销毁,v-show是隐藏和显示)。

但是我使用官方示例的代码重新加载列表数据或其他的方法都不行

// 详情返回列表,重新加载列表数据onShow() {this.canReset && this.mescroll.resetUpScroll() // 重置列表数据为第一页 this.canReset && this.mescroll.scrollTo(0,0) // 重置列表数据为第一页时,建议把滚动条也重置到顶部,避免无法再次翻页的问题 this.canReset = true // 过滤第一次的onShow事件,避免初始化界面时重复触发upCallback, 无需配置auto:false// 注意: 子组件没有 onShow 的生命周期, 所以// 对于 mescroll-more.vue 和 mescroll-swiper.vue 的返回刷新, 需更新 1.3.3 版本, 且参考对应示例的onShow写法}

若是换成mescroll-body,并且使用v-show会出现切换tabs滚动条位置一致,也就是上一页滚动条在哪,下一页的滚动条就在哪。找了好久也不知道问题出在哪里,最后我只能写成组件使用mescroll-uni+v-if的方法。

但是你们使用还是要先根据官网来做,如果出现我这样的问题再安装我的方法做 

第一步:创建组件放置tabs所对应的页面(这里我就只写一个子组件的格式)

pages/word/components/all.vue

注意:子组件使用onShow、onLoad无效,需要写在created中才行 

<template><!-- 不能用v-if (i: 每个tab页的专属下标; index: 当前tab的下标; 申明在 MescrollMoreItemMixin )--><view v-if="i === index"><mescroll-uni ref="mescrollRef0" top="92" @init="mescrollInit" @down="downCallback" @up="upCallback":down="downOption" :up="upOption"><!-- 数据列表 --><Tree :list="list" :local='local'></Tree></mescroll-uni></view></template><script>import Tree from '@/components/Tree/index.vue'import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";import MescrollMoreItemMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js";export default {mixins: [MescrollMixin, MescrollMoreItemMixin], // 使用mixin (在main.js注册全局组件)components: {Tree,},props: {i: Number, // 每个tab页的专属下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)index: { // 当前tab的下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)type: Number,default () {return 0}},tabs: { // 为了请求数据,演示用,可根据自己的项目判断是否要传type: Array,default () {return []}}},data() {return {list: [], //下载列表local: '',downOption: {auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)},upOption: { use: false, // 是否启用上拉加载; 默认true auto: false }}},created() {this.local = uni.getLocale()},methods: {/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */downCallback() {this.mescroll.resetUpScroll()},upCallback(page) {let pageNum = page.numthis.api.GetFileTreeJson().then(res => {// console.log(res.data.Data)this.list = res.data.Datathis.mescroll.endByPage(this.list.length, 1);//设置列表数据if (page.num == 1) this.list = []; //如果是第一页需手动制空列表this.list = this.list.concat(res.data.Data); //追加新数据}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})},}}</script>

pages/word/components/downitem.vue和上一个组件一致,只不过数据组件不一致,多了一个获取列表的方法给父组件使用

<template><!-- 不能用v-if (i: 每个tab页的专属下标; index: 当前tab的下标; 申明在 MescrollMoreItemMixin )--><view v-if="i === index"><mescroll-uni ref="mescrollRef1" @init="mescrollInit" top="92" :down="downOption" @down="downCallback":up="upOption" @up="upCallback" @emptyclick="emptyClick"><DownTree :records="records" :local='local'></DownTree></mescroll-uni></view></template><script>import DownTree from '@/components/DownTree/index.vue'import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";import MescrollMoreItemMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js";export default {mixins: [MescrollMixin, MescrollMoreItemMixin],components: {DownTree},props: {i: Number, // 每个tab页的专属下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)index: { // 当前tab的下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)type: Number,default () {return 0}},tabs: { // 为了请求数据,演示用,可根据自己的项目判断是否要传type: Array,default () {return []}}},data() {return {records: [], //下载列表local: '',downOption: {auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)},upOption: { use: false, // 是否启用上拉加载; 默认true auto: false }}},created() {this.local = uni.getLocale()},methods: {/*下拉刷新的回调 */downCallback() {this.mescroll.resetUpScroll()},upCallback(page) {let pageNum = page.numthis.api.GetWxUserDownloadList().then(res => {this.records = res.data.Datathis.mescroll.endByPage(this.records.length, 1);//设置列表数据if (page.num == 1) this.records = []; //如果是第一页需手动制空列表this.records = this.records.concat(res.data.Data); //追加新数据}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})},getrecords() {this.api.GetWxUserDownloadList().then(res => {this.records = res.data.Datathis.mescroll.endByPage(this.records.length, 1);//设置列表数据if (page.num == 1) this.records = []; //如果是第一页需手动制空列表this.records = this.records.concat(res.data.Data); //追加新数据}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})},}}</script>

第三步:在页面中使用pages/word/components/index.vue

<template><view class="word-container"><view class="example-body"><view v-for="(item,index) in tags" :key="index":class="tabIndex===index?'stateBtnSelected':'stateBtnNoselect'" :circle="true"@click="tabChange(index)" @input="changeload" v-model="tabIndex">{{item}}</view></view><!-- 全部 --><mescroll-all ref="mescrollItem0" :i="0" :index="tabIndex" :tabs="tags"></mescroll-all><!-- 下载记录 --><MescrollDown ref="mescrollItem1" :i="1" :index="tabIndex" :tabs="tags"></MescrollDown></view></template><script>import MescrollAll from "./components/all.vue";import MescrollDown from "./components/downitem.vue";import MescrollMoreMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more.js";export default {mixins: [MescrollMoreMixin],name: 'Word',components: {MescrollDown,MescrollAll,},data() {return {tags: [],local: '',tabIndex: 0,//标签对应页面};},onLoad() {this.tags.push(this.$t('word.whole'), this.$t('word.download'))uni.setNavigationBarTitle({title: this.$t('pages.word'),})},onShow() {this.tabIndex = this.$store.state.tabsthis.local = uni.getLocale()if (this.whichSelected === 1) {const Token = uni.getStorageSync('GetPhone_Token')if (Token) { //点击下载列表tab的时候要判断有没有token,没有就要跳转到登录页,我登录成功后返回到这一页 //若是我不调用子组件的方法也就是获取列表数据,会出现一直显示加载中,所以我这里调用了方法,下面的标签切换同理this.$refs.mescrollItem1.getrecords()} else {uni.navigateTo({url: '/pages/login/index'});}} },methods: {// 标签切换tabChange(index) {this.whichSelected = indexthis.tabIndex = indexthis.$store.commit('SET_TABS', index)if (this.tabIndex === 1) {const Token = uni.getStorageSync('GetPhone_Token')if (Token) {this.$refs.mescrollItem1.getrecords()} else {uni.navigateTo({url: '/pages/login/index'});}} },}}</script><style lang="scss">.vue-ref {padding: 0 !important;}.word {&container {position: relative;}}.left {display: flex;margin: 10px;}.example-body {display: flex;padding: 10px 20px;background-color: #fff;width: 100%;position: fixed;z-index: 2;}.center {position: absolute;top: 45px;width: 100%;// height: 100%;border-top: 1px solid #e5e5e5;}.stateBtnSelected {background-color: #bbe5ff;color: #1480cd !important;border-radius: 20px;font-size: 14px;height: 25px;line-height: 25px;// width: 60px;margin: 0 5px;padding: 0 15px;text-align: center;}.stateBtnNoselect {background-color: transparent;color: #8f939c !important;border: none !important;font-size: 14px;height: 25px;line-height: 25px;// width: 60px;margin: 0 5px;padding: 0 15px;text-align: center;}.slot-image {width: 30px;height: 30px;}.slot-box {margin-right: 10px;}.uni-list-item__container {align-items: center !important;line-height: 20px;}</style>3、一个页面多个下拉刷新(切换时恢复滚动条位置)

如果tabs对应内容分别封装成各自组件,子组件封装的时候使用mescroll-uni,并且使用v-show会出现当列表数据多页时切换tabs,恢复滚动条位置不准确并且会触发上拉这样的问题。但是如果我把他放在一个组件里就不会产生这样的问题

 第一步:组件pages/word/components/all.vue

Tree和DownTree组件使用的是uni-list的自定义插槽,不知道为啥我使用uni-list-item就会触发一次上拉,之后就不会了,但是不使用就不会触发

<template><view class="word-container"><!-- 使用这个切换tabs的时候,会触发上拉一次,之后就不会再触发了 --><!-- <uni-list><uni-list-item v-for="(item,index) in records" :key='index':title="local==='zh-Hans'?item.filename:item.filename_EN" thumb-size="lg":rightText="item.DownloadTime"><template v-slot:header><view class="slot-box"><image v-if="item.fileExt==='.mp4'" class="slot-image" src="/static/shipin_lvhangyingxiang.png"mode="widthFix"></image><image v-else-if="item.fileExt==='.pdf'" class="slot-image" src="/static/pdfwenjian.png"mode="widthFix"></image><image v-else class="slot-image" src="/static/a-wenjianjiawenjian.png" mode="widthFix"></image></view></template></uni-list-item></uni-list> --><uni-list v-for="(item,j) in records" :key='j'><view :border="none" :padding="0" :spacing="0" style="padding:0" :is-shadow="false" :isFull="true"><view class="card-title" style="display: flex;justify-content: space-between;"><view><image v-if="item.fileExt==='.mp4'" class="slot-image" src="/static/shipin_lvhangyingxiang.png"mode="widthFix"></image><image v-else-if="item.fileExt==='.pdf'" class="slot-image" src="/static/pdfwenjian.png"mode="widthFix"></image><image v-else class="slot-image" src="/static/a-wenjianjiawenjian.png" mode="widthFix"></image></view><view class="title-box"style="display: flex;justify-content: space-between;width: 100%;align-items: center;"><view class="">{{local==='zh-Hans'?item.filename:item.filename_EN}}</view><view class="">{{item.DownloadTime}}</view></view></view></view></uni-list></view></template><template><!-- 不能用v-if (i: 每个tab页的专属下标; index: 当前tab的下标; 申明在 MescrollMoreItemMixin )--><view v-show="i === index"><mescroll-uni :ref="'mescrollRef'+i" top="92" @init="mescrollInit" @down="downCallback" @up="upCallback":down="downOption" :up="upOption"><!-- 数据列表 --> <!-- tab为0的时候 --><Tree v-if="index===0" :list="list" :local='local'></Tree> <!-- tab为1的时候 --><DownTree v-else :records="records" :local='local'></DownTree></mescroll-uni></view></template><script>import DownTree from '@/components/DownTree/index.vue'import Tree from '@/components/Tree/index.vue'import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";import MescrollMoreItemMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more-item.js";export default {mixins: [MescrollMixin, MescrollMoreItemMixin], // 使用mixin (在main.js注册全局组件)components: {Tree,DownTree},props: {i: Number, // 每个tab页的专属下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)index: { // 当前tab的下标 (除了支付宝小程序必须在这里定义, 其他平台都可不用写, 因为已在MescrollMoreItemMixin定义)type: Number,default () {return 0}},tabs: { // 为了请求数据,演示用,可根据自己的项目判断是否要传type: Array,default () {return []}}},data() {return {list: [], //下载列表local: '',records: [], //下载列表downOption: {auto: false // 不自动加载 (mixin已处理第一个tab触发downCallback)},upOption: { use: false, // 是否启用上拉加载; 默认true auto: false }}},created() {this.local = uni.getLocale()},methods: {/*上拉加载的回调: 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 */downCallback() {this.mescroll.resetUpScroll()},upCallback(page) {if (this.index === 0) {let pageNum = page.numthis.api.GetFileTreeJson().then(res => {// console.log(res.data.Data)this.list = res.data.Datathis.mescroll.endByPage(this.list.length, 1);//设置列表数据if (page.num == 1) this.list = []; //如果是第一页需手动制空列表this.list = this.list.concat(res.data.Data); //追加新数据}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})} else {this.api.GetWxUserDownloadList().then(res => {// console.log(res.data.Data)this.records = res.data.Datathis.mescroll.endByPage(this.records.length, 1);//设置列表数据if (page.num == 1) this.records = []; //如果是第一页需手动制空列表this.records = this.records.concat(res.data.Data); //追加新数据}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})}},// 文件列表GetFileTreeJson() {this.api.GetFileTreeJson().then(res => {// console.log(res.data.Data)this.list = res.data.Datathis.mescroll.endByPage(this.list.length, 1);//设置列表数据if (page.num == 1) this.list = []; //如果是第一页需手动制空列表this.list = this.list.concat(res.data.Data); //追加新数据}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})},getrecords() {this.api.GetWxUserDownloadList().then(res => {// console.log(res.data.Data)this.records = res.data.Datathis.mescroll.endByPage(this.records.length, 1);//设置列表数据if (page.num == 1) this.records = []; //如果是第一页需手动制空列表this.records = this.records.concat(res.data.Data); //追加新数据}).catch(() => {//联网失败, 结束加载this.mescroll.endErr();})},}}</script>

第二步:页面使用pages/word/components/index.vue

<template><view class="word-container"><view class="example-body"><view v-for="(item,index) in tags" :key="index":class="tabIndex===index?'stateBtnSelected':'stateBtnNoselect'" :circle="true"@click="tabChange(index)" @input="changeload" v-model="tabIndex">{{item}}</view></view><mescrollItem0 ref="mescrollItem0" :i="0" :index="tabIndex" :tabs="tags"></mescrollItem0><mescrollItem0 ref="mescrollItem1" :i="1" :index="tabIndex" :tabs="tags"></mescrollItem0></view></template><script>import mescrollItem0 from "./components/all.vue";import mescrollItem1 from "./components/downitem.vue";// import MescrollMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins.js";import MescrollMoreMixin from "@/uni_modules/mescroll-uni/components/mescroll-uni/mixins/mescroll-more.js";export default {mixins: [MescrollMixin],name: 'Word',components: {mescrollItem0,mescrollItem1,},data() {return {tags: [],list: [],records: [], //下载列表local: '',tabIndex: 0,//标签对应页面};},onLoad() {this.tags.push(this.$t('word.whole'), this.$t('word.download'))uni.setNavigationBarTitle({title: this.$t('pages.word'),})},onShow() {this.whichSelected = this.$store.state.tabsthis.tabIndex = this.$store.state.tabsthis.local = uni.getLocale()if (this.whichSelected === 1) {const Token = uni.getStorageSync('GetPhone_Token')if (Token) {this.$refs.mescrollItem1.getrecords()} else {uni.navigateTo({url: '/pages/login/index'});}} },methods: {// 标签切换tabChange(index) {this.whichSelected = indexthis.tabIndex = indexthis.$store.commit('SET_TABS', index)if (this.tabIndex === 1) {const Token = uni.getStorageSync('GetPhone_Token')if (Token) {this.$refs.mescrollItem1.getrecords()} else {uni.navigateTo({url: '/pages/login/index'});}} },}}</script><style lang="scss">.vue-ref {padding: 0 !important;}.word {&container {position: relative;}}.left {display: flex;margin: 10px;}.example-body {display: flex;padding: 10px 20px;background-color: #fff;width: 100%;position: fixed;z-index: 2;}.center {position: absolute;top: 45px;width: 100%;// height: 100%;border-top: 1px solid #e5e5e5;}.stateBtnSelected {background-color: #bbe5ff;color: #1480cd !important;border-radius: 20px;font-size: 14px;height: 25px;line-height: 25px;// width: 60px;margin: 0 5px;padding: 0 15px;text-align: center;}.stateBtnNoselect {background-color: transparent;color: #8f939c !important;border: none !important;font-size: 14px;height: 25px;line-height: 25px;// width: 60px;margin: 0 5px;padding: 0 15px;text-align: center;}.slot-image {width: 30px;height: 30px;}.slot-box {margin-right: 10px;}.uni-list-item__container {align-items: center !important;line-height: 20px;}</style>
本文链接地址:https://www.jiuchutong.com/zhishi/292340.html 转载请保留说明!

上一篇:HTML可用于情侣表白的爱心代码~,赶紧跟着操作,让她也拥有属于你的爱心吧。(html可以描述什么)

下一篇:MMDetection系列 | 5. MMDetection运行配置介绍(mmdetection optimizer)

  • 电脑怎样截屏保存到桌面(电脑怎样截屏保存图片)

    电脑怎样截屏保存到桌面(电脑怎样截屏保存图片)

  • 爱奇艺可以几个人共用一个账号(爱奇艺可以几个设备登录)

    爱奇艺可以几个人共用一个账号(爱奇艺可以几个设备登录)

  • 剪辑怎么加快视频速度(视频剪辑怎么加快)

    剪辑怎么加快视频速度(视频剪辑怎么加快)

  • realmex50pro是双扬声器的吗(realmex50双扬声器)

    realmex50pro是双扬声器的吗(realmex50双扬声器)

  • 苹果11来电秀怎么设置(苹果来电秀怎么设置)

    苹果11来电秀怎么设置(苹果来电秀怎么设置)

  • 快手回收站在哪打开(快手回收站能找到删了的私信吗)

    快手回收站在哪打开(快手回收站能找到删了的私信吗)

  • 开飞行模式能用wifi吗(开飞行模式能用流量吗)

    开飞行模式能用wifi吗(开飞行模式能用流量吗)

  • iphone11可以双卡双待(iPhone11可以双卡电信吗)

    iphone11可以双卡双待(iPhone11可以双卡电信吗)

  • 华为荣耀20Pro手机如何自制图标(华为荣耀20PRO手机充电器原配)

    华为荣耀20Pro手机如何自制图标(华为荣耀20PRO手机充电器原配)

  • 被主播拉黑后还能看直播吗(被主播拉黑后还能和他小店的客服聊天吗)

    被主播拉黑后还能看直播吗(被主播拉黑后还能和他小店的客服聊天吗)

  • ipad为啥没手电筒(ipadair为啥没手电筒)

    ipad为啥没手电筒(ipadair为啥没手电筒)

  • 微信解封操作过快请稍后再试(微信解封操作过快要多久才好)

    微信解封操作过快请稍后再试(微信解封操作过快要多久才好)

  • 在windows7操作系统中,ctrl+c是什么命令的快捷键(在windows7中操作具有)

    在windows7操作系统中,ctrl+c是什么命令的快捷键(在windows7中操作具有)

  • i73770k相当于现在什么cpu(i73770k属于什么档次)

    i73770k相当于现在什么cpu(i73770k属于什么档次)

  • 闲鱼撤销退款还能继续申请吗(闲鱼撤销退款还在正常交易吗)

    闲鱼撤销退款还能继续申请吗(闲鱼撤销退款还在正常交易吗)

  • 小爱语音引擎是干啥的(小爱语音引擎是什么软件)

    小爱语音引擎是干啥的(小爱语音引擎是什么软件)

  • 蓝牙耳机怎么分开连接手机(蓝牙耳机怎么分开连两个手机)

    蓝牙耳机怎么分开连接手机(蓝牙耳机怎么分开连两个手机)

  • 手机文件复制后怎么粘贴(手机文件复制后无法粘贴)

    手机文件复制后怎么粘贴(手机文件复制后无法粘贴)

  • 移动卡hd是什么意思(中国移动卡hd什么意思)

    移动卡hd是什么意思(中国移动卡hd什么意思)

  • 苹果手机可以扩容吗(苹果手机可以扩容内存吗)

    苹果手机可以扩容吗(苹果手机可以扩容内存吗)

  • 苹果x信号天线位置(iphonex信号天线)

    苹果x信号天线位置(iphonex信号天线)

  • 淘宝公益宝贝怎么设置(淘宝公益宝贝怎么加入)

    淘宝公益宝贝怎么设置(淘宝公益宝贝怎么加入)

  • 手机号怎么挂失报停(手机号怎么挂失打什么电话)

    手机号怎么挂失报停(手机号怎么挂失打什么电话)

  • keil uvision4怎么用(keil uvision4怎么恢复默认设置)

    keil uvision4怎么用(keil uvision4怎么恢复默认设置)

  • 苹果怎么看谁连了热点(苹果怎么看谁连了热点,怎样拉黑连接的手机)

    苹果怎么看谁连了热点(苹果怎么看谁连了热点,怎样拉黑连接的手机)

  • 苹果Mac系统CPU使用率查看方法图文详细介绍(mac cpu)

    苹果Mac系统CPU使用率查看方法图文详细介绍(mac cpu)

  • 劳务公司的税率一般是多少
  • 服务费可以计入办公费吗
  • 企业所得税季度申报
  • 税务处理决定书与税务处罚决定书
  • 工程物资什么时候结转到开发成本里面
  • 小规模开普票多少税点
  • 如何审计主营业务的真实性
  • 怎样查是否为一类银行卡
  • 普通发票验旧后当月能作废吗
  • 汇票贴现的账务处理
  • 折扣销售指
  • 查补的税款怎样做账
  • 个人账户作为公司私账
  • 外资企业银行贷款限制
  • 牵引车需要交车船税吗
  • 简易征收是什么意思和一般纳税人
  • 发票二维码压线可以用吗
  • 办公低值易耗品的账务处理
  • 长期股权投资账务处理
  • 公司收到个人投资款没有备注
  • 不占股权投资如何做账
  • 企业所得税税率表2023年最新
  • 销售电梯并安装如何缴纳增值税
  • 借贷记账法的记账规则是
  • 什么是增值税
  • Win10 20H2 KB5001391补丁包更新内容汇总
  • 专家评审费如何报账
  • php中数组的概念
  • AquariumDesktop.exe进程危险吗 AquariumDesktop是什么进程
  • vue print nb 教程
  • 车辆购置税的计税基础
  • 小规模纳税人购车是怎么抵税的
  • 跨省经营建筑企业税收政策
  • twig教程
  • php echo语句
  • 营改增允许从销售额中扣
  • 货物退回会计分录怎么做
  • mktemp命令
  • nodejs基础知识
  • 金蝶软件如何新增账套
  • sql查询表中指定数据
  • mysqlreport显示Com_中change_db占用比例高的问题的解决方法
  • 核定征收的企业所得税怎么算
  • 增值税期末留抵退税原因采集确认单
  • 汇算清缴可以不调整吗
  • 税务机关如何对个人股东股权财务报表审核
  • 差旅费所得税扣除标准2023
  • 开发票四舍五入
  • 会计的三个结转是什么
  • 银行日记账登记依据
  • 车辆购置税计入税金及附加吗
  • 微信支付属于现金支付还是转账支付
  • 不属于投资性房地产项目有自用房地产作为存货的
  • 企业会计准则中职工薪酬
  • 建账的要点及应注意的问题
  • sql查询从入门到实践
  • win7清理系统垃圾的方法
  • xp系统没有声音没有音频设备
  • linux怎样安装
  • win7系统鼠标右键无法弹出菜单
  • windows10自带磁盘修复工具
  • Ubuntu After Install 2.6 帮助你安装 Ubuntu 常用软件
  • Win10打开设备管理器
  • win10安装不了ie
  • windows 如何解密
  • win8.1 应用商店是不是不能用了
  • win10系统更改
  • 删除默认共享的文件夹
  • cssfixed中浮动
  • jQuery基于ajax()使用serialize()提交form数据的方法
  • jquery 案例
  • u3d中文版本
  • nodejs实现微信公众号发红包
  • 测试驱动开发的基本过程
  • JavaScript中的变量名不区分大小写
  • jquery设置定时器
  • python simple
  • 北京东城区社保电话
  • 定额发票属于什么类型
  • 内蒙古国家税务局网上电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设