潘志宝
2025-03-21 8d139bf079918171f140a53004ad4221937e3ad0
Merge remote-tracking branch 'origin/master'
已修改5个文件
已添加1个文件
107 ■■■■■ 文件已修改
.env.ansteel 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/model/mpk/mpk.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/mpk/file/MpkForm.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/model/pre/analysis/index.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.ansteel
对比新文件
@@ -0,0 +1,37 @@
# 测试环境:只在打包时使用
NODE_ENV=production
VITE_DEV=false
# 请求路径
VITE_BASE_URL='http://10.50.37.62'
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
VITE_UPLOAD_TYPE=server
# 接口地址
VITE_API_URL=/admin-api
# 是否删除debugger
VITE_DROP_DEBUGGER=true
# 是否删除console.log
VITE_DROP_CONSOLE=true
# 是否sourcemap
VITE_SOURCEMAP=false
# 打包路径
VITE_BASE_PATH=/plat
# 数据采集服务所在服务器,映射截图图片用
VITE_VIDEO_CAMERA_DOMAIN='10.50.37.62'
# 输出路径
VITE_OUT_DIR=plat
# 公共静态文件路径
VITE_STATIC_DIR=/plat/
# 验证码的开关
VITE_APP_CAPTCHA_ENABLE=false
.gitignore
@@ -1,6 +1,7 @@
node_modules
.DS_Store
dist
plat
dist-ssr
/dist*
pnpm-debug
package.json
@@ -14,6 +14,7 @@
    "build:test": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode test",
    "build:stage": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode stage",
    "build:prod": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode prod",
    "build:ansteel": "node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build --mode ansteel",
    "serve:dev": "vite preview --mode dev",
    "serve:prod": "vite preview --mode prod",
    "preview": "pnpm build:local && vite preview",
src/api/model/mpk/mpk.ts
@@ -39,7 +39,7 @@
}
export const modelRun = (params) => {
  return request.post({ url: '/model/mpk/api/test', data: params })
  return request.post({ url: '/model/mpk/api/test', data: params, timeout: 20 * 60 * 1000 })
}
export const saveModel = (data) => {
src/views/model/mpk/file/MpkForm.vue
@@ -316,7 +316,13 @@
  const formRules = reactive<FormRules>({
    pyName: [
      {required: true, message: '模型名称不能为空,请上传模型文件', trigger: 'blur'}
      {required: true, message: '模型名称不能为空,请上传模型文件', trigger: 'blur'},
      { validator: (rule, value, callback) => {
          if (value && value.includes('_')) {
            callback(new Error('模型名称不能包含下划线'));
          } else {
            callback();
          }}, trigger: 'blur' }
    ],
    pyChineseName: [
      {required: true, message: '模型中文名称不能为空', trigger: 'blur'}
src/views/model/pre/analysis/index.vue
@@ -58,13 +58,18 @@
        <div class="his-body">
          <div class="his-body-left">
            <div class="his-body-tree">
              <el-input
                v-model="filterText"
                class="mb-2"
                placeholder="Filter"
              />
              <el-tree
                :data="treeData"
                show-checkbox
                node-key="id"
                ref="tree"
                ref="treeRef"
                highlight-current
                :props="defaultProps"
                :filter-node-method="filterNode"
                @check="onCheckTree"/>
            </div>
          </div>
@@ -133,6 +138,11 @@
                      {{ calRateForm.preCumulant }}
                    </el-form-item>
                  </el-col>
                  <el-col :span="4">
                    <el-form-item label="平均绝对误差:" label-width="110px">
                      {{ calRateForm.deviation }}
                    </el-form-item>
                  </el-col>
                </el-row>
                <el-row>
                  <el-col :span="4">
@@ -158,6 +168,11 @@
                  <el-col :span="4">
                    <el-form-item label="真实累积量:">
                      {{ calRateForm.realCumulant }}
                    </el-form-item>
                  </el-col>
                  <el-col :span="4">
                    <el-form-item label="累积量平均绝对误差:" label-width="152px">
                      {{ calRateForm.deviationCumulant }}
                    </el-form-item>
                  </el-col>
                </el-row>
@@ -291,7 +306,9 @@
  itemPreMax: 0,
  itemPreMin: 0,
  preCumulant: 0,
  realCumulant: 0
  realCumulant: 0,
  deviation: 0, //平均绝对误差
  deviationCumulant: 0, //累积量平均绝对误差
})
let itemData = ref({
  currentTreeList: [],
@@ -313,6 +330,17 @@
  IN_DEVIATION: [{required: true, message: '精准度偏差不能为空', trigger: 'blur'}],
  OUT_DEVIATION: [{required: true, message: '不可信率偏差不能为空', trigger: 'blur'}],
})
// 树形过滤
const filterText = ref('')
const treeRef = ref()
watch(filterText, (val) => {
  treeRef.value!.filter(val)
})
const filterNode = (value: string, data) => {
  if (!value) return true
  return data.label.includes(value)
}
/** 查询列表 */
const getList = async (isClear = true) => {
@@ -780,6 +808,8 @@
    calRateForm.value.itemMin = dataView.hisMin;
    calRateForm.value.itemAvg = dataView.hisAvg;
    calRateForm.value.realCumulant = dataView.hisCumulant;
    calDeviation(dataView.realData,dataView.preDataL,'deviation')
    calDeviation(dataView.cumulantRealData,dataView.cumulantPreData,'deviationCumulant')
  }
  calAccuracyRate()
}
@@ -834,6 +864,24 @@
  calRateForm.value.IN_ACCURACY_RATE = Number(rateIn);
  calRateForm.value.OUT_ACCURACY_RATE = Number(rateOut);
  loading2.value = false;
}
function calDeviation(realData,preDataL,key) {
  if (realData == null || preDataL == null || realData.length === 0 || preDataL.length === 0) {
    return;
  }
  const realObj = {}
  realData.map(e => realObj[e[0]] = e[1])
  let sum = 0;
  let index = 0;
  preDataL.forEach(e => {
    if (realObj[e[0]] != undefined) {
      sum += Math.abs(e[1] - realObj[e[0]])
      index++
    }
  })
  calRateForm.value[key] = Number((sum / index).toFixed(2))
}
function rightSearchDataByRange() {
@@ -898,7 +946,9 @@
    itemPreMax: 0,
    itemPreMin: 0,
    preCumulant: 0,
    realCumulant: 0
    realCumulant: 0,
    deviation: 0, //平均绝对误差
    deviationCumulant: 0, //累积量平均绝对误差
  }
  calRateFormRef.value?.resetFields()
}