Browse Source

Merge branch 'master' of http://222.243.138.146:2000/ygtx/ygoa_miniapp

HMY 1 year ago
parent
commit
2eb1b33c5f
1 changed files with 46 additions and 4 deletions
  1. 46 4
      pages/work/edit/index.vue

+ 46 - 4
pages/work/edit/index.vue

@@ -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) {
 	// 提取表达式中的变量名