主要功能: - 修改RequirementModal支持12个订单班选择 - 添加OrderClassIconMap图标映射组件 - Store中添加selectedOrderClass状态管理 - WorkflowPage支持传递orderClass参数 - web_result添加URL参数切换功能 - 创建order-class-handler.js动态处理页面主题 技术改进: - 创建软链接关联订单班数据目录 - 生成wenlu.json和food.json数据结构 - 删除重复的web_result目录 - 添加测试页面test-order-class.html 影响范围: - 展会策划系统现支持12个订单班 - 结果展示页面自动适配不同订单班主题 - 用户可选择不同行业生成对应方案 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
83 lines
2.8 KiB
JavaScript
83 lines
2.8 KiB
JavaScript
'use strict';
|
|
|
|
var identity = require('../../nodes/identity.js');
|
|
var Pair = require('../../nodes/Pair.js');
|
|
var Scalar = require('../../nodes/Scalar.js');
|
|
var YAMLSeq = require('../../nodes/YAMLSeq.js');
|
|
|
|
function resolvePairs(seq, onError) {
|
|
if (identity.isSeq(seq)) {
|
|
for (let i = 0; i < seq.items.length; ++i) {
|
|
let item = seq.items[i];
|
|
if (identity.isPair(item))
|
|
continue;
|
|
else if (identity.isMap(item)) {
|
|
if (item.items.length > 1)
|
|
onError('Each pair must have its own sequence indicator');
|
|
const pair = item.items[0] || new Pair.Pair(new Scalar.Scalar(null));
|
|
if (item.commentBefore)
|
|
pair.key.commentBefore = pair.key.commentBefore
|
|
? `${item.commentBefore}\n${pair.key.commentBefore}`
|
|
: item.commentBefore;
|
|
if (item.comment) {
|
|
const cn = pair.value ?? pair.key;
|
|
cn.comment = cn.comment
|
|
? `${item.comment}\n${cn.comment}`
|
|
: item.comment;
|
|
}
|
|
item = pair;
|
|
}
|
|
seq.items[i] = identity.isPair(item) ? item : new Pair.Pair(item);
|
|
}
|
|
}
|
|
else
|
|
onError('Expected a sequence for this tag');
|
|
return seq;
|
|
}
|
|
function createPairs(schema, iterable, ctx) {
|
|
const { replacer } = ctx;
|
|
const pairs = new YAMLSeq.YAMLSeq(schema);
|
|
pairs.tag = 'tag:yaml.org,2002:pairs';
|
|
let i = 0;
|
|
if (iterable && Symbol.iterator in Object(iterable))
|
|
for (let it of iterable) {
|
|
if (typeof replacer === 'function')
|
|
it = replacer.call(iterable, String(i++), it);
|
|
let key, value;
|
|
if (Array.isArray(it)) {
|
|
if (it.length === 2) {
|
|
key = it[0];
|
|
value = it[1];
|
|
}
|
|
else
|
|
throw new TypeError(`Expected [key, value] tuple: ${it}`);
|
|
}
|
|
else if (it && it instanceof Object) {
|
|
const keys = Object.keys(it);
|
|
if (keys.length === 1) {
|
|
key = keys[0];
|
|
value = it[key];
|
|
}
|
|
else {
|
|
throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);
|
|
}
|
|
}
|
|
else {
|
|
key = it;
|
|
}
|
|
pairs.items.push(Pair.createPair(key, value, ctx));
|
|
}
|
|
return pairs;
|
|
}
|
|
const pairs = {
|
|
collection: 'seq',
|
|
default: false,
|
|
tag: 'tag:yaml.org,2002:pairs',
|
|
resolve: resolvePairs,
|
|
createNode: createPairs
|
|
};
|
|
|
|
exports.createPairs = createPairs;
|
|
exports.pairs = pairs;
|
|
exports.resolvePairs = resolvePairs;
|