@steedos-widgets/amis-lib 1.3.4-beta.11 → 1.3.4-beta.13

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.
package/dist/index.esm.js CHANGED
@@ -443,8 +443,8 @@ function getLookupListView(refObjectConfig) {
443
443
  /*
444
444
  * @Author: baozhoutao@steedos.com
445
445
  * @Date: 2022-05-23 09:53:08
446
- * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
447
- * @LastEditTime: 2023-09-19 14:38:39
446
+ * @LastEditors: liaodaxue
447
+ * @LastEditTime: 2023-10-11 17:32:17
448
448
  * @Description:
449
449
  */
450
450
 
@@ -505,7 +505,7 @@ function getSelectMap(selectOptions){
505
505
  if(optionColor){
506
506
  const background = optionColor.charAt(0) === '#' ? optionColor : '#'+optionColor;
507
507
  const color = getContrastColor(background);
508
- const optionColorStyle = 'background:'+background+';color:'+color;
508
+ const optionColorStyle = 'background:'+background+';color:'+color+';line-height:1.5rem';
509
509
  map[optionValue] = `<span class="rounded-xl px-2 py-1" style='${optionColorStyle}'>${option.label}</span>`;
510
510
  }else {
511
511
  map[optionValue] = option.label;
@@ -962,17 +962,17 @@ async function getFindQuery(object, recordId, fields, options){
962
962
  }
963
963
 
964
964
  const countQuery = options.count === false ? "" : `,count:${object.name}__count(filters:{__filters})`;
965
- const moreQuerie = options.moreQueries?.length ? ("," + options.moreQueries.map(function(item){
966
- // 把最外层的{}去除
967
- return item.replace(/^{/,"").replace(/}$/,"");
968
- }).join(",")) : "";
965
+ // const moreQuerie = options.moreQueries?.length ? ("," + options.moreQueries.map(function(item){
966
+ // // 把最外层的{}去除
967
+ // return item.replace(/^{/,"").replace(/}$/,"");
968
+ // }).join(",")) : "";
969
969
 
970
970
  return {
971
971
  orderBy: "${orderBy}",
972
972
  orderDir: "${orderDir}",
973
973
  pageNo: "${page}",
974
974
  pageSize: "${perPage}",
975
- query: `{${alias}:${object.name}${queryOptions}{${await getFieldsTemplate(fields, options.expand)}${treeFields}${cfsFields}}${countQuery}${moreQuerie}}`
975
+ query: `{${alias}:${object.name}${queryOptions}{${await getFieldsTemplate(fields, options.expand)}${treeFields}${cfsFields}}${countQuery}}`
976
976
  }
977
977
  }
978
978
 
@@ -6185,10 +6185,10 @@ async function lookupToAmisSelect(field, readonly, ctx){
6185
6185
  // const labelFieldKey = referenceTo && referenceTo.labelField?.name || 'name';
6186
6186
 
6187
6187
  let apiInfo;
6188
-
6188
+ let defaultValueOptionsQueryData;
6189
6189
  if(referenceTo){
6190
6190
  // 字段值单独走一个请求合并到source的同一个GraphQL接口中
6191
- const defaultValueOptionsQueryData = await getFindQuery({ name: referenceTo.objectName }, null, [
6191
+ defaultValueOptionsQueryData = await getFindQuery({ name: referenceTo.objectName }, null, [
6192
6192
  Object.assign({}, referenceTo.labelField, {alias: 'label'}),
6193
6193
  Object.assign({}, referenceTo.valueField, {alias: 'value'})
6194
6194
  ], {
@@ -6201,7 +6201,7 @@ async function lookupToAmisSelect(field, readonly, ctx){
6201
6201
  }, null, [
6202
6202
  Object.assign({}, referenceTo.labelField, {alias: 'label'}),
6203
6203
  Object.assign({}, referenceTo.valueField, {alias: 'value'})
6204
- ], {expand: false, alias: 'options', queryOptions: `filters: {__filters}, top: {__top}, sort: "{__sort}"`, moreQueries: [defaultValueOptionsQueryData.query]});
6204
+ ], {expand: false, alias: 'options', queryOptions: `filters: {__filters}, top: {__top}, sort: "{__sort}"`});
6205
6205
 
6206
6206
  apiInfo.adaptor = `
6207
6207
  const data = payload.data;
@@ -6295,13 +6295,16 @@ async function lookupToAmisSelect(field, readonly, ctx){
6295
6295
  var optionsFiltersOp = "${field.multiple ? "in" : "="}";
6296
6296
  var optionsFilters = [["${valueFieldKey}", optionsFiltersOp, []]];
6297
6297
  if (defaultValue && !api.data.$term) {
6298
+ const defaultValueOptionsQueryData = ${JSON.stringify(defaultValueOptionsQueryData)};
6299
+ const defaultValueOptionsQuery = defaultValueOptionsQueryData.query.replace(/^{/,"").replace(/}$/,"");
6298
6300
  // 字段值单独请求,没值的时候在请求中返回空
6299
6301
  optionsFilters = [["${valueFieldKey}", optionsFiltersOp, defaultValue]];
6300
6302
  if(filters.length > 0){
6301
6303
  optionsFilters = [filters, optionsFilters];
6302
6304
  }
6305
+ api.data.query = "{"+api.data.query.replace(/^{/,"").replace(/}$/,"")+","+defaultValueOptionsQuery+"}";
6306
+ api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters))
6303
6307
  }
6304
- api.data.query = api.data.query.replace(/{__options_filters}/g, JSON.stringify(optionsFilters));
6305
6308
  return api;
6306
6309
  `;
6307
6310
  referenceTo ? referenceTo.labelField.name : '';
@@ -8856,18 +8859,30 @@ function getReadonlyFormAdaptor(object, fields, options){
8856
8859
  payload.status = 2;
8857
8860
  payload.msg = payload.errors[0].message;
8858
8861
  }
8862
+ ${options && options.initApiAdaptor || ''}
8859
8863
  return payload;
8860
8864
  `
8861
8865
  }
8862
8866
 
8863
8867
  async function getReadonlyFormInitApi(object, recordId, fields, options){
8868
+ let findOneOptions;
8869
+ if (!recordId && options && options.isEditor) {
8870
+ // 设计器中只读表单返回第一条记录
8871
+ findOneOptions = {
8872
+ filters: [],
8873
+ queryOptions: "top: 1"
8874
+ };
8875
+ }
8864
8876
  return {
8865
8877
  method: "post",
8866
8878
  url: getApi$2() + '&objectName=${objectName}' + "&recordId=${recordId}",
8867
8879
  cache: API_CACHE,
8868
- // requestAdaptor: "console.log('getReadonlyFormInitApi requestAdaptor', api);return api;",
8880
+ requestAdaptor: `
8881
+ ${options && options.initApiRequestAdaptor || ''}
8882
+ return api;
8883
+ `,
8869
8884
  adaptor: getReadonlyFormAdaptor(object, fields, options),
8870
- data: await getFindOneQuery$1(object, recordId, fields, options),
8885
+ data: await getFindOneQuery$1(object, recordId, fields, findOneOptions),
8871
8886
  headers: {
8872
8887
  Authorization: "Bearer ${context.tenantId},${context.authToken}"
8873
8888
  }
@@ -9842,7 +9857,7 @@ function deleteVariable(data, key) {
9842
9857
  * @Author: baozhoutao@steedos.com
9843
9858
  * @Date: 2022-05-26 16:02:08
9844
9859
  * @LastEditors: 殷亮辉 yinlianghui@hotoa.com
9845
- * @LastEditTime: 2023-09-15 15:36:17
9860
+ * @LastEditTime: 2023-10-12 18:25:05
9846
9861
  * @Description:
9847
9862
  */
9848
9863
 
@@ -9862,8 +9877,9 @@ const getFieldSchemaArray = (formFields, ctx) => {
9862
9877
  }
9863
9878
 
9864
9879
  let forceHidden = false;
9865
- if(!recordId && field.readonly){
9880
+ if(!recordId && field.readonly && !ctx.isEditor){
9866
9881
  // 新建记录时,只读字段先隐藏,后续支持显示后,即任务:https://github.com/steedos/steedos-platform/issues/3164 完成后再放开
9882
+ // 表单只读时所有字段都是readonly,设计器中如果forceHidden会造成整个表单在只读的时候显示为空白了,所以要排除掉
9867
9883
  forceHidden = true;
9868
9884
  }
9869
9885
 
@@ -10427,7 +10443,7 @@ async function getObjectForm(objectSchema, ctx){
10427
10443
  }
10428
10444
 
10429
10445
  async function getObjectDetail(objectSchema, recordId, ctx){
10430
- const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign, formInitProps } = ctx;
10446
+ const { formFactor, layout = formFactor === 'SMALL' ? 'normal' : "normal", labelAlign } = ctx;
10431
10447
  const fields = ___default.values(objectSchema.fields);
10432
10448
  const formFields = getFormFields(objectSchema, ctx);
10433
10449
  const serviceId = `service_detail_page`;
@@ -10436,7 +10452,7 @@ async function getObjectDetail(objectSchema, recordId, ctx){
10436
10452
  name: `page_readonly_${recordId}`,
10437
10453
  id: serviceId,
10438
10454
  data: {global: getGlobalData('read'), context: {rootUrl: getRootUrl(), tenantId: getTenantId(), authToken: getAuthToken()}},
10439
- api: await getReadonlyFormInitApi(objectSchema, recordId, fields, formInitProps),
10455
+ api: await getReadonlyFormInitApi(objectSchema, recordId, fields, ctx),
10440
10456
  body: [
10441
10457
  {
10442
10458
  "type": "wrapper", //form 的 hiddenOn 会导致 form onEvent 异常, 使用wrapper包裹一次form,并在wrapper上控制显隐
@@ -10455,7 +10471,11 @@ async function getObjectDetail(objectSchema, recordId, ctx){
10455
10471
  "formData": "$$"
10456
10472
  },
10457
10473
  wrapWithPanel: false,
10458
- body: await getFormBody(map(fields, (field)=>{field.readonly = true; return field;}), map(formFields, (field)=>{field.readonly = true; return field;}), Object.assign({}, ctx, {showSystemFields: true,fieldGroups: objectSchema.field_groups})),
10474
+ body: await getFormBody(
10475
+ map(fields, (field) => { field.readonly = true; return field; }),
10476
+ map(formFields, (field) => { field.readonly = true; return field; }),
10477
+ Object.assign({}, ctx, { showSystemFields: true, fieldGroups: objectSchema.field_groups })
10478
+ ),
10459
10479
  className: 'steedos-amis-form bg-white',
10460
10480
  actions: [], // 不显示表单默认的提交按钮
10461
10481
  onEvent: {
@@ -13940,10 +13960,18 @@ const getOpinionFieldStepsName = (field, top_keywords) => {
13940
13960
  * @Author: baozhoutao@steedos.com
13941
13961
  * @Date: 2022-09-09 17:47:37
13942
13962
  * @LastEditors: baozhoutao@steedos.com
13943
- * @LastEditTime: 2023-03-18 15:32:34
13963
+ * @LastEditTime: 2023-10-10 13:57:02
13944
13964
  * @Description:
13945
13965
  */
13946
13966
 
13967
+ const getMoment = ()=>{
13968
+ if(window.amisRequire){
13969
+ return window.amisRequire("moment");
13970
+ }else if(window.moment){
13971
+ return window.moment;
13972
+ }
13973
+ };
13974
+
13947
13975
  const getTrace = ({ instance, traceId }) => {
13948
13976
  return find(instance.traces, (trace) => {
13949
13977
  return trace._id === traceId;
@@ -14163,6 +14191,8 @@ const getInstanceInfo = async ({ instanceId, box }) => {
14163
14191
  method: "get",
14164
14192
  });
14165
14193
 
14194
+ const moment = getMoment();
14195
+
14166
14196
  return {
14167
14197
  box: box,
14168
14198
  _id: instanceId,
@@ -14173,7 +14203,7 @@ const getInstanceInfo = async ({ instanceId, box }) => {
14173
14203
  applicant_name: instance.applicant_name,
14174
14204
  submitter: instance.submitter,
14175
14205
  submit_date: instance.submit_date
14176
- ? amisRequire("moment")(instance.submit_date).format("YYYY-MM-DD")
14206
+ ? (moment && moment(instance.submit_date).format("YYYY-MM-DD"))
14177
14207
  : "",
14178
14208
  state: instance.state,
14179
14209
  approveValues: values,
@@ -14213,8 +14243,7 @@ const getInstanceInfo = async ({ instanceId, box }) => {
14213
14243
  finishDate = approve.is_read ? "已读" : "未处理";
14214
14244
  judge = null;
14215
14245
  } else {
14216
- finishDate =
14217
- amisRequire("moment")(finishDate).format("YYYY-MM-DD HH:mm");
14246
+ finishDate = moment && moment(finishDate).format("YYYY-MM-DD HH:mm");
14218
14247
  }
14219
14248
 
14220
14249
  switch (judge) {