吉安感知网项目-前端
shuishen
2026-01-27 280e0b51a9e97685a8ddf6e58dc2ca29bdb60525
Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web
8 files modified
100 ■■■■■ changed files
applications/task-work-order/env/.env 3 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue 36 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionReport/index.vue 37 ●●●●● patch | view | raw | blame | history
uniapps/work-app/src/subPackages/workDetail/index.vue 8 ●●●●● patch | view | raw | blame | history
uniapps/work-wx/src/pages/equipmentManagement/index.vue 6 ●●●● patch | view | raw | blame | history
uniapps/work-wx/src/pages/legalPolicy/index.vue 7 ●●●● patch | view | raw | blame | history
uniapps/work-wx/src/subPackages/deviceRegistration/add.vue 1 ●●●● patch | view | raw | blame | history
uniapps/work-wx/src/subPackages/flightApplication/index.vue 2 ●●● patch | view | raw | blame | history
applications/task-work-order/env/.env
@@ -18,3 +18,6 @@
# xt接口地址
VITE_APP_URL_XT=http://218.202.104.82:8200
# 预览地址 previewURL
VITE_APP_PREVIEW_URL=http://192.168.1.204:8012
applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
@@ -199,7 +199,8 @@
})
const formRef = ref(null)
const formData = reactive({
const initForm = () => ({
    flyerName: '',
    flyerId: '',
    flyerPhone: '',
@@ -208,7 +209,22 @@
    technicalStrength: '',
    skilledUavType: '',
    certification: [], // 证书
    regionCode: '', // 区域编码
})
const formData = ref(initForm()) // 表单数据
// const rules = {
//     flyerId: fieldRules(true),
//     flyerPhone: fieldRules(true, 50),
//     flightHours: fieldRules(true, 50),
//     technicalSkills: fieldRules(true, 50),
//     skilledTaskType: fieldRules(true),
//     projectExperience: fieldRules(true),
//     technicalStrength: fieldRules(true),
//     skilledUavType: fieldRules(true, 50),
// }
const rules = {
    flyerId: [
@@ -243,10 +259,11 @@
watch(
    () => props.flyingHandData,
    (newData) => {
        formData.value = initForm()
        if (newData) {
            Object.assign(formData, newData)
            formData.flightHours = Number(newData.flightHours)
        }
            Object.assign(formData.value, newData)
            formData.value.flightHours = Number(newData.flightHours)
        }
    },
    { deep: true, immediate: true }
)
@@ -260,8 +277,9 @@
// 处理选择飞手姓名
function handleChange(val) {
    const result = flyingHandList.value.find(item => item.id === val) || []
    formData.flyerName = result.name
    formData.certification = formData.certification.concat(result.licenseFrontFileUrl || [], result.licenseBackFileUrl || [])
    formData.value.flyerName = result.name
    formData.value.regionCode = result.regionCode
    formData.value.certification = formData.value.certification.concat(result.licenseFrontFileUrl || [], result.licenseBackFileUrl || [])
}
@@ -270,7 +288,7 @@
function resetForm() {
    formRef.value?.resetFields()
    // 重置为默认值
    Object.assign(formData, {
    Object.assign(formData.value, {
        flyerName: '',
        flyerPhone: '',
        flightHours: 0,
@@ -290,10 +308,10 @@
    try {
        if (props.dialogType === 'add') {
            await submitFlyingHand(formData)
            await submitFlyingHand(formData.value)
            ElMessage.success('添加成功')
        } else if (props.dialogType === 'edit') {
            await submitFlyingHand(formData)
            await submitFlyingHand(formData.value)
            ElMessage.success('编辑成功')
        }
        emit('confirm')
applications/task-work-order/src/views/orderView/orderManage/inspectionReport/index.vue
@@ -145,6 +145,7 @@
import { getDictLabel } from '@ztzf/utils'
import PreviewFiles from '@/components/PreviewFiles/PreviewFiles.vue'
import { getDictionaryByCode } from '@/api/system/dictbiz'
import { Base64 } from 'js-base64'
const store = useStore()
const userInfo = computed(() => store.getters.userInfo)
@@ -237,29 +238,33 @@
    editParams.value.link = row.link
}
// 'zip', 'rar', 'jar', 'tar', 'gzip', '7z',
const allSupportedExtensions = [
    'doc', 'docx', 'xls', 'xlsx', 'xlsm', 'ppt', 'pptx', 'csv', 'tsv', 'dotm', 'xlt', 'xltm', 'dot', 'dotx', 'xlam', 'xla',
    'wps', 'dps', 'et', 'ett', 'wpt',
    'odt', 'ods', 'ots', 'odp', 'otp', 'six', 'ott', 'fodt', 'fods',
    'vsd', 'vsdx', 'wmf', 'emf', 'psd',
    'pdf', 'ofd', 'rtf', 'epub',
    'xmind', 'bpmn', 'eml',
    'obj', '3ds', 'stl', 'ply', 'gltf', 'glb', 'off', '3dm', 'fbx', 'dae', 'wrl', '3mf', 'ifc', 'brep', 'step', 'iges', 'fcstd', 'bim',
    'dwg', 'dxf',
    'txt', 'xml', 'md', 'java', 'php', 'py', 'js', 'css',
    'jpg', 'jpeg', 'png', 'gif', 'bmp', 'ico', 'jfif', 'webp', 'tif', 'tiff', 'tga', 'svg',
    'mp3', 'wav', 'mp4', 'flv', 'avi', 'mov', 'rm', 'webm', 'ts', 'mkv', 'mpeg', 'ogg', 'mpg', 'rmvb', 'wmv', '3gp', 'swf'
];
const { VITE_APP_PREVIEW_URL } = import.meta.env
// 在线查看文档
function seeOnlineWord(row) {
    // 获取点之后的文件格式名
    const fileType = row?.link?.split('.').pop() || ''
    if (!row.link) {
        ElMessage.warning('文件链接不存在')
        return
    } else if (
        !row.link.includes('docx') &&
        !row.link.includes('pdf') &&
        !row.link.includes('png') &&
        !row.link.includes('jpg')
    ) {
    }else if (allSupportedExtensions.includes(fileType)){
        window.open(`${VITE_APP_PREVIEW_URL}/onlinePreview?url=`+encodeURIComponent(Base64.encode(row.link)));
    }else {
        ElMessage.warning(`${fileType}文件格式,可以下载再查看`)
        return
    } else if (row.link.includes('png') || row.link.includes('jpg')) {
        previewVisibleImg.value = true
        searchUrl.value = row.link
        return
    } else if (row.link.includes('docx') || row.link.includes('pdf')) {
        previewVisible.value = true
        searchUrl.value = row.link
        return
    }
}
uniapps/work-app/src/subPackages/workDetail/index.vue
@@ -158,7 +158,11 @@
    uni.showToast({
      title: '退回成功',
      icon: 'success',
      duration: 1500
    })
    setTimeout(() => {
      uni.navigateBack()
    }, 1500)
  })
}
@@ -169,7 +173,11 @@
    uni.showToast({
      title: '确认成功',
      icon: 'success',
      duration: 1500
    })
    setTimeout(() => {
      uni.navigateBack()
    }, 1500)
  })
}
// 分享模态框状态
uniapps/work-wx/src/pages/equipmentManagement/index.vue
@@ -132,7 +132,7 @@
  }
  .card {
    display: flex;
    padding: 44rpx;
    padding: 40rpx 0;
    border-bottom: 1px solid #EBEEF3;
    .left {
      width: 70px;
@@ -157,6 +157,10 @@
        color: #86909C;
        margin-bottom: 14rpx;
      }
      // 最后一个txt 不添加margin-bottom
      .txt:last-child {
        margin-bottom: 0;
      }
    }
  }
  // 第一个card 不添加下边框
uniapps/work-wx/src/pages/legalPolicy/index.vue
@@ -1,7 +1,7 @@
<template>
  <view class="legalPolicy">
    <!-- <u-navbar title="法律政策" @rightClick="rightClick" :autoBack="true"></u-navbar> -->
    <u-search :bgColor="'white'" v-model="noticeTitle" :show-action="true" actionText="搜索" :animation="true" @custom="handleSearch"></u-search>
    <u-search :bgColor="'white'" v-model="formParams.noticeTitle" :show-action="true" actionText="搜索" :animation="true" @custom="handleSearch"></u-search>
    <view class="tabs-container">
      <u-tabs :list="tabs" lineColor="#265CFD" @click="tabClick"></u-tabs>
    </view>
@@ -27,8 +27,6 @@
  import docSvg from '@/static/images/doc.png'
import { ref, onMounted } from 'vue'
const noticeTitle = ref('')
const tabs = ref([
  {
    name: '法律法规',
@@ -42,7 +40,7 @@
  current: 1,
  size: 10,
  noticeType: 2,
  noticeTitle: noticeTitle.value,
  noticeTitle: '',
  isAsc: true
})
@@ -62,7 +60,6 @@
const handleSearch = () => {
  // 搜索时重置为第一页
  formParams.value.current = 1
  formParams.value.noticeTitle = formParams.value.noticeTitle.trim()
  getSysNoticeList()
}
// 触底加载
uniapps/work-wx/src/subPackages/deviceRegistration/add.vue
@@ -649,6 +649,7 @@
    :deep(.u-button--primary) {
        background-color: #265CFD;
        border-color: #265CFD;
    }
    :deep(.u-form) {
uniapps/work-wx/src/subPackages/flightApplication/index.vue
@@ -187,7 +187,7 @@
                flex: 1;
                max-width: 350rpx;
                height: 166rpx;
                background: rgba(251,253,255,0.57);
                background: rgba(251,253,255,0.8);
                box-shadow: inset 0px 0px 7px 0px rgba(64,156,230,0.14), 0px 1px 3px 0px rgba(35,49,96,0.11);
                border-radius: 8px 8px 8px 8px;
                border: 1px solid #fff;