Blame view

pages-sub/daily/quick-order/add-order.vue 17.5 KB
9b30ab8c   刘淇   新增快速工单,原版
1
  <template>
c7df828a   刘淇   快速工单 样式优化
2
    <view class="page-container">
8ee2a923   刘淇   新增快速工单,原版
3
      <!-- 核心:将所有 up-form-item 包裹在同一个 up-form 内 -->
0d1a4181   刘淇   个人中心
4
      <view class="work-order-form-content commonPageLRpadding">
3cbb8754   刘淇   动态字典
5
6
7
8
9
        <up-form label-position="left" :model="workOrderForm" ref="workOrderFormRef" labelWidth="160rpx">
          <up-form-item label="业务线" prop="busiLine" border-bottom required>
            <up-radio-group v-model="busiLineDisplay" placement="row" @change="handleBusiLineChange">
              <up-radio v-for="item in busiLineOptions" :key="item.value" :label="item.label" :name="item.label"
              > </up-radio>
3d474e84   刘淇   快速工单 加上业务线
10
            </up-radio-group>
3d474e84   刘淇   快速工单 加上业务线
11
          </up-form-item>
9b30ab8c   刘淇   新增快速工单,原版
12
          <!-- 1. 工单位置(地图选择) -->
3cbb8754   刘淇   动态字典
13
14
15
16
          <up-form-item label="工单位置" prop="workLocation" border-bottom required
                    @click="chooseWorkLocation(); hideKeyboard()">
            <up-input v-model="workOrderForm.workLocation" border="none" readonly suffix-icon="map-fill"
            placeholder="点击选择工单位置"></up-input>
9b30ab8c   刘淇   新增快速工单,原版
17
          </up-form-item>
9b30ab8c   刘淇   新增快速工单,原版
18
          <!-- 2. 道路名称(下拉框:位置选择后才可点击) -->
3cbb8754   刘淇   动态字典
19
20
21
22
          <up-form-item label="道路名称" prop="roadName" border-bottom required
                    @click="workOrderForm.workLocation ? (showRoadName = true, hideKeyboard()) : uni.showToast({ title: '请先选择工单位置', icon: 'none' })">
            <up-input v-model="workOrderForm.roadName" readonly disabled-color="#ffffff" placeholder="请先选择工单位置"
            border="none"></up-input>
9b30ab8c   刘淇   新增快速工单,原版
23
            <template #right>
3cbb8754   刘淇   动态字典
24
              <up-icon name="arrow-right" size="16"></up-icon>
9b30ab8c   刘淇   新增快速工单,原版
25
26
            </template>
          </up-form-item>
c64da17b   刘淇   新的业务线
27
          <!-- 3. 问题类型(下拉框) -->
3cbb8754   刘淇   动态字典
28
29
30
31
          <up-form-item label="问题类型" prop="orderName" border-bottom required
                    @click="showOrderName = true; hideKeyboard()">
            <up-input v-model="workOrderForm.orderName" disabled disabled-color="#ffffff" placeholder="请选择问题类型"
            border="none"></up-input>
9b30ab8c   刘淇   新增快速工单,原版
32
33
34
35
            <template #right>
              <up-icon name="arrow-right" size="16"></up-icon>
            </template>
          </up-form-item>
9b30ab8c   刘淇   新增快速工单,原版
36
          <!-- 4. 情况描述(文本域) -->
3cbb8754   刘淇   动态字典
37
38
39
          <up-form-item label="情况描述" prop="problemDesc" required>
            <up-textarea placeholder="请输入情况描述(最多200字)" v-model.trim="workOrderForm.problemDesc" count maxlength="200"
            rows="4" @blur="() => $refs.workOrderFormRef.validateField('problemDesc')"></up-textarea>
9b30ab8c   刘淇   新增快速工单,原版
40
          </up-form-item>
0d1a4181   刘淇   个人中心
41
          <!-- 问题照片 -->
8ee2a923   刘淇   新增快速工单,原版
42
          <up-form-item label="问题照片" prop="problemImgs" required>
3cbb8754   刘淇   动态字典
43
44
45
            <up-upload :file-list="problemImgsList" @after-read="(event) => uploadImgs(event, 'problemImgsList')"
                        @delete="(event) => deleteImg(event, 'problemImgsList')" multiple width="70" height="70" :max-count="3"
            upload-text="选择问题照片"></up-upload>
8ee2a923   刘淇   新增快速工单,原版
46
          </up-form-item>
0d1a4181   刘淇   个人中心
47
48
          <!-- 完成照片 -->
          <up-form-item label="完成照片" prop="completeImgs" required class="mt-20">
3cbb8754   刘淇   动态字典
49
50
51
            <up-upload :file-list="completeImgsList" @after-read="(event) => uploadImgs(event, 'completeImgsList')"
                        @delete="(event) => deleteImg(event, 'completeImgsList')" multiple width="70" height="70" :max-count="3"
                        :sizeType="['compressed']" upload-text="选择完成照片"></up-upload>
8ee2a923   刘淇   新增快速工单,原版
52
          </up-form-item>
0d1a4181   刘淇   个人中心
53
          <!-- 处理结果(不必填) -->
5cb33b90   刘淇   完成巡查计划 详情
54
          <up-form-item label="处理结果" prop="handleResult" class="mt-20">
3cbb8754   刘淇   动态字典
55
56
            <up-textarea placeholder="请输入处理结果描述(最多200字,选填)" v-model.trim="workOrderForm.handleResult" count
            maxlength="200" rows="4" @blur="() => $refs.workOrderFormRef.validateField('handleResult')"></up-textarea>
8ee2a923   刘淇   新增快速工单,原版
57
          </up-form-item>
0d1a4181   刘淇   个人中心
58
59
60
        </up-form>
      </view>
      <!-- 底部提交按钮(移除loading和disabled属性) -->
9b30ab8c   刘淇   新增快速工单,原版
61
      <view class="fixed-bottom-btn-wrap">
3cbb8754   刘淇   动态字典
62
        <up-button type="primary" size="large" text="提交工单" @click="submitWorkOrder"></up-button>
9b30ab8c   刘淇   新增快速工单,原版
63
      </view>
8ee2a923   刘淇   新增快速工单,原版
64
      <!-- 道路名称下拉弹窗 -->
3cbb8754   刘淇   动态字典
65
66
      <up-action-sheet :show="showRoadName" :actions="roadNameList" title="请选择道路名称" @close="showRoadName = false"
            @select="handleRoadNameSelect"></up-action-sheet>
c64da17b   刘淇   新的业务线
67
      <!-- 问题类型下拉弹窗 -->
3cbb8754   刘淇   动态字典
68
69
      <up-action-sheet :show="showOrderName" :actions="orderNameList" title="请选择问题类型" @close="showOrderName = false"
            @select="handleOrderNameSelect"></up-action-sheet>
9b30ab8c   刘淇   新增快速工单,原版
70
71
    </view>
  </template>
0d1a4181   刘淇   个人中心
72
  <script lang="ts">
3d474e84   刘淇   快速工单 加上业务线
73
74
75
76
  import { getRoadListByLatLng } from '@/api/common'
  import { uploadImages } from '@/common/utils/upload';
  import { createQuick } from '@/api/quick-order/quick-order'
  import { useUserStore } from '@/pinia/user';
0d1a4181   刘淇   个人中心
77
  export default {
3cbb8754   刘淇   动态字典
78
79
80
81
82
83
    computed: {
      busiLineOptions() {
        const userStore = useUserStore();
        return userStore.dictList || []
      }
    },
0d1a4181   刘淇   个人中心
84
85
    data() {
      return {
3cbb8754   刘淇   动态字典
86
        busiLineDisplay: '', // 单选框展示用,存中文label
0d1a4181   刘淇   个人中心
87
88
89
90
91
92
93
94
95
        // 问题照片列表
        problemImgsList: [],
        // 完成照片列表
        completeImgsList: [],
        // 弹窗显隐控制
        showRoadName: false,
        showOrderName: false,
        // 下拉列表数据
        roadNameList: [],
3d474e84   刘淇   快速工单 加上业务线
96
        orderNameList: [],
0d1a4181   刘淇   个人中心
97
98
        // 工单表单数据
        workOrderForm: {
3cbb8754   刘淇   动态字典
99
          busiLine: '', // 业务线value yl / sz / wy
0d1a4181   刘淇   个人中心
100
101
102
          roadId: 0,                     // 道路ID
          roadName: '',                  // 道路名称
          workLocation: '',              // 工单位置
c64da17b   刘淇   新的业务线
103
          orderName: '',                 // 问题类型
0d1a4181   刘淇   个人中心
104
          problemDesc: '',               // 情况描述
3d474e84   刘淇   快速工单 加上业务线
105
          handleResult: '',              // 处理结果描述(不必填)
0d1a4181   刘淇   个人中心
106
107
108
109
110
          lat: 0,                        // 纬度
          lon: 0                         // 经度
        },
        // 表单校验规则
        workOrderFormRules: {
3cbb8754   刘淇   动态字典
111
          busiLine: [
3d474e84   刘淇   快速工单 加上业务线
112
113
            { type: 'string', required: true, message: '请选择业务线', trigger: ['change', 'blur'] }
          ],
0d1a4181   刘淇   个人中心
114
          workLocation: [
3d474e84   刘淇   快速工单 加上业务线
115
            { type: 'string', required: true, message: '请选择工单位置', trigger: ['change', 'blur'] }
0d1a4181   刘淇   个人中心
116
117
          ],
          roadName: [
3d474e84   刘淇   快速工单 加上业务线
118
            { type: 'string', required: true, message: '请选择道路名称', trigger: ['change', 'blur'] }
0d1a4181   刘淇   个人中心
119
120
          ],
          orderName: [
c64da17b   刘淇   新的业务线
121
            { type: 'string', required: true, message: '请选择问题类型', trigger: ['change', 'blur'] }
0d1a4181   刘淇   个人中心
122
123
          ],
          problemDesc: [
3d474e84   刘淇   快速工单 加上业务线
124
125
            { type: 'string', required: true, message: '请输入情况描述', trigger: ['change', 'blur'] },
            { type: 'string', min: 3, max: 200, message: '情况描述需3-200字', trigger: ['change', 'blur'] }
0d1a4181   刘淇   个人中心
126
127
128
129
130
131
132
          ],
          problemImgs: [
            {
              required: true,
              message: '请上传问题照片',
              trigger: 'change',
              validator: (rule, value, callback) => {
0d1a4181   刘淇   个人中心
133
134
135
136
137
138
139
140
141
142
143
                const hasSuccessImg = this.problemImgsList.some(item => item.status === 'success')
                hasSuccessImg ? callback() : callback(new Error('请上传至少1张问题照片'))
              }
            }
          ],
          completeImgs: [
            {
              required: true,
              message: '请上传完成照片',
              trigger: 'change',
              validator: (rule, value, callback) => {
0d1a4181   刘淇   个人中心
144
145
146
147
                const hasSuccessImg = this.completeImgsList.some(item => item.status === 'success')
                hasSuccessImg ? callback() : callback(new Error('请上传至少1张完成照片'))
              }
            }
3d474e84   刘淇   快速工单 加上业务线
148
          ]
9b30ab8c   刘淇   新增快速工单,原版
149
        }
9b30ab8c   刘淇   新增快速工单,原版
150
      }
0d1a4181   刘淇   个人中心
151
    },
3d474e84   刘淇   快速工单 加上业务线
152
    onLoad() {
3d474e84   刘淇   快速工单 加上业务线
153
154
      // 默认选中第一个业务线
      if (this.busiLineOptions && this.busiLineOptions.length > 0) {
3cbb8754   刘淇   动态字典
155
156
157
        this.workOrderForm.busiLine = this.busiLineOptions[0].value;
        this.busiLineDisplay = this.busiLineOptions[0].label;
        console.log('默认选中业务线value:', this.workOrderForm.busiLine);
3d474e84   刘淇   快速工单 加上业务线
158
159
      }
    },
0d1a4181   刘淇   个人中心
160
    onReady() {
3d474e84   刘淇   快速工单 加上业务线
161
162
163
      // 设置表单校验规则
      this.$refs.workOrderFormRef.setRules(this.workOrderFormRules);
      console.log('工单表单规则初始化完成');
0d1a4181   刘淇   个人中心
164
    },
3d474e84   刘淇   快速工单 加上业务线
165
166
    onShow() {
      this.orderNameList = uni.$dict.transformLabelValueToNameValue(uni.$dict.getDictSimpleList('work_name'));
c64da17b   刘淇   新的业务线
167
      console.log('问题类型列表:', this.orderNameList);
5cb33b90   刘淇   完成巡查计划 详情
168
    },
0d1a4181   刘淇   个人中心
169
    methods: {
3d474e84   刘淇   快速工单 加上业务线
170
      // 业务线切换事件
3cbb8754   刘淇   动态字典
171
172
173
174
175
176
      handleBusiLineChange(selectedLabel) {
        // 根据选中的中文label反向找到value,存入表单
        const selectedItem = this.busiLineOptions.find(item => item.label === selectedLabel)
        if (selectedItem) {
          this.workOrderForm.busiLine = selectedItem.value;
        }
3d474e84   刘淇   快速工单 加上业务线
177
178
179
180
181
182
183
184
185
186
187
        // 清空道路信息
        this.workOrderForm.roadName = '';
        this.workOrderForm.roadId = 0;
        this.roadNameList = [];
        // 若已选择位置,重新请求对应业务线的道路列表
        if (this.workOrderForm.workLocation) {
          this.getRoadListByBusiLine();
        }
      },
      // 根据选中业务线请求道路列表
      async getRoadListByBusiLine() {
3cbb8754   刘淇   动态字典
188
        if (!this.workOrderForm.lat || !this.workOrderForm.lon || !this.workOrderForm.busiLine) {
3d474e84   刘淇   快速工单 加上业务线
189
190
          return;
        }
3d474e84   刘淇   快速工单 加上业务线
191
192
193
        try {
          uni.showLoading({ title: '获取道路名称中...' });
          const roadRes = await getRoadListByLatLng({
3cbb8754   刘淇   动态字典
194
            busiLine: this.workOrderForm.busiLine, // 直接传递value
3d474e84   刘淇   快速工单 加上业务线
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
            latitude: this.workOrderForm.lat,
            longitude: this.workOrderForm.lon
          });
          uni.hideLoading();
          if (Array.isArray(roadRes)) {
            this.roadNameList = roadRes.map((item) => ({
              name: item.roadName || '',
              code: item.roadCode || '',
              id: item.roadId || 0
            }));
          } else {
            this.roadNameList = [{ name: '未查询到道路名称', code: '', id: 0 }];
            uni.showToast({ title: '未查询到该位置的道路信息', icon: 'none' });
          }
        } catch (err) {
          uni.hideLoading();
          console.error('获取道路名称失败:', err);
          uni.showToast({ title: '获取道路名称失败,请重试', icon: 'none' });
          this.roadNameList = [{ name: '获取失败,请重新选择位置', code: '', id: 0 }];
        }
      },
0d1a4181   刘淇   个人中心
216
217
218
219
      /**
       * 返回上一页
       */
      navigateBack() {
3d474e84   刘淇   快速工单 加上业务线
220
        uni.navigateBack();
0d1a4181   刘淇   个人中心
221
222
223
224
225
      },
      /**
       * 删除图片
       */
      deleteImg(event, type) {
3d474e84   刘淇   快速工单 加上业务线
226
        console.log('删除图片事件:', event, '类型:', type);
0d1a4181   刘淇   个人中心
227
        if (type === 'problemImgsList') {
3d474e84   刘淇   快速工单 加上业务线
228
          this.problemImgsList.splice(event.index, 1);
0d1a4181   刘淇   个人中心
229
        } else if (type === 'completeImgsList') {
3d474e84   刘淇   快速工单 加上业务线
230
          this.completeImgsList.splice(event.index, 1);
9b30ab8c   刘淇   新增快速工单,原版
231
        }
0d1a4181   刘淇   个人中心
232
233
        // 删除图片后重新校验图片字段
        if (type === 'problemImgsList') {
3d474e84   刘淇   快速工单 加上业务线
234
          this.$refs.workOrderFormRef.validateField('problemImgs');
0d1a4181   刘淇   个人中心
235
        } else if (type === 'completeImgsList') {
3d474e84   刘淇   快速工单 加上业务线
236
          this.$refs.workOrderFormRef.validateField('completeImgs');
0d1a4181   刘淇   个人中心
237
        }
3d474e84   刘淇   快速工单 加上业务线
238
        uni.showToast({ title: '图片删除成功', icon: 'success' });
0d1a4181   刘淇   个人中心
239
240
241
242
243
      },
      /**
       * 上传图片
       */
      async uploadImgs(event, type) {
3d474e84   刘淇   快速工单 加上业务线
244
245
246
        console.log('上传图片事件:', event, '类型:', type);
        const fileList = Array.isArray(event.file) ? event.file : [event.file];
        const targetImgList = type === 'problemImgsList' ? this.problemImgsList : this.completeImgsList;
3d474e84   刘淇   快速工单 加上业务线
247
        const filePaths = fileList.map(item => item.url);
0d1a4181   刘淇   个人中心
248
249
250
251
        const tempItems = fileList.map(item => ({
          ...item,
          status: 'uploading',
          message: '上传中'
3d474e84   刘淇   快速工单 加上业务线
252
253
254
        }));
        const startIndex = targetImgList.length;
        targetImgList.push(...tempItems);
0d1a4181   刘淇   个人中心
255
256
257
258
        try {
          const uploadResultUrls = await uploadImages({
            filePaths: filePaths,
            ignoreError: true
3d474e84   刘淇   快速工单 加上业务线
259
260
          });
          console.log('上传成功的URL列表:', uploadResultUrls);
0d1a4181   刘淇   个人中心
261
262
263
264
265
266
267
          uploadResultUrls.forEach((url, index) => {
            if (targetImgList[startIndex + index]) {
              targetImgList.splice(startIndex + index, 1, {
                ...fileList[index],
                status: 'success',
                message: '',
                url: url
3d474e84   刘淇   快速工单 加上业务线
268
              });
0d1a4181   刘淇   个人中心
269
            }
3d474e84   刘淇   快速工单 加上业务线
270
          });
0d1a4181   刘淇   个人中心
271
          if (uploadResultUrls.length < fileList.length) {
3d474e84   刘淇   快速工单 加上业务线
272
            const failCount = fileList.length - uploadResultUrls.length;
0d1a4181   刘淇   个人中心
273
274
275
276
277
278
            for (let i = uploadResultUrls.length; i < fileList.length; i++) {
              if (targetImgList[startIndex + i]) {
                targetImgList.splice(startIndex + i, 1, {
                  ...fileList[i],
                  status: 'failed',
                  message: '上传失败'
3d474e84   刘淇   快速工单 加上业务线
279
                });
0d1a4181   刘淇   个人中心
280
281
              }
            }
3d474e84   刘淇   快速工单 加上业务线
282
            uni.showToast({ title: `成功上传${uploadResultUrls.length}张,失败${failCount}张`, icon: 'none' });
0d1a4181   刘淇   个人中心
283
          } else {
3d474e84   刘淇   快速工单 加上业务线
284
            uni.showToast({ title: `成功上传${fileList.length}张图片`, icon: 'success' });
0d1a4181   刘淇   个人中心
285
          }
0d1a4181   刘淇   个人中心
286
287
          // 上传完成后重新校验图片字段
          if (type === 'problemImgsList') {
3d474e84   刘淇   快速工单 加上业务线
288
            this.$refs.workOrderFormRef.validateField('problemImgs');
0d1a4181   刘淇   个人中心
289
          } else if (type === 'completeImgsList') {
3d474e84   刘淇   快速工单 加上业务线
290
            this.$refs.workOrderFormRef.validateField('completeImgs');
0d1a4181   刘淇   个人中心
291
292
          }
        } catch (err) {
0d1a4181   刘淇   个人中心
293
294
295
296
297
298
          for (let i = 0; i < fileList.length; i++) {
            if (targetImgList[startIndex + i]) {
              targetImgList.splice(startIndex + i, 1, {
                ...fileList[i],
                status: 'failed',
                message: '上传失败'
3d474e84   刘淇   快速工单 加上业务线
299
              });
0d1a4181   刘淇   个人中心
300
301
            }
          }
3d474e84   刘淇   快速工单 加上业务线
302
          uni.showToast({ title: '图片上传失败,请重试', icon: 'none' });
0d1a4181   刘淇   个人中心
303
304
          // 上传失败后重新校验图片字段
          if (type === 'problemImgsList') {
3d474e84   刘淇   快速工单 加上业务线
305
            this.$refs.workOrderFormRef.validateField('problemImgs');
0d1a4181   刘淇   个人中心
306
          } else if (type === 'completeImgsList') {
3d474e84   刘淇   快速工单 加上业务线
307
            this.$refs.workOrderFormRef.validateField('completeImgs');
0d1a4181   刘淇   个人中心
308
309
310
311
          }
        }
      },
      /**
3d474e84   刘淇   快速工单 加上业务线
312
       * 选择工单位置
0d1a4181   刘淇   个人中心
313
314
       */
      chooseWorkLocation() {
3d474e84   刘淇   快速工单 加上业务线
315
        let that = this;
9b30ab8c   刘淇   新增快速工单,原版
316
317
        uni.chooseLocation({
          success: async (res) => {
3d474e84   刘淇   快速工单 加上业务线
318
319
320
            that.workOrderForm.roadName = '';
            that.workOrderForm.roadId = 0;
            that.roadNameList = [];
3d474e84   刘淇   快速工单 加上业务线
321
322
323
            that.workOrderForm.workLocation = res.name;
            that.workOrderForm.lat = res.latitude;
            that.workOrderForm.lon = res.longitude;
3d474e84   刘淇   快速工单 加上业务线
324
325
            that.$refs.workOrderFormRef.validateField('workLocation');
            that.$refs.workOrderFormRef.validateField('roadName');
3d474e84   刘淇   快速工单 加上业务线
326
327
            // 调用封装的方法,自动携带业务线
            await that.getRoadListByBusiLine();
9b30ab8c   刘淇   新增快速工单,原版
328
329
          },
          fail: (err) => {
3d474e84   刘淇   快速工单 加上业务线
330
331
            console.error('选择位置失败:', err);
            uni.showToast({ title: '选择位置失败:' + err.errMsg, icon: 'none' });
9b30ab8c   刘淇   新增快速工单,原版
332
          }
3d474e84   刘淇   快速工单 加上业务线
333
        });
9b30ab8c   刘淇   新增快速工单,原版
334
      },
0d1a4181   刘淇   个人中心
335
336
337
338
      /**
       * 选择道路名称
       */
      handleRoadNameSelect(e) {
3d474e84   刘淇   快速工单 加上业务线
339
340
341
342
343
        console.log('选择道路名称:', e);
        this.workOrderForm.roadName = e.name;
        this.workOrderForm.roadId = e.code;
        this.showRoadName = false;
        this.$refs.workOrderFormRef.validateField('roadName');
0d1a4181   刘淇   个人中心
344
345
      },
      /**
c64da17b   刘淇   新的业务线
346
       * 选择问题类型
0d1a4181   刘淇   个人中心
347
348
       */
      handleOrderNameSelect(e) {
3d474e84   刘淇   快速工单 加上业务线
349
350
351
352
        console.log(e);
        this.workOrderForm.orderName = e.name;
        this.showOrderName = false;
        this.$refs.workOrderFormRef.validateField('orderName');
0d1a4181   刘淇   个人中心
353
354
355
356
357
      },
      /**
       * 隐藏键盘
       */
      hideKeyboard() {
3d474e84   刘淇   快速工单 加上业务线
358
        uni.hideKeyboard();
0d1a4181   刘淇   个人中心
359
360
361
362
363
      },
      /**
       * 提取图片URL数组
       */
      getImgUrlList(imgList) {
3d474e84   刘淇   快速工单 加上业务线
364
        return imgList.filter(item => item.status === 'success').map(item => item.url);
0d1a4181   刘淇   个人中心
365
366
      },
      /**
3d474e84   刘淇   快速工单 加上业务线
367
       * 提交工单
0d1a4181   刘淇   个人中心
368
369
370
       */
      async submitWorkOrder() {
        try {
3d474e84   刘淇   快速工单 加上业务线
371
372
          // 先执行表单校验
          await this.$refs.workOrderFormRef.validate();
3cbb8754   刘淇   动态字典
373
          if (!this.workOrderForm.busiLine) {
3d474e84   刘淇   快速工单 加上业务线
374
375
376
            uni.showToast({ title: '业务线选择异常,请重新选择', icon: 'none' });
            return;
          }
3cbb8754   刘淇   动态字典
377
378
          // 根据value找到中文label
          const sourceName = this.busiLineOptions.find(item => item.value === this.workOrderForm.busiLine)?.label || '';
0d1a4181   刘淇   个人中心
379
380
381
          const submitData = {
            roadId: this.workOrderForm.roadId,
            roadName: this.workOrderForm.roadName,
2f1e3176   刘淇   图片参数处理
382
            problemsImgs: this.getImgUrlList(this.problemImgsList),
3d474e84   刘淇   快速工单 加上业务线
383
            endImgs: this.getImgUrlList(this.completeImgsList),
c7df828a   刘淇   快速工单 样式优化
384
385
            remark: this.workOrderForm.problemDesc.trim(),
            handleResult: this.workOrderForm.handleResult.trim(),
0d1a4181   刘淇   个人中心
386
387
388
389
390
391
392
            latLonType: 2,
            lat: this.workOrderForm.lat,
            lon: this.workOrderForm.lon,
            lonLatAddress: this.workOrderForm.workLocation,
            pressingType: 2,
            orderName: this.workOrderForm.orderName,
            sourceId: 1,
3cbb8754   刘淇   动态字典
393
            sourceName: sourceName, // 业务线中文名称
7b1f488f   刘淇   封装下图片上传
394
            thirdWorkNo: '',
3cbb8754   刘淇   动态字典
395
            busiLine: this.workOrderForm.busiLine // 业务线英文标识(yl/sz/wy)
3d474e84   刘淇   快速工单 加上业务线
396
          };
0d1a4181   刘淇   个人中心
397
          // 显示加载中
3d474e84   刘淇   快速工单 加上业务线
398
          uni.showLoading({ title: '提交中...' });
3d474e84   刘淇   快速工单 加上业务线
399
400
          // 调用提交接口
          const res = await createQuick(submitData);
3d474e84   刘淇   快速工单 加上业务线
401
          uni.hideLoading();
0d1a4181   刘淇   个人中心
402
403
404
          uni.showToast({
            title: '工单提交成功',
            icon: 'success',
5cb33b90   刘淇   完成巡查计划 详情
405
            duration: 1000
3d474e84   刘淇   快速工单 加上业务线
406
          });
3d474e84   刘淇   快速工单 加上业务线
407
          // 延迟跳转
0d1a4181   刘淇   个人中心
408
          setTimeout(() => {
4fa8cf12   刘淇   巡查员结束工单
409
            uni.reLaunch({
0d1a4181   刘淇   个人中心
410
              url: '/pages-sub/daily/quick-order/index'
3d474e84   刘淇   快速工单 加上业务线
411
412
            });
          }, 1000);
0d1a4181   刘淇   个人中心
413
414
        } catch (error) {
          // 隐藏加载框
3d474e84   刘淇   快速工单 加上业务线
415
          uni.hideLoading();
0d1a4181   刘淇   个人中心
416
          // 区分是表单校验失败还是接口调用失败
3d474e84   刘淇   快速工单 加上业务线
417
          if (!Array.isArray(error)) {
0d1a4181   刘淇   个人中心
418
            // 接口调用失败
3d474e84   刘淇   快速工单 加上业务线
419
            console.error('工单提交失败:', error);
0d1a4181   刘淇   个人中心
420
421
422
423
            uni.showToast({
              title: '提交失败,请重试',
              icon: 'none',
              duration: 2000
3d474e84   刘淇   快速工单 加上业务线
424
            });
0d1a4181   刘淇   个人中心
425
          }
8ee2a923   刘淇   新增快速工单,原版
426
        }
9b30ab8c   刘淇   新增快速工单,原版
427
      }
9b30ab8c   刘淇   新增快速工单,原版
428
429
    }
  }
9b30ab8c   刘淇   新增快速工单,原版
430
  </script>
9b30ab8c   刘淇   新增快速工单,原版
431
432
  <style lang="scss" scoped>
  // 全局页面样式
c7df828a   刘淇   快速工单 样式优化
433
  .page-container {
9b30ab8c   刘淇   新增快速工单,原版
434
    min-height: 100vh;
9b30ab8c   刘淇   新增快速工单,原版
435
  }
8ee2a923   刘淇   新增快速工单,原版
436
  // 工单表单内容容器
9b30ab8c   刘淇   新增快速工单,原版
437
438
  .work-order-form-content {
    background: #fff;
c7df828a   刘淇   快速工单 样式优化
439
    margin-bottom: 100rpx;
9b30ab8c   刘淇   新增快速工单,原版
440
  }
3cbb8754   刘淇   动态字典
441
  </style>