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> | ... | ... |