From 59765cab961847dfd101e69ae6d8d1d501a5284c Mon Sep 17 00:00:00 2001
From: yuxc <yuxc@vci-tech.com>
Date: 星期二, 04 六月 2024 11:10:28 +0800
Subject: [PATCH] 1、ice配置文件上传
---
Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue | 110 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 92 insertions(+), 18 deletions(-)
diff --git a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
index cf56bf7..ca5e5b4 100644
--- a/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
+++ b/Source/ProjectWeb/src/components/PLT-basic-component/basicForm.vue
@@ -1,9 +1,9 @@
<template>
<!--鍔ㄦ�佹ā鏉�-->
- <avue-form ref="formRef" :option="option" v-model="form">
+ <avue-form ref="form" :option="option" v-model="form">
<template v-for="item in allColumn" :slot="item.prop+ ''">
<vciWebRefer
- v-if="item.propType === 'refer' || item.type === 'refer'"
+ v-if="item.type === 'refer'"
:key="item.prop"
referType="master"
:data-key="item.prop"
@@ -16,9 +16,18 @@
@setReferValue="setReferValue"
></vciWebRefer>
<!-- 瀵屾枃鏈帶浠� -->
- <rich-text v-if="item.type === 'richText'" :value="form[subitemName]" @input="form[subitemName] = $event"></rich-text>
+ <rich-text v-else-if="item.type === 'richText'"
+ :key="item.prop"
+ :data-key="item.prop"
+ :disabled="item.disabled || false"
+ :display="item.display || true"
+ :value="form[subitemName]" @input="form[subitemName] = $event"></rich-text>
<!-- 琛ㄥ崟涓婁紶鏂囦欢缁勪欢 -->
- <form-upload v-if="item.type === 'upload'"></form-upload>
+ <form-upload v-else-if="item.type === 'upload'"
+ :key="item.prop"
+ :data-key="item.prop"
+ :disabled="item.disabled || false"
+ :display="item.display || true"></form-upload>
</template>
</avue-form>
</template>
@@ -57,6 +66,20 @@
type:Boolean,
default:false
},
+ isEdit:{
+ //琛ㄥ崟鏄惁鍙紪杈�
+ type:Boolean,
+ default:true
+ },
+ initValue:{
+ type: Object,
+ default: () => {},
+ },
+ uploadattachment:{
+ //鏄惁鏄剧ず涓婁紶闄勪欢
+ type:Boolean,
+ default:false
+ },
},
data() {
return {
@@ -89,10 +112,13 @@
watch: {
formItems: {
handler(val) {
- if(val[0] &&val[0].column && val[0].column.isArray()){
+ if (val[0] && val[0].column && val[0].column.isArray()) {
this.getInitGroup(val);
- }else{
+ } else {
this.getInit(val);
+ }
+ if (this.initValue) {
+ Object.assign(this.form, this.initValue);
}
},
immediate: true,
@@ -107,7 +133,7 @@
handler(val) {
for (let code of this.option.column) {
if (
- (code.propType == "refer" || code.type == 'refer' )&&
+ code.type == 'refer' &&
code.referConfig &&
code.referConfig.useFormKey
) {
@@ -118,7 +144,7 @@
for (let code of this.option.group) {
for (let col of code.column) {
if (
- (col.propType == "refer" || col.type == 'refer')&&
+ col.type == 'refer'&&
col.referConfig &&
col.referConfig.useFormKey
) {
@@ -127,7 +153,7 @@
}
}
}
- this.$emit("input", val);
+ this.$emit("getFormData", val);
},
deep: true,
immediate: true
@@ -140,7 +166,6 @@
code = this.initItem(code);
column.push(code);
this.allColumn.push(code);
- console.log('allColumn',this.allColumn)
}
this.option.column = column;
},
@@ -158,7 +183,7 @@
this.option.group = group;
},
initItem(item){
- const type=this.columnType[item.type] || item.type
+ const type=this.columnType[item.type] || item.type;
const col= {
...item,
label: item.text,
@@ -166,33 +191,61 @@
showProp:item.showField,
type: type,
labelWidth: this.labelWidth || (item.text.length >= 6 ? 115 : 90),
- disabled: item.readOnly || this.disabled,
+ disabled: !this.isEdit || item.readOnly || this.disabled,
span: item.span
? item.span
: item.type === "textarea"
? 24
: this.span,
value: item.defaultValue,
- dicData: type === 'select' ? item.dicData : item.dicUrl,
display: !item.hidden,
labelSuffix: item.suffix,
suffixIcon: item.prefix,
tip: item.tooltips,
dictCode: item.comboxKey,
- rules: [{
+ valueFormat: item.dateFormate || "yyyy-MM-dd HH:mm:ss",
+ format: item.dateFormate,
+ rules: this.isEdit?(type=="select" || type=="refer" || type=="date" || type=="datetime"?[{
+ required: item.required,
+ message: `璇烽�夋嫨${item.text}!`,
+ trigger: "change"
+ },{
+ required: item.required,
+ message: `璇烽�夋嫨${item.text}!`,
+ trigger: "submit"
+ }]:[{
required: item.required,
message: `璇疯緭鍏�${item.text}!`,
trigger: "blur"
- }]
+ },{
+ required: item.required,
+ message: `璇疯緭鍏�${item.text}!`,
+ trigger: "submit"
+ }]):[]
+ };
+ if(!this.isEdit){
+ col.placeholder=col.label;
}
if(col.type === 'richText'){
this.subitemName = col.field;
}else if(col.type === 'upload'){
console.log('col',col)
+ }else if(col.type=="multiFile"){
+ if(this.uploadattachment == "false" || this.uploadattachment == false){
+ col.display=false
+ }
}
if (col.type === "select") {
- // console.log('col',col)
- if(!validatenull(col.dictCode)) {
+ if(col.data && col.data.length>0){
+ col.dicData = col.data.map((d) => {
+ return {
+ label: d.key,
+ key: d.value,
+ value: d.value,
+ attributes:d.attributes
+ };
+ });
+ }else if(!validatenull(col.dictCode)) {
getDicts(col.dictCode).then((res) => {
if (res.data.success){
if(res.data.data && res.data.obj == null){
@@ -211,7 +264,7 @@
});
}
}
- if (col.propType === "refer"|| col.type==='refer') {
+ if (col.type==='refer') {
if (col.referConfig && col.referConfig.useFormKey) {
if (validatenull(col.referConfig.formValuesKey)) {
col.referConfig.formValuesKey = "form";
@@ -266,6 +319,27 @@
}
}
}
+ },
+ // 琛ㄥ崟鏍¢獙
+ validate(done) {
+ return new Promise((resolve) => {
+ this.$refs.form.validate((valid,fields) => {
+ done(valid,fields);
+ if (valid) {
+ resolve(true);
+ this.ValidataValue = true;
+ } else {
+ resolve(false);
+ return false;
+ }
+ });
+ });
+ },
+ resetFields(){
+ this.$refs.form.resetFields()
+ },
+ clearValidate(props){
+ this.$refs.form.clearValidate(props)
}
},
};
--
Gitblit v1.9.3