使用AI豆包寫一個車輛信息管理頁面

記錄一個基本的車輛信息管理頁面,由豆包撰寫完成,只需要微調頁面即可。

主要功能是車輛信息的查詢、新增、編輯,項目用到了uniapp、vue3、ts、uni-ui、z-paging

頁面效果如下:

?

以上界面均由豆包生成,完成度非常高,增、刪、查、改都實現了,加上組件的能力如z-paging、uni-ui組件庫,列表的分頁查詢、彈出窗等為用戶帶來良好的交互體驗。

以下是前端源碼(90%豆包+10%人工)

<template><z-paging ref="zPageRef" @query="fetchVehicleList" v-model="dataList"><!-- 搜索和篩選 --><template #top><!-- 頭部導航 --><view class="header"><view class="search-bar"><uni-search-bar v-model="searchQuery" placeholder="搜索車牌號碼、車主姓名或品牌"@confirm="handleSearch"></uni-search-bar></view><button class="add-btn" @click="showAddModal"><uni-icons type="plusempty" size="24" color="#0f80ff"></uni-icons><text>新增車輛</text></button></view></template><!-- 車輛列表 --><view class="vehicle-management"><view class="vehicle-list"><view class="vehicle-items"><view class="vehicle-item" v-for="(vehicle, index) in dataList" :key="index"><view class="vehicle-info"><view class="plate-number"><text>{{ vehicle.carNum }}</text><uni-tag :type="vehicle.type=='商戶' ? 'primary' : 'success'":text="vehicle.type=='商戶' ? '商戶' : '內部員工'"></uni-tag></view><view class="basic-info"><text class="name">車主: {{ vehicle.name }}</text><text class="tel">電話: {{ vehicle.tel }}</text></view><view class="basic-info"><text class="tel">職務: {{ vehicle.duty }}</text></view><view class="basic-info"><text class="tel">商戶名稱: {{ vehicle.brandName }}</text><text class="tel">展位號: {{ vehicle.boothNum }}</text></view></view><view class="vehicle-actions"><button class="view-btn" @click="viewVehicle(vehicle)"><uni-icons type="info" size="20" color="#0f80ff"></uni-icons></button><button class="edit-btn" @click="editVehicle(vehicle)"><uni-icons type="compose" size="20" color="#0f80ff"></uni-icons></button><button class="delete-btn" @click="confirmDelete(vehicle)"><uni-icons type="trash" size="20" color="#ff4500"></uni-icons></button></view></view></view></view><!-- 車輛表單模態框 --><uni-popup ref="vehicleFormPopup" type="center" :custom-style="popupStyle"><view class="vehicle-form"><view class="form-header"><text class="form-title">{{ isEditing ? '編輯車輛信息' : '新增車輛信息' }}</text><uni-icons type="closeempty" size="24" color="#666" @click="closeFormModal"></uni-icons></view><view class="form-content"><!-- 基本信息 --><view class="form-section"><view class="form-item"><text class="item-label">車牌號碼</text><view class="plate-input"><picker :range="provinces" @change="onProvinceChange"><view class="province-selector"><text>{{ formData.province }}</text><uni-icons type="arrowdown" size="18" color="#999"></uni-icons></view></picker><input v-model="formData.carNum" placeholder="請輸入車牌號碼" maxlength="6" /></view></view><view class="form-item"><text class="item-label">車主姓名</text><input v-model="formData.name" placeholder="請輸入車主姓名" /></view><view class="form-item"><text class="item-label">聯系電話</text><input v-model="formData.tel" placeholder="請輸入聯系電話" type="number" /></view><view class="form-item"><text class="item-label">車輛類型</text><picker :range="types" @change="onTypeChange"><view class="type-selector"><text>{{ formData.type || '請選擇車輛類型' }}</text><uni-icons type="arrowdown" size="18" color="#999"></uni-icons></view></picker></view></view><!-- 商戶 --><view v-if="formData.type=='商戶'" class="form-section"><view class="form-item"><text class="item-label">商戶名稱/品牌:</text><input v-model="formData.brandName" placeholder="商戶名稱/品牌" /></view><view class="form-item"><text class="item-label">展位號</text><input v-model="formData.boothNum" placeholder="請輸入展位號" /></view></view><!-- 內部員工 --><view v-if="formData.type=='內部員工'" class="form-section"><view class="form-item"><text class="item-label">職務</text><input v-model="formData.duty" placeholder="請輸入職務" /></view></view><view class="form-actions"><button class="cancel-btn" @click="closeFormModal">取消</button><button class="save-btn" @click="saveVehicle">保存</button></view></view></view></uni-popup><!-- 車輛詳情模態框 --><uni-popup ref="vehicleDetailPopup" type="bottom" :custom-style="popupStyle"><view class="vehicle-detail"><view class="detail-header"><text class="detail-title">車輛詳情</text><uni-icons type="closeempty" size="24" color="#666" @click="closeDetailModal"></uni-icons></view><view class="detail-content"><view class="detail-info"><view class="plate-number"><text>{{ selectedVehicle.carNum }}</text><uni-tag :type="selectedVehicle.brandName ? 'primary' : 'success'":text="selectedVehicle.brandName ? '商戶' : '內部員工'"></uni-tag></view><view class="info-group"><view class="info-item"><text class="info-label">車主姓名:</text><text class="info-value">{{ selectedVehicle.name }}</text></view><view class="info-item"><text class="info-label">聯系電話:</text><text class="info-value">{{ selectedVehicle.tel }}</text></view><view v-if="selectedVehicle.brandName" class=""><view class="info-item"><text class="info-label">商戶品牌:</text><text class="info-value">{{ selectedVehicle.brand }}</text></view><view class="info-item"><text class="info-label">展位號:</text><text class="info-value">{{ selectedVehicle.boothNum }}</text></view></view><view v-else class=""><view class="info-item"><text class="info-label">職務:</text><text class="info-value">{{ selectedVehicle.duty }}</text></view></view><view class="info-item"><text class="info-label">登記時間:</text><text class="info-value">{{ formatDate(selectedVehicle.inputtime*1000) }}</text></view><view class="info-item"><text class="info-label">違規次數:</text><text class="info-value">{{ selectedVehicle.violationNum || '無' }}</text></view></view></view><!-- 違規記錄 --><view class="violation-records"v-if="selectedVehicle.violations && selectedVehicle.violations.length > 0"><text class="records-title">違規記錄 ({{ selectedVehicle.violations.length }})</text><view class="record-item" v-for="(violation, index) in selectedVehicle.violations":key="index"><view class="record-header"><text class="record-time">{{ violation.time }}</text><textclass="record-type {{ violation.type === '占用多位' ? 'type-multiple' : 'type-forbidden' }}">{{ violation.type }}</text></view><text class="record-location">位置: {{ violation.location }}</text><text class="record-punishment">處理: {{ violation.punishment }}</text></view></view></view><view class="detail-actions"><button class="edit-btn" @click="editFromDetail">編輯信息</button><button class="violation-btn" @click="reportViolation">上報違規</button></view></view></uni-popup><!-- 自定義底部導航 --><CustomTabBar :tabList="tabList" :activeColor="'#409EFF'" :normalColor="'#666'" /></view></z-paging>
</template><script setup lang="ts">import { ref, reactive, onMounted, watch, computed } from 'vue';import { useRouter } from 'vue-router';import CustomTabBar from '@/components/CustomTabBar.vue'import request from '../../../utils/http2';import { formatDate } from '@/utils/date'// 頁面數據const searchQuery = ref('');const selectedVehicleType = ref('');const selectedStatus = ref('');const zPageRef = ref();const vehicleFormPopup = ref(null);const vehicleDetailPopup = ref(null);const popupStyle = ref('height: 60vh; border-radius: 20rpx 20rpx 0 0;');const dataList = ref({})// 數據配置const provinces = ref(['京', '津', '冀', '晉', '蒙', '遼', '吉', '黑','滬', '蘇', '浙', '皖', '閩', '贛', '魯', '豫','鄂', '湘', '粵', '桂', '瓊', '渝', '川', '貴','云', '藏', '陜', '甘', '青', '寧', '新']);const types = ['商戶', '內部員工'];const statusOptions = ref(['全部', '正常', '違規', '黑名單']);// 底部導航配置const tabList = ref([{name: 'record',path: '/pages/ffep/car/car',text: '過夜登記',icon: 'checkbox',activeIcon: 'checkbox-filled'},{name: 'violation',path: 'parkingViolation',text: '違規登記',icon: 'close',activeIcon: 'clear'},{name: 'manager',path: 'manager',text: '車輛管理',icon: 'calendar',activeIcon: 'calendar-filled'},{name: 'statistics',path: '/pages/ffep/car/statistics',text: '統計',icon: 'info',activeIcon: 'info-filled'}])// 表單數據const formData = reactive({id: '',province: '粵',carNum: '',name: '',tel: '',duty: '',brandName: '',boothNum: '',status: '正常',remark: '',registerTime: '',type: ''});// 選中的車輛const selectedVehicle = reactive({id: '',carNum: '',name: '',tel: '',duty: '',brandName: '',boothNum: '',status: '',violations:[]});// 狀態const isEditing = ref(false);const loadingText = ref('加載中...');const onTypeChange = (e) => {formData.type = types[e.detail.value]}// 加載車輛列表const fetchVehicleList = async (pageIndex : number, pageSize : number) => {try {// 構建查詢參數const params = {pageNo: pageIndex,pageSize: pageSize,keyword: searchQuery.value,duty: selectedVehicleType.value || undefined,status: selectedStatus.value || undefined};// 調用API獲取車輛列表const res = await request({url: '/api/ffep/parking/carlist',method: 'GET',data: params});if (res.code === 1) {zPageRef.value.complete(res.data)} else {uni.showToast({title: res.msg || '獲取數據失敗',icon: 'none'});zPageRef.value.complete(false);}} catch (error) {console.error('獲取車輛列表失敗', error);uni.showToast({title: '網絡錯誤,請稍后重試',icon: 'none'});zPageRef.value.complete(false);}};// 刷新列表const onRefresh = () => {zPageRef.value?.refresh();};// 加載更多const onLoadMore = () => {zPageRef.value?.loadMore();};// 處理搜索const handleSearch = () => {onRefresh();};// 顯示新增車輛模態框const showAddModal = () => {// 重置表單resetForm();isEditing.value = false;vehicleFormPopup.value.open();};// 查看車輛詳情const viewVehicle = (vehicle : any) => {// 復制車輛數據到詳情對象Object.assign(selectedVehicle, vehicle);// 獲取車輛違規記錄getVehicleViolations(vehicle.carNum);vehicleDetailPopup.value.open();};// 獲取車輛違規記錄const getVehicleViolations = async (carNum : string) => {const res = await request({url: `/api/ffep/parking/getVehicleViolations`,method: 'POST',data: {carNum: carNum}});if (res.code === 1) {selectedVehicle.violations = res.data || [];} else {selectedVehicle.violations = [];uni.showToast({title: res.msg || '獲取違規記錄失敗',icon: 'none'});}};// 編輯車輛const editVehicle = (vehicle : any) => {// 復制車輛數據到表單Object.assign(formData, vehicle);isEditing.value = true;vehicleFormPopup.value.open();};// 從詳情頁編輯const editFromDetail = () => {// 復制詳情數據到表單Object.assign(formData, selectedVehicle);isEditing.value = true;// 關閉詳情模態框,打開表單模態框vehicleDetailPopup.value.close();setTimeout(() => {vehicleFormPopup.value.open();}, 300);};// 上報違規const reportViolation = () => {// 關閉詳情模態框vehicleDetailPopup.value.close();// 跳轉到違規上報頁面,傳遞車輛IDuni.navigateTo({url: `/pages/violation/report?vehicleId=${selectedVehicle.id}`});};// 表單相關事件處理const onProvinceChange = (e : any) => {formData.province = provinces.value[e.detail.value];};// 重置表單const resetForm = () => {formData.id = '';formData.province = '粵';formData.carNum = '';formData.name = '';formData.tel = '';formData.duty = '';formData.brand = '';formData.color = '';formData.status = '正常';formData.remark = '';formData.registerTime = '';};// 關閉表單模態框const closeFormModal = () => {vehicleFormPopup.value.close();};// 關閉詳情模態框const closeDetailModal = () => {vehicleDetailPopup.value.close();};// 保存車輛信息const saveVehicle = async () => {// 表單驗證if (!formData.carNum.trim()) {uni.showToast({title: '請輸入車牌號碼',icon: 'none'});return;}if (!formData.name.trim()) {uni.showToast({title: '請輸入車主姓名',icon: 'none'});return;}if (!formData.tel.trim()) {uni.showToast({title: '請輸入聯系電話',icon: 'none'});return;}if (!formData.type) {uni.showToast({title: '請選擇車輛類型',icon: 'none'});return;}try {let apiUrl = '';let method = '';if (isEditing.value) {// 編輯apiUrl = `/api/ffep/parking/editcar`;method = 'PUT';} else {// 新增apiUrl = '/api/ffep/parking/addcar';method = 'POST';}// 調用API保存車輛信息const res = await request({url: apiUrl,method,data: formData});if (res.code === 1) {uni.showToast({title: res.msg,icon: 'success'});// 關閉模態框closeFormModal();// 刷新列表onRefresh();} else {uni.showToast({title: res.msg || (isEditing.value ? '更新失敗' : '添加失敗'),icon: 'none'});}} catch (error) {console.error('保存車輛信息失敗', error);uni.showToast({title: '網絡錯誤,請稍后重試',icon: 'none'});}};// 確認刪除車輛const confirmDelete = (vehicle : any) => {uni.showModal({title: '確認刪除',content: `確定要刪除車牌為${vehicle.carNum}的車輛信息嗎?`,success: async (res) => {if (res.confirm) {try {// 調用API刪除車輛const result = await request({url: `/api/ffep/parking/delcar`,method: 'DELETE',data:{id:vehicle.id}});if (result.code === 1) {uni.showToast({title: '刪除成功',icon: 'success'});// 刷新列表onRefresh();} else {uni.showToast({title: result.msg || '刪除失敗',icon: 'none'});}} catch (error) {console.error('刪除車輛失敗', error);uni.showToast({title: '網絡錯誤,請稍后重試',icon: 'none'});}}}});};// 頁面加載時初始化onMounted(() => {zPageRef.value.reload()// 初始化微信JSSDK(如果需要)// initWecomJssdk();});
</script><style lang="scss" scoped>.vehicle-management {min-height: 100vh;background-color: #f5f5f5;}.header {display: flex;align-items: center;justify-content: space-between;height: 100rpx;background-color: #0f80ff;padding: 0 30rpx;.add-btn {display: flex;align-items: center;background-color: #ffffff;color: #0f80ff;border-radius: 20rpx;padding: 8rpx 20rpx;height: 75%;text {margin-left: 10rpx;font-size: 28rpx;}}}.vehicle-list {padding: 0 20rpx;.vehicle-items {.vehicle-item {display: flex;justify-content: space-between;background-color: #fff;border-radius: 16rpx;padding: 20rpx;margin-bottom: 20rpx;box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);.vehicle-info {flex: 1;.plate-number {display: flex;font-size: 32rpx;font-weight: bold;color: #333;margin-bottom: 10rpx;}.basic-info {display: flex;margin-bottom: 10rpx;.name,.tel {font-size: 26rpx;color: #666;margin-right: 20rpx;}}.extra-info {display: flex;flex-wrap: wrap;.type,.brand,.status {font-size: 24rpx;color: #999;margin-right: 20rpx;margin-bottom: 10rpx;}.status-normal {color: #00b42a;}.status-warning {color: #ff7d00;}}}.vehicle-actions {display: flex;flex-direction: column;justify-content: space-around;button {width: 60rpx;height: 60rpx;display: flex;align-items: center;justify-content: center;background-color: #f5f5f5;border-radius: 50%;margin-bottom: 10rpx;}}}}}// 表單模態框樣式.vehicle-form {background-color: #fff;border-radius: 20rpx 20rpx 0 0;height: 100%;overflow: hidden;.form-header {display: flex;align-items: center;justify-content: space-between;padding: 30rpx;border-bottom: 1rpx solid #e5e6eb;.form-title {font-size: 32rpx;font-weight: bold;color: #333;}}.form-content {padding: 20rpx 30rpx;height: calc(100% - 160rpx);overflow-y: auto;.form-section {margin-bottom: 30rpx;.section-title {font-size: 28rpx;font-weight: bold;color: #333;margin-bottom: 20rpx;}.form-item {margin-bottom: 25rpx;.item-label {display: block;font-size: 26rpx;color: #666;margin-bottom: 10rpx;}.plate-input {display: flex;.province-selector {width: 120rpx;height: 80rpx;display: flex;align-items: center;justify-content: center;border: 1rpx solid #e5e6eb;border-radius: 10rpx;margin-right: 20rpx;font-size: 32rpx;}input {flex: 1;border: 1rpx solid #e5e6eb;border-radius: 10rpx;padding: 0 20rpx;font-size: 32rpx;}}input,textarea {width: 100%;border: 1rpx solid #e5e6eb;border-radius: 10rpx;padding: 20rpx;font-size: 28rpx;}.type-selector,.status-selector {display: flex;align-items: center;justify-content: space-between;border: 1rpx solid #e5e6eb;border-radius: 10rpx;padding: 20rpx;font-size: 28rpx;}}}}.form-actions {display: flex;padding: 30rpx;border-top: 1rpx solid #e5e6eb;.cancel-btn,.save-btn {flex: 1;height: 90rpx;border-radius: 50rpx;font-size: 32rpx;display: flex;align-items: center;justify-content: center;}.cancel-btn {color: #666;border: 1rpx solid #e5e6eb;margin-right: 30rpx;}.save-btn {color: #fff;background-color: #0f80ff;}}}// 詳情模態框樣式.vehicle-detail {background-color: #fff;border-radius: 20rpx 20rpx 0 0;height: 100%;overflow: hidden;.detail-header {display: flex;align-items: center;justify-content: space-between;padding: 30rpx;border-bottom: 1rpx solid #e5e6eb;.detail-title {font-size: 32rpx;font-weight: bold;color: #333;width: 200rpx;}}.detail-content {padding: 20rpx 30rpx;height: calc(100% - 160rpx);overflow-y: auto;.detail-info {margin-bottom: 30rpx;.plate-number {display: flex;align-items: center;font-size: 36rpx;font-weight: bold;color: #333;margin-bottom: 20rpx;.status {font-size: 26rpx;font-weight: normal;margin-left: 20rpx;padding: 5rpx 15rpx;border-radius: 50rpx;}.status-normal {color: #00b42a;background-color: #e8fff3;}.status-warning {color: #ff7d00;background-color: #fff7e8;}}.info-group {.info-item {display: flex;align-items: center;margin-bottom: 20rpx;.info-label {width: 200rpx;font-size: 28rpx;color: #666;}.info-value {flex: 1;font-size: 28rpx;color: #333;}}}}.violation-records {.records-title {font-size: 28rpx;font-weight: bold;color: #333;margin-bottom: 20rpx;}.record-item {background-color: #f9f9f9;border-radius: 10rpx;padding: 20rpx;margin-bottom: 20rpx;.record-header {display: flex;align-items: center;justify-content: space-between;margin-bottom: 10rpx;.record-time {font-size: 26rpx;color: #666;}.record-type {font-size: 24rpx;padding: 5rpx 15rpx;border-radius: 50rpx;}.type-multiple {color: #ff7d00;background-color: #fff7e8;}.type-forbidden {color: #f53f3f;background-color: #ffeded;}}.record-location,.record-punishment {font-size: 26rpx;color: #666;margin-bottom: 5rpx;}}}}.detail-actions {display: flex;padding: 30rpx;border-top: 1rpx solid #e5e6eb;.edit-btn,.violation-btn {flex: 1;height: 90rpx;border-radius: 50rpx;font-size: 32rpx;display: flex;align-items: center;justify-content: center;}.edit-btn {color: #0f80ff;border: 1rpx solid #0f80ff;margin-right: 30rpx;}.violation-btn {color: #fff;background-color: #0f80ff;}}}
</style>

生成拿到的代碼只需要根據業務需求,刪改或調整部分字段,完成api接口數據對接,頁面都可以直接投入到業務使用場景了,整個頁面耗時(包括API接口后端開發)不到3小時完成,個人來說已經是非常高效,不得不感慨科技改變生活!!

當然不足也是有的,例如細節的地方需要微調,比如布局、樣式,AI雖然強大但是會耗費非常多的溝通時間,這部分建議手動修改。其次是AI有時候未必了解組件的使用方式,例如z-paging組件標簽的位置,經過多次溝通調整還是沒辦法正常運行,終歸還是得靠自己把控吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/86829.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/86829.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/86829.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《HarmonyOSNext應用防崩指南:30秒定位JS Crash的破案手冊》

《HarmonyOSNext應用防崩指南&#xff1a;30秒定位JS Crash的破案手冊》 ##Harmony OS Next ##Ark Ts ##教育 本文適用于教育科普行業進行學習&#xff0c;有錯誤之處請指出我會修改。 &#x1f4a5; 哇哦&#xff01;JS Crash崩潰日志完全解析手冊 當你的應用突然閃退時&am…

閱讀筆記(3) 單層網絡:回歸(下)

閱讀筆記(3) 單層網絡:回歸(下) 該筆記是DataWhale組隊學習計劃&#xff08;共度AI新圣經&#xff1a;深度學習基礎與概念&#xff09;的Task03 以下內容為個人理解&#xff0c;可能存在不準確或疏漏之處&#xff0c;請以教材為主。 1. 為什么書上要提到決策理論&#xff1f; …

Mac OS系統每次開機啟動后,提示:輸入密碼來解鎖磁盤“Data”,去除提示的解決方法

問題描述&#xff1a; Mac mini外接了一個磁盤&#xff08;EX_Mac&#xff09;為默認使用的系統盤&#xff0c;內置的硬盤&#xff08;Macintosh HD&#xff09;為Mac mini自帶的系統盤 外置硬盤系統每次開機都會掛載內置磁盤&#xff0c;同時會提示需要輸入密碼來解鎖磁盤“…

CSS Flex 布局中flex-shrink: 0使用

flex-shrink: 0 是 CSS Flexbox 布局中的一個關鍵屬性&#xff0c;用于禁止彈性項目&#xff08;flex item&#xff09;在容器空間不足時被壓縮。以下是詳細解釋和示例&#xff1a; 核心作用 當容器的可用空間小于所有彈性項目的總寬度&#xff08;或高度&#xff09;時&#…

WHERE 子句中使用子查詢:深度解析與最佳實踐

&#x1f50d; WHERE 子句中使用子查詢&#xff1a;深度解析與最佳實踐 在 WHERE 子句中使用子查詢是 SQL 的高階技巧&#xff0c;可實現動態條件過濾。以下是全面指南&#xff0c;涵蓋語法、類型、陷阱及優化策略&#xff1a; &#x1f4dc; 一、基礎語法結構 SELECT 列 FR…

從0到1:不文明現象隨手拍小程序開發日記(一)

前期調研 不文明現象隨手拍小程序&#xff1a;在城市的快速發展進程中&#xff0c;不文明現象時有發生&#xff0c;為了有效解決這一問題&#xff0c;提升城市文明程度&#xff0c; 市民若發現不文明行為&#xff0c;如亂扔垃圾、隨地吐痰、破壞公共設施、違規停車等&#xff…

STM32F103之SPI軟件讀寫W25Q64

一、W25Q64簡介 1.1 簡介 W25Q64(Nor flash)、 24位地址&#xff0c;64Mbit/8MByte、是一種低成本、小型化、使用簡單的非易失性存儲器&#xff0c;常用于數據存儲、字庫存儲、固件程序存儲等場景 時鐘頻率&#xff1a;最大80MHz(STM32F103系統時鐘為72MHz…

vue3+element-plus 組件功能實現 上傳功能

一、整體功能概述 這段代碼實現了一個基于 Vue 3 和 Element Plus 組件庫的文件導入及預覽功能模塊。主要包含了一個主導入對話框&#xff08;用于上傳文件、展示文件相關信息、進行導入操作等&#xff09;以及一個用于預覽文件內容的預覽對話框。支持導入特定格式&#xff08;…

OpenCV中創建Mat對象

第1章 創建Mat對象 1.1. 創建空的 Mat 對象 cv::Mat mat; 1.2. 創建灰度圖像 // 創建一個 3 行 4 列、8位無符號單通道矩陣&#xff08;相當于灰度圖&#xff09; cv::Mat mat(3, 4, CV_8UC1); 1.3. 創建彩色圖像 // 創建三通道矩陣&#xff08;相當于彩色圖像&#xff0…

10、做中學 | 五年級下期 Golang循環控制

一、一個小需求 我想要打印10遍hello world,你想怎么編寫呢&#xff1f; // 需求&#xff1a;打印10遍"hello world"fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world")fmt.Println("hello world…

機器學習算法-K近鄰算法-KNN

1. K近鄰算法是什么&#xff1f; 定義&#xff1a; K近鄰是一種基于實例的懶惰學習&#xff08;Lazy Learning&#xff09;算法&#xff0c;用于分類和回歸任務。 核心思想&#xff1a;“物以類聚”——通過計算樣本間的距離&#xff0c;找到目標點的最近K個鄰居&#xff0c;…

基于vue框架的法律知識咨詢普及系統gwuv7(程序+源碼+數據庫+調試部署+開發環境)帶論文文檔1萬字以上,文末可獲取,系統界面在最后面。

系統程序文件列表 項目功能&#xff1a;用戶,知識類型,律師,律師推薦,法律知識,新聞類型,法律新聞,咨詢律師 開題報告內容 基于Vue框架的法律知識咨詢普及系統開題報告 一、研究背景與意義 隨著法治社會建設的深入推進&#xff0c;公眾對法律知識的需求呈現爆發式增長。然而…

Netty 揭秘CompositeByteBuf:零拷貝優化核心技術

CompositeByteBuf 類 核心設計目標?? ??虛擬緩沖區??&#xff1a;將多個 ByteBuf 合并為單一邏輯視圖&#xff0c;減少數據復制。??零拷貝優化??&#xff1a;通過組合而非復制提升性能。??引用計數管理??&#xff1a;統一管理底層 ByteBuf 的生命周期。 核心成…

用css實現文字字體顏色漸變

用css實現文字字體顏色漸變 background-clip 是CSS3中新增的屬性&#xff0c;可以用于指定背景圖片或顏色的繪制范圍。利用 background-clip 屬性實現文字顏色從左到右、從綠到白的漸變效果&#xff1a; 代碼如下&#xff1a; .gradient-color {background-image: linear-gr…

SpringBatch處理數據性能優化

SpringBatch的Step默認使用同步方式批量處理數據&#xff0c;也可以通過配置將讀數改為同步&#xff0c;處理和寫入改為異步方式。 1、同步處理Step SpringBatch的Step一般由ItemReader、ItemProcessor和ItemWriter組成&#xff0c;其中ItemProcessor是可選的。他的設計思路的…

【機器學習深度學習】前饋神經網絡(單隱藏層)

目錄 一、什么是前饋神經網絡&#xff1f; 二、數學表達式是什么&#xff1f; 三、為什么需要“非線性函數”&#xff1f; 四、NumPy 實現前饋神經網絡代碼示例 五、 運行結果 六、代碼解析 6.1 初始化部分 6.2 前向傳播 6.3 計算損失&#xff08;Loss&#xff09; 6…

設計模式系列(08):創建型模式 - 原型模式

系列導讀&#xff1a;完成創建型模式的學習&#xff0c;我們來看最后一個創建型模式——原型模式。它通過復制已有對象來創建新對象&#xff0c;是一種獨特的創建方式。 解決什么問題&#xff1a;通過復制現有對象來創建新對象&#xff0c;而不是重新實例化。適用于對象創建成本…

區塊鏈到底是什么?

區塊鏈本質上是一種去中心化的分布式賬本技術&#xff0c;具有以下核心特點&#xff1a; - 去中心化&#xff1a;沒有中央管理機構&#xff0c;數據由網絡中的多個節點共同維護&#xff0c;比如比特幣網絡中各個節點都保存著完整賬本。 - 分布式存儲&#xff1a;數據不是存在一…

系統架構設計師論文分享-論ATAM的使用

我的軟考歷程 摘要 2023年2月&#xff0c;我司通過了研發紗線MES系統的立項&#xff0c;該系統為國內紗線工廠提供SAAS服務&#xff0c;旨在提高紗線工廠的數字化和智能化水平。我在本項目中擔任系統架構設計師&#xff0c;負責整個項目的架構設計工作。本文結合我在該項目中…

vue-28(服務器端渲染(SSR)簡介及其優勢)

服務器端渲染&#xff08;SSR&#xff09;簡介及其優勢 服務器端渲染&#xff08;SSR&#xff09;是現代網絡應用的關鍵技術&#xff0c;特別是使用 Vue.js 等框架構建的應用。它通過在服務器上渲染初始應用狀態來彌補傳統單頁應用&#xff08;SPA&#xff09;的局限性&#x…