当前位置: 首页 > news >正文

vue3页面编写-导入导出excel、展开查询项等

数据保持

<router-view v-slot="{ Component, route }"><keep-alive><component :is="Component" :key="route.name" v-if="route.meta.keepAlive" /></keep-alive><component :is="Component" :key="route.name"  v-if="!route.meta.keepAlive"/>
</router-view>
{   // path: "/main/rvCarBom",meta: {keepAlive: true,isBack: false},component: () => import('@/pages/rv/bom/rvCarBom.vue'),},

功能页面

<!----><template><div class="rv_root_container"><div class="rv_container"><div><el-form :inline="true" label-position="right" size="small"><el-row><el-form-item label="装车基地"><el-select v-model="dddd.form.city" clearable placeholder="请选择" style="width:150px" @change="handleChangeFactory"><el-optionv-for="item in dddd.cityList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="车系"><el-select v-model="dddd.form.carModel" clearable placeholder="请选择" style="width:150px" @change="handleChangeFactory"><el-optionv-for="item in dddd.carModelList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="车型"><el-select v-model="dddd.form.carType" clearable placeholder="请选择" style="width:150px" @change="handleChangeFactory"><el-optionv-for="item in dddd.carTypeList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="配置"><el-select v-model="dddd.form.carConf" clearable placeholder="请选择" style="width:150px" @change="handleChangeFactory"><el-optionv-for="item in dddd.carConfList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="选装"><el-select v-model="dddd.form.carSel" clearable placeholder="请选择" style="width:150px" @change="handleChangeFactory"><el-optionv-for="item in dddd.carSelList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="国家"><el-select v-model="dddd.form.country" clearable placeholder="请选择" style="width:150px" @change="handleChangeFactory"><el-optionv-for="item in dddd.countryList":key="item":label="item":value="item"></el-option></el-select></el-form-item></el-row><el-row v-if="dddd.isShow"><el-form-item label="总成料号"><el-input type="textarea" :rows="1" :clearable="true" v-model="dddd.form.assemblyMatNumber" style="width:150px"></el-input></el-form-item><el-form-item label="总成描述"><el-input type="textarea" :rows="1" :clearable="true" v-model="dddd.form.assemblyDes" style="width:150px"></el-input></el-form-item><el-form-item label="工厂"><el-select v-model="dddd.form.factory" clearable placeholder="请选择" style="width:150px" @change="handleChangeFactory"><el-optionv-for="item in dddd.factoryList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="线体名称"><el-select v-model="dddd.form.lineName" clearable placeholder="请选择" style="width:150px"><el-optionv-for="item in dddd.lineNameList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="代装厂"><el-input type="textarea" :rows="1" :clearable="true" v-model="dddd.form.buyLocation" style="width:150px"></el-input></el-form-item><el-form-item label="产能检查"><el-select v-model="dddd.form.capacityCheck" clearable placeholder="请选择" style="width:150px"><el-optionv-for="item in dddd.capacityCheckList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="产品大类"><el-select v-model="dddd.form.product" clearable placeholder="请选择" style="width:150px" @change="handleChangeProduct"><el-optionv-for="item in dddd.productList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="产品小类"><el-select v-model="dddd.form.productSub" clearable placeholder="请选择" style="width:150px"><el-optionv-for="item in dddd.productSubList":key="item":label="item":value="item"></el-option></el-select></el-form-item><el-form-item label="计划员"><el-select v-model="dddd.form.planPerson" clearable placeholder="请选择" style="width:150px"><el-optionv-for="item in dddd.planPersonList":key="item":label="item":value="item"></el-option></el-select></el-form-item></el-row><el-row><el-button type="primary" @click="clickSearch" :icon="IconReload">查询</el-button><el-button @click="clickReset" :icon="IconRefresh">重置</el-button><el-button type="primary" @click="clickExport" :icon="IconDownload">导出</el-button><el-button type="primary" @click="clickEdit" :icon="IconPlus">新增</el-button><el-button type="primary" @click="clickDelete" :icon="IconRowRemove">删除</el-button><el-upload class="rv_upload" action="" :show-file-list="false" :on-change="handleOnChange"><el-button type="primary" :icon="IconUpload">导入</el-button></el-upload><el-button text @click="clickTemplate">模板下载</el-button><el-button type="primary" @click="clickShow" :icon="dddd.isShow ? IconArrowUp : IconArrowDown">{{ dddd.isShow ? "收起" : "展开" }}</el-button><a id="aExport" href="#" class="hide"></a></el-row></el-form></div><div class="rv_table"><el-table stripe border show-overflow-tooltip highlight-current-row size="small" class-name="custom-table" header-cell-class-name="custom-header-cell-class-name" :row-class-name="tableRowClassName":data="dddd.tableList" @selection-change="handleSelectionChange"><el-table-column type="selection" align="center" width="50" fixed="left"></el-table-column><el-table-column align="center" width="100" label="操作" fixed="left"><template #default="scope"><el-button type="primary" size="small" @click="clickEdit1(scope.row)" :icon="IconEdit"></el-button><el-button type="danger" size="small" @click="clickDelete1(scope.row)" :icon="IconRowRemove"></el-button></template></el-table-column><el-table-column align="center" type="index" label="序号" width="50" fixed="left"></el-table-column><el-table-column align="center" prop="city" label="装车基地" width="75" fixed="left"></el-table-column><el-table-column align="center" prop="carModel" label="车系" width="75" fixed="left"></el-table-column><el-table-column align="center" prop="carType" label="车型" width="75" fixed="left"></el-table-column><el-table-column align="center" prop="carConf" label="配置" width="75" fixed="left"></el-table-column><el-table-column align="center" prop="carSel" label="选装" width="75" fixed="left"></el-table-column><el-table-column align="center" prop="country" label="国家" width="75" fixed="left"></el-table-column><el-table-column align="center" prop="assemblyMatNumber" label="总成料号" width="150" fixed="left"></el-table-column><el-table-column align="center" prop="assemblyDes" label="总成描述" width="220" fixed="left"></el-table-column><el-table-column align="center" prop="num" label="用量" width="75"></el-table-column><el-table-column align="center" prop="factory" label="工厂" width="75"></el-table-column><el-table-column align="center" prop="carScale" label="份额" width="75"></el-table-column><el-table-column align="center" prop="speLineName" label="线体名称" width="150"></el-table-column><el-table-column align="center" prop="buyLocation" label="代装厂" width="75"></el-table-column><el-table-column align="center" prop="capacityCheck" label="产能检查" width="75"></el-table-column><el-table-column align="center" prop="product" label="产品大类" width="75"></el-table-column><el-table-column align="center" prop="productSub" label="产品小类" width="75"></el-table-column><el-table-column align="center" prop="planPerson" label="计划员" width="75"></el-table-column><el-table-column align="center" prop="carScale1" label="1月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale2" label="2月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale3" label="3月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale4" label="4月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale5" label="5月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale6" label="6月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale7" label="7月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale8" label="8月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale9" label="9月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale10" label="10月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale11" label="11月份额" width="75"></el-table-column><el-table-column align="center" prop="carScale12" label="12月份额" width="75"></el-table-column><el-table-column align="center" prop="lineName" label="特殊线体" width="150"></el-table-column><el-table-column align="center" prop="createName" label="创建人" width="75"></el-table-column><el-table-column align="center" prop="createTime" label="创建时间" width="150"></el-table-column><el-table-column align="center" prop="updateName" label="修改人" width="75"></el-table-column><el-table-column align="center" prop="updateTime" label="修改时间" width="150"></el-table-column></el-table></div><div class="rv_center"><el-pagination small @size-change="handleSizeChange" @current-change="handleCurrentChange":current-page="dddd.pageNum":page-size="dddd.pageSize":page-sizes="[10, 100, 500, 1000, 2000]":total="dddd.total"layout="total, sizes, prev, pager, next, jumper"></el-pagination></div></div></div>
</template>
<style>
.rv_root_container {flex: 1;display: flex;background-color: #f3f3f3;padding: 16px;overflow: hidden;
}
.rv_container {flex: 1;display: flex;flex-direction: column;background-color: white;border-radius: 5px;padding: 16px;overflow: hidden;position: relative;
}
.rv_center {display: flex;align-content: center;justify-content: center;
}
.rv_table {flex: 1;margin-top: 16px;margin-bottom: 16px;position: relative;
}
.rv_upload {line-height: 0.8;margin-left: 16px;
}
.custom-table .cell {padding: 0;justify-content: center;
}
.el-table .warning-row {color: tomato;
}
</style>
<script setup>
import { IconReload, IconRefresh, IconDownload, IconPlus, IconRowRemove, IconUpload, IconArrowUp, IconArrowDown,IconEdit } from "@tabler/icons-vue"
import { basePostReq, sendPostReq } from "@/service/baseReq.js"
import { ApiPaths } from "@/service/Request.js"
import { ElMessage, ElMessageBox } from "element-plus"
import { useRoute, useRouter } from "vue-router"
import { reactive, onActivated } from "vue"const dddd = reactive({form: {},tableList: [],pageSize: 10,pageNum: 1,total: 0,selectBatch: [],isShow: false,factoryList: ['SZ55','X157','C157','HFF5'],lineNameList: [],capacityCheckList: ['是', '否'],productList: [],productSubList: [],planPersonList: [],cityList: [],carModelList: [],carTypeList: [],carConfList: [],carSelList: [],countryList: []
})const route = useRoute()
const router = useRouter()onActivated(() => {if (!route.meta.isBack) {clickReset()dddd.tableList = []}route.meta.isBack = false
})function handleSizeChange(val) {dddd.pageSize = valgetPage()
}
function handleCurrentChange(val) {dddd.pageNum = valgetPage()
}
function handleSelectionChange(val) {dddd.selectBatch = val
}
function tableRowClassName(item) {if (item.row.capacityCheck != '是') {return 'warning-row'}return ''
}
function getParam() {var param = {}if (dddd.form.city) {param.city = dddd.form.city.replace(/[\r\n]/g, ";")}if (dddd.form.carModel) {param.carModel = dddd.form.carModel.replace(/[\r\n]/g, ";")}if (dddd.form.carType) {param.carType = dddd.form.carType.replace(/[\r\n]/g, ";")}if (dddd.form.carConf) {param.carConf = dddd.form.carConf.replace(/[\r\n]/g, ";")}if (dddd.form.carSel) {param.carSel = dddd.form.carSel.replace(/[\r\n]/g, ";")}if (dddd.form.country) {param.country = dddd.form.country.replace(/[\r\n]/g, ";")}if (dddd.form.assemblyMatNumber) {param.assemblyMatNumber = dddd.form.assemblyMatNumber.replace(/[\r\n]/g, ";")}if (dddd.form.assemblyDes) {param.assemblyDes = dddd.form.assemblyDes.replace(/[\r\n]/g, ";")}if (dddd.form.factory) {param.factory = dddd.form.factory}if (dddd.form.buyLocation) {param.buyLocation = dddd.form.buyLocation.replace(/[\r\n]/g, ";")}if (dddd.form.lineName) {param.lineName = dddd.form.lineName}if (dddd.form.capacityCheck) {param.capacityCheck = dddd.form.capacityCheck}if (dddd.form.product) {param.product = dddd.form.product}if (dddd.form.productSub) {param.productSub = dddd.form.productSub}if (dddd.form.planPerson) {param.planPerson = dddd.form.planPerson}return param
}
function clickSearch() {getPage()
}
function getPage() {var param = getParam()param.pageNum = dddd.pageNumparam.pageSize = dddd.pageSizebasePostReq(ApiPaths.rvNeedCarBomGetPage, param, (res) => {if (res) {dddd.tableList = res.datadddd.total = res.total}})
}
function clickReset() {dddd.form = {}dddd.pageNum = 1getInitMap()getCarTypeInitMap()
}
function clickExport() {var param = getParam()var config = {responseType: "blob",}const data = sendPostReq(ApiPaths.rvNeedCarBomExport, param, config, true, true, true, (res) => {if (res) {const blob = new Blob([res])let $a = document.getElementById("aExport")$a.download = "整车bom.xlsx"$a.href = URL.createObjectURL(blob)$a.click()URL.revokeObjectURL($a.href)}})
}
function clickTemplate() {var config = {responseType: "blob",}sendPostReq(ApiPaths.rvNeedCarBomExportTemplate,null,config,true,true,true,(res) => {if (res) {const blob = new Blob([res])let $a = document.getElementById("aExport")$a.download = "整车bom模板.xlsx"$a.href = URL.createObjectURL(blob)$a.click()URL.revokeObjectURL($a.href)}})
}
function handleOnChange(file) {if (file.status == "ready") {var curFile = file.rawconst isExcel = ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",].includes(curFile.type)const isLt1M = curFile.size / 1024 / 1024 < 100if (!isExcel) {ElMessage.error("文件格式为.xlsx")return}if (!isLt1M) {ElMessage.error("文件要小于100M")return}var formData = new FormData()formData.append("file", file.raw)formData.append("param", JSON.stringify(getParam()))var config = {headers: {"Content-Type": "multipart/form-data",},}sendPostReq(ApiPaths.rvNeedCarBomImportFileCheck1,formData,config,true,true,false,(res) => {if (res && res.code == 200) {ElMessage.success("上传成功")}})}
}
function clickDelete() {if (!dddd.selectBatch.length) {ElMessage.error("没有数据被选中")return}ElMessageBox.confirm("是否删除", "温馨提示", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then(() => {var ids = dddd.selectBatch.map((p) => p.id)var param = {}param.ids = idssendPostReq(ApiPaths.rvNeedCarBomRemoveListByIds,param,null,true,true,false,(res) => {if (res && res.code == 200) {ElMessage.success("删除成功")clickSearch()}})})
}
function clickDelete1(item) {if (!item || !item.id) {ElMessage.error("没有id")return}ElMessageBox.confirm("是否删除", "温馨提示", {confirmButtonText: "确定",cancelButtonText: "取消",type: "warning",}).then(() => {var param = {}param.ids = [item.id]sendPostReq(ApiPaths.rvNeedCarBomRemoveListByIds,param,null,true,true,false,(res) => {if (res && res.code == 200) {ElMessage.success("删除成功")clickSearch()}})})
}
function clickEdit() {router.push({ path: "/main/rvCarBomEdit" })
}
function clickEdit1(item) {if (item && item.id) {item.edit = "update"router.push({ path: "/main/rvCarBomEdit",query:item })}
}
function clickShow() {dddd.isShow = !dddd.isShow
}
function getLineName() {var param = {}param.factory = dddd.form.factorybasePostReq(ApiPaths.rvBomCarProductMatGetListLineName, param, (res) => {dddd.lineNameList = res})
}
function handleChangeFactory() {getLineName()
}
function getInitMap() {var param = {}basePostReq(ApiPaths.rvNeedCarBomGetInitMap, param, (res) => {if (res) {dddd.productList = res.productListdddd.productSubList = res.productSubListdddd.planPersonList = res.planPersonListdddd.lineNameList = res.lineNameListdddd.factoryList = res.factoryList}})
}
function getProductSub() {var param = {}if (dddd.form.product) {param.product = dddd.form.product}basePostReq(ApiPaths.rvBomCarProductMatGetListProductSub, param, (res) => {dddd.productSubList = res})
}
function handleChangeProduct() {getProductSub()
}
function getCarTypeInitMap() {var param = {}basePostReq(ApiPaths.rvNeedCarTypeManagerGetCarTypeInitMap, param, (res) => {if (res) {dddd.cityList = res.cityListdddd.carModelList = res.carModelListdddd.carTypeList = res.carTypeListdddd.carSelList = res.carSelListdddd.carConfList = res.carConfListdddd.countryList = res.countryList}})
}
</script>

编辑页面


<!----><template><div class="rv_root_container_edit"><div class="rv_container_edit"><div><el-form label-position="right" size="small"><el-form-item label="装车基地" required><el-input :clearable="true" v-model="dddd.form.city" style="width:150px"></el-input></el-form-item><el-form-item label="车系" required><el-input :clearable="true" v-model="dddd.form.carModel" style="width:150px"></el-input></el-form-item><el-form-item label="车型" required><el-input :clearable="true" v-model="dddd.form.carType" style="width:150px"></el-input></el-form-item><el-form-item label="配置" required><el-input :clearable="true" v-model="dddd.form.carConf" style="width:150px"></el-input></el-form-item><el-form-item label="选装" required><el-input :clearable="true" v-model="dddd.form.carSel" style="width:150px"></el-input></el-form-item><el-form-item label="国家" required><el-input :clearable="true" v-model="dddd.form.country" style="width:150px"></el-input></el-form-item><el-form-item label="总成料号" required><el-input :clearable="true" v-model="dddd.form.assemblyMatNumber" style="width:150px"></el-input></el-form-item><el-form-item label="总成描述" required><el-input :clearable="true" v-model="dddd.form.assemblyDes" style="width:220px"></el-input></el-form-item><el-form-item label="用量" required><el-input :clearable="true" v-model="dddd.form.num" style="width:150px"></el-input></el-form-item><el-form-item label="工厂" required><el-input :clearable="true" v-model="dddd.form.factory" style="width:150px"></el-input></el-form-item><el-form-item label="份额" required><el-input :clearable="true" v-model="dddd.form.carScale" style="width:150px"></el-input></el-form-item><el-form-item label="线体名称"><el-input :clearable="true" v-model="dddd.form.speLineName" style="width:150px" disabled></el-input></el-form-item><el-form-item label="代装厂"><el-input :clearable="true" v-model="dddd.form.buyLocation" style="width:150px"></el-input></el-form-item><el-form-item label="产能检查"><el-input :clearable="true" v-model="dddd.form.capacityCheck" style="width:150px" disabled></el-input></el-form-item><el-form-item label="产品大类"><el-input :clearable="true" v-model="dddd.form.product" style="width:150px" disabled></el-input></el-form-item><el-form-item label="产品小类"><el-input :clearable="true" v-model="dddd.form.productSub" style="width:150px" disabled></el-input></el-form-item><el-form-item label="计划员"><el-input :clearable="true" v-model="dddd.form.planPerson" style="width:150px" disabled></el-input></el-form-item><el-form-item label="1月份额"><el-input :clearable="true" v-model="dddd.form.carScale1" style="width:150px"></el-input></el-form-item><el-form-item label="2月份额"><el-input :clearable="true" v-model="dddd.form.carScale2" style="width:150px"></el-input></el-form-item><el-form-item label="3月份额"><el-input :clearable="true" v-model="dddd.form.carScale3" style="width:150px"></el-input></el-form-item><el-form-item label="4月份额"><el-input :clearable="true" v-model="dddd.form.carScale4" style="width:150px"></el-input></el-form-item><el-form-item label="5月份额"><el-input :clearable="true" v-model="dddd.form.carScale5" style="width:150px"></el-input></el-form-item><el-form-item label="6月份额"><el-input :clearable="true" v-model="dddd.form.carScale6" style="width:150px"></el-input></el-form-item><el-form-item label="7月份额"><el-input :clearable="true" v-model="dddd.form.carScale7" style="width:150px"></el-input></el-form-item><el-form-item label="8月份额"><el-input :clearable="true" v-model="dddd.form.carScale8" style="width:150px"></el-input></el-form-item><el-form-item label="9月份额"><el-input :clearable="true" v-model="dddd.form.carScale9" style="width:150px"></el-input></el-form-item><el-form-item label="10月份额"><el-input :clearable="true" v-model="dddd.form.carScale10" style="width:150px"></el-input></el-form-item><el-form-item label="11月份额"><el-input :clearable="true" v-model="dddd.form.carScale11" style="width:150px"></el-input></el-form-item><el-form-item label="12月份额"><el-input :clearable="true" v-model="dddd.form.carScale12" style="width:150px"></el-input></el-form-item><el-form-item label="特殊线体"><el-input :clearable="true" v-model="dddd.form.lineName" style="width:150px"></el-input></el-form-item><el-form-item><el-button type="primary" @click="clickBack" :icon="IconBackpackOff">返回</el-button><el-button type="primary" @click="clickConfirm" :icon="IconDoorEnter">确定</el-button></el-form-item></el-form></div></div></div>
</template><style>
.rv_root_container_edit {display: flex;flex: 1;background-color: #f3f3f3;padding: 16px;overflow: hidden;
}
.rv_container_edit {flex: 1;background-color: white;border-radius: 5px;padding: 16px;overflow: auto;
}
</style><script setup>
import { IconBackpackOff, IconDoorEnter } from "@tabler/icons-vue";
import { sendPostReq } from "@/service/baseReq.js";
import { ApiPaths } from "@/service/Request.js";
import { ElMessage } from "element-plus";
import { onBeforeRouteLeave, useRoute, useRouter } from "vue-router"
import { reactive, onActivated } from "vue"const dddd = reactive({form: {id: null}
})const route = useRoute()
const router = useRouter()
onBeforeRouteLeave((to, from, next) => {to.meta.isBack = truenext()
})onActivated(() => {if (route.query && route.query.id) {dddd.form = route.query} else {dddd.form = {}}
})if (route.query && route.query.id) {dddd.form = route.query
}function clickConfirm() {if (dddd.form.edit == "update") {sendPostReq(ApiPaths.rvNeedCarBomUpdateOneById, dddd.form, null, true, true, false, (res) => {if (res && res.code == 200) {ElMessage.success("更新成功")clickBack()}})} else {sendPostReq(ApiPaths.rvNeedCarBomSave, dddd.form, null, true, true, false, (res) => {if (res && res.code == 200) {ElMessage.success("新增成功")clickBack()}})}
}function clickBack() {router.back()
}</script>

改变cell颜色

//
.el-table .warning-row {color: tomato;
}
.el-table .ws-normal .el-tooltip{white-space: pre-line;
}//
:cell-class-name="tableCellClassName"//
function tableCellClassName(item) {if (item.rowIndex % 5  == 3 && item.columnIndex == 15) {return 'ws-normal'} else if (item.rowIndex % 5  == 2) {for(var i = 0; i < dddd.titleList.length; i ++) {var curCell = dddd.titleList[i]if (item.columnIndex == 15 + i && item.row[curCell] < 0) {return 'warning-row'}}}return ''
}

相关文章:

vue3页面编写-导入导出excel、展开查询项等

数据保持 <router-view v-slot"{ Component, route }"><keep-alive><component :is"Component" :key"route.name" v-if"route.meta.keepAlive" /></keep-alive><component :is"Component" :key…...

Java学习 - Spring Boot整合 Thymeleaf 实例

什么是 Thymeleaf Thymeleaf 是新一代的 Java 模板引擎&#xff0c;类似于 Velocity、FreeMarker 等传统引擎&#xff0c;其语言和 HTML 很接近&#xff0c;而且扩展性更高&#xff1b; Thymeleaf 的主要目的是将优雅的模板引入开发工作流程中&#xff0c;并将 HTML 在浏览器中…...

ubuntu20.04安装终端终结者并设置为默认终端

1、安装 terminator sudo apt-get install terminator 2、Ctrl Alt T 试一下打开什么终端&#xff0c;我的默认启动的是terminator;如果想换换默认的终端&#xff0c;还需以下一步 3、安装dconf-tools&#xff0c;这个是设置默认终端的必须 sudo apt-get install dconf-tools…...

以Zookeeper为例 浅谈脑裂与奇数节点问题

一、脑裂现象的定义与影响 脑裂&#xff08;split-brain&#xff09;是指在分布式系统中&#xff0c;因网络分区或其他故障导致系统被切割成两个或多个相互独立的子系统&#xff0c;每个子系统可能独立选举出自己的领导节点。这一现象在依赖中心领导节点&#xff08;如Elastic…...

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s&#xff08;已成功搭建&#xff09; 环境配置 主节点 k8s-master&#xff1a;4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10.16.64.67&#xff09; 从节点 k8s-node1&#xff1a; 4核8G、40GB硬盘、CentOS7.9&#xff08;内网IP&#xff1a;10…...

C++学习笔记-友元函数的定义与使用

一、引言 在C中&#xff0c;友元函数&#xff08;Friend Function&#xff09;是一个独特而强大的特性&#xff0c;它打破了类的封装性&#xff0c;允许一个或多个非成员函数访问类的私有&#xff08;private&#xff09;和保护&#xff08;protected&#xff09;成员。尽管这…...

熵、交叉熵、KL散度

这里写目录标题 熵KL散度引入交叉熵。交叉熵的二分类公式&#xff1a; 再次理解SoftMax函数结束 熵 熵&#xff0c;是一个物理上的概念&#xff0c;表示一个系统的不确定性程度&#xff0c;或者表示一个系统的混乱程序。 下边是信息熵的演示&#xff1a; 信息熵的公式如下&…...

THS配置keepalive(yjm)

启动完THS管理控制台和THS后&#xff0c;登录控制台&#xff0c;进入实例管理》节点管理&#xff0c;可以分别使用界面配置和编辑配置设置长连接。 1、界面配置 点击界面配置》集群设置&#xff0c;启用长连接&#xff0c;设置长连接数、最大请求数和超时时间。 2、编辑配置 …...

新加坡裸机云多IP服务器特性

新加坡裸机云多IP服务器是一种高性能、稳定性强&#xff0c;且具备多IP地址特性的服务器。它主要适用于需要高度计算性能、网络连接稳定和高安全性的业务场景&#xff0c;如跨境外贸等。下面将详细探讨该类型服务器的特性&#xff0c;rak部落为您整理发布新加坡裸机云多IP服务器…...

深入理解ADB:Android调试桥详解与使用指南

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Android ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 1. 什么是ADB&#xff1f; ADB的基本原理&#xff1a; 2. ADB的安装与配置 安装ADB工具集&#xff1a; 配置ADB环境变量&am…...

PACS-医学影像信息管理系统,全影像科室PACS源码,内置包括MPR、CMPR、VR等三维处理功能

PACS系统可以覆盖医院现有放射、CT、MR、核医学、超声、内镜、病理、心电等绝大部分DICOM和非DICOM检查设备&#xff0c;支持从科室级、全院机、集团医院级乃至到区域PACS的平滑扩展&#xff0c;能够与医院HIS、集成平台的有效集成和融合&#xff0c;帮助医院实现了全院医学影像…...

无人机搭载无人机反制设备可行性分析

一、引言 随着无人机技术的飞速发展&#xff0c;无人机在各个领域的应用越来越广泛。然而&#xff0c;无人机的不当使用也可能带来安全隐患和隐私问题。因此&#xff0c;无人机反制设备应运而生&#xff0c;用于对非法或危险无人机进行干扰和控制。本文将对无人机搭载无人机反…...

MATLAB绘制方波、锯齿波、三角波、正弦波和余弦波、

一、引言 MATLAB是一种具有很强的数值计算和数据可视化软件&#xff0c;提供了许多内置函数来简化数学运算和图形的快速生成。在MATLAB中&#xff0c;你可以使用多种方法来快速绘制正弦波、方波和三角波。以下是一些基本的示例&#xff0c;展示了如何使用MATLAB的命令来实现正弦…...

【通信协议-RTCM】MSM语句(2) - RINEXMSM7语句总结(重要!自动化开发计算卫星状态常用)

注释&#xff1a; 在工作中主要负责的是RTCM-MSM7语句相关开发工作&#xff0c;所以主要介绍的就是MSM7语句相关内容 1. 相位校准参考信号 2. MSM1、MSM2、MSM3、MSM4、MSM5、MSM6和MSM7的消息头内容 DATA FIELDDF NUMBERDATA TYPENO. OF BITSNOTES Message Number - 消息编…...

ios CCUIFont.m

// // CCUIFont.h // CCFC // //#import <Foundation/Foundation.h>// 创建字体对象 #define CREATE_FONT(fontSize) [UIFont systemFontOfSize:(fontSize)]interface UIFont(cc) (void)logAllFonts;end // // CCUIFont.m // CCFC // //#import "CCUIFont.h&…...

调度子系统在特定时间执行

时序逻辑调度器设计模式允许您安排Simulink子系统在指定时间执行。以下模型说明了这种设计模式。 时序逻辑调度器图表包含以下逻辑&#xff1a; 时序逻辑调度器的关键行为 时序逻辑调度器图表包含两个状态&#xff0c;它们以不同的速率调度函数调用子系统A1、A2和A3的执行&…...

【QAC】Dashboard服务端如何配置

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决Dashboard服务端如何配置的问题。 2、 问题场景 客户想使用Dashboard&#xff0c;Dashboard服务端如何配置。 3、软硬件环境 1、软件版本&#xff1a;HelixQAC23.04 2、机器环境&#xff1a;Windows 64bit 3…...

深入理解Linux网络(四):TCP接收阻塞

TCP socket 接收函数 recv 发出 recvfrom 系统调用。 进⼊系统调⽤后&#xff0c;⽤户进程就进⼊到了内核态&#xff0c;通过执⾏⼀系列的内核协议层函数&#xff0c;然后到 socket 对象的接收队列中查看是否有数据&#xff0c;没有的话就把⾃⼰添加到 socket 对应的等待队列⾥…...

【iOS】内存五大分区

目录 堆&#xff08;Heap&#xff09;是什么五大分区栈区堆区全局/静态区常量区&#xff08;即.rodata&#xff09;代码区&#xff08;.text&#xff09; 函数栈堆和栈的区别和联系图解 OC语言是C语言的超集&#xff0c;所以先了解C语言的内存模型的内存管理会有很大帮助。C语言…...

Jupyter Notebook: 是一个强大的交互式计算

文章目录 引言Jupyter Notebook的原理基础使用安装与启动单元格&#xff08;Cell&#xff09;操作快捷键 高级使用魔术命令Markdown支持可视化版本控制 优缺点优点缺点 官网链接结论 引言 Jupyter Notebook是一个强大的交互式计算环境&#xff0c;特别适用于数据科学、机器学习…...

【C#学习笔记】变量、变量类型

在C#中&#xff0c;变量是存储数据的容器&#xff0c;每个变量都有其特定的数据类型&#xff0c;这决定了变量可以存储的数据类型和大小。以下是关于C#中变量的由浅入深的详细解释&#xff0c;并附带代码示例和解释&#xff1a; 基础概念 定义&#xff1a; 变量是存储数据的容…...

题解:T480718 eating

eating 题目背景 从前有个荣光的王国&#xff0c;小 A 是里面的国王&#xff0c;今天他要赐予他的子民以仓廪。 题目描述 在一条街上有 n n n 个饭店。小 A 站在这条街的最左端。 第 i i i 个饭店离这条街最左端的距离是 a i a_i ai​&#xff0c;它所售卖的菜品的美味…...

MATLAB中matfile用法

目录 语法 说明 示例 创建 MAT 文件对象 启用对 MAT 文件的写访问权限 加载整个变量 将整个变量保存至现有 MAT 文件 加载和保存部分变量 确定变量大小 参数说明 局限性 提示 matfile的功能是访问和更改 MAT 文件中的变量&#xff0c;而不必将文件加载到内存中。 …...

Spring之Spring Bean的生命周期

Spring Bean的生命周期 通过BeanDefinition获取bean的定义信息调用构造函数实例化beanBean的依赖注入处理Aware接口&#xff08;BeanNameAware、BeanFactoryAware、ApplicationContextAware&#xff09;Bean的后置处理器BeanPostProcessor-前置初始化方法&#xff08;Initiali…...

OSINT 开源情报中的地理定位方法

了解 OSINT 中的地理定位技术、如何获取地理位置数据以及如何将地理定位用于各种调查场景。 OSINT 中的地理定位基础知识 OSINT 代表开源情报&#xff0c;指的是从免费公共来源合法收集的有关个人或组织的信息。这包括在互联网上以及书籍、公共图书馆报告、报纸文章、新闻稿、…...

Java面试题系列 - 第17天

Java中的代理模式与动态代理 背景说明&#xff1a;代理模式是一种结构型设计模式&#xff0c;用于在客户端和目标对象之间提供一个代理或占位符。在Java中&#xff0c;动态代理技术允许在运行时创建代理对象&#xff0c;这在AOP&#xff08;面向切面编程&#xff09;和RPC&…...

开发环境搭建

1、Ubuntu 系统设置 root 用户密码 新安装的ubuntu没有设置 root 用户密码,打开终端,输入 sudo passwd root 执行命令后依次输入密码 2、虚拟机设置网络适配器 3、Ubuntu 系统下搭建 FTP 服务器 sudo apt-get update sudo apt-get install vsftpd sudo apt-get install vim…...

【NLP】关于参数do_sample的解释

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;特别是在使用神经网络模型进行文本生成时&#xff0c;do_sample是一个常见的参数&#xff0c;用于控制模型生成文本的方式。具体来说&#xff0c;do_sample参数决定模型是否采用随机采样&#xff08;sampling&#x…...

Vbox虚拟机+Ubuntu motest测试drm

1. 效果演示 大家做学习drm的时候&#xff0c;没有硬件测试平台不方便测试&#xff0c;这里给大家演示下如何基于Vbox虚拟机Ubuntu测试drm的一些功能,先看下演示视频。 没有光标测试: demo_vwmfgx_test_drm 带有光标测试: demo_vwmfgx_drm_with_cursor 可以看到&#xff0c;有…...

ArcGIS Pro SDK (九)几何 15 转换

ArcGIS Pro SDK &#xff08;九&#xff09;几何 15 转换 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 15 转换1 创建地理转换2 创建复合地理变换3 创建投影转换4 创建高压基准变换5 创建复合高压基准变换6 决定转换7 地图点 - 地理坐标字符串转换 环境&#xff1…...

Spring IOC DI --- 认识IOC DI

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 文章目录 认识Ioc & DIIoc是什么?DI是什么? 认识Ioc & DI 我们知道,Spring 是一个开源框架,让我们的开发更加简单.但是更加具体来说,实际上Spring 是包含了众多工具方法的Ioc容器 …...

常用的python程序汇总——入门级

只用于记录最近的一些日常程序。 目录 前言 一、文件和目录管理 1.读取文件结构 读取所有文件夹和文件 读取到N级子文件夹和文件 只读取到N级子文件夹 2.遍历文件并处理&#xff08;复制、删除&#xff09; 说明&#xff1a; 二、数据分析和处理 三、数据可视化 四、…...

被问到MQ消息已丢失,该如何处理?

在分布式系统中&#xff0c;消息中间件&#xff08;如 RabbitMQ、RocketMQ、Kafka、Pulsar 等&#xff09;扮演着关键角色&#xff0c;用于解耦生产者和消费者&#xff0c;并确保数据传输的可靠性和顺序性。尽管我们通常会采取多种措施来防止消息丢失&#xff0c;如消息持久化、…...

open3d:ransac分割多个平面(源码)

1、背景介绍 随机采样一致性算法(RANSAC Random Sample Consensus)是一种迭代的参数估计算法,主要用于从包含大量噪声数据的样本中估计模型参数。其核心思想是通过随机采样和模型验证来找到数据中最符合模型假设的点。因此,只要事先给定要提取的参数模型,即可从点云中分割…...

Github 2024-07-17 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-17统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量非开发语言项目3Python项目3Rust项目2TypeScript项目2MDX项目1项目化学习 创建周期:2538 天协议类型:MIT LicenseStar数量:161973 个Fork数量…...

vue3中Composition API写法 <script setup>标签中哪些可以不用导入即可使用?

在 Vue 3 中使用 <script setup> 时&#xff0c;确实有一些全局的 API 和宏可以直接使用&#xff0c;而不需要显式地从 vue 包中导入它们。这是因为 <script setup> 是专门为了提供更简洁的组件编写方式而设计的&#xff0c;它内部利用了编译时的语法糖。 以下是在…...

Facebook Dating:社交平台的约会新体验

随着社交媒体的普及和技术的发展&#xff0c;传统的社交方式正在经历革新&#xff0c;尤其是在约会这个领域。Facebook作为全球领先的社交平台&#xff0c;推出了Facebook Dating&#xff0c;旨在为用户提供一个全新的约会体验。本文将探讨Facebook Dating如何重新定义社交平台…...

【系统架构设计 每日一问】五 搜索型业务,采用MySQL+ES,如何保证数据一致性

将数据从MySQL同步到Elasticsearch&#xff08;ES&#xff09;中并保证一致性是一个常见的需求&#xff0c;特别是在需要快速全文搜索和分析功能的应用中。以下是一些常见的方法和实践来确保数据一致性&#xff1a; 1. 使用双写策略 描述&#xff1a;在应用程序层面&#xff…...

缓存穿透,缓存击穿,缓存雪崩

目录 介绍 缓存穿透 缓存击穿 缓存雪崩 原因 影响 解决方案 缓存穿透 防止缓存穿透->空值缓存案例 缓存击穿 使用互斥锁解决缓存击穿 介绍 缓存穿透 定义&#xff1a;缓存穿透是指用户查询数据&#xff0c;缓存和数据库中都不存在该数据&#xff08;一般是发起恶意…...

运维 | 清理 Linux 磁盘空间方法汇总

清理 Linux 磁盘空间方法汇总 前言 系统磁盘不够用或占满了&#xff0c;导致部分应用或程序无法正常使用。 本章节将记录一些常用或常见的方法清理系统磁盘&#xff08;持续更新中&#xff09;。 常见操作 查看磁盘使用情况 cd / df -Th查找大文件和目录&#xff08;根目…...

googleTest 源码主线框架性分析——TDD 01

TDD&#xff0c;测试驱动开发&#xff0c;英文全称Test-Driven Development&#xff0c;简称TDD&#xff0c;是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码&#xff0c;然后只编写使测试通过的功能代码&#xff0c;通过测试来推…...

Python:对常见报错导致的崩溃的处理

Python的注释&#xff1a; mac用cmd/即可 # 注释内容 代码正常运行会报以0退出&#xff0c;如果是1&#xff0c;则表示代码崩溃 age int(input(Age: )) print(age) 如果输入非数字&#xff0c;程序会崩溃&#xff0c;也就是破坏了程序&#xff0c;终止运行 解决方案&#xf…...

linux系统进程占cpu 100%解决步骤

1.查找进程 ps aux 查看指定进程: ps aux | grep process_name2.根据进程查找对应的主进程 pstree -p | grep process_name 3.查看主进程目录并删除 ps -axu | grep process_name rm -rf /usr/bin/2cbbb...

数据传输安全--IPSEC

目录 IPSEC IPSEC可以提供的安全服务 IPSEC 协议簇 两种工作模式 传输模式 隧道模式 两个通信保护协议&#xff08;两个安全协议&#xff09; AH&#xff08;鉴别头协议&#xff09; 可以提供的安全服务 报头 安全索引参数SPI 序列号 认证数据 AH保护范围 传输模…...

Unity XR Interaction Toolkit的安装(二)

提示&#xff1a;文章有错误的地方&#xff0c;还望诸位大神不吝指教&#xff01; 文章目录 前言一、安装1.打开unity项目2.打开包管理器&#xff08;PackageManage&#xff09;3.导入Input System依赖包4.Interaction Layers unity设置总结 前言 安装前请注意&#xff1a;需要…...

什么是PCB流锡槽焊盘/C型焊盘,如何设计?-捷配笔记

在PCB进行机器组装器件时&#xff08;如波峰焊&#xff09;&#xff0c;为了防止部分需要二次焊接的元器件的焊盘堵孔&#xff0c;就需要在PCB焊盘上面开个过锡槽&#xff0c;以便过波峰焊时&#xff0c;这些焊锡会流掉。开流锡槽就是在焊盘裸铜&#xff08;敷锡&#xff09;部…...

电缆故障精准定位系统

简介 电缆故障精准定位系统应用于35~500kV电压等级电缆线路故障精准定位与故障识别。基于百兆高速采样、北斗高精度授时、信号相位误差精确校准等 先进技术的应用&#xff0c;其定位精度小于5米&#xff0c;业内领先。 基于人工智能深度学习算法核心模块可自动、 快速进行故障…...

Google Chrome 浏览器在链接上点右键的快捷键

如今&#xff0c;越来越多的软件都懒得设个快捷键&#xff0c;就算设置了连个下划线也懒得加了。 谷歌浏览器右键 > 链接另存为... 和 复制链接地址 的快捷键 (如图)...

Redis在SpringBoot中遇到的问题:预热,雪崩,击穿,穿透

缓存预热 预热即在产品上线前&#xff0c;先对产品进行访问或者对产品的Redis中存储数据。 原因&#xff1a; 1. 请求数量较高 2. 主从之间数据吞吐量较大&#xff0c;数据同步操作频度较高,因为刚刚启动时&#xff0c;缓存中没有任何数据 解决方法&#xff1a; 1. 使用脚…...

Pytorch 6

罗切斯特回归模型 加了激活函数 加了激活函数之后类 class LogisticRegressionModel(torch.nn.Module):def __init__(self):super(LogisticRegressionModel, self).__init__()self.linear torch.nn.Linear(1,1)def forward(self, x):# y_pred F.sigmoid(self.linear(x))y_p…...