feat: 流程设计器表单字段必填配置

master
ssc 3 years ago
parent 77c9f78dd9
commit 6b4a1506fb
  1. 18
      public/cdn/wf-design/index.umd.min.js
  2. 18
      src/views/plugin/workflow/mixins/ex-form.js
  3. 1
      src/views/plugin/workflow/mixins/theme.js
  4. 30
      src/views/plugin/workflow/util/index.js

File diff suppressed because one or more lines are too long

@ -5,13 +5,14 @@ import defaultValues from './default-values'
import Print from '../util/print'
import Watermark from '../util/watermark'
import { versionCompare } from "../util"
import { mapGetters } from 'vuex'
export default {
mixins: [defaultValues],
computed: {
...mapGetters(['tag', 'userInfo', 'permission']),
...mapGetters(['tag', 'userInfo', 'permission', 'isCollapse']),
},
data() {
return {
@ -72,6 +73,10 @@ export default {
const values = []
const vars = []
const wfdv = ((window.WfDesign || {}).default || {}).version
const versionFlag181 = wfdv && versionCompare(wfdv, '1.8.1')
column.forEach(col => {
let c = taskForm.find(s => s.id == col[props.prop])
if (c && c.readable) {
@ -112,6 +117,17 @@ export default {
if (c.pattern) c.pattern = new RegExp(col.pattern)
})
}
// 处理字段必填
let required = false
if (versionFlag181) { // 1.8.1及版本以下,required默认为true
required = true
} else { // 1.8.2起流程设计器表单配置支持required属性
required = c.required
}
if (!required && col.rules) {
const index = col.rules.findIndex(c => c.required)
if (index != -1) col.rules.splice(index, 1)
}
values.push(col)
}

@ -38,6 +38,7 @@ export default {
},
setThemeStyle() {
let obj = this.themeList.find(item => item.themeKey == this.theme)
if (!obj) return
for (let i in obj) {
this.themeCustomStyle[`--${i}`] = obj[i]
}

@ -0,0 +1,30 @@
/**
* 判断版本号v2是否小于等于v1
*/
export const versionCompare = (v1, v2) => {
if (!v1 || !v2) return true
let v1Arr = v1.split('.')
let v2Arr = v2.split('.')
const len = Math.max(v1Arr.length, v2Arr.length)
// 调整两个版本号位数相同
while (v1Arr.length < len) {
v1Arr.push('0')
}
while (v2Arr.length < len) {
v2Arr.push('0')
}
// 循环判断每位数的大小
for (let i = 0; i < len; i++) {
const num1 = parseInt(v1Arr[i])
const num2 = parseInt(v2Arr[i])
if (num1 > num2) {
return false
} else if (num1 < num2) {
return true
}
}
return true
}
Loading…
Cancel
Save