|
|
@@ -1,21 +1,20 @@
|
|
|
<template>
|
|
|
<!-- 单行文本、 多行文本、 数字-->
|
|
|
<van-field
|
|
|
- v-if="fieldType==='text'||fieldType==='textarea'||fieldType==='number'"
|
|
|
+ v-if="
|
|
|
+ fieldType === 'text' || fieldType === 'textarea' || fieldType === 'number'
|
|
|
+ "
|
|
|
v-model="dataModel"
|
|
|
:name="field.name"
|
|
|
:label="label"
|
|
|
:placeholder="placeholder"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
- :type="fieldType"
|
|
|
-
|
|
|
+ :type="fieldType == 'text' && readonly == true ? 'textarea' : fieldType"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
:rules="rules"
|
|
|
-
|
|
|
:autosize="autosize"
|
|
|
- :rows="fieldOptions.rows||2"
|
|
|
+ :rows="fieldOptions.rows || 2"
|
|
|
:desc="field.desc"
|
|
|
autocomplete="off"
|
|
|
border
|
|
|
@@ -23,12 +22,18 @@
|
|
|
v-on="$listeners"
|
|
|
>
|
|
|
<template #label>
|
|
|
- {{ label }}<van-icon v-if="field.desc && descPosition==='lableIcon'" name="warning" class="ibps-dialog-icon" @click="showDesc(label,field.desc)" />
|
|
|
+ {{ label
|
|
|
+ }}<van-icon
|
|
|
+ v-if="field.desc && descPosition === 'lableIcon'"
|
|
|
+ name="warning"
|
|
|
+ class="ibps-dialog-icon"
|
|
|
+ @click="showDesc(label, field.desc)"
|
|
|
+ />
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
|
<ibps-stepper
|
|
|
- v-else-if="fieldType==='inputNumber'"
|
|
|
+ v-else-if="fieldType === 'inputNumber'"
|
|
|
v-model="dataModel"
|
|
|
:max="fieldOptions.max"
|
|
|
:min="fieldOptions.min"
|
|
|
@@ -37,28 +42,24 @@
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:label="label"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
:rules="rules"
|
|
|
-
|
|
|
v-on="$listeners"
|
|
|
/>
|
|
|
|
|
|
<!-- 单项选择 -->
|
|
|
<ibps-radio
|
|
|
- v-else-if="fieldType==='radio'"
|
|
|
+ v-else-if="fieldType === 'radio'"
|
|
|
v-model="dataModel"
|
|
|
:name="field.name"
|
|
|
:label="label"
|
|
|
:placeholder="placeholder"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:options="dataOptions"
|
|
|
value-key="val"
|
|
|
:other-option-value.sync="otherOptionValue"
|
|
|
-
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
:rules="rules"
|
|
|
@@ -66,23 +67,20 @@
|
|
|
:desc="field.desc"
|
|
|
border
|
|
|
clearable
|
|
|
-
|
|
|
v-on="$listeners"
|
|
|
/>
|
|
|
|
|
|
<!-- 多项选择 -->
|
|
|
<ibps-checkbox
|
|
|
- v-else-if="fieldType==='checkbox'"
|
|
|
+ v-else-if="fieldType === 'checkbox'"
|
|
|
v-model="dataModel"
|
|
|
:name="field.name"
|
|
|
:label="label"
|
|
|
:placeholder="placeholder"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:options="dataOptions"
|
|
|
value-key="val"
|
|
|
:other-option-value.sync="otherOptionValue"
|
|
|
-
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
:rules="rules"
|
|
|
@@ -94,16 +92,14 @@
|
|
|
/>
|
|
|
<!-- 下拉选择 -->
|
|
|
<ibps-select
|
|
|
- v-else-if="fieldType==='select'"
|
|
|
+ v-else-if="fieldType === 'select'"
|
|
|
v-model="dataModel"
|
|
|
:name="field.name"
|
|
|
:label="label"
|
|
|
:placeholder="placeholder"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:options="dataOptions"
|
|
|
value-key="val"
|
|
|
-
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
:rules="rules"
|
|
|
@@ -115,7 +111,11 @@
|
|
|
/>
|
|
|
<!-- 日期/ 当前时间、当前日期 -->
|
|
|
<ibps-date-picker
|
|
|
- v-else-if="fieldType==='datePicker'|| fieldType==='currentDate'|| fieldType==='currentTime'"
|
|
|
+ v-else-if="
|
|
|
+ fieldType === 'datePicker' ||
|
|
|
+ fieldType === 'currentDate' ||
|
|
|
+ fieldType === 'currentTime'
|
|
|
+ "
|
|
|
v-model="dateDataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
@@ -123,10 +123,13 @@
|
|
|
:placeholder="placeholder"
|
|
|
:format="dateFormat"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
- :readonly="fieldType==='currentTime'||fieldType==='currentDate'?true:readonly"
|
|
|
+ :readonly="
|
|
|
+ fieldType === 'currentTime' || fieldType === 'currentDate'
|
|
|
+ ? true
|
|
|
+ : readonly
|
|
|
+ "
|
|
|
:rules="rules"
|
|
|
type="custom"
|
|
|
v-on="$listeners"
|
|
|
@@ -134,7 +137,7 @@
|
|
|
|
|
|
<!-- 开关控件 -->
|
|
|
<ibps-switch
|
|
|
- v-else-if="fieldType==='switch'"
|
|
|
+ v-else-if="fieldType === 'switch'"
|
|
|
v-model="dataModel"
|
|
|
:name="field.name"
|
|
|
:label="field.label"
|
|
|
@@ -142,35 +145,30 @@
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:active-value="fieldOptions.active_value"
|
|
|
:inactive-value="fieldOptions.inactive_value"
|
|
|
:active-text="fieldOptions.active_text"
|
|
|
:inactive-text="fieldOptions.inactive_text"
|
|
|
:active-color="fieldOptions.active_color"
|
|
|
:inactive-color="fieldOptions.inactive_color"
|
|
|
-
|
|
|
:required="required"
|
|
|
:disabled="readonly"
|
|
|
:rules="rules"
|
|
|
-
|
|
|
v-on="$listeners"
|
|
|
/>
|
|
|
|
|
|
<!-- 滑块控件 -->
|
|
|
<ibps-slider
|
|
|
- v-else-if="fieldType==='slider'"
|
|
|
+ v-else-if="fieldType === 'slider'"
|
|
|
v-model="numberDataModel"
|
|
|
:name="field.name"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
:placeholder="placeholder"
|
|
|
-
|
|
|
:max="fieldOptions.max"
|
|
|
:min="fieldOptions.min"
|
|
|
:step="fieldOptions.step"
|
|
|
-
|
|
|
:required="required"
|
|
|
:disabled="readonly"
|
|
|
:rules="rules"
|
|
|
@@ -179,7 +177,7 @@
|
|
|
|
|
|
<!-- 评分控件 -->
|
|
|
<ibps-rate
|
|
|
- v-else-if="fieldType==='rate'"
|
|
|
+ v-else-if="fieldType === 'rate'"
|
|
|
v-model="numberDataModel"
|
|
|
:name="field.name"
|
|
|
:label="field.label"
|
|
|
@@ -187,10 +185,8 @@
|
|
|
:desc-position="descPosition"
|
|
|
:placeholder="placeholder"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:count="fieldOptions.max"
|
|
|
:allow-half="fieldOptions.allow_half"
|
|
|
-
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
:rules="rules"
|
|
|
@@ -198,14 +194,13 @@
|
|
|
/>
|
|
|
<!-- 富文本 -->
|
|
|
<ibps-editor
|
|
|
- v-else-if="fieldType==='editor'"
|
|
|
+ v-else-if="fieldType === 'editor'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
:placeholder="placeholder"
|
|
|
:height="height"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -214,7 +209,7 @@
|
|
|
/>
|
|
|
<!-- 数据字典 -->
|
|
|
<ibps-dictionary
|
|
|
- v-else-if="fieldType==='dictionary'"
|
|
|
+ v-else-if="fieldType === 'dictionary'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
@@ -226,7 +221,6 @@
|
|
|
:separator="fieldOptions.split"
|
|
|
:multiple="multiple"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -235,7 +229,7 @@
|
|
|
/>
|
|
|
<!-- 自动编号 -->
|
|
|
<ibps-auto-number
|
|
|
- v-else-if="fieldType==='autoNumber'"
|
|
|
+ v-else-if="fieldType === 'autoNumber'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
@@ -244,7 +238,6 @@
|
|
|
:identity="fieldOptions.identity"
|
|
|
:init="$utils.toBoolean(fieldOptions.init)"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -253,13 +246,13 @@
|
|
|
/>
|
|
|
<!-- 上传附件 -->
|
|
|
<ibps-uploader
|
|
|
- v-else-if="fieldType==='attachment'"
|
|
|
+ v-else-if="fieldType === 'attachment'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
:placeholder="placeholder"
|
|
|
- :store="fieldOptions.store||'json'"
|
|
|
+ :store="fieldOptions.store || 'json'"
|
|
|
:max-size="maxFileSize"
|
|
|
:limit="fileQuantity"
|
|
|
:accept="fileAccept"
|
|
|
@@ -268,7 +261,6 @@
|
|
|
:download="fieldOptions.download"
|
|
|
:upload-type="fieldOptions.uploadType"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -278,30 +270,37 @@
|
|
|
|
|
|
<!-- 选择器 -->
|
|
|
<ibps-selector
|
|
|
- v-else-if="fieldType==='selector' || fieldType==='currentUser'|| fieldType==='currentOrg'"
|
|
|
+ v-else-if="
|
|
|
+ fieldType === 'selector' ||
|
|
|
+ fieldType === 'currentUser' ||
|
|
|
+ fieldType === 'currentOrg'
|
|
|
+ "
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
:placeholder="placeholder"
|
|
|
- :store="fieldOptions.store||'id'"
|
|
|
- :type="fieldOptions.selector_type||'user'"
|
|
|
+ :store="fieldOptions.store || 'id'"
|
|
|
+ :type="fieldOptions.selector_type || 'user'"
|
|
|
:multiple="multiple"
|
|
|
:bind-id="bindId"
|
|
|
:field-options="fieldOptions"
|
|
|
:filter="fieldOptions.filter"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
- :readonly="(fieldType==='currentUser' || fieldType==='currentOrg')?true:readonly"
|
|
|
+ :readonly="
|
|
|
+ fieldType === 'currentUser' || fieldType === 'currentOrg'
|
|
|
+ ? true
|
|
|
+ : readonly
|
|
|
+ "
|
|
|
:rules="rules"
|
|
|
@bind-callback="selectorBindCallback"
|
|
|
v-on="$listeners"
|
|
|
/>
|
|
|
<!-- 自定义对话框 -->
|
|
|
<ibps-custom-dialog
|
|
|
- v-else-if="fieldType==='customDialog'"
|
|
|
+ v-else-if="fieldType === 'customDialog'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
@@ -313,7 +312,6 @@
|
|
|
:field-options="fieldOptions"
|
|
|
:dynamic-params="dynamicParams"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -324,7 +322,7 @@
|
|
|
/>
|
|
|
<!-- 关联数据 -->
|
|
|
<ibps-linkdata
|
|
|
- v-else-if="fieldType==='linkdata'"
|
|
|
+ v-else-if="fieldType === 'linkdata'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
@@ -332,14 +330,12 @@
|
|
|
:placeholder="placeholder"
|
|
|
:multiple="multipleSelect"
|
|
|
:template-key="fieldOptions.linkdata"
|
|
|
- :store="fieldOptions.store||'id'"
|
|
|
+ :store="fieldOptions.store || 'id'"
|
|
|
:dynamic-params="dynamicParams"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:value-key="valueKey"
|
|
|
:label-type="labelType"
|
|
|
:label-key="labelKey"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -351,7 +347,7 @@
|
|
|
|
|
|
<!-- 地址 -->
|
|
|
<ibps-address
|
|
|
- v-else-if="fieldType==='address'"
|
|
|
+ v-else-if="fieldType === 'address'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
@@ -362,7 +358,6 @@
|
|
|
:level="fieldOptions.level"
|
|
|
:has-street="fieldOptions.is_street"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -372,14 +367,13 @@
|
|
|
|
|
|
<!-- 签名 -->
|
|
|
<ibps-signature
|
|
|
- v-else-if="fieldType==='signature'"
|
|
|
+ v-else-if="fieldType === 'signature'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
:placeholder="placeholder"
|
|
|
:height="height"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
@@ -388,12 +382,11 @@
|
|
|
/>
|
|
|
<!-- 图片 -->
|
|
|
<ibps-image
|
|
|
- v-else-if="fieldType==='image'"
|
|
|
+ v-else-if="fieldType === 'image'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
-
|
|
|
:width="fieldOptions.width"
|
|
|
:height="fieldOptions.height"
|
|
|
:limit="fieldOptions.limit"
|
|
|
@@ -411,7 +404,7 @@
|
|
|
|
|
|
<!-- =======================自定义控件==============================-->
|
|
|
<!-- 自定义组件 -->
|
|
|
- <div v-else-if="fieldType==='component'">
|
|
|
+ <div v-else-if="fieldType === 'component'">
|
|
|
<component
|
|
|
:is="fieldOptions.component_name"
|
|
|
v-model="dataModel"
|
|
|
@@ -428,7 +421,7 @@
|
|
|
/>
|
|
|
</div>
|
|
|
<!-- 自定义控件 -->
|
|
|
- <div v-else-if="fieldType==='control'">
|
|
|
+ <div v-else-if="fieldType === 'control'">
|
|
|
<component
|
|
|
:is="fieldOptions.component_name"
|
|
|
v-model="dataModel"
|
|
|
@@ -447,15 +440,15 @@
|
|
|
|
|
|
<!-- 隐藏域-->
|
|
|
<input
|
|
|
- v-else-if="fieldType==='hidden'"
|
|
|
+ v-else-if="fieldType === 'hidden'"
|
|
|
v-model="dataModel"
|
|
|
type="hidden"
|
|
|
v-on="$listeners"
|
|
|
- >
|
|
|
+ />
|
|
|
|
|
|
<!-- 描述-->
|
|
|
<ibps-desc
|
|
|
- v-else-if="fieldType==='desc'"
|
|
|
+ v-else-if="fieldType === 'desc'"
|
|
|
v-model="dataModel"
|
|
|
:label="field.label"
|
|
|
:border="fieldOptions.split_line"
|
|
|
@@ -468,7 +461,7 @@
|
|
|
|
|
|
<!-- 文本-->
|
|
|
<van-field
|
|
|
- v-else-if="fieldType==='label'"
|
|
|
+ v-else-if="fieldType === 'label'"
|
|
|
v-model="dataModel"
|
|
|
:label="label"
|
|
|
:desc="field.desc"
|
|
|
@@ -477,21 +470,25 @@
|
|
|
:type="fieldType"
|
|
|
:height="fieldOptions.height"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
readonly
|
|
|
-
|
|
|
autosize
|
|
|
v-on="$listeners"
|
|
|
>
|
|
|
<template #label>
|
|
|
- {{ label }}<van-icon v-if="field.desc && descPosition==='lableIcon'" name="warning" class="ibps-dialog-icon" @click="showDesc(label,field.desc)" />
|
|
|
+ {{ label
|
|
|
+ }}<van-icon
|
|
|
+ v-if="field.desc && descPosition === 'lableIcon'"
|
|
|
+ name="warning"
|
|
|
+ class="ibps-dialog-icon"
|
|
|
+ @click="showDesc(label, field.desc)"
|
|
|
+ />
|
|
|
</template>
|
|
|
</van-field>
|
|
|
<!-- 链接 -->
|
|
|
<ibps-hyperlink
|
|
|
- v-else-if="fieldType==='hyperlink'"
|
|
|
+ v-else-if="fieldType === 'hyperlink'"
|
|
|
:label="label"
|
|
|
:desc="field.desc"
|
|
|
:desc-position="descPosition"
|
|
|
@@ -499,27 +496,26 @@
|
|
|
:text="fieldOptions.text"
|
|
|
:type="fieldOptions.type"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:link="fieldOptions.link"
|
|
|
:text-type="fieldOptions.textType"
|
|
|
:link-type="fieldOptions.linkType"
|
|
|
:text-javascript="fieldOptions.text_javascript"
|
|
|
:form-data="dynamicForm"
|
|
|
preview-entrance
|
|
|
-
|
|
|
- :icon="fieldOptions.icon?fieldOptions.icon:''"
|
|
|
+ :icon="fieldOptions.icon ? fieldOptions.icon : ''"
|
|
|
v-on="$listeners"
|
|
|
/>
|
|
|
|
|
|
<!-- 分割线 -->
|
|
|
<van-divider
|
|
|
- v-else-if="fieldType==='divider'"
|
|
|
+ v-else-if="fieldType === 'divider'"
|
|
|
:content-position="fieldOptions.content_position"
|
|
|
- >{{ field.label }}</van-divider>
|
|
|
+ >{{ field.label }}</van-divider
|
|
|
+ >
|
|
|
|
|
|
<!--警告-->
|
|
|
<ibps-alert
|
|
|
- v-else-if="fieldType==='alert'"
|
|
|
+ v-else-if="fieldType === 'alert'"
|
|
|
:title="field.label"
|
|
|
:description="field.desc"
|
|
|
:type="fieldOptions.type"
|
|
|
@@ -539,7 +535,6 @@
|
|
|
:height="height"
|
|
|
:params="bpmInstHisParams"
|
|
|
:input-align="inputAlign"
|
|
|
-
|
|
|
:rules="rules"
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
@@ -558,9 +553,7 @@
|
|
|
:input-align="inputAlign"
|
|
|
/>
|
|
|
<!-- 审批历史-->
|
|
|
- <div
|
|
|
- v-else-if="fieldType === 'approval_history'"
|
|
|
- >
|
|
|
+ <div v-else-if="fieldType === 'approval_history'">
|
|
|
<ibps-approval-history
|
|
|
v-if="showApprovalHistory"
|
|
|
:label="field.label"
|
|
|
@@ -574,9 +567,7 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 流程图-->
|
|
|
- <div
|
|
|
- v-else-if="fieldType === 'flow_diagram'"
|
|
|
- >
|
|
|
+ <div v-else-if="fieldType === 'flow_diagram'">
|
|
|
<ibps-flow-diagram
|
|
|
v-if="showFlowDiagram"
|
|
|
:label="field.label"
|
|
|
@@ -590,7 +581,7 @@
|
|
|
</div>
|
|
|
<!-- 审批意见-->
|
|
|
<ibps-approval-opinion
|
|
|
- v-else-if="fieldType==='approval_opinion'"
|
|
|
+ v-else-if="fieldType === 'approval_opinion'"
|
|
|
v-model="dataModel"
|
|
|
:label="label"
|
|
|
:desc="field.desc"
|
|
|
@@ -599,13 +590,16 @@
|
|
|
:data="formOpinion"
|
|
|
:layout="fieldOptions.arrangement"
|
|
|
:options="fieldOptions.options"
|
|
|
- :has-common-statment="!!(fieldOptions.common_statment === true || fieldOptions.common_statment === 'true')"
|
|
|
+ :has-common-statment="
|
|
|
+ !!(
|
|
|
+ fieldOptions.common_statment === true ||
|
|
|
+ fieldOptions.common_statment === 'true'
|
|
|
+ )
|
|
|
+ "
|
|
|
:height="fieldOptions.height"
|
|
|
-
|
|
|
:name="field.name"
|
|
|
:required="required"
|
|
|
:readonly="readonly"
|
|
|
-
|
|
|
autosize
|
|
|
clearable
|
|
|
/>
|
|
|
@@ -619,7 +613,10 @@ import ActionUtils from '@/utils/action'
|
|
|
import fecha from '@/utils/fecha'
|
|
|
import FormOptions from '../constants/formOptions'
|
|
|
import FormUtils from '../utils/formUtil'
|
|
|
-import { fileTypes as FILE_TYPES, accept as ACCEPT } from '@/business/platform/file/constants/fileTypes'
|
|
|
+import {
|
|
|
+ fileTypes as FILE_TYPES,
|
|
|
+ accept as ACCEPT
|
|
|
+} from '@/business/platform/file/constants/fileTypes'
|
|
|
const _import = require('@/utils/util.import.' + process.env.NODE_ENV)
|
|
|
|
|
|
export default {
|
|
|
@@ -681,7 +678,9 @@ export default {
|
|
|
},
|
|
|
numberDataModel: {
|
|
|
get() {
|
|
|
- if (this.$utils.isEmpty(this.dataModel)) { return 0 }
|
|
|
+ if (this.$utils.isEmpty(this.dataModel)) {
|
|
|
+ return 0
|
|
|
+ }
|
|
|
return Number(this.dataModel)
|
|
|
},
|
|
|
set(value) {
|
|
|
@@ -696,15 +695,24 @@ export default {
|
|
|
return this.field.label
|
|
|
},
|
|
|
inputAlign() {
|
|
|
- return this.params && this.$utils.isNotEmpty(this.params.inputAlign) ? this.params.inputAlign || 'left' : 'left'
|
|
|
+ return this.params && this.$utils.isNotEmpty(this.params.inputAlign)
|
|
|
+ ? this.params.inputAlign || 'left'
|
|
|
+ : 'left'
|
|
|
},
|
|
|
// 自适应内容高度
|
|
|
autosize() {
|
|
|
let autosize = this.fieldOptions.autosize
|
|
|
- if (this.fieldOptions.autosize && (this.fieldOptions.min_rows || this.fieldOptions.max_rows)) {
|
|
|
+ if (
|
|
|
+ this.fieldOptions.autosize &&
|
|
|
+ (this.fieldOptions.min_rows || this.fieldOptions.max_rows)
|
|
|
+ ) {
|
|
|
const rows = {}
|
|
|
- rows.minHeight = this.fieldOptions.min_rows ? this.fieldOptions.min_rows * 24 : null
|
|
|
- rows.maxHeight = this.fieldOptions.max_rows ? this.fieldOptions.max_rows * 24 : null
|
|
|
+ rows.minHeight = this.fieldOptions.min_rows
|
|
|
+ ? this.fieldOptions.min_rows * 24
|
|
|
+ : null
|
|
|
+ rows.maxHeight = this.fieldOptions.max_rows
|
|
|
+ ? this.fieldOptions.max_rows * 24
|
|
|
+ : null
|
|
|
autosize = rows
|
|
|
}
|
|
|
return autosize
|
|
|
@@ -716,10 +724,18 @@ export default {
|
|
|
} else if (this.field.field_type === 'currentTime') {
|
|
|
return FormOptions.t.DATE_FORMATS['time']
|
|
|
} else {
|
|
|
- if (this.fieldOptions['datefmt_type'] && this.fieldOptions['datefmt_type'] !== 'custom') {
|
|
|
- return FormOptions.t.DATE_FORMATS[this.fieldOptions['datefmt_type']] || FormOptions.t.DATE_FORMATS['date']
|
|
|
+ if (
|
|
|
+ this.fieldOptions['datefmt_type'] &&
|
|
|
+ this.fieldOptions['datefmt_type'] !== 'custom'
|
|
|
+ ) {
|
|
|
+ return (
|
|
|
+ FormOptions.t.DATE_FORMATS[this.fieldOptions['datefmt_type']] ||
|
|
|
+ FormOptions.t.DATE_FORMATS['date']
|
|
|
+ )
|
|
|
} else {
|
|
|
- return this.fieldOptions['datefmt'] || FormOptions.t.DATE_FORMATS['date']
|
|
|
+ return (
|
|
|
+ this.fieldOptions['datefmt'] || FormOptions.t.DATE_FORMATS['date']
|
|
|
+ )
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
@@ -754,7 +770,10 @@ export default {
|
|
|
* 下拉占位符
|
|
|
*/
|
|
|
selectPlaceholder() {
|
|
|
- return !this.readonly ? (this.fieldOptions['include_blank_value'] || this.fieldOptions['placeholder']) : ''
|
|
|
+ return !this.readonly
|
|
|
+ ? this.fieldOptions['include_blank_value'] ||
|
|
|
+ this.fieldOptions['placeholder']
|
|
|
+ : ''
|
|
|
},
|
|
|
/**
|
|
|
* 最大文件上传
|
|
|
@@ -773,7 +792,10 @@ export default {
|
|
|
*/
|
|
|
fileQuantity() {
|
|
|
const fileQuantity = this.fieldOptions.max_file_quantity
|
|
|
- if (this.$utils.isNotEmpty(fileQuantity) && (fileQuantity !== '-1' || fileQuantity !== -1)) {
|
|
|
+ if (
|
|
|
+ this.$utils.isNotEmpty(fileQuantity) &&
|
|
|
+ (fileQuantity !== '-1' || fileQuantity !== -1)
|
|
|
+ ) {
|
|
|
return parseInt(fileQuantity, 10)
|
|
|
}
|
|
|
return null
|
|
|
@@ -784,12 +806,16 @@ export default {
|
|
|
*/
|
|
|
fileAccept() {
|
|
|
const mediaType = this.fieldOptions.media_type
|
|
|
- if (this.$utils.isEmpty(mediaType)) { return '*' }
|
|
|
+ if (this.$utils.isEmpty(mediaType)) {
|
|
|
+ return '*'
|
|
|
+ }
|
|
|
return ACCEPT[mediaType] || '*'
|
|
|
},
|
|
|
imagesAccept() {
|
|
|
const accept = this.fieldOptions.accept
|
|
|
- if (this.$utils.isEmpty(accept)) { return ACCEPT['images'] }
|
|
|
+ if (this.$utils.isEmpty(accept)) {
|
|
|
+ return ACCEPT['images']
|
|
|
+ }
|
|
|
if (accept === 'custom') {
|
|
|
return this.fieldOptions.media
|
|
|
}
|
|
|
@@ -800,12 +826,14 @@ export default {
|
|
|
*/
|
|
|
fileFormates() {
|
|
|
const mediaType = this.fieldOptions.media_type
|
|
|
- if (this.$utils.isEmpty(mediaType)) { return [] }
|
|
|
+ if (this.$utils.isEmpty(mediaType)) {
|
|
|
+ return []
|
|
|
+ }
|
|
|
let media = FILE_TYPES[mediaType]
|
|
|
if (this.$utils.isEmpty(media)) {
|
|
|
media = (this.fieldOptions.media || '').split(',')
|
|
|
}
|
|
|
- return media.map((v) => {
|
|
|
+ return media.map(v => {
|
|
|
return '.' + v
|
|
|
})
|
|
|
},
|
|
|
@@ -814,7 +842,9 @@ export default {
|
|
|
*/
|
|
|
bindId() {
|
|
|
const bindId = this.fieldOptions['bind_id']
|
|
|
- if (this.$utils.isEmpty(bindId)) { return '' }
|
|
|
+ if (this.$utils.isEmpty(bindId)) {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
return this.formData[bindId] || ''
|
|
|
},
|
|
|
/**
|
|
|
@@ -833,7 +863,9 @@ export default {
|
|
|
* 高度
|
|
|
*/
|
|
|
height() {
|
|
|
- return this.fieldOptions.height ? parseInt(this.fieldOptions.height, 10) : null
|
|
|
+ return this.fieldOptions.height
|
|
|
+ ? parseInt(this.fieldOptions.height, 10)
|
|
|
+ : null
|
|
|
},
|
|
|
/**
|
|
|
* 地址最顶值
|
|
|
@@ -850,7 +882,12 @@ export default {
|
|
|
},
|
|
|
// 是否显示流程图
|
|
|
showFlowDiagram() {
|
|
|
- return !!(this.params.defId || this.params.taskId || this.params.instId || this.params.bizKey)
|
|
|
+ return !!(
|
|
|
+ this.params.defId ||
|
|
|
+ this.params.taskId ||
|
|
|
+ this.params.instId ||
|
|
|
+ this.params.bizKey
|
|
|
+ )
|
|
|
},
|
|
|
bpmInstHisParams() {
|
|
|
const filter = this.fieldOptions.filter || {}
|
|
|
@@ -875,15 +912,28 @@ export default {
|
|
|
return FormUtils.hasLinkDynamicParams(this.fieldOptions)
|
|
|
},
|
|
|
dynamicParams() {
|
|
|
- return FormUtils.getLinkDynamicParams(this.fieldOptions, this.formData, this.code, this.row)
|
|
|
+ return FormUtils.getLinkDynamicParams(
|
|
|
+ this.fieldOptions,
|
|
|
+ this.formData,
|
|
|
+ this.code,
|
|
|
+ this.row
|
|
|
+ )
|
|
|
},
|
|
|
models() {
|
|
|
if (!this.formData) return {}
|
|
|
- return this.$utils.isNotEmpty(this.row) ? (this.formData[this.code] ? this.formData[this.code][this.row] : this.formData) : this.formData
|
|
|
+ return this.$utils.isNotEmpty(this.row)
|
|
|
+ ? this.formData[this.code]
|
|
|
+ ? this.formData[this.code][this.row]
|
|
|
+ : this.formData
|
|
|
+ : this.formData
|
|
|
},
|
|
|
isValueSource() {
|
|
|
- return ((this.fieldType === 'radio' || this.fieldType === 'checkbox' || this.fieldType === 'select') &&
|
|
|
- this.fieldOptions['datasource'] === 'valuesource')
|
|
|
+ return (
|
|
|
+ (this.fieldType === 'radio' ||
|
|
|
+ this.fieldType === 'checkbox' ||
|
|
|
+ this.fieldType === 'select') &&
|
|
|
+ this.fieldOptions['datasource'] === 'valuesource'
|
|
|
+ )
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
|
@@ -913,11 +963,12 @@ export default {
|
|
|
this.fieldOptions['options'] = null
|
|
|
getByKey({
|
|
|
dataTemplateKey: this.fieldOptions['value_source']
|
|
|
- }).then(response => {
|
|
|
- this.dataTemplate = this.$utils.parseData(response.data)
|
|
|
- this.loadAjaxOptions()
|
|
|
- }).catch(() => {
|
|
|
})
|
|
|
+ .then(response => {
|
|
|
+ this.dataTemplate = this.$utils.parseData(response.data)
|
|
|
+ this.loadAjaxOptions()
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
}
|
|
|
if (this.fieldType === 'component' || this.fieldType === 'control') {
|
|
|
const component = _import(this.fieldOptions.component_url)
|
|
|
@@ -946,7 +997,10 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
const template = this.dataTemplate.templates[0]
|
|
|
- queryDataTable(this.getValuesourceParams(template, this.dataTemplate), false).then(resp => {
|
|
|
+ queryDataTable(
|
|
|
+ this.getValuesourceParams(template, this.dataTemplate),
|
|
|
+ false
|
|
|
+ ).then(resp => {
|
|
|
const data = resp.data || {}
|
|
|
const dataResult = data.dataResult || []
|
|
|
const options = dataResult.map(item => {
|
|
|
@@ -964,7 +1018,10 @@ export default {
|
|
|
return fecha.format(value, this.dateFormat)
|
|
|
} else {
|
|
|
try {
|
|
|
- return fecha.format(this.parseFormatDate(value, this.dateFormat), this.dateFormat)
|
|
|
+ return fecha.format(
|
|
|
+ this.parseFormatDate(value, this.dateFormat),
|
|
|
+ this.dateFormat
|
|
|
+ )
|
|
|
} catch (error) {
|
|
|
return value
|
|
|
}
|
|
|
@@ -976,7 +1033,13 @@ export default {
|
|
|
parseFormatDate(time, cFormat) {
|
|
|
let d = fecha.parse(time, cFormat || 'yyyy-MM-dd')
|
|
|
if (d) return d
|
|
|
- const dateFormat = ['yyyy-MM-dd HH:mm:ss', 'yyyy-MM-dd', 'yyyy-MM', 'HH:mm:ss', 'HH:mm']
|
|
|
+ const dateFormat = [
|
|
|
+ 'yyyy-MM-dd HH:mm:ss',
|
|
|
+ 'yyyy-MM-dd',
|
|
|
+ 'yyyy-MM',
|
|
|
+ 'HH:mm:ss',
|
|
|
+ 'HH:mm'
|
|
|
+ ]
|
|
|
for (let i = 0; i < dateFormat.length; i++) {
|
|
|
d = fecha.parse(time, dateFormat[i])
|
|
|
if (d) return d
|
|
|
@@ -995,9 +1058,11 @@ export default {
|
|
|
if (type === 'role') {
|
|
|
bind = 'roleAlias'
|
|
|
}
|
|
|
- if (this.$utils.isEmpty(linkLinkage) || this.$utils.isEmpty(data)) { return }
|
|
|
+ if (this.$utils.isEmpty(linkLinkage) || this.$utils.isEmpty(data)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
const field = linkLinkage
|
|
|
- const fieldObj = field ? field.split('.') : []// 改变的字段
|
|
|
+ const fieldObj = field ? field.split('.') : [] // 改变的字段
|
|
|
const selectorData = JSON.parse(JSON.stringify(data))
|
|
|
const targetValues = []
|
|
|
selectorData.forEach(s => {
|
|
|
@@ -1006,7 +1071,10 @@ export default {
|
|
|
const targetString = targetValues.join(',')
|
|
|
if (this.$utils.isNotEmpty(fieldObj)) {
|
|
|
const fieldName = fieldObj.length > 1 ? fieldObj[1] : fieldObj[0]
|
|
|
- if (this.$utils.isNotEmpty(fieldName) && this.models.hasOwnProperty(fieldName)) {
|
|
|
+ if (
|
|
|
+ this.$utils.isNotEmpty(fieldName) &&
|
|
|
+ this.models.hasOwnProperty(fieldName)
|
|
|
+ ) {
|
|
|
this.changeFormData(fieldName, targetString || '')
|
|
|
}
|
|
|
}
|
|
|
@@ -1020,15 +1088,20 @@ export default {
|
|
|
}
|
|
|
const linkLinkage = this.fieldOptions['link_linkage']
|
|
|
|
|
|
- if (this.$utils.isEmpty(linkLinkage)) { return }
|
|
|
+ if (this.$utils.isEmpty(linkLinkage)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
const data = selectedData[0]
|
|
|
for (let i = 0; i < linkLinkage.length; i++) {
|
|
|
const item = linkLinkage[i]
|
|
|
const field = item.field
|
|
|
- const fieldObj = field ? field.split('.') : []// 改变的字段
|
|
|
+ const fieldObj = field ? field.split('.') : [] // 改变的字段
|
|
|
if (this.$utils.isNotEmpty(fieldObj)) {
|
|
|
const fieldName = fieldObj.length > 1 ? fieldObj[1] : fieldObj[0]
|
|
|
- if (this.$utils.isNotEmpty(fieldName) && this.models.hasOwnProperty(fieldName)) {
|
|
|
+ if (
|
|
|
+ this.$utils.isNotEmpty(fieldName) &&
|
|
|
+ this.models.hasOwnProperty(fieldName)
|
|
|
+ ) {
|
|
|
this.changeFormData(fieldName, data[item.name] || '')
|
|
|
}
|
|
|
}
|
|
|
@@ -1042,15 +1115,20 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
const linkAttr = this.fieldOptions['link_attr']
|
|
|
- if (this.$utils.isEmpty(linkAttr)) { return }
|
|
|
+ if (this.$utils.isEmpty(linkAttr)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
const data = selectedData[0]
|
|
|
for (let i = 0; i < linkAttr.length; i++) {
|
|
|
const item = linkAttr[i]
|
|
|
const field = item.field
|
|
|
- const fieldObj = field ? field.split('.') : []// 改变的字段
|
|
|
+ const fieldObj = field ? field.split('.') : [] // 改变的字段
|
|
|
if (this.$utils.isNotEmpty(fieldObj)) {
|
|
|
const fieldName = fieldObj.length > 1 ? fieldObj[1] : fieldObj[0]
|
|
|
- if (this.$utils.isNotEmpty(fieldName) && this.models.hasOwnProperty(fieldName)) {
|
|
|
+ if (
|
|
|
+ this.$utils.isNotEmpty(fieldName) &&
|
|
|
+ this.models.hasOwnProperty(fieldName)
|
|
|
+ ) {
|
|
|
this.changeFormData(fieldName, data[item.name] || '')
|
|
|
}
|
|
|
}
|
|
|
@@ -1076,11 +1154,11 @@ export default {
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
- .field-desc{
|
|
|
- background: #F3F3F3;
|
|
|
- font-size: 12px;
|
|
|
- color: #999999;
|
|
|
- line-height: 20px;
|
|
|
- padding:2px 0 10px 15px ;
|
|
|
- }
|
|
|
+.field-desc {
|
|
|
+ background: #f3f3f3;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #999999;
|
|
|
+ line-height: 20px;
|
|
|
+ padding: 2px 0 10px 15px;
|
|
|
+}
|
|
|
</style>
|