haoxuan
2023-10-23 d435f4951d7c3362fe500ccdb19c2776b6879035
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import WordInput from "@/components/wordInput"
import { getCodeStandardList,getAutoCode } from "@/api/common/standard"
export default {
  components: {
    WordInput
  },
  data() {
    return {
      // 编码
      // 是否自动生成
      isIdDisabled: false,
      inputValue: [],
      explain: "",
      codenumer: 0, //每次输入的编码
      codenumberList: [], //整条编码
      sum: 0,
      method: 0,
      objCode: { name: "", page: 0, pageSize: 0, type: "跟进记录编码", codeStandID: "" },
      codeRule: {},
      codeLength: 0,
    }
  },
 
  methods: {
    async getRCodeStandardList() {
      try {
        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) {
              console.log("sss")
              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 ? "" : "/")
              })
            }
            console.log(method)
            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)
                  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.number ? this.editConfig.infomation.number : autoRule.PrefixValue
                  // )
                }
              }
            }
 
            this.$forceUpdate()
          } else {
            this.$message.error(res.data.msg ? res.data.msg : "获取编码规范失败,请重试!")
          }
          this.getAutoCodeValue()
        } else {
          this.codeList(this.editConfig.infomation.number)
        }
      } 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, 'number', res.data?res.data:'')
        }
      }
      
    },
    codeList(val) {
      this.inputValue = val
      this.codenumberList = val.toString()
      this.editConfig.infomation.number = this.codenumberList.length > 0 ? this.codenumberList.replace(/,/g, "") : ""
      console.log(this.codenumberList.replace(/,/g, ""))
    },
     // 订单编码单独校验
     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() {
      window.open("http://www.fai365.com:9080/facilty", "_blank")
    }
  }
}