Browse Source

【东阳主子表】新增编辑,子表表单验证-暂存

faster_develop
安虹睿 1 year ago
parent
commit
1bf69048de
  1. 88
      WinIn.FasterZ.Wms.Fe/src/components/addEditFromApiPop/index.vue
  2. 7
      WinIn.FasterZ.Wms.Fe/src/components/currenTableFlex/index.vue
  3. 2
      WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue

88
WinIn.FasterZ.Wms.Fe/src/components/addEditFromApiPop/index.vue

@ -130,12 +130,13 @@
class="currenTableFlex"
:flexTableData="flexTableData"
:flexTableColumns="flexTableColumns"
:border="true"
></currenTableFlex>
</div>
<!-- 操作按钮 -->
<div slot="footer" class="dialog-footer">
<el-button @click="closeDetailPop"> </el-button>
<el-button type="primary" @click="sureDetailHandle()"> </el-button>
<el-button type="primary" v-if="flexTableData && flexTableData.length > 0" @click="sureDetailHandle()"> </el-button>
</div>
</el-dialog>
</div>
@ -215,8 +216,9 @@ export default {
detailPopShow:false,//
flexTableData:null,//table
flexTableData_stag:null,//table
// flexTableColumns:null,//table
flexTableColumns: null,
detailFormRules: {},//
flexTableColumns:null,//table
showDetailRulesTipper:false,//
}
},
mounted(){
@ -272,13 +274,23 @@ export default {
})
}
//
// -
this.formRules={}
_dtoList.forEach(item=>{
if(item.isRequired){
this.formRules[item.prop] = [{ required: true, trigger: "blur", message: "不可为空" }]
}
})
// -
// todo:detailFormRules
this.detailFormRules = {
itemCode:[{ required: true, trigger: "blur", message: "不可为空" }],
rawQty:[
{ required: true, trigger: "blur", message: "不可为空" },
{ valid:(val)=>{return this.numberOverControl(val,1,20)}, trigger: "blur", message: "必须大于0,且小于等于20" }
]
}
},
//
isHaveDetail(){
@ -296,8 +308,72 @@ export default {
this.detailPopShow = false
this.$emit("closeDetailPop")
},
//
numberOverControl(value,min,max){
let val = Number(value)
if(min && max){ return val >= min && val <= max }
if(min && !max){ return val >= min }
if(!min && max){ return val <= max }
},
//
sureDetailHandle(){
let _hasNoVaild = false
//
for(let i=0;i<this.flexTableData.length;i++){
for(let r in this.flexTableData[i]){
if(this.detailFormRules[r]){
for(let v = 0;v<this.detailFormRules[r].length;v++){
//
if(
this.detailFormRules[r][v].required &&
((!this.flexTableData[i][r] && this.flexTableData[i][r] != 0) || this.flexTableData[i][r].length <= 0)
){
_hasNoVaild = true
break
// if(!_hasNoVaild[r]){_hasNoVaild[r] = []}
// _hasNoVaild[r].push(this.detailFormRules[r][v])
}
//
if(this.detailFormRules[r][v].valid){
let _valid = this.detailFormRules[r][v].valid(this.flexTableData[i][r])
if(!_valid){
_hasNoVaild = true
break
}
}
}
}
}
}
//
if(_hasNoVaild){
let vaild_zh = {}
// ruleprop
this.flexTableColumns.forEach(item=>{
vaild_zh[item.prop] = item.label
})
//
let _tipper = "所有列检验规则:<br/>"
for(var i in this.detailFormRules){
this.detailFormRules[i].forEach(item=>{
_tipper += `${vaild_zh[i]}】列${item.message};<br/>`;
})
}
_tipper += '请按照要求填写'
if(!this.showDetailRulesTipper){
this.showDetailRulesTipper = _tipper
this.$message({
dangerouslyUseHTMLString: true,
message: _tipper,
type: 'error',
showClose:true,
onClose:(()=>{
this.showDetailRulesTipper = null
})
})
}
return
}
this.flexTableData_stag = JSON.parse(JSON.stringify(this.flexTableData))
this.detailPopShow = false
this.$emit("sureDetailPop")
@ -309,9 +385,9 @@ export default {
this.submitForm(valid,this.formData,this.handleType,this.formItemData,this.formRules)
return
}
this.formData.details = this.flexTableData
this.Loading.addEditApiLoading = true
if (valid) {
this.formData.details = this.flexTableData
this.Loading.addEditApiLoading = true
//
if(this.handleType == 'add'){
ApiTypePost(

7
WinIn.FasterZ.Wms.Fe/src/components/currenTableFlex/index.vue

@ -278,7 +278,12 @@
methods: {
//
flexOpenAddNew() {
let _oneRow = Object.assign({}, this.flexTableData[0])
// null
let _oneRow = {}
this.flexTableColumns.forEach(item=>{
_oneRow[item.prop] = null
})
// _oneRow = Object.assign({}, this.flexTableData[0])
for(let key in _oneRow){
_oneRow[key] = null
}

2
WinIn.FasterZ.Wms.Fe/src/components/umyTable/index.vue

@ -250,7 +250,7 @@ export default {
// tableborder
tableBorder: {
type: Boolean,
default: false,
default: true,
},
// itemfixed
firstFixed: {

Loading…
Cancel
Save