@gct-paas/word 0.1.74-beta.35 → 0.1.74-beta.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,6 @@ type OperationReceiveQtyWidgetInstance = {
14
14
  };
15
15
  /** 从单个 widget 实例解析工序接收数量 enrich 目标 */
16
16
  export declare function tryCollectOperationReceiveQtyTarget(instance: OperationReceiveQtyWidgetInstance): OperationReceiveQtyWidgetTarget | null;
17
- /** 工序接收数量:params 取 containerId / routingOperationId,空值时拉取 qty_current_ */
17
+ /** 工序接收数量:getOne query 取 container_id_ / routing_operation_id_,空值时拉取 qty_current_ */
18
18
  export declare function createOperationReceiveQtyEnricher(doc: Doc, targets: OperationReceiveQtyWidgetTarget[]): DataEnricherRegistration;
19
19
  export {};
@@ -1,5 +1,10 @@
1
+ import { SelectApiBinding } from '../table/types';
2
+ /** 填报设备下拉 / 扫码查询 */
3
+ export declare const DEVICE_SEARCH_API: SelectApiBinding;
4
+ export declare const DEVICE_GROUP_QUERY_KEY = "device_group_id_";
1
5
  /**
2
- * 设备可选过滤:启用中 + 使用中 +(校准有效期未过 OR 无校准日期)。
6
+ * 设备可选过滤:使用中 +(校准有效期未过 OR 无校准日期)。
3
7
  * `__orExpKeys` 供 buildLikeQuery 把校准两条件做成 OR。
8
+ * 设备组不要放进 extraQuery。
4
9
  */
5
10
  export declare function buildDeviceBaseQuery(extraQuery?: Record<string, any>): Record<string, any>;
package/dist/index.es.js CHANGED
@@ -1,5 +1,5 @@
1
- /*! @gct-paas/word v0.1.74-beta.35 */
2
- import { Fragment, Suspense, Teleport, Transition, TransitionGroup, cloneVNode, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, getCurrentInstance, getCurrentScope, guardReactiveProps, h, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, render, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toRaw, toRef, toValue, unref, useAttrs, useCssVars, useModel, useSlots, vModelRadio, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
1
+ /*! @gct-paas/word v0.1.74-beta.37 */
2
+ import { Fragment, Suspense, Teleport, Transition, TransitionGroup, cloneVNode, computed, createApp, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, effectScope, getCurrentInstance, getCurrentScope, guardReactiveProps, h, inject, isRef, isVNode, markRaw, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, openBlock, provide, reactive, readonly, ref, render, renderList, renderSlot, resolveComponent, resolveDynamicComponent, shallowRef, toDisplayString, toHandlers, toRaw, toRef, toValue, unref, useAttrs, useCssVars, useModel, useSlots, vModelRadio, vModelText, vShow, watch, watchEffect, withCtx, withDirectives, withKeys, withModifiers } from "vue";
3
3
  import St, { PopperWrapper } from "floating-vue";
4
4
  import VueKonva from "vue-konva";
5
5
  import { HttpUtil, api } from "@gct-paas/api";
@@ -98697,25 +98697,31 @@ var init_columns = __esmMin((() => {
98697
98697
  //#endregion
98698
98698
  //#region src/domain/device/device-query.ts
98699
98699
  /**
98700
- * 设备可选过滤:启用中 + 使用中 +(校准有效期未过 OR 无校准日期)。
98700
+ * 设备可选过滤:使用中 +(校准有效期未过 OR 无校准日期)。
98701
98701
  * `__orExpKeys` 供 buildLikeQuery 把校准两条件做成 OR。
98702
+ * 设备组不要放进 extraQuery。
98702
98703
  */
98703
98704
  function buildDeviceBaseQuery(extraQuery) {
98704
98705
  const today = dayjs().startOf("day").format("YYYY-MM-DD HH:mm:ss");
98705
- const queryData = {
98706
- operating_state_: true,
98706
+ const { "device_type_id_.eq": deviceTypeId, ...extra } = extraQuery ?? {};
98707
+ return {
98707
98708
  "state_.eq": DeviceStatus.IN_USE,
98708
98709
  "next_calibration_date_.ge": today,
98709
98710
  "next_calibration_date_.isNull": null,
98710
- ...extraQuery,
98711
+ ...extra,
98712
+ ...deviceTypeId ? { "device_type_id_.eq": deviceTypeId } : {},
98711
98713
  __orExpKeys: ["next_calibration_date_.ge", "next_calibration_date_.isNull"]
98712
98714
  };
98713
- const deviceTypeId = queryData["device_type_id_.eq"];
98714
- if (deviceTypeId == null || deviceTypeId === "") delete queryData["device_type_id_.eq"];
98715
- return queryData;
98716
98715
  }
98716
+ var DEVICE_SEARCH_API, DEVICE_GROUP_QUERY_KEY;
98717
98717
  var init_device_query = __esmMin((() => {
98718
98718
  init_enum();
98719
+ DEVICE_SEARCH_API = {
98720
+ modelCategory: "entity",
98721
+ modelKey: "em_device",
98722
+ bsKey: "biz_form_device_search"
98723
+ };
98724
+ DEVICE_GROUP_QUERY_KEY = "device_group_id_";
98719
98725
  }));
98720
98726
  //#endregion
98721
98727
  //#region src/runtime/renderer/dropdowns/components/tables/utils/quick-search.ts
@@ -98780,9 +98786,14 @@ function buildLikeQuery(searchFields, keyword, extraQuery = {}, options) {
98780
98786
  exp
98781
98787
  };
98782
98788
  }
98783
- /** 设备下拉:按设计端配置搜索,并附加设备可选范围过滤。 */
98784
- function buildDeviceQuickSearchQuery(quickSearchField, keyword, extraQuery) {
98785
- return buildLikeQuery(quickSearchField || [], keyword, buildDeviceBaseQuery(extraQuery));
98789
+ /** 设备下拉:条件与 ref 相同;deviceGroupId 只进 query,不进 exp。 */
98790
+ function buildDeviceQuickSearchQuery(quickSearchField, keyword, extraQuery, deviceGroupId) {
98791
+ const { queryData, exp } = buildLikeQuery(quickSearchField || [], keyword, buildDeviceBaseQuery(extraQuery));
98792
+ if (deviceGroupId) queryData[DEVICE_GROUP_QUERY_KEY] = deviceGroupId;
98793
+ return {
98794
+ queryData,
98795
+ exp
98796
+ };
98786
98797
  }
98787
98798
  /** 关联下拉:按设计端配置搜索。 */
98788
98799
  function buildRefQuickSearchQuery(searchField, keyword, extraQuery, options) {
@@ -98838,12 +98849,13 @@ function getSelectStrategy(fieldType) {
98838
98849
  if (strategy) return strategy;
98839
98850
  return selectStrategyMap[FIELD_TYPE.REF];
98840
98851
  }
98841
- var LOT2SN_STRATEGY, REF_STRATEGY, selectStrategyMap;
98852
+ var LOT2SN_STRATEGY, REF_STRATEGY, REF_OPERATING_STATE_STRATEGY, selectStrategyMap;
98842
98853
  var init_selectStrategy = __esmMin((() => {
98843
98854
  init_field_type();
98844
98855
  init_columns();
98845
98856
  init_quick_search();
98846
98857
  init_enum();
98858
+ init_device_query();
98847
98859
  LOT2SN_STRATEGY = {
98848
98860
  columnsKey: "lot-sn",
98849
98861
  fetcher: "lot2sn",
@@ -98866,6 +98878,15 @@ var init_selectStrategy = __esmMin((() => {
98866
98878
  },
98867
98879
  transform: transformLotData
98868
98880
  };
98881
+ REF_OPERATING_STATE_STRATEGY = {
98882
+ ...REF_STRATEGY,
98883
+ buildQuery({ keyword, searchField, extraParams }) {
98884
+ return buildRefQuickSearchQuery(searchField, keyword, {
98885
+ ...extraParams,
98886
+ operating_state_: true
98887
+ });
98888
+ }
98889
+ };
98869
98890
  selectStrategyMap = {
98870
98891
  [FIELD_TYPE.MATERIAL_NO]: LOT2SN_STRATEGY,
98871
98892
  [FIELD_TYPE.SCRAP_MATERIAL_NO]: LOT2SN_STRATEGY,
@@ -98880,20 +98901,21 @@ var init_selectStrategy = __esmMin((() => {
98880
98901
  },
98881
98902
  [FIELD_TYPE.DEVICE]: {
98882
98903
  columnsKey: "device",
98883
- fetcher: "ref",
98904
+ fetcher: "biz",
98905
+ api: DEVICE_SEARCH_API,
98884
98906
  buildQuery({ keyword, searchField, deviceTypeId, deviceGroupId }) {
98885
- return buildDeviceQuickSearchQuery(searchField, keyword, {
98886
- ...deviceTypeId ? { "device_type_id_.eq": deviceTypeId } : {},
98887
- ...deviceGroupId ? { "device_group_id_.eq": deviceGroupId } : {}
98888
- });
98907
+ return buildDeviceQuickSearchQuery(searchField, keyword, deviceTypeId ? { "device_type_id_.eq": deviceTypeId } : void 0, deviceGroupId);
98889
98908
  },
98890
98909
  transform: transformLotData
98891
98910
  },
98892
98911
  [FIELD_TYPE.ROUTING_OPERATION]: {
98893
98912
  columnsKey: "route-operation",
98894
98913
  fetcher: "ref",
98895
- buildQuery({ keyword }) {
98896
- return buildLikeQuery(["name_", "code_"], keyword, { type_: "NODE_SPEC" });
98914
+ buildQuery({ keyword, isMockReport }) {
98915
+ return buildLikeQuery(["name_", "code_"], keyword, {
98916
+ type_: "NODE_SPEC",
98917
+ ...isMockReport ? {} : { operating_state_: true }
98918
+ });
98897
98919
  },
98898
98920
  transform: transformLotData
98899
98921
  },
@@ -98902,7 +98924,7 @@ var init_selectStrategy = __esmMin((() => {
98902
98924
  fetcher: "ref",
98903
98925
  clearFieldId: "scrap_reason_1_",
98904
98926
  buildQuery({ keyword }) {
98905
- return buildLikeQuery(["name_", "code_"], keyword, { operating_state_: true });
98927
+ return buildLikeQuery(["name_", "code_"], keyword);
98906
98928
  },
98907
98929
  transform: transformLotData
98908
98930
  },
@@ -98934,7 +98956,7 @@ var init_selectStrategy = __esmMin((() => {
98934
98956
  isLinkQuery: true
98935
98957
  };
98936
98958
  if (keyword === null || keyword === void 0 ? void 0 : keyword.trim()) {
98937
- const { queryData: searchQuery, exp } = buildLikeQuery(["name_", "code_"], keyword, { operating_state_: true });
98959
+ const { queryData: searchQuery, exp } = buildLikeQuery(["name_", "code_"], keyword);
98938
98960
  return {
98939
98961
  queryData: {
98940
98962
  ...queryData,
@@ -98948,7 +98970,7 @@ var init_selectStrategy = __esmMin((() => {
98948
98970
  exp: ""
98949
98971
  };
98950
98972
  }
98951
- return buildLikeQuery(["name_", "code_"], keyword, { operating_state_: true });
98973
+ return buildLikeQuery(["name_", "code_"], keyword);
98952
98974
  },
98953
98975
  transform: transformLotData
98954
98976
  },
@@ -98957,7 +98979,7 @@ var init_selectStrategy = __esmMin((() => {
98957
98979
  fetcher: "ref",
98958
98980
  clearFieldId: "not_good_reason_1_",
98959
98981
  buildQuery({ keyword }) {
98960
- return buildLikeQuery(["name_", "code_"], keyword, { operating_state_: true });
98982
+ return buildLikeQuery(["name_", "code_"], keyword);
98961
98983
  },
98962
98984
  transform: transformLotData
98963
98985
  },
@@ -98989,7 +99011,7 @@ var init_selectStrategy = __esmMin((() => {
98989
99011
  isLinkQuery: true
98990
99012
  };
98991
99013
  if (keyword === null || keyword === void 0 ? void 0 : keyword.trim()) {
98992
- const { queryData: searchQuery, exp } = buildLikeQuery(["name_", "code_"], keyword, { operating_state_: true });
99014
+ const { queryData: searchQuery, exp } = buildLikeQuery(["name_", "code_"], keyword);
98993
99015
  return {
98994
99016
  queryData: {
98995
99017
  ...queryData,
@@ -99003,7 +99025,7 @@ var init_selectStrategy = __esmMin((() => {
99003
99025
  exp: ""
99004
99026
  };
99005
99027
  }
99006
- return buildLikeQuery(["name_", "code_"], keyword, { operating_state_: true });
99028
+ return buildLikeQuery(["name_", "code_"], keyword);
99007
99029
  },
99008
99030
  transform: transformLotData
99009
99031
  },
@@ -99012,14 +99034,8 @@ var init_selectStrategy = __esmMin((() => {
99012
99034
  fetcher: "rdo2ref",
99013
99035
  isTree: true,
99014
99036
  buildQuery({ keyword, searchField, extraParams }) {
99015
- if (searchField === null || searchField === void 0 ? void 0 : searchField.length) return buildRefQuickSearchQuery(searchField, keyword, {
99016
- operating_state_: true,
99017
- ...extraParams
99018
- });
99019
- return buildLikeQuery(["name_", "code_"], keyword, {
99020
- operating_state_: true,
99021
- ...extraParams
99022
- });
99037
+ if (searchField === null || searchField === void 0 ? void 0 : searchField.length) return buildRefQuickSearchQuery(searchField, keyword, extraParams);
99038
+ return buildLikeQuery(["name_", "code_"], keyword, extraParams);
99023
99039
  },
99024
99040
  transform: transformTreeData
99025
99041
  },
@@ -99028,10 +99044,7 @@ var init_selectStrategy = __esmMin((() => {
99028
99044
  fetcher: "rdo2ref",
99029
99045
  isTree: true,
99030
99046
  buildQuery({ keyword, searchField, extraParams }) {
99031
- return buildLikeQuery((searchField === null || searchField === void 0 ? void 0 : searchField.length) ? searchField : ["name_", "code_"], keyword, {
99032
- operating_state_: true,
99033
- ...extraParams
99034
- });
99047
+ return buildLikeQuery((searchField === null || searchField === void 0 ? void 0 : searchField.length) ? searchField : ["name_", "code_"], keyword, extraParams);
99035
99048
  },
99036
99049
  transform: transformTreeData
99037
99050
  },
@@ -99040,14 +99053,14 @@ var init_selectStrategy = __esmMin((() => {
99040
99053
  fetcher: "rdo2ref",
99041
99054
  isTree: true,
99042
99055
  buildQuery({ keyword, searchField }) {
99043
- return buildLikeQuery((searchField === null || searchField === void 0 ? void 0 : searchField.length) ? searchField : ["name_", "code_"], keyword, { operating_state_: true });
99056
+ return buildLikeQuery((searchField === null || searchField === void 0 ? void 0 : searchField.length) ? searchField : ["name_", "code_"], keyword);
99044
99057
  },
99045
99058
  transform: transformTreeData
99046
99059
  },
99047
- [FIELD_TYPE.WAREHOUSE]: REF_STRATEGY,
99048
- [FIELD_TYPE.TARGET_WAREHOUSE]: REF_STRATEGY,
99049
- [FIELD_TYPE.LOCATION]: REF_STRATEGY,
99050
- [FIELD_TYPE.SHOPFLOOR]: REF_STRATEGY,
99060
+ [FIELD_TYPE.WAREHOUSE]: REF_OPERATING_STATE_STRATEGY,
99061
+ [FIELD_TYPE.TARGET_WAREHOUSE]: REF_OPERATING_STATE_STRATEGY,
99062
+ [FIELD_TYPE.LOCATION]: REF_OPERATING_STATE_STRATEGY,
99063
+ [FIELD_TYPE.SHOPFLOOR]: REF_OPERATING_STATE_STRATEGY,
99051
99064
  [FIELD_TYPE.REF]: REF_STRATEGY,
99052
99065
  [FIELD_TYPE.MODEL_RELATION]: REF_STRATEGY,
99053
99066
  [FIELD_TYPE.PRODUCTION_CONTAINER]: {
@@ -100208,18 +100221,21 @@ var init_of_inst_num_enricher = __esmMin((() => {
100208
100221
  }));
100209
100222
  //#endregion
100210
100223
  //#region src/core/data/enrichers/operation-receive-qty-enricher.ts
100211
- function resolveQueryParams(doc) {
100224
+ /** 上下文 → getOne query;缺任一条件则不请求 */
100225
+ function resolveQtyCurrentQuery(doc) {
100212
100226
  const containerId = readContextParam(doc, "containerId");
100213
100227
  const routingOperationId = readContextParam(doc, "routingOperationId");
100228
+ if (isBlank$1(containerId) || isBlank$1(routingOperationId)) return void 0;
100214
100229
  return {
100215
- containerId: isBlank$1(containerId) ? void 0 : String(containerId),
100216
- routingOperationId: isBlank$1(routingOperationId) ? void 0 : String(routingOperationId)
100230
+ container_id_: String(containerId),
100231
+ routing_operation_id_: String(routingOperationId)
100217
100232
  };
100218
100233
  }
100219
100234
  function parseQtyCurrent(res) {
100220
- const payload = unwrapBizServiceData(res) ?? res;
100221
- if (!payload || typeof payload !== "object") return void 0;
100222
- const raw = (payload.data && typeof payload.data === "object" ? payload.data : payload).qty_current_;
100235
+ const payload = unwrapBizServiceData(res);
100236
+ const row = (payload === null || payload === void 0 ? void 0 : payload.data) && typeof payload.data === "object" ? payload.data : payload;
100237
+ if (!row) return void 0;
100238
+ const raw = row.qty_current_;
100223
100239
  if (raw === void 0 || raw === null || raw === "") return void 0;
100224
100240
  const num = Number(raw);
100225
100241
  return Number.isNaN(num) ? void 0 : num;
@@ -100237,12 +100253,9 @@ async function fetchQtyCurrent(doc) {
100237
100253
  const existing = inflightQtyByDoc.get(doc);
100238
100254
  if (existing) return existing;
100239
100255
  const task = (async () => {
100240
- const { containerId, routingOperationId } = resolveQueryParams(doc);
100241
- if (!containerId || !routingOperationId) return void 0;
100242
- return parseQtyCurrent(await callBizService(OPERATION_RECEIVE_QTY_API, {
100243
- containerId,
100244
- routingOperationId
100245
- }));
100256
+ const query = resolveQtyCurrentQuery(doc);
100257
+ if (!query) return void 0;
100258
+ return parseQtyCurrent(await callBizService(OPERATION_RECEIVE_QTY_API, { query }));
100246
100259
  })();
100247
100260
  inflightQtyByDoc.set(doc, task);
100248
100261
  try {
@@ -100263,7 +100276,7 @@ function tryCollectOperationReceiveQtyTarget(instance) {
100263
100276
  if (!field || field.fieldType !== FIELD_TYPE.OPERATION_RECEIVE_QTY || !instance.valuePath) return null;
100264
100277
  return { valuePath: String(instance.valuePath) };
100265
100278
  }
100266
- /** 工序接收数量:params 取 containerId / routingOperationId,空值时拉取 qty_current_ */
100279
+ /** 工序接收数量:getOne query 取 container_id_ / routing_operation_id_,空值时拉取 qty_current_ */
100267
100280
  function createOperationReceiveQtyEnricher(doc, targets) {
100268
100281
  const pathMatchers = targets.map((item) => createValuePathMatcher(item.valuePath));
100269
100282
  return {
@@ -126376,6 +126389,18 @@ var init_material_consume_table_controller = __esmMin((() => {
126376
126389
  "dataStatus",
126377
126390
  void 0
126378
126391
  );
126392
+ _defineProperty(
126393
+ this,
126394
+ /** 当前控制器已绑定的文档。一个文档可能拆成多个画布表格组件。 */
126395
+ "setupDoc",
126396
+ void 0
126397
+ );
126398
+ _defineProperty(
126399
+ this,
126400
+ /** 脱离分页表格组件生命周期,同一文档只保留一组监听。 */
126401
+ "setupScope",
126402
+ void 0
126403
+ );
126379
126404
  _defineProperty(
126380
126405
  this,
126381
126406
  /**
@@ -126455,20 +126480,23 @@ var init_material_consume_table_controller = __esmMin((() => {
126455
126480
  */
126456
126481
  initTableData(dataManager, subFieldKey, defaultData) {
126457
126482
  if (this.isDataProcessed) return;
126483
+ const existingRows = dataManager.getRawData()[subFieldKey];
126484
+ if (Array.isArray(existingRows) && existingRows.some((row) => row && !row.deleted_ && !row.__gw_default)) return;
126458
126485
  const rows = this.calcFormState();
126459
126486
  if (!(rows === null || rows === void 0 ? void 0 : rows.length)) return;
126460
126487
  const tableRows = transformUtils.transformSourceData2SubTable(rows, {}, defaultData);
126461
126488
  tableRows.forEach((row, i) => {
126462
126489
  ensureFrontRowKey(row);
126463
- const option = {
126464
- dataManager,
126465
- subFieldKey,
126466
- rowIndex: i
126467
- };
126468
- if (i === 0) MCDataUtil.updateRow(option, false);
126469
- else MCDataUtil.updateRow(option, this.enableSequenceLoading);
126490
+ row.is_confirmed_ = i > 0 && this.enableSequenceLoading;
126470
126491
  });
126471
126492
  this.actualTableData = tableRows;
126493
+ tableRows.forEach((row, i) => {
126494
+ MCDataUtil.updateConfirmableFieldsDisablement({
126495
+ dataManager,
126496
+ rowPath: `$.${subFieldKey}[${i}]`,
126497
+ disabled: !!row.is_confirmed_
126498
+ });
126499
+ });
126472
126500
  }
126473
126501
  /**
126474
126502
  * 根据数据计算需要禁用的字段
@@ -126638,18 +126666,26 @@ var init_material_consume_table_controller = __esmMin((() => {
126638
126666
  * @param opts
126639
126667
  */
126640
126668
  async setup(opts) {
126669
+ var _this$setupScope;
126670
+ const sameDoc = this.setupDoc === opts.doc;
126641
126671
  this.tableDataRef = opts.tableDataRef;
126642
126672
  this.mainFormState = opts.mainFormState ?? ref({});
126643
126673
  this.subTableInfo = opts.subTableInfo;
126644
126674
  this.dataStatus = opts.dataStatus;
126675
+ if (sameDoc) return;
126676
+ (_this$setupScope = this.setupScope) === null || _this$setupScope === void 0 || _this$setupScope.stop();
126677
+ this.setupScope = effectScope(true);
126678
+ this.setupDoc = opts.doc;
126645
126679
  this.initTableData(opts.doc.dataManager, opts.subTableInfo.subFieldKey, opts.defaultRowData);
126646
- watch(() => this.materialNoNum, () => this.syncQtyRequiredFromBom(opts.doc), { immediate: true });
126647
- watch(() => this.tableDataRef.value.map((row) => [
126648
- row.qty_,
126649
- row.product_id_,
126650
- row.bom_entry_id_,
126651
- row.deleted_
126652
- ]), () => this.updateDerivedQtyFields(opts.doc), { deep: true });
126680
+ this.setupScope.run(() => {
126681
+ watch(() => this.materialNoNum, () => this.syncQtyRequiredFromBom(opts.doc), { immediate: true });
126682
+ watch(() => this.tableDataRef.value.map((row) => [
126683
+ row.qty_,
126684
+ row.product_id_,
126685
+ row.bom_entry_id_,
126686
+ row.deleted_
126687
+ ]), () => this.updateDerivedQtyFields(opts.doc), { deep: true });
126688
+ });
126653
126689
  }
126654
126690
  /**
126655
126691
  * 按当前 materialNoNum 回写各行 qty_required_(校验侧 total 已通过 getter 实时读取)
@@ -137217,16 +137253,11 @@ async function submitDeviceScan(params) {
137217
137253
  ok: false,
137218
137254
  message: MSG_NO_CODE
137219
137255
  };
137220
- const { queryData, exp } = buildLikeQuery([], "", buildDeviceBaseQuery({
137221
- "code_.eq": code,
137222
- ...deviceGroupId ? { "device_group_id_.eq": deviceGroupId } : {}
137223
- }));
137224
- const option = (_res$options = (await apiFetchers.ref.getOptions({
137225
- fieldKey: fieldInfo.key,
137226
- modelKey: fieldInfo.modelKey,
137227
- refModelKey: fieldInfo.bindInfo,
137228
- exp,
137256
+ const { queryData, exp } = buildDeviceQuickSearchQuery([], "", { "code_.eq": code }, deviceGroupId);
137257
+ const option = (_res$options = (await apiFetchers.biz.getOptions({
137258
+ api: DEVICE_SEARCH_API,
137229
137259
  queryData,
137260
+ exp,
137230
137261
  pageNo: 1,
137231
137262
  pageSize: 30
137232
137263
  })).options) === null || _res$options === void 0 ? void 0 : _res$options[0];
@@ -137758,17 +137789,17 @@ var init_tree_node_vue_vue_type_script_setup_true_lang = __esmMin((() => {
137758
137789
  });
137759
137790
  }));
137760
137791
  //#endregion
137761
- //#region src/runtime/renderer/dropdowns/components/tree/tree-node.vue?vue&type=style&index=0&scoped=6969370b&lang.less
137762
- var init_tree_node_vue_vue_type_style_index_0_scoped_6969370b_lang = __esmMin((() => {}));
137792
+ //#region src/runtime/renderer/dropdowns/components/tree/tree-node.vue?vue&type=style&index=0&scoped=6d1436ce&lang.less
137793
+ var init_tree_node_vue_vue_type_style_index_0_scoped_6d1436ce_lang = __esmMin((() => {}));
137763
137794
  //#endregion
137764
137795
  //#region src/runtime/renderer/dropdowns/components/tree/tree-node.vue
137765
137796
  var tree_node_default;
137766
137797
  var init_tree_node = __esmMin((() => {
137767
137798
  init_tree_node_vue_vue_type_script_setup_true_lang();
137768
137799
  init_tree_node_vue_vue_type_script_setup_true_lang();
137769
- init_tree_node_vue_vue_type_style_index_0_scoped_6969370b_lang();
137800
+ init_tree_node_vue_vue_type_style_index_0_scoped_6d1436ce_lang();
137770
137801
  init__plugin_vue_export_helper();
137771
- tree_node_default = /*#__PURE__*/ _plugin_vue_export_helper_default(tree_node_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-6969370b"]]);
137802
+ tree_node_default = /*#__PURE__*/ _plugin_vue_export_helper_default(tree_node_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-6d1436ce"]]);
137772
137803
  }));
137773
137804
  //#endregion
137774
137805
  //#region src/runtime/renderer/dropdowns/components/tree/tree-dropdown.vue?vue&type=script&setup=true&lang.ts
@@ -139411,7 +139442,8 @@ function useTableDropdown(props, searchFilters) {
139411
139442
  deviceTypeId: deviceTypeId ?? (filters === null || filters === void 0 ? void 0 : filters.deviceTypeId),
139412
139443
  deviceGroupId: widgetProps.value.enableCascadeDataFilter ? widgetProps.value.deviceGroupId : void 0,
139413
139444
  extraParams,
139414
- optionMapping
139445
+ optionMapping,
139446
+ isMockReport: !!docInst.value.isMockReport
139415
139447
  })) ?? {};
139416
139448
  const apiFetcher = apiFetchers[fetcher];
139417
139449
  if (!apiFetcher) return {
@@ -139559,8 +139591,9 @@ var init_table_dropdown_vue_vue_type_script_setup_true_lang = __esmMin((() => {
139559
139591
  const onChangeSelect = async (row) => {
139560
139592
  var _row$_item;
139561
139593
  const { belongingObject, fieldType } = props.widget.widgetMeta.field;
139562
- if (belongingObject && fieldType === FIELD_TYPE.MATERIAL_NO && row.is_locked_) {
139563
- GctMessage.error(await getLotLockedReason(row.id_));
139594
+ const selectedOption = (row === null || row === void 0 ? void 0 : row._item) ?? row;
139595
+ if (belongingObject && fieldType === FIELD_TYPE.MATERIAL_NO && (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.is_locked_)) {
139596
+ GctMessage.error(await getLotLockedReason(selectedOption.id_));
139564
139597
  return;
139565
139598
  }
139566
139599
  const { __VALUE__ } = row || {};
@@ -165201,7 +165234,7 @@ async function fetchProductOptions() {
165201
165234
  modelCategory: ENTITY_CATEGORY$1
165202
165235
  }, {}, {
165203
165236
  exp: "",
165204
- query: { operating_state_: true },
165237
+ query: {},
165205
165238
  pageNo: 1,
165206
165239
  pageSize: 9999
165207
165240
  });
@@ -165220,7 +165253,7 @@ async function fetchUomConvertRuleOptions() {
165220
165253
  modelKey: UOM_CONVERT_RULE_MODEL_KEY,
165221
165254
  modelCategory: ENTITY_CATEGORY$1
165222
165255
  }, {}, {
165223
- query: { operating_state_: true },
165256
+ query: {},
165224
165257
  pageNo: 1,
165225
165258
  pageSize: 999
165226
165259
  });
@@ -169757,7 +169790,7 @@ var field_e_sop_version_config_vue_vue_type_script_setup_true_lang_default = /*@
169757
169790
  modelCategory: "entity"
169758
169791
  }, {}, {
169759
169792
  exp: "",
169760
- query: { operating_state_: true },
169793
+ query: {},
169761
169794
  pageNo: 1,
169762
169795
  pageSize: 9999
169763
169796
  });
@@ -169849,7 +169882,7 @@ var field_e_sop_version_config_vue_vue_type_script_setup_true_lang_default = /*@
169849
169882
  //#region src/suites/edhr/panel-config/field/e-sop-version/field-e-sop-version-config.vue
169850
169883
  var field_e_sop_version_config_exports = /* @__PURE__ */ __exportAll({ default: () => field_e_sop_version_config_default });
169851
169884
  init__plugin_vue_export_helper();
169852
- var field_e_sop_version_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_e_sop_version_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-792e485e"]]);
169885
+ var field_e_sop_version_config_default = /*#__PURE__*/ _plugin_vue_export_helper_default(field_e_sop_version_config_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-378f7219"]]);
169853
169886
  //#endregion
169854
169887
  //#region src/suites/shared/panel/config/editor/enum-opt-editor/enum-option-item.vue?vue&type=script&setup=true&lang.ts
169855
169888
  init_base$2();
@@ -93,6 +93,10 @@ export declare class MaterialConsumeTableController {
93
93
  dataStatus?: string;
94
94
  /** 表单是否已暂存或提交(已处理过则不再跑初始化) */
95
95
  get isDataProcessed(): boolean;
96
+ /** 当前控制器已绑定的文档。一个文档可能拆成多个画布表格组件。 */
97
+ private setupDoc?;
98
+ /** 脱离分页表格组件生命周期,同一文档只保留一组监听。 */
99
+ private setupScope?;
96
100
  /** 批次数量或生产数量 */
97
101
  get materialNoNum(): any;
98
102
  /** 物料消耗模式(自身没有配置的话取环境的默认值) */
@@ -18,6 +18,8 @@ export interface SelectQueryContext {
18
18
  value?: string;
19
19
  label?: string;
20
20
  };
21
+ /** 模拟填报:工序不传 operating_state_,避免模板数据被启用态滤空 */
22
+ isMockReport?: boolean;
21
23
  }
22
24
  export interface SelectQueryResult {
23
25
  queryData?: Record<string, any>;
@@ -18,8 +18,8 @@ export declare function buildLikeQuery(searchFields: string[], keyword: string,
18
18
  queryData: Record<string, any>;
19
19
  exp: string;
20
20
  };
21
- /** 设备下拉:按设计端配置搜索,并附加设备可选范围过滤。 */
22
- export declare function buildDeviceQuickSearchQuery(quickSearchField: string[] | undefined, keyword: string, extraQuery?: Record<string, any>): {
21
+ /** 设备下拉:条件与 ref 相同;deviceGroupId 只进 query,不进 exp。 */
22
+ export declare function buildDeviceQuickSearchQuery(quickSearchField: string[] | undefined, keyword: string, extraQuery?: Record<string, any>, deviceGroupId?: string): {
23
23
  queryData: Record<string, any>;
24
24
  exp: string;
25
25
  };
package/dist/word.css CHANGED
@@ -8752,31 +8752,32 @@ textarea[data-v-a7d89044]::placeholder {
8752
8752
  word-break: break-all;
8753
8753
  pointer-events: none;
8754
8754
  }
8755
- .tree-node[data-v-6969370b] {
8755
+ .tree-node[data-v-6d1436ce] {
8756
8756
  display: flex;
8757
8757
  align-items: center;
8758
8758
  height: 30px;
8759
+ padding-right: 4px;
8759
8760
  cursor: pointer;
8760
8761
  transition: all 0.2s ease;
8761
8762
  }
8762
- .tree-node[data-v-6969370b]:hover:not(.disabled) {
8763
+ .tree-node[data-v-6d1436ce]:hover:not(.disabled) {
8763
8764
  background: #f2f5f8;
8764
8765
  }
8765
- .tree-node.selected[data-v-6969370b] {
8766
+ .tree-node.selected[data-v-6d1436ce] {
8766
8767
  background: #e6f7ff;
8767
8768
  }
8768
- .tree-node.disabled[data-v-6969370b] {
8769
+ .tree-node.disabled[data-v-6d1436ce] {
8769
8770
  opacity: 0.3;
8770
8771
  pointer-events: none;
8771
8772
  }
8772
- .tree-node .expand-icon[data-v-6969370b] {
8773
+ .tree-node .expand-icon[data-v-6d1436ce] {
8773
8774
  width: 16px;
8774
8775
  display: inline-flex;
8775
8776
  align-items: center;
8776
8777
  justify-content: center;
8777
8778
  margin-right: 4px;
8778
8779
  }
8779
- .tree-node .node-label[data-v-6969370b] {
8780
+ .tree-node .node-label[data-v-6d1436ce] {
8780
8781
  flex: 1;
8781
8782
  font-size: 13px;
8782
8783
  color: #212528;
@@ -8784,9 +8785,10 @@ textarea[data-v-a7d89044]::placeholder {
8784
8785
  overflow: hidden;
8785
8786
  text-overflow: ellipsis;
8786
8787
  }
8787
- .tree-node .node-right[data-v-6969370b] {
8788
+ .tree-node .node-right[data-v-6d1436ce] {
8788
8789
  margin-left: 8px;
8789
8790
  display: inline-flex;
8791
+ flex-shrink: 0;
8790
8792
  align-items: center;
8791
8793
  }
8792
8794
  .tree-dropdown[data-v-c2f538d9] {
@@ -13616,7 +13618,7 @@ svg.portrait-icon[data-v-8bdb451e] {
13616
13618
  .panel-field-datetime-config[data-v-c9d1de47] {
13617
13619
  padding: 16px;
13618
13620
  }
13619
- .panel-field-e-sop-version-config[data-v-792e485e] {
13621
+ .panel-field-e-sop-version-config[data-v-378f7219] {
13620
13622
  padding: 16px;
13621
13623
  }
13622
13624
  .enum-option-item[data-v-b9876231] {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/word",
3
- "version": "0.1.74-beta.35",
3
+ "version": "0.1.74-beta.37",
4
4
  "description": "GCT 在线 word",
5
5
  "keywords": [
6
6
  "vue",