zhnghongrui 1 年間 前
コミット
0b5feee97b

+ 2 - 2
config.js

@@ -1,10 +1,10 @@
 // 应用全局配置
 module.exports = {
 
-	baseUrl: 'https://www.xcx.cczdsz.cn/prod-api',
+	// baseUrl: 'https://www.xcx.cczdsz.cn/prod-api',
 	// baseUrl: 'http://192.168.4.6:8080',
 	// baseUrl: 'http://192.168.4.20:8080',
-	// baseUrl: 'http://192.168.4.11:8080',
+	baseUrl: 'http://192.168.4.11:8080',
 	// baseUrl: 'http://192.168.4.14:8089',
 	baseIconUrl: 'https://www.xcx.cczdsz.cn/app/images/',
 	// 应用信息

+ 12 - 1
pages.json

@@ -33,12 +33,23 @@
 			}
 		},
 		{
+			"path": "pages/oldrenovation/courtyard/newcourtyard",
+			"style": {
+				"navigationBarTitleText": "庭院"
+			}
+		},
+		{
 			"path": "pages/oldrenovation/overhead/overhead",
 			"style": {
 				"navigationBarTitleText": "架空"
 			}
 		},
-
+{
+			"path": "pages/oldrenovation/overhead/newoverhead",
+			"style": {
+				"navigationBarTitleText": "架空"
+			}
+		},
 		{
 			"path": "pages/statistics/statistics",
 			"style": {

+ 978 - 0
pages/oldrenovation/courtyard/newcourtyard.vue

@@ -0,0 +1,978 @@
+	<template>
+		<scroll-view>
+			<view class="background">
+				<!-- <view class="uni-list">
+					<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+						<view>
+							工程周期
+						</view>
+						<view v-if="this.isEmpty(this.projectValue.dictValue)" @click="pickerShow('gczq')">
+							<span style="color: darkgray;">请选择工程周期</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+						<view v-else class="uni-list-cell-db" @click="pickerShow('gczq')">
+							<span style="color: black;">{{projectValue.dictLabel}}</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+
+					</view>
+				</view> -->
+				<view class="uni-list">
+					<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+						<view>
+							行政区
+						</view>
+						<view v-if="this.isEmpty(this.XZQValue.dictValue)" @click="pickerShow('xzq')">
+							<span style="color: darkgray;">请选择行政区</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+						<view v-else class="uni-list-cell-db" @click="pickerShow('xzq')">
+							<span style="color: black;">{{XZQValue.dictLabel}}</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+
+					</view>
+				</view>
+				<view class="uni-list">
+					<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+						<view>
+							小区
+						</view>
+
+						<view v-if="this.isEmpty(this.XQValue.id)" class="uni-list-cell-db" @click="pickerShow('xq')">
+							<span style="color: darkgray;">请选择小区</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+						<view v-else class="uni-list-cell-db" @click="pickerShow('xq')">
+							<span style="color: black;">{{XQValue.name}}</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+					</view>
+				</view>
+				<view class="uni-list">
+					<view class="container">
+						<view class="uni-list-cell-left">
+							楼栋
+						</view>
+						<view v-if="this.isEmpty(this.LDValue.id)" class="uni-list-cell-db" @click="pickerShow('ld')">
+							<span style="color: darkgray;">请选择楼栋</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+						<view v-else class="uni-list-cell-db" @click="pickerShow('ld')">
+							<span style="color: black;">{{LDValue.name}}</span>
+							<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+						</view>
+					</view>
+				</view>
+
+
+
+				<SelectPicker :list="selectList" @change="changeSelect" v-if="open" @close="close" titleKey="name"
+					subtitleKey="id" v-model="name"></SelectPicker>
+
+
+				<SelectPicker :list="dictOptions" @change="changeSelectDict" v-if="openDict" @close="closeDict"
+					titleKey="dictLabel" subtitleKey="dictValue" v-model="dictLabel"></SelectPicker>
+			</view>
+
+			<view class="background">
+				<view>
+					<view class="uni-list">
+						<view
+							style="font-size: 16px;margin-left: 10px;margin-top: 10px;display: flex; justify-content: space-between;margin-bottom: 10px;">
+							{{objValue.enginClassValue}}
+
+							<span
+								style="color: blue;font-size: 14px;  display: flex;justify-content:flex-end; margin-right: 10px;"
+								@click="history">历史</span>
+						</view>
+						<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+
+							<view>
+								施工时间
+							</view>
+							<view @click="openDatetimePicker('sg')">
+								<span style="color: black;">{{time}}</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+						</view>
+
+						<view class="container" v-if="objValue.enginClassValue=='回填'">
+
+							<view>
+								回填时间
+							</view>
+							<view @click="openDatetimePicker('ht')">
+								<span style="color: black;">{{BackfillingTime ? BackfillingTime:'请选择回填时间'}}</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+						</view>
+						<view class="container" v-else-if="objValue.enginClassValue=='打压'">
+
+							<view>
+								分段打压是否合格
+							</view>
+							<view v-if="this.isEmpty(this.isOkValue)" @click="showActionsheet()">
+								<span style="color: darkgray;">请选择分段打压是否合格</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+							<view v-else class="uni-list-cell-db" @click="showActionsheet()">
+								<span style="color: black;">{{isOkLabel}}</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+						</view>
+						<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+							<view class="uni-common-mt" style="width: 100%;">
+								<text class="uni-title uni-common-pl">施工内容</text>
+								<view style="width: 100%;box-sizing: border-box;">
+									<textarea class="textarea" placeholder="请输入施工内容" maxlength="255"
+										placeholder-style="padding: 10rpx;"
+										style="width: 100%;height: 100%;border: 1rpx solid #cccccc; border-radius: 15rpx;padding: 10rpx;line-height:normal;"
+										auto-height v-model="projectContent"></textarea>
+								</view>
+							</view>
+						</view>
+
+						<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+
+							<view>
+								材 质
+							</view>
+							<view v-if="this.isEmpty(this.materialValue.id)" @click="pickerShow('cz')">
+								<span style="color: darkgray;">请选择材质</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+							<view v-else class="uni-list-cell-db" @click="pickerShow('cz')">
+								<span style="color: black;">{{materialValue.name}}</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+						</view>
+						<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+
+							<view>
+								规 格
+							</view>
+							<view v-if="this.isEmpty(this.specificationValue.id)" @click="pickerShow('gg')">
+								<span style="color: darkgray;">请选择规格</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+							<view v-else class="uni-list-cell-db" @click="pickerShow('gg')">
+								<span style="color: black;">{{specificationValue.name}}</span>
+								<image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
+							</view>
+						</view>
+						<view class="container" style="border-bottom: 1px solid #f8f8f8;">
+
+							<text>数 量</text>
+							<input class="uni-input" type="number" v-model="inputNumberValue" placeholder="请填写数量"
+								maxlength="11" style="margin-left: 10px;text-align: right;"></input>
+						</view>
+
+					</view>
+
+					<view class="align-items" style="margin-top: 20px;margin-bottom: 20px;">
+						<view class="container" style="color: #b2b2b2;">*请上传照片</view>
+						<view class="" style="display: flex; flex-wrap: wrap;margin-top: 10px; margin-left: 10px;">
+							<image :src="loadImgSrc('updateimg.png')" mode=""
+								style="width: 200rpx; height: 150rpx; margin: 0 12rpx;; " @click="choose()"
+								v-show="reviewStatus!='1'"></image>
+							<view v-for="(item,index) in imgArr" :key="index" style="position: relative;">
+								<view
+									v-if="item.substring(item.length - 3) == 'png' || item.substring(item.length - 3) == 'jpg'||item.substring(item.length-4)=='jpeg' ">
+									<image :src="item" mode="" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"
+										@click="showPhoto(index)">
+									</image>
+								</view>
+								<view v-else>
+									<video :src="item" style="width: 100rpx; height: 100rpx; margin: 0 12rpx;"></video>
+								</view>
+								<view @click="remove(index)"
+									style="position: absolute; top: 0; right: 14rpx; border-radius: 50%;">
+									<image :src="loadImgSrc('icon_close.png')" style=" width: 15px; height: 15px;">
+									</image>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="action-btn" v-show="reviewStatus!='1'">
+				<button @click="submit" class="btn cu-btn block bg-blue lg round">确认上传</button>
+			</view>
+
+			<bottom-sheet ref="refShare" :data="historyList"></bottom-sheet>
+			<yt-dateTimePicker ref="myPicker" @submit="handleSubmit" :start-year="2024" :end-year="2099"
+				:time-hide="[true, true, true, true, true, true]" :time-label="['年', '月', '日', '时', '分', '秒']" />
+		</scroll-view>
+	</template>
+
+
+
+	<script>
+		import SelectPicker from '../../../components/selectPicker/select_picker.vue'
+		import bottomSheet from '../../../components/bottomSheet/bottomSheet.vue'
+
+		import {
+			getDicts
+		} from "@/api/system/dict/data";
+		import {
+			getAreaList,
+			getBuildingList,
+			addTearOldPipe,
+			getEnginMaterialQualityList,
+			getEnginSpecificationsList,
+			getRoomProjectList,
+			getRoomProjectId,
+		} from '@/api/common'
+		import {
+			getToken
+		} from '../../../utils/auth';
+
+		export default {
+			components: {
+				SelectPicker,
+				bottomSheet,
+			},
+
+			data() {
+
+				return {
+					headers: {
+						Authorization: "Bearer " + getToken()
+					},
+
+					type: '',
+					reviewStatus: '', //是否可以点击
+					open: false,
+					objValue: '', //上一页面传过来的值  新增接口用
+					openDict: false,
+					selectList: [],
+					dictOptions: [],
+					imgArr: [],
+					XQValue: {},
+					XZQValue: {},
+					projectValue: {'dictValue':'1'},
+					LevelValue: {},
+					isOkValue: '', //分段打压是否合格
+					isOkLabel: '', //分段打压是否合格label
+					LDValue: {},
+					time: '', //施工时间
+					timeType: '', //时间类型
+					BackfillingTime: '', //回填时间
+					showTime: false,
+					specificationValue: {}, //规格
+					projectContent: '', //施工内容
+					materialValue: {}, //材质
+					brandValue: {}, //品牌
+					doorValue: {}, //上门类型
+					SelfClosValve: {}, //自闭阀类型
+					materialList: '', //材质list
+					XQList: '',
+					LDList: '',
+					progress: 0, //上传图片进度百分比
+					loading: false,
+					inputNumberValue: '',
+					title: '',
+					historyList: {} //历史数据
+
+				}
+			},
+
+			created() {
+				this.time = this.traversalTime(new Date().getTime()) //在data里定义变量-nowTime
+			},
+
+			onLoad(options) {
+				if ('params' in options) {
+					this.objValue = JSON.parse(decodeURIComponent(options.params));
+					if (this.objValue.enginType == `old_renovation`) {
+						this.title = '旧改工程-庭院'
+
+					} else if (this.objValue.enginType == `new_built`) {
+						this.title = '新建工程-庭院'
+					}
+
+					uni.setNavigationBarTitle({
+						title: this.title
+					})
+				}
+
+
+			},
+			methods: {
+
+				// 打开picker
+				openDatetimePicker(type) {
+					this.timeType = type;
+					this.$refs.myPicker.show();
+				},
+
+				// 关闭picker
+				closeDatetimePicker() {
+					this.$refs.myPicker.hide();
+				},
+
+				handleSubmit(e) {
+					if (this.timeType == 'ht') {
+						this.BackfillingTime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}:${e.second}`;
+					} else {
+						this.time = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}:${e.second}`;
+					}
+				},
+
+				//获取当前时间
+				traversalTime(timestamp) {
+					//timestamp(时间戳)是整数,否则要parseInt转换
+					let time = new Date(timestamp);
+					let y = time.getFullYear();
+					let m = time.getMonth() + 1;
+					let d = time.getDate();
+					let h = time.getHours();
+					let mm = time.getMinutes();
+					let s = time.getSeconds();
+					return y + '-' + this.addTimes(m) + '-' + this.addTimes(d) + ' ' + this.addTimes(h) + ':' + this.addTimes(
+						mm) + ':' + this.addTimes(s);
+
+
+				},
+				addTimes(m) {
+					return m < 10 ? '0' + m : m
+				},
+				//判断是否选择
+
+				isEmpty(str) {
+
+					return (!str || 0 === str.length);
+
+				},
+
+				// 显示历史弹窗
+				handleShowSheet() {
+					this.shareState = true;
+				},
+				// 隐藏历史弹窗
+				handleHiddenShare() {
+					this.shareState = false;
+				},
+				showPhoto(index) {
+					uni.previewImage({
+						current: index,
+						urls: this.imgArr,
+					})
+
+				},
+				remove(index) {
+					uni.showModal({
+						title: '提示',
+						content: '是否删除该图片或视频?',
+						success: (res) => {
+							if (res.confirm) {
+								this.imgArr.splice(index, 1)
+								console.log('this.imgarr', this.imgArr)
+								if (this.imgArr.length <= 0) {
+									this.photo = true;
+								}
+							}
+						}
+					})
+				},
+				choose() {
+					let _this = this;
+					uni.showActionSheet({
+						title: '上传',
+						itemList: ['图片', '视频'],
+						success: (res) => {
+							console.log(res)
+							if (res.tapIndex == 0) {
+								this.chooseimage()
+							} else {
+								this.choosevideo()
+							}
+						}
+					})
+				},
+				chooseimage() {
+
+					let _this = this;
+					console.log('图片', _this.headers)
+					uni.chooseImage({
+						sizeType: ['album', 'camera'],
+						success(resp) {
+							resp.tempFiles.forEach((item, index) => {
+								const task = uni.uploadFile({
+									url: _this.$HTTP + `/obs`,
+									filePath: item.path,
+									name: 'file',
+									formData: {},
+									header: _this.headers,
+
+									success: res => {
+										// 判断是否json字符串,将其转为json格式
+										console.log("结果", res)
+										// let data = _this.$u.test.jsonString(res
+										// 	.data) ? JSON.parse(res.data) : res.data;
+										let data = JSON.parse(res.data);
+										if (![200].includes(data.code)) {
+											// this.uploadError(index, data);
+											_this.$modal.msg(data.msg)
+										} else {
+											if (_this.progress === 100) {
+												console.log('_this.progress', _this.progress)
+												//console.log('data----', data)data
+												console.log('res--', res)
+												_this.imgArr.push(data.data.url)
+												console.log('imgArr', _this.imgArr)
+												_this.$modal.msg('上传成功!')
+												_this.photo = false;
+											}
+										}
+									},
+									fail: e => {
+										console.log(e)
+										_this.$modal.msg('上传失败!')
+										//_this.uploadError(index, e);
+									},
+									complete: res => {
+										uni.hideLoading();
+										_this.uploading = false;
+
+									}
+								});
+								task.onProgressUpdate(res => {
+									_this.progress = res.progress;
+									console.log('onProgressUpdate', res)
+									console.log('task.onProgressUpdate', _this.progress)
+									uni.showLoading({
+										title: '上传中'
+									})
+									if (_this.progress != 100) {
+										_this.loading = false
+										console.log('_this.loading false', _this.loading)
+									} else {
+										_this.loading = true
+										console.log('_this.loading true', _this.loading)
+									}
+								});
+
+							})
+
+						},
+					})
+				},
+
+				choosevideo() {
+					let _this = this;
+					console.log('视频')
+					uni.chooseVideo({
+						sourceType: ['album', 'camera'],
+						maxDuration: 30,
+						success(resp) {
+							const task = uni.uploadFile({
+								url: _this.$HTTP + `/obs`,
+								filePath: resp.tempFilePath,
+								name: 'file',
+								formData: {},
+								header: _this.headers,
+								success: res => {
+									// 判断是否json字符串,将其转为json格式
+									let data = JSON.parse(res.data);
+									if (![200].includes(res.statusCode)) {
+										this.uploadError(index, data);
+									} else {
+										//上传成功
+										if (_this.progress === 100) {
+											console.log('_this.progress', _this.progress)
+											_this.imgArr.push(data.data.url)
+											console.log('imgArr', _this.imgArr)
+											_this.$modal.msg('上传成功!')
+											_this.photo = false;
+										}
+									}
+								},
+								fail: e => {
+									_this.$modal.msg('上传失败!')
+									this.uploadError(index, e);
+								},
+								complete: res => {
+									uni.hideLoading();
+									_this.uploading = false;
+								}
+							});
+							task.onProgressUpdate(res => {
+								_this.progress = res.progress;
+								console.log('onProgressUpdate', res)
+								uni.showLoading({
+									title: '上传中'
+								})
+								if (_this.progress != 100) {
+									_this.loading = false
+									console.log('_this.loading false', _this.loading)
+								} else {
+									_this.loading = true
+									console.log('_this.loading true', _this.loading)
+								}
+							});
+
+						},
+					})
+
+				},
+
+				showActionsheet() {
+					//分段打压是否合格
+
+					getDicts("sys_yes_no").then(response => {
+
+						this.dictOptions = response.data;
+						let array = [];
+						this.dictOptions.forEach((item, index) => {
+							array.push(item.dictLabel)
+
+						});
+
+						uni.showActionSheet({
+							itemList: array,
+							success: (res) => {
+								// console.log('选择了第' + (res.tapIndex + 1) + '个选项');
+								// console.log(this.dictOptions[res.tapIndex].dictValue)
+								this.isOkValue = this.dictOptions[res.tapIndex].dictValue;
+								this.isOkLabel = this.dictOptions[res.tapIndex].dictLabel;
+							},
+							fail: (err) => {
+								console.log('弹窗取消');
+							}
+						});
+
+					});
+				},
+				pickerShow(e) {
+					this.type = e; //赋值类型
+					if (e == 'cz') { //材质
+						this.open = true;
+						getEnginMaterialQualityList("民用工程").then(response => {
+							this.selectList = response.data;
+						});
+
+					} else if (e == 'gg') { //规格
+						if (this.isEmpty(this.materialValue.id)) {
+							this.$modal.msg('请选择材质')
+
+						} else {
+							this.open = true;
+							this.selectList = this.materialList;
+
+						}
+
+					} else if (e == 'gczq') { //工程周期
+						this.openDict = true;
+						getDicts("engin_cycle").then(response => {
+							this.dictOptions = response.data;
+						});
+					} else if (e == 'xzq') { //行政区
+						if (this.isEmpty(this.projectValue.dictValue)) {
+							this.$modal.msg('请选择工程周期')
+
+						} else {
+							this.openDict = true;
+							getDicts("district").then(response => {
+								this.dictOptions = response.data;
+							});
+						}
+						//this.selectList = this.dictOptions;
+
+					} else if (e == 'xq') { //小区
+						if (this.isEmpty(this.XZQValue.dictValue)) {
+							this.$modal.msg('请选择行政区')
+
+						} else {
+							this.open = true;
+							this.selectList = this.XQList;
+						}
+					} else if (e == 'ld') { //楼栋
+
+						if (this.isEmpty(this.XQValue.id)) {
+							this.$modal.msg('请选择小区')
+
+						} else {
+							this.open = true;
+							this.selectList = this.LDList;
+						}
+
+					}
+
+				},
+
+
+
+				changeSelectDict(item, index) {
+					this.openDict = false;
+					if (this.type == 'isok') {
+						this.isOkValue = item
+
+					} else if (this.type == 'gczq') {
+						this.projectValue = item
+						if (!this.isEmpty(this.XQValue.id)) {
+
+							//房间选完 判断 工程周期  工程周期切换
+							this.getStatus();
+
+						}
+
+					} else if (this.type == 'xzq') {
+						this.XZQValue = item;
+
+						//根据行政区id获取小区数据
+						this.XQValue = ''; //重置小区数据
+						this.LDValue = ''; //重置楼栋数据
+
+						getAreaList(item.dictValue).then(res => {
+							this.XQList = res.data;
+						})
+					}
+				},
+				changeSelect(item, index) {
+					// this.index = index;
+					// this.address = item.communityName;
+					this.open = false;
+
+					if (this.type == 'cz') {
+						this.materialValue = item;
+						this.specificationValue = ''; //重置规格
+						//根据材质ID 获取规格数据
+						getEnginSpecificationsList(item.id).then(res => {
+							this.materialList = res.data
+						})
+					} else if (this.type == 'gg') {
+						this.specificationValue = item;
+
+					} else if (this.type == 'xq') {
+						this.XQValue = item;
+						if (!this.isEmpty(this.projectValue.dictValue)) {
+
+							//小区选完 判断 工程周期
+							this.getStatus();
+
+						}
+						//根据小区id 获取楼栋数据
+						this.LDValue = ''; //重置楼栋数据
+						this.DYValue = ''; //重置单元数据
+						this.FJValue = ''; //重置房间数据
+						getBuildingList(item.id).then(res => {
+							this.LDList = res.data
+							// console.log("楼栋=", res)
+						})
+					} else if (this.type == 'ld') {
+						this.LDValue = item;
+						if (!this.isEmpty(this.projectValue.dictValue)) {
+
+							//楼栋选完 判断 工程周期
+							this.getStatus();
+
+						}
+
+					}
+				},
+				//关闭弹窗
+				close(e) {
+					this.open = false
+				},
+				//关闭弹窗
+				closeDict(e) {
+					this.openDict = false
+				},
+				getStatus() {
+					let unitId = '';
+					let houseId = '';
+					let buildingId = '';
+					if (this.isEmpty(this.LDValue.id)) {
+						buildingId = '';
+					} else {
+						buildingId = this.LDValue.id
+					}
+					let param = {
+						areaId: this.XQValue.id, // 小区id
+						buildingId: buildingId, // 楼宇id
+						unitId: unitId,
+						houseId: houseId, //传空
+						enginCycle: this.projectValue.dictValue, // 工程周期
+						enginType: this.objValue.enginType, //写死 上一页面传过来的
+						enginClassification: this.objValue.enginClassification, //写死  上一页面传过来的  //室内 - 庭院 - 架空
+					}
+
+
+					getRoomProjectId(param).then(res => {
+
+						if (res.code == '200') {
+
+							if (res.data != null && res.data.zEngineeringNodeBoList != null) {
+
+								res.data.zEngineeringNodeBoList.forEach((item, index) => {
+									if (this.objValue.enginClassValue == item.type) {
+										this.reviewStatus = item.reviewStatus;
+										if (item.reviewStatus == '1')
+											this.$modal.msg('当前工程已结束')
+									}
+
+								})
+
+
+							} else {
+								this.reviewStatus = '' //置空
+							}
+
+						} else {
+							this.$modal.msg(res.msg)
+							this.reviewStatus = '' //置空
+						}
+					})
+				},
+				//提交数据
+				submit() {
+
+					if (this.isEmpty(this.projectValue.dictValue)) {
+						this.$modal.msg("请选择工程周期")
+						return
+					}
+					if (this.isEmpty(this.XZQValue.dictValue)) {
+						this.$modal.msg("请选择行政区")
+						return
+					}
+					if (this.isEmpty(this.XQValue.id)) {
+						this.$modal.msg("请选择小区")
+						return
+					}
+					// else if (this.isEmpty(this.LDValue.id)) {
+					// 	this.$modal.msg("请选择楼栋")
+					// } 
+
+
+					if (this.objValue.enginClassValue == '回填' && this.isEmpty(this.BackfillingTime)) {
+						this.$modal.msg("请选择回填时间")
+						return
+					}
+					if (this.objValue.enginClassValue == '打压' && this.isEmpty(this.isOkValue)) {
+						this.$modal.msg("请选择分段打压是否合格")
+						return
+					}
+					if (this.isEmpty(this.materialValue.id)) {
+						this.$modal.msg("请选择材质")
+						return
+					}
+					if (this.isEmpty(this.specificationValue.id)) {
+						this.$modal.msg("请选择规格")
+						return
+					}
+					if (this.isEmpty(this.inputNumberValue)) {
+						this.$modal.msg("请输入数量")
+						return
+					}
+					if (this.imgArr.length <= 0) {
+						this.$modal.msg('请上传照片或视频')
+						return
+					}
+					if (this.loading == false) {
+						this.$modal.msg('照片或视频未上传完毕,无法提交!')
+						return
+					}
+					//提交
+					this.onsubmit();
+
+				},
+
+
+				onsubmit() {
+
+					let unitId = '';
+					let houseId = '';
+					let buildingId = '';
+					if (this.isEmpty(this.LDValue.id)) {
+						buildingId = '';
+					} else {
+						buildingId = this.LDValue.id
+					}
+					//提交
+					let param = {
+						district: this.XZQValue.dictValue,
+						areaId: this.XQValue.id,
+						buildingId: buildingId, //不必传   如果没有传 ' ' 
+						unitId: unitId,
+						houseId: houseId, //传空
+
+						enginType: this.objValue.enginType, //写死 上一页面传过来的 
+						enginClassification: this.objValue.enginClassification, //写死  上一页面传过来的  //室内 - 庭院 - 架空
+						enginCycle: this.projectValue.dictValue, //工程周期
+						zEngineeringNodeBo: {
+							type: this.objValue.enginClassValue, //写死 上一页面传过来的  (拆旧管等 字典值)
+							zEngineeringInfoBo: {
+								//constructAccordingDrawings: this.isCheck, //是否按图纸施工
+								segmentedCompressionQualified: this.isOkValue, // 分段打压是否台格
+								zEngiineeringPhotoBoList: this.imgArr, //照片集合
+								constructTime: this.time, //施工时间
+								backfillTime: this.BackfillingTime, // 回填时间
+								remark: this.projectContent, //施工内容
+								// headName: this.user.nickName, // 负责人名称
+								// headPhone: this.user.phonenumber, // 负责人电话
+								zEngineeringMaterialBo: [{
+									materialQuality: this.materialValue.id, //材质
+									specifications: this.specificationValue.id, //规格
+									number: this.inputNumberValue //数量
+								}]
+							}
+
+						}
+
+					}
+
+					addTearOldPipe(param).then(res => {
+						if (res.code == '200') {
+							uni.showToast({
+								title: res.msg,
+								icon: 'none',
+								//显示持续时间为 3秒
+								duration: 2000
+							});
+							setTimeout(function() {
+								uni.navigateBack();
+							}, 1000)
+
+						}
+					})
+
+				},
+				history() {
+					if (this.isEmpty(this.projectValue.dictValue)) {
+						this.$modal.msg("请选择工程周期")
+						return
+					}
+					if (this.isEmpty(this.XZQValue.dictValue)) {
+						this.$modal.msg("请选择行政区")
+						return
+					}
+					if (this.isEmpty(this.XQValue.id)) {
+						this.$modal.msg("请选择小区")
+						return
+					}
+
+					let unitId = '';
+					let houseId = '';
+					let buildingId = '';
+					if (this.isEmpty(this.LDValue.id)) {
+						buildingId = '';
+					} else {
+						buildingId = this.LDValue.id
+					}
+					let param = {
+						areaId: this.XQValue.id, // 小区id
+						buildingId: buildingId, // 楼宇id
+						enginCycle: this.projectValue.dictValue, // 工程周期
+						unitId: unitId,
+						houseId: houseId, //传空
+						enginType: this.objValue.enginType, //写死 上一页面传过来的
+						enginClassification: this.objValue.enginClassification, //写死  上一页面传过来的  //室内 - 庭院 - 架空
+					}
+					getRoomProjectId(param).then(res => {
+
+						if (res.code == '200') {
+
+							if (res.data != null) {
+
+								getRoomProjectList(res.data.id, this.objValue.enginClassValue).then(
+									res => {
+
+										this.historyList = res.data
+										if (res.data.zEngineeringNodeBo != null) {
+											this.showHistoryList();
+										} else {
+											this.$modal.msg("暂无历史信息")
+										}
+
+									})
+
+							} else {
+								this.$modal.msg("暂无工程信息")
+							}
+						} else {
+							this.$modal.msg(res.msg)
+						}
+					})
+
+				},
+				showHistoryList() {
+					this.$refs.refShare.handleShowShare();
+				}
+			}
+		}
+	</script>
+
+	<style lang="scss">
+		.container {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding: 10px;
+			position: relative;
+
+		}
+
+		.uni-list {
+			border: 1xp solid #eee;
+		}
+
+		.to-right-icon {
+			width: 15px;
+			height: 15px;
+			position: absolute;
+			top: 50%;
+			transform: translateY(-50%);
+		}
+
+		.text {
+			font-size: 16px;
+			color: #333;
+		}
+
+		.background {
+			// border: 15px solid hsla(0, 0%, 100%, .5);
+			background: white;
+			background-clip: padding-box;
+			padding: 20rpx;
+			border-radius: 20rpx;
+			margin: 20rpx;
+			/*从padding开始往外面裁剪背景*/
+
+
+		}
+
+		.btn {
+			width: 715rpx;
+			height: 69rpx;
+			background: #79A4F0;
+			border-radius: 6rpx;
+			font-size: 25rpx;
+			font-family: Microsoft YaHei;
+			font-weight: 400;
+			color: #FFFFFF;
+			line-height: 69rpx;
+			margin-top: 40rpx;
+			margin-bottom: 100rpx;
+		}
+
+		.number {
+			display: flex;
+			/* 水平居中显示子元素 */
+			align-items: flex-start;
+			/* 垂直居中显示子元素 */
+			justify-content: space-between;
+			/* 左右间距等于间距大小 */
+			padding: 10px;
+			/* 设置padding以提高视觉效果 */
+		}
+
+		.textarea {
+			margin-top: 10upx;
+			width: 100%;
+			border: 1rpx solid red;
+			min-height: 100upx;
+			line-height: 20px;
+		}
+	</style>

ファイルの差分が大きいため隠しています
+ 1024 - 0
pages/oldrenovation/overhead/newoverhead.vue


+ 6 - 5
pages/work/index.vue

@@ -275,7 +275,7 @@ border-radius: 50%; margin-right: 20rpx;">旧</view>
 			//二次弹窗 选择类型
 			showTypeSheet(item) {
 				if (this.projectType == 'MinYong') {
-					this.showPopup = !this.showPopup; //隐藏第一次弹窗
+					//this.showPopup = !this.showPopup; //隐藏第一次弹窗
 					this.enginClassValue = item.dictValue; //二次节点赋值
 					const obj = {
 						enginClassValue: this.enginClassValue, //(拆旧管等 字典值)
@@ -284,7 +284,7 @@ border-radius: 50%; margin-right: 20rpx;">旧</view>
 
 					};
 					console.log(obj)
-					this.handleHiddenShare();
+					//this.handleHiddenShare();
 					// 室内
 					if (this.enginClassification == 'indoor_engin') {
 						uni.navigateTo({
@@ -294,6 +294,7 @@ border-radius: 50%; margin-right: 20rpx;">旧</view>
 					}
 					// 庭院
 					else if (this.enginClassification == 'courtyard') {
+						console.log(this.enginClassValue)
 						uni.navigateTo({
 							url: '/pages/oldrenovation/courtyard/courtyard?params=' + encodeURIComponent(JSON
 								.stringify(
@@ -311,7 +312,7 @@ border-radius: 50%; margin-right: 20rpx;">旧</view>
 					let obj = {
 						value: item.dictValue
 					};
-					this.handleHiddenShare();
+					//this.handleHiddenShare();
 					uni.navigateTo({
 						url: '/pages/enginproject/enginproject?params=' + encodeURIComponent(JSON
 							.stringify(
@@ -322,7 +323,7 @@ border-radius: 50%; margin-right: 20rpx;">旧</view>
 					let obj = {
 						value: item.dictValue
 					};
-					this.handleHiddenShare();
+					//this.handleHiddenShare();
 					uni.navigateTo({
 						url: '/pages/infrastructure/infrastructure?params=' + encodeURIComponent(JSON
 							.stringify(
@@ -333,7 +334,7 @@ border-radius: 50%; margin-right: 20rpx;">旧</view>
 					let obj = {
 						value: item.dictValue
 					};
-					this.handleHiddenShare();
+					//this.handleHiddenShare();
 					uni.navigateTo({
 						url: '/pages/TopPipeWork/TopPipeWork?params=' + encodeURIComponent(JSON
 							.stringify(