记录一次el-table动态添加删除列导致表格样式错误(或不聚集)问题

news2024/11/26 8:46:58

记录一次el-table动态添加删除列导致表格样式错误问题

  • 需求背景
  • 出现的问题
  • 解决方案
    • 理论:在el-table中设置key值,重新赋值表格数据之后,更新key值,达到动态更新效果

需求背景

一个电商类商品管理平台(类似shopify产品编辑特征管理);
具体需求点:根据用户角色显示不同的列信息,并可以根据规则自动创建或自动删除特定的列 。同时每一列要求可以批量修改。

使用的组件库:element-ui中的el-table

伪代码

          <div>
            <el-table
              ref="table"
              :data="table"
              :key="Math.random()"
              stripe
            >

              <!-- 临时列,避免动态添加列和行后横向自动滚动 -->
              <el-table-column label="id" width="5" v-show="false" fixed >
                <template slot-scope="scope">
                </template>
              </el-table-column>

              <template v-for="(item,key) in tableColumn">

                <el-table-column v-if="item=='Image'" :key="key" :label="item" width="100" fixed>
                  <template slot-scope="scope">
                    <div v-if="item=='Image'" class="tableImage">
                      <el-upload
                        :action="uploadApi"
                        :disabled="scope['row']['isDeleted']"
                        class="avatar-uploader"
                        list-type="picture-card"
                        accept=".jpeg,.png,.jpg"
                        :file-list="skuFileList[scope.$index]"
                        :key="key"
                        :limit="1"
                        :on-preview="handlePictureCardPreview"
                        :on-remove="(file, fileList)=>handleSkuRemove(file,fileList,scope.$index)"
                        :on-success="(response, file, fileList)=>handleSkuSuccess(response,file,fileList,scope.$index)">
                        <img v-if="scope['row'][item]" :src="scope['row'][item]" class="avatar">
                        <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                      </el-upload>
                    </div>
                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='Brand SKU ID'" :key="key" :label="item" width="200" >
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input v-model="scope['row'][item]" ref="inputRef" @keydown.native="clickBrandSkuCode($event)" @input="(event)=>changeBrandSkuCode(event,scope['row'])"  :disabled="scope['row']['isDeleted']"></el-input>
                    </div>
                    <template v-if="!scope['row']['isDeleted']">
                      <div class="required-error" v-show="!scope['row'][item]">Brand SKU ID can't be blank</div>
                      <div class="required-error" v-if="scope['row'][item] && scope['row']['isRepeatBrandSku']">Duplicate SKU ID, please modify</div>
                    </template>
                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='Case'" :key="key" :label="item" width="80" >
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Case
                      <i class="el-icon-edit" @click="skuSetDiglog('Case')" data-key="Case"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input
                        :disabled="scope['row']['isDeleted']"
                        oninput="if(value){value=value.replace(/^(0+)|[^\d]+/g,'')} if(value<=0){value=1} if(value>100){value=100}"
                        :maxlength="3" :minlength="1" v-model="scope['row'][item]"></el-input>
                      <sku-bluk-set field="Case" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Case'"></sku-bluk-set>
                    </div>
                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='FOB Price($)'" :key="key" :label="item" width="180"
                                 class="cust-table-column">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      FOB Price($)
                      <i class="el-icon-edit" @click="skuSetDiglog('FOB Price')" data-key="FOB Price"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input style="width: 70px" @input="(event)=>blurFob(event,scope.$index,scope['row'])"  :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/[^0-9.]/g,'')} if(value){value=value.replace(/^()*(\d+)\.(\d\d).*$/, '$1$2.$3')}"
                                v-model="scope['row'][item]">
                      </el-input>
                      <template v-if="!scope['row']['isDeleted']">
                        <div class="required-error" v-show="!scope['row'][item]">FOB Price can’t be blank</div>
                        <div class="required-error" style="margin-top: 13px;"
                             v-if="scope['row']['svGoodsReviewLogList'] && (scope['row']['svGoodsReviewLogList'].filter(f=>f['reviewContent']=='fob_price').length>0)">
                          modify is {{ scope['row']['svGoodsReviewLogList'] | disUpdateAfterValue('fob_price') }}, under
                          review
                        </div>
                      </template>

                      <sku-bluk-set field="FOB Price" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'FOB Price'"></sku-bluk-set>


                    </div>
                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='Cost Price($)'" :key="key" :label="item" width="180"
                                 class="cust-table-column">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Cost Price($)
                      <i class="el-icon-edit" @click="skuSetDiglog('Cost Price')" data-key="Cost Price"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input style="width: 70px" @input="(event)=>blurCostPriceFob(event,scope.$index,scope['row'])"  :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/[^0-9.]/g,'')} if(value){value=value.replace(/^()*(\d+)\.(\d\d).*$/, '$1$2.$3')}"
                                v-model="scope['row'][item]">
                      </el-input>
                      <template v-if="!scope['row']['isDeleted']">
                        <div class="required-error" v-show="!scope['row'][item]">Cost Price can’t be blank</div>
                        <div class="required-error" style="margin-top: 13px;"
                             v-if="scope['row']['svGoodsReviewLogList'] && (scope['row']['svGoodsReviewLogList'].filter(f=>f['reviewContent']=='source_price').length>0)">
                          modify is {{ scope['row']['svGoodsReviewLogList'] | disUpdateAfterValue('source_price') }},
                          under review
                        </div>
                      </template>
                      <sku-bluk-set field="Cost Price" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Cost Price'"></sku-bluk-set>


                    </div>
                  </template>
                </el-table-column>
                <el-table-column v-else-if="item==='Wholesale Price($)'" width="180" :key="key" :label="item">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Wholesale Price($)
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div>{{ scope['row'][item] }}</div>

                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='Procurement Price($)'" :key="key" :label="item" width="200"
                                 class="cust-table-column">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Procurement Price($)
                      <i class="el-icon-edit" @click="skuSetDiglog('Procurement Price')" data-key="Procurement Price"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input style="width: 70px"
                                :disabled="scope['row']['isDeleted']"
                                oninput="
                                if(value){value=value.replace(/[^0-9.]/g,'')}
                                if(value){value=value.replace(/^()*(\d+)\.(\d\d).*$/, '$1$2.$3')}
                                "
                                @change="(val) => {scope['row'][item] = val || 0}"
                                v-model="scope['row'][item]">
                      </el-input>
                      <sku-bluk-set field="Procurement Price" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Procurement Price'"></sku-bluk-set>

                    </div>
                  </template>
                </el-table-column>

                <el-table-column v-else-if="item=='Wholesale Settlement Price($)'" :key="key" :label="item" width="250"
                                 class="cust-table-column">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Wholesale Settlement Price($)
                      <i class="el-icon-edit" @click="skuSetDiglog('Wholesale Settlement Price')" data-key="Wholesale Settlement Price"></i>

                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input style="width: 70px"
                                oninput="
                                if(value){value=value.replace(/[^0-9.]/g,'')}
                                if(value){value=value.replace(/^()*(\d+)\.(\d\d).*$/, '$1$2.$3')}"
                                @change="(val) => {scope['row'][item] = val || 0}"
                                :disabled="scope['row']['isDeleted']"
                                v-model="scope['row'][item]">
                      </el-input>
                      <sku-bluk-set field="Wholesale Settlement Price" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Wholesale Settlement Price'"></sku-bluk-set>

                    </div>
                  </template>
                </el-table-column>

                <el-table-column v-else-if="item==='Retail Price($)'" width="200" :key="key" :label="item">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Retail Price($)
                      <i class="el-icon-edit"  @click="skuSetDiglog('Retail Price')" data-key="Retail Price"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <!--                   <div >{{scope['row'][item]}}</div>
                                       <div class="required-error" style="margin-top: 22px;" v-if="scope['row']['svGoodsReviewLogList'] && (scope['row']['svGoodsReviewLogList'].filter(f=>f['reviewContent']=='retail_price').length>0)">
                                         modify is {{ scope['row']['svGoodsReviewLogList'] | disUpdateAfterValue('retail_price') }}, under review
                                       </div>-->
                    <div class="table-cell-input">
                      <el-input style="width: 70px"
                                @change="(event)=>blurRetailPriceFob(event,scope.$index,scope['row'])"
                                :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/[^0-9.]/g,'')} if(value){value=value.replace(/^()*(\d+)\.(\d\d).*$/, '$1$2.$3')}"
                                v-model="scope['row'][item]">
                      </el-input>
                      <template v-if="!scope['row']['isDeleted']">
                        <div class="required-error" style="margin-top: 13px;"
                             v-show=" scope['row']['Retail Price($)']<=scope['row']['Wholesale Price($)'] ">Must Retail price >
                          Wholesale Price ${{ scope['row']['Wholesale Price($)'] }}
                        </div>
                      </template>

                      <sku-bluk-set field="Retail Price" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Retail Price'"></sku-bluk-set>

                    </div>

                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='Weight(g)'" :key="key" :label="item" width="110">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Weight(g)
                      <i class="el-icon-edit" @click="skuSetDiglog('Weight')" data-key="Weight"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input @change="(event)=>blurWeight(event,scope.$index,scope['row'])"  :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/^(0+)|[^\d]+/g,'')}  if(value>10000){value=10000}"
                                v-model="scope['row'][item]"></el-input>
                    </div>
                    <template v-if="!scope['row']['isDeleted']">
                      <div class="required-error" v-show="!scope['row'][item]">Can't be blank</div>
                      <div class="required-error" style="margin-top: 13px;"
                           v-if="scope['row']['svGoodsReviewLogList'] && (scope['row']['svGoodsReviewLogList'].filter(f=>f['reviewContent']=='weight').length>0)">
                        modify is {{
                          scope['row']['svGoodsReviewLogList'] | disUpdateAfterValueObj('weight') | disUpdateAfterValueWeight
                        }}, under review
                      </div>
                    </template>
                    <sku-bluk-set field="Weight" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Weight'"></sku-bluk-set>

                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='Inventory'" :key="key" :label="item" width="190">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Inventory
                      <i class="el-icon-edit" @click="skuSetDiglog('Inventory')" data-key="Inventory"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input :maxlength="5" :minlength="1"
                                style="width: 100px"
                                :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/[^\d]/g,'')}  if(value>10000){value=10000}"
                                v-model="scope['row'][item]"></el-input>
                      <!-- <el-button type="text" style="margin-left: 4px" @click="handleInventory(scope.row.id)">
                        View
                      </el-button> -->
                    </div>
                    <template v-if="!scope['row']['isDeleted']">
                      <div class="required-error" v-show="!scope['row'][item]">Can't be blank</div>
                    </template>
                    <sku-bluk-set field="Inventory" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Inventory'"></sku-bluk-set>

                  </template>
                </el-table-column>
                <el-table-column v-else-if="item=='status'" :key="key" label="Availability" width="180">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Availability
                      <i class="el-icon-edit" @click="skuSetDiglog('Availability')" data-key="Availability"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <!-- 上架或下架状态 -->
                    <div class="table-cell-input" v-if="scope['row']['showStatusSelect']">
                      <el-select placeholder="Please Select" :disabled="goodsStatusDb == '0' ||scope['row']['isDeleted']"
                                 v-model="scope['row'][item]" @change="e=>changeSkuStatus(e,scope['row'],scope.$index)">
                        <el-option
                          v-for="item in skuStatusOptions"
                          :key="item.value"
                          :label="item.label"
                          :value="item.value">
                        </el-option>
                      </el-select>

                    </div>

                    <!-- 已经设置过补货时间 -->
                    <div class="table-cell-input" v-else>
                      <div style="font-size: 12px;color: #FB541C;">Restock by {{ scope['row']['restockDate'] }}</div>
                      <div class="cust-sku-btn" style="text-align: left;" v-if="!scope['row']['isDeleted']">
                        <span @click="resetRestock(scope['row'],scope.$index)">Restock</span>
                        <span @click="e=>changeSkuRestockDate(e,scope['row']) ">Change Date</span>
                      </div>
                      <div class="cust-sku-btn" style="text-align: left;" v-else>
                        <span style="text-decoration: unset; ">Restock</span>
                        <span style="text-decoration: unset; ">Change Date</span>
                      </div>
                    </div>

                    <!-- 库存补货时间 -->
                    <div class="set-restock-date" v-show="scope['row']['tmpStatus']=='99' && !skuIsDiglog">
                      <p>Set restock date</p>
                      <el-date-picker
                        v-model="restockDateArr[scope.$index]"
                        style="margin-top: 10px;"
                        type="date"
                        :disabled="goodsStatusDb == '0'"
                        value-format="MM/dd/yyyy"
                        placeholder="MM/DD/YYYY"
                        format="MM/dd/yyyy"
                      >
                      </el-date-picker>
                      <div class="required-error" v-show="!restockDateArr[scope.$index]">Please set restock date</div>
                      <div class="cust-sku-btn">
                        <span @click="submitRestockDate(scope['row'],scope.$index,false)">Cancel</span>
                        <span @click="submitRestockDate(scope['row'],scope.$index,true)">Save</span>
                      </div>
                    </div>

                    <!-- 下架的SPU,SKU操作上架,需要提示“请先将SPU设置成上架 -->
                    <template v-if="!scope['row']['isDeleted']">
                      <div class="required-error" v-show="goodsStatusDb == '0'">Please set SPU Active first</div>
                    </template>
                    <sku-bluk-set field="Availability" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Availability'"></sku-bluk-set>

                  </template>

                </el-table-column>
                <el-table-column v-else-if=" item=='Dimensions - L/W/H(cm)'" :key="key" :label="item" width="220">
                  <template slot="header" slot-scope="scope">
                    <div class="cust-title">
                      Dimensions - L/W/H(cm)
                      <i class="el-icon-edit" @click="skuSetDiglog('Dimensions')" data-key="Dimensions"></i>
                    </div>
                  </template>
                  <template slot-scope="scope">
                    <div class="table-cell-input">
                      <el-input style="width: 50px;"
                                :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/^(0+)|[^\d]+/g,'')} if(value>1000){value=1000}"
                                placeholder="Length" v-model="scope['row']['length']"></el-input>
                      <el-input style="width: 50px;"
                                :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/^(0+)|[^\d]+/g,'')}  if(value>1000){value=1000}"
                                placeholder="Width" v-model="scope['row']['width']"></el-input>
                      <el-input style="width: 50px;"
                                :disabled="scope['row']['isDeleted']"
                                oninput="if(value){value=value.replace(/^(0+)|[^\d]+/g,'')}  if(value>1000){value=1000}"
                                placeholder="High" v-model="scope['row']['height']"></el-input>
                    </div>
                    <template v-if="!scope['row']['isDeleted']">
                      <div class="required-error"
                           v-show="!scope['row']['length'] || !scope['row']['width'] || !scope['row']['height']">L/W/H
                        (cm) can't be blank
                      </div>
                    </template>
                    <sku-bluk-set field="Dimensions" v-if="scope.$index==0 && skuIsDiglog && curSkuBlukField == 'Dimensions'"></sku-bluk-set>

                  </template>
                </el-table-column>

                <el-table-column v-else-if="item==='Vd_SKU ID'" :key="key" :label="item"  :width="calcWidth(item)" fixed>
                  <template slot-scope="scope">
                    <div>{{ scope['row'][item] || '-' }}</div>
                  </template>
                </el-table-column>

                <el-table-column v-else-if="item!=='length' && item!=='width' && item!=='height' && item!=='countryCode'
                              && item!=='serviceFee' && item!=='isDirectlyModifyNetPrice' && item!=='orlNetPrice'
                             && item!=='restockDate' && item!=='skuCharacterList' &&item!=='restockDateMmddyyyy' " :key="key" :label="item" :width="calcWidth(item)">
                  <template slot-scope="scope">
                    <div>{{ scope['row'][item] }}</div>
                  </template>
                </el-table-column>

              </template>


              <el-table-column label="Action" width="120" >
                <template slot-scope="scope">
                  <i class="el-icon-delete" style="cursor: pointer;" v-if="!scope['row']['isDeleted']" @click="deleteSku(scope['row'],true)"></i>
                  <i class="el-icon-refresh-right" style="cursor: pointer;"  v-if="scope['row']['isDeleted']" @click="deleteSku(scope['row'],false)"></i>
                </template>
              </el-table-column>


            </el-table>
          </div>

效果图
在这里插入图片描述
点击右上角按钮”add variant“ 效果图
在这里插入图片描述
以上表格中内容以及表格中color列(其他列是数据库返回),就是由这个生成的。

插入、删除列代码

//删除列
      this.tableColumn = this.tableColumn.filter(f => !this.variantWithValuesListMap.get(f))
      // columns = columns.filter(f => !this.variantWithValuesListMap.get(f))

      //添加列
      const newColumns = variantArr.map(f => f['variantName'])
      for (let i = 0,len = newColumns.length; i < len ; i++) {
        this.tableColumn.splice(2 + i, 0, newColumns[i])
      }

以上变量:this.variantWithValuesListMap为add variant弹出框的名称+值内容

出现的问题

1、开始添加的第三列 brand sku id,无法动态显示出来 ,tableColumn信息确认已赋值
2、批量修改样式错乱
3、在新生成的表格中,输入框(包含下拉框)输入只能输入一个字符,自动失去焦点,并且此表格的横向滚动条,自动滚动到最右侧 。

解决方案

尝试了很多种方案,就不一一述说了(因为都没解决),最终解决以上问题的更改关键点为:
1、el-table中:key更改为 :key=“tableKey”
2、每次变更列的时候更改tablekey的值:
this.tableKey = Math.random()

理论:在el-table中设置key值,重新赋值表格数据之后,更新key值,达到动态更新效果

综上:是el-table中key值引发的血案。记录起来,避免很久以后后续自己又会出现。也供各位同行参考经验。

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

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

相关文章

2023 华为 Datacom-HCIE 真题题库 06--含解析

多项选择 1.[试题编号&#xff1a;190185] &#xff08;多选题&#xff09;如图所示&#xff0c;PE 1和PE2之间通过Loopback0接口建立MP-BGP邻居关系&#xff0c;在配置完成之后&#xff0c;发现CE1和CE2之间无法互相学习路由&#xff0c;以下哪些项会导致该问题出现? A、PE1…

初识linux之简单了解TCP协议与UDP协议

目录 一、理解源IP地址和目的IP地址 二、端口号 1. 为什么要有端口号 2. 理解端口号 3. 源端口号和目的端口号 三、初步了解TCP协议和UDP协议 1. 初步认识TCP协议 2. 初步认识UDP协议 3. 可靠传输与不可靠传输 四、网络字节序 1. 网络字节序的概念 2. 如何形成网络…

python+django电子笔记交易系统vue

编码使用python&#xff08;我的pycharm版本是2021.3.3&#xff09;&#xff0c;数据库使用mysql&#xff08;我的mysql版本5.5&#xff09;。网站点击能够跳转各个页面&#xff0c;不用部署服务器&#xff0c;本地运行即可。 题目&#xff1a;基于django的电子笔记交易系统 功…

并发编程的三大特性之有序性

有序性的概念 Java文件在被cpu执行前会进行编译成cpu可以执行的指令&#xff0c;为了提高cpu的执行效率会对其中的一些语句进行重排序。Java指令最终是乱序执行的目的是为了提高cpu的执行效率&#xff0c;发挥cpu的性能 单例模式由于指令重排可能会出现上述的问题&#xff0…

ASP.NET Core

1. 入口文件 一个应用程序总有一个入口文件&#xff0c;是应用启动代码开始执行的地方&#xff0c;这里往往也会涉及到应用的各种配置。当我们接触到一个新框架的时候&#xff0c;可以从入口文件入手&#xff0c;了解入口文件&#xff0c;能够帮助我们更好地理解应用的相关配置…

SOC与MCU的区别及汽车电子未来发展以及展望

SOC与MCU的区别及汽车电子未来发展以及展望 MCU与SOC的区别 CPU&#xff08;Central Processing Unit&#xff09;&#xff0c;是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可…

【PHP】问题已解决:宝塔面板搭建php网站无法上传图片或是文件(保姆级图文)

目录 问题情况原因和解决方法总结 『PHP』分享PHP环境配置到项目实战个人学习笔记。 欢迎关注 『PHP』 系列&#xff0c;持续更新中 欢迎关注 『PHP』 系列&#xff0c;持续更新中 问题情况 宝塔面板搭建php网站无法上传图片或是文件。 原因和解决方法 检查你的php里是否安装…

老板让你写个PPT没有头绪?没事,ChatGPT来帮你!

文章目录 前言一、先确定写什么——准备内容二、再看看能用吗——自动生成PPT三、最后再改改——看个人喜好写在最后 前言 自从人工智能横空而出&#xff0c;它在人们的生活中产生了巨大的影响。尤其在企业办公领域&#xff0c;借助人工智能的力量&#xff0c;能够迅速产出丰富…

千乎万唤始出来,支持gpt3和gpt4支持画图,的在线gpt应用接入案例开源上线啦

了解OPEN AI 平台用户一直在说&#xff0c;这个接口要怎么对接&#xff0c;如何在体验。 由于我一直忙于接口中台开发&#xff0c;所以在线基于OPEN AI 接口实例例子就一直没有写。现在终于写完了。 基于纯HTMLCSSJS 小白也能轻松上手部署。代码简单清晰。 这里不多做其他赘述…

tensorflow及其keras如何保存模型

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

如何从宏观层面构建优秀的大语言模型

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

高阶python | 装饰器

python版本&#xff1a;3.10.0 在学习装饰器前先了解一下闭包 阿-岳同学【python技巧060】形象理解闭包&#xff0c;玩转闭包 通过视频首先可以了解到主要的三个知识点 闭包是嵌套结构内层函数有调用外层函数的变量为闭包&#xff0c;同时内层函数是闭包函数&#xff08;所…

根据DataFrame1中指定列c1的每个值a1 从DataFrame2中指定列c2中的每个值a2 找到与a1最临近的值a2,进行所在行合并

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 根据DataFrame1中指定列c1的每个值a1 从DataFrame2中指定列c2中的每个值a2 找到与a1最临近的值a2,进行所在行合并 [太阳]选择题 关于以下代码说法错误的是&#xff1a; import pandas as pd…

新手应该如何快速上手MySQL数据库?

前言 数据库是计算机系统中用于存储、管理和检索数据的系统。它允许用户访问并管理数据&#xff0c;并具有可靠、可扩展和高效的特性。 文章目录 前言1. 数据库的相关概念1.1 数据1.2 数据库1.3 数据库管理系统1.4 数据库系统1.5 SQL 2. MySQL数据库2.1 MySQL安装2.2 MySQL配置…

我在CSDN的736个日子——两年纪念日“随想”

2021-05-21~2023-05-27&#xff0c;我在 CSDN 已有 736 个日子。 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不仅仅是基础那么简单…… 地址&#xff1a;https:/…

设计一:51单片机流水灯控制

目录 一、设计内容 二、硬件电路分析 三、仿真原理图 四、程序设计 五、仿真结果 六、思考题 作者有话说 一、设计内容 本次设计使用4个按键&#xff0c;当KEY1按下时&#xff0c;P0口所接的发光二极管&#xff08;D1~D8&#xff09;以100ms的时间间隔自下至上循环点亮3…

软考A计划-试题模拟含答案解析-卷六

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

在线Excel绝配:SpreadJS 16.1.1+GcExcel 6.1.1 Crack

前端&#xff1a;SpreadJS 16.1.1 后端&#xff1a; GcExcel 6.1.1 全能 SpreadJS 16.1.1此版本的产品中包含以下功能和增强功能。 添加了各种输入掩码样式选项。 添加了在保护工作表时设置密码以及在取消保护时验证密码的支持。 增强了组合图以将其显示为仪表图。 添加了…

chatgpt赋能python:Python成为行业中的主力之一

Python成为行业中的主力之一 Python作为一种高级编程语言&#xff0c;已经成为了行业中的主力之一。Python的功能强大&#xff0c;易于学习和使用&#xff0c;而且兼容性良好。在数据科学&#xff0c;人工智能&#xff0c;web开发等领域&#xff0c;Python已经成为了不可或缺的…

chatgpt赋能python:Python转化为数字:Python程序员必须知道的关键技能

Python 转化为数字&#xff1a;Python 程序员必须知道的关键技能 Python 是一种广泛使用的编程语言&#xff0c;不仅适用于数据科学、人工智能和机器学习领域&#xff0c;还可以用于一般的应用开发。在 Python 中&#xff0c;数字是最基本的数据类型之一&#xff0c;因此了解如…