请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

yaximi

初级会员

14

主题

53

帖子

205

积分

初级会员

积分
205
yaximi
初级会员   /  发表于:2025-7-3 16:10  /   查看:210  /  回复:18
50金币
本帖最后由 yaximi 于 2025-7-3 16:12 编辑

在执行导入导出命令前执行了Javascript命令,在测试环境一切正常,在发布到生产环境后,就会出现第三张图的问题,javascript命令执行时间0毫秒,跟没执行一样,去掉javascript命令后导入导出正常执行。但是应为一些原因不能去掉javascript命令。有无大佬知道是啥问题









附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

大佬,这边简单修改了下;可以参考下哦~

18 个回复

倒序浏览
最佳答案
最佳答案
Levi.Zhang
超级版主   /  发表于:2025-7-3 16:10:16
来自 17#
大佬,这边简单修改了下;可以参考下哦~
  1. console.log('第一行');
  2. try {
  3.     console.log('第二行');
  4.     const useCrews = {};
  5.     Forguncy.CommandHelper.getVariableValue("使用班组")?.map(item => {
  6.         useCrews[item['title']] = item['value'];
  7.     });

  8.     console.log('第三行');
  9.     const resourceStatusMap = {};
  10.     Forguncy.CommandHelper.getVariableValue("状态")?.map(item => {
  11.         resourceStatusMap[item['title']] = item['value'];
  12.     });

  13.     console.log('第四行');
  14.     const personMap = {};
  15.     Forguncy.CommandHelper.getVariableValue("人员信息")?.map(item => {
  16.         personMap[item['名称']] = item['工号'];
  17.     });

  18.     console.log('第五行');
  19.     const deptMap = {};
  20.     Forguncy.CommandHelper.getVariableValue("部门")?.map(item => {
  21.         deptMap[item['Name']] = item['ID'];
  22.     });

  23.     console.log('第六行');
  24.     const listview = Forguncy.Page.getListView("导入暂存表");
  25.     const count = listview.getRowCount();
  26.     if (count === 0) {
  27.         Forguncy.Page.getCell("报错状态").setValue(false);
  28.         Forguncy.Page.getCell("报错").setValue(`导入excel数据为空`);
  29.     }

  30.     console.log('第七行');
  31.     function isDateTimeString(str) {
  32.         if (!isNaN(Date.parse(str))) return true;
  33.         const chineseDateRegex = /^(\d{4})年(0?[1-9]|1[0-2])月(0?[1-9]|[12][0-9]|3[01])日$/;
  34.         if (chineseDateRegex.test(str)) {
  35.             const [, year, month, day] = str.match(chineseDateRegex);
  36.             const date = new Date(year, month - 1, day);
  37.             return date.getFullYear() == year &&
  38.                 date.getMonth() + 1 == month &&
  39.                 date.getDate() == day;
  40.         }
  41.         return /^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$/.test(str);
  42.     }

  43.     const infos = listview.getMergedColumnInfos();
  44.     const keyArrarys = [];

  45.     for (let i = 0; i < count; i++) {
  46.         let currentStatus = true;
  47.         let errorMessage = "";

  48.         let 名称 = listview.getValue(i, "名称") ?? '';
  49.         let 数量 = listview.getValue(i, "数量");
  50.         let 规格型号 = listview.getValue(i, "规格型号") ?? '';
  51.         let 物料编码 = listview.getValue(i, "物料编码") ?? '';
  52.         let 厂家批号 = listview.getValue(i, "厂家批号") ?? '';
  53.         let supplier = listview.getValue(i, "供应商");
  54.         let 唯一标识 = listview.getValue(i, "唯一标识");
  55.         let 购置时间 = listview.getValue(i, "购置时间");
  56.         let 状态 = listview.getValue(i, "状态");
  57.         let 当前位置 = listview.getValue(i, "当前位置");
  58.         let 备注 = listview.getValue(i, "备注");
  59.         let 使用班组 = listview.getValue(i, "使用班组");
  60.         let 班组负责人 = listview.getValue(i, "班组负责人");
  61.         let 工艺负责人 = listview.getValue(i, "工艺负责人");
  62.         let 使用人 = listview.getValue(i, "使用人");
  63.         let 使用部门 = listview.getValue(i, "使用部门");
  64.         let 是否专用资源 = listview.getValue(i, "是否专用资源");
  65.         let 专用机型 = listview.getValue(i, "专用机型");
  66.         let 是否站位串用资源 = listview.getValue(i, "是否站位串用资源");
  67.         let 是否计量 = listview.getValue(i, "是否计量");

  68.         let key = 名称 + 规格型号 + 厂家批号 + 物料编码;
  69.         if (keyArrarys.includes(key)) {
  70.             currentStatus = false;
  71.             errorMessage += `名称:${名称},规格型号:${规格型号},厂家批号:${厂家批号},物料编码:${物料编码}重复`;
  72.         } else {
  73.             keyArrarys.push(key);
  74.         }

  75.         if (!名称 || !数量 || !规格型号 || !厂家批号) {
  76.             currentStatus = false;
  77.             errorMessage += `名称,数量,规格型号,供应商必填,`;
  78.         }

  79.         if (状态 && !resourceStatusMap[状态]) {
  80.             currentStatus = false;
  81.             errorMessage += `状态在数据字典中不存在,`;
  82.         } else {
  83.             listview.setValue(i, "状态", resourceStatusMap[状态]);
  84.         }

  85.         if (数量 && isNaN(parseFloat(数量))) {
  86.             currentStatus = false;
  87.             errorMessage += `数量不是数字,`;
  88.         }

  89.         if (使用班组 && !useCrews[使用班组]) {
  90.             currentStatus = false;
  91.             errorMessage += `使用班组在数据字典中不存在,`;
  92.         } else {
  93.             listview.setValue(i, "使用班组", useCrews[使用班组]);
  94.         }

  95.         if (是否专用资源 && !['是', '否'].includes(是否专用资源)) {
  96.             currentStatus = false;
  97.             errorMessage += `导入的是否专业资源文本不是是或否,`;
  98.         } else {
  99.             listview.setValue(i, "是否专用资源", 是否专用资源 === '是' ? 1 : 0);
  100.         }

  101.         if (是否站位串用资源 && !['是', '否'].includes(是否站位串用资源)) {
  102.             currentStatus = false;
  103.             errorMessage += `导入的是否站位串用资源文本不是是或否,`;
  104.         } else {
  105.             listview.setValue(i, "是否站位串用资源", 是否站位串用资源 === '是' ? 1 : 0);
  106.         }

  107.         if (是否计量 && !['是', '否'].includes(是否计量)) {
  108.             currentStatus = false;
  109.             errorMessage += `导入的是是否计量文本不是是或否,`;
  110.         } else {
  111.             listview.setValue(i, "是否计量", 是否计量 === '是' ? 1 : 0);
  112.         }

  113.         if (购置时间 && !isDateTimeString(购置时间)) {
  114.             currentStatus = false;
  115.             errorMessage += `时间类型格式不正确,`;
  116.         }

  117.         if (班组负责人 && !personMap[班组负责人]) {
  118.             currentStatus = false;
  119.             errorMessage += `班组负责人不存在,`;
  120.         } else {
  121.             listview.setValue(i, "班组负责人", personMap[班组负责人]);
  122.         }

  123.         if (工艺负责人 && !personMap[工艺负责人]) {
  124.             currentStatus = false;
  125.             errorMessage += `工艺负责人不存在,`;
  126.         } else {
  127.             listview.setValue(i, "工艺负责人", personMap[工艺负责人]);
  128.         }

  129.         if (使用人 && !personMap[使用人]) {
  130.             currentStatus = false;
  131.             errorMessage += `使用人不存在,`;
  132.         } else {
  133.             listview.setValue(i, "使用人", personMap[使用人]);
  134.         }

  135.         if (使用部门 && !deptMap[使用部门]) {
  136.             currentStatus = false;
  137.             errorMessage += `使用部门不存在,`;
  138.         } else {
  139.             listview.setValue(i, "使用部门", deptMap[使用部门]);
  140.         }

  141.         if (!currentStatus) {
  142.             const oldError = Forguncy.Page.getCell('报错').getValue();
  143.             Forguncy.Page.getCell('报错').setValue((oldError ? oldError + '\n' : '') + `第${i + 1}行${errorMessage};`);
  144.             Forguncy.Page.getCell("报错状态").setValue(false);
  145.         }

  146.         for (let j = 0; j < infos?.length; j++) {
  147.             let columnName = infos[j]['ColumnName'];
  148.             let value = listview.getValue(i, columnName);
  149.             if (columnName && typeof value === 'string') {
  150.                 listview.setValue(i, columnName, value.trim());
  151.             }
  152.             if (value === null) {
  153.                 listview.setValue(i, columnName, '');
  154.             }
  155.         }
  156.     }

  157. } catch (error) {
  158.     console.log(error, 'xxx');
  159. }
  160. console.log('第八行');
复制代码



回复 使用道具 举报
yaximi
初级会员   /  发表于:2025-7-3 16:16:57
2#
也不报错
回复 使用道具 举报
wwbb
中级会员   /  发表于:2025-7-3 16:30:45
3#

js具体执行了什么?
可以给加了两个日志检查下具有有么有执行js
console.log("第一个我执行了")
回复 使用道具 举报
yaximi
初级会员   /  发表于:2025-7-4 09:22:18
4#
wwbb 发表于 2025-7-3 16:30
js具体执行了什么?
可以给加了两个日志检查下具有有么有执行js
console.log("第一个我执 ...

加了打印也什么都没有,javascript命令0毫秒,根本没进去
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2025-7-4 09:46:44
5#
感谢大佬们的支持~
从截图来看,猜测应该是JavaScript没有生效;不知道JavaScript具体写了些什么,光从截图来看没什么思路,可能就需要大佬发下具体的Demo来分析了~
回复 使用道具 举报
yaximi
初级会员   /  发表于:2025-7-4 10:05:10
6#
Levi.Zhang 发表于 2025-7-4 09:46
感谢大佬们的支持~
从截图来看,猜测应该是JavaScript没有生效;不知道JavaScript具体写了些什么,光从截 ...

文件直接运行没有问题,部署到生产环境就不显示了,导入请用导入模板,导入导出都不生效

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
yaximi
初级会员   /  发表于:2025-7-4 10:09:59
7#
yaximi 发表于 2025-7-4 10:05
文件直接运行没有问题,部署到生产环境就不显示了,导入请用导入模板,导入导出都不生效

导入模板.................................

http://sclly.cn/service-storage/outer/fFcVfmdiAjOIVMEZwohhGTltbdUcUrpiuHAPDoqMo.xlsx
回复 使用道具 举报
wwbb
中级会员   /  发表于:2025-7-4 13:29:14
8#

你尝试用IP加端口直接访问系统做导入,看看具体的js执不执行;
还可以检测下域名是不是有CDN,可能存在缓存;
重启应用也试试。
回复 使用道具 举报
yaximi
初级会员   /  发表于:2025-7-4 13:39:58
9#
wwbb 发表于 2025-7-4 13:29
你尝试用IP加端口直接访问系统做导入,看看具体的js执不执行;
还可以检测下域名是不是有CDN,可能存在 ...

你是说直接调用端命令吗,但是我需要前面的js先帮我处理下数据再导入
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部