vue3处理货名的拼接

摘要:

货品的拼接规则是:【品牌】+货名称/假如货品名称为空时,直接选择品牌为【品牌】赋值给货品,再选择品牌,会替换【品牌】;假如货名称为【品牌】+名称,再选择品牌只会替换【品牌】,名称保留;假如删掉【品牌】+名称的【品牌】再去选择品牌,会把选中的品牌追加到名称的前面形成新的【品牌】+名称!

bash 复制代码
<el-col :span="8">
    <el-form-item label="品牌" prop="goodsSku.brandId">
        <el-select :remote-method="queryBrandList" :loading="loading" @change="handleChangeBrandName" v-model="formData.goodsSku.brandId" remote filterable placeholder="请选择品牌" clearable class="!w-240px">
           <el-option v-for="item in brandList" :key="item.id" :label="item.brandName" :value="item.id" />
         </el-select>
     </el-form-item>
</el-col>
<el-col :span="8">
     <el-form-item label="货品名称" prop="goodsSku.goodsName">
         <el-input @change="assemblySku" v-model="formData.goodsSku.goodsName" placeholder="请输入货品名称" class="!w-240px" :disabled="disEditable" />
      </el-form-item>
</el-col>
bash 复制代码
// 检查商品规格中的商品名称是否存在
if (formData.value.goodsSku.goodsName) {
  // 获取品牌名称
  const brandName = formData.value.goodsSku.brandName;
  // 如果商品名称中已包含 [品牌名称] 格式,则替换为新的品牌名称
  // 否则,在商品名称前插入 [品牌名称]
  formData.value.goodsSku.goodsName = formData.value.goodsSku.goodsName.replace(/\[.*?\]/, `[${brandName}]`) || `[${brandName}] ${formData.value.goodsSku.goodsName}`;
} else {
  // 如果商品名称不存在,则创建一个新的商品名称格式,包含品牌名称
  formData.value.goodsSku.goodsName = `[${formData.value.goodsSku.brandName}] ${formData.value.goodsSku.goodsName}`;
}
bash 复制代码
const handleChangeBrandName = (values) => {
  brandList.value.forEach((date) => {
    if (date.id == values) {
      formData.value.goodsSku.brandName = date.brandName
    }
  })
  // assemblySku()
  // 处理货名
  if (formData.value.goodsSku.goodsName) {
    const brandName = formData.value.goodsSku.brandName;
    if(formData.value.goodsSku.goodsName.includes('[')) {
      formData.value.goodsSku.goodsName = formData.value.goodsSku.goodsName.replace(/\[.*?\]/, `[${brandName}]`)
    }else{
      formData.value.goodsSku.goodsName = `[${brandName}] ${formData.value.goodsSku.goodsName}`;
    }
  } else {
    formData.value.goodsSku.goodsName = `[${formData.value.goodsSku.brandName}] ${formData.value.goodsSku.goodsName}`;
  }
}
相关推荐
C语言魔术师11 分钟前
【小游戏篇】三子棋游戏
前端·算法·游戏
小周不摆烂17 分钟前
探索JavaScript前端开发:开启交互之门的神奇钥匙(二)
javascript
匹马夕阳1 小时前
Vue 3中导航守卫(Navigation Guard)结合Axios实现token认证机制
前端·javascript·vue.js
你熬夜了吗?1 小时前
日历热力图,月度数据可视化图表(日活跃图、格子图)vue组件
前端·vue.js·信息可视化
我想学LINUX2 小时前
【2024年华为OD机试】 (A卷,100分)- 微服务的集成测试(JavaScript&Java & Python&C/C++)
java·c语言·javascript·python·华为od·微服务·集成测试
screct_demo2 小时前
詳細講一下在RN(ReactNative)中,6個比較常用的組件以及詳細的用法
javascript·react native·react.js
桂月二二8 小时前
探索前端开发中的 Web Vitals —— 提升用户体验的关键技术
前端·ux
CodeClimb9 小时前
【华为OD-E卷 - 第k个排列 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
沈梦研9 小时前
【Vscode】Vscode不能执行vue脚本的原因及解决方法
ide·vue.js·vscode
hunter2062069 小时前
ubuntu向一个pc主机通过web发送数据,pc端通过工具直接查看收到的数据
linux·前端·ubuntu