vue+elementui(笔记)

news2024/12/23 17:52:43

vue+elementui

表格

 <div class="tableStyle">
            <el-table :data="pointsSettingsTableData" style="width: 70%" :stripe="true" size="mini"
              header-cell-class-name="headerClassName" :cell-style="{ 'text-align': 'center' }" :border="true"
              :fit="true">
              <el-table-column prop="id" label="ID">
              </el-table-column>
              <el-table-column prop="memberLevel" label="会员级别">
              </el-table-column>
              <el-table-column prop="projectName" label="项目名称">
              </el-table-column>
              <el-table-column prop="pointsRules" label="积分规则">
              </el-table-column>
              <el-table-column prop="integralNum" label="积分/次">
              </el-table-column>
              <el-table-column prop="amount" label="金额">
              </el-table-column>
              <el-table-column prop="integral" label="积分">
              </el-table-column>
              <el-table-column prop="multiplierOfPoints" label="积分倍数">
              </el-table-column>
              <el-table-column prop="是否累计" label="是否累计">
              </el-table-column>
              <el-table-column label="操作">
                <template slot-scope="scope">
                  <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
                  <el-button type="text" size="small">刪除</el-button>
                </template>
              </el-table-column>
            </el-table>
            <el-pagination background layout="prev, pager, next" :total="1000">
            </el-pagination>
          </div>
.tableStyle {
  padding: .125rem 0;
  display: flex;
  flex-direction: column;
  width: 80%;
}

.tableStyle .el-pagination {
  align-self: flex-start;
  margin: .125rem 0;
}

/*設置表头背景以及字体顏色*/
.headerClassName {
  font-weight: bold;
  color: black;
  background-color: rgb(226, 226, 226) !important;
  text-align: center !important;
}
.el-table__row--striped {
  background-color: rgb(242, 242, 242) !important;

}

划分线

 <el-divider content-position="left" class="poi_title">储值方式</el-divider>
      
.poi_title .el-divider__text.is-left {
  left: 0;
}

.poi_title .el-divider__text {
  font-weight: bold;
}

表单

  <el-form ref="form" :model="form" label-width="100px" style="width:50%" size="mini">
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="储值方式:">
                <el-input v-model="form.name" placeholder="请输入储值方式:"></el-input>
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-button type="primary" size="mini"><i class="iconfont icon-tianjia1"></i>添加</el-button>
            </el-col>
          </el-row>
        </el-form>

dialog

<template>
    <div>
        <el-dialog :visible.sync="dialogVisible" :modal="true" :append-to-body="true" :close-on-click-modal="false">
            <el-tabs>
                <el-tab-pane label="赠送项目成本信息">
                    <el-form ref="form" :model="form" label-width="100px" size="mini">
                        <el-row :gutter="20">
                            <el-col :span="24">
                                <el-form-item label="车辆品牌">
                                    <el-input v-model="initialMessage"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="20">
                            <el-col :span="24">
                                <el-form-item label="车辆颜色">
                                    <el-input v-model="initialMessage"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="20">
                            <el-col :span="24">
                                <el-form-item label="车辆系列">
                                    <el-input v-model="initialMessage"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="20">
                            <el-col :span="24">
                                <el-form-item label="车辆型号">
                                    <el-input v-model="initialMessage"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="20">
                            <el-col :span="24">
                                <el-form-item label="车辆产地">
                                    <el-input v-model="initialMessage"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <el-row :gutter="20">
                            <el-col :span="24">
                                <el-form-item label="车辆用途">
                                    <el-input v-model="initialMessage"></el-input>
                                </el-form-item>
                            </el-col>
                        </el-row>
                    </el-form>
                </el-tab-pane>
            </el-tabs>
            <span slot="title" class="dialog-title">
                <span><i class="el-icon-warning"></i>会员审核</span>
            </span>
            <span slot="footer" class="dialog-footer">
                <div slot="footer" class="dialog-footer">
                    <el-button @click="dialogVisible = false">取 消</el-button>
                    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
                </div>
            </span>
        </el-dialog>
    </div>
</template>  
    
<script>
export default {
    props: {
        initialMessage: {
            type: Object,
            default: {}
        }
    },
    data() {
        return {
            dialogVisible: false, // 控制弹出框的显示与隐藏  
            message: this.initialMessage // 初始化时接收父组件传递的参数  
        };
    },
    methods: {
        openDialog() {
            // 打开弹出框,并触发父组件的事件传递参数  
            this.dialogVisible = true;
            this.$emit('child-event', 'Hello from child');
        },
        closeDialog() {
            // 关闭弹出框  
            this.dialogVisible = false;
        }
    },
    watch: {
        initialMessage(newValue) {
            // 监听父组件传递的参数变化,并更新子组件的数据  
            this.message = newValue;
        }
    }
};
</script>
<style>
    /*以下是关于弹出框的样式*/

.dialog-footer {
  text-align: center;
}

/*dialog主体的宽*/
.el-dialog {
  width: 25vw !important;
  margin-top: 20vh !important;
  max-height: 85vh;
}

.dialog-title {
  width: 100%;
  font-size: .1875rem !important;
  color: white;
  font-weight: bold;

}

.el-dialog__header {
  padding-top: .125rem !important;
  background-image: linear-gradient(to right, rgb(254, 91, 75), rgb(249, 200, 38));
  border-radius: .125rem .125rem 0 0 !important;
}

/*改变dialog高度*/
.dialogContent {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.el-dialog {
  border-radius: .125rem !important;
}

.el-dialog__body {
  padding: .25rem;
}
</style>
  
<AddCarModal ref="addCarModal" :initial-message="addCarMessage" @child-event="handleChildEvent" />

<el-button type="primary" @click="openAddCarDialog"><i class="iconfont icon-tianjia1"></i>添加</el-button>

handleChildEvent(childMessage) {
      // 处理子组件传递的事件和参数
      console.log('Received message from child:', childMessage)
      // 可以在这里执行其他逻辑或更新父组件的数据
    },

 openAddCarDialog() {
      this.$refs.addCarModal.openDialog()
    },

给dialog添加样式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

下拉框

<el-select placeholder="请选择" v-model="value" size="small">
      <el-option label="区域一" value="shanghai"></el-option>
       <el-option label="区域二" value="beijing"></el-option>
</el-select>

删除操作

上传图片

 <el-upload class="upload-demo" ref="upload" :data="form" :on-preview="handlePreview"
                                :auto-upload="false" :on-success="handleUploadSuccess">
                                <i class="el-icon-camera avatar-uploader-icon"></i>
                                <div slot="tip" class="el-upload__tip"> 图片上传 </div>
</el-upload>
/*上传图片样式*/
.avatar-uploader-icon {
    font-size: 28px;
    color: #8c939d;
    width: .875rem;
    height: .875rem;
    line-height: .875rem;
    text-align: center;
}

.el-upload {
    border: 1px solid rgb(203, 203, 203);
}

.el-upload__tip {
    width: .875rem;
    text-align: center;
}

input后面提示的小字

<span class="note">JSAPI支付授权目录: https://kangyishequ.kangyishequ.com/</span>
.note {
    font-size: 12px;
    color: rgb(124, 136, 169);
}

el-menu

<template>
   <el-menu :default-active="plat_defaultIndex" class="el-menu-demo" mode="horizontal" @select="plat_handleSelect">
                <el-menu-item index="plat_tag1">基础设置</el-menu-item>
                <el-menu-item index="plat_tag2">注册协议</el-menu-item>
                <el-menu-item index="plat_tag3">短信设置</el-menu-item>
                <el-menu-item index="plat_tag4">支付设置</el-menu-item>
            </el-menu>
 <div class="platformMain" v-if="plat_activeIndex === 'plat_tag3'">
            <el-divider content-position="left" class="plat_title">短信设置</el-divider>
            <el-form ref="form" :model="form" label-width="160px" style="width:30%" size="mini">
                <el-row :gutter="20">
                    <el-col :span="24">
                        <el-form-item label="短信状态:">
                            <el-radio v-model="radio" label="1">开启</el-radio>
                            <el-radio v-model="radio" label="0">关闭</el-radio>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="20">
                    <el-col :span="24">
                        <el-form-item label="短信接口:">
                            <el-select placeholder="请选择活动区域">
                                <el-option label="1位数" value="1"></el-option>
                                <el-option label="2位数" value="2"></el-option>
                            </el-select>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="20">
                    <el-col :span="24">
                        <el-form-item label="AccessKey ID">
                            <el-input></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="20">
                    <el-col :span="24">
                        <el-form-item label="AccessKey Secret">
                            <el-input></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row :gutter="20">
                    <el-col :span="24">
                        <el-form-item label="短信签名">
                            <el-input></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
            </el-form>
            <div class="saveStyle">
                <el-button type="primary">保存</el-button>
            </div>
        </div>
</template>
<script>
export default {
    data() {
        return {
            plat_defaultIndex: 'plat_tag1',
            plat_activeIndex: 'plat_tag1',
        }
    },
    methods: {
        plat_handleSelect(key, keyPath) {
            this.plat_activeIndex = key
        }
    },
  
}
</script> 
<style>
    .platformMain {
    background-color: #fff;
    width: 100%;
    padding: .125rem .25rem;
    flex: 1;
    margin-top: .25rem;
}
</style>

emit

openDialog() {
            // 打开弹出框,并触发父组件的事件传递参数  
            this.dialogVisible = true;
            this.$emit('child-event', 'Hello from child');
        },
<OpenAddDepartmentDialog ref="addDepartMentModal" :initial-message="addDepartMentMessage"
            @child-event="handleChildEvent" />
handleChildEvent(childMessage) {
      // 处理子组件传递的事件和参数
      console.log('Received message from child:', childMessage)
      // 可以在这里执行其他逻辑或更新父组件的数据
    }

描述

消除两个相邻边框重合的边框

border-collapse: collapse;

切换栏

<template>
    <div class="adminSettingContainer">
        <div class="adminSettingNav">
            <el-menu :default-active="admin_defaultIndex" class="el-menu-demo" mode="horizontal"
                @select="admin_handleSelect">
                <el-menu-item index="admin_tag1">管理员配置</el-menu-item>
                <el-menu-item index="admin_tag2">角色配置</el-menu-item>
            </el-menu>
        </div>
        <div class="adminSettingMain" v-if="admin_activeIndex === 'admin_tag1'">
            <el-button type="primary" @click="openAddAdminDialog">添加管理员</el-button>
            <div class="tableStyle">
                <el-table :data="pointsSettingsTableData" style="width: 100%" :stripe="true" size="mini"
                    header-cell-class-name="headerClassName" :cell-style="{ 'text-align': 'center' }" :border="true"
                    :fit="true">
                    <el-table-column prop="id" label="编号">
                    </el-table-column>
                    <el-table-column prop="account" label="账号">
                    </el-table-column>
                    <el-table-column prop="type" label="所属类型">
                    </el-table-column>
                    <el-table-column prop="role" label="所属角色">
                    </el-table-column>
                    <el-table-column prop="stores" label="所属门店">
                    </el-table-column>
                    <el-table-column prop="affiliation" label="所属部门">
                    </el-table-column>
                    <el-table-column prop="materialDiscountRange" label="材料折扣区间">
                    </el-table-column>
                    <el-table-column prop="timeDiscountRange" label="工时折扣区间">
                    </el-table-column>
                    <el-table-column prop="founder" label="创始人">
                    </el-table-column>
                    <el-table-column prop="creationTime" label="创建时间">
                    </el-table-column>
                    <el-table-column label="操作">
                        <template slot-scope="scope">
                            <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
                            <el-button type="text" size="small">刪除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <el-pagination background layout="prev, pager, next" :total="1000">
                </el-pagination>
            </div>
        </div>
        <div class="adminSettingMain" v-if="admin_activeIndex === 'admin_tag2'">
            <el-button type="primary">添加角色</el-button>
            <div class="tableStyle">
                <el-table :data="pointsSettingsTableData" style="width: 50%" :stripe="true" size="mini"
                    header-cell-class-name="headerClassName" :cell-style="{ 'text-align': 'center' }" :border="true"
                    :fit="true">
                    <el-table-column prop="id" label="编号">
                    </el-table-column>
                    <el-table-column prop="permissionGroupName" label="权限组名称">
                    </el-table-column>
                    <el-table-column prop="founder" label="创始人">
                    </el-table-column>
                    <el-table-column prop="creationTime" label="创建时间">
                    </el-table-column>
                    <el-table-column prop="remark" label="备注">
                    </el-table-column>
                    <el-table-column label="操作">
                        <template slot-scope="scope">
                            <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
                            <el-button type="text" size="small">刪除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
                <el-pagination background layout="prev, pager, next" :total="1000">
                </el-pagination>
            </div>
        </div>
        <AddAdminModal ref="addAdminModal" :initial-message="addAdminMessage" @child-event="handleChildEvent" />
    </div>
</template>
<script>
import AddAdminModal from '../adminSettingModal/AddAdminModal.vue'
export default {
    data() {
        return {
            admin_defaultIndex: 'admin_tag1',
            admin_activeIndex: 'admin_tag1',
            addAdminMessage:''
        }
    },
    methods: {
        admin_handleSelect(key, keyPath) {
            this.admin_activeIndex = key
        },
        openAddAdminDialog(){
            this.$refs.addAdminModal.openDialog()
        }
    },
    components:{
        AddAdminModal
    }
}
</script>
<style>
.adminSettingContainer {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.adminSettingMain {
    background-color: #fff;
    width: 100%;
    padding: .125rem .25rem;
    flex: 1;
    margin-top: .25rem;
}

.tableStyle {
    padding: .125rem 0;
    display: flex;
    flex-direction: column;
    width: 80%;
}

.tableStyle .el-pagination {
    align-self: flex-start;
    margin: .125rem 0;
}

/*設置表头背景以及字体顏色*/
.headerClassName {
    font-weight: bold;
    color: black;
    background-color: rgb(226, 226, 226) !important;
    text-align: center !important;
}

.el-table__row--striped {
    background-color: rgb(242, 242, 242) !important;

}
</style>

上传图片

<el-row :gutter="20">
                    <el-col :span="24">
                        <el-form-item label="商家LOGO:">
                            <el-upload class="upload-demo" ref="upload" :data="form" :on-preview="handlePreview"
                                :auto-upload="false" :on-success="handleUploadSuccess">
                                <i class="el-icon-camera avatar-uploader-icon"></i>
                                <div slot="tip" class="el-upload__tip"> 图片上传 </div>
                            </el-upload>
                        </el-form-item>
                    </el-col>
                </el-row>

富文本框

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

//引入以及工具栏配置
import { quillEditor } from "vue-quill-editor";

import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";


// 工具栏配置

const toolbarOptions = [
    ['bold', 'italic'], // 加粗 斜体 下划线 删除线
    [{ list: 'ordered' }, { list: 'bullet' }], // 有序、无序列表
    [{ size: ['small', false, 'large', 'huge'] }], // 字体大小
    [{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
    [{ align: [] }], // 对齐方式
    ['clean'], // 清除文本格式
]
export default {
    components: {
        quillEditor
    },
    data() {
        return {
            editorOption: {
                modules: {
                    toolbar: {
                        container: toolbarOptions, //工具栏相关配置
                    },
                },
            }
        }
    },
}

使用

<el-row :gutter="20">
                    <el-col :span="24">
                        <el-form-item>
                            <quill-editor class="editor" v-model="content" ref="customQuillEditor" :options="editorOption">
                            </quill-editor>
                        </el-form-item>
                    </el-col>
                </el-row>

日期

  <el-descriptions-item label="生日截止:">
                        <el-date-picker type="date" placeholder="选择日期" :size="size" v-model="form.date1"
                            style="width: 100%;"></el-date-picker>
                    </el-descriptions-item>

iconfont

@font-face {
  font-family: "iconfont";
  /* Project id 4506265 */
  src:
  /* 文件下载到本地,且换成相对路径 */
    url('./iconfont/iconfont.woff2') format('woff2'),
    url('./iconfont/iconfont.woff') format('woff'),
    url('./iconfont/iconfont.ttf') format('truetype'),
}

.iconfont {
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 用户 */
.icon-yonghu:before {
  content: "\e639";
}

/* 系统挂起 */
.icon-xitong:before {
  content: "\e618";
}


/* 密码修改 */
.icon-yuechi:before {
  content: "\e791";
}

/* 退出 */
.icon-tuichu:before {
  content: "\e62c";
}

表格背景颜色改变


::v-deep .el-table th,
::v-deep .el-table tr,
::v-deep .el-table td {
    background-color: transparent;
}
::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{
    background: blue;
}

tooltip文字超出换行显示

::v-deep .tooltipStyle {
    display: block;
    max-width: 180px;
    max-height: 200px;
    word-wrap: break-word;
    word-break: normal;
    white-space: normal;
}

滚动的表格

  <div class="rail_right">
                <div class="checkNum">
                    <div class="chart_title">实时检测数量</div>
                    <div class="table">
                        <el-table :header-cell-style="headerCellStyle">
                            <el-table-column prop="proName" label="项目" show-overflow-tooltip>
                            </el-table-column>
                            <el-table-column prop="major" label="专业" show-overflow-tooltip>
                            </el-table-column>
                            <el-table-column prop="bridge" label="隧道/桥梁" show-overflow-tooltip>
                            </el-table-column>
                            <el-table-column prop="state" label="状态">
                            </el-table-column>
                        </el-table>
                    </div>
                    <div class="chart_table">

                        <vueSeamless class="seamStyle" :data="tableData" :class-option="seamlessScrollOption">
                            <el-table :show-header="false" :data="tableData" stripe :row-class-name="onTableRowClassName">
                                <el-table-column prop="proName" label="项目" show-overflow-tooltip>
                                </el-table-column>
                                <el-table-column prop="major" label="专业" show-overflow-tooltip>
                                </el-table-column>
                                <el-table-column prop="bridge" label="隧道/桥梁" show-overflow-tooltip>
                                </el-table-column>
                                <el-table-column prop="state" label="状态">
                                    <template slot-scope="scope">
                                        <span style="font-weight:bold;color: yellow;" v-if="scope.row.state == 1">待检测</span>
                                        <span style="font-weight:bold;color: red;"
                                            v-else-if="scope.row.state == 2">未达标</span>
                                        <span style="font-weight:bold;color: #00FF00;"
                                            v-else-if="scope.row.state == 3">合格</span>
                                        <span style="font-weight:bold;color: rgb(48, 48, 250);"
                                            v-else-if="scope.row.state == 5">已移交</span>
                                        <span style="font-weight:bold;color: grey;" v-else></span>

                                    </template>
                                </el-table-column>
                            </el-table>
                        </vueSeamless>
                    </div>
                </div>
                <div class="analysis">
                    <div class="chart_title">每日检测数量分析</div>
                    <div class="detection_chart">
                        <detectionAnalysis :opinionData="analysisData" ref="analysisChart" />
                    </div>
                </div>
            </div>

插件引入

import vueSeamless from 'vue-seamless-scroll'
  components: {  vueSeamless },
      
       computed: {
        seamlessScrollOption() {
            return {
                step: 0.2, // 数值越大速度滚动越快
                limitMoveNum: 1, // 开始无缝滚动的数据量 this.dataList.length
                hoverStop: true, // 是否开启鼠标悬停stop
                direction: 1, // 0向下 1向上 2向左 3向右
                openWatch: true, // 开启数据实时监控刷新dom
                singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1
                singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3
                waitTime: 1000, // 单步运动停止的时间(默认值1000ms)
            };
        }
    },

给父组件一个高度 子组件一个高度,且超出部分隐藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1633483.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合规基线:让安全大检查更顺利

前言 说起安全检查&#xff0c;安全从业人员可能都非常熟悉“安全标准”概念。所有企事业单位网络安全建设都需要满足来自于国家或监管单位的安全标准&#xff0c;如等保2.0、CIS安全标准等。安全标准&#xff0c;还有一个叫法就是“安全基线”。字典上对“基线”的解释是&…

AI视频教程下载:用ChatGPT做SEO的终极教程

ChatGPT是由OpenAI开发的一款尖端人工智能&#xff0c;它已经彻底改变了我们进行搜索引擎优化&#xff08;SEO&#xff09;的方式。其先进的语言处理能力使其成为增强网站内容、提高搜索引擎排名和显著提升在线可见性的宝贵工具。 这个全面的课程旨在为你提供使用ChatGPT进行SE…

算法必备数学基础:图论方法由浅入深实践与应用

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

Phi-3-mini-4k-instruct 的功能测试

Model card 介绍 Phi-3-Mini-4K-Instruct 是一个 3.8B 参数、轻量级、最先进的开放模型&#xff0c;使用 Phi-3 数据集进行训练&#xff0c;其中包括合成数据和经过过滤的公开可用网站数据&#xff0c;重点是 高品质和推理密集的属性。 该型号属于 Phi-3 系列&#xff0c;Mini…

运营版游戏陪玩平台源码/tt语音聊天/声优服务/陪玩系统源码开黑/约玩源码

简述 一个人的游戏叫孤独&#xff0c;一群人的游戏才是乐趣&#xff0c;随着电竞产业在国内的快速发展&#xff0c;游戏陪练行业也迅速成长&#xff0c;现在很多游戏玩家为了追求更高质量的游戏体验感&#xff0c;往往会在玩游戏的过程中找陪练&#xff0c;通过陪玩系统进行预…

MySQL随便聊----之MySQL的调控按钮-启动选项和系统变量

-------MySQL是怎么运行的 基本介绍 如果你用过手机&#xff0c;你的手机上一定有一个设置的功能&#xff0c;你可以选择设置手机的来电铃声、设置音量大小、设置解锁密码等等。假如没有这些设置功能&#xff0c;我们的生活将置于尴尬的境地&#xff0c;比如在图书馆里无法把手…

react项目发布后,浏览器源码泄露的解决方案

在使用create-react-app时&#xff0c;打包生产环境npm run build&#xff0c;浏览器打开后仍然是可以看到源码的。源码都没上传&#xff0c;为啥线上能看到源码 。 例&#xff1a;线上与服务器 线上与源码 react-scripts build和npm run build 有什么不同 react-scripts bui…

spring高级篇(五)

1、参数解析器 前篇提到过&#xff0c;参数解析器是HandlerAdapters中的组件&#xff0c;用于解析controller层方法中加了注解的参数信息。 有一个controller&#xff0c;方法的参数加上了各种注解&#xff1a; public class Controller {public void test(RequestParam("…

Redux Toolkit 中持久化路由配置数组的实践指南

要将路由配置数组保存到 Redux Toolkit 中并持久化,你可以按照以下步骤进行操作: 创建一个 Slice 来管理路由配置 在 Redux Toolkit 中,我们使用 createSlice 来创建一个 slice,用于管理路由配置的状态。 import { createSlice } from reduxjs/toolkit;const routesSlice c…

【重磅】史上最全企业数字化转型项目流程管理资料大合集下载(2.5G,1429份)

重磅分享&#xff0c;史上最全企业数字化转型项目流程管理资料大合集&#xff0c;共1429份。 一、项目管理实战工具大全&#xff08;甘特图、表格、项目阶段文档等527份&#xff09; 二、项目管理流程规范制度&#xff08;各类流程制度共86份&#xff09; 三、项目管理模板&…

编译Qt6.5.3LTS版本(Mac/Windows)的mysql驱动(附带编译后的全部文件)

文章目录 0 背景1 编译过程2 福利参考 0 背景 因为项目要用到对MYSQL数据库操作&#xff0c;所以需要连接到MYSQL数据库。但是连接需要MYSQL驱动&#xff0c;但是Qt本身不自带MYSQL驱动&#xff0c;需要自行编译。网上有很多qt之前版本的mysql驱动&#xff0c;但是没有找到qt6…

Python数据结构与算法(1):将序列分解为单独的变量

问题 现在有一个包含 N 个元素的元组或者是序列&#xff0c;怎样将它里面的值解压后同时赋值给 N 个变量&#xff1f; 解决方案 任何的序列&#xff08;或者是可迭代对象&#xff09;可以通过一个简单的赋值操作来分解为单独的变量。 唯一的要求就是变量的总数和结构必须与序…

【数据结构7-1-查找-线性-二分法-二叉树-哈希表】

目录 1 查找基本概念2 线性表的查找2.1 顺序查找2.2 二分法查找2.3 分块查找 3 树表的查询3.1 二叉排序树3.1.1 定义3.1.2 二叉树的建立、遍历、查找、增加、删除&#xff1a;3.1.3 代码实现&#xff1a; 3.2 平衡二叉树3.2.1 平横因子3.2.2 不平横树的调整-左旋3.2.3 不平横树…

Unity 数字字符串逗号千分位

使用InputField时处理输入的数字型字符串千分位自动添加逗号&#xff0c;且自动保留两位有效数字 输入&#xff1a;123 输出&#xff1a;123.00 输入&#xff1a;12345 输出&#xff1a;12,345.00 代码非常简单 using UnityEngine; using TMPro;public class …

[机器学习系列]深入解析K-Means聚类算法:理论、实践与优化

目录 一、KMeans (一)Kmeans简介 (二)Kmeans作用和优点 (三)Kmeans局限和缺点 (四)Kmeans步骤 (五)如何选取最佳的K值的三种方法 (六)手肘法和目标函数的变化两种确定K值方法的区别 (七)如何选取第一次迭代的K个类中心------KMeans方法 (八)KMeans的常用参数介绍 二、…

【C语言刷题系列】对数字添加逗号

目录 一、问题描述 二、解题思路 三、源代码 拓展&#xff1a; 个人主页&#xff1a; 倔强的石头的博客 系列专栏 &#xff1a;C语言指南 C语言刷题系列 一、问题描述 二、解题思路 题目的要求&#xff0c;即对于一个较大的整数&#xff0c;每三位数字之间添加…

【go项目01_学习记录day01】

博客系统 1 vscode开发go项目插件推荐1.1 CtrlShiftP&#xff08;俗称万能键&#xff09; &#xff1a;打开命令面板。在打开的输入框内&#xff0c;可以输入任何命令。1.2 开发时&#xff0c;我们需要经常查阅 Go 语言官方文档&#xff0c;可惜因国内访问外网不稳定&#xff0…

自己手写了一个大模型RAG项目-05.基于知识库的大模型问答

大家好&#xff0c;我是程序锅。 github上的代码封装程度高&#xff0c;不利于小白学习入门。 常规的大模型RAG框架有langchain等&#xff0c;但是langchain等框架源码理解困难&#xff0c;debug源码上手难度大。 因此&#xff0c;我写了一个人人都能看懂、人人都能修改的大…

03-JAVA设计模式-解析器模式

解释器模式 什么是解析器模式 在Java中&#xff0c;解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;它给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;该解释器使用该表示来解释语言中的句子…

unity3d使用3D WebView播放网页中的视频

Unity2021.3.35f1&#xff0c;硬件ESP32-Cam&#xff0c;3D WebView插件 1.新建工程&#xff0c;导入3D WebView for Winfows和3D WebView for Android 2.打开场景Assets\Vuplex\WebView\Demos\Scenes\2_CanvasWebViewDemo 3.修改Canvas的Render Mode为Screen Space-Camera&am…