国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

B074-詳情富文本 服務(wù)上下架 高級(jí)查詢 分頁(yè) 查看詳情

這篇具有很好參考價(jià)值的文章主要介紹了B074-詳情富文本 服務(wù)上下架 高級(jí)查詢 分頁(yè) 查看詳情。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

服務(wù)詳情修改優(yōu)化

B074-詳情富文本 服務(wù)上下架 高級(jí)查詢 分頁(yè) 查看詳情,筆記總結(jié),前端,后端,java,es6

ProductServiceImpl

product后端保存操作修改

    @Override
    public void update(Product product) {
        ProductDetail detail = product.getDetail();
        if(detail !=null){
            if(detail.getId() !=null){
                productDetailMapper.update(detail);
            }else{
                productDetailMapper.save(detail);
            }
        }

        productMapper.update(product);
    }
Product.vue

顯示新增界面清除頁(yè)面緩存

			//顯示新增界面
			handleAdd: function () {
				this.fileList = [];//清楚頁(yè)面緩存數(shù)據(jù)
				this.productFormVisible = true;//顯示新增彈出框
				this.productForm = {
					id: null,
					name: '',
					resources: '',
					saleprice: 0,
					costprice: 0,
					detail:{
						id:null,
						intro:'',
						orderNotice:''
					}
				};
			},

詳情數(shù)據(jù)-富文本-vue-quill-editor

使用步驟

見文檔

測(cè)試

B074-詳情富文本 服務(wù)上下架 高級(jí)查詢 分頁(yè) 查看詳情,筆記總結(jié),前端,后端,java,es6
B074-詳情富文本 服務(wù)上下架 高級(jí)查詢 分頁(yè) 查看詳情,筆記總結(jié),前端,后端,java,es6

圖片的訪問方式

1.鏈接訪問,
2.頁(yè)面本地存儲(chǔ)二進(jìn)制字節(jié)碼,base64加密,長(zhǎng)度很長(zhǎng)不好保存到數(shù)據(jù)庫(kù),

富文本集成fastDfs

修改頁(yè)面本地存儲(chǔ)為鏈接存儲(chǔ),步驟見文檔
結(jié)果:
B074-詳情富文本 服務(wù)上下架 高級(jí)查詢 分頁(yè) 查看詳情,筆記總結(jié),前端,后端,java,es6

后臺(tái)服務(wù)上下架(批量)

前端開始

頁(yè)面加兩個(gè)按鈕,未選置灰,綁定事件,傳id數(shù)組到后端,

<el-form-item>
	<el-button type="success" @click="onsale" :disabled="this.sels.length===0">上架</el-button>
</el-form-item>
<el-form-item>
	<el-button type="warning" @click="offsale" :disabled="this.sels.length===0">下架</el-button>
</el-form-item>
		sels: [],//列表選中行
		onsale(){
			var ids = this.sels.map(item => item.id);
			//獲取選中的行
			if(!this.sels || this.sels.length  <1){
				this.$message({ message: '老鐵,你不選中數(shù)據(jù),臣妾上架不了啊....',type: 'error'});
				return;
			}
			this.$confirm('確認(rèn)上架選中記錄嗎?', '溫馨提示', {
				type: 'warning'
			}).then(() => {
				this.listLoading = true;
				this.$http.post('/product/onsale',ids).then((res) => {
					this.listLoading = false;
					if(res.data.success){
						this.$message({
							message: '上架成功',
							type: 'success'
						});
					}else{
						this.$message({
							message: res.data.message,
							type: 'error'
						});
					}
					this.getProducts();
				});
			}).catch(() => {

			});
		},
		offsale(){
			var ids = this.sels.map(item => item.id);
			//獲取選中的行
			if(!this.sels || this.sels.length  <1){
				this.$message({ message: '老鐵,你不選中數(shù)據(jù),臣妾下架不了啊....',type: 'error'});
				return;
			}
			this.$confirm('確認(rèn)下架選中記錄嗎?', '提示', {
				type: 'warning'
			}).then(() => {
				this.listLoading = true;
				this.$http.post('/product/offsale',ids).then((res) => {
					this.listLoading = false;
					if(res.data.success){
						this.$message({
							message: '下架成功',
							type: 'success'
						});
					}else{
						this.$message({
							message: res.data.message,
							type: 'error'
						});
					}
					this.getProducts();
				});
			}).catch(() => {

			});
		}
后端完成
ProductController
    /**
     * 批量上架
     */
    @PostMapping("/onsale")
    public AjaxResult onsale(@RequestBody List<Long> ids){
        try {
            productService.onOrOffSale(ids,1);//flag:0下架 1上架
            return AjaxResult.me();
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.me().setMessage("上架失??!"+e.getMessage());
        }
    }

    /**
     * 批量下架
     */
    @PostMapping("/offsale")
    public AjaxResult offsale(@RequestBody List<Long> ids){
        try {
            productService.onOrOffSale(ids,0);//flag:0下架 1上架
            return AjaxResult.me();
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.me().setMessage("下架失敗!"+e.getMessage());
        }
    }
ProductServiceImpl
    @Override
    public void onOrOffSale(List<Long> ids, int flag) {
        //1.判斷是上架還是下架
        Map<String,Object> map = new HashMap<>();
        map.put("ids", ids);
        if(flag == 1){
            //1.1 調(diào)整狀態(tài)
            //1.2時(shí)間
            map.put("onSaleTime",new Date());
            productMapper.onSale(map);
        }else{
            //1.1 調(diào)整狀態(tài)
            //1.2時(shí)間
            map.put("offSaleTime",new Date());
            productMapper.offSale(map);
        }
    }
ProductMapper
    <!--void onSale(Map<String, Object> map);-->
    <update id="onSale" >
        UPDATE t_product set state=1, onsaletime=#{onSaleTime} where id in
        <foreach collection="ids" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </update>


    <!--void offSale(Map<String, Object> map);-->
    <update id="offSale" >
        UPDATE t_product set state=0, offsaletime=#{offSaleTime} where id in
        <foreach collection="ids" item="id" open="(" close=")" separator=",">
            #{id}
        </foreach>
    </update>

前臺(tái)展示上架

前端開始

index修改欄目名稱,拷貝search為product,修改引入路徑,index支持跳轉(zhuǎn)到product,product修改欄目名稱并支持跳轉(zhuǎn)到index,
拷貝success為adoutUs,修改引入路徑,index支持跳轉(zhuǎn)到adoutUs,adoutUs修改頁(yè)面內(nèi)容,

product引入vue和axios,用div包住body里的內(nèi)容,寫vue實(shí)例,

后端完成
ProductQuery
@Data
public class ProductQuery extends BaseQuery {
    //查詢上下架的標(biāo)識(shí)
    private Integer state;
}
ProductController
    /**
     * 前端主站使用的接口,只查詢上架的
     */
    @PostMapping("/list")
    public PageList<Product> queryWebPage(@RequestBody ProductQuery productQuery){
        productQuery.setState(1);
        return productService.queryPage(productQuery);
    }
ProductMapper
    <!--Integer queryCount(ProductQuery productQuery);-->
    <select id="queryCount" parameterType="ProductQuery" resultType="integer">
        SELECT count(*) FROM t_product
        <include refid="whereSql"/>
    </select>

    <!--List<Product> queryData(ProductQuery productQuery)-->
    <select id="queryData" resultType="Product" parameterType="ProductQuery">
        SELECT * FROM t_product
        <include refid="whereSql"/>
        limit #{start},#{pageSize}
    </select>

    <!--Where條件-->
    <sql id="whereSql">
        <where>
            <if test="keyword != null and keyword != ''">
                AND name LIKE concat("%",#{keyword},"%")
            </if>
            <if test="state != null">
                AND state = #{state}
            </if>
        </where>
    </sql>
測(cè)試

注釋掉攔截器,然后可以免登錄用swagger測(cè)試

前端展示列表和圖片

調(diào)整入?yún)@取數(shù)據(jù),遍歷,按照規(guī)格渲染到頁(yè)面

fastDfs傳800×800可以自定轉(zhuǎn)430×430,350×350,60×60,

product.html
<ul class="am-avg-sm-2 am-avg-md-3 am-avg-lg-4 boxes">
	<li v-for="product in pageList.rows">
		<div class="i-pic limit">
			<img :src="baseFastUrl + product.resources.split(',')[0] + imgSuffix" />
			<p class="title fl">【官方旗艦店】{{product.name}}</p>
			<p class="price fl">
				<b></b>
				<strong>{{product.saleprice}}</strong>
			</p>
			<p class="number fl">
				銷量<span>{{product.salecount}}</span>
			</p>
		</div>
	</li>
</ul>
<script type="text/javascript">
    new Vue({
        el: "#productDiv",
        data: {
            baseFastUrl: "http://115.159.217.249:8888/",
            imgSuffix: "_350x350.jpg",
            pageList: {
                total: 0,
                rows: []
            },
            queryParams: {
                pageSize: 12,
                currentPage: 1,
                keyword: '',
            }
        },
        methods: {
            getProducts() {
                this.$http.post("/product/list", this.queryParams)
                    .then(result => {
                        result = result.data;//pageList  rows  total
                        console.log(result);
                        if (result) {
                            this.pageList = result;
                        }
                    })
                    .catch(result => {
                        console.log(result);
                        alert("系統(tǒng)錯(cuò)誤!");
                    })
            }
        },
        mounted() {
            this.getProducts();
        }
    })
</script>

服務(wù)高級(jí)查詢

元素綁定

<div class="search-bar pr">
	<a name="index_none_header_sysc" href="#"></a>
	<form>
		<input id="searchInput" name="index_none_header_sysc" v-model="queryParams.keyword" type="text" placeholder="搜索" autocomplete="off">
		<input id="ai-topsearch" class="submit am-btn" @click="search" value="搜索" index="1" type="button">
	</form>
</div>

方法綁定

search() {
		this.queryParams.currentPage = 1;//定為到第一頁(yè)
		this.getProducts();
	},

分頁(yè)

頁(yè)數(shù)計(jì)算與展示,不同頁(yè)查詢,左右箭頭分頁(yè)查詢并限制不超過第一頁(yè)和最后頁(yè),

<!--分頁(yè) -->
<ul class="am-pagination am-pagination-right">
	<!--class="am-disabled"-->
	<li>
		<a href="javascript:;" @click="handCurrentPage(queryParams.currentPage -1)">&laquo;</a>
	</li>

	<li v-for="page in countPage">
		<a href="javascript:;" @click="handCurrentPage(page)">
			{{page}}
		</a>
	</li>

	<li><a href="javascript:;" @click="handCurrentPage(queryParams.currentPage +1)">&raquo;</a></li>
</ul>
	computed: {
		countPage() {
			//向上取整
			return Math.ceil(this.pageList.total / this.queryParams.pageSize);
		}
	},
		handCurrentPage(page) {//動(dòng)態(tài)分頁(yè)
			if (page == 0) {
				this.queryParams.currentPage = 1;//定位到第一頁(yè)
			} else if (page >= this.countPage) {
				this.queryParams.currentPage = this.countPage;//定位到最后頁(yè)
			} else {
				this.queryParams.currentPage = page;//定位到所選頁(yè)
			}
			this.getProducts();
		},

查看詳情

跳轉(zhuǎn)詳情頁(yè)
<li v-for="product in pageList.rows" @click="goDetail(product.id)">
	goDetail(productId) {//跳轉(zhuǎn)到詳情頁(yè)
		//當(dāng)前窗體打開
		//location.href = "http://localhost/productDetail.html?productId=" + productId;
		window.open("http://localhost/productDetail.html?productId=" + productId);
	},
數(shù)據(jù)展示后臺(tái)接口
ProductController
    @GetMapping("/{id}")
    @ApiOperation(value = "查詢一條服務(wù)數(shù)據(jù)",notes = "需要傳入id")
    public Product getById(@PathVariable("id") Long id){
        return productService.getById(id);
    }
ProductMapper
    <resultMap id="ProductMap" type="Product">
        <!--基礎(chǔ)屬性-->
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="resources" property="resources"/>
        <result column="saleprice" property="saleprice"/>
        <result column="costprice" property="costprice"/>
        <result column="offsaletime" property="offsaletime"/>
        <result column="onsaletime" property="onsaletime"/>
        <result column="state" property="state"/>
        <result column="createtime" property="createtime"/>
        <result column="salecount" property="salecount"/>

        <association property="detail" javaType="ProductDetail">
            <id column="did" property="id"/>
            <result column="intro" property="intro"/>
            <result column="orderNotice" property="orderNotice"/>
        </association>
    </resultMap>

    <!--Product loadById(Long id);-->
    <select id="loadById" resultMap="ProductMap">
        SELECT
            p.*, d.id did,
            d.intro,
            d.orderNotice
        FROM
            t_product p
        LEFT JOIN t_product_detail d ON p.id = d.product_id
        WHERE
            p.id =  #{id}
    </select>
前臺(tái)展示
導(dǎo)入vue和axios
獲取數(shù)據(jù).js
<script type="text/javascript">
    new Vue({
        el:"#productDetailDiv",
        data:{
            product:{},
            fastDfsUrl:"http://115.159.217.249:8888",
            midimgSuffix:"_350x350.jpg",
            smallimgSuffix:"_60x60.jpg",
            resources:[]
        },
        mounted(){
            let productId = parseUrlParams2Obj(location.href).productId;
            this.$http.get("/product/"+productId)
                .then(result=>{
                    this.product = result.data;
                    if(this.product.resources){
                        this.resources = this.product.resources.split(',');
                    }
                })
                .catch(result=>{
                    console.log(result);
                    alert("系統(tǒng)錯(cuò)誤");
                })
        }
    });
</script>
展示數(shù)據(jù)
圖片展示
		<div class="tb-booth tb-pic tb-s310">
			<a :href="fastDfsUrl+resources[0]">
				<img :src="fastDfsUrl+resources[0]+midimgSuffix" alt="細(xì)節(jié)展示放大鏡特效" :rel="fastDfsUrl+resources[0]" class="jqzoom" />
			</a>
		</div>
		<ul class="tb-thumb" id="thumblist">
			<li v-for="(resource,index) in resources">
				<div class="tb-pic tb-s40 tb-selected" v-if="index==0">
					<a href="#"><img :src="fastDfsUrl+resource+smallimgSuffix" :mid="fastDfsUrl+resource+midimgSuffix" :big="fastDfsUrl+resource"></a>
				</div>
				<div class="tb-pic tb-s40" v-else>
					<a href="#"><img :src="fastDfsUrl+resource+smallimgSuffix" :mid="fastDfsUrl+resource+midimgSuffix" :big="fastDfsUrl+resource"></a>
				</div>
			</li>
		</ul>
詳情
		<div class="am-tab-panel am-fade am-in am-active">
			<div class="J_Brand">
				<div class="attr-list-hd tm-clear">
					<h4>服務(wù)簡(jiǎn)介:</h4></div>
				<div class="clear"></div>
				<div v-html="product.detail.intro" v-if="product.detail">
				</div>
				<div class="clear"></div>
			</div>
			<div class="details">
				<div class="attr-list-hd after-market-hd">
					<h4>預(yù)定須知</h4>
				</div>
				<div class="twlistNews">
					<div v-html="product.detail.orderNotice" v-if="product.detail">
					</div>
				</div>
			</div>
			<div class="clear"></div>
		</div>
名稱,售價(jià),原價(jià),銷量

文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-602993.html

切換圖片js
<script type="text/javascript">
	// 切換圖片js
	$(document).ready(function() {
		$(".jqzoom").imagezoom();
		$("#thumblist").on("click","#thumblist li a", function() {
			$(this).parents("li").addClass("tb-selected").siblings().removeClass("tb-selected");
			$(".jqzoom").attr('src', $(this).find("img").attr("mid"));
			$(".jqzoom").attr('rel', $(this).find("img").attr("big"));
		});
		/*$("#thumblist li a").click(function() {
			$(this).parents("li").addClass("tb-selected").siblings().removeClass("tb-selected");
			$(".jqzoom").attr('src', $(this).find("img").attr("mid"));
			$(".jqzoom").attr('rel', $(this).find("img").attr("big"));
		});*/
	});
</script>

到了這里,關(guān)于B074-詳情富文本 服務(wù)上下架 高級(jí)查詢 分頁(yè) 查看詳情的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • linux--top命令查看系統(tǒng)所有詳情

    linux--top命令查看系統(tǒng)所有詳情

    Linux系統(tǒng)可以通過 top 命令查看系統(tǒng)的CPU、內(nèi)存、運(yùn)行時(shí)間、交換分區(qū)、執(zhí)行的線程等信息。通過top命令可以有效的發(fā)現(xiàn)系統(tǒng)的缺陷出在哪里。是內(nèi)存不夠、CPU處理能力不夠、IO讀寫過高。 一、top命令的第一行“top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00, 0.00”顯示的內(nèi)容依

    2024年02月16日
    瀏覽(26)
  • 【 文本到上下文 #4】NLP 與 ML

    【 文本到上下文 #4】NLP 與 ML

    ????????歡迎回到我們的 NLP 博客系列!當(dāng)我們進(jìn)入第四部分時(shí),焦點(diǎn)轉(zhuǎn)移到機(jī)器學(xué)習(xí) (ML) 和自然語(yǔ)言處理 (NLP) 之間的動(dòng)態(tài)相互作用上。在本章中,我們將深入探討 ML 和 NLP 的迷人協(xié)同作用,解開理論概念和實(shí)際應(yīng)用。 ????????AI、ML 和 NLP 雖然經(jīng)?;Q使用,但

    2024年01月20日
    瀏覽(24)
  • C# 純text文本字符添加上下角標(biāo)

    C# 純text文本字符添加上下角標(biāo)

    工作的需求,需要在GridView列HeaderText中插入帶入帶有上標(biāo)和下標(biāo)的字符串,比如這樣的一個(gè)字符串:。。 解決辦法:使用轉(zhuǎn)義字符加Unicode的NumEntity就可以實(shí)現(xiàn)了。定義字符串如下:\\\"O#8322;\\\"。其中O#8322;為?。 實(shí)現(xiàn): ? ? 效果: ? ? 一些常用字符如下: Common Arithmetic Alebgra C

    2024年02月03日
    瀏覽(15)
  • 【文本到上下文 #5】:RNN、LSTM 和 GRU

    【文本到上下文 #5】:RNN、LSTM 和 GRU

    ????????歡迎來(lái)到“完整的 NLP 指南:文本到上下文 #5”,這是我們對(duì)自然語(yǔ)言處理 (NLP) 和深度學(xué)習(xí)的持續(xù)探索。從NLP的基礎(chǔ)知識(shí)到機(jī)器學(xué)習(xí)應(yīng)用程序,我們現(xiàn)在深入研究了神經(jīng)網(wǎng)絡(luò)的復(fù)雜世界及其處理語(yǔ)言的深刻能力。 ????????在本期中,我們將重點(diǎn)介紹順序數(shù)據(jù)

    2024年01月16日
    瀏覽(19)
  • 6.6.6、查看 SELinux 安全上下文

    關(guān)注公眾號(hào) “融碼一生”,領(lǐng)取全套 PDF / 電子書 SELinux 管理過程中,進(jìn)程是否可以正確地訪問文件資源取決于它們的安全上下文。進(jìn)程和文件都有自己的安全上下文,SELinux 會(huì)為進(jìn)程和文件添加安全信息標(biāo)簽(比如 SELinux 用戶、角色、類型、類別等),當(dāng)運(yùn)行 SELinux 后所有這

    2024年04月28日
    瀏覽(14)
  • Python高級(jí)語(yǔ)法:with語(yǔ)句和上下文管理器

    Python高級(jí)語(yǔ)法:with語(yǔ)句和上下文管理器

    1.文件操作說(shuō)明: ①文件使用完后必須關(guān)閉。 ②因文件對(duì)象會(huì)占用操作系統(tǒng)的資源,并且操作系統(tǒng)同一時(shí)間能打開的文件數(shù)量也是有限的。 例如:? 2. 存在的安全隱患: ① 由于文件讀寫時(shí)都有可能產(chǎn)生IOError,一旦出錯(cuò),后面的f.close()就不會(huì)調(diào)用。 例如: 運(yùn)行結(jié)果: 3.try…except…

    2024年02月04日
    瀏覽(23)
  • 【文本到上下文 #2】:NLP 的數(shù)據(jù)預(yù)處理步驟

    【文本到上下文 #2】:NLP 的數(shù)據(jù)預(yù)處理步驟

    ????????歡迎閱讀此文,NLP 愛好者!當(dāng)我們繼續(xù)探索自然語(yǔ)言處理 (NLP) 的廣闊前景時(shí),我們已經(jīng)在最初的博客中探討了它的歷史、應(yīng)用和挑戰(zhàn)。今天,我們更深入地探討 NLP 的核心——數(shù)據(jù)預(yù)處理的復(fù)雜世界。 ????????這篇文章是我們的“完整 NLP 指南:文本到上下文

    2024年01月18日
    瀏覽(33)
  • RabbitMQ查詢隊(duì)列使用情況和消費(fèi)者詳情實(shí)現(xiàn)

    spring-boot-starter-amqp 是Spring Boot框架中與AMQP(高級(jí)消息隊(duì)列協(xié)議)相關(guān)的自動(dòng)配置啟動(dòng)器。它提供了使用AMQP進(jìn)行消息傳遞和異步通信的功能。 以下是 spring-boot-starter-amqp 的主要特性和功能: 自動(dòng)配置: spring-boot-starter-amqp 通過自動(dòng)配置功能簡(jiǎn)化了與AMQP相關(guān)的組件的集成。它根

    2024年02月12日
    瀏覽(19)
  • 【Django | 開發(fā)】面試招聘信息網(wǎng)站(美化admin站點(diǎn)&添加查看簡(jiǎn)歷詳情鏈接)

    【Django | 開發(fā)】面試招聘信息網(wǎng)站(美化admin站點(diǎn)&添加查看簡(jiǎn)歷詳情鏈接)

    ???♂? 個(gè)人主頁(yè): @計(jì)算機(jī)魔術(shù)師 ????? 作者簡(jiǎn)介:CSDN內(nèi)容合伙人,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者。 ?? 推薦一款找工作神器網(wǎng)站: 寶藏網(wǎng)站 |筆試題庫(kù)|面試經(jīng)驗(yàn)|實(shí)習(xí)招聘內(nèi)推| 該文章收錄專欄 ?—【Django | 項(xiàng)目開發(fā)】從入門到上線 專欄—? 由于前文所開發(fā)的簡(jiǎn)歷投遞,并將簡(jiǎn)

    2023年04月20日
    瀏覽(36)
  • 高級(jí)網(wǎng)絡(luò)技術(shù)ENSP(1-2章原理詳情和配置)手敲有誤請(qǐng)私信修正

    第一章 1.企業(yè)網(wǎng)體系結(jié)構(gòu) 1.1接入層 (Access layer):為終端設(shè)備提供接入和轉(zhuǎn)發(fā)。 匯聚層(aggregation Layer):這一層的交換機(jī)需要將接入層各個(gè)交換機(jī)發(fā)來(lái)的流量進(jìn)行匯聚。 核心層 (Core Layer):使用高性能的核心層交換機(jī)提供流量快速轉(zhuǎn)發(fā)。 2.網(wǎng)絡(luò)可靠性 2.1 BFD(Bidirectional Forwarding

    2024年01月16日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包