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