sen
2025-08-18 13ef502835ce8bd84a797e97066d6684cb82889a
ui/admin-ui3/src/views/cwgl/dispatchOrder/index.vue
@@ -39,6 +39,11 @@
            class="attachment-image" />
        </template>
      </avue-crud>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" v-if="itemTableData2.length>0" @click="downPZ">下载附件</el-button>
        </div>
      </template>
    </el-dialog>
  </basicContainer>
@@ -52,13 +57,15 @@
  exportDispatchOrder,
  getDispatchOrder,
  listDispatchOrder,
  updateDispatchOrder, cwglDispatchOrderItem, cwglDispatchOrderattAchment, exportDispatchOrder2
  updateDispatchOrder, cwglDispatchOrderItem, cwglDispatchOrderattAchment, exportDispatchOrder2, downloadFJ
} from "@/api/cwgl/dispatchOrder";
import useCurrentInstance from "@/utils/useCurrentInstance";
import { computed, reactive, ref, toRefs } from "vue";
import { PagesInterface, PageQueryInterface } from "@/utils/globalInterface";
import { usePagePlus } from "@/hooks/usePagePlus";
import { hasPermission } from "@/utils/permissionUtils";
import {blobValidate} from "@/utils/ruoyi";
import {saveAs} from "file-saver";
const { proxy } = useCurrentInstance();
const crudRef = ref();
@@ -104,6 +111,8 @@
  delBtn: false,
  viewBtn: false,
  selection: false,
  searchSpan: 5,
  searchLabelWidth: 100,
  column: {
    dispatchNo: {
      fixed: 'left',
@@ -139,63 +148,63 @@
    vehiclePlateId: {
      label: '车板号', width: 120,
    },
    mainDriverName: {
      label: '主驾驶员', width: 120,
    },
    assistantDriverName: {
      label: '副驾驶员', width: 120,
    },
    pointNum: {
      label: '提送货点数', width: 120,
    },
    quantity: {
      label: '件数', width: 120,
    },
    actualDepartureTime: {
      label: '实际出发时间', width: 180,
    },
    actualDepartureTimeRange: {
      label: '实际出发时间', display: false, search: true, searchRange: true, type: 'date',
      format: 'YYYY-MM-DD', hide: true, searchSpan: 6, searchLabelWidth: 110,
      valueFormat: 'YYYY-MM-DD',
    },
    requiredArrivalTime: {
      label: '要求到达时间', width: 180,
    },
    requiredArrivalTimeRange: {
      label: '要求到达时间', display: false, search: true, searchRange: true, type: 'date',
      format: 'YYYY-MM-DD', hide: true, searchSpan: 6, searchLabelWidth: 110,
      valueFormat: 'YYYY-MM-DD',
    },
    actualArrivalTime: {
      label: '实际到达时间', width: 180,
    },
    actualArrivalTimeRange: {
      label: '要求到达时间', display: false, search: true, searchRange: true, type: 'date',
      format: 'YYYY-MM-DD', hide: true, searchSpan: 6, searchLabelWidth: 110,
      valueFormat: 'YYYY-MM-DD',
    },
    beReturn: {
      label: '是否回程', dataType: 'string', width: 100,
      type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status',
    },
    dispatchQuantity: {
      label: '实发件数', width: 100,
    },
    dispatchWeight: {
      label: '实发重量', width: 100,
    },
    dispatchVolume: {
      label: '实发体积(立方)', width: 160,
    },
    status: {
      label: '状态', search: true, dataType: 'string', width: 100,
      type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status',
    },
    remark: {
      label: '备注', width: 120,
      type: 'textarea', minRows: 3, maxRows: 5,
    },
    // mainDriverName: {
    //   label: '主驾驶员', width: 120,
    // },
    // assistantDriverName: {
    //   label: '副驾驶员', width: 120,
    // },
    // pointNum: {
    //   label: '提送货点数', width: 120,
    // },
    // quantity: {
    //   label: '件数', width: 120,
    // },
    // actualDepartureTime: {
    //   label: '实际出发时间', width: 180,
    // },
    // actualDepartureTimeRange: {
    //   label: '实际出发时间', display: false, search: true, searchRange: true, type: 'date',
    //   format: 'YYYY-MM-DD', hide: true, searchSpan: 5, searchLabelWidth: 120,
    //   valueFormat: 'YYYY-MM-DD',
    // },
    // requiredArrivalTime: {
    //   label: '要求到达时间', width: 180,
    // },
    // requiredArrivalTimeRange: {
    //   label: '要求到达时间', display: false, search: true, searchRange: true, type: 'date',
    //   format: 'YYYY-MM-DD', hide: true, searchSpan: 5, searchLabelWidth: 120,
    //   valueFormat: 'YYYY-MM-DD',
    // },
    // actualArrivalTime: {
    //   label: '实际到达时间', width: 180,
    // },
    // actualArrivalTimeRange: {
    //   label: '要求到达时间', display: false, search: true, searchRange: true, type: 'date',
    //   format: 'YYYY-MM-DD', hide: true, searchSpan: 5, searchLabelWidth: 120,
    //   valueFormat: 'YYYY-MM-DD',
    // },
    // beReturn: {
    //   label: '是否回程', dataType: 'string', width: 100,
    //   type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status',
    // },
    // dispatchQuantity: {
    //   label: '实发件数', width: 100,
    // },
    // dispatchWeight: {
    //   label: '实发重量', width: 100,
    // },
    // dispatchVolume: {
    //   label: '实发体积(立方)', width: 160,
    // },
    // status: {
    //   label: '状态', search: true, dataType: 'string', width: 100,
    //   type: 'select', dicUrl: '/system/dict/data/type/dispatch_order_status',
    // },
    // remark: {
    //   label: '备注', width: 120,
    //   type: 'textarea', minRows: 3, maxRows: 5,
    // },
    // createBy: {
    //   label: '创建人',
    // },
@@ -281,6 +290,7 @@
      type: 'select',
      dicUrl: '/system/dict/data/type/sys_whether_type',
    },
  }
})
@@ -378,6 +388,18 @@
  queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.actualArrivalTimeRange, 'actualArrivalTime') || {};
  exportDispatchOrder2(queryParams.value);
}
const downPZ =()=>{
  downloadFJ({no:pageAttachment.value.no}).then(res=>{
    console.log(res)
      const blob = new Blob([res])
    console.log(blob)
      saveAs(blob, decodeURI(pageAttachment.value.no+"附件.pdf"))
  })
}
</script>
<style lang="scss" scoped>
.avue-dialog .el-dialog__body {