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

vue 基础参数增加多语言配置

js 对数组的增删改查

字段在数据库存储为nvarchar ,varchar存储波斯语会乱码

数组格式:

{
    "en": [
        {"type": "10","value": "Confirm","color": ""},
        {"type": "20","value": "Cancel","color": ""}
    ],
    "cn": [
        {"type": "10","value": "确认","color": ""},
        {"type": "20","value": "取消","color": ""}
    ]
}

         <div style="float:left;height:100px;width:600px;">
            <el-form-item label="多语言配置" style="width:700px;" prop="validTanleHead">
              <el-input style="width: 180px" placeholder="请填写语言类型" v-model="lange_type" />
              <el-button class="filter-item" style="margin-left:0px;" type="primary" size="mini" @click="addLangeType()">添加语言类型</el-button>
              <!-- <el-button class="filter-item" style="margin-left:0px;" type="danger" size="mini" @click="deleteLangeType()">删除</el-button> -->
              <!-- <el-button class="filter-item" style="margin-left:0px;" type="primary" size="mini" @click="checkLanguageJSON()">校验JSON</el-button> -->

              <br />
              <span></span>
              <div v-for="(item, index) in tableData">
                <!-- {{item}} -->
                {{index}} <el-button class="filter-item" style="margin-top:10px;" type="primary" size="mini" @click="addRow(index)">添加</el-button>
                <el-button class="filter-item" style="margin-top:10px;" type="danger" size="mini" @click="deleteLangeType(index)">删除 {{index}} </el-button>
                <el-table :data="item" :key="index" style="width: 100%" border fit highlight-current-row>
                  <el-table-column prop="type" label="type" width="167">
                    <template slot-scope="scope">
                      <el-input class="tabletext" v-model="scope.row.type" size="mini" autosize />
                    </template>
                  </el-table-column>
                  <el-table-column prop="value" label="value" width="166">
                    <template slot-scope="scope">
                      <el-input class="tabletext" v-model="scope.row.value" size="mini" autosize />
                    </template>
                  </el-table-column>
                  <el-table-column prop="color" label="color" width="166">
                    <template slot-scope="scope">
                      <el-input class="tabletext" v-model="scope.row.color" size="mini" autosize />
                    </template>
                  </el-table-column>
                  <el-table-column prop="color" width="80">
                    <template slot-scope="scope">
                      <el-button size="mini" type="danger" @click="DeleteRow(scope.row,index)">删除</el-button>
                    </template>
                  </el-table-column>
                </el-table>
              </div>
            </el-form-item>
          </div>
if (!this.checkLanguageJSON()) {//校验多语言JSON字符串
        return
      }
 DeleteRow (row, index) {
      var tempData = this.tableData[index]
      for (var i = 0; i < tempData.length; i++) {
        if (tempData[i].type == row.type) {
          tempData.splice(i, 1)
          this.tableData[index] = tempData
          return
        }
      }
    },
    addRow (index) {
      this.tableData[index].push({
        type: "",
        value: "",
        color: "",
      })
    },
    checkLanguageJSON () {
      var tempMap = []
      var that = this
      var isOk = true;
      testLoop:
      for (var key in this.tableData) {
        var tempMap = {}
        for (var index in this.tableData[key]) {
          var tempType = this.tableData[key][index].type
          if (tempType == "") {
            this.$message.error("语言类型【" + key + "】 type 不能为空");
            isOk = false;
            break testLoop;

          }
          if (tempType == tempMap[tempType]) {
            that.$message.error("语言类型【" + key + "】 type:" + tempType + " 重复");
            isOk = false;
            break testLoop;
          }
          tempMap[tempType] = tempType
        }
      }
      return isOk;
    },
    addLangeType () {
      if (this.lange_type == "") {
        this.$message.error("请填写语言类型");
        return
      }
      // key就是数组的下标
      for (var key in this.tableData) {
        if (key == this.lange_type) {
          this.$message.error("语言类型已存在,请勿重复添加!");
          return
        }
      }
      var lange_type = this.lange_type
      var tempData = {
        [lange_type]: [{
          type: "",
          value: "",
          color: "",
        }]
      };
      this.tableData = Object.assign({}, this.tableData, tempData)
    },
    deleteLangeType (index) {
      delete this.tableData[index]
      this.tableData = Object.assign({}, this.tableData)
    },


http://www.kler.cn/a/466546.html

相关文章:

  • RabbitMQ案例
  • springboot远程链接spark
  • 【openwrt】OpenWrt 路由器的 802.1X 动态 VLAN
  • 4.1.2 栈和队列(一)
  • 【问题记录】npm create vue@latest报错
  • C#设计模式(行为型模式):状态模式
  • 谷歌Willow芯片:量子计算为引擎加速人工智能在多领域的深度应用与变革
  • 人工智能之机器学习算法
  • 高阶数据结构----布隆过滤器和位图
  • 淘宝商品详情深度解析:利用JAVA爬虫获取item_get_pro接口
  • Git项目版本控制学习
  • 【面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍Tensor RT 的优化流程。
  • python pytesseract库,ocr
  • mybatis-plus自动填充时间的配置类实现
  • Time-vulnhub打靶-Chronos
  • Golang的容器化技术深入
  • linux-25 文件管理(三)复制、移动文件,cp,mv
  • Springboot日志打印、SpringBoot集成Log4j2、异步日志
  • 一、数据库 Sqlite3 资料
  • Linux下部署Redis集群 - 一主二从三哨兵模式
  • 计算机网络•自顶向下方法:链路层编址、ARP协议、以太网
  • U盘格式化工具合集:6个免费的U盘格式化工具
  • 【记录】Angr|Angr 标准库函数替换怎么看哪些库函数被Angr支持?
  • Couchbase是不是MPP数据库
  • 学生管理系统springboot+论文源码调试讲解
  • 【Seed-Labs 2.0】Cross-Site Scripting (XSS) Attack Lab (Web Application: Elgg)