|
@@ -3,53 +3,55 @@
|
|
|
<uni-card spacing="0">
|
|
<uni-card spacing="0">
|
|
|
<view class="main_container">
|
|
<view class="main_container">
|
|
|
<uni-forms label-position="left" :label-width="125" :border="true">
|
|
<uni-forms label-position="left" :label-width="125" :border="true">
|
|
|
- <uni-forms-item v-for="(item, index) in formElements" :label="item.elementName" :key="index">
|
|
|
|
|
- <uni-easyinput v-if="'多少小时' == item.elementName" :disabled="true" placeholder=""
|
|
|
|
|
- v-model="diffHours"></uni-easyinput>
|
|
|
|
|
- <!-- 输入框 -->
|
|
|
|
|
- <uni-easyinput v-else-if="'0' == item.type" :disabled="'0' == item.canEdit"
|
|
|
|
|
- :placeholder="'0' == item.canEdit ? '' : '请输入内容'"
|
|
|
|
|
- v-model="item.defaultValue"></uni-easyinput>
|
|
|
|
|
- <!-- 富文本输入框 -->
|
|
|
|
|
- <uni-easyinput v-else-if="'1' == item.type" :disabled="'0' == item.canEdit"
|
|
|
|
|
- :placeholder="'0' == item.canEdit ? '' : '请输入内容'" v-model="item.defaultValue"
|
|
|
|
|
- type="textarea"></uni-easyinput>
|
|
|
|
|
- <!-- 下拉框 -->
|
|
|
|
|
- <picker class="picker_container" v-else-if="'2' == item.type"
|
|
|
|
|
- @change="bindPickerChange($event, item)" :value="item.defaultValue"
|
|
|
|
|
- :range="formatDict(item.typeDetail.enum)">
|
|
|
|
|
- <view class="uni-input input_text">
|
|
|
|
|
- <!-- 设置默认值为第一个选项 -->
|
|
|
|
|
- {{ item.defaultValue ? item.defaultValue : item.defaultValue =
|
|
|
|
|
- item.typeDetail.enum[0].enumVname }}
|
|
|
|
|
- </view>
|
|
|
|
|
- </picker>
|
|
|
|
|
- <!-- 开始时间选择器 -->
|
|
|
|
|
- <uni-datetime-picker :end="endTime" @change="setTimeRange(item)"
|
|
|
|
|
- v-else-if="timeFlag && '9' == item.type && '开始时间' == item.elementName"
|
|
|
|
|
- v-model="item.defaultValue" :clear-icon="false" type="datetime" />
|
|
|
|
|
- <!-- 结束时间选择器 -->
|
|
|
|
|
- <uni-datetime-picker :start="startTime" @change="setTimeRange(item)" :disabled="disableEndTime"
|
|
|
|
|
- :placeholder="disableEndTime ? '请先确认开始时间' : '确认结束时间'"
|
|
|
|
|
- v-else-if="timeFlag && '9' == item.type && '结束时间' == item.elementName"
|
|
|
|
|
- v-model="item.defaultValue" :clear-icon="false" type="datetime" />
|
|
|
|
|
- <!-- 其他时间选择器 -->
|
|
|
|
|
- <!-- 年月日 时分秒 -->
|
|
|
|
|
- <uni-datetime-picker v-else-if="'9' == item.type" v-model="item.defaultValue" type="datetime" />
|
|
|
|
|
- <!-- 年月日 -->
|
|
|
|
|
- <uni-datetime-picker v-else-if="'3' == item.type" v-model="item.defaultValue" type="date" />
|
|
|
|
|
- </uni-forms-item>
|
|
|
|
|
|
|
+ <view v-for="(elem, index) in formElements">
|
|
|
|
|
+ <uni-forms-item v-if="!('0' == elem.canEdit && elem.elementName.slice(-2) == '审批' && elem.elementName.slice(-2) == '意见' && elem.elementName.slice(-2) == '批示')" :label="elem.elementName" :key="index">
|
|
|
|
|
+ <uni-easyinput v-if="'多少小时' == elem.elementName" :disabled="true" placeholder=""
|
|
|
|
|
+ v-model="diffHours"></uni-easyinput>
|
|
|
|
|
+ <!-- 输入框 -->
|
|
|
|
|
+ <uni-easyinput v-else-if="'0' == elem.type" :disabled="'0' == elem.canEdit"
|
|
|
|
|
+ :placeholder="'0' == elem.canEdit ? '' : '请输入内容'"
|
|
|
|
|
+ v-model="elem.defaultValue"></uni-easyinput>
|
|
|
|
|
+ <!-- 富文本输入框 -->
|
|
|
|
|
+ <uni-easyinput v-else-if="'1' == elem.type" :disabled="'0' == elem.canEdit"
|
|
|
|
|
+ :placeholder="'0' == elem.canEdit ? '' : '请输入内容'" v-model="elem.defaultValue"
|
|
|
|
|
+ type="textarea"></uni-easyinput>
|
|
|
|
|
+ <!-- 下拉框 -->
|
|
|
|
|
+ <picker class="picker_container" v-else-if="'2' == elem.type"
|
|
|
|
|
+ @change="bindPickerChange($event, elem)" :value="elem.defaultValue"
|
|
|
|
|
+ :range="formatDict(elem.typeDetail.enum)">
|
|
|
|
|
+ <view class="uni-input input_text">
|
|
|
|
|
+ <!-- 设置默认值为第一个选项 -->
|
|
|
|
|
+ {{ elem.defaultValue ? elem.defaultValue : elem.defaultValue =
|
|
|
|
|
+ elem.typeDetail.enum[0].enumVname }}
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </picker>
|
|
|
|
|
+ <!-- 开始时间选择器 -->
|
|
|
|
|
+ <uni-datetime-picker :end="endTime" @change="setTimeRange(elem)"
|
|
|
|
|
+ v-else-if="timeFlag && '9' == elem.type && '开始时间' == elem.elementName"
|
|
|
|
|
+ v-model="elem.defaultValue" :clear-icon="false" type="datetime" />
|
|
|
|
|
+ <!-- 结束时间选择器 -->
|
|
|
|
|
+ <uni-datetime-picker :start="startTime" @change="setTimeRange(elem)" :disabled="disableEndTime"
|
|
|
|
|
+ :placeholder="disableEndTime ? '请先确认开始时间' : '确认结束时间'"
|
|
|
|
|
+ v-else-if="timeFlag && '9' == elem.type && '结束时间' == elem.elementName"
|
|
|
|
|
+ v-model="elem.defaultValue" :clear-icon="false" type="datetime" />
|
|
|
|
|
+ <!-- 其他时间选择器 -->
|
|
|
|
|
+ <!-- 年月日 时分秒 -->
|
|
|
|
|
+ <uni-datetime-picker v-else-if="'9' == elem.type" v-model="elem.defaultValue" type="datetime" />
|
|
|
|
|
+ <!-- 年月日 -->
|
|
|
|
|
+ <uni-datetime-picker v-else-if="'3' == elem.type" v-model="elem.defaultValue" type="date" />
|
|
|
|
|
+ </uni-forms-item>
|
|
|
|
|
+ </view>
|
|
|
</uni-forms>
|
|
</uni-forms>
|
|
|
</view>
|
|
</view>
|
|
|
</uni-card>
|
|
</uni-card>
|
|
|
<view v-if="repeatingForm.elementItem.length > 0" class="repeating_table">
|
|
<view v-if="repeatingForm.elementItem.length > 0" class="repeating_table">
|
|
|
<uni-card v-for="(table, tableIndex) in repeatingForm.elements" spacing="0" :key="tableIndex">
|
|
<uni-card v-for="(table, tableIndex) in repeatingForm.elements" spacing="0" :key="tableIndex">
|
|
|
<uni-forms label-position="left" :label-width="125" :border="true">
|
|
<uni-forms label-position="left" :label-width="125" :border="true">
|
|
|
- <uni-forms-item v-for="(item, itemIndex) in table"
|
|
|
|
|
|
|
+ <uni-forms-item v-for="(elem, itemIndex) in table"
|
|
|
:label="repeatingForm.elementItem[itemIndex].elementName.slice(3)" :key="itemIndex">
|
|
:label="repeatingForm.elementItem[itemIndex].elementName.slice(3)" :key="itemIndex">
|
|
|
<uni-easyinput v-if="repeatingForm.elementItem[itemIndex].bddzText" :disabled="true"
|
|
<uni-easyinput v-if="repeatingForm.elementItem[itemIndex].bddzText" :disabled="true"
|
|
|
- :placeholder="''" :value="computedrepeatingFormItemValue(item, table)"></uni-easyinput>
|
|
|
|
|
- <uni-easyinput v-else placeholder="请输入内容" v-model="item.value"></uni-easyinput>
|
|
|
|
|
|
|
+ :placeholder="''" :value="computedrepeatingFormItemValue(elem, table)"></uni-easyinput>
|
|
|
|
|
+ <uni-easyinput v-else placeholder="请输入内容" v-model="elem.value"></uni-easyinput>
|
|
|
</uni-forms-item>
|
|
</uni-forms-item>
|
|
|
</uni-forms>
|
|
</uni-forms>
|
|
|
<view class="repeating_table_button_container">
|
|
<view class="repeating_table_button_container">
|
|
@@ -71,11 +73,13 @@
|
|
|
file-mediatype="all" @select="handleFileSelect" @progress="handleFileProgress"
|
|
file-mediatype="all" @select="handleFileSelect" @progress="handleFileProgress"
|
|
|
@success="handleFileSuccess" @fail="handleFileFail" @delete="handleFileDelete" />
|
|
@success="handleFileSuccess" @fail="handleFileFail" @delete="handleFileDelete" />
|
|
|
</uni-card>
|
|
</uni-card>
|
|
|
- <uni-card spacing="0" padding="0">
|
|
|
|
|
- <button :loading="!button_state" type="primary" class="submit_button" @click="submitProcess">提交</button>
|
|
|
|
|
- </uni-card>
|
|
|
|
|
- <view style="height: 5px; margin-top: 10px;"></view>
|
|
|
|
|
|
|
+ <view class="submit_button_container">
|
|
|
|
|
+ <uni-card spacing="0" padding="0">
|
|
|
|
|
+ <button :loading="!button_state" type="primary" class="submit_button" @click="submitProcess">提交</button>
|
|
|
|
|
+ </uni-card>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ <view style="height: 5px; margin-top: 10px;"></view>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
@@ -313,8 +317,9 @@ function submitProcess() { // 提交表单
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
|
.process_container {
|
|
.process_container {
|
|
|
|
|
+ position: relative;
|
|
|
.main_container {
|
|
.main_container {
|
|
|
- min-height: 70vh;
|
|
|
|
|
|
|
+ min-height: 50vh;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.picker_container {
|
|
.picker_container {
|
|
@@ -360,46 +365,52 @@ function submitProcess() { // 提交表单
|
|
|
color: #666 !important;
|
|
color: #666 !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .submit_button {
|
|
|
|
|
- background-color: #007aff !important;
|
|
|
|
|
- color: #fff !important;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .submit_button_container{
|
|
|
|
|
+ position: sticky;
|
|
|
|
|
+ z-index: 10;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ bottom: 10px;
|
|
|
|
|
+ .submit_button {
|
|
|
|
|
+ background-color: #007aff !important;
|
|
|
|
|
+ color: #fff !important;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- .submit_button::after {
|
|
|
|
|
- border: 1px solid rgba(0, 0, 0, .2);
|
|
|
|
|
- border-radius: 10px;
|
|
|
|
|
- box-sizing: border-box;
|
|
|
|
|
- content: " ";
|
|
|
|
|
- height: 200%;
|
|
|
|
|
- left: 0;
|
|
|
|
|
- position: absolute;
|
|
|
|
|
- top: 0;
|
|
|
|
|
- -webkit-transform: scale(.5);
|
|
|
|
|
- transform: scale(.5);
|
|
|
|
|
- -webkit-transform-origin: 0 0;
|
|
|
|
|
- transform-origin: 0 0;
|
|
|
|
|
- width: 200%;
|
|
|
|
|
- border-top-width: 1px;
|
|
|
|
|
- border-right-width: 1px;
|
|
|
|
|
- border-bottom-width: 1px;
|
|
|
|
|
- border-left-width: 1px;
|
|
|
|
|
- border-top-style: solid;
|
|
|
|
|
- border-right-style: solid;
|
|
|
|
|
- border-bottom-style: solid;
|
|
|
|
|
- border-left-style: solid;
|
|
|
|
|
- border-top-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
- border-right-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
- border-bottom-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
- border-left-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
- border-image-source: initial;
|
|
|
|
|
- border-image-slice: initial;
|
|
|
|
|
- border-image-width: initial;
|
|
|
|
|
- border-image-outset: initial;
|
|
|
|
|
- border-image-repeat: initial;
|
|
|
|
|
- border-top-left-radius: 10px;
|
|
|
|
|
- border-top-right-radius: 10px;
|
|
|
|
|
- border-bottom-right-radius: 10px;
|
|
|
|
|
- border-bottom-left-radius: 10px;
|
|
|
|
|
|
|
+ .submit_button::after {
|
|
|
|
|
+ border: 1px solid rgba(0, 0, 0, .2);
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ content: " ";
|
|
|
|
|
+ height: 200%;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ -webkit-transform: scale(.5);
|
|
|
|
|
+ transform: scale(.5);
|
|
|
|
|
+ -webkit-transform-origin: 0 0;
|
|
|
|
|
+ transform-origin: 0 0;
|
|
|
|
|
+ width: 200%;
|
|
|
|
|
+ border-top-width: 1px;
|
|
|
|
|
+ border-right-width: 1px;
|
|
|
|
|
+ border-bottom-width: 1px;
|
|
|
|
|
+ border-left-width: 1px;
|
|
|
|
|
+ border-top-style: solid;
|
|
|
|
|
+ border-right-style: solid;
|
|
|
|
|
+ border-bottom-style: solid;
|
|
|
|
|
+ border-left-style: solid;
|
|
|
|
|
+ border-top-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
+ border-right-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
+ border-bottom-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
+ border-left-color: rgba(0, 0, 0, 0.2);
|
|
|
|
|
+ border-image-source: initial;
|
|
|
|
|
+ border-image-slice: initial;
|
|
|
|
|
+ border-image-width: initial;
|
|
|
|
|
+ border-image-outset: initial;
|
|
|
|
|
+ border-image-repeat: initial;
|
|
|
|
|
+ border-top-left-radius: 10px;
|
|
|
|
|
+ border-top-right-radius: 10px;
|
|
|
|
|
+ border-bottom-right-radius: 10px;
|
|
|
|
|
+ border-bottom-left-radius: 10px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</style>
|
|
</style>
|