中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

蘇州做公司網(wǎng)站設(shè)計(jì)的公司最新熱搜新聞

蘇州做公司網(wǎng)站設(shè)計(jì)的公司,最新熱搜新聞,愛(ài)瘋卷網(wǎng)站怎么做,網(wǎng)站編輯是網(wǎng)頁(yè)制作么這周相比上周感覺(jué)挺好的哈哈哈,可能只有自己感覺(jué)蠻好的,旁邊師父忙的飛起了要,不僅趕工作還要回答我亂七八糟的問(wèn)題(心疼一秒)。這周也是立秋&七夕咯,立秋快樂(lè)哇家人們(雖然還是很熱嘛&…

這周相比上周感覺(jué)挺好的哈哈哈,可能只有自己感覺(jué)蠻好的,旁邊師父忙的飛起了要,不僅趕工作還要回答我亂七八糟的問(wèn)題(心疼一秒)。這周也是立秋&七夕咯,立秋快樂(lè)哇家人們(雖然還是很熱嘛)

總結(jié)

  • 上周新增自定義表單對(duì)話框修改完善
  • 更多篩選模特對(duì)話框 完成
  • Vue.js

篩選模特對(duì)話框

功能概述

  • 篩選模特的性別地域信息,選中模特,點(diǎn)擊確定會(huì)將模特添加模特列表的最前面并關(guān)閉對(duì)話框,點(diǎn)擊刪除會(huì)刪除模特并刷新列表。

思路

  • 框架搭建(這點(diǎn)就不說(shuō)了)
  • 篩選邏輯
  • 刷新列表
  • 刪除邏輯
  • 取消與確定添加邏輯

一、篩選邏輯

  • 綁定 sexList 數(shù)據(jù)列表,并將 state.sexCheckedList 作為當(dāng)前選中的值列表。
  • 在選擇器中做出選擇時(shí),觸發(fā) onSexChecked 和 onAreaChecked 方法。
  • 事件處理方法:onSexChecked: 當(dāng)用戶選擇性別時(shí),此方法被調(diào)用,并更新 state.sexCheckedList
  • 攜帶篩選到的列表數(shù)據(jù)id,請(qǐng)求后端返回?cái)?shù)據(jù)
  • 這里要注意map的使用,在處理后端返回的數(shù)據(jù)時(shí)經(jīng)過(guò)map處理會(huì)返回一個(gè)數(shù)組,后面需要把list賦給數(shù)組類型的datalist,所以這里使用map。
<script setup>...const onSexChecked = (checkedList: Array<SelectInfo>) => {state.sexCheckedList = checkedList;};const onAreaChecked = (checkedList: Array<SelectInfo>) => {state.areaCheckedList = checkedList;};const modelData = async () => {const path = '/resource/xxxx';const params = {per_page: 35,sex: state.sexCheckedList.map((i) => i.id).join(),region: state.areaCheckedList.map((i) => i.id).join(),};const res = await Http.get(path, params);return {list: res.data.list.data.map((i: any) => {return {id: i.id,path: i.image_path,name: i.name,type: i.type,age_group: i.age_group,sex: i.sex,region: i.region,delete: i.source === 'Supplier',};}),currentPage: res.data.list.current_page,perPage: res.data.list.per_page,totalPage: res.data.list.total,};};
</script>
<template><AModal>...<div><Select:data-list="sexList":checked-list="state.sexCheckedList"@checked="onSexChecked"/><Select:data-list="areaList":checked-list="state.areaCheckedList"@checked="onAreaChecked"/></div>...</AModal>
</template>

二、刷新列表

  • 將后端返回?cái)?shù)據(jù)賦給我們使用的字段
  • 在組件一掛載時(shí)就更新列表
<script setup>...onMounted(() => {getModelList();});...const getModelList = async () => {const { list, currentPage, perPage, totalPage } = await modelData();tableSet.currentPage = currentPage;tableSet.perPage = perPage;tableSet.totalPage = totalPage;state.dataList = list;};
</script>

三、刪除邏輯

  • 點(diǎn)擊刪除圖標(biāo),觸發(fā)相應(yīng)事件
  • 獲取所選模特的id
  • 攜帶參數(shù)發(fā)送請(qǐng)求
  • 再次刷新列表
const modelDeleted = async (modelInfo: ModelInfo) => {state.remove = true;console.log('modelDeleted');const path = '/resource/xxx';const params = {id: modelInfo.id,};await Http.post(path, params);getModelList();
};

四、取消與確定

  • 這里還是使用了emits將事件交由父組件監(jiān)聽(tīng)并執(zhí)行相應(yīng)的方法。
  • 定義emits: 在子組件的選項(xiàng)中定義 emits 選項(xiàng)來(lái)聲明組件可以觸發(fā)的事件名稱。
  • 觸發(fā)事件: 使用 $emit 方法來(lái)觸發(fā)這些事件,并傳遞相應(yīng)的參數(shù)。
  • 父組件使用@監(jiān)聽(tīng)事件,并執(zhí)行相應(yīng)的處理函數(shù)。
<script setup>...const handleCancel = () => {emits('cancel', state.remove);};const submitModel = () => {emits('submit', state.checked);};...
</script>
<template>...<AButton @click="handleCancel">取消</AButton><AButton type="primary" @click="submitModel">生成</AButton>...
</template>
  • 完整代碼
<script lang="ts" setup>import { ref, onMounted } from 'vue';import ModelInfo from './definition/ModelInfo';import Select from './Select.vue';import PicItem from './PicItem.vue';import SelectInfo from './definition/SelectInfo';import sexList from './data/sexList';import areaList from './data/areaList';const emits = defineEmits(['update:checkedList', 'cancel', 'submit']);const state = reactive({remove: false,dataList: [] as Array<ModelInfo>,sexCheckedList: [] as Array<SelectInfo>,areaCheckedList: [] as Array<SelectInfo>,checked: {} as ModelInfo,});const onSexChecked = (checkedList: Array<SelectInfo>) => {state.sexCheckedList = checkedList;};const onAreaChecked = (checkedList: Array<SelectInfo>) => {state.areaCheckedList = checkedList;};const modelDeleted = async (modelInfo: ModelInfo) => {state.remove = true;console.log('modelDeleted');const path = '/xxxx';const params = {id: modelInfo.id,};await Http.post(path, params);getModelList();};const onChecked = (picInfo: ModelInfo, b: boolean) => {state.checked = picInfo;};const tableSet = reactive({currentPage: 1,perPage: 1,totalPage: 200,});onMounted(() => {getModelList();});const handleCancel = () => {emits('cancel', state.remove);};const submitModel = () => {emits('submit', state.checked);};const onChange = (page, pageSize) => {getModelList();};const modelData = async () => {const path = '/resource/xxxx';const params = {per_page: 35,sex: state.sexCheckedList.map((i) => i.id).join(),region: state.areaCheckedList.map((i) => i.id).join(),};const res = await Http.get(path, params);return {list: res.data.list.data.map((i: any) => {return {id: i.id,path: i.image_path,name: i.name,type: i.type,age_group: i.age_group,sex: i.sex,region: i.region,delete: i.source === 'Supplier',};}),currentPage: res.data.list.current_page,perPage: res.data.list.per_page,totalPage: res.data.list.total,};};const getModelList = async () => {const { list, currentPage, perPage, totalPage } = await modelData();tableSet.currentPage = currentPage;tableSet.perPage = perPage;tableSet.totalPage = totalPage;state.dataList = list;};
</script>
<template><div><AModal@cancel="handleCancel"><div class="select-model"><Select:data-list="sexList":checked-list="state.sexCheckedList"@checked="onSexChecked"/><Select:data-list="areaList":checked-list="state.areaCheckedList"@checked="onAreaChecked"/></div><!-- 模特列表 --><div class="select-list"><PicItemv-for="picInfo in state.dataList":key="picInfo.id":pic-info="picInfo":checked="state.checked.id === picInfo.id"@update:checked="(b) => onChecked(picInfo, b)"@model-deleted="modelDeleted"/></div><!-- 分頁(yè)器 --><div><APaginationv-model:current="tableSet.currentPage"v-model:page-size="tableSet.perPage"show-quick-jumper:total="tableSet.totalPage":show-total="showTotalFunc"@change="onChange"/></div><!-- 生成取消按鈕 --><template #footer><AButton @click="handleCancel">取消</AButton><AButton type="primary" @click="submitModel">生成</AButton></template></AModal></div>
</template>

寫(xiě)在最后

  • 又是熬夜的一天,一到晚上精神就好起來(lái)了(現(xiàn)在還是有點(diǎn)困了)
  • 論實(shí)習(xí)遇到神仙師父什么感受哈哈哈,慶幸自己實(shí)習(xí)遇到的人都蠻好!開(kāi)心開(kāi)心(嘻嘻)
  • 潦草的周報(bào)啊啊怎么寫(xiě)嘛!(不嘻嘻)
  • 滾去睡覺(jué)了,開(kāi)啟第八周咯(馬上倆月了啊啊怎么怎么這么快)
http://www.risenshineclean.com/news/21967.html

相關(guān)文章:

  • 免費(fèi)下載建設(shè)銀行官方網(wǎng)站下載百度優(yōu)化
  • 日本做仿牌網(wǎng)站怎樣做好銷售和客戶交流
  • 美食網(wǎng)站建設(shè)多少錢營(yíng)銷型網(wǎng)站分為哪幾種
  • 360網(wǎng)站推廣官網(wǎng)網(wǎng)址app推廣引流
  • 律師事務(wù)所網(wǎng)站建設(shè)企業(yè)網(wǎng)站類型有哪些
  • 有哪些好的做兼職網(wǎng)站百度2022年版本下載
  • 北京城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站網(wǎng)絡(luò)seo排名
  • 四川成都網(wǎng)站制作廣州網(wǎng)站優(yōu)化費(fèi)用
  • git怎么做隱私政策網(wǎng)站鏈接生成器
  • 如何做網(wǎng)站走查專業(yè)seo站長(zhǎng)工具全面查詢網(wǎng)站
  • 北京微網(wǎng)站appseo文章代寫(xiě)一篇多少錢
  • 免費(fèi)php網(wǎng)站有哪些百度seo怎么樣優(yōu)化
  • 怎么做免費(fèi)推廣網(wǎng)站百度怎么投廣告
  • 成都手機(jī)端建站模板百度官方認(rèn)證
  • 網(wǎng)站建設(shè)制作定制百度競(jìng)價(jià)怎么做效果好
  • 平板微信hd版seo網(wǎng)絡(luò)推廣是什么意思
  • 上海網(wǎng)站建設(shè)seodian培訓(xùn)學(xué)校機(jī)構(gòu)有哪些
  • 番禺網(wǎng)站建設(shè)外包今日油價(jià)92汽油
  • 自己的網(wǎng)站怎么做關(guān)鍵詞優(yōu)化吉林seo外包
  • 南山公司網(wǎng)站建設(shè)合作seo公司
  • 有哪些做問(wèn)卷調(diào)查賺錢的網(wǎng)站6網(wǎng)絡(luò)營(yíng)銷推廣平臺(tái)
  • 個(gè)人做動(dòng)漫資源網(wǎng)站比較好用的搜索引擎
  • 汕頭建站平臺(tái)今日軍事新聞?lì)^條打仗
  • 沈陽(yáng)做網(wǎng)站的公司排名預(yù)測(cè)2025年網(wǎng)絡(luò)營(yíng)銷的發(fā)展
  • wordpress首頁(yè)導(dǎo)航添加圖片尺寸優(yōu)化網(wǎng)站界面的工具
  • 網(wǎng)站建設(shè)修改建議個(gè)人網(wǎng)站的制作模板
  • 上海裝修公司排名境遠(yuǎn)鄭州百度網(wǎng)站快速優(yōu)化
  • 企業(yè)網(wǎng)站模板 演示網(wǎng)站建設(shè)方案模板
  • 變更備案提示 網(wǎng)站主辦者沖突軍事新聞今日最新消息
  • 怎么做網(wǎng)站上的模擬動(dòng)畫(huà)百度競(jìng)價(jià)在哪里開(kāi)戶