| | |
| | | |
| | | <uni-forms ref="form" :modelValue="formData" validate-trigger="bind" err-show-type="undertext"> |
| | | <uni-group top="1"> |
| | | <view class="text-gray margin-bottom-lg">—————————— 基本信息 ——————————</view> |
| | | <view class="divider"><text>基本信息</text></view> |
| | | <!-- <view class="text-gray margin-bottom-lg">—————————— 基本信息 ——————————</view> --> |
| | | <uni-forms-item :label-width="80" name="num" label="工单号:"> |
| | | <uni-easyinput v-model="formData.orderNum" :disabled="true" /> |
| | | </uni-forms-item> |
| | |
| | | <uni-easyinput v-model="formData.remark" :disabled="true" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item :label-width="80" name="outNum" label="保养图片:"> |
| | | <view class="grid col-4 grid-square flex-sub"> |
| | | <view class="bg-img" v-for="(item,index) in imgList" :key="index" @tap="ViewImage" |
| | | :data-url="imgList[index]"> |
| | | <image :src="imgList[index]" mode="aspectFill"></image> |
| | | <view class="cu-tag bg-red radius" @tap.stop="DelImg" :data-index="index"> |
| | | <text class='cuIcon-close'></text> |
| | | </view> |
| | | </view> |
| | | <view class="solids" v-if="imgList.length<1"> |
| | | <text class='cuIcon-cameraadd'></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <uni-file-picker limit="9" :value="fileLists" :image-styles="imageStyles" |
| | | :sourceType="sourceType" @select="select" @progress="progress" @success="success" |
| | | @fail="fail" @delete="deletea" :readonly="readonly" /> |
| | | </uni-forms-item> |
| | | |
| | | </uni-group> |
| | | </uni-forms> |
| | | <view class="text-gray margin-bottom-lg">—————————— 保养项信息 ——————————</view> |
| | | |
| | | <!-- <view class="text-gray margin-bottom-lg">—————————— 保养项信息 ——————————</view> --> |
| | | <view class="divider"><text>保养项信息</text></view> |
| | | <uni-collapse> |
| | | <uni-collapse-item :show-animation="true" :accordion="true" title="查看保养项" :border="false" |
| | | title-border="none"> |
| | |
| | | </view> |
| | | <view class="flex"> |
| | | <view class="flex-sub text-light bg-white padding-xs margin-xs radius">子保养项:</view> |
| | | <view class="flex-sub bg-white padding-xs margin-xs radius text-right" |
| | | v-if="item.subItemName!=null && item.subItemName.length>10"> |
| | | {{(item.subItemName).toString().substr(0,10)+'...'}} |
| | | </view> |
| | | |
| | | <view class="flex-sub bg-white padding-xs margin-xs radius text-right" v-else> |
| | | <view class="flex-sub bg-white padding-xs margin-xs radius text-right"> |
| | | {{item.subItemName}} |
| | | </view> |
| | | <!-- <view class="flex-sub bg-white padding-xs margin-xs radius text-right" |
| | | v-if="item.subItemName!=null && item.subItemName.length>10"> |
| | | {{(item.subItemName).toString().substr(0,10)+'...'}} |
| | | </view> --> |
| | | |
| | | <!-- <view class="flex-sub bg-white padding-xs margin-xs radius text-right" v-else> |
| | | {{item.subItemName}} |
| | | </view> --> |
| | | </view> |
| | | <view class="flex"> |
| | | <view class="flex-sub text-light bg-white padding-xs margin-xs radius">保养要求:</view> |
| | | <view class="flex-sub bg-white padding-xs margin-xs radius text-right" |
| | | v-if="item.itemDemand!=null && item.itemDemand.length>10"> |
| | | {{(item.itemDemand).toString().substr(0,10)+'...'}} |
| | | </view> |
| | | |
| | | <view class="flex-sub bg-white padding-xs margin-xs radius text-right" v-else> |
| | | <view class="flex-sub bg-white padding-xs margin-xs radius text-right"> |
| | | {{item.itemDemand}} |
| | | </view> |
| | | <!-- <zb-tooltip placement="left" ref="tooltip7" > |
| | | <view slot="content"> |
| | | <view class="flex-sub bg-white padding-xs margin-xs radius text-right"> |
| | | {{item.itemDemand}} |
| | | </view> |
| | | </view> |
| | | <view > |
| | | <button size="mini">更多</button > |
| | | </view> |
| | | </zb-tooltip> --> |
| | | <!-- <view class="flex-sub bg-white padding-xs margin-xs radius text-right" v-else> |
| | | {{item.itemDemand}} |
| | | </view> --> |
| | | </view> |
| | | <view class="flex"> |
| | | <view class="flex-sub text-light bg-white padding-xs margin-xs radius">是否报修:</view> |
| | | <view class="flex-sub bg-white padding-xs text-right margin-xs radius"> |
| | | <uni-data-select :localdata="item.type" v-model="item.reportFlag" |
| | | :disabled="item.istrue" /> |
| | | <uni-data-select :localdata="item.type" @change="handType($event, index)" |
| | | v-model="item.reportFlag" :disabled="item.istrue" /> |
| | | </view> |
| | | </view> |
| | | <view class="flex"> |
| | |
| | | </uni-collapse> |
| | | |
| | | |
| | | <uni-forms ref="form" :modelValue="ScanData" validate-trigger="bind" err-show-type="undertext"> |
| | | <uni-forms v-show="isShowSure" ref="form" :modelValue="ScanData" validate-trigger="bind" err-show-type="undertext"> |
| | | <uni-group top="1"> |
| | | <view class="text-gray margin-bottom-lg">—————————班组长确认信息——————————</view> |
| | | <uni-forms-item :label-width="80" required name="typeName" label="处理类型:"> |
| | | <view class="divider"><text>班组长确认信息</text></view> |
| | | <!-- <view class="text-gray margin-bottom-lg">—————————班组长确认信息——————————</view> --> |
| | | <uni-forms-item :label-width="80" required name="typeName" label="确认类型:"> |
| | | <uni-data-select v-model="ScanData.typeName" :localdata="ScanData.handlingType" |
| | | @change="changehandlingType" placeholder="请选择" :disabled="isShowSure" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item :label-width="80" required name="handlingSuggestion" label="处理意见:"> |
| | | <uni-forms-item :label-width="80" required name="handlingSuggestion" label="确认意见:"> |
| | | <uni-easyinput type="textarea" v-model="ScanData.handlingSuggestion" :disabled="isShowSure" /> |
| | | </uni-forms-item> |
| | | |
| | |
| | | <uni-forms v-show="isHideFist" ref="form" :modelValue="ScanData" validate-trigger="bind" |
| | | err-show-type="undertext"> |
| | | <uni-group top="1"> |
| | | <view class="text-gray margin-bottom-lg">—————————初验收信息——————————</view> |
| | | <view class="divider"><text>初验收信息</text></view> |
| | | |
| | | <uni-forms-item :label-width="80" required name="initialAcceptanceComment" label="初审意见:"> |
| | | <uni-easyinput type="textarea" v-model="ScanData.initialAcceptanceComment" placeholder="请输入意见" |
| | | :disabled="isShowLast" /> |
| | | </uni-forms-item> |
| | | |
| | | <uni-forms-item :label-width="80" name="randomInspectionFlag" label="抽检标记:"> |
| | | <uni-data-select v-model="ScanData.InspectionFlagName" |
| | | :localdata="ScanData.randomInspectionFlagList" @change="changehandlingInspectionFlag" |
| | | placeholder="请选择" :disabled="isShowLast"/> |
| | | </uni-forms-item> |
| | | <uni-forms-item :label-width="80" name="outNum" label="初验收附件:"> |
| | | <view class="grid col-4 grid-square flex-sub"> |
| | | <view class="bg-img" v-for="(item,index) in imgListinitialAccept" :key="index" |
| | | @tap="ViewImageFile" :data-url="imgListinitialAccept[index]"> |
| | | <image :src="imgListinitialAccept[index]" mode="aspectFill"></image> |
| | | <view class="cu-tag bg-red radius" @tap.stop="DelImgFile" :data-index="index"> |
| | | <text class='cuIcon-close'></text> |
| | | </view> |
| | | </view> |
| | | <view class="solids" @click="ChooseImageFile()" v-if="imgListinitialAccept.length<1"> |
| | | <text class='cuIcon-cameraadd'></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <uni-file-picker limit="9" :value="fileList" :image-styles="imageStyles" |
| | | :sourceType="sourceType" @select="selectFirst" @progress="progress" @success="success" |
| | | @fail="fail" @delete="deleteFirst" :readonly="readonlyFirst" /> |
| | | </uni-forms-item> |
| | | </uni-group> |
| | | </uni-forms> |
| | | <uni-forms v-show="isHideLast" ref="form" :modelValue="ScanData" validate-trigger="bind" |
| | | err-show-type="undertext"> |
| | | <uni-group top="1"> |
| | | <view class="text-gray margin-bottom-lg">—————————终验收信息——————————</view> |
| | | <view class="divider"><text>终验收信息</text></view> |
| | | <uni-forms-item :label-width="80" required name="finalAcceptanceComment" label="终验收意见:"> |
| | | <uni-easyinput type="textarea" v-model="ScanData.finalAcceptanceComment" placeholder="请输入意见" |
| | | :disabled="isfinal" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item :label-width="80" name="finalFlagName" label="抽检标记:"> |
| | | <uni-data-select v-model="ScanData.finalFlagName" :localdata="ScanData.finalInspectionFlagList" |
| | | @change="changehandlingFinalFlag" placeholder="请选择" :disabled="isfinal" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item :label-width="80" name="outNum" label="终验收附件:"> |
| | | <view class="grid col-4 grid-square flex-sub"> |
| | | <view class="bg-img" v-for="(item,index) in imgListfinalAcceptanceFilesResult" :key="index" |
| | | @tap="ViewImageFinal" :data-url="imgListfinalAcceptanceFilesResult[index]"> |
| | | <image :src="imgListfinalAcceptanceFilesResult[index]" mode="aspectFill"></image> |
| | | <view class="cu-tag bg-red radius" @tap.stop="DelImgFinal" :data-index="index"> |
| | | <text class='cuIcon-close'></text> |
| | | </view> |
| | | </view> |
| | | <view class="solids" @click="ChooseImageFinal()" |
| | | v-if="imgListfinalAcceptanceFilesResult.length<1"> |
| | | <text class='cuIcon-cameraadd'></text> |
| | | </view> |
| | | </view> |
| | | |
| | | <uni-file-picker limit="9" :value="fileListFanl" :image-styles="imageStyles" |
| | | :sourceType="sourceType" @select="selectFirstFanl" @progress="progress" @success="success" |
| | | @fail="fail" @delete="deleteFanl" :readonly="readonlyFirstFanl" /> |
| | | </uni-forms-item> |
| | | </uni-group> |
| | | </uni-forms> |
| | |
| | | mixins: [MescrollMixin], // 使用mixin |
| | | data() { |
| | | return { |
| | | readonly: false, |
| | | readonlyFirstFanl: false, |
| | | readonlyFirst: false, |
| | | // 图片回显 |
| | | fileLists: [], |
| | | fileList: [], |
| | | fileListFanl: [], |
| | | // 上传图片的样式 |
| | | imageStyles: { |
| | | width: 90, |
| | | height: 90, |
| | | }, |
| | | // uni.chooseImage值,从相册选择,拍摄 |
| | | sourceType: ['album', 'camera'], |
| | | title: '', |
| | | isShowBtn: true, |
| | | isHideLast: false, |
| | |
| | | equipmentList: [], |
| | | uploadUrl: "/sys/common/upload", |
| | | ScanData: { |
| | | InspectionFlagName: '', |
| | | finalFlagName: '', |
| | | typeName: '', |
| | | initialAcceptanceComment: '', |
| | | handlingType: [{ |
| | |
| | | value: "2" |
| | | } |
| | | ], |
| | | randomInspectionFlagList: [{ |
| | | text: "否", |
| | | value: '0' |
| | | }, |
| | | { |
| | | text: "是", |
| | | value: '1' |
| | | } |
| | | ], |
| | | finalInspectionFlagList: [{ |
| | | text: "否", |
| | | value: '0' |
| | | }, |
| | | { |
| | | text: "是", |
| | | value: '1' |
| | | } |
| | | ], |
| | | handlingSuggestion: '' |
| | | }, |
| | | formData: { |
| | | avatar: [], |
| | | avatarFile: [], |
| | | avatarFinal: [], |
| | | initialAcceptanceFiles: [], |
| | | finalAcceptanceFiles: [], |
| | | id: '', |
| | | maintenanceStatus: '' |
| | | }, |
| | |
| | | url: { |
| | | upload: "/eam/sysFiles/batch_upload", |
| | | stallList: "/eam/weekMaintenanceOrder/queryById", |
| | | // getEquipmentList: "eam/equipment/asyncLoadEquipment", |
| | | getEquipmentList:'eam/equipment/list', |
| | | getEquipmentList: 'eam/equipment/list', |
| | | BaoList: '/eam/weekMaintenanceOrderDetail/queryList', |
| | | approval: 'eam/weekMaintenanceOrder/approval' |
| | | }, |
| | |
| | | msg1Title: "", |
| | | procInstId: '', |
| | | values: '', |
| | | flag: '', |
| | | imageFiles: '', |
| | | imageObjectInIt: [], |
| | | imageFilesList: [], |
| | | imageObjectFinal: [], |
| | | imageFilesnitialAcceptList: [] |
| | | } |
| | | }, |
| | |
| | | }, |
| | | onLoad(options) { |
| | | const annItem = JSON.parse(decodeURIComponent(options.item)); |
| | | this.flag = options.flag |
| | | console.log(this.flag) |
| | | this.variables = annItem.variables |
| | | this.id = annItem.dataId |
| | | this.taskId = annItem.id |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | changehandlingFinalFlag(e) { |
| | | this.ScanData.finalFlagName = e; |
| | | }, |
| | | changehandlingType(e) { |
| | | this.ScanData.typeName = e; |
| | | }, |
| | | changehandlingInspectionFlag(e) { |
| | | this.ScanData.InspectionFlagName = e; |
| | | }, |
| | | handType(e, index) { |
| | | console.log(e) |
| | | |
| | | }, |
| | | ProductionTask() { |
| | | if (this.formData.maintenanceStatus == 'WAIT_FINAL_ACCEPTANCE') { |
| | |
| | | return false; |
| | | } |
| | | } |
| | | if (this.formData.maintenanceStatus == 'WAIT_CONFIRM' && this.flag != 'task') { |
| | | |
| | | if (this.ScanData.typeName == undefined || this.ScanData.typeName == null || this.ScanData.typeName == |
| | | '') { |
| | | |
| | | if (this.ScanData.typeName == undefined || this.ScanData.typeName == null || this.ScanData.typeName == |
| | | '') { |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '确认类型不能为空' |
| | | }); |
| | | return false; |
| | | } |
| | | if (this.ScanData.handlingSuggestion == undefined || this.ScanData.handlingSuggestion == null || this |
| | | .ScanData.handlingSuggestion == |
| | | '') { |
| | | |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '处理类型不能为空' |
| | | }); |
| | | return false; |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '确认意见不能为空' |
| | | }); |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | if (this.ScanData.handlingSuggestion == undefined || this.ScanData.handlingSuggestion == null || this |
| | | .ScanData.handlingSuggestion == |
| | | '') { |
| | | |
| | | uni.showToast({ |
| | | icon: 'none', |
| | | title: '处理意见不能为空' |
| | | }); |
| | | return false; |
| | | } |
| | | uni.showLoading({ |
| | | mask: true, |
| | | title: "加载中....", |
| | | }) |
| | | this.$http.put(this.url.approval, { |
| | | finalAcceptanceFilesResult: this.formData.avatarFinal, |
| | | finalAcceptanceComment: this.ScanData.finalAcceptanceComment, |
| | |
| | | confirmDealType: this.ScanData.typeName, |
| | | id: this.formData.id, |
| | | dataId: this.id, |
| | | randomInspectionFlag: this.ScanData.InspectionFlagName, |
| | | instanceId: this.procInstId, |
| | | tableDetailList: this.partTakeAdviceDetailList, |
| | | taskId: this.taskId, |
| | | userId: this.assignee, |
| | | finalRandomInspectionFlag: this.ScanData.finalFlagName, |
| | | maintenanceDate: this.formData.maintenanceDate, |
| | | equipmentId: this.formData.num, |
| | | imageFilesResult: this.imageFilesList, |
| | |
| | | standardId: this.formData.standardId, |
| | | standardName: this.formData.standardName |
| | | }).then(res => { |
| | | console.log(res) |
| | | this.$tip.loaded(); |
| | | uni.hideLoading() |
| | | if (res.data.success) { |
| | | uni.showToast({ |
| | | icon: "success", |
| | |
| | | this.partTakeAdviceDetailList[index].istrue = true; |
| | | } |
| | | }, |
| | | // getEquipment() { |
| | | // this.$http.get(this.url.getEquipmentList).then(res => { |
| | | // //设置列表数据 |
| | | // if (res.data.success) { |
| | | // this.equipmentList = res.data.result |
| | | // } else { |
| | | // uni.showToast({ |
| | | // icon: "error", |
| | | // title: res.data.message, |
| | | // duration: 2000 |
| | | // }); |
| | | |
| | | // } |
| | | // }).catch(() => { |
| | | // this.$tip.error("联网失败") |
| | | // }) |
| | | // }, |
| | | getEquipment() { |
| | | this.$http.get(this.url.getEquipmentList, { |
| | | params: { |
| | | pageNo: 1, |
| | | pageSize: 9999, |
| | | order: 'desc', |
| | | column: 'createTime' |
| | | }, |
| | | |
| | | }).then(res => { |
| | | //设置列表数据 |
| | | if (res.data.success) { |
| | | this.equipmentList = res.data.result.records |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "error", |
| | | title: res.data.message, |
| | | duration: 2000 |
| | | }); |
| | | |
| | | } |
| | | }).catch(() => { |
| | | this.$tip.error("联网失败") |
| | | }) |
| | | }, |
| | | getEquipment() { |
| | | this.$http.get(this.url.getEquipmentList, { |
| | | params: { |
| | | pageNo: 1, |
| | | pageSize: 9999, |
| | | order: 'desc', |
| | | column: 'createTime' |
| | | }, |
| | | |
| | | }).then(res => { |
| | | //设置列表数据 |
| | | if (res.data.success) { |
| | | this.equipmentList = res.data.result.records |
| | | } else { |
| | | uni.showToast({ |
| | | icon: "error", |
| | | title: res.data.message, |
| | | duration: 2000 |
| | | }); |
| | | |
| | | } |
| | | }).catch(() => { |
| | | this.$tip.error("联网失败") |
| | | }) |
| | | }, |
| | | getList() { |
| | | this.$http.get(this.url.BaoList, { |
| | | params: { |
| | |
| | | ]; // 新字段,值为一个空数组 |
| | | item.type = [{ |
| | | text: "否", |
| | | value: 0 |
| | | value: '0' |
| | | }, |
| | | { |
| | | text: "是", |
| | | value: 1 |
| | | value: '1' |
| | | } |
| | | ]; // 新字段,值为一个空数组 |
| | | item.istrue = true; |
| | |
| | | }) |
| | | }, |
| | | |
| | | ChooseImageFinal() { |
| | | var that = this; |
| | | uni.chooseImage({ |
| | | count: 4, |
| | | sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 |
| | | sourceType: ['album'], // 从相册选择 |
| | | success: (res) => { |
| | | // 存储选择的图片路径 |
| | | that.imgListfinalAcceptanceFilesResult = res.tempFilePaths; |
| | | |
| | | // 初始化 formData.avatar 为空字符串 |
| | | that.formData.avatarFinal = []; |
| | | |
| | | // 创建上传任务的 Promise 数组 |
| | | const uploadPromises = res.tempFilePaths.map((filePath, index) => { |
| | | return new Promise((resolve, reject) => { |
| | | that.$http.upload(that.url.upload, { |
| | | filePath: filePath, |
| | | name: 'file' |
| | | }) |
| | | .then(uploadRes => { |
| | | // 假设服务器返回的结果中包含文件路径 |
| | | const filePath = uploadRes.data.result[0]; |
| | | this.formData.avatarFinal.push(filePath); |
| | | resolve(filePath); |
| | | }) |
| | | .catch(err => { |
| | | console.error('图片' + index + '上传失败:', err); |
| | | reject(err); |
| | | }); |
| | | }); |
| | | }); |
| | | |
| | | // 并发执行所有上传任务 |
| | | Promise.all(uploadPromises) |
| | | .then((uploadedFilePaths) => { |
| | | console.log('所有图片上传成功:', that.formData.avatarFinal); |
| | | selectFirst(e) { |
| | | const tempFilePaths = e.tempFilePaths; |
| | | uni.showLoading({ |
| | | title: '上传中...' |
| | | }); |
| | | const uploadPromises = tempFilePaths.map((filePath, index) => { |
| | | return new Promise((resolve, reject) => { |
| | | this.$http.upload(this.url.upload, { |
| | | filePath: filePath, |
| | | name: 'file' |
| | | }) |
| | | .catch((err) => { |
| | | console.error('图片上传失败:', err); |
| | | that.$tip.error('图片上传失败'); |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | ChooseImageFile() { |
| | | var that = this; |
| | | uni.chooseImage({ |
| | | count: 4, |
| | | sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 |
| | | sourceType: ['album'], // 从相册选择 |
| | | success: (res) => { |
| | | // 存储选择的图片路径 |
| | | that.imgListinitialAccept = res.tempFilePaths; |
| | | |
| | | // 初始化 formData.avatar 为空字符串 |
| | | that.formData.avatarFile = []; |
| | | |
| | | // 创建上传任务的 Promise 数组 |
| | | const uploadPromises = res.tempFilePaths.map((filePath, index) => { |
| | | return new Promise((resolve, reject) => { |
| | | that.$http.upload(that.url.upload, { |
| | | filePath: filePath, |
| | | name: 'file' |
| | | }) |
| | | .then(uploadRes => { |
| | | // 假设服务器返回的结果中包含文件路径 |
| | | const filePath = uploadRes.data.result[0]; |
| | | this.formData.avatarFile.push(filePath); |
| | | resolve(filePath); |
| | | }) |
| | | .catch(err => { |
| | | console.error('图片' + index + '上传失败:', err); |
| | | reject(err); |
| | | }); |
| | | }); |
| | | }); |
| | | |
| | | // 并发执行所有上传任务 |
| | | Promise.all(uploadPromises) |
| | | .then((uploadedFilePaths) => { |
| | | console.log('所有图片上传成功:', that.formData.avatarFile); |
| | | .then(uploadRes => { |
| | | // 假设服务器返回的结果中包含文件路径 |
| | | const serverFilePath = uploadRes.data.result[0]; |
| | | this.formData.avatarFile.push(serverFilePath); |
| | | resolve(uploadRes); // 返回结果给 Promise.all |
| | | }) |
| | | .catch((err) => { |
| | | console.error('图片上传失败:', err); |
| | | that.$tip.error('图片上传失败'); |
| | | .catch(err => { |
| | | console.error(`图片 ${index + 1} 上传失败:`, err); |
| | | reject(err); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | ChooseImage() { |
| | | var that = this; |
| | | uni.chooseImage({ |
| | | count: 4, |
| | | sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 |
| | | sourceType: ['album'], // 从相册选择 |
| | | success: (res) => { |
| | | // 存储选择的图片路径 |
| | | that.imgList = res.tempFilePaths; |
| | | |
| | | // 初始化 formData.avatar 为空字符串 |
| | | that.formData.avatar = []; |
| | | |
| | | // 创建上传任务的 Promise 数组 |
| | | const uploadPromises = res.tempFilePaths.map((filePath, index) => { |
| | | return new Promise((resolve, reject) => { |
| | | that.$http.upload(that.url.upload, { |
| | | filePath: filePath, |
| | | name: 'file' |
| | | }) |
| | | .then(uploadRes => { |
| | | // 假设服务器返回的结果中包含文件路径 |
| | | const filePath = uploadRes.data.result[0]; |
| | | this.formData.avatar.push(filePath); |
| | | resolve(filePath); |
| | | }) |
| | | .catch(err => { |
| | | console.error('图片' + index + '上传失败:', err); |
| | | reject(err); |
| | | }); |
| | | }); |
| | | Promise.all(uploadPromises) |
| | | .then(() => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: '全部上传成功' |
| | | }); |
| | | |
| | | // 并发执行所有上传任务 |
| | | Promise.all(uploadPromises) |
| | | .then((uploadedFilePaths) => { |
| | | console.log('所有图片上传成功:', that.formData.avatar); |
| | | }) |
| | | .catch(err => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: '部分上传失败111', |
| | | icon: 'none' |
| | | }); |
| | | console.error('上传异常:', err); |
| | | }); |
| | | }, |
| | | selectFirstFanl(e) { |
| | | const tempFilePaths = e.tempFilePaths; |
| | | uni.showLoading({ |
| | | title: '上传中...' |
| | | }); |
| | | const uploadPromises = tempFilePaths.map((filePath, index) => { |
| | | return new Promise((resolve, reject) => { |
| | | this.$http.upload(this.url.upload, { |
| | | filePath: filePath, |
| | | name: 'file' |
| | | }) |
| | | .catch((err) => { |
| | | console.error('图片上传失败:', err); |
| | | that.$tip.error('图片上传失败'); |
| | | .then(uploadRes => { |
| | | // 假设服务器返回的结果中包含文件路径 |
| | | const serverFilePath = uploadRes.data.result[0]; |
| | | this.formData.avatarFinal.push(serverFilePath); |
| | | resolve(uploadRes); // 返回结果给 Promise.all |
| | | }) |
| | | .catch(err => { |
| | | console.error(`图片 ${index + 1} 上传失败:`, err); |
| | | reject(err); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | Promise.all(uploadPromises) |
| | | .then(() => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: '全部上传成功' |
| | | }); |
| | | }) |
| | | .catch(err => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: '部分上传失败222', |
| | | icon: 'none' |
| | | }); |
| | | console.error('上传异常:', err); |
| | | }); |
| | | }, |
| | | ViewImageFinal(e) { |
| | | uni.previewImage({ |
| | | urls: this.imgListfinalAcceptanceFilesResult, |
| | | current: e.currentTarget.dataset.url |
| | | select(e) { |
| | | const tempFilePaths = e.tempFilePaths; |
| | | uni.showLoading({ |
| | | title: '上传中...' |
| | | }); |
| | | }, |
| | | ViewImage(e) { |
| | | uni.previewImage({ |
| | | urls: this.imgList, |
| | | current: e.currentTarget.dataset.url |
| | | const uploadPromises = tempFilePaths.map((filePath, index) => { |
| | | return new Promise((resolve, reject) => { |
| | | this.$http.upload(this.url.upload, { |
| | | filePath: filePath, |
| | | name: 'file' |
| | | }) |
| | | .then(uploadRes => { |
| | | // 假设服务器返回的结果中包含文件路径 |
| | | const serverFilePath = uploadRes.data.result[0]; |
| | | this.formData.avatar.push(serverFilePath); |
| | | resolve(uploadRes); // 返回结果给 Promise.all |
| | | }) |
| | | .catch(err => { |
| | | console.error(`图片 ${index + 1} 上传失败:`, err); |
| | | reject(err); |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | ViewImageFile(e) { |
| | | uni.previewImage({ |
| | | urls: this.imgListinitialAccept, |
| | | current: e.currentTarget.dataset.url |
| | | }); |
| | | }, |
| | | DelImgFinal(e) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '确定要删除这段回忆吗?', |
| | | cancelText: '再看看', |
| | | confirmText: '再见', |
| | | success: res => { |
| | | if (res.confirm) { |
| | | this.imgListfinalAcceptanceFilesResult.splice(e.currentTarget.dataset.index, 1) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | DelImgFile(e) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '确定要删除这段回忆吗?', |
| | | cancelText: '再看看', |
| | | confirmText: '再见', |
| | | success: res => { |
| | | if (res.confirm) { |
| | | this.imgListinitialAccept.splice(e.currentTarget.dataset.index, 1) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | DelImg(e) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '确定要删除这段回忆吗?', |
| | | cancelText: '再看看', |
| | | confirmText: '再见', |
| | | success: res => { |
| | | if (res.confirm) { |
| | | this.imgList.splice(e.currentTarget.dataset.index, 1) |
| | | } |
| | | } |
| | | }) |
| | | |
| | | Promise.all(uploadPromises) |
| | | .then(() => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: '全部上传成功' |
| | | }); |
| | | }) |
| | | .catch(err => { |
| | | uni.hideLoading(); |
| | | uni.showToast({ |
| | | title: '部分上传失败', |
| | | icon: 'none' |
| | | }); |
| | | console.error('上传异常:', err); |
| | | }); |
| | | }, |
| | | |
| | | // 删除 |
| | | deletea(e) { |
| | | console.log('删除图片', e); |
| | | }, |
| | | |
| | | // 删除 |
| | | deleteFirst(e) { |
| | | console.log('删除图片', e); |
| | | }, |
| | | |
| | | deleteFanl(e) { |
| | | console.log('删除图片', e); |
| | | }, |
| | | upCallback() { |
| | | console.log(configService.staticURL) |
| | | this.$http.get(this.url.stallList, { |
| | |
| | | this.formData.maintenanceDate = this.announcement1.maintenanceDate |
| | | this.formData.remark = this.announcement1.remark |
| | | this.ScanData.finalAcceptanceComment = this.announcement1.finalAcceptanceComment |
| | | if (this.announcement1.randomInspectionFlag != null) { |
| | | this.ScanData.InspectionFlagName = this.announcement1.randomInspectionFlag |
| | | } |
| | | |
| | | if (this.announcement1.finalRandomInspectionFlag != null) { |
| | | this.ScanData.finalFlagName = this.announcement1.finalRandomInspectionFlag |
| | | } |
| | | this.formData.maintenanceStatus = this.announcement1.maintenanceStatus |
| | | |
| | | switch (this.formData.maintenanceStatus) { |
| | | /** |
| | | * 初检 |
| | | */ |
| | | case 'WAIT_INITIAL_ACCEPTANCE': |
| | | this.title = '初检' |
| | | this.isShowSure = true; |
| | | this.isHideFist = true; |
| | | if (this.flag == 'task') { |
| | | this.title = '详情' |
| | | this.readonly = true; |
| | | this.readonlyFirst = true; |
| | | this.isShowSure = true; |
| | | this.isHideFist = true; |
| | | this.isShowLast = true; |
| | | this.isShowBtn = false; |
| | | } else { |
| | | this.title = '初检' |
| | | this.readonly = true |
| | | this.isShowSure = true; |
| | | this.isHideFist = true; |
| | | } |
| | | |
| | | break |
| | | /** |
| | | * 终验 |
| | | */ |
| | | case 'WAIT_FINAL_ACCEPTANCE': |
| | | this.title = '终验' |
| | | this.isHideFist = true; |
| | | this.isShowLast = true; |
| | | this.isShowSure = true; |
| | | this.isHideLast = true; |
| | | if (this.flag == 'task') { |
| | | this.title = '详情' |
| | | this.readonly = true |
| | | this.readonlyFirst = true |
| | | this.isHideFist = true; |
| | | this.isShowLast = true; |
| | | this.isShowSure = true; |
| | | this.isHideLast = true; |
| | | this.isShowBtn = false; |
| | | this.isfinal = true; |
| | | this.readonlyFirstFanl = true; |
| | | } else { |
| | | this.title = '设能部终验' |
| | | this.readonly = true |
| | | this.readonlyFirst = true |
| | | this.isHideFist = true; |
| | | this.isShowLast = true; |
| | | this.isShowSure = true; |
| | | this.isHideLast = true; |
| | | } |
| | | |
| | | break |
| | | /** |
| | | * 执行 |
| | | */ |
| | | case 'WAIT_CONFIRM': |
| | | this.title = '执行' |
| | | this.isHideLast = false |
| | | this.isHideFist = false |
| | | this.isShowBtn=false |
| | | this.isShowSure=true |
| | | |
| | | if (this.flag == 'task') { |
| | | this.title = '详情' |
| | | this.readonly = true |
| | | this.isHideLast = false |
| | | this.isHideFist = false |
| | | this.isShowBtn = false |
| | | this.isShowSure = true |
| | | } else { |
| | | this.title = '班组长确认' |
| | | this.isHideLast = false |
| | | this.readonly = true |
| | | this.isHideFist = false |
| | | this.isShowBtn = true |
| | | this.isShowSure = false |
| | | } |
| | | |
| | | break |
| | | case 'COMPLETE': |
| | | this.isShowSure = true; |
| | | this.isShowSure = true |
| | | this.isHideLast = true |
| | | this.isHideFist = true |
| | | this.isShowLast = true |
| | | this.isfinal = true |
| | | this.readonlyFirst = true |
| | | this.readonly = true |
| | | this.readonlyFirstFanl = true |
| | | this.isShowBtn = false |
| | | this.title = '详情' |
| | | break |
| | | |
| | | case 'UNDER_MAINTENANCE': |
| | | |
| | | this.isfinal = true |
| | | this.readonlyFirst = true |
| | | this.readonly = true |
| | | this.readonlyFirstFanl = true |
| | | this.isShowBtn = false |
| | | this.title = '详情' |
| | | break |
| | | |
| | | } |
| | | this.ScanData.initialAcceptanceComment = this.announcement1.initialAcceptanceComment |
| | | this.ScanData.typeName = this.announcement1.confirmDealType |
| | | this.formData.id = this.announcement1.id |
| | | this.ScanData.handlingSuggestion = this.announcement1.confirmComment |
| | | this.formData.avatar = this.announcement1.imageFiles |
| | | this.imageFilesList = JSON.parse(this.formData.avatar) |
| | | const imageObjects = JSON.parse(this.formData.avatar); |
| | | // 提取 filePath 并拼接 IP 和端口 |
| | | this.imgList = imageObjects.map(imageObj => { |
| | | return `${this.ipAndPort}${imageObj.filePath}`; |
| | | }); |
| | | this.formData.avatarFile = this.announcement1.initialAcceptanceFiles, |
| | | this.imageFilesnitialAcceptList = JSON.parse(this.formData.avatarFile) |
| | | const imageObjectInIt = JSON.parse(this.formData.avatarFile); |
| | | // 提取 filePath 并拼接 IP 和端口 |
| | | this.imgListinitialAccept = imageObjectInIt.map(imageObj => { |
| | | return `${this.ipAndPort}${imageObj.filePath}`; |
| | | }); |
| | | if (this.announcement1.imageFiles) { |
| | | try { |
| | | const parsedDataFile = JSON.parse(this.announcement1.imageFiles); |
| | | this.imageFilesList = parsedDataFile; |
| | | |
| | | this.formData.avatarFinal = this.announcement1.finalAcceptanceFiles, |
| | | this.imageObjectFinal = JSON.parse(this.formData.avatarFinal) |
| | | const imageObjectFinal = JSON.parse(this.formData.avatarFinal); |
| | | // 提取 filePath 并拼接 IP 和端口 |
| | | this.imgListfinalAcceptanceFilesResult = imageObjectFinal.map(imageObj => { |
| | | return `${this.ipAndPort}${imageObj.filePath}`; |
| | | }); |
| | | this.imgList = parsedDataFile.map(imageObj => { |
| | | return `${this.ipAndPort}${imageObj.filePath}`; |
| | | }); |
| | | |
| | | this.fileLists = this.imgList.map(url => ({ |
| | | url: url, |
| | | extname: 'png', |
| | | name: 'eam' |
| | | })); |
| | | } catch (error) { |
| | | console.error('JSON 解析失败:', error); |
| | | this.imageObjectFinal = []; |
| | | this.imgListfinalAcceptanceFilesResult = []; |
| | | this.fileListFanl = []; |
| | | } |
| | | } else { |
| | | // 当值为 null 或空字符串时初始化为空数组 |
| | | this.imageObjectFinal = []; |
| | | this.imgListfinalAcceptanceFilesResult = []; |
| | | this.fileListFanl = []; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | if (this.announcement1.initialAcceptanceFiles) { |
| | | try { |
| | | const parsedDataIn = JSON.parse(this.announcement1.initialAcceptanceFiles); |
| | | this.imageObjectInIt = parsedDataIn; |
| | | |
| | | this.imgListinitialAccept = parsedDataIn.map(imageObj => { |
| | | return `${this.ipAndPort}${imageObj.filePath}`; |
| | | }); |
| | | |
| | | this.fileList = this.imgListinitialAccept.map(url => ({ |
| | | url: url, |
| | | extname: 'png', |
| | | name: 'eam' |
| | | })); |
| | | } catch (error) { |
| | | console.error('JSON 解析失败:', error); |
| | | this.imageObjectInIt = []; |
| | | this.imgListinitialAccept = []; |
| | | this.fileList = []; |
| | | } |
| | | } else { |
| | | // 处理空值情况 |
| | | this.imageObjectInIt = []; |
| | | this.imgListinitialAccept = []; |
| | | this.fileList = []; |
| | | } |
| | | |
| | | |
| | | console.log('finalAcceptanceFiles:', this.announcement1.finalAcceptanceFiles); |
| | | |
| | | // 判断是否为 null 或 空字符串 |
| | | if (this.announcement1.finalAcceptanceFiles) { |
| | | try { |
| | | const parsedData = JSON.parse(this.announcement1.finalAcceptanceFiles); |
| | | this.imageObjectFinal = parsedData; |
| | | |
| | | this.imgListfinalAcceptanceFilesResult = parsedData.map(imageObj => { |
| | | return `${this.ipAndPort}${imageObj.filePath}`; |
| | | }); |
| | | |
| | | this.fileListFanl = this.imgListfinalAcceptanceFilesResult.map(url => ({ |
| | | url: url, |
| | | extname: 'png', |
| | | name: 'eam' |
| | | })); |
| | | } catch (error) { |
| | | console.error('JSON 解析失败:', error); |
| | | this.imageObjectFinal = []; |
| | | this.imgListfinalAcceptanceFilesResult = []; |
| | | this.fileListFanl = []; |
| | | } |
| | | } else { |
| | | // 当值为 null 或空字符串时初始化为空数组 |
| | | this.imageObjectFinal = []; |
| | | this.imgListfinalAcceptanceFilesResult = []; |
| | | this.fileListFanl = []; |
| | | } |
| | | |
| | | } |
| | | }).catch(() => { |
| | |
| | | margin-top: 85px; |
| | | height: auto; |
| | | } |
| | | |
| | | .divider { |
| | | display: flex; |
| | | align-items: center; |
| | | text-align: center; |
| | | color: gray; |
| | | /* 文字颜色 */ |
| | | margin: 20px 0; |
| | | /* 上下间距 */ |
| | | } |
| | | |
| | | .divider::before, |
| | | .divider::after { |
| | | content: ''; |
| | | flex: 1; |
| | | border-bottom: 1px solid gray; |
| | | /* 横线颜色 */ |
| | | margin: 0 16px; |
| | | /* 横线与文字之间的间距 */ |
| | | } |
| | | |
| | | .divider text { |
| | | white-space: nowrap; |
| | | /* 防止文字换行 */ |
| | | } |
| | | </style> |