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 | 6 | <tui-input placeholder="请选择" label="养护道路" v-model="formData.roadName" disabled @click="pickerOpen(2)"></tui-input> |
| 7 | 7 | <tui-input placeholder="请选择" label="养护组长" v-model="formData.leaderUserName" disabled @click="pickerOpen(3)"></tui-input> |
| 8 | 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 | 12 | <tui-form-item label="紧急程度" :bottomBorder="false"> |
| 11 | 13 | <tui-radio-group v-model="formData.pressingType"> |
| 12 | 14 | <view class="fs-flex"> |
| ... | ... | @@ -23,7 +25,7 @@ |
| 23 | 25 | <tui-white-space></tui-white-space> |
| 24 | 26 | <tui-tab :tabs="tabList" scroll bold :leftGap="30" @change="tabChange"></tui-tab> |
| 25 | 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 | 29 | <text class="fs-size__28 fs-color__subtitle fs-weight__400">问题图片</text> |
| 28 | 30 | </tui-upload> |
| 29 | 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 | 43 | </template> |
| 42 | 44 | |
| 43 | 45 | <script> |
| 44 | -import { uploadURL } from '@/config/app' | |
| 46 | +import { uploadURL, OSSURL } from '@/config/app' | |
| 45 | 47 | import { apiCaseAdd, apiStreetList, apiRoadListByStreetId, apiLeaderList } from '@/api/work' |
| 46 | 48 | import { apiTypeList } from '@/api/app' |
| 47 | 49 | const rules = [ |
| ... | ... | @@ -110,12 +112,109 @@ export default { |
| 110 | 112 | serverURL: uploadURL, |
| 111 | 113 | currentIndex: 0, |
| 112 | 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 | 122 | this.getLeaderList() |
| 118 | 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 | 219 | methods: { |
| 121 | 220 | // 获取街道列表 |
| ... | ... | @@ -185,7 +284,21 @@ export default { |
| 185 | 284 | }, |
| 186 | 285 | // 上传完成 |
| 187 | 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 | 304 | onSubmit() { |
| ... | ... | @@ -194,11 +307,17 @@ export default { |
| 194 | 307 | uni.$tui.toast(res.errorMsg) |
| 195 | 308 | return |
| 196 | 309 | } |
| 310 | + // 关键:提交所有图片(默认图 + 新图) | |
| 311 | + // this.formData.imgs = this.imgsValue.map(item => item.url); | |
| 312 | + this.formData.imgs = this.imgsValue | |
| 197 | 313 | if (!this.formData.imgs.length || !this.formData.streetImgList.length || !this.formData.longRangeImgList.length) { |
| 198 | 314 | uni.$tui.toast('请上传图片') |
| 199 | 315 | return |
| 200 | 316 | } |
| 201 | 317 | this.isLoading = true |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 202 | 321 | apiCaseAdd({data:{...this.formData}}).then(res => { |
| 203 | 322 | uni.$tui.toast('提交成功') |
| 204 | 323 | setTimeout(() => { uni.navigateBack() }, 1500) | ... | ... |
pages/work/daily/workOrder.vue
| ... | ... | @@ -3,24 +3,25 @@ |
| 3 | 3 | <z-paging ref="paging" v-model="dataList" @query="queryList" :auto="false" > |
| 4 | 4 | |
| 5 | 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 | 16 | </view> |
| 13 | 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 | 19 | </view> |
| 17 | 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 | 22 | </view> |
| 21 | 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 | 25 | </view> |
| 25 | 26 | </view> |
| 26 | 27 | |
| ... | ... | @@ -74,12 +75,13 @@ export default { |
| 74 | 75 | }, |
| 75 | 76 | methods: { |
| 76 | 77 | // 获取巡检列表 |
| 77 | - queryList() { | |
| 78 | + queryList(pageNo, pageSize) { | |
| 78 | 79 | const useCounter = useCounterStore() |
| 79 | 80 | console.log(useCounter.userInfo.userId) |
| 80 | 81 | const params = { |
| 81 | 82 | dispperson:useCounter.userInfo.userId, |
| 82 | - taskstate:'gdtype02' | |
| 83 | + taskstate:'gdtype02', | |
| 84 | + pageReq: {pageNum: pageNo, pageSize: pageSize}, | |
| 83 | 85 | } |
| 84 | 86 | hotlinecaseList({data:params}).then(res => { |
| 85 | 87 | this.$refs.paging.complete(res.rows) |
| ... | ... | @@ -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 | 114 | </script> | ... | ... |