Commit d0f9ccb8525060bbfce54e4cae055a8e81cc3565

Authored by 刘淇
1 parent e2ea09c3

12345工单 问题上报

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