|
|
@@ -23,9 +23,16 @@
|
|
|
<uni-easyinput v-else-if="elem.elementName.endsWith('大写')" placeholder=""
|
|
|
:value="computedNumberToChineseCurrency(elem, formElements)"></uni-easyinput>
|
|
|
<!-- 主表关联变量输入框 -->
|
|
|
+ <!-- 数值输入框 -->
|
|
|
+ <uni-easyinput v-else-if="'1' == elem.fieldType && elem.BddzText"
|
|
|
+ type="digit" :value="computedBddzTextValue(elem)" @input="digitInput($event, elem)" placeholder=""></uni-easyinput>
|
|
|
+ <!-- 输入框 -->
|
|
|
<uni-easyinput v-else-if="elem.BddzText"
|
|
|
:type="fieldTypeDict[elem.fieldType] || 'text'"
|
|
|
:value="computedBddzTextValue(elem)" placeholder=""></uni-easyinput>
|
|
|
+ <!-- 数值输入框 -->
|
|
|
+ <uni-easyinput v-else-if="'0' == elem.type && '1' == elem.fieldType" :disabled="'0' == elem.canEdit" type="digit" :placeholder="'0' == elem.canEdit ? '' : '请输入内容'" @input="digitInput($event, elem)"
|
|
|
+ v-model="elem.defaultValue" placeholderStyle="font-size: calc(14px + 1.2*(1rem - 16px))"></uni-easyinput>
|
|
|
<!-- 输入框 -->
|
|
|
<uni-easyinput v-else-if="'0' == elem.type" :disabled="'0' == elem.canEdit"
|
|
|
:type="fieldTypeDict[elem.fieldType] || 'text'"
|
|
|
@@ -46,7 +53,6 @@
|
|
|
</picker>
|
|
|
<!-- 数据选择器 -->
|
|
|
<uni-data-checkbox v-else-if="'5' == elem.type" multiple v-model="elem.defaultValue" :localdata="formatCheckbox(elem)" @change="changeDataCheckBox($event,elem)"></uni-data-checkbox>
|
|
|
- <!-- <uni-data-checkbox v-else-if="'5' == elem.type" multiple v-model="elem.defaultValue" :localdata="formatDict(elem.typeDetail.enum)" @change="changeDataCheckBox"></uni-data-checkbox> -->
|
|
|
<!-- 开始时间选择器 -->
|
|
|
<uni-datetime-picker :end="formElements[elem.endElemIndex].defaultValue"
|
|
|
@change="setTimeRange(elem)"
|
|
|
@@ -77,7 +83,11 @@
|
|
|
:label="repeatingForm.elementItem[itemIndex].elementName.slice(3)" :key="itemIndex">
|
|
|
<!-- 自定义关联变量 -->
|
|
|
<uni-easyinput v-if="repeatingForm.elementItem[itemIndex].bddzText" :placeholder="''" :type="fieldTypeDict[repeatingForm.elementItem[itemIndex].fieldType.value] || 'text'" placeholderStyle="font-size: calc(14px + 1.2*(1rem - 16px))" :value="calculateRepeatingFormExpression(elem, form)"></uni-easyinput>
|
|
|
- <uni-easyinput v-else placeholder="请输入内容" v-model="elem.defaultValue" placeholderStyle="font-size: calc(14px + 1.2*(1rem - 16px))" :type="fieldTypeDict[repeatingForm.elementItem[itemIndex].fieldType.value] || 'text'"></uni-easyinput></uni-forms-item>
|
|
|
+ <!-- 数值输入框 -->
|
|
|
+ <uni-easyinput v-else-if="'1' == repeatingForm.elementItem[itemIndex].fieldType.value" placeholder="请输入内容" v-model="elem.defaultValue" @input="digitInput($event, elem)" placeholderStyle="font-size: calc(14px + 1.2*(1rem - 16px))" type="digit"></uni-easyinput>
|
|
|
+ <!-- 输入框 -->
|
|
|
+ <uni-easyinput v-else placeholder="请输入内容" v-model="elem.defaultValue" placeholderStyle="font-size: calc(14px + 1.2*(1rem - 16px))" type="text"></uni-easyinput>
|
|
|
+ </uni-forms-item>
|
|
|
</uni-forms>
|
|
|
<view class="repeating_table_button_container">
|
|
|
<uni-row>
|
|
|
@@ -111,7 +121,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { onMounted, reactive, ref, computed } from 'vue'
|
|
|
+import { onMounted, reactive, ref, computed, nextTick } from 'vue'
|
|
|
import { onLoad } from '@dcloudio/uni-app'
|
|
|
import { useUserStore } from '@/store/user.js'
|
|
|
import $modal from '@/plugins/modal.js'
|
|
|
@@ -276,6 +286,7 @@ let workDays = [] // 0为周日
|
|
|
function setAttendanceSegment() {
|
|
|
getAttendanceSegment(userStore.user.unitId).then(({ returnParams }) => {
|
|
|
const workTime = returnParams[0].work_time.split(';')
|
|
|
+ workDays = returnParams[0].work_days.split(',')
|
|
|
for (const time of workTime) {
|
|
|
if (time == '') continue
|
|
|
const times = time.split(',')
|
|
|
@@ -291,6 +302,11 @@ function setAttendanceSegment() {
|
|
|
{ start: "13:30", end: "17:30" }, // 下午
|
|
|
]
|
|
|
}
|
|
|
+ const sundayIndex = workDays.findIndex(item => item == 7)
|
|
|
+ if (sundayIndex != -1) {
|
|
|
+ workDays[sundayIndex] = "0"
|
|
|
+ }
|
|
|
+ console.log('workDays: ',workDays);
|
|
|
if (workDays.length == 0) {
|
|
|
workDays = [1, 2, 3, 4, 5, 6, 0] // 0为周日
|
|
|
}
|
|
|
@@ -443,7 +459,33 @@ function delRepeatingFormItem(index) {
|
|
|
})
|
|
|
.catch(() => { })
|
|
|
}
|
|
|
-
|
|
|
+function digitInput(event, item) {
|
|
|
+ // 获取输入框当前的值
|
|
|
+ const currentValue = event;
|
|
|
+
|
|
|
+ // 过滤非数字和小数点的字符
|
|
|
+ const filteredValue = currentValue.replace(/[^0-9.]/g, '');
|
|
|
+
|
|
|
+ // 防止多个小数点
|
|
|
+ const parts = filteredValue.split('.');
|
|
|
+ let finalValue;
|
|
|
+ // console.log('event: ',event);
|
|
|
+ if (parts.length > 2) {
|
|
|
+ // 如果有多个小数点,保留第一个小数点及后续数字
|
|
|
+ finalValue = parts[0] + '.' + parts[1];
|
|
|
+ } else {
|
|
|
+ finalValue = filteredValue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // console.log('finalValue: ',finalValue);
|
|
|
+ // console.log('item: ',item.defaultValue);
|
|
|
+ nextTick(() => {
|
|
|
+ // 更新最终结果到 item
|
|
|
+ item.defaultValue = finalValue
|
|
|
+ event = finalValue
|
|
|
+ })
|
|
|
+ return event;
|
|
|
+}
|
|
|
// 计算重复表关联变量表达式结果值
|
|
|
function calculateRepeatingFormExpression(item, form) {
|
|
|
// 提取表达式中的变量名
|