| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- const api = require('../../api/index.js');
-
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- // 工单核心信息(适配储能车运营)
- workOrderInfo: {
- orderNo: 'DSB20260204001', // 工单编号(电速宝前缀DSB)
- status: 'assigned', // 工单状态:pending(待指派)、assigned(已指派)、processing(处理中)、completed(已完成)、canceled(已取消)
- statusText: '已指派',
- statusClass: 'status-assigned',
- createTime: '2026-02-04 09:30:45',
- faultType: '电池故障-充放电异常', // 报障类型
- faultDesc: '储能车BMS系统提示充放电电流异常,最大电流仅达到额定值的50%,电池包温度无异常,整车无其他报错码,现场初步检查线路无松动。', // 故障详情
- faultImgs: [ // 故障图片
- '/images/fault1.jpg',
- '/images/fault2.jpg'
- ],
- // 报障人信息
- reporter: {
- name: '李工',
- phone: '13900139000'
- },
- // 储能车设备信息(核心)
- device: {
- carNo: 'DSB-EC2026008', // 车辆编号
- batteryModel: '宁德时代-21700-100kWh', // 储能电池型号
- location: '上海市浦东新区储能站A区08号车位', // 设备位置
- runTime: '3680h', // 运行时长
- faultPos: '电池包3号模组' // 故障位置
- },
- // 指派信息(已指派才有)
- assigner: {
- name: '王工程师',
- phone: '13700137000'
- },
- assignTime: '2026-02-04 10:05:30', // 指派时间
- estimateTime: '4小时', // 预计处理时长
- // 处理进度时间轴
-
- },
- processList: [
- { step: '未分配', time: '2026-02-04 09:30:45', operator: '李工', desc: '指派王工程师负责现场处理' },
- { step: '待处理', time: '2026-02-04 09:45:12', operator: '平台管理员', desc: '指派王工程师负责现场处理' },
- { step: '行驶中', time: '2026-02-04 10:05:30', operator: '运维主管', desc: '指派王工程师负责现场处理' },
- { step: '到达地点', time: '2026-02-04 10:05:30', operator: '运维主管', desc: '指派王工程师负责现场处理' },
- { step: '工作中', time: '2026-02-04 10:05:30', operator: '运维主管', desc: '指派王工程师负责现场处理' },
- { step: '工作完成', time: '2026-02-04 10:05:30', operator: '运维主管', desc: '指派王工程师负责现场处理' },
- { step: '支付完成', time: '2026-02-04 10:05:30', operator: '运维主管', desc: '指派王工程师负责现场处理' },
- { step: '支付完成', time: '2026-02-04 10:05:30', operator: '运维主管', desc: '指派王工程师负责现场处理' }
- ],
- showBottomBar: true, // 是否显示底部操作栏
- // 控制查看更多的显示状态,默认隐藏
- showMore: false
- },
-
- /**
- * 生命周期函数--监听页面加载
- * 实际开发中从options获取工单ID,请求接口获取真实数据
- */
- onLoad(options) {
- // 模拟切换工单状态:pending/assigned/processing/completed/canceled
- this.updateWorkOrderStatus(options.id);
- // this.updateWorkOrderStatus('processing');
- // this.updateWorkOrderStatus('completed');
- // this.updateWorkOrderStatus('canceled');
- },
-
- /**
- * 核心方法:更新工单状态(自动同步样式、文本)
- * @param {String} status 工单状态
- */
- updateWorkOrderStatus(status) {
- // 状态映射表:文本+样式类
- let data={
- workorderId:status
- }
- api.request(`/sysworkorder/selectworkorderid`, 'post',data ,{ isPublic: false })
- .then((data) => {
- console.log(data.data);
- if (data.code==200) {
- // mockOrders = data.data
- let processList = [
- { step: '创建时间', time: data.data.workorderCreatetime, operator: '系统派发', desc: '自动创建' },
- { step: '分配时间', time: '2026-02-04 09:45:12', operator: '系统派发', desc: '系统派发' },
- { step: '开始行驶', time: data.data.traveltime, operator: '运营', desc: '运营指派王师傅负责执行订单' },
- { step: '到达地点', time: data.data.arrivaltime, operator: '运营', desc: '运营指派王师傅负责执行订单' },
- { step: '开始工作', time: data.data.startworktime, operator: '运营', desc: '运营指派王师傅负责执行订单' },
- { step: '工作完成', time: data.data.endworktime, operator: '运营', desc: '运营指派王师傅负责执行订单' },
- { step: '订单1完成', time: '2026-02-04 10:05:30', operator: '运营', desc: '运营指派王师傅负责执行订单' },
- ]
- this.setData({
- workOrderInfo:data.data,
- processList:processList
- });
-
- }
- })
- .catch((err) => {
- console.error('请求失败:', err);
- });
- // 更新筛选后的列表
- },
- /**
- * 切换查看更多/收起状态
- */
- toggleShowMore() {
- this.setData({
- showMore: !this.data.showMore
- });
- },
-
- /**
- * 工具方法:格式化当前时间为YYYY-MM-DD HH:MM:SS
- */
- formatTime() {
- const date = new Date();
- const y = date.getFullYear();
- const m = (date.getMonth() + 1).toString().padStart(2, '0');
- const d = date.getDate().toString().padStart(2, '0');
- const h = date.getHours().toString().padStart(2, '0');
- const mm = date.getMinutes().toString().padStart(2, '0');
- const s = date.getSeconds().toString().padStart(2, '0');
- return `${y}-${m}-${d} ${h}:${mm}:${s}`;
- },
-
- /**
- * 操作事件:取消工单(仅待指派状态可操作)
- */
- cancelOrder() {
- wx.showModal({
- title: '提示',
- content: '确定要取消该工单吗?取消后将无法恢复',
- success: (res) => {
- if (res.confirm) {
- this.updateWorkOrderStatus('canceled');
- wx.showToast({
- title: '工单已取消',
- icon: 'success'
- });
- }
- }
- });
- },
-
- /**
- * 操作事件:指派工程师(仅待指派状态可操作)
- * 实际开发中跳转到「工程师选择页面」
- */
- assignEngineer() {
- wx.navigateTo({
- url: '/pages/engineer-select/engineer-select?workOrderNo=' + this.data.workOrderInfo.orderNo
- });
- // 模拟指派后更新状态
- // this.updateWorkOrderStatus('assigned');
- },
-
- /**
- * 操作事件:开始处理(仅已指派状态可操作)
- */
- startProcess() {
- wx.showModal({
- title: '提示',
- content: '确定开始处理该工单吗?',
- success: (res) => {
- if (res.confirm) {
- this.updateWorkOrderStatus('processing');
- wx.showToast({
- title: '已开始处理',
- icon: 'success'
- });
- }
- }
- });
- },
-
- /**
- * 操作事件:完成工单(仅处理中状态可操作)
- * 实际开发中可跳转到「处理结果提交页面」
- */
- completeOrder() {
- wx.showModal({
- title: '提示',
- content: '确定完成该工单吗?',
- success: (res) => {
- if (res.confirm) {
- this.updateWorkOrderStatus('completed');
- wx.showToast({
- title: '工单处理完成',
- icon: 'success'
- });
- // 实际开发中可跳转至「处理结果填写页」
- // wx.navigateTo({
- // url: '/pages/process-result/process-result?workOrderNo=' + this.data.workOrderInfo.orderNo
- // });
- }
- }
- });
- },
-
- /**
- * 操作事件:重新处理(仅已完成状态可操作)
- */
- reworkOrder() {
- wx.showModal({
- title: '提示',
- content: '确定重新处理该工单吗?',
- success: (res) => {
- if (res.confirm) {
- this.updateWorkOrderStatus('processing');
- wx.showToast({
- title: '已发起重新处理',
- icon: 'success'
- });
- }
- }
- });
- }
- });
|