Browse Source

feat:[模板管理][update]

lkf
luojie 1 month ago
parent
commit
c8342c83c6
5 changed files with 200 additions and 138 deletions
  1. +173
    -132
      src/components/Template/BaseInfoFormPackage.vue
  2. +1
    -1
      src/components/Template/SelectTable.vue
  3. +8
    -1
      src/views/business/comps/template/comps/yp/YP002.vue
  4. +7
    -2
      src/views/business/comps/template/dialog/SelectMixReagentDialog.vue
  5. +11
    -2
      src/views/business/comps/template/formConfig/formConfig.js

+ 173
- 132
src/components/Template/BaseInfoFormPackage.vue View File

@ -7,15 +7,16 @@
<div v-for="(sItem, key) in item.config" class="form-item" <div v-for="(sItem, key) in item.config" class="form-item"
:class="sItem.span == 1 ? 'full-row' : ''" :key="key"> :class="sItem.span == 1 ? 'full-row' : ''" :key="key">
<template v-if="sItem.type === 'input'"> <template v-if="sItem.type === 'input'">
<div class="form-title">{{ $t( sItem.label) }}</div>
<HandleFormItem :field-item-label="fieldItemLabel" @blur="onBlur(key, $event)" :item="sItem" v-model="formFields[key]"
:field-key="prefixKey+'_'+key"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
<div class="form-title">{{ $t(sItem.label) }}</div>
<HandleFormItem :field-item-label="fieldItemLabel" @blur="onBlur(key, $event)" :item="sItem"
v-model="formFields[key]" :field-key="prefixKey + '_' + key" @copy="onCopy(sItem, key)"
:error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
</template> </template>
<template v-else-if="sItem.type === 'inputNumber'"> <template v-else-if="sItem.type === 'inputNumber'">
<div class="form-title">{{ $t( sItem.label) }}</div>
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="inputNumber" @blur="onBlur(key, $event)" :item="sItem"
<div class="form-title">{{ $t(sItem.label) }}</div>
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="inputNumber" @blur="onBlur(key, $event)" :item="sItem"
@input="onInputNumberChange(key, $event)" v-model="formFields[key]" @input="onInputNumberChange(key, $event)" v-model="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false" @copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
@ -25,25 +26,27 @@
</template> </template>
<template v-else-if="item.type === 'conditionItem'"> <template v-else-if="item.type === 'conditionItem'">
<div class="form-item "> <div class="form-item ">
<div class="form-title fs-16" v-if="item.label">{{ $t( item.label) }}</div>
<div class="form-title fs-16" v-if="item.label">{{ $t(item.label) }}</div>
<div v-for="(sItem, key) in item.config" class="c-Item grid-container"> <div v-for="(sItem, key) in item.config" class="c-Item grid-container">
<div class="p-r-20"> <div class="p-r-20">
<div class="form-title">{{ $t( sItem.label) }}</div>
<div class="form-title">{{ $t(sItem.label) }}</div>
<div class="flex flex1"> <div 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]" />
<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> </div>
</div> </div>
<div class="p-l-20"> <div class="p-l-20">
<div v-show="isShowOther(formFields[key])"> <div v-show="isShowOther(formFields[key])">
<div class="form-title">{{ sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}</div>
<div class="form-title">{{ sItem.otherLabel ? $t(sItem.otherLabel) :
$t("template.common.other") }}</div>
<div class="flex flex1"> <div class="flex flex1">
<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]"
<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" /> @update:error="errors[sItem.otherCode] = false" />
</div> </div>
</div> </div>
@ -55,15 +58,15 @@
</template> </template>
<template v-else-if="item.type === 'attachment'"> <template v-else-if="item.type === 'attachment'">
<div class="form-item "> <div class="form-item ">
<div class="form-title fs-16" v-if="item.label">{{ $t( item.label) }}</div>
<div class="form-title fs-16" v-if="item.label">{{ $t(item.label) }}</div>
<div v-for="(sItem, key) in item.config" class="c-Item grid-container"> <div v-for="(sItem, key) in item.config" class="c-Item grid-container">
<div class="p-r-20"> <div class="p-r-20">
<div class="form-title">{{ $t( sItem.label) }}</div>
<div class="form-title">{{ $t(sItem.label) }}</div>
<div class="flex flex1"> <div class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="attachment" :item="sItem" :value="formFields[key]"
@copy="onCopy(sItem, key)" @change="(e)=>onAttachmentChange(key, e)"
:error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="attachment" :item="sItem" :value="formFields[key]" @copy="onCopy(sItem, key)"
@change="(e) => onAttachmentChange(key, e)" :error="errors[key]"
@update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" />
</div> </div>
</div> </div>
</div> </div>
@ -71,54 +74,61 @@
</template> </template>
<template v-else-if="item.type === 'cellItem'"> <template v-else-if="item.type === 'cellItem'">
<div class="form-item "> <div class="form-item ">
<div class="form-title fs-16" v-if="item.label">{{ $t( item.label) }}</div>
<div class="form-title fs-16" v-if="item.label">{{ $t(item.label) }}</div>
<div class="grid-container gap2"> <div class="grid-container gap2">
<div v-for="(sItem, key) in item.config" class="c-Item" :class="getSpanClass(sItem)" :key="key"> <div v-for="(sItem, key) in item.config" class="c-Item" :class="getSpanClass(sItem)" :key="key">
<div class="form-title" v-if="sItem.label">{{ $t( sItem.label) }}</div>
<div class="form-title" v-if="sItem.label">{{ $t(sItem.label) }}</div>
<div v-if="sItem.type === 'dateTime'" class="flex1"> <div v-if="sItem.type === 'dateTime'" class="flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="dateTime" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="dateTime" :item="sItem" v-model="formFields[key]" @copy="onCopy(sItem, key)"
:error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
</div> </div>
<div v-else-if="sItem.type === 'select'"> <div v-else-if="sItem.type === 'select'">
<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]" />
<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> </div>
<div v-else-if="sItem.type === 'input'">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" @blur="onBlur(key, $event)" :item="sItem" v-model="formFields[key]"
<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" @copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
<span v-if="sItem.subType === 'text'" class="sub-text">{{ $t( sItem.subText) }}</span>
<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)"
@clickButton="(e) => handleClickButton(e, item)" />
</div> </div>
<div v-else-if="sItem.type === 'textarea'"> <div v-else-if="sItem.type === 'textarea'">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" @blur="onBlur(key, $event)" type="textarea" :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 + '_' + key"
@blur="onBlur(key, $event)" type="textarea" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" />
</div> </div>
<div v-else-if="sItem.type === 'clickable'" class="flex1"> <div v-else-if="sItem.type === 'clickable'" class="flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="clickable" @clickable="handleClickable(sItem, key)"
:error="errors[key]" @update:error="errors[key] = false"
@resetRecord="resetRecord(key)"
:item="sItem" :value="formFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="clickable" @clickable="handleClickable(sItem, key)" :error="errors[key]"
@update:error="errors[key] = false" @resetRecord="resetRecord(key)" :item="sItem"
:value="formFields[key]" />
</div> </div>
<div v-else-if="sItem.type === 'checkboxList'" class="flex1"> <div v-else-if="sItem.type === 'checkboxList'" class="flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="checkboxList" :item="sItem" :value="formFields[key]"
@copy="onCopy(sItem, key)" @change="(e)=>onAttachmentChange(key, e)"
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="checkboxList" :item="sItem" :value="formFields[key]"
@copy="onCopy(sItem, key)" @change="(e) => onAttachmentChange(key, e)"
:error="errors[key]" @update:error="errors[key] = false" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
</div> </div>
<div v-else-if="isRegent(sItem)" class="flex1"> <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]" @update:error="errors[key] = false"
@onRegentSubmit="(data,inputValue)=>onRegentSubmit(data,inputValue,key,sItem)"
<HandleFormItem
@beforeReagentSubmit="(data, callback) => onBeforeReagentSubmit(data, callback, 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]" /> :item="sItem" :value="formFields[key]" />
</div> </div>
</div> </div>
</div> </div>
@ -129,62 +139,75 @@
<div class="grid-container gap2"> <div class="grid-container gap2">
<div v-for="(sItem, key) in item.config" class="c-Item flex item-center" <div v-for="(sItem, key) in item.config" class="c-Item flex item-center"
:class="getSpanClass(sItem)" :key="key"> :class="getSpanClass(sItem)" :key="key">
<div class="step-form-title" :style = "{'width': sItem.labelWidth ? sItem.labelWidth + 'px' : '150px'}" v-if="sItem.label">{{ $t( sItem.label) }}</div>
<div class="step-form-title"
:style="{ 'width': sItem.labelWidth ? sItem.labelWidth + 'px' : '150px' }" v-if="sItem.label">
{{ $t(sItem.label) }}</div>
<div v-if="sItem.type === 'dateTime'" class="flex1"> <div v-if="sItem.type === 'dateTime'" class="flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="dateTime" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="dateTime" :item="sItem" v-model="formFields[key]" @copy="onCopy(sItem, key)"
:error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
</div> </div>
<div v-else-if="sItem.type === 'select'" class="flex flex1"> <div v-else-if="sItem.type === 'select'" class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="select" :item="sItem" style="width: auto;flex:1"
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]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="select" :item="sItem" style="width: auto;flex:1" 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 v-show="isShowOther(formFields[key])" class="flex flex1">
<div class="other-title">{{sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}</div>
<div class="other-title">{{ sItem.otherLabel ? $t(sItem.otherLabel) :
$t("template.common.other") }}</div>
<div class="flex"> <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"
<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]" /> :orange-bg="orangeBgFields[sItem.otherCode]" />
</div> </div>
</div> </div>
</div> </div>
<div v-else-if="sItem.type === 'input'" class="flex flex1"> <div v-else-if="sItem.type === 'input'" class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" @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)" v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
@change="(e,type)=>onSelectChange(sItem.subKey, e,type)" :error="errors[sItem.subKey]"
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
@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)"
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" @update:error="errors[sItem.subKey] = false"
:orange-bg="orangeBgFields[sItem.subKey]" /> :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)" v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
:error="errors[sItem.subKey]"
@blur="onBlur(sItem.subKey, $event)"
<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" @update:error="errors[sItem.subKey] = false"
:orange-bg="orangeBgFields[sItem.subKey]" /> :orange-bg="orangeBgFields[sItem.subKey]" />
<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"
<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"
@clickable="handleClickable(sItem, sItem.subKey)" :item="getClickableItem(sItem)" @clickable="handleClickable(sItem, sItem.subKey)" :item="getClickableItem(sItem)"
:error="errors[sItem.subKey]" @update:error="errors[sItem.subKey] = false" :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"
:item="getRegentItem(sItem,'subType')"
sourceFrom = "baseInfoFormPackage"
@beforeReagentSubmit="(data, callback)=>onBeforeReagentSubmit(data, callback,sItem.subKey)"
@onRegentSubmit="(data,inputValue)=>onRegentSubmit(data,inputValue,sItem.subKey,sItem)"
@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"
:item="getRegentItem(sItem, 'subType')" sourceFrom="baseInfoFormPackage"
@beforeReagentSubmit="(data, callback) => onBeforeReagentSubmit(data, callback, sItem.subKey)"
@onRegentSubmit="(data, inputValue) => onRegentSubmit(data, inputValue, sItem.subKey, sItem)"
:error="errors[sItem.subKey]" @update:error="errors[sItem.subKey] = false" :error="errors[sItem.subKey]" @update:error="errors[sItem.subKey] = false"
:value="formFields[sItem.subKey]" /> :value="formFields[sItem.subKey]" />
<div v-show="isShowOther(formFields[sItem.subKey])" class="flex flex1"> <div v-show="isShowOther(formFields[sItem.subKey])" class="flex flex1">
<div class="other-title">{{sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}</div>
<div class="other-title">{{ sItem.otherLabel ? $t(sItem.otherLabel) :
$t("template.common.other") }}</div>
<div class="flex flex1"> <div class="flex flex1">
<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"
<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]" /> :orange-bg="orangeBgFields[sItem.otherCode]" />
</div> </div>
</div> </div>
@ -194,72 +217,74 @@
</div> --> </div> -->
</div> </div>
<div v-else-if="sItem.type === 'inputNumber'" class="flex flex1"> <div v-else-if="sItem.type === 'inputNumber'" class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="inputNumber" @blur="onBlur(key, $event)" class="flex1" :item="sItem"
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="inputNumber" @blur="onBlur(key, $event)" class="flex1" :item="sItem"
@input="onInputNumberChange(key, $event)" :value="formFields[key]" @input="onInputNumberChange(key, $event)" :value="formFields[key]"
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false" @copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :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)" v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
@change="(e,type)=>onSelectChange(sItem.subKey, e,type)" :error="errors[sItem.subKey]"
<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" @update:error="errors[sItem.subKey] = false"
:orange-bg="orangeBgFields[sItem.subKey]" /> :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'"
@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"
<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'"
@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"
:error="errors[sItem.subKey]" :type="sItem.subType" :error="errors[sItem.subKey]" :type="sItem.subType"
@beforeReagentSubmit="(data, callback)=>onBeforeReagentSubmit(data, callback,sItem.subKey)"
@onRegentSubmit="(data,inputValue)=>onRegentSubmit(data,inputValue,sItem.subKey,sItem)"
:item="getRegentItem(sItem,'subType')" :value="formFields[sItem.subKey]" />
@beforeReagentSubmit="(data, callback) => onBeforeReagentSubmit(data, callback, sItem.subKey)"
@onRegentSubmit="(data, inputValue) => onRegentSubmit(data, inputValue, sItem.subKey, sItem)"
:item="getRegentItem(sItem, 'subType')" :value="formFields[sItem.subKey]" />
</div> </div>
<div v-else-if="sItem.type === 'clickable'" class="flex flex1"> <div v-else-if="sItem.type === 'clickable'" class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel"
:field-key="prefixKey+'_'+key" type="clickable" @clickable="handleClickable(sItem,key)"
:error="errors[key]" @update:error="errors[key] = false"
@resetRecord="resetRecord(key)"
:item="sItem" :value="formFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="clickable" @clickable="handleClickable(sItem, key)" :error="errors[key]"
@update:error="errors[key] = false" @resetRecord="resetRecord(key)" :item="sItem"
:value="formFields[key]" />
</div> </div>
<div v-else-if="sItem.type === 'checkboxList'" class="flex flex1"> <div v-else-if="sItem.type === 'checkboxList'" class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="checkboxList" :item="sItem" :value="formFields[key]"
@copy="onCopy(sItem, key)" @change="(e)=>onAttachmentChange(key, e)"
:error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="checkboxList" :item="sItem" :value="formFields[key]" @copy="onCopy(sItem, key)"
@change="(e) => onAttachmentChange(key, e)" :error="errors[key]"
@update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" />
</div> </div>
<div v-else-if="isRegent(sItem)"
class="flex item-center flex1">
<HandleFormItem :field-item-label="fieldItemLabel"
sourceFrom = "baseInfoFormPackage"
@beforeReagentSubmit="(data, callback)=>onBeforeReagentSubmit(data, callback,key)"
@onRegentSubmit="(data,inputValue)=>onRegentSubmit(data,inputValue,key,sItem)"
:field-key="prefixKey+'_'+key" :type="sItem.type"
:error="errors[key]" @update:error="errors[key] = false"
:item="getRegentItem(sItem)" :value="formFields[key]" />
<span v-if="sItem.subType === 'text'" class="sub-text">{{ $t( sItem.subText) }}</span>
<div v-else-if="isRegent(sItem)" class="flex item-center flex1">
<HandleFormItem :field-item-label="fieldItemLabel" sourceFrom="baseInfoFormPackage"
@beforeReagentSubmit="(data, callback) => onBeforeReagentSubmit(data, callback, key)"
@onRegentSubmit="(data, inputValue) => onRegentSubmit(data, inputValue, key, sItem)"
:field-key="prefixKey + '_' + key" :type="sItem.type" :error="errors[key]"
@update:error="errors[key] = false" :item="getRegentItem(sItem)"
:value="formFields[key]" />
<span v-if="sItem.subType === 'text'" class="sub-text">{{ $t(sItem.subText) }}</span>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<template v-else-if="item.type === 'checkboxList'"> <template v-else-if="item.type === 'checkboxList'">
<div class="form-item ">
<div class="form-title fs-16" v-if="item.label">{{ $t( item.label) }}</div>
<div class="form-item ">
<div class="form-title fs-16" v-if="item.label">{{ $t(item.label) }}</div>
<div v-for="(sItem, key) in item.config" class="c-Item grid-container"> <div v-for="(sItem, key) in item.config" class="c-Item grid-container">
<div class="p-r-20 item-center"> <div class="p-r-20 item-center">
<div class="form-title mr-20">{{ $t( sItem.label) }}</div>
<div class="form-title mr-20">{{ $t(sItem.label) }}</div>
<div class="flex flex1"> <div class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="checkboxList" :item="sItem" :value="formFields[key]"
@copy="onCopy(sItem, key)" @change="(e)=>onAttachmentChange(key, e)"
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key"
type="checkboxList" :item="sItem" :value="formFields[key]"
@copy="onCopy(sItem, key)" @change="(e) => onAttachmentChange(key, e)"
:error="errors[key]" @update:error="errors[key] = false" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
</div> </div>
@ -299,7 +324,7 @@ export default {
default: "", default: "",
}, },
// //
prefixKey:{
prefixKey: {
type: String, type: String,
default: "", default: "",
} }
@ -317,7 +342,18 @@ export default {
}, },
methods: { methods: {
onBeforeReagentSubmit(data, callback, key) { onBeforeReagentSubmit(data, callback, key) {
this.$emit('beforeReagentSubmit',{selectData:data, callback, key,formFields:this.formFields})
this.$emit('beforeReagentSubmit', { selectData: data, callback, key, formFields: this.formFields })
},
//
handleClickButton(e, item) {
this.$emit("clickButton", e, item)
},
//
getButtonItem(sItem) {
return {
...sItem,
fillType: sItem.subFillType || sItem.fillType
}
}, },
} }
} }
@ -329,7 +365,7 @@ export default {
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
/* 默认2列 */ /* 默认2列 */
gap: 0 20px; gap: 0 20px;
/* 防止网格容器被分割到不同页面 */
/* 防止网格容器被分割到不同页面 */
page-break-inside: avoid; page-break-inside: avoid;
break-inside: avoid; break-inside: avoid;
} }
@ -456,23 +492,28 @@ export default {
.ml-10 { .ml-10 {
margin-left: 10px; margin-left: 10px;
} }
.item-span{
.item-span {
color: #606266; color: #606266;
font-size: 14px; font-size: 14px;
} }
.item-center{
.item-center {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.ml-5{
.ml-5 {
margin-left: 5px; margin-left: 5px;
} }
.sub-text{
.sub-text {
color: #606266; color: #606266;
font-size: 14px; font-size: 14px;
margin-left: 5px; margin-left: 5px;
} }
.mr-20{
.mr-20 {
margin-right: 20px; margin-right: 20px;
} }
</style> </style>

+ 1
- 1
src/components/Template/SelectTable.vue View File

@ -20,7 +20,7 @@
<el-radio v-model="localSelectedId" :label="scope.row[selectedCode]" class="hide-label" @input.native.stop="handleRadioClick(scope.row)"></el-radio> <el-radio v-model="localSelectedId" :label="scope.row[selectedCode]" class="hide-label" @input.native.stop="handleRadioClick(scope.row)"></el-radio>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-for="(item) in columns" :prop="item.prop" :key="item.prop" :label="$t(item.label)">
<el-table-column v-for="(item) in columns" :prop="item.prop" :key="item.prop" :formatter="item.formatter" :label="$t(item.label)">
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="mt-10"> <div class="mt-10">

+ 8
- 1
src/views/business/comps/template/comps/yp/YP002.vue View File

@ -15,6 +15,7 @@
/> />
<BaseInfoFormPackage fieldItemLabel="template.yp.yp002.qbjsxx" label="template.yp.yp002.qbjsxx" <BaseInfoFormPackage fieldItemLabel="template.yp.yp002.qbjsxx" label="template.yp.yp002.qbjsxx"
@clickButton="handleClickButton"
ref="ypjsInfoRef" :formConfig="ypjsInfoFormConfig" :formData="formData" /> ref="ypjsInfoRef" :formConfig="ypjsInfoFormConfig" :formData="formData" />
<BaseInfoFormPackage fieldItemLabel="template.yp.yp002.jsbz" label="template.yp.yp002.jsbz" <BaseInfoFormPackage fieldItemLabel="template.yp.yp002.jsbz" label="template.yp.yp002.jsbz"
@ -138,7 +139,9 @@ export default {
label: 'template.yp.yp002.jssj', label: 'template.yp.yp002.jssj',
type: 'input', type: 'input',
fillType: 'actFill', fillType: 'actFill',
maxlength: 200
maxlength: 200,
subType:"button",
buttonName:"获取时间"
}, },
} }
} }
@ -153,6 +156,10 @@ export default {
mounted() { mounted() {
}, },
methods: { methods: {
//
handleClickButton(e,item){
console.log(e,item,"点击按钮")
},
// //
getFilledFormData() { getFilledFormData() {
const baseData = this.$refs.baseInfoRef.getFilledFormData(); const baseData = this.$refs.baseInfoRef.getFilledFormData();

+ 7
- 2
src/views/business/comps/template/dialog/SelectMixReagentDialog.vue View File

@ -28,6 +28,7 @@ import SelectDept from "@/views/business/comps/select/SelectDept";
import { public_sjList, public_gyzjList, public_gspList, public_xbList,public_jcbList,public_qxFormFillList } from '@/api/business/public/public'; import { public_sjList, public_gyzjList, public_gspList, public_xbList,public_jcbList,public_qxFormFillList } from '@/api/business/public/public';
import { getSjSearchForm, getSjColumns, getGyzjSearchForm, getGyzjColumns, getGspSearchForm, getGspColumns, getXbSearchForm, getXbColumns,getJcbSearchForm,getJcbColumns,getQxbdSearchForm,getQxbdColumns } from '@/views/business/comps/template/formConfig/formConfig.js'; import { getSjSearchForm, getSjColumns, getGyzjSearchForm, getGyzjColumns, getGspSearchForm, getGspColumns, getXbSearchForm, getXbColumns,getJcbSearchForm,getJcbColumns,getQxbdSearchForm,getQxbdColumns } from '@/views/business/comps/template/formConfig/formConfig.js';
import { EventBus } from "@/utils/eventBus"; import { EventBus } from "@/utils/eventBus";
console.log(this,"this")
const typeMap = { const typeMap = {
'1': { '1': {
searchForm: getSjSearchForm(), searchForm: getSjSearchForm(),
@ -61,7 +62,6 @@ const typeMap = {
}, },
"15": { "15": {
searchForm: getQxbdSearchForm(), searchForm: getQxbdSearchForm(),
columns: getQxbdColumns(),
listApi: public_qxFormFillList, listApi: public_qxFormFillList,
title:"请选择前序表单" title:"请选择前序表单"
}, },
@ -141,7 +141,12 @@ export default {
handleShowTableInfo(type) { handleShowTableInfo(type) {
this.selectType = type; this.selectType = type;
this.searchForm = typeMap[type].searchForm; this.searchForm = typeMap[type].searchForm;
this.columns = typeMap[type].columns;
// getQxbdColumns
if (type === '15') {
this.columns = getQxbdColumns(this);
} else {
this.columns = typeMap[type].columns;
}
this.listApi = typeMap[type].listApi; this.listApi = typeMap[type].listApi;
this.listApi = typeMap[type].listApi || this.listApi; this.listApi = typeMap[type].listApi || this.listApi;
this.title = typeMap[type].title || this.title; this.title = typeMap[type].title || this.title;

+ 11
- 2
src/views/business/comps/template/formConfig/formConfig.js View File

@ -203,7 +203,13 @@ export const getQxbdSearchForm = () => {
} }
} }
// 前序表单列表表格列 // 前序表单列表表格列
export const getQxbdColumns = () => {
export const getQxbdColumns = ($this) => {
const locale = $this.$i18n.locale;
const configObj = {
"zh_CN":{5:'已填写',6:'未填写'},
"en_US":{5:'Filled',6:'Unfilled'},
}
const o = configObj[locale];
return [ return [
{ {
prop: 'bdbh', prop: 'bdbh',
@ -223,7 +229,10 @@ export const getQxbdColumns = () => {
}, },
{ {
prop: 'bdzt', prop: 'bdzt',
label: 'template.yp.yp002.bdzt'
label: 'template.yp.yp002.bdzt',
formatter: (row) => {
return o[row.bdzt]
}
} }
] ]
} }

Loading…
Cancel
Save