吉安感知网项目-前端
chenyao
8 hours ago 3a22478254f501918111e3a554397bd22e8b34de
feat:提交吉安工单和移动端处置数据
4 files modified
90 ■■■■ changed files
applications/task-work-order/src/views/orderView/orderManage/eventManage/index.vue 1 ●●●● patch | view | raw | blame | history
uniapps/work-app/src/subPackages/workDetail/HandleWork/index.vue 2 ●●● patch | view | raw | blame | history
uniapps/work-app/src/subPackages/workDetail/HandleWorking/index.vue 65 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/subPackages/workDetail/index.vue 22 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/eventManage/index.vue
@@ -164,6 +164,7 @@
            ...searchParams.value,
            startTime: range[0],
            endTime: range[1],
            includeReturned: 1,
        })
        list.value = res?.data?.data?.records ?? []
        total.value = res?.data?.data?.total ?? 0
uniapps/work-app/src/subPackages/workDetail/HandleWork/index.vue
@@ -173,7 +173,7 @@
// 上传处置按钮 - 移到滚动区域外面
.upload_handle {
    // #ifdef APP-PLUS
    padding-top: 60rpx;
    padding-top: 70rpx;
    // #endif
    height: 80rpx; // 改大一点,方便点击
    display: flex;
uniapps/work-app/src/subPackages/workDetail/HandleWorking/index.vue
@@ -3,6 +3,24 @@
    <u-navbar title="待办处置" :is-back="true" back-text="" :back-icon-size="40" @left-click="onBackClick"></u-navbar>
    <scroll-view class="form-scroll" scroll-y>
      <view class="form-section status-section">
        <view class="section-header">
          <text class="section-title">工单状态</text>
        </view>
        <picker
          mode="selector"
          :range="statusOptions"
          range-key="name"
          :value="statusPickerIndex"
          @change="onStatusChange"
          class="status-picker"
        >
          <div class="picker-value">
            {{ currentStatusLabel || '请选择' }}
            <text class="picker-arrow">▼</text>
          </div>
        </picker>
      </view>
      <view class="form-section description-section">
        <view class="section-header">
          <text class="section-title">处置描述</text>
@@ -63,6 +81,7 @@
const MAX_FILE_COUNT = 9
const eventId = ref('')
const eventStatus = ref(null)
const initialEventStatus = ref(null) // 进入页面时的原始工单状态
const submitting = ref(false)
const uploading = ref(false)
const attachmentList = ref([])
@@ -88,6 +107,34 @@
function handleBack() {
  uni.navigateBack()
}
// 状态选项列表
const statusOptions = [
    { name: '处置中', value: 1 },
    { name: '已处置', value: 3 },
    // { name: '已完成', value: 4 },
]
// 当前选中状态的索引
const statusPickerIndex = computed(() => {
    const status = eventStatus.value
    return statusOptions.findIndex(item => item.value === status)
})
// 当前状态文本
const currentStatusLabel = computed(() => {
    const option = statusOptions.find(item => item.value === eventStatus.value)
    return option?.name || ''
})
// 切换状态
const onStatusChange = e => {
    const index = e.detail.value
    const selectedOption = statusOptions[index]
    if (!selectedOption) return
    eventStatus.value = selectedOption.value
}
// 切换处置状态
// function handleStatusChange(event) {
@@ -226,8 +273,11 @@
      eventId: eventId.value,
      recordType: 1,
      disposeContent: formData.value.disposeContent,
      targetEventStatus: eventStatus.value == 1 ? 3 : eventStatus.value,
      updateEventStatus: Number(eventStatus.value) == 1 ? true : false,
      // targetEventStatus: eventStatus.value == 1 ? 3 : eventStatus.value,
      // updateEventStatus: Number(eventStatus.value) == 1 ? true : false,
      targetEventStatus: eventStatus.value,
      // 已处置状态进入且未切换成处置中时,不更新工单状态
      updateEventStatus: !(Number(initialEventStatus.value) === 3 && Number(eventStatus.value) === 3),
      attachUrl: attachmentList.value.map(file => file.link),
      // operateTime: '2026-07-30 14:00:00',
      // eventStatus: formData.value.isHandling ? '1' : '3',
@@ -257,9 +307,9 @@
}
onLoad(options => {
  console.log(options, '9090')
  eventId.value = options?.id || ''
  eventStatus.value = options?.eventStatus || ''
  eventStatus.value = Number(options?.eventStatus) || null
  initialEventStatus.value = eventStatus.value
})
</script>
@@ -350,11 +400,14 @@
}
.status-section {
  // #ifdef APP-PLUS
    padding-top: 70rpx;
    // #endif
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 104rpx;
  padding: 0 20rpx 0 22rpx;
  height: 86rpx;
  padding: 0 20rpx 0 0rpx;
}
.status-switch {
uniapps/work-app/src/subPackages/workDetail/index.vue
@@ -39,7 +39,7 @@
                    </div>
                    <div class="orderRow">
                        <div class="rowTitle">工单状态</div>
                        <template v-if="[1, 3].includes(workDetailData.eventStatus)">
                        <!-- <template v-if="[1, 3].includes(workDetailData.eventStatus)">
                            <picker
                                mode="selector"
                                :range="statusOptions"
@@ -53,8 +53,8 @@
                                    <text class="picker-arrow">▼</text>
                                </div>
                            </picker>
                        </template>
                        <div v-else>{{ getStatusLabel(workDetailData.eventStatus) }}</div>
                        </template> -->
                        <div>{{ getStatusLabel(workDetailData.eventStatus) }}</div>
                    </div>
                    <div class="orderRow">
                        <div class="rowTitle">工单处置人</div>
@@ -165,7 +165,7 @@
<script setup>
// import { getShowImg, getSmallImg } from '@/utils/util'
import { getGddetailedData, backGdApi, shareCacheApi, updateStatus } from '/src/api/work/index.js'
import { getGddetailedData, backGdApi, shareCacheApi, updateStatus, addDisposeRecord } from '/src/api/work/index.js'
import { getWebViewUrl } from '@/utils/index.js'
import WebViewPlus from '@/components/WebViewPlus.vue'
import { onShow } from '@dcloudio/uni-app'
@@ -405,10 +405,18 @@
    }
    completing.value = true
    try {
        await updateStatus({
        // await updateStatus({
        //     eventId: workDetailData.value.id,
        //     targetStatus: 4,
        //     operateContent,
        // })
        await addDisposeRecord({
            eventId: workDetailData.value.id,
            targetStatus: 4,
            operateContent,
            disposeContent: operateContent,
            recordType: 1,
            targetEventStatus: 4,
            updateEventStatus: true,
            attachUrl: ''
        })
        uni.showToast({ title: '操作成功', icon: 'success' })
        setTimeout(() => {