xian vor 1 Jahr
Ursprung
Commit
56cd5f3e5c

+ 8 - 0
.idea/.gitignore

@@ -0,0 +1,8 @@
+# 默认忽略的文件
+/shelf/
+/workspace.xml
+# 数据源本地存储已忽略文件
+/dataSources/
+/dataSources.local.xml
+# 基于编辑器的 HTTP 客户端请求
+/httpRequests/

+ 9 - 0
.idea/hs_hzl_uniapp_ml.iml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>

+ 36 - 0
.idea/inspectionProfiles/Project_Default.xml

@@ -0,0 +1,36 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="TOP_LEVEL_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="INNER_CLASS_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="METHOD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
+        </value>
+      </option>
+      <option name="FIELD_OPTIONS">
+        <value>
+          <option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
+          <option name="REQUIRED_TAGS" value="" />
+        </value>
+      </option>
+      <option name="IGNORE_DEPRECATED" value="false" />
+      <option name="IGNORE_JAVADOC_PERIOD" value="true" />
+      <option name="IGNORE_DUPLICATED_THROWS" value="false" />
+      <option name="IGNORE_POINT_TO_ITSELF" value="false" />
+      <option name="myAdditionalJavadocTags" value="date" />
+    </inspection_tool>
+  </profile>
+</component>

+ 6 - 0
.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>

+ 8 - 0
.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/hs_hzl_uniapp_ml.iml" filepath="$PROJECT_DIR$/.idea/hs_hzl_uniapp_ml.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>

+ 22 - 0
pageA/login/getOpenId.vue

@@ -0,0 +1,22 @@
+<template>
+	<view>
+		<view >
+			<web-view src="https://mp.weixin.qq.com/s?__biz=MzkzMzQ4NjE0OA==&tempkey=MTIzOV9iUmx4dHlkZm5uL3BtWkJlRUcycC0tMXZYY1M5aDN4MHpPMTRCZnhWVlpaVDhzeG10QUJ1UE5TVnVFUUMtY21LeEJaX3NEaUh6YmhVRjJzTXh1X3BHSFNzYW4yRWt2U0p3MlYxLTBKQ0dZTzdyZHpsbWM0bXk5emhoaGE3UXowbzlicUZfQmlHeTN1dW1jWkczWGVZS0hQVU5TMVBiUU1qQnVrbFdnfn4%3D&chksm=424a8a2a753d033ce72ae70533a3e116a70a06c28ac4bc06450e69174f9ec09c1950d77d0e90&scene=0&xtrack=1&previewkey=M%252BT%252F%252F0b8bGocuf1n6t0UVcNS9bJajjJKzz%252F0By7ITJA%253D&key=&ascene=15&uin=&devicetype=Windows+11+x64&version=6309071d&lang=zh_CN&session_us=gh_c332ab0581f8&countrycode=CN"></web-view>
+		</view>
+	</view>
+</template>
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		onLoad() {
+			
+		},
+		methods: {
+			
+		}
+	}
+</script>

+ 68 - 0
pageApp/administration/phoneApply.vue

@@ -0,0 +1,68 @@
+<template>
+	<view>
+		<view>
+			<hs-input label="申请人" v-model="form.applyUserName" disabled></hs-input>
+			<hs-dept-select label="申请部门" v-model="form.department" :autofill="true"></hs-dept-select>
+			<hs-input label="申请时间" v-model="form.createTime" disabled></hs-input>
+			<hs-dict-select label="申请理由" dictKey="phonenumber_apply_type" v-model="form.applyType" />
+			<hs-input v-if="form.applyType === '6'" label="其他" v-model="form.remark" model="textarea"></hs-input>
+			<view class="zysx" style="padding: 10px;color: #999999;">
+				使用注意事项:
+				<p>1、工作用手机套餐费用由中心统一支付,超额话费由个人支付;</p>
+				<p>2、工作手机应保证24小时开机,确保通讯畅通;</p>
+				<p>3、人员离职及工作跳动至无需工作手机的岗位时,需想行政办公室报备并归还手机卡;</p>
+				<p>4、无故不主动交还手机卡的,后续产生手机套餐费用由个人承担;</p>
+			</view>
+		</view>
+		<u-gap height="70" bgColor="#ffffff"></u-gap>
+		<hs-flow-submit ref="flowSubmit" @verify="verify" :data="form" api="phoneApply"></hs-flow-submit>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				form: {
+					applyUserName: '',
+					applyType: '1',
+					createTime: ''
+				}
+			}
+		},
+		onLoad() {
+			//申请人初始化
+			this.form.applyUserName = uni.getStorageSync("userInfo").nickName
+			this.form.createTime = this.$dateResult(new Date().getTime(), 'datetime')
+		},
+		methods: {
+			verify() {
+				console.log("提交", this.form)
+				this.$refs.flowSubmit.submit()
+			},
+			input(e) {
+				console.log(e)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.desc {
+		padding: 15rpx 5rpx;
+	}
+
+	.zysx p {
+		font-size: 22rpx;
+	}
+
+	.bottim_view {
+		padding: 5px 20px 30px;
+		position: fixed;
+		left: 0px;
+		bottom: 0px;
+		width: 100%;
+		height: 40px;
+		background-color: #ffffff;
+	}
+</style>

+ 58 - 0
pageApp/administration/xfj.vue

@@ -0,0 +1,58 @@
+<template>
+	<view>
+		<view>
+			<hs-input label="申请人" v-model="form.applyUserName" disabled></hs-input>
+			<hs-input label="申请标题" v-model="form.title"></hs-input>
+			<hs-input label="备注" v-model="form.remark" model="textarea"></hs-input>
+			<hs-photo label="信访件图片" :limit="9" v-model="form.imgList"></hs-photo>
+		</view>
+		<u-gap height="70" bgColor="#ffffff"></u-gap>
+		<hs-flow-submit ref="flowSubmit" @verify="verify" :data="form" api="letterDispose"></hs-flow-submit>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				form: {
+					applyUserName: '',
+					imgList: ''
+				}
+			}
+		},
+		onLoad() {
+			//申请人初始化
+			this.form.applyUserName = uni.getStorageSync("profile").name
+		},
+		methods: {
+			verify() {
+				console.log("提交", this.form)
+				this.$refs.flowSubmit.submit()
+			},
+			input(e) {
+				console.log(e)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.desc {
+		padding: 15rpx 5rpx;
+	}
+
+	.zysx p {
+		font-size: 22rpx;
+	}
+
+	.bottim_view {
+		padding: 5px 20px 30px;
+		position: fixed;
+		left: 0px;
+		bottom: 0px;
+		width: 100%;
+		height: 40px;
+		background-color: #ffffff;
+	}
+</style>

+ 644 - 0
pageApp/ge/geLetterDispose.vue

@@ -0,0 +1,644 @@
+<template>
+	<view class="geHeight">
+		<view style="height: 100%;">
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+			<view class="desc">
+				<uni-row>
+					<uni-col :span="5">
+						<view class="desc">
+							申请人
+						</view>
+					</uni-col>
+					<uni-col :span="18">
+						<view class="desc">
+							{{data.formData.apply_user_name}}
+						</view>
+					</uni-col>
+				</uni-row>
+			</view>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+			<view class="desc">
+				<uni-row>
+					<uni-col :span="5">
+						<view class="desc">
+							标题
+						</view>
+					</uni-col>
+					<uni-col :span="18">
+						<view class="desc">
+							{{data.formData.title}}
+						</view>
+					</uni-col>
+				</uni-row>
+			</view>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+			<!-- 			<view class="desc">
+				<uni-row>
+					<uni-col :span="5">
+						<view class="desc">
+							文件
+						</view>
+					</uni-col>
+					<uni-col :span="18">
+						<view class="u-demo-block">
+							<text class="u-demo-block__title">点击下方文件名查看</text>
+							<view class="u-demo-block__content">
+								<view v-for="item in fileList" class="yyButton" style="border: 1rpx solid rgb(10, 185, 156);color: rgb(10, 185, 156);font-size: 22rpx; padding: 5rpx 15rpx;
+											 border-radius: 10rpx;" @click="previewFile(item.url)">
+									{{item.name?item.name : "无名称"}}
+								</view>
+							</view>
+						</view>
+					</uni-col>
+				</uni-row>
+			</view> -->
+			<!-- <u-gap height="10" bgColor="#f5f5f5"></u-gap> -->
+			<view class="desc">
+				<view class="desc">
+					图片
+				</view>
+				<view class="desc">
+					<uni-file-picker :value="imgList" file-mediatype="image" readonly>
+					</uni-file-picker>
+				</view>
+			</view>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+			<hs-show label="备注" :data="data.formData.update_by"></hs-show>
+			<view v-if="data.pageType !== 1 || data.isEnd === '1' || data.baseName === '分管领导核查'">
+				<hs-show label="处理结果" :data="data.formData.dispose_result"></hs-show>
+				<hs-show label="是否解决" :data="data.formData.is_solve" mode="dict" dictKey="hs_letter_dispose"></hs-show>
+				<hs-show label="处理评价" :data="data.formData.remark"></hs-show>
+			</view>
+			<view v-if="data.pageType === 1 && data.isEnd === '0' && data.baseName === '科长处理' "
+				style="padding: 10px;color: #ffaa00;">
+				请您在下方补充处理结果
+				<hs-input label="处理结果" v-model="form.disposeResult" :value="form.disposeResult"
+					model="textarea"></hs-input>
+				<hs-dict-select label="是否解决" @input="submitMaintenanceRecord()" dictKey="hs_letter_dispose"
+					v-model="form.isSolve" />
+				<hs-input label="处理评价" @input="submitMaintenanceRecord()" v-model="form.remark"
+					model="textarea"></hs-input>
+			</view>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+			<view class="desc">
+				<view>
+					<uni-steps :options="list1" :active="active" direction="column" active-color="rgb(55,186,189)" />
+				</view>
+			</view>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+			<view v-if="data.pageType === 1" class="desc">
+				<view class="desc" style="color: #bababa;">
+					批注:
+				</view>
+				<view class="desc">
+					<u--textarea v-model="pz" border="bottom"></u--textarea>
+				</view>
+			</view>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+		</view>
+		<view v-if="data.pageType == 3" class="bomButtonBody" style="height: 10%;">
+			<uni-row v-if="list1 && list1.length === 1">
+				<uni-col>
+					<view class="desc">
+						<u-button :disabled="isDisabled" color="rgb(55,186,189)" shape="circle" size="large"
+							@click="revoke">撤销
+						</u-button>
+					</view>
+				</uni-col>
+			</uni-row>
+			<uni-row>
+				<uni-col>
+					<view class="desc">
+						<!-- <u-button :disabled="isDisabled" color="rgb(55,186,189)" shape="circle" size="large"
+							@click="againLaunch">再次发起
+						</u-button> -->
+					</view>
+				</uni-col>
+			</uni-row>
+		</view>
+		<u-gap height="110" bgColor="#f5f5f5"></u-gap>
+		<view v-if="data.pageType === 1 && zindeButtion === 1 && data.isEnd === '0'" class="bomButtonBody"
+			style="position: fixed;bottom: 0">
+			<uni-row>
+				<uni-col :span="10">
+					<view class="desc">
+						<u-button color="rgb(55,186,189)" shape="circle" size="large"
+							@click="passTrue('同意','RESULT_TRUE','bottom')">同意,下一步
+						</u-button>
+					</view>
+				</uni-col>
+				<uni-col :span="7.5">
+					<view class="desc">
+						<u-button color="rgb(188, 188, 188)" shape="circle" size="large"
+							@click="passTrue('驳回','RESULT_FALSE','bottom')">驳回</u-button>
+					</view>
+				</uni-col>
+				<uni-col :span="7.5">
+					<view class="desc">
+						<u-button color="rgb(136, 188, 160)" shape="circle" size="large"
+							@click="passTrue('驳回','RESULT_CASE_OF','bottom')">转交</u-button>
+					</view>
+				</uni-col>
+			</uni-row>
+		</view>
+		<view>
+			<!-- 普通弹窗 -->
+			<uni-popup ref="popup" background-color="#fff" @change="propChange">
+				<view class="popup-content" :class="{ 'popup-height': type === 'left' || type === 'right' }">
+					<view class="desc">
+						<uni-row>
+							<uni-col :span="8">
+								<view style="font-size: 40rpx;color: rgb(145, 145, 145);">
+								</view>
+							</uni-col>
+							<uni-col :span="13">
+								<view style="font-size: 40rpx;color: rgb(98, 98, 98);">
+									{{nextTitle}}
+								</view>
+							</uni-col>
+							<uni-col :span="3">
+								<view @click="submitPass" style="font-size: 40rpx;color: rgb(55,186,189);">
+									确认
+								</view>
+							</uni-col>
+						</uni-row>
+					</view>
+					<view class="desc">
+						<uni-row>
+							<uni-col>
+								<view class="desc">
+									<uni-data-picker ref="picker" placeholder="请选择" :popup-title="selectTitle"
+										:localdata="dataTree" v-model="nextUserName" @change="nextApprovalChange">
+									</uni-data-picker>
+								</view>
+							</uni-col>
+						</uni-row>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+		<view>
+			<!-- 驳回选择弹窗 -->
+			<uni-popup ref="popup2" background-color="#fff" @change="propChange">
+				<view style="height: 800rpx;">
+					<view class="desc">
+						<view style="text-align: center;font-size: 30rpx;color: rgb(98, 98, 98);">
+							驳回至以下任意流程
+						</view>
+					</view>
+					<view style="padding: 20rpx 10rpx;">
+						<uni-list v-for="item in rejectHistoryData">
+							<uni-list-item :clickable="true" @click="rejectSubmit(item)" :title="item.comment" />
+						</uni-list>
+					</view>
+				</view>
+			</uni-popup>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				pz: '',
+				nextApproval: '',
+				nextUserName: '',
+				app_vacate_type: uni.getStorageSync('app_vacate_type'),
+				data: uni.getStorageSync("approval"),
+				form: {
+					id: '',
+					disposeResult: '**月**日上午/下午**时**分,由我单位**部门/科室的经办人***,对来电人所反映的情况进行核实,填写处理过程和结果,并在回复结束时询问诉求人对此次回复做出评价',
+					isSolve: '',
+					remark: ''
+				},
+				dataTree: [],
+				queryParams: {},
+				historyData: [],
+				nextTitle: '',
+				selectTitle: '',
+				active: 0,
+				list1: [],
+				isDisabled: false,
+				actions: [],
+				type: 'center',
+				zindeButtion: 1,
+				rejectHistoryData: [],
+				fileList: [],
+				imgList: []
+			}
+		},
+		onLoad() {
+			uni.showLoading({
+				title: '正在加载'
+			})
+			setTimeout(() => {
+				let start = new Date().getTime()
+				if (this.data.formData.img_list) {
+					this.imgList = JSON.parse(this.data.formData.img_list)
+				}
+			}, 10)
+			this.getHouXuanZu()
+			this.getListHistory()
+			this.readTask()
+			if (this.data.baseName && this.data.pageType === 1) {
+				uni.setNavigationBarTitle({
+					title: this.data.baseName
+				})
+			}
+			if (this.data.formData.remark) {
+				this.form.remark = this.data.formData.remark
+			}
+			if (this.data.formData.is_solve) {
+				this.form.isSolve = this.data.formData.is_solve
+			}
+			if (this.data.formData.dispose_result) {
+				this.form.disposeResult = this.data.formData.dispose_result
+			}
+		},
+		methods: {
+			submitMaintenanceRecord() {
+				if (this.data.baseName === '科长处理') {
+					this.form.id = this.data.formData.id
+					this.$httpRequest({
+						url: '/app/letterDisposeSubmit',
+						method: 'post',
+						data: this.form,
+						urlType: this.$getUrlType()
+					}).then(res => {
+
+					})
+				}
+			},
+			rejectSubmit(item) {
+				this.form.rejectBaseId = item.baseId
+				this.nextApproval = item.operator
+				this.submitPass()
+			},
+			nextApprovalChange(e) {
+				console.log('onchange:', e.detail.value[1]);
+				this.nextUserName = e.detail.value[1].text
+				this.nextApproval = e.detail.value[1].value
+			},
+			propChange(e) {
+				if (e.show) {
+					this.zindeButtion = 0
+				} else {
+					this.zindeButtion = 1
+				}
+			},
+			againLaunch() {
+				this.$goto('../hr/leave')
+			},
+			async revoke() {
+				const {
+					data: res
+				} = await this.$httpRequest({
+					url: '/app/revoke?taskId=' + this.data.taskId,
+					method: 'get'
+				});
+				if (res.code === 200) {
+					uni.showModal({
+						title: "撤销成功",
+						icon: "OK",
+						showCancel: false,
+						success() {
+							uni.navigateBack()
+						}
+					})
+				} else {
+					uni.showModal({
+						title: "撤销失败",
+						content: res.msg,
+						showCancel: false,
+						success() {
+							uni.navigateBack()
+						}
+					})
+				}
+			},
+			previewFile(fileUrl) {
+				uni.showLoading({
+					title: '加载中'
+				})
+				uni.downloadFile({
+					url: fileUrl, //后端返回的文件地址
+					// filePath: wx.env.USER_DATA_PATH + '/' + item.name + '.' + item.value.split('.')[item.value.split('.').length - 1],
+					success: function(res) {
+						if (res.statusCode === 200) {
+							uni.openDocument({
+								showMenu: true,
+								filePath: res.tempFilePath,
+								success: function(res) {
+									console.log(res, '打开文件成功')
+								},
+								fail: (err) => {
+									uni.showToast({
+										title: '打开文件失败请重试',
+										icon: 'none'
+									})
+								}
+							})
+						} else {
+							uni.showToast({
+								title: '打开文件失败请重试',
+								icon: 'none'
+							})
+						}
+						uni.hideLoading()
+					},
+					fail: (err) => {
+						uni.hideLoading()
+						uni.showToast({
+							title: '加载失败请重试',
+							icon: "none"
+						})
+					}
+				})
+
+			},
+			async readTask() {
+				if (this.data.msgIsRead === '0') {
+					const {
+						data: res
+					} = await this.$httpRequest({
+						url: '/app/rt?taskId=' + this.data.id,
+						method: 'get'
+					});
+					if (res.code === 200) {
+						let msgData = uni.getStorageSync("msgData")
+						if (this.pageType === 1) {
+							--msgData.m1
+						} else if (this.pageType === 3) {
+							--msgData.m4
+						} else if (this.pageType === 4) {
+							--msgData.m7
+						}
+						uni.setStorageSync("msgData", msgData)
+					}
+				}
+			},
+			async getHouXuanZu() {
+				const {
+					data: res
+				} = await this.$httpRequest({
+					url: '/app/pL?taskId=' + this.data.id + '&groupId=' + this.data.baseGroupId + '&baseId=' +
+						this.data.baseId,
+					method: 'get'
+				});
+				if (res.code === 200) {
+					this.dataTree = res.data
+				}
+				uni.hideLoading()
+			},
+			async getListHistory() {
+				let id = this.data.taskId ? this.data.taskId : this.data.id
+				const {
+					data: res
+				} = await this.$httpRequest({
+					url: '/app/ctr?taskId=' + id,
+					method: 'get',
+					data: this.queryParams
+				});
+				if (res.code === 200) {
+					uni.hideLoading()
+					this.historyData = res.data
+					this.list1
+					if (0 != this.historyData.length) {
+						for (var i = 0; i < this.historyData.length; i++) {
+							if (this.historyData[i].comment && this.historyData[i].comment === "自动结束" ||
+								this.historyData[i].comment === "流程结束") {
+								this.list1.push({
+									title: this.historyData[i].comment,
+									desc: this.historyData[i].createTime
+								})
+							} else {
+								this.list1.push({
+									title: this.historyData[i].operator + ' ' + this.historyData[i].comment,
+									desc: this.historyData[i].createTime
+								})
+							}
+						}
+					} else {
+						this.list1.push({
+							title: "待审批"
+						})
+					}
+					if (this.historyData[this.historyData.length - 1]) {
+						if (!(this.historyData[this.historyData.length - 1].comment === "同意并结束") &&
+							!(this.historyData[this.historyData.length - 1].comment === "自动结束") &&
+							!(this.historyData[this.historyData.length - 1].comment === "流程结束")) {
+							this.list1.push({
+								title: "待审批"
+							})
+						}
+					}
+					this.active = this.list1.length - 1
+				}
+			},
+			dataForm(comment, pass) {
+				this.form.comment = this.pz ? this.pz : comment
+				this.form.result = pass
+				this.form.baseId = this.data.baseId
+				this.form.taskId = this.data.id
+				this.form.nextApproval = this.nextApproval
+				this.form.nextUserName = this.nextUserName
+				this.form.formData = this.data.formData
+			},
+			passTrue(comment, pass, type) {
+				this.dataForm(comment, pass)
+				this.submitMaintenanceRecord()
+				if (pass === 'RESULT_TRUE' && this.data.isCandidate == "1") {
+					this.submitPass()
+					return
+				}
+				if (pass === 'RESULT_FALSE') {
+					this.getRejectListHistory()
+					return
+				}
+				if (pass === 'RESULT_CASE_OF') {
+					this.getCurrentHouXuanZu()
+					this.selectTitle = '请选择转交人'
+					this.nextTitle = '请选择转交人'
+					this.$refs.popup.open(type)
+					return
+				}
+				this.getHouXuanZu()
+				this.nextTitle = '下一步审批人'
+				this.type = type
+				// open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
+				this.$refs.popup.open(type)
+			},
+			async getRejectListHistory() {
+				uni.showLoading({
+					title: '加载中',
+					mask: true
+				})
+				let id = this.data.taskId ? this.data.taskId : this.data.id
+				const {
+					data: res
+				} = await this.$httpRequest({
+					url: '/app/reject/ctr?taskId=' + id,
+					method: 'get',
+					data: this.queryParams
+				});
+				if (res.code === 200) {
+					if (res.data.length == 0) {
+						this.submitPass()
+						return
+					}
+					this.$refs.popup2.open('bottom')
+					this.rejectHistoryData = res.data
+					uni.hideLoading()
+				}
+			},
+			async getCurrentHouXuanZu() {
+				uni.showLoading({
+					title: '加载中',
+					mask: true
+				})
+				const {
+					data: res
+				} = await this.$httpRequest({
+					url: '/app/currentPL?taskId=' + this.data.id + '&groupId=' + this.data.baseGroupId +
+						'&baseId=' + this.data.baseId,
+					method: 'get'
+				});
+				if (res.code === 200) {
+					this.dataTree = res.data
+					uni.hideLoading()
+				}
+			},
+			async submitPass() {
+				uni.showLoading({
+					mask: true,
+					title: '正在提交'
+				})
+				if (this.form.result !== 'RESULT_FALSE' && this.data.isCandidate == "0" && 2.0 < parseFloat(this.data
+						.formData.total_time)) {
+					if (!this.nextApproval) {
+						uni.showModal({
+							content: '请选择批准人',
+							title: '提交失败',
+							showCancel: false
+						})
+						this.isDisabled = false
+						return
+					}
+				}
+				this.form.nextApproval = this.nextApproval
+				this.form.nextUserName = this.nextUserName
+				const {
+					data: res
+				} = await this.$httpRequest({
+					url: '/app/nextStep',
+					method: 'post',
+					data: this.form
+				});
+				if (res.code === 200) {
+					uni.hideLoading()
+					uni.showModal({
+						title: "提交成功",
+						icon: "OK",
+						showCancel: false,
+						success() {
+							setTimeout(() => {
+								this.isDisabled = false
+							}, 1000)
+							uni.navigateBack()
+						}
+					})
+				} else {
+					uni.showModal({
+						title: "提交失败",
+						icon: "ERROR",
+						showCancel: false,
+						content: res.msg
+					})
+				}
+				setTimeout(() => {
+					this.isDisabled = false
+				}, 1000)
+				setTimeout(() => {
+					this.isDisabled = false
+					uni.hideLoading()
+				}, 1000)
+			},
+			dateFormat(time) {
+				let date = new Date(time);
+				let year = date.getFullYear();
+				// 在日期格式中,月份是从0开始的,因此要加0,使用三元表达式在小于10的前面加0,以达到格式统一  如 09:11:05
+				let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+				let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+				let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
+				let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
+				let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
+				// 拼接
+				// return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
+				return year + "/" + month + "/" + day;
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.desc {
+		padding: 10rpx;
+	}
+
+	.u-page {
+		&__button-item {
+			margin: 0 15px 5px 0;
+		}
+	}
+
+	.u-demo-block__content {
+		flex-direction: row;
+		flex-wrap: wrap;
+		align-items: center;
+	}
+
+
+	.popup-content {
+		height: 800rpx;
+	}
+
+
+	.geHeight {
+		height: 100%;
+		position: relative;
+	}
+
+	.bomButtonBody {
+		border-top: 5rpx #f5f5f5 solid;
+		padding: 30rpx 0 50rpx 0;
+		width: 100%;
+		background-color: #ffffff;
+	}
+
+	.status-btn {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		height: 92rpx;
+		margin: 30rpx;
+		background-color: #007AFF;
+	}
+
+	.example-body {
+		/* #ifndef APP-NVUE */
+		display: block;
+		/* #endif */
+		padding: 15px;
+		flex-direction: row;
+	}
+
+	.check-btn {
+		display: flex;
+		justify-content: space-between;
+		margin-bottom: 10px;
+	}
+</style>

+ 86 - 0
pageApp/ge/gePhoneApply.vue

@@ -0,0 +1,86 @@
+<template>
+	<view>
+		<view>
+			<hs-show label="申请人" :data="data.formData.apply_user_name"></hs-show>
+			<hs-show label="部门" :data="data.formData.department" mode="dept"></hs-show>
+			<hs-show label="申请理由" :data="data.formData.apply_type" mode="dict"
+				dictKey="phonenumber_apply_type"></hs-show>
+			<hs-show v-if="data.formData.apply_type === '6'" label="其他" :data="data.formData.remark"></hs-show>
+			<hs-show v-if="data.pageType !== 1" label="手机卡号" :data="data.formData.phone_num"></hs-show>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+			<view v-if="data.pageType === 1 && data.baseName === '信息科受理'" style="padding: 10px;color: #ffaa00;">
+				请您在下方填写申请的手机号
+				<hs-input @input="submitMaintenanceRecord()"
+					label="手机卡号" v-model="form.phoneNum"></hs-input>
+			</view>
+			<u-gap height="10" bgColor="#f5f5f5"></u-gap>
+		</view>
+		<ge></ge>
+	</view>
+</template>
+
+<script>
+	import ge from '../components/ge'
+	export default {
+		components: {
+			ge
+		},
+		data() {
+			return {
+				data: uni.getStorageSync("approval"),
+				form: {}
+			}
+		},
+		mounted() {
+
+		},
+		methods: {
+			submitMaintenanceRecord() {
+				console.log('input')
+				let data = {
+					id: this.data.formData.id,
+					phoneNum: this.form.phoneNum
+				}
+				this.$httpRequest({
+					url: '/app/phoneApplyNumber',
+					method: 'post',
+					data: data,
+					urlType: this.$getUrlType()
+				}).then(res => {
+
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	.desc {
+		padding: 10rpx 30rpx;
+		color: #818181;
+	}
+
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+	}
+
+	.touch {
+		position: fixed;
+		right: -5rpx;
+		bottom: 60rpx;
+		width: 105rpx;
+		height: 105rpx;
+		padding: 5rpx;
+		background-color: rgb(10, 185, 156);
+		border-top-left-radius: 50%;
+		border-bottom-left-radius: 50%;
+		color: #fff;
+		font-size: 50rpx;
+		/* 去除标签点击事件高亮效果 */
+		-webkit-tap-highlight-color: transparent;
+		/* 使用transform: translate3d 处理性能高 GUP */
+	}
+</style>

BIN
static/img/app/xfj.png