位置: 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)

  • 华为微信扬声器模式怎么切换(华为微信扬声器怎么打开设置)

    华为微信扬声器模式怎么切换(华为微信扬声器怎么打开设置)

  • 华为nova9pro处理器(华为nove9pro处理器)

    华为nova9pro处理器(华为nove9pro处理器)

  • OPPO手机如何调输入法键盘高度(oppo手机如何调字体)

    OPPO手机如何调输入法键盘高度(oppo手机如何调字体)

  • vivo NEX 3s支持内存扩展吗(vivo nex3支持5g吗)

    vivo NEX 3s支持内存扩展吗(vivo nex3支持5g吗)

  • 华为mate30发烫(华为mate30发烫会不会爆炸)

    华为mate30发烫(华为mate30发烫会不会爆炸)

  • 目前通用的压缩编码国际标准主要有( )和MPEG(目前通用的压缩编码国际标准主要有( )和mpeg)

    目前通用的压缩编码国际标准主要有( )和MPEG(目前通用的压缩编码国际标准主要有( )和mpeg)

  • 抖音的关注请求点开就没了(抖音的关注请求在哪里)

    抖音的关注请求点开就没了(抖音的关注请求在哪里)

  • 荣耀v20支持几级防水(华为荣耀v20可以升级5g吗)

    荣耀v20支持几级防水(华为荣耀v20可以升级5g吗)

  • p40发热怎么解决(华为p40p发热严重吗)

    p40发热怎么解决(华为p40p发热严重吗)

  • oppo 5g手机有哪些(oppo5g手机有哪些系列)

    oppo 5g手机有哪些(oppo5g手机有哪些系列)

  • 抖音如何不显示在线(抖音如何不显示粉丝牌)

    抖音如何不显示在线(抖音如何不显示粉丝牌)

  • 联想7650粉盒通用型号(联想7650粉盒复位)

    联想7650粉盒通用型号(联想7650粉盒复位)

  • QQ为什么不能播放(qq为什么不能直播了呀)

    QQ为什么不能播放(qq为什么不能直播了呀)

  • kirin710f是什么意思(kirin710f处理器性能)

    kirin710f是什么意思(kirin710f处理器性能)

  • 华为手机进水后黑屏怎么办(华为手机进水后sim卡无服务)

    华为手机进水后黑屏怎么办(华为手机进水后sim卡无服务)

  • 域名未绑定是什么意思(未绑定域名是什么意思)

    域名未绑定是什么意思(未绑定域名是什么意思)

  • 微信手机号如何解绑(微信手机号如何更改)

    微信手机号如何解绑(微信手机号如何更改)

  • 手机自动开流量怎么办(手机怎样充流量)

    手机自动开流量怎么办(手机怎样充流量)

  • 华为p30升级emui10怎么申请(华为p30升级鸿蒙系统3.0)

    华为p30升级emui10怎么申请(华为p30升级鸿蒙系统3.0)

  • 拼多多找不到我的商品(拼多多找不到我的步数功能)

    拼多多找不到我的商品(拼多多找不到我的步数功能)

  • 手机网络监控怎么解除(手机网络监控怎么关闭)

    手机网络监控怎么解除(手机网络监控怎么关闭)

  • ps对比原图快捷键(在ps中怎么对比原图和修过的图)

    ps对比原图快捷键(在ps中怎么对比原图和修过的图)

  • 电脑问题的自我检测方法有哪些?(电脑自我诊断)

    电脑问题的自我检测方法有哪些?(电脑自我诊断)

  • TransUnet官方代码测试自己的数据集(已训练完毕)(transit code)

    TransUnet官方代码测试自己的数据集(已训练完毕)(transit code)

  • python怎么使用md5加密解密(md5 python3)

    python怎么使用md5加密解密(md5 python3)

  • 没有审计报告的上市公司怎么办
  • 结转所得税的会计分录是什么
  • 接受投资专利技术科目
  • 以前年度损益对应的科目
  • 金税四期已经开始了吗
  • 应付利息增加会计分录
  • 一般纳税人什么情况可以开3%的发票
  • 资产入股会计处理
  • 什么是居民纳税人
  • 增值税普通发票几个点
  • 发票鉴定管理办法
  • 自产自用的资源税记入
  • 收到上级主管部门拨入的经费
  • 库存商品变价出现原因
  • 广告物料制作费公司怎么做账
  • 营改增之前
  • 航天金税盘费用怎么做账
  • 小型微利企业所得税优惠政策2023超过100万
  • 房地产企业扣除项目
  • 企业债券收入要在所得税前扣除吗
  • 小微企业关闭
  • 出口转内销的销项税怎么计算
  • 卸载软件怎么清理干净
  • 存货丢失取得赔偿
  • 在电脑上网页打不开怎么办
  • 公司撤股需走什么程序
  • 现金流量套期的分录
  • 非合理损耗会计分录
  • 机器学习,看这一篇就够了:回归算法,特征工程,分类算法,聚类算法,神经网络,深度学习入门
  • 煤炭企业的会计科目
  • 印花税土地使用税和房产税怎么做会计分录
  • PHP:mcrypt_module_open()的用法_Mcrypt函数
  • php session_start
  • 红字发票进项转出当期
  • elemental ui
  • dmesg | grep tty
  • 小企业会计准则没有以前年度损益调整科目
  • 银行承兑是什么意思
  • 开票一定要确认发票吗
  • 帝国cms怎么增加子栏目
  • 现金流量表中的现金流量包括哪些
  • phpcms怎么用
  • 库房食品过期报告怎么写
  • 月入一万怎么样
  • 纳税申报表上的销售额是不含税的吗
  • 企业贷款的条件和流程
  • 未分配利润为负数可以分红吗
  • 哪种发票可以报税
  • 债务重组的方式不包括债务转为资本
  • 固定资产抵扣影响税负
  • 补助资金如何做账
  • 现金日记账年结怎么做
  • 外贸企业退税政策
  • 政府非税收入项目挂接流程图
  • 税控设备管理办法
  • 管理费用一般包含研发费用吗
  • 技术转让要交所得税吗
  • 金蝶专业版怎么反过账
  • mysql怎么删除一定数量的记录
  • win7旗舰版系统还原无法启动
  • ubuntu安装指南
  • linux的ip查看
  • 如何重装edge
  • win7取消ch
  • win8系统无线网络图标不见了
  • xp系统怎么关闭更新系统
  • win8系统切换桌面
  • win7系统如何修改锁屏密码
  • javascript要怎么学
  • python网络编程视频教程
  • python函数例子
  • 瀑布流软件
  • Android studio 打包apk后卡在首屏
  • javascript基础入门视频教程
  • javascript导航栏
  • 五十八二
  • 税务稽查追溯时间是什么意思
  • 怎么打印电子社保
  • 申报地税的流程图
  • 江西鹰潭潭花酒60度
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设