Commit d0f9ccb8525060bbfce54e4cae055a8e81cc3565
1 parent
e2ea09c3
12345工单 问题上报
Showing
2 changed files
with
160 additions
and
26 deletions
pages/work/daily/reporting.vue
| @@ -6,7 +6,9 @@ | @@ -6,7 +6,9 @@ | ||
| 6 | <tui-input placeholder="请选择" label="养护道路" v-model="formData.roadName" disabled @click="pickerOpen(2)"></tui-input> | 6 | <tui-input placeholder="请选择" label="养护道路" v-model="formData.roadName" disabled @click="pickerOpen(2)"></tui-input> |
| 7 | <tui-input placeholder="请选择" label="养护组长" v-model="formData.leaderUserName" disabled @click="pickerOpen(3)"></tui-input> | 7 | <tui-input placeholder="请选择" label="养护组长" v-model="formData.leaderUserName" disabled @click="pickerOpen(3)"></tui-input> |
| 8 | <tui-input placeholder="请选择" label="具体位置" v-model="formData.lonLatAddress" disabled @click="openMap()"></tui-input> | 8 | <tui-input placeholder="请选择" label="具体位置" v-model="formData.lonLatAddress" disabled @click="openMap()"></tui-input> |
| 9 | - <tui-input placeholder="请选择" label="问题来源" v-model="formData.problemSourceName" disabled @click="pickerOpen(4)"></tui-input> | 9 | + |
| 10 | + <tui-input placeholder="请选择" label="问题来源" v-if="editDisabled" v-model="formData.problemSourceName" disabled></tui-input> | ||
| 11 | + <tui-input placeholder="请选择" label="问题来源" v-else v-model="formData.problemSourceName" disabled @click="pickerOpen(4)"></tui-input> | ||
| 10 | <tui-form-item label="紧急程度" :bottomBorder="false"> | 12 | <tui-form-item label="紧急程度" :bottomBorder="false"> |
| 11 | <tui-radio-group v-model="formData.pressingType"> | 13 | <tui-radio-group v-model="formData.pressingType"> |
| 12 | <view class="fs-flex"> | 14 | <view class="fs-flex"> |
| @@ -23,7 +25,7 @@ | @@ -23,7 +25,7 @@ | ||
| 23 | <tui-white-space></tui-white-space> | 25 | <tui-white-space></tui-white-space> |
| 24 | <tui-tab :tabs="tabList" scroll bold :leftGap="30" @change="tabChange"></tui-tab> | 26 | <tui-tab :tabs="tabList" scroll bold :leftGap="30" @change="tabChange"></tui-tab> |
| 25 | <tui-white-space></tui-white-space> | 27 | <tui-white-space></tui-white-space> |
| 26 | - <tui-upload v-show="currentIndex == 0" background="#fff" :width="210" :radius="10" :height="210" delColor="#333" custom :serverUrl="serverURL" :header="{'Authorization': userToken}" :limit="3" @complete="complete($event, 'imgs')"> | 28 | + <tui-upload v-show="currentIndex == 0" background="#fff" :value="imgsValue" :width="210" :radius="10" :height="210" delColor="#333" custom :serverUrl="serverURL" :header="{'Authorization': userToken}" :limit="3" @complete="complete($event, 'imgs')"> |
| 27 | <text class="fs-size__28 fs-color__subtitle fs-weight__400">问题图片</text> | 29 | <text class="fs-size__28 fs-color__subtitle fs-weight__400">问题图片</text> |
| 28 | </tui-upload> | 30 | </tui-upload> |
| 29 | <tui-upload v-show="currentIndex == 1" background="#fff" :width="210" :radius="10" :height="210" delColor="#333" custom :serverUrl="serverURL" :header="{'Authorization': userToken}" :limit="3" @complete="complete($event, 'streetImgList')"> | 31 | <tui-upload v-show="currentIndex == 1" background="#fff" :width="210" :radius="10" :height="210" delColor="#333" custom :serverUrl="serverURL" :header="{'Authorization': userToken}" :limit="3" @complete="complete($event, 'streetImgList')"> |
| @@ -41,7 +43,7 @@ | @@ -41,7 +43,7 @@ | ||
| 41 | </template> | 43 | </template> |
| 42 | 44 | ||
| 43 | <script> | 45 | <script> |
| 44 | -import { uploadURL } from '@/config/app' | 46 | +import { uploadURL, OSSURL } from '@/config/app' |
| 45 | import { apiCaseAdd, apiStreetList, apiRoadListByStreetId, apiLeaderList } from '@/api/work' | 47 | import { apiCaseAdd, apiStreetList, apiRoadListByStreetId, apiLeaderList } from '@/api/work' |
| 46 | import { apiTypeList } from '@/api/app' | 48 | import { apiTypeList } from '@/api/app' |
| 47 | const rules = [ | 49 | const rules = [ |
| @@ -110,12 +112,109 @@ export default { | @@ -110,12 +112,109 @@ export default { | ||
| 110 | serverURL: uploadURL, | 112 | serverURL: uploadURL, |
| 111 | currentIndex: 0, | 113 | currentIndex: 0, |
| 112 | tabList: ['问题图片', '街景图片', '远景图片'], | 114 | tabList: ['问题图片', '街景图片', '远景图片'], |
| 115 | + hotlinenumber:'', | ||
| 116 | + editDisabled:false, | ||
| 117 | + imgsValue:[], //初始化图片 | ||
| 113 | } | 118 | } |
| 114 | }, | 119 | }, |
| 115 | - onLoad() { | ||
| 116 | - this.getStreetList() | 120 | + onLoad(options) { |
| 121 | + this.getStreetList() | ||
| 117 | this.getLeaderList() | 122 | this.getLeaderList() |
| 118 | this.getTypeList() | 123 | this.getTypeList() |
| 124 | + this.hotlinenumber = options.hotlinenumber | ||
| 125 | + if(this.hotlinenumber){ | ||
| 126 | + | ||
| 127 | + | ||
| 128 | + // 1. 获取 eventChannel 实例 | ||
| 129 | + const eventChannel = this.getOpenerEventChannel(); | ||
| 130 | + | ||
| 131 | + // 2. 监听A页面发送的事件,接收大量数据 | ||
| 132 | + eventChannel.on('largeDataFromWorkOrder', (largeData) => { | ||
| 133 | + console.log('A页面传递的大量数据:', largeData); | ||
| 134 | + // 存储到 data 中供页面使用 | ||
| 135 | + // this.formData = largeData; | ||
| 136 | + this.editDisabled = true | ||
| 137 | + let largeData1 = { | ||
| 138 | + "searchEntities": null, | ||
| 139 | + "createBy": "吴宗刚", | ||
| 140 | + "createTime": "2025-09-08 22:48:39", | ||
| 141 | + "updateBy": "xcyl", | ||
| 142 | + "updateTime": "2025-09-09 19:56:56", | ||
| 143 | + "remark": null, | ||
| 144 | + "beginTime": null, | ||
| 145 | + "endTime": "2025-09-30 15:52:20", | ||
| 146 | + "exportType": null, | ||
| 147 | + "params": {}, | ||
| 148 | + "id": "5a76e18752f69dca1e98666aa93cc7c9", | ||
| 149 | + "hotlinenumber": "WO005_20250908224839", | ||
| 150 | + "casefile": null, | ||
| 151 | + "eventsouce": "12345", | ||
| 152 | + "citynum": "西城自己的-2250627-7777777", | ||
| 153 | + "regionnum": "西城园林-250627-7777777", | ||
| 154 | + "taskstate": "gdtype02", | ||
| 155 | + "ownership": "0", | ||
| 156 | + "casesource": "01", | ||
| 157 | + "department": "10002", | ||
| 158 | + "companyid": "10002", | ||
| 159 | + "companyVo": "西城园林", | ||
| 160 | + "street": "110102012000", | ||
| 161 | + "streetVo": "什刹海街道", | ||
| 162 | + "callName": "王虹云-西城自己创建", | ||
| 163 | + "callTel": "13581551620", | ||
| 164 | + "acceptcasetime": "2025-09-02 00:00:00", | ||
| 165 | + "address": "什刹海公园东门东侧道北", | ||
| 166 | + "content": "市民反映,西城区恭王府南门口东侧道北有一颗近百年的杨树,被连根斩了,希望查询财产去向、哪个部门砍伐的,是否是盗伐的,之前北京站前街也发生过类似的情况,希望核实,来电反映协调核实恭王府南门口东侧道北杨树被砍伐问题。市民反映,西城区恭王府南门口东侧道北有一颗近百年的杨树,被连根斩了,希望查询财产去向、哪个部门砍伐的,是否是盗伐的,之前北京站前街也发生过类似的情况,希望核实,来电反映协调核实恭王府南门口东侧道北杨树被砍伐问题。市民反映,西城区恭王府南门口东侧道北有一颗近百年的杨树,被连根斩了,希望查询财产去向、哪个部门砍伐的,是否是盗伐的,之前北京站前街也发生过类似的情况,希望核实,来电反映协调核实恭王府南门口东侧道北杨树被砍伐问题。市民反映,西城区恭王府南门口东侧道北有一颗近百年的杨树,被连根斩了,希望查询财产去向、哪个部门砍伐的,是否是盗伐的,之前北京站前街也发生过类似的情况,希望核实,来电反映协调核实恭王府南门口东侧道北杨树被砍伐问题。", | ||
| 167 | + "casepic": "https://test.jichengshanshui.com.cn:28310/yuanlin/alioss/yl/images/2025/09/08/af671146754be2596b65e87e544c481f.jpg", | ||
| 168 | + "dealuser": "xcyl严家齐巡查员", | ||
| 169 | + "dispatcher": "0", | ||
| 170 | + "dispperson": "368", | ||
| 171 | + "disppersonVo": "xcyl严家齐巡查员", | ||
| 172 | + "replyResult": null, | ||
| 173 | + "picResult1": null, | ||
| 174 | + "picResult2": null, | ||
| 175 | + "picResult3": null, | ||
| 176 | + "finishTime": null, | ||
| 177 | + "replayrtime": null, | ||
| 178 | + "ownercompany": null, | ||
| 179 | + "casetype": null, | ||
| 180 | + "handingresult": null, | ||
| 181 | + "resolvedesp": "是我的问题, 但就是不处理, 就这么着~!!!!!!", | ||
| 182 | + "rstResolvedesp": null, | ||
| 183 | + "dealBy": null, | ||
| 184 | + "dealTime": null, | ||
| 185 | + "replayBy": null, | ||
| 186 | + "replayTime": null, | ||
| 187 | + "ownershipBy": "xcyl", | ||
| 188 | + "ownershipTime": "2025-09-09 19:56:56", | ||
| 189 | + "reserve1": "1", | ||
| 190 | + "reserve2": null, | ||
| 191 | + "reserve3": null, | ||
| 192 | + "sysPhotoList": null | ||
| 193 | + } | ||
| 194 | + console.log(this.formData) | ||
| 195 | + this.formData.streetName = largeData.streetVo | ||
| 196 | + this.formData.streetId = largeData.street | ||
| 197 | + this.getRoadList( this.formData.streetId) | ||
| 198 | + this.formData.lonLatAddress = largeData.address | ||
| 199 | + this.formData.remark = largeData.content | ||
| 200 | + this.formData.problemSourceName = '12345工单' | ||
| 201 | + this.formData.problemSourceId = 2 | ||
| 202 | + this.formData.thirdWorkOrderNo = largeData.hotlinenumber | ||
| 203 | + | ||
| 204 | + // this.formData.imgs = largeData.casepic | ||
| 205 | + if(largeData.casepic){ | ||
| 206 | + let picData = largeData.casepic.replace(OSSURL, "") | ||
| 207 | + this.imgsValue = [picData] | ||
| 208 | + // this.formData.imgs.push({ | ||
| 209 | + // url: picData, // 接口返回的图片地址 | ||
| 210 | + // id: Date.now() // 用时间戳作为唯一标识 | ||
| 211 | + // }); | ||
| 212 | + } | ||
| 213 | + }); | ||
| 214 | + }else{ | ||
| 215 | + | ||
| 216 | + | ||
| 217 | + } | ||
| 119 | }, | 218 | }, |
| 120 | methods: { | 219 | methods: { |
| 121 | // 获取街道列表 | 220 | // 获取街道列表 |
| @@ -185,7 +284,21 @@ export default { | @@ -185,7 +284,21 @@ export default { | ||
| 185 | }, | 284 | }, |
| 186 | // 上传完成 | 285 | // 上传完成 |
| 187 | complete(e, type) { | 286 | complete(e, type) { |
| 188 | - if (e.status == 1) this.formData[type] = e.imgArr | 287 | + if (e.status == 1) { |
| 288 | + if(type == 'imgs'){ | ||
| 289 | + // 直接添加新图,不删除默认图 | ||
| 290 | + // this.imgsValue.push({ | ||
| 291 | + // url: event.url, // 接口返回的新图地址 | ||
| 292 | + // isDefault: false, | ||
| 293 | + // id: Date.now() // 时间戳作为唯一标识 | ||
| 294 | + // }); | ||
| 295 | + this.imgsValue = e.imgArr | ||
| 296 | + }else{ | ||
| 297 | + this.formData[type] = e.imgArr | ||
| 298 | + } | ||
| 299 | + | ||
| 300 | + console.log( this.formData[type]) | ||
| 301 | + } | ||
| 189 | }, | 302 | }, |
| 190 | // 提交 | 303 | // 提交 |
| 191 | onSubmit() { | 304 | onSubmit() { |
| @@ -194,11 +307,17 @@ export default { | @@ -194,11 +307,17 @@ export default { | ||
| 194 | uni.$tui.toast(res.errorMsg) | 307 | uni.$tui.toast(res.errorMsg) |
| 195 | return | 308 | return |
| 196 | } | 309 | } |
| 310 | + // 关键:提交所有图片(默认图 + 新图) | ||
| 311 | + // this.formData.imgs = this.imgsValue.map(item => item.url); | ||
| 312 | + this.formData.imgs = this.imgsValue | ||
| 197 | if (!this.formData.imgs.length || !this.formData.streetImgList.length || !this.formData.longRangeImgList.length) { | 313 | if (!this.formData.imgs.length || !this.formData.streetImgList.length || !this.formData.longRangeImgList.length) { |
| 198 | uni.$tui.toast('请上传图片') | 314 | uni.$tui.toast('请上传图片') |
| 199 | return | 315 | return |
| 200 | } | 316 | } |
| 201 | this.isLoading = true | 317 | this.isLoading = true |
| 318 | + | ||
| 319 | + | ||
| 320 | + | ||
| 202 | apiCaseAdd({data:{...this.formData}}).then(res => { | 321 | apiCaseAdd({data:{...this.formData}}).then(res => { |
| 203 | uni.$tui.toast('提交成功') | 322 | uni.$tui.toast('提交成功') |
| 204 | setTimeout(() => { uni.navigateBack() }, 1500) | 323 | setTimeout(() => { uni.navigateBack() }, 1500) |
pages/work/daily/workOrder.vue
| @@ -3,24 +3,25 @@ | @@ -3,24 +3,25 @@ | ||
| 3 | <z-paging ref="paging" v-model="dataList" @query="queryList" :auto="false" > | 3 | <z-paging ref="paging" v-model="dataList" @query="queryList" :auto="false" > |
| 4 | 4 | ||
| 5 | <view class="ul fs-p20"> | 5 | <view class="ul fs-p20"> |
| 6 | - <view class="li fs-bg__white fs-p30 fs-size__h4 fs-radius__sm fs-mt20" v-for="(item, index) in dataList"> | ||
| 7 | - <view @click="toDetails(item.planNo)"> | ||
| 8 | - <view class="fs-flex__between"> | ||
| 9 | - <view class="fs-weight__bold fs-flex1 fs-ellipsis">{{item.planName}}</view> | ||
| 10 | - <tui-text v-if="item.planStatus" text="已完成" type="success"></tui-text> | ||
| 11 | - <tui-text v-else text="未完成" type="danger"></tui-text> | 6 | + <view class="li fs-bg__white fs-p30 fs-size__h4 fs-radius__sm fs-mt20 cad-box-shadow" v-for="(item, index) in dataList" :key="'planName'+item.hotlinenumber"> |
| 7 | + <view @click="toReport(item)"> | ||
| 8 | +<!-- <view class="fs-flex__between">--> | ||
| 9 | +<!-- <view class="fs-weight__bold fs-flex1 fs-ellipsis">{{item.planName}}</view>--> | ||
| 10 | +<!-- <tui-text v-if="item.planStatus" text="已完成" type="success"></tui-text>--> | ||
| 11 | +<!-- <tui-text v-else text="未完成" type="danger"></tui-text>--> | ||
| 12 | +<!-- </view>--> | ||
| 13 | + <view class="fs-flex fs-flex__between fs-mt20"> | ||
| 14 | + <view class="fs-flex1 fs-ellipsis">编码:{{item.hotlinenumber}}</view> | ||
| 15 | + <view class="" style="color: #f00">待派单</view> | ||
| 12 | </view> | 16 | </view> |
| 13 | <view class="fs-flex fs-mt20"> | 17 | <view class="fs-flex fs-mt20"> |
| 14 | - <view class="fs-flex1">编码:{{item.hotlinenumber}}</view> | ||
| 15 | - <view class="fs-flex1">周期:{{item.levelValue}}{{item.cycleName}}</view> | 18 | + <view class="fs-flex1 fs-ellipsis">所在街道:{{item.streetVo}}</view> |
| 16 | </view> | 19 | </view> |
| 17 | <view class="fs-flex fs-mt20"> | 20 | <view class="fs-flex fs-mt20"> |
| 18 | - <view class="fs-flex1">养护类型:{{item.maintainTypeName}}</view> | ||
| 19 | - <view class="fs-flex1">养护等级:{{item.curingLevelName}}</view> | 21 | + <view class="fs-flex1 fs-ellipsis">详细地址:{{item.address}}{{item.address}}{{item.address}}</view> |
| 20 | </view> | 22 | </view> |
| 21 | <view class="fs-flex__between fs-mt20"> | 23 | <view class="fs-flex__between fs-mt20"> |
| 22 | - <view class="fs-flex1">计划次数:{{item.planNum}}</view> | ||
| 23 | - <view class="fs-flex1">完成次数:{{item.planFinishNum}}</view> | 24 | + <view class="fs-flex1 fs-ellipsis">截止日期:{{item.endTime}}</view> |
| 24 | </view> | 25 | </view> |
| 25 | </view> | 26 | </view> |
| 26 | 27 | ||
| @@ -74,12 +75,13 @@ export default { | @@ -74,12 +75,13 @@ export default { | ||
| 74 | }, | 75 | }, |
| 75 | methods: { | 76 | methods: { |
| 76 | // 获取巡检列表 | 77 | // 获取巡检列表 |
| 77 | - queryList() { | 78 | + queryList(pageNo, pageSize) { |
| 78 | const useCounter = useCounterStore() | 79 | const useCounter = useCounterStore() |
| 79 | console.log(useCounter.userInfo.userId) | 80 | console.log(useCounter.userInfo.userId) |
| 80 | const params = { | 81 | const params = { |
| 81 | dispperson:useCounter.userInfo.userId, | 82 | dispperson:useCounter.userInfo.userId, |
| 82 | - taskstate:'gdtype02' | 83 | + taskstate:'gdtype02', |
| 84 | + pageReq: {pageNum: pageNo, pageSize: pageSize}, | ||
| 83 | } | 85 | } |
| 84 | hotlinecaseList({data:params}).then(res => { | 86 | hotlinecaseList({data:params}).then(res => { |
| 85 | this.$refs.paging.complete(res.rows) | 87 | this.$refs.paging.complete(res.rows) |
| @@ -87,13 +89,26 @@ export default { | @@ -87,13 +89,26 @@ export default { | ||
| 87 | }, | 89 | }, |
| 88 | 90 | ||
| 89 | // 跳转详情 | 91 | // 跳转详情 |
| 90 | - toDetails(planno) { | ||
| 91 | - uni.$tui.href(`/pages/work/daily/inspection/details?planno=${planno}`) | 92 | + toReport(i) { |
| 93 | + // uni.$tui.href(`/pages/work/daily/work/reporting?hotlinenumber=${hotlinenumber}`) | ||
| 94 | + console.log(i) | ||
| 95 | + uni.navigateTo({ | ||
| 96 | + url:`/pages/work/daily/reporting?hotlinenumber=${i.hotlinenumber}`, // B页面路径 | ||
| 97 | + // 1. (可选)监听B页面的回调(如需双向通信) | ||
| 98 | + events: { | ||
| 99 | + sendBackData: (data) => { | ||
| 100 | + console.log('B页面回传的数据:', data); | ||
| 101 | + } | ||
| 102 | + }, | ||
| 103 | + // 2. 向B页面传递数据 | ||
| 104 | + success: (res) => { | ||
| 105 | + // 通过 eventChannel 发送数据,key 可自定义(如 "largeDataFromA") | ||
| 106 | + res.eventChannel.emit('largeDataFromWorkOrder', i); | ||
| 107 | + } | ||
| 108 | + }); | ||
| 109 | + | ||
| 92 | }, | 110 | }, |
| 93 | - // 跳转记录 | ||
| 94 | - toRecord(planno) { | ||
| 95 | - uni.$tui.href(`/pages/work/daily/inspection/record?planno=${planno}`) | ||
| 96 | - } | 111 | + |
| 97 | } | 112 | } |
| 98 | } | 113 | } |
| 99 | </script> | 114 | </script> |