找回密码
 立即注册

QQ登录

只需一步,快速开始

BattleHawk76

最新发帖
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-6 11:18:12
11#
BattleHawk76 发表于 2023-12-6 11:15
好像不支持上传vue文件

您这边把文件放在一个压缩包里再上传试试。
回复 使用道具 举报
BattleHawk76
注册会员   /  发表于:2023-12-6 15:20:37
12#
index.zip (3.97 KB, 下载次数: 1)
回复 使用道具 举报
BattleHawk76
注册会员   /  发表于:2023-12-6 15:33:02
13#
  1. [
  2.   {
  3.     title: "货代编号",
  4.     dataKey: "freightForwarderNo",
  5.     width: 100,
  6.   },
  7.   {
  8.     title: "货代名称",
  9.     dataKey: "freightForwarderName",
  10.     width: 100,
  11.   },
  12.   {
  13.     title: "货代情况",
  14.     dataKey: "freightForwarderSituation",
  15.     width: 100,
  16.   },
  17.   {
  18.     title: "用到箱数",
  19.     dataKey: "boxesNum",
  20.     width: 100,
  21.   },
  22.   {
  23.     title: "货件号",
  24.     dataKey: "shipmentNo",
  25.     width: 100,
  26.   },
  27.   {
  28.     title: "追踪码",
  29.     dataKey: "trackingCode",
  30.     width: 100,
  31.   },
  32.   {
  33.     title: "周期",
  34.     dataKey: "cycle",
  35.     width: 100,
  36.   },
  37.   {
  38.     title: "接收数量",
  39.     dataKey: "receivedNum",
  40.     width: 100,
  41.   },
  42.   {
  43.     title: "仓库编码",
  44.     dataKey: "warehouseCode",
  45.     width: 120,
  46.   },
  47.   {
  48.     title: "类别",
  49.     dataKey: "code",
  50.     width: 200,
  51.     enterFun: (scope) => {
  52.       searchDetailByCode(scope.row.code, "code", scope.rowIndex);
  53.       choseTableRow.value = scope.row;
  54.       editCabinetRowIndex.value = null;
  55.     },
  56.   },
  57.   {
  58.     title: "商品名称",
  59.     dataKey: "productName",
  60.     width: 200,
  61.     enterFun: (scope) => {
  62.       searchDetailByCode(scope.row.productName, "productName", scope.rowIndex);
  63.       choseTableRow.value = scope.row;
  64.       editCabinetRowIndex.value = null;
  65.     },
  66.   },
  67.   {
  68.     title: "asin",
  69.     dataKey: "asin",
  70.     width: 100,
  71.   },
  72.   {
  73.     title: "欧洲备注",
  74.     dataKey: "europeRemark",
  75.     width: 100,
  76.   },
  77.   {
  78.     title: "SKU",
  79.     dataKey: "sku",
  80.     width: 150,
  81.     enterFun: (scope) => {
  82.       searchDetailBySku(scope.row, scope.rowIndex);
  83.       choseTableRow.value = scope.row;
  84.       editCabinetRowIndex.value = null;
  85.     },
  86.   },
  87.   {
  88.     title: "装数",
  89.     dataKey: "packagesNum",
  90.     width: 100,
  91.   },
  92.   {
  93.     title: "备注",
  94.     dataKey: "remark",
  95.     width: 100,
  96.   },
  97.   {
  98.     title: "特殊配件",
  99.     dataKey: "specialAccessories",
  100.     width: 100,
  101.   },
  102.   {
  103.     title: "件数",
  104.     dataKey: "num",
  105.     width: 100,
  106.     value: (item) => {
  107.       return proxy.lodash.round(
  108.         proxy.lodash.divide(item.totalBoxes, item.perBoxBoxesNum),
  109.         10
  110.       );
  111.     },
  112.   },
  113.   {
  114.     title: "每箱盒数",
  115.     dataKey: "perBoxBoxesNum",
  116.     width: 100,
  117.   },
  118.   {
  119.     title: "总盒数",
  120.     dataKey: "totalBoxes",
  121.     width: 100,
  122.   },
  123.   {
  124.     title: "内盒尺寸(cm)",
  125.     dataKey: "innerSizeCm",
  126.     width: 150,
  127.   },
  128.   {
  129.     title: "外盒尺寸(cm)",
  130.     dataKey: "outsideSizeCm",
  131.     width: 150,
  132.   },
  133.   {
  134.     title: "总只数",
  135.     dataKey: "totalNum",
  136.     width: 100,
  137.     value: (item) => {
  138.       return proxy.lodash.round(
  139.         proxy.lodash.multiply(item.packagesNum, item.totalBoxes),
  140.         10
  141.       );
  142.     },
  143.   },
  144.   {
  145.     title: "库存数量",
  146.     dataKey: "inventory",
  147.     width: 100,
  148.     onlyShow: true,
  149.   },
  150.   {
  151.     title: "每箱重量",
  152.     dataKey: "boxWeightKg",
  153.     width: 100,
  154.   },
  155.   {
  156.     title: "总重",
  157.     dataKey: "totalWeight",
  158.     width: 100,
  159.     value: (item) => {
  160.       return proxy.lodash.round(
  161.         proxy.lodash.multiply(item.num, item.boxWeightKg),
  162.         10
  163.       );
  164.     },
  165.   },
  166.   {
  167.     title: "体积重单件",
  168.     dataKey: "volume",
  169.     width: 100,
  170.   },
  171.   {
  172.     title: "总体积",
  173.     dataKey: "totalVolume",
  174.     width: 100,
  175.     value: (item) => {
  176.       return proxy.lodash.round(
  177.         proxy.lodash.multiply(item.num, item.volume),
  178.         10
  179.       );
  180.     },
  181.   },
  182.   {
  183.     title: "单价",
  184.     dataKey: "price",
  185.     width: 100,
  186.   },
  187.   {
  188.     title: "总额",
  189.     dataKey: "total",
  190.     width: 100,
  191.     value: (item) => {
  192.       return proxy.lodash.round(
  193.         proxy.lodash.multiply(
  194.           item.price,
  195.           proxy.lodash.multiply(item.packagesNum, item.totalBoxes)
  196.         ),
  197.         10
  198.       );
  199.     },
  200.   },
  201.   {
  202.     title: "我们发货时间",
  203.     dataKey: "deliveryTime",
  204.     width: 180,
  205.     type: "datetime",
  206.   },
  207.   {
  208.     title: "货代发货日期",
  209.     dataKey: "freightForwarderDate",
  210.     width: 180,
  211.     type: "datetime",
  212.   },
  213.   {
  214.     title: "天数",
  215.     dataKey: "days",
  216.     width: 100,
  217.   },
  218.   {
  219.     title: "到仓时间",
  220.     dataKey: "arrivalTime",
  221.     width: 180,
  222.     type: "datetime",
  223.   },
  224.   {
  225.     title: "实际到仓日期",
  226.     dataKey: "actualArrivalTime",
  227.     width: 180,
  228.     type: "datetime",
  229.   },
  230.   {
  231.     title: "报价",
  232.     dataKey: "offer",
  233.     width: 100,
  234.   },
  235.   {
  236.     title: "重量",
  237.     dataKey: "weight",
  238.     width: 100,
  239.   },
  240.   {
  241.     title: "总价",
  242.     dataKey: "totalPrice",
  243.     width: 100,
  244.   },
  245.   {
  246.     title: "单号",
  247.     dataKey: "encode",
  248.     width: 100,
  249.   },
  250.   {
  251.     title: "备注2",
  252.     dataKey: "remark2",
  253.     width: 100,
  254.   },
  255.   // {
  256.   //   title: "规格名称",
  257.   //   dataKey: "specName",
  258.   //   width: 200,
  259.   // },
  260.   {
  261.     title: "已开单",
  262.     dataKey: "completeNum",
  263.     width: 100,
  264.     value: (item) => {
  265.       return item.completeNum || 0;
  266.     },
  267.   },
  268.   {
  269.     title: "未开单",
  270.     dataKey: "unfinishedNum",
  271.     width: 100,
  272.     value: (item) => {
  273.       return (
  274.         proxy.lodash.round(
  275.           proxy.lodash.subtract(
  276.             item.num ||
  277.               proxy.lodash.round(
  278.                 proxy.lodash.divide(item.totalBoxes, item.perBoxBoxesNum),
  279.                 10
  280.               ),
  281.             item.completeNum
  282.           ),
  283.           10
  284.         ) || 0
  285.       );
  286.     },
  287.   },
  288.   {
  289.     title: "每盒重量",
  290.     dataKey: "innerWeightKg",
  291.     width: 100,
  292.   },
  293.   // {
  294.   //   title: "缺口数量",
  295.   //   dataKey: "gapNum",
  296.   //   width: 100,
  297.   // },
  298.   {
  299.     title: "装柜",
  300.     dataKey: "cabinetName",
  301.     width: 70,
  302.     fixed: "right",
  303.     onlyShow: true,
  304.   },
  305.   {
  306.     title: "包装小组",
  307.     dataKey: "packingTeamName",
  308.     width: 180,
  309.     fixed: "right",
  310.     onlyShow: true,
  311.     h: ({ scope }) => {
  312.       return h(VSelect, {
  313.         modelValue: scope.row.packingTeamId,
  314.         items: packingGroupList.value,
  315.         density: "compact",
  316.         itemTitle: "deptName",
  317.         itemValue: "id",
  318.         clearable: true,
  319.         style: {
  320.           width: "180px",
  321.           height: "20px",
  322.         },
  323.         menuProps: {
  324.           attach: "#gcEditingInput",
  325.         },
  326.         "onUpdate:modelValue": (e) => {
  327.           scope.row.packingTeamId = e;
  328.           scope.row.packingTeamName = proxy.lodash.find(
  329.             packingGroupList.value,
  330.             (item) => {
  331.               return item.id == e;
  332.             }
  333.           )?.deptName;
  334.         },
  335.         "onClick:clear": () => {
  336.           scope.row.packingTeamId = null;
  337.           scope.row.packingTeamName = null;
  338.         },
  339.       });
  340.     },
  341.   },
  342.   // {
  343.   //   title: "操作",
  344.   //   width: 200,
  345.   //   fixed: "right",
  346.   //   cellRenderer: (row) => {
  347.   //     return h("div", {}, [
  348.   //       h(
  349.   //         ElButton,
  350.   //         {
  351.   //           type: "danger",
  352.   //           onclick: () => {
  353.   //             row.rowData.cabinetName = null;
  354.   //             row.rowData.cabinetId = null;
  355.   //           },
  356.   //           disabled: !row.rowData.id,
  357.   //           size: "small",
  358.   //         },
  359.   //         "删除装柜"
  360.   //       ),
  361.   //       h(
  362.   //         ElButton,
  363.   //         {
  364.   //           type: "success",
  365.   //           onclick: () => {
  366.   //             handleAddOrEditCabinet("edit", row.rowData, "out");
  367.   //           },
  368.   //           disabled: !row.rowData.id,
  369.   //           size: "small",
  370.   //         },
  371.   //         "分配装柜"
  372.   //       ),
  373.   //     ]);
  374.   //   },
  375.   // },
  376. ]
复制代码
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-6 17:55:40
14#
您好,我看了一下您的代码,如果要监听行剪切事件的话,直接监听RowChanged即可:

参考链接:https://demo.grapecity.com.cn/sp ... s.Events#rowchanged

TableRowsChanged是用于监听表格的行变动事件的,所以不会触发。

另外关于英文的问题,您这边检查一下您有没有引入中文资源,然后要设置下面这行代码才可以:

GC.Spread.Common.CultureManager.culture("zh-cn");

如:

image.png865343322.png

错位的问题我这边没有办法运行所以没有复现出来,可能是样式导致的问题,方便的话还是提供一个可以复现问题的Demo,我们这边复现后调研一下。
回复 使用道具 举报
BattleHawk76
注册会员   /  发表于:2023-12-6 21:04:31
15#
Joestar.Xu 发表于 2023-12-6 17:55
您好,我看了一下您的代码,如果要监听行剪切事件的话,直接监听RowChanged即可:

参考链接:https://de ...

中文可以了.
但是剪切插入还是会卡.
剪切插入RowChanged也不会触发
回复 使用道具 举报
AlexZ讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-12-7 00:28:59
16#
错位的问题,请检查是否有 CSS 冲突

剪切插入会卡
剪切的行数有多少?是否在筛选状态下?

是否尝试过挂起事件、计算和脏数据

参考:https://demo.grapecity.com.cn/spreadjs/help/docs/BestPractices
回复 使用道具 举报
BattleHawk76
注册会员   /  发表于:2023-12-7 09:23:28
17#
AlexZ 发表于 2023-12-7 00:28
错位的问题,请检查是否有 CSS 冲突

剪切的行数有多少?是否在筛选状态下?

剪切的行数不多.没有在筛选状态下使用.
但是总数据有900多条.
我想尝试挂起事件.但是不知道该在什么时候去挂起
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-12-7 10:07:53
18#
BattleHawk76 发表于 2023-12-6 21:04
中文可以了.
但是剪切插入还是会卡.
剪切插入RowChanged也不会触发

抱歉之前误解您的意思了,如果是要通过剪切来插入行的话,需要您监听ClipboardPasted事件来实现,请参考:https://demo.grapecity.com.cn/sp ... nts#clipboardpasted

根据您描述的卡顿问题,您可以尝试在ClipboardPasting事件中执行suspend和resume的操作来提高性能,如仍无法解决您的问题,请您提供一个可以复现您问题的Demo,这边复现后调研一下看看是什么原因导致的问题。
回复 使用道具 举报
BattleHawk76
注册会员   /  发表于:2023-12-7 10:19:35
19#
Joestar.Xu 发表于 2023-12-7 10:07
抱歉之前误解您的意思了,如果是要通过剪切来插入行的话,需要您监听ClipboardPasted事件来实现,请参考 ...

这个监听事件好像是完成之后才会执行.而不是开始就执行.我尝试了剪切插入.他等剪切插入完成之后才会执行里面的代码
回复 使用道具 举报
BattleHawk76
注册会员   /  发表于:2023-12-7 10:23:19
20#
image.png495845641.png
我在他剪切的时候就执行了停止渲染.也还是没有用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部