ソースを参照

refactor(work/edit): 不显示无关的审批表单项

wangpx 1 年間 前
コミット
96e3545575
2 ファイル変更98 行追加83 行削除
  1. 94 83
      pages/work/edit/index.vue
  2. 4 0
      pages/work/index.vue

+ 94 - 83
pages/work/edit/index.vue

@@ -3,53 +3,55 @@
 		<uni-card spacing="0">
 			<view class="main_container">
 				<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>
 			</view>
 		</uni-card>
 		<view v-if="repeatingForm.elementItem.length > 0" class="repeating_table">
 			<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-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">
 						<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>
 				<view class="repeating_table_button_container">
@@ -71,11 +73,13 @@
 				file-mediatype="all" @select="handleFileSelect" @progress="handleFileProgress"
 				@success="handleFileSuccess" @fail="handleFileFail" @delete="handleFileDelete" />
 		</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 style="height: 5px; margin-top: 10px;"></view>
 </template>
 
 <script setup lang="ts">
@@ -313,8 +317,9 @@ function submitProcess() { // 提交表单
 
 <style lang="scss">
 .process_container {
+	position: relative;
 	.main_container {
-		min-height: 70vh;
+		min-height: 50vh;
 	}
 
 	.picker_container {
@@ -360,46 +365,52 @@ function submitProcess() { // 提交表单
 		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>

+ 4 - 0
pages/work/index.vue

@@ -138,6 +138,10 @@ function changeDiaryGrid(e) {
 			appId: 'wxd45c635d754dbf59',
 			path: `pages/detail/detail?url=https://docs.qq.com/sheet/DZndGYU5aWVBpR1Nm`
 		})
+		// wx.navigateToMiniProgram({
+		// 	appId: 'wxde4bf149a4c88707',
+		// 	path: `pages/login`
+		// })
 		return
 	}
 	if (2 == e.detail.index) {