位置: IT常识 - 正文

我的Vue之旅 11 Vuex 实现购物车

编辑:rootadmin
Vue CartView.vue script 数组的filter函数需要return显式返回布尔值,该方法得到一个新数组。 使用Vuex store的modules方式,注意读取状态的方式 this.$store.state.cart.items 刷新页面后state状态还原,需要用session ... Vue

推荐整理分享我的Vue之旅 11 Vuex 实现购物车,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

CartView.vue script数组的filter函数需要return显式返回布尔值,该方法得到一个新数组。使用Vuex store的modules方式,注意读取状态的方式 this.$store.state.cart.items刷新页面后state状态还原,需要用session保存状态(TODO)axios 发出 get 请求,第二个参数对象的 params 字段值显式使用 JSON.stringify 进行转化,如果不使用会表示成 xxx?items=xxx&items=xxx&items=xxx<script lang="ts">import { defineComponent } from "vue";export default defineComponent({ name: "CartView", components: {}, methods: { deleteItem(id: number) { this.$store.dispatch("del", id); console.log(this.$store.state.cart.items); this.items = this.items.filter((item) => { return item.id != id; // @ return }); }, }, data() { return { days: 29, hours: 8, minutes: 20, discount: 24, items: [ { id: 201, img: "https://www.yuucn.com/wp-content/uploads/2022/11/1669231439-c95cfecc8c3eb08.png", name: "Family", price: 2.99, author: "Tim Sheinman", category: "Puzzle", } ], }; }, computed: { cost() { let total = 0; this.items.forEach((item) => { total += item.price; }); total *= (100 - this.discount) / 100; const res = total.toFixed(2); return res; }, }, created() { this.axios .get("/game/query", { params: { items: JSON.stringify(this.$store.state.cart.items), }, }) .then((response) => { if (!response.data) { console.log("无数据"); return; } this.items = []; response.data.forEach((item: any) => { this.items.push({ id: item.id, img: item.img, name: item.title, price: item.price, author: item.author, category: item.category, }); }); }) .catch((err) => { console.log(err); }); },});</script>

CartView.vue template<template> <div class="m-3"> <div class="text-3xl font-bold text-stone-700"> <b-icon-cart-check class="text-4xl inline-block align-text-top mr-2" ></b-icon-cart-check >My Cart </div> <div class="text-stone-600 mt-4"> Buy everything for <span class="font-bold">${{ cost }}! </span> <span class="font-bold">Save {{ discount }}%!</span> </div> <div class="mt-4 border border-stone-300 rounded-sm"> <div class=" mx-2 h-10 text-center pt-2.5 m-auto mt-2 bg-rose-500 font-bold text-white rounded " > Buy all for ${{ cost }} </div> <div class="mt-2 text-center text-stone-500 text-sm">offer ends in</div> <div class="text-center"> <div class="inline-block m-1"> <div>{{ days }}</div> <div class="text-xs text-stone-500">DAYS</div> </div> <div class="inline-block m-1"> <div>{{ hours }}</div> <div class="text-xs text-stone-500">HOURS</div> </div> <div class="inline-block m-1"> <div>{{ minutes }}</div> <div class="text-xs text-stone-500">MINUTES</div> </div> </div> </div> <div class="mt-4"> <div>includes the following items:</div> <template v-for="(value, index) in items" :key="index"> <div class="mt-3"> <img class="inline-block h-28 rounded-md" :src="https://www.cnblogs.com/linxiaoxu/archive/2022/11/24/value.img" /> <div class="inline-block ml-4"> <div class=""> <span class="font-bold">{{ value.name }}</span> <div class=" ml-2 inline-block text-xs bg-stone-500 rounded-sm px-1 py-0.5 mt-1 text-center text-white " > ${{ value.price }} </div> </div> <div class="text-stone-500 text-sm"> {{ value.author }} </div> <div class="text-stone-500 text-sm"> {{ value.category }} </div> <b-icon-x-square @click="deleteItem(value.id)" class="text-3xl mt-2" ></b-icon-x-square> </div> </div> </template> </div> </div></template>

store/cart.ts

VUE里面的export default 是什么_啊了个呜的博客-CSDN博客

const state = { items: [ // 201, 202, 203, 204 ]}const mutations = { add(state: any, param: number) { if (!state.items.includes(param)) { state.items.push(param) } }, del(state: any, param: number) { if (state.items.indexOf(param) != -1) { state.items.splice(state.items.indexOf(param), 1) } }}const actions = { add(context: any, param: number) { // 可以 {commit} 解构简化 context.commit('add', param) }, del(context: any, param: number) { context.commit('del', param) }}const cart = { state, mutations, actions}export default cartstore/index.tsimport { createStore } from 'vuex'import cart from './cart'export default createStore({ modules: { cart: cart }})

Property ‘$store‘ does not exist on type ‘CreateComponentPublicInstance

在src文件夹下新建文件夹vue.d.ts

// vuex.d.tsimport { ComponentCustomProperties } from '@/vue'import { Store } from 'vuex'declare module '@vue/runtime-core' { // declare your own store states interface State { cart } // provide typings for `this.$store` interface ComponentCustomProperties { $store: Store<State> }}

三种方法实现Vue路由跳转时自动定位在页面顶部

// 跳转后自动返回页面顶部router.afterEach(() => {window.scrollTo(0,0);})我的Vue之旅 11 Vuex 实现购物车

const router = new VueRouter({routes:[...],scrollBehavior () {// return返回期望滚动到的位置的坐标return { x: 0, y: 0 }}})

router.beforeEach((to, from, next) => { // chrome兼容document.body.scrollTop = 0// firefox兼容document.documentElement.scrollTop = 0// safari兼容window.pageYOffset = 0next()})

Golang Ginstructs/game.gopackage structstype Game struct {ID int64 `db:"id" json:"id"`Title string `db:"title" json:"title"`Text string `db:"text" json:"text"`Img string `db:"img" json:"img"`Author string `db:"author" json:"author"`Category string `db:"category" json:"category"`Price float64 `db:"price" json:"price"`}

controller/game.go

package controllerimport ("encoding/json""fmt""github.com/gin-gonic/gin""wolflong.com/vue_gin/structs""wolflong.com/vue_gin/variable")func QueryGame(c *gin.Context) {db := variable.DBitems_ := c.Query("items")var items []int64err := json.Unmarshal([]byte(items_), &items)if err != nil || len(items) == 0 {c.JSON(501, gin.H{"message": "failure items",})c.Abort()return}// fmt.Println(items)stmt := `select id,title,author,category,img,price from game where id in (`for i, v := range items {stmt += fmt.Sprintf("%d", v)if i != len(items)-1 {stmt += ","}}stmt += ")"rows, err := db.Query(stmt)checkError(err)defer rows.Close()var res []structs.Gamefor rows.Next() {var c structs.Gameerr = rows.Scan(&c.ID, &c.Title, &c.Author, &c.Category, &c.Img, &c.Price)checkError(err)res = append(res, c)}c.JSON(200, res)}

router/router.go

新增路由

game := r.Group("/game"){ game.GET("/query", controller.QueryGame)}

Mysql 建表DROP DATABASE VUE;create database if not exists vue;use vue;CREATE TABLE gameblog ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255), text VARCHAR(255), img VARCHAR(255));insert into gameblog(title,text,img) values ("Games of the Month: surrealist solitaire puzzles","What’s that? You need more games? I hear you, anonymous hapi fan.We’ve reached the part of the year when games start coming out fast","https://xiaonenglife.oss-cn-hangzhou.aliyuncs.com/static/pic/2022/11/20221102184434_1.jpg"),("Games of the Month: Puzzles!","Sometimes you need a good puzzle game, just something to throw all of your attention at and ignore anything else going on. Well if that sometime for you is right now, then you’re in luck because in this Games of the Month","https://www.yuucn.com/wp-content/uploads/2022/11/1669231448-c95cfecc8c3eb08.jpg"),("The next hapi Creator Day is July 29th!","I don’t think I’m allowed to make the entire body of this post “Thenext itch.io Creator Day is taking place on Friday July 29th.” I mean it’s true, we are hosting the next itch.io Creator Day on Friday July 29th but I should probably write more here.","https://www.yuucn.com/wp-content/uploads/2022/11/1669231456-c95cfecc8c3eb08.jpg");select * from gameblog;drop table if exists game;CREATE TABLE game ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255), text VARCHAR(255), img VARCHAR(255), author VARCHAR(255) default "", # TODO ID category VARCHAR(255) default "", # TODO ID price decimal(6,2) default 0, web boolean default 0 # TODO 发布时间 # TODO 浏览量 # TODO 评论量 # TODO 热度综合指标);CREATE TABLE tag ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255));CREATE TABLE gametag ( gameid INT, tagid INT);# TODO 外键insert into game(id,title,author,category,text,img,price,web) values(1,"Late Night Mop","","","A haunted house cleaning simulator.","https://www.yuucn.com/wp-content/uploads/2022/11/1669231463-c95cfecc8c3eb08.png",0,0),(2,"an average day at the cat cafe","A haunted house cleaning simulator.","","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231471-c95cfecc8c3eb08.png",0,1),(3,"Corebreaker","A fast-paced action-platform shooter game with roguelike elements.","","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231479-c95cfecc8c3eb08.png",19.99,0),(4,"Atuel","Traverse a surrealist landscape inspired by the Atuel River in Argentina.","","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231487-c95cfecc8c3eb08.png",0,0),(201,"Family","Tim Sheinman","Puzzle","TEST","https://www.yuucn.com/wp-content/uploads/2022/11/1669231439-c95cfecc8c3eb08.png",2.99,0),(202,"Rivals","dreamfeel","Puzzle","TEST","https://www.yuucn.com/wp-content/uploads/2022/11/1669231494-c95cfecc8c3eb08.png",5.99,0),(203,"Conspiracy!","Tim Sheinman","Puzzle","TEST","https://www.yuucn.com/wp-content/uploads/2022/11/1669231502-c95cfecc8c3eb08.png",4.99,0),(204,"Riley & Rochelle","Nolski","Puzzle","TEST","https://www.yuucn.com/wp-content/uploads/2022/11/1669231510-c95cfecc8c3eb08.png",14.99,0);select * from game;insert into tag values(1,"Difficult"),(2,"Fast-Paced");insert into gametag values(3,1),(3,2),(4,1);DELIMITER $$CREATE PROCEDURE gamelist()BEGIN# TODOEND $$DELIMITER ;select a.title,a.text,img,price,web,if(group_concat(c.title separator "#") is null ,"", group_concat(c.title separator "#")) as tag from game a left join gametag b on a.id = b.gameid left join tag c on b.tagid = c.id group by a.id;drop table if exists users;drop table if exists comments;create table users(id int primary key auto_increment,uid varchar(255),name varchar(255),password varchar(255));create table comments(id int primary key auto_increment,uid int,text mediumtext,pid int,date long);insert into users(uid,name,password) values("1001","admin","123456"),("1002","玉米炖萝卜","123456"),("1003","西红柿炒番茄","123456");INSERT INTO comments(id, uid, text, pid, date) VALUES (1, 1003, 'asdmoapsdasopdnopasdopasopdas localstorage', 100, 1666107328334);INSERT INTO comments(id, uid, text, pid, date) VALUES (2, 1003, 'asdmoapsdasopdnopasdopasopdas localstorage', 100, 1666107328836);INSERT INTO comments(id, uid, text, pid, date) VALUES (3, 1003, 'asdmoapsdasopdnopasdopasopdas localstorage', 100, 1666107329459);INSERT INTO comments(id, uid, text, pid, date) VALUES (4, 1001, 'asdmoapsdasopdnopasdopasopdas localstorage', 100, 1666107331864);INSERT INTO comments(id, uid, text, pid, date) VALUES (5, 1001, 'asdmoapsdasopdnopasdopasopdas localstorage', 100, 1666107332720);INSERT INTO comments(id, uid, text, pid, date) VALUES (6, 1002, '你好', 100, 1666107337646);select * from users;select * from comments;select * from game;drop table if exists posts;create table posts(id int primary key auto_increment,bgcolor varchar(7),textcolor varchar(7),headimg varchar(255),videosrc varchar(255),imgs mediumtext,html mediumtext);insert into posts(id,bgcolor,textcolor,headimg,videosrc,imgs,html) values(100,"#E8E1BC","#2f5b71","https://www.yuucn.com/wp-content/uploads/2022/11/1669231517-c95cfecc8c3eb08.png","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231529-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231537-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231544-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231552-c95cfecc8c3eb08.png"]','<div class="m-4 text-xl font-bold"> A sound reverberated from beyond the ocean. </div> <div class="ml-4 mt-6"> At the edge of a desolate island, pick up what the waves wash ashore to make instruments. Use those instruments to answer the echoes heard from beyond the ocean. In this hand-drawn world, enjoy a soothing soundscape formed by waves, footsteps and the sounds made from things washed up. </div> <img src="https://www.yuucn.com/wp-content/uploads/2022/11/1669231560-c95cfecc8c3eb08.gif" class="w-full mt-6 px-4" /> <div class="ml-4 mt-6"> Resonance of the Ocean is a short adventure game you can play in 10 ~ 30min. This game was made in the 22nd unity1week, a Japanese game jam event. This version is updated with an English localization and with small changes. In unity1week, this game placed 4th in the overall ranking, and 1st for art and sound. </div> <div class="m-4 mt-6 text-xl font-bold">Controls</div> <div class="ml-4 mt-6"> This game only supports keyboard controls. <ul class="list-disc ml-6 mt-2"> <li>Arrow Keys: Move</li> <li>Space Key(Or ZXC): Confirm</li> <li>ZXC Keys: pick up, replace, throw, search</li> </ul> </div> <div class="m-4 mt-6 text-xl font-bold">Save Function</div> <div class="ml-4 mt-6"> There is no save function available as the time required to complete the game is short (10 ~ 30 min). Thank you for your understanding. </div>'),(101,"#FFFFFF","#000000","https://www.yuucn.com/wp-content/uploads/2022/11/1669231569-c95cfecc8c3eb08.png","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231578-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231586-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231594-c95cfecc8c3eb08.png"]','<div class="ml-4 mt-6"> The past and future cannot be explored alone! Team up with a friend and piece together the mysteries surrounding Albert Vanderboom. Communicate what you see around you to help one another solve various puzzles and explore the worlds from different perspectives! </div> <div class="ml-4 mt-6"> The Past Within is the first <a class="underline">co-op</a> only point-and-click adventure set in the mysterious world of Rusty Lake. </div> <div class="m-4 mt-6 text-xl font-bold">Features</div> <div class="ml-4 mt-6"> <ul class="list-disc ml-6 mt-2"> <li class="font-bold">A co-op experience</li> Play together with a friend, one in The Past, the other in The Future. Work together to solve the puzzles and help Rose set her father’s plan in motion! <li class="font-bold">Two worlds - Two perspectives</li> Both players will experience their environments in two different dimensions: 2D as well as in 3D - a first-time experience in the Rusty Lake universe! <li class="font-bold">Cross-platform play</li> As long as you can communicate with each other, you and your partner of choice can each play The Past Within on your preferred platform: PC, Mac, iOS, Android and (very soon) Nintendo Switch! <li class="font-bold">Playtime & Replayability</li> The game contains 2 chapters and has an average play-time of 2 hours. For the full experience, we recommend replaying the game from the other perspective. Plus you can use our replayability feature for a fresh start with new solutions to all puzzles. </ul> </div> '),(201,"#FFFFFF","#000000","https://www.yuucn.com/wp-content/uploads/2022/11/1669231439-c95cfecc8c3eb08.png","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231578-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231586-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231594-c95cfecc8c3eb08.png"]','<div class="ml-4 mt-6">测试测试测试 </div> '),(202,"#FFFFFF","#000000","https://www.yuucn.com/wp-content/uploads/2022/11/1669231494-c95cfecc8c3eb08.png","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231578-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231586-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231594-c95cfecc8c3eb08.png"]','<div class="ml-4 mt-6">测试测试测试 </div> '),(203,"#FFFFFF","#000000","https://www.yuucn.com/wp-content/uploads/2022/11/1669231502-c95cfecc8c3eb08.png","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231578-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231586-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231594-c95cfecc8c3eb08.png"]','<div class="ml-4 mt-6">测试测试测试 </div> '),(204,"#FFFFFF","#000000","https://www.yuucn.com/wp-content/uploads/2022/11/1669231510-c95cfecc8c3eb08.png","","https://www.yuucn.com/wp-content/uploads/2022/11/1669231578-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231586-c95cfecc8c3eb08.png","https://www.yuucn.com/wp-content/uploads/2022/11/1669231594-c95cfecc8c3eb08.png"]','<div class="ml-4 mt-6">测试测试测试 </div> ');select * from posts;drop table if exists sellopts;create table sellopts(id int primary key auto_increment,days int, hours int, minutes int, discount int);insert into sellopts(id,days,hours,minutes,discount) values(1,29,8,20,24);select id,bgcolor,textcolor,headimg,videosrc,imgs,html from posts where id = 100

JS 数组方法

JavaScript Array 对象 | 菜鸟教程 (runoob.com)

Gin Query

Gin之获取querystring参数_GoGo在努力的博客-CSDN博客

Gin Session

gin-contrib/sessions: Gin middleware for session management (github.com)

gin-contrib/sessions 筆記 | PJCHENder 未整理筆記

本文链接地址:https://www.jiuchutong.com/zhishi/311660.html 转载请保留说明!

上一篇:织梦新站上线前站长必看的百度SEO网站优化教程【防黑防挂马】(织梦建站详细步骤)

下一篇:织梦dedecms文章页实现多个缩略图的方法(织梦网站怎么添加关键词)

  • 热水器怎么清洗视频教程全过程(热水器怎么清洗)(燃气热水器怎么清洗)

    热水器怎么清洗视频教程全过程(热水器怎么清洗)(燃气热水器怎么清洗)

  • 华为p40pro能支持3D人脸解锁吗(华为p40pro可以装4g卡吗)

    华为p40pro能支持3D人脸解锁吗(华为p40pro可以装4g卡吗)

  • 华为freebuds3什么时候出(华为freebuds3什么芯片)

    华为freebuds3什么时候出(华为freebuds3什么芯片)

  • 华为手机微信怎么截长条聊天记录(华为手机微信怎么开美颜视频聊天)

    华为手机微信怎么截长条聊天记录(华为手机微信怎么开美颜视频聊天)

  • 华为lld一al00是啥型号(华为lld-al00是什么型号多少钱)

    华为lld一al00是啥型号(华为lld-al00是什么型号多少钱)

  • 骁龙845能用几年(骁龙845还可以用几年)

    骁龙845能用几年(骁龙845还可以用几年)

  • 为什么电池没电咬一下就有电了(为什么电池没电了咬一咬还能用)

    为什么电池没电咬一下就有电了(为什么电池没电了咬一咬还能用)

  • 开热点流量是否会双倍(开热点流量是否会减少)

    开热点流量是否会双倍(开热点流量是否会减少)

  • bat是什么文件扩展名(bat属于什么文件)

    bat是什么文件扩展名(bat属于什么文件)

  • 手机息屏后打不开(手机黑屏打不通电话)

    手机息屏后打不开(手机黑屏打不通电话)

  • 红米k30发烫怎么办(红米k30发热)

    红米k30发烫怎么办(红米k30发热)

  • 微信读书取消关注对方知道吗(微信读书取消关联微信)

    微信读书取消关注对方知道吗(微信读书取消关联微信)

  • 微信提示有消息 打开后没有了(微信提示有消息打开却没有是怎么回事)

    微信提示有消息 打开后没有了(微信提示有消息打开却没有是怎么回事)

  • 为什么快手买东西显示未登录(为什么快手买东西用不了花呗)

    为什么快手买东西显示未登录(为什么快手买东西用不了花呗)

  • 存储容量的单位(在计算机中什么不是度量存储容量的单位)

    存储容量的单位(在计算机中什么不是度量存储容量的单位)

  • 菜单已锁怎么取消(菜单已锁菜单解锁反复)

    菜单已锁怎么取消(菜单已锁菜单解锁反复)

  • 订单详情在哪里(拼多多订单详情在哪里)

    订单详情在哪里(拼多多订单详情在哪里)

  • ipadmini有什么用(ipadmini有什么意义)

    ipadmini有什么用(ipadmini有什么意义)

  • windowsxp是什么操作系统

    windowsxp是什么操作系统

  • 微信群里发的信息别人看不到(微信群里发的信息群主可以删除吗)

    微信群里发的信息别人看不到(微信群里发的信息群主可以删除吗)

  • 在哪里能查到免拼卡(怎么查看免检)

    在哪里能查到免拼卡(怎么查看免检)

  • 如何用pr快速添加字幕(pr怎么添加v1)

    如何用pr快速添加字幕(pr怎么添加v1)

  • 淘宝自动续费怎么关闭(淘宝自动续费怎么关闭酷喵)

    淘宝自动续费怎么关闭(淘宝自动续费怎么关闭酷喵)

  • 小米6有语音助手吗(小米6x语音助手怎么打开)

    小米6有语音助手吗(小米6x语音助手怎么打开)

  • windows11怎么创建多个桌面? win11开多个虚拟桌面的技巧(windows11怎么创建宽带拨号连接图标)

    windows11怎么创建多个桌面? win11开多个虚拟桌面的技巧(windows11怎么创建宽带拨号连接图标)

  • Dedecms v5.3没有下载地址的解决方法(dedecms安装及配置)

    Dedecms v5.3没有下载地址的解决方法(dedecms安装及配置)

  • 税务网上清卡流程
  • 非征税期抄税如何解决
  • 评估增值对净利有影响吗
  • 会计软件每年都要付钱的吗
  • 基本户购买支票需要什么
  • 会计没签字出纳付款违法么
  • 房屋租赁收入怎么做账
  • 欠缴税款的后果
  • 行政事业单位盘亏或毁损的固定资产
  • 商贸企业出口退税计算公式
  • 补交以前年度印花税记到哪个会计科目
  • 单位表彰性奖金是什么
  • 在不同单位拿的工资怎么计税?
  • 查税是按基本账户吗
  • 商业营业用房经营租赁税率是多少
  • 购买软件的增值税可以抵扣吗
  • 增值税预缴税需要申报吗
  • 所得税预警税负率
  • 24个问题
  • 讲师费发票开票科目
  • 企业固定资产损失包括
  • 小规模纳税人专票如何申报
  • 可供出售金融资产发生减值会计处理
  • 预提费用年底如何结转
  • 粮食购销企业
  • 进口货物账务处理外币
  • 所得税退税会计分录为啥要借贷所得税费用
  • w11系统激活码
  • 营改增后建筑业怎么开票
  • 卖废旧物品账务处理
  • 土地受让方交的税是什么
  • 小孩不爱吃蔬菜怎么办?
  • 非货币性资产投资特殊性税务处理
  • php的strcmp
  • 元素鼠标失灵了怎么办
  • 新个税讲解
  • 公司可以不再提取法定公积金
  • 一般纳税人两费附加减免规定
  • phpcms安装无法连接数据库服务器
  • 农民工专用账户回执单
  • 印花税计算公式
  • 营业执照上有劳务派遣还需要办其他手续吗
  • python中myqr的用法
  • 金蝶做账流程视频
  • sql server2005一个表中可以设置
  • windows7的安装方式
  • 原材料的主要账目有哪些
  • 房屋租赁合同印花税怎么交,一年一次吗
  • 运输途中的合理损耗计入入账价值
  • 公司代缴个税怎么做账
  • 记账凭证错误的更正方法
  • 企业所得税季报是填累计数吗
  • 工资挂账怎样做账
  • 增值税是主税吗
  • 上年度财务费用会计分录
  • 加油站固定资产折旧方法
  • 补偿款怎么写才能有效
  • 年末递延所得税资产的账面余额
  • 其他费用包括哪些内容
  • Windows下System Volume Information文件夹是干嘛用的?
  • ubuntu20.0.4安装
  • netbeui怎么安装
  • bios设置密码怎么设置
  • window10节电模式怎么关闭
  • ubuntu ftp服务器怎么搭建
  • 国产系统麒麟和统信
  • os x 10.11 el capitan系统安装图文教程
  • 新版itunes怎么导入音乐
  • win8系统特点
  • nodejs和mysql
  • python怎么图像处理
  • lru缓存机制是什么
  • 如何获取医院电子发票
  • scp 将数据从一台linux服务器复制到另一台linux服务器
  • python3 mongodb
  • python写汉字代码
  • javascript构造函数继承
  • 解决烧心最快方法
  • 南京国家税务局网上办税服务厅
  • 深圳2021纳税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设