zuozhengqing
2023-12-14 9e007f676d0e55c4bf0cc2a78bc7dc96be188d50
src/views/service/clientServiceOrder/mixin/codeMixin.js
@@ -1,5 +1,5 @@
import WordInput from "@/components/wordInput"
import { getCodeStandardList } from "@/api/common/standard"
import { getCodeStandardList,getAutoCode } from "@/api/common/standard"
export default {
  components: {
    WordInput
@@ -16,82 +16,104 @@
      sum: 0,
      method: 0,
      objCode: { name: "", page: 0, pageSize: 0, type: "客户服务编码", codeStandID: "" },
      codeRule: {}
      codeRule: {},
      codeLength: 0,
    }
  },
  methods: {
    async getRCodeStandardList() {
      try {
        const res = await getCodeStandardList(this.objCode)
        this.codenumer = []
        this.sum = 0
        this.explain = ""
        if (res.code == 200) {
          const { List = [], ID, AutoRule = {}, Method } = res.data && res.data.data ? res.data.data[0] : []
          this.codeRule = res.data && res.data.data ? res.data.data[0] : {}
          let autoRule = AutoRule
          let method = Method ? Method : 0
          this.method = method
          let rules = List
          this.editConfig.infomation.ID = ID
          if (method == 0 && res.data.data.length > 0) {
            rules.forEach((item, index) => {
              // setTimeout(() => {
              //   this.codenumer = item.length;
              //   this.sum++;
              // }, 200);
              this.codenumer.push(item.Length)
              this.sum++
              this.explain += item.Name + (index === rules.Length - 1 ? "" : "/")
            })
          }
          if (method == 1) {
            if (Object.keys(autoRule).length > 0) {
              this.isIdDisabled = true
              if (autoRule.PrefixMethod == 1) {
                let prefix = autoRule.PrefixValue.split("").length
        if (this.editConfig.title == "新建") {
          const res = await getCodeStandardList(this.objCode)
          this.codenumer = []
          this.sum = 0
          this.explain = ""
          this.codeLength = 0;
          if (res.code == 200) {
            const { List = [], ID, AutoRule = {}, Method } = res.data && res.data.data ? res.data.data[0] : []
            this.codeRule = res.data && res.data.data ? res.data.data[0] : {}
            let autoRule = AutoRule
            let method = Method ? Method : 0
            this.method = method
            let rules = List
            this.editConfig.infomation.ID = ID
            if (method == 0 && res.data.data.length > 0) {
              rules.forEach((item, index) => {
                // setTimeout(() => {
                //   this.codenumer = item.length;
                //   this.sum++;
                // }, 200);
                this.codenumer.push(item.Length)
                this.codeLength += item.Length;
                this.sum++
                this.explain += item.Name + (index === rules.Length - 1 ? "" : "/")
              })
            }
            if (method == 1) {
              if (Object.keys(autoRule).length > 0) {
                this.isIdDisabled = true
                if (autoRule.PrefixMethod == 1) {
                  let prefix = autoRule.PrefixValue.split("").length
                this.codenumer.push(prefix)
                if (autoRule.SuffixMethod == 2) {
                  this.codenumer.push(8)
                  this.codenumer.push(prefix)
                  this.codeLength += prefix;
                  if (autoRule.SuffixMethod == 2) {
                    this.codenumer.push(8)
                    this.codeLength += 8;
                  }
                  if (autoRule.AutoLength) {
                    this.codenumer.push(autoRule.AutoLength)
                    this.codeLength += autoRule.AutoLength;
                  }
                  this.sum = prefix + Number(autoRule.AutoLength)
                  // this.codeList(
                  //   this.editConfig.infomation.serviceNumber
                  //     ? this.editConfig.infomation.serviceNumber
                  //     : autoRule.PrefixValue
                  // )
                }
                if (autoRule.AutoLength) {
                  this.codenumer.push(autoRule.AutoLength)
                }
                this.sum = prefix + Number(autoRule.AutoLength)
                this.codeList(
                  this.editConfig.infomation.serviceNumber
                    ? this.editConfig.infomation.serviceNumber
                    : autoRule.PrefixValue
                )
                return true
              }
            }
            this.$forceUpdate()
          } else {
            this.$message.error(res.data.msg ? res.data.msg : "获取编码规范失败,请重试!")
          }
          if (this.editConfig.title !== "新建") {
            this.codeList(this.editConfig.infomation.serviceNumber)
          }
          this.$forceUpdate()
          this.getAutoCodeValue()
        } else {
          this.$message.error(res.data.msg ? res.data.msg : "获取编码规范失败,请重试!")
          this.codeList(this.editConfig.infomation.serviceNumber)
        }
      } catch (err) {
        console.log(err)
      }
    },
    async getAutoCodeValue() {
      if(Object.keys(this.codeRule).length>0){
        const res = await getAutoCode(this.codeRule);
        if (res.code == 200) {
          this.$set(this.editConfig.infomation, 'serviceNumber', res.data?res.data:'')
        }
      }
    },
    codeList(val) {
      console.log(val, "===val  codelist")
      this.inputValue = val
      this.codenumberList = val.toString()
      this.editConfig.infomation.serviceNumber =
        this.codenumberList.length > 0 ? this.codenumberList.replace(/,/g, "") : ""
      console.log(this.codenumberList.replace(/,/g, ""))
    },
    validateFormNumber(){
      this.$set(this.editConfig.infomation,'serviceNumber',this.editConfig.infomation.serviceNumber)
      this.$refs.form.validateField('serviceNumber')
    // 订单编码单独校验
    validateCheckCode(rule, value, callback) {
      if (value && value.length > 0) {
        if (this.editConfig.title == "新建") {
          if (value.length != this.codeLength) {
            callback(new Error("请填写" + this.codeLength + "位的编码!"));
          }
        }
        callback();
      } else {
        callback(new Error("请输入编码"));
      }
    },
    // 配置编码规范的跳转
    numberClick() {