Browse Source

feat:[模板管理][yp003]

ouqian
luojie 1 month ago
parent
commit
ce776a568d
2 changed files with 68 additions and 48 deletions
  1. +65
    -46
      src/components/Template/BaseInfoFormPackage.vue
  2. +3
    -2
      src/components/Template/HandleFormItem.vue

+ 65
- 46
src/components/Template/BaseInfoFormPackage.vue View File

@ -84,22 +84,33 @@
:error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" />
</div>
<div v-else-if="sItem.type === 'select'">
<div v-else-if="sItem.type === 'select'" class = "flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="select" :item="sItem" v-model="formFields[key]" @copy="onCopy(sItem, key)"
@change="(e, type) => onSelectChange(key, e, type)" :error="errors[key]"
@update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" />
<div v-show="isShowOther(formFields[key])" class="flex flex1">
<div class="other-title">{{ sItem.otherLabel ? $t(sItem.otherLabel) :
$t("template.common.other") }}</div>
<div class="flex">
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.otherCode" @blur="onBlur(key, $event)"
:item="getOtherItem(sItem)" v-model="formFields[sItem.otherCode]"
@copy="onCopy(sItem, key)" :error="errors[sItem.otherCode]"
@update:error="errors[sItem.otherCode] = false"
:orange-bg="orangeBgFields[sItem.otherCode]" />
</div>
</div>
</div>
<div v-else-if="sItem.type === 'input'" class="item-center">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
@blur="onBlur(key, $event)" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
:ref = "key"
:orange-bg="orangeBgFields[key]" />
:ref="key" :orange-bg="orangeBgFields[key]" />
<span v-if="sItem.subType === 'text'" class="sub-text">{{ $t(sItem.subText) }}</span>
<HandleFormItem class="ml-10" v-else-if="sItem.subType === 'button'" type="button" :item="getButtonItem(sItem)"
:value="formFields[sItem.subKey]"
@clickButton="(e,val,data) => handleClickButton(e, sItem,val,data)" />
<HandleFormItem class="ml-10" v-else-if="sItem.subType === 'button'" type="button"
:item="getButtonItem(sItem)" :value="formFields[sItem.subKey]"
@clickButton="(e, val, data) => handleClickButton(e, sItem, val, data)" />
</div>
<div v-else-if="sItem.type === 'textarea'">
@ -125,22 +136,20 @@
<div v-else-if="isRegent(sItem)" class="flex1">
<HandleFormItem
@beforeReagentSubmit="(data, callback) => onBeforeReagentSubmit(data, callback, key)"
:field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key" :type="sItem.type"
sourceFrom="baseInfoFormPackage" :error="errors[key]"
:field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
:type="sItem.type" sourceFrom="baseInfoFormPackage" :error="errors[key]"
@update:error="errors[key] = false"
@onRegentSubmit="(data, inputValue) => onRegentSubmit(data, inputValue, key, sItem)"
:item="sItem" :value="formFields[key]" />
</div>
<!-- 勾选某些选项时出现其他输入框 -->
<div v-else-if="sItem.type === 'radioAndOther'" class="item-center">
<HandleFormItem
:field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key" type="radio"
:error="errors[key]"
@update:error="errors[key] = false"
@change="(e,type) => onSelectChange(key, e, type)"
:item="sItem" :value="formFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="radio" :error="errors[key]" @update:error="errors[key] = false"
@change="(e, type) => onSelectChange(key, e, type)" :item="sItem"
:value="formFields[key]" />
<div v-show="isShowOtherByRadioAndOther(formFields[key], sItem)" class="flex1 ml-10">
<HandleFormItem :field-item-label="fieldItemLabel"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.otherCode" @blur="onBlur(key, $event)"
:item="getRadioOtherItem(sItem)" v-model="formFields[sItem.otherCode]"
@copy="onCopy(sItem, key)" :error="errors[sItem.otherCode]"
@ -148,11 +157,12 @@
:orange-bg="orangeBgFields[sItem.otherCode]" />
</div>
</div>
<div v-else-if="sItem.type === 'fqyq'" class="flex1" :class="{ 'form-error-border': errors[key] }">
<div v-else-if="sItem.type === 'fqyq'" class="flex1"
:class="{ 'form-error-border': errors[key] }">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="fqyq" :item="sItem" :value="formFields[key]"
@change="(e) => onFqyqChange(key, e)"
:error="errors[key]" @update:error="errors[key] = false" />
@change="(e) => onFqyqChange(key, e)" :error="errors[key]"
@update:error="errors[key] = false" />
</div>
@ -166,7 +176,8 @@
<div v-for="(sItem, key) in item.config" class="c-Item flex item-center"
:class="getSpanClass(sItem)" :key="key">
<div class="step-form-title"
:style="{ 'width': sItem.labelWidth ? sItem.labelWidth + 'px' : '150px' }" v-if="sItem.label">
:style="{ 'width': sItem.labelWidth ? sItem.labelWidth + 'px' : '150px' }"
v-if="sItem.label">
{{ $t(sItem.label) }}</div>
<div v-if="sItem.type === 'dateTime'" class="flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
@ -198,14 +209,16 @@
@blur="onBlur(key, $event)" class="flex1" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + sItem.subKey"
class="ml-10" v-if="sItem.subType === 'select'" type="select" :item="getSubItem(sItem)"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.subKey" class="ml-10"
v-if="sItem.subType === 'select'" type="select" :item="getSubItem(sItem)"
v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
@change="(e, type) => onSelectChange(sItem.subKey, e, type)" :error="errors[sItem.subKey]"
@update:error="errors[sItem.subKey] = false"
@change="(e, type) => onSelectChange(sItem.subKey, e, type)"
:error="errors[sItem.subKey]" @update:error="errors[sItem.subKey] = false"
:orange-bg="orangeBgFields[sItem.subKey]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + sItem.subKey"
class="ml-10" v-if="sItem.subType === 'input'" type="input" :item="getSubItem(sItem)"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.subKey" class="ml-10"
v-if="sItem.subType === 'input'" type="input" :item="getSubItem(sItem)"
v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
:error="errors[sItem.subKey]" @blur="onBlur(sItem.subKey, $event)"
@update:error="errors[sItem.subKey] = false"
@ -213,13 +226,15 @@
<div class="ml-10 item-span" v-else-if="sItem.subType === 'span'">{{
formFields[sItem.subKey] }}</div>
<span v-else-if="sItem.subType === 'text'" class="sub-text">{{ $t(sItem.subText) }}</span>
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + sItem.subKey"
class="ml-10" v-else-if="sItem.subType === 'clickable'" type="clickable"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.subKey" class="ml-10"
v-else-if="sItem.subType === 'clickable'" type="clickable"
@clickable="handleClickable(sItem, sItem.subKey)" :item="getClickableItem(sItem)"
:error="errors[sItem.subKey]" @update:error="errors[sItem.subKey] = false"
@resetRecord="resetRecord(sItem.subKey)" :value="formFields[sItem.subKey]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + sItem.subKey"
class="ml-10" v-else-if="isRegent(sItem, 'subType')" :type="sItem.subType"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.subKey" class="ml-10"
v-else-if="isRegent(sItem, 'subType')" :type="sItem.subType"
:item="getRegentItem(sItem, 'subType')" sourceFrom="baseInfoFormPackage"
@beforeReagentSubmit="(data, callback) => onBeforeReagentSubmit(data, callback, sItem.subKey)"
@onRegentSubmit="(data, inputValue) => onRegentSubmit(data, inputValue, sItem.subKey, sItem)"
@ -248,22 +263,25 @@
@input="onInputNumberChange(key, $event)" :value="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + sItem.subKey"
class="ml-10" v-if="sItem.subType === 'select'" type="select" :item="getSubItem(sItem)"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.subKey" class="ml-10"
v-if="sItem.subType === 'select'" type="select" :item="getSubItem(sItem)"
v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
@change="(e, type) => onSelectChange(sItem.subKey, e, type)" :error="errors[sItem.subKey]"
@update:error="errors[sItem.subKey] = false"
@change="(e, type) => onSelectChange(sItem.subKey, e, type)"
:error="errors[sItem.subKey]" @update:error="errors[sItem.subKey] = false"
:orange-bg="orangeBgFields[sItem.subKey]" />
<div class="ml-10 item-span" v-else-if="sItem.subType === 'span'">{{
formFields[sItem.subKey] }}</div>
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + sItem.subKey"
class="ml-10" v-else-if="sItem.subType === 'clickable'"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.subKey" class="ml-10"
v-else-if="sItem.subType === 'clickable'"
@clickable="handleClickable(sItem, sItem.subKey)" :error="errors[sItem.subKey]"
type="clickable" @update:error="errors[sItem.subKey] = false"
@resetRecord="resetRecord(sItem.subKey)" :item="getClickableItem(sItem)"
:value="formFields[sItem.subKey]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + sItem.subKey"
class="ml-10" v-else-if="isRegent(sItem, 'subType')" sourceFrom="baseInfoFormPackage"
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey + '_' + sItem.subKey" class="ml-10"
v-else-if="isRegent(sItem, 'subType')" sourceFrom="baseInfoFormPackage"
:error="errors[sItem.subKey]" :type="sItem.subType"
@beforeReagentSubmit="(data, callback) => onBeforeReagentSubmit(data, callback, sItem.subKey)"
@onRegentSubmit="(data, inputValue) => onRegentSubmit(data, inputValue, sItem.subKey, sItem)"
@ -320,7 +338,7 @@
<script>
import HandleFormItem from "./HandleFormItem.vue";
import LineLabel from "./LineLabel.vue";
import { isShowOther,isShowOtherByRadioAndOther } from "@/utils/formPackageCommon.js";
import { isShowOther, isShowOtherByRadioAndOther } from "@/utils/formPackageCommon.js";
import { isRegent } from "@/utils/index.js";
import formPackageMixins from '@/components/Template/mixins/formPackageMixins.js'
@ -372,9 +390,9 @@ export default {
this.$emit('beforeReagentSubmit', { selectData: data, callback, key, formFields: this.formFields })
},
//
handleClickButton(e, item,val,data) {
handleClickButton(e, item, val, data) {
this.formFields[item.subKey] = val;
this.$emit("clickButton", item,data)
this.$emit("clickButton", item, data)
},
//
getButtonItem(sItem) {
@ -385,8 +403,8 @@ export default {
}
},
// fqyq
onFqyqChange(key, e){
console.log(e,key,'fqyq');
onFqyqChange(key, e) {
console.log(e, key, 'fqyq');
this.formFields[key] = e;
}
@ -551,10 +569,11 @@ export default {
.mr-20 {
margin-right: 20px;
}
.form-error-border{
.form-error-border {
box-shadow: 0 0 6px #ffc3c3;
padding: 8px;
border-radius: 4px;
border: 1px solid #ff5d5d;
padding: 8px;
border-radius: 4px;
border: 1px solid #ff5d5d;
}
</style>

+ 3
- 2
src/components/Template/HandleFormItem.vue View File

@ -23,6 +23,7 @@
<el-checkbox v-else-if="type === 'checkbox'" class="flex1" :multiple="item.multiple"
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" v-model="inputValue"
:disabled="getDisabled()" :placeholder="getPlaceholder()" @change="onItemCheckboxChange">
{{ item.checkboxLabel }}
</el-checkbox>
<el-radio-group v-else-if="type === 'radio'" v-model="inputValue"
:class="getFillTypeStyle() + (orangeBg ? ' orange-bg' : '')" :disabled="getDisabled()"
@ -1066,8 +1067,8 @@ export default {
isModify = !!this.oldFqyqValue.mainRadio
}else if(this.type === "checkboxList"){
const current = this.getCheckboxListInfo();
recordOldVlaue = `${current.des+current.oldValue}`;
recordValue = `${current.des+current.newValue}`;
recordOldVlaue = `${current.oldValue || ''}`;
recordValue = `${current.newValue || ''}`;
isModify = !!current.oldValue;
}
const record = {

Loading…
Cancel
Save