|
@@ -0,0 +1,675 @@
|
|
|
|
+ <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')">
|
|
|
|
+ <view>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <span style="color: darkgray;">请选择工程周期
|
|
|
|
+
|
|
|
|
+ </span>
|
|
|
|
+ <image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <view v-else class="uni-list-cell-db" style="margin-top: 10;" @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)" style="margin-top: 10;"
|
|
|
|
+ @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" style="margin-top: 10;" @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" style="margin-top: 10;"
|
|
|
|
+ @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" style="margin-top: 10;" @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" style="border-bottom: 1px solid #f8f8f8;">
|
|
|
|
+ <view class="uni-list-cell-left">
|
|
|
|
+ 楼栋
|
|
|
|
+ </view>
|
|
|
|
+ <view v-if="this.isEmpty(this.LDValue.id)" class="uni-list-cell-db" style="margin-top: 10;"
|
|
|
|
+ @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" style="margin-top: 10;" @click="pickerShow('ld')">
|
|
|
|
+ <span style="color: black;">{{LDValue.name}}</span>
|
|
|
|
+ <image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="uni-list" style="margin-top: 10;">
|
|
|
|
+ <view class="container" style="border-bottom: 1px solid #f8f8f8;">
|
|
|
|
+ <view class="uni-list-cell-left">
|
|
|
|
+ 单元
|
|
|
|
+ </view>
|
|
|
|
+ <view v-if="this.isEmpty(this.DYValue.id)" class="uni-list-cell-db" style="margin-top: 10;"
|
|
|
|
+ @click="pickerShow('dy')">
|
|
|
|
+ <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" style="margin-top: 10;" @click="pickerShow('dy')">
|
|
|
|
+ <span style="color: black;">{{DYValue.name}}</span>
|
|
|
|
+ <image :src="loadImgSrc('icon_right.png')" class="to-right-icon"></image>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+
|
|
|
|
+ <view class="background" style="margin-top: 20px;margin-bottom: 20px;">
|
|
|
|
+ <view class="uni-list">
|
|
|
|
+ <view
|
|
|
|
+ style="font-size: 16px;margin-left: 10px;margin-top: 10px;display: flex; justify-content: space-between;margin-bottom: 10px;">
|
|
|
|
+ {{name}}
|
|
|
|
+
|
|
|
|
+ <span
|
|
|
|
+ style="color: blue;font-size: 14px; display: flex;justify-content:flex-end; margin-right: 10px;"
|
|
|
|
+ @click="history">历史</span>
|
|
|
|
+ </view>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="container" style="border-bottom: 1px solid #f8f8f8;">
|
|
|
|
+ <text>米 数</text>
|
|
|
|
+ <!-- style="margin-left: 10px;text-align: right;" -->
|
|
|
|
+ <input class="uni-input" type="number" v-model="inputIntegerNumberValue" maxlength="3"
|
|
|
|
+ style="text-align: center; border: 1px solid #00aaff; border-radius: 20rpx;"></input>
|
|
|
|
+ <text style="font-weight:bold;margin-left: 10px;margin-right: 10px;">.</text>
|
|
|
|
+ <input class="uni-input" type="number" v-model="inputDecimalNumberValue" maxlength="2"
|
|
|
|
+ style="text-align: center; border: 1px solid #00aaff; border-radius: 20rpx;"></input>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="container" style="color: #b2b2b2;">*开挖前照片</view>
|
|
|
|
+ <view 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="chooseimage()"
|
|
|
|
+ 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 class="container" style="color: #b2b2b2;">*下沟照片</view>
|
|
|
|
+ <view 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="chooseimage()"
|
|
|
|
+ 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 class="container" style="color: #b2b2b2;">*回填照片</view>
|
|
|
|
+ <view 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="chooseimage()"
|
|
|
|
+ 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 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>
|
|
|
|
+
|
|
|
|
+ <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>
|
|
|
|
+ </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,
|
|
|
|
+ getUnitList,
|
|
|
|
+ getHousesList,
|
|
|
|
+ addTearOldPipe,
|
|
|
|
+ getEnginMaterialQualityList,
|
|
|
|
+ getEnginSpecificationsList,
|
|
|
|
+ getRoomProjectList,
|
|
|
|
+ getRoomProjectId,
|
|
|
|
+ } from '@/api/common'
|
|
|
|
+ export default {
|
|
|
|
+ components: {
|
|
|
|
+ SelectPicker
|
|
|
|
+ },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ title: '',
|
|
|
|
+ name: '底腿',
|
|
|
|
+ // headers: {
|
|
|
|
+ // Authorization: "Bearer " + getToken()
|
|
|
|
+ // },
|
|
|
|
+ type: '',
|
|
|
|
+ open: false,
|
|
|
|
+ // reviewStatus: '', //是否可以点击
|
|
|
|
+ // objValue: '', //上一页面传过来的值 新增接口用
|
|
|
|
+ openDict: false,
|
|
|
|
+ selectList: [],
|
|
|
|
+ dictOptions: [],
|
|
|
|
+ imgArr: [],
|
|
|
|
+ XQValue: {},
|
|
|
|
+ XZQValue: {},
|
|
|
|
+ projectValue: {
|
|
|
|
+ 'dictValue': '0'
|
|
|
|
+ },
|
|
|
|
+ // LevelValue: {},
|
|
|
|
+ LDValue: {},
|
|
|
|
+ DYValue: {},
|
|
|
|
+ FJValue: {},
|
|
|
|
+ // FSValue: {},
|
|
|
|
+ // specificationValue: {}, //规格
|
|
|
|
+ // materialValue: {}, //材质
|
|
|
|
+ // brandValue: {}, //品牌
|
|
|
|
+ // doorValue: {}, //上门类型
|
|
|
|
+ // SelfClosValve: {}, //自闭阀类型
|
|
|
|
+ // materialList: '', //材质list
|
|
|
|
+ XQList: '',
|
|
|
|
+ LDList: '',
|
|
|
|
+ DYList: '',
|
|
|
|
+ FJList: '',
|
|
|
|
+ progress: 0, //上传图片进度百分比
|
|
|
|
+ loading: false,
|
|
|
|
+ // isCheck: true, //是否按照施工图纸施工
|
|
|
|
+ // inputNumberValue: '',
|
|
|
|
+ // inputIntegerNumberValue: '',
|
|
|
|
+ // inputDecimalNumberValue: '',
|
|
|
|
+ historyList: {}, //历史数据
|
|
|
|
+ inputNumberValue: '',
|
|
|
|
+ inputIntegerNumberValue: '',
|
|
|
|
+ inputDecimalNumberValue: '',
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ 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: {
|
|
|
|
+ //判断是否选择
|
|
|
|
+ isEmpty(str) {
|
|
|
|
+ return (!str || 0 === str.length);
|
|
|
|
+ },
|
|
|
|
+ history() {
|
|
|
|
+ if (this.isEmpty(this.LDValue.id)) {
|
|
|
|
+ this.$modal.msg('请选择楼栋')
|
|
|
|
+ } else {
|
|
|
|
+ this.$modal.msg('历史')
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ submit() {
|
|
|
|
+ if (this.isEmpty(this.inputIntegerNumberValue)) {
|
|
|
|
+ this.$modal.msg("请输入米数")
|
|
|
|
+ } else {
|
|
|
|
+ if (this.isEmpty(this.inputDecimalNumberValue)) {
|
|
|
|
+ this.inputNumberValue = this.inputIntegerNumberValue;
|
|
|
|
+ } else {
|
|
|
|
+ this.inputNumberValue = this.inputIntegerNumberValue + "." + this.inputDecimalNumberValue;
|
|
|
|
+ }
|
|
|
|
+ //提交接口执行逻辑
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 显示历史弹窗
|
|
|
|
+ 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)
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ pickerShow(e) {
|
|
|
|
+ this.type = e; //赋值类型
|
|
|
|
+ // 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;
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } 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;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ } else if (e == 'dy') { //单元
|
|
|
|
+ if (this.isEmpty(this.LDValue.id)) {
|
|
|
|
+ this.$modal.msg('请选择楼栋')
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ this.open = true;
|
|
|
|
+ this.selectList = this.DYList;
|
|
|
|
+ }
|
|
|
|
+ } else if (e == 'fj') { //房间
|
|
|
|
+ if (this.isEmpty(this.DYValue.id)) {
|
|
|
|
+ this.$modal.msg('请选择单元')
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ this.open = true;
|
|
|
|
+ this.selectList = this.FJList;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ changeSelectDict(item, index) {
|
|
|
|
+ this.openDict = false;
|
|
|
|
+ if (this.type == 'xzq') {
|
|
|
|
+ this.XZQValue = item;
|
|
|
|
+
|
|
|
|
+ //根据行政区id获取小区数据
|
|
|
|
+ this.XQValue = ''; //重置小区数据
|
|
|
|
+ this.LDValue = ''; //重置楼栋数据
|
|
|
|
+ this.DYValue = ''; //重置单元数据
|
|
|
|
+ this.FJValue = ''; //重置房间数据
|
|
|
|
+ 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 == 'xq') {
|
|
|
|
+ this.XQValue = item;
|
|
|
|
+ //根据小区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;
|
|
|
|
+ //根据楼栋ID 获取单元数据
|
|
|
|
+ this.DYValue = ''; //重置单元数据
|
|
|
|
+ this.FJValue = ''; //重置房间数据
|
|
|
|
+ getUnitList(item.id).then(res => {
|
|
|
|
+ this.DYList = res.data
|
|
|
|
+ // console.log("单元=", res)
|
|
|
|
+ })
|
|
|
|
+ } else if (this.type == 'dy') {
|
|
|
|
+ this.DYValue = item;
|
|
|
|
+ //根据单元数据 获取房间数据
|
|
|
|
+ this.FJValue = ''; //重置房间数据
|
|
|
|
+ getHousesList(item.id).then(res => {
|
|
|
|
+ this.FJList = res.data
|
|
|
|
+ // console.log("房间=", res)
|
|
|
|
+ })
|
|
|
|
+ } else if (this.type == 'fj') {
|
|
|
|
+ this.FJValue = item;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ //关闭弹窗
|
|
|
|
+ close(e) {
|
|
|
|
+ this.open = false
|
|
|
|
+ },
|
|
|
|
+ //关闭弹窗
|
|
|
|
+ closeDict(e) {
|
|
|
|
+ this.openDict = false
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ </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>
|