ftdsy-attr 1.0.0
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/.babelrc +3 -0
- package/.idea/52Attr.iml +12 -0
- package/.idea/dictionaries +6 -0
- package/.idea/modules.xml +8 -0
- package/dist/ftdsy-attr.js +1740 -0
- package/dist/ftdsy-attr.js.map +1 -0
- package/dist/index.html +12 -0
- package/package.json +27 -0
- package/rollup.config.js +52 -0
- package/src/config/platform.js +101 -0
- package/src/main.js +590 -0
- package/src/platform/1688.js +0 -0
- package/src/platform/dy.js +156 -0
- package/src/platform/jd.js +0 -0
- package/src/platform/ks.js +0 -0
- package/src/platform/pdd.js +152 -0
- package/src/platform/sph.js +0 -0
- package/src/platform/tb.js +321 -0
- package/src/platform/tm.js +0 -0
- package/src/platform/xhs.js +0 -0
- package/src/platform/xp.js +0 -0
- package/src/tools/property.js +351 -0
- package/src/utils/utils.js +111 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ftdsy-attr.js","sources":["../src/config/platform.js","../src/utils/utils.js","../src/platform/pdd.js","../src/platform/tb.js","../src/platform/dy.js","../src/tools/property.js","../src/main.js"],"sourcesContent":["\nconst platformList = [\n {\n id: 1,\n title: '拼多多',\n code: 'pdd',\n shopType: 1,\n },\n {\n id: 2,\n title: '淘宝',\n code: 'tb',\n shopType: 1\n },\n {\n id: 2,\n title: '天猫',\n code: 'tm',\n shopType: 2\n },\n {\n id: 3,\n title: '京东',\n code: 'jd',\n shopType: 1\n },\n {\n id: 4,\n title: '抖音',\n code: 'dy',\n shopType: 1\n },\n {\n id: 5,\n title: '虾皮',\n code: 'xp',\n shopType: 1\n },\n {\n id: 6,\n title: '小红书',\n code: 'xhs',\n shopType: 1\n },\n {\n id: 7,\n title: '快手',\n code: 'ks',\n shopType: 1\n },\n {\n id: 8,\n title: '52电商园',\n code: 'dsy',\n shopType: 1\n },\n {\n id: 9,\n title: '1688',\n code: '1688',\n shopType: 1\n },\n {\n id: 10,\n title: '虾皮本土',\n code: 'xpbt',\n shopType: 1\n },\n {\n id: 11,\n title: '淘工厂',\n code: 'tgc',\n shopType: 1\n },\n {\n id: 12,\n title: '微信小店',\n code: 'sph',\n shopType: 1\n },\n {\n id: 13,\n title: 'TikTok',\n code: 'tk',\n shopType: 1\n }\n];\n\nexport function checkPlatform(pt_type) {\n\n let platform\n if (pt_type instanceof Number) {\n // 通过平台id查询\n platform = platformList.find(item => item.id == pt_type)\n } else {\n // 通过平台code查询\n platform = platformList.find(item => item.code === pt_type)\n }\n return platform\n}\n\n","export default {\n\n /**\n * 获取2个字符串的相似度\n * @param {string} str1 字符串1\n * @param {string} str2 字符串2\n * @returns {number} 相似度\n */\n getStringSimilarity(str1, str2) {\n let sameNum = 0\n //寻找相同字符\n for (let i = 0; i < str1.length; i++) {\n for(let j =0;j<str2.length;j++){\n if(str1[i]===str2[j]){\n sameNum ++\n break\n }\n }\n }\n //判断2个字符串哪个长度比较长\n let length = str1.length > str2.length ? str1.length : str2.length\n return (sameNum/length) * 100 || 0\n },\n\n\n /* 调用计算公式 */\n evil(str) {\n var fn = Function\n return new fn('return ' + str)()\n },\n\n\n /* 检测值,true: 正常,false: 未选 */\n checkValue(value) {\n\n try {\n\n if (!value) {\n return false\n }\n\n if (value === '' || value === null || value === undefined) {\n return false\n }\n\n if (value instanceof Array) {\n return value.length > 0\n }\n\n if (value instanceof Object) {\n return Object.keys(value).length > 0\n }\n\n // 其他情况\n return true\n\n } catch (error) {\n //TODO handle the exception\n console.log(error)\n return false\n }\n\n },\n\n\n\n /**\n * 判断字符串中是否包含某些字符\n *\n * @param {String} text 检测字符串\n * @param {Array} arr 检测内容字符串数组\n * @param {string} type 检测方式,includeOne:包含一个,includeAll:包含全部,默认为 includeOne\n * */\n isTextInclude(text, arr, type = 'includeOne') {\n if (Object.prototype.toString.call(text) !== '[object String]') throw new Error('text 参数错误有误,只能是String类型')\n if (Object.prototype.toString.call(arr) !== '[object Array]') throw new Error('arr 参数错误有误,只能是Array类型')\n if (type === 'includeOne') {\n return arr.some(i => text.indexOf(i) > -1)\n } else if (type === 'includeAll') {\n return arr.filter(i => text.indexOf(i) > -1).length === arr.length\n } else {\n throw new Error('type 参数错误有误,只能是includeOne或includeAll')\n }\n },\n\n\n\n /**\n * 获取文本长度\n *\n * @param {String} text 待检查的字符串\n * @param {Number} max 当text不是字符时返回的数字\n * */\n getTextLength(text, max = 0) {\n if (Object.prototype.toString.call(text) === '[object String]') {\n let length = 0\n for (let i = 0; i < text.length; i++) {\n if (text.charAt(i).match(/[^\\x00-\\xff]/gi) != null) {\n length += 2\n } else {\n length += 1\n }\n }\n return length\n } else if (max === undefined) {\n throw new Error('getTextLength 参数必须为字符串')\n }\n return max\n }\n\n}","\nexport default {\n createCategoryProperties\n}\n\n/**\n * 根据拼多多分类规则与属性,生成自定义 上货属性\n * */\nfunction createCategoryProperties(categoryPropertys) {\n\n // 是否包含了子分类\n var hasChildren = false\n\n let propertys = categoryPropertys.filter(item => !item.is_sale).map(item => {\n\n if (item?.property_id !== undefined && item?.property_value !== undefined && item.property_type !== undefined) {\n if (item?.show_condition.length) {\n // 有条件,即为 子属性\n hasChildren = true\n }\n return item\n }\n\n var property_values = []\n if (item.values) {\n // 选项列表\n property_values = item.values.map(value => {\n\n return {\n name: value.value,\n value_id: value.vid,\n value: value.vid,\n parent_value: value.parent_vids ? value.parent_vids : []\n }\n })\n }\n\n var property_type = 0\n\n var property_units = item.value_unit.filter(unitItem => unitItem)\n var property_unit = property_units.length ? property_units[0] : ''\n\n var select_max_num = 0\n\n var input_max_num = 0\n var input_type = ''\n var input_format = ''\n\n var date_format = ''\n\n if (item.choose_max_num == 0) {\n // 文本\n if (item.property_value_type == 5) {\n // 日期(拼多多日期格式为‘yyyy-MM-dd’, 目前仅发现”生产日期“)\n property_type = 5\n date_format = \"yyyy-MM-dd\"\n } else if (property_unit) {\n // 有带单位 (拼多多 仅发现整数输入)\n property_type = 4\n input_type = 'number'\n } else {\n // 纯文本\n property_type = 1\n input_max_num = Number(item.max_value) // “input_max_num“ 不可用,一直为0\n }\n\n } else if (item.choose_max_num == 1) {\n // 单选\n property_type = 2\n select_max_num = 1\n } else if (item.choose_max_num > 1) {\n // 多选\n property_type = 3\n select_max_num = item.choose_max_num\n }\n\n // 显示条件\n var show_condition = []\n if (item.show_condition) {\n // 当前属性,条件\n show_condition = item.show_condition.map(conditionItem => {\n return {\n parent_property_id: conditionItem.parent_ref_pid,\n parent_property_value: conditionItem.parent_vids\n }\n })\n }\n\n if (show_condition.length) {\n // 有条件,即为 子属性\n hasChildren = true\n }\n\n return {\n property_id: item.ref_pid, // 属性id\n property_required: item.required, // 是否必填\n property_name: item.name, // 属性名称\n\n property_values: property_values, // 属性可选值列表\n property_type: property_type, // 属性类型,0:未知 1:文本,2:单选,3:多选, 4:单位输入(数字)5:日期选择,6:组合多选\n property_value: undefined ,// 属性值(根据具体属性类型,属性值类型不同)\n\n property_unit: property_unit, // 单位\n property_units: property_units, // 单位列表\n\n select_max_num: select_max_num ,// 最多选择多少个选项(多选,组合多选使用)\n select_custom: false, // 是否支持自定义选项\n\n input_max_num: input_max_num, // 输入文本最大字数(纯文本输入使用)\n input_num: 0, // 当前文本输入字数\n\n input_type: input_type, // 输入类型(单位输入使用),number: 整数,float: 价格\n\n input_format: input_format, // 输入格式(单位输入使用)\n input_min_value: '', // 范围输入,最小值\n input_max_value: '', // 范围输入,最大值\n\n date_format: date_format, // 日期格式(日期使用)\n\n has_children: false, // 没有子属性,\n show_condition: show_condition ,// 显示条件,有数据即为子属性\n condition_values: [], // 子属性根据父属性筛选后的 选项列表\n }\n })\n\n if (hasChildren) {\n // 当前属性列表中存在 子属性,给子属性的父属性设置\n propertys.forEach(item => {\n if (item.show_condition.length) {\n // 当前属性为 子属性, 找到父属性\n item.show_condition.forEach(conditionItem => {\n\n let result = propertys.find(propertyItem => propertyItem.property_id === conditionItem.parent_property_id)\n if (result) {\n // 找到父属性,并设置父属性 有子属性标识\n result.has_children = true\n }\n })\n\n // 排序 子属性放至最前面 (方便后续分组)\n let index = propertys.findIndex(propertyItem => propertyItem.property_id === item.property_id)\n if (index != -1) {\n propertys.splice(index , 1)\n propertys.unshift(item)\n }\n }\n })\n }\n // console.log(\"自定义属性列表\", JSON.stringify(propertys))\n return propertys\n\n}\n","\nexport default {\n createCategoryProperties\n}\n\nfunction createCategoryProperties(categoryPropertys) {\n\n console.log(categoryPropertys)\n\n let propertys = categoryPropertys.map(item => {\n\n if (item?.property_id && item?.property_name && item?.property_type) {\n // 已经转换为自定义完成\n return item\n }\n\n if (!item.values) {\n item.values = []\n }\n\n var property_required = false\n\n var select_max_num = 0\n var input_max_num = 0\n\n var has_children = false\n\n if (item.rules) {\n // 属性有规则\n var rule = item.rules?.rule || []\n\n var ruleList = []\n if (rule instanceof Array) {\n ruleList = [...rule]\n } else {\n ruleList = [rule]\n }\n\n ruleList.forEach(ruleItem => {\n if (ruleItem.name === 'requiredRule') {\n // 有找到必须标识\n property_required = Boolean(ruleItem.value)\n } else if (ruleItem.name === 'maxLengthRule') {\n // 输入限制\n input_max_num = Number(ruleItem.value)\n } else if (ruleItem.name === 'maxInputNumRule') {\n // 选择限制\n select_max_num = Number(ruleItem.value)\n } else if (ruleItem.name === 'devTipRule') {\n // 有子属性\n has_children = true\n }\n })\n\n // if (rule instanceof Array) {\n // \t// 数组\n\n // } else {\n // \t// 对象\n // \tif (rule.name === 'requiredRule') {\n // \t\t// 有找到必须标识\n // \t\tproperty_required = Boolean(rule.value)\n // \t} else if (rule.name === 'maxLengthRule') {\n // \t\t// 输入限制\n // \t\tinput_max_num = Number(rule.value)\n // \t} else if (rule.name === 'maxInputNumRule') {\n // \t\t// 选择限制\n // \t\tselect_max_num = Number(rule.value)\n // \t}\n // }\n }\n\n var property_values = []\n if (item.options) {\n // 单选,多选\n if (item.options.option) {\n let option = item.options.option\n if (option instanceof Array) {\n property_values = item.options.option.map(value => {\n return {\n name: value.displayName,\n value_id: value.value,\n value: value.value\n }\n })\n } else {\n property_values = [{\n name: option.displayName,\n value_id: option.value,\n value: option.value\n }]\n }\n }\n }\n\n var property_unit = ''\n var property_units = []\n var property_unit_type = ''\n\n var input_format = '' // 值输入格式,单值输入为空\n var input_operator = '' // 多值输入中间分隔符\n var input_type = ''\n var input_values = [] // 多值输入内容\n\n var property_tips = ''\n\n if (item?.properties) {\n // 有属性限制\n var property = item.properties.property\n if (property.unitNames) {\n // 需要上传单位\n var unit = property.unitNames.unitName\n if (unit instanceof Object) {\n // 对象\n property_unit = unit.value\n property_units = [unit.value]\n } else if (unit instanceof Array) {\n // 数组(当前未遇到)\n }\n }\n\n if (property.formats) {\n // 输入格式\n let format = property.formats.format\n // console.log(format)\n format.forEach((formatItem, formatIndex) => {\n\n input_format += formatItem.text || ''\n\n if (formatItem.type === 'input' && input_format && formatIndex != 0) {\n // 多值\n input_values.push({\n title: format[formatIndex - 1].text || '',\n value: ''\n })\n }\n\n if (formatItem.type === 'operator') {\n // 获取多值分割符\n input_operator = formatItem.text\n }\n })\n\n }\n\n if (property.precision) {\n // 输入限制(数字,小数点后几位,0为整数)\n input_type = property.precision.value > 0 ? 'float' : 'number'\n }\n\n if (property.taoSirType) {\n // 限制类型\n property_unit_type = property.taoSirType.value\n }\n\n\n if (property.tip) {\n // 有提示语\n property_tips = property.tip?.value || ''\n }\n }\n\n var property_type = 0\n\n var date_format = ''\n\n if (item.type === 'input') {\n // 文本\n\n select_max_num = 0\n if (property_unit) {\n // 需要使用到 单位\n if (property_unit_type == 'date') {\n // 日期类型 (淘宝日期格式为‘yyyy-MM’, 目前仅发现”“)\n property_type = 5\n if (property_unit === '年') {\n date_format = 'yyyy'\n } else if (property_unit === '年月') {\n date_format = 'yyyy-MM'\n } else if (property_unit === '年月日') {\n date_format = 'yyyy-MM-dd'\n } else {\n date_format = 'yyyy-MM'\n }\n } else {\n // 规格输入(数字、带单位)\n if (input_format !== '') {\n // 需要输入范围值\n property_type = 8\n } else {\n // 只需要输入一个值\n property_type = 4\n }\n }\n } else {\n // 正常 纯文本\n property_type = 1\n }\n\n } else if (item.type === 'singleCheck') {\n // 单选\n property_type = 2\n select_max_num = 1\n } else if (item.type === 'multiCheck') {\n // 多选\n property_type = 3\n if (!select_max_num) {\n // 没有现在,最多选5个\n select_max_num = 5\n }\n\n } else if (item.type === 'multiComplex') {\n // 组合 (当前仅“材质成分”)\n property_type = 6\n var field = item.fields.field\n\n // 材质(选项)\n var material_prop_name = field.find(fieldItem => fieldItem.id === 'material_prop_name')\n // 含量(输入)\n var material_prop_content = field.find(fieldItem => fieldItem.id === 'material_prop_content')\n\n // 组合多选 选项内容\n if (material_prop_name.options) {\n\n if (material_prop_name.options.option) {\n property_values = material_prop_name.options.option.map(value => {\n return {\n name: value.displayName,\n value_id: value.value,\n value: value.value,\n\n disableContent: false, // 是否需要成分\n content: '', // 成分\n }\n })\n }\n\n }\n\n // 设置组合规则\n if (material_prop_content.rules) {\n // 有规则\n if (material_prop_content.rules.rule) {\n\n // 获取不可用\n var disableRule = material_prop_content.rules.rule.find(rule => rule.name === 'disableRule')\n if (disableRule) {\n // 有不可用的规则\n var express = disableRule[\"depend-group\"][\"depend-express\"]\n if (express) {\n // 获取到无需设置 成分的\n express.forEach(expressItem => {\n\n if (expressItem.fieldId === 'material_prop_name') {\n\n property_values.push({\n name: expressItem.value,\n value_id: expressItem.value,\n value: expressItem.value,\n\n disableContent: true, // 是否需要成分\n content: '', // 成分\n })\n }\n })\n }\n }\n }\n }\n // console.log(\"材质面料选项\", JSON.stringify(property_values))\n\n if (!select_max_num) {\n // 没有现在,最多选5个\n select_max_num = 7\n }\n property_tips = '最多设置' + select_max_num + '个'\n }\n\n\n let show_condition = []\n\n return {\n property_id: item.id, // 属性id\n property_required: property_required, // 是否必填\n property_name: item.name, // 属性名称\n\n property_values: property_values, // 属性可选值列表\n property_type: property_type, // 属性类型,0:未知 1:文本,2:单选,3:多选, 4:单位输入(数字)5:日期选择,6:组合多选\n property_value: undefined ,// 属性值(根据具体属性类型,属性值类型不同)\n\n property_unit: property_unit, // 单位\n property_units: property_units, // 单位列表\n\n select_max_num: select_max_num ,// 最多选择多少个选项(多选,组合多选使用)\n select_custom: false, // 是否支持自定义选项\n\n input_max_num: input_max_num, // 输入文本最大字数(纯文本输入使用)\n input_num: 0, // 当前文本输入字数\n\n input_type: input_type, // 输入类型(单位输入使用),number: 整数,float: 价格\n\n input_format: input_format, // 输入格式(单位输入使用)\n input_values: input_values, // 多值输入内容\n input_operator: input_operator, // 多值输入分格符\n input_min_value: '', // 范围输入,最小值\n input_max_value: '', // 范围输入,最大值\n\n date_format: date_format, // 日期格式(日期使用)\n\n property_tips: property_tips, // 提示\n\n has_children: has_children, // 没有子属性,\n show_condition: show_condition ,// 显示条件,有数据即为子属性\n condition_values: [], // 子属性根据父属性筛选后的 选项列表\n }\n })\n\n console.log(propertys)\n\n return propertys;\n}","export default {\n createCategoryProperties\n}\n\nfunction createCategoryProperties(categoryPropertys) {\n\n let propertys = categoryPropertys.map(item => {\n\n if (item?.property_id !== undefined && item?.property_value !== undefined && item.property_type !== undefined) {\n return item\n }\n\n // 属性可选选项\n var property_values = []\n\n if (item.options) {\n // 存在可选选项\n property_values = item.options.map(value => {\n return {\n name: value.name,\n value_id: value.value_id,\n value: value.value,\n parent_value: []\n }\n })\n }\n\n var property_type = 0\n\n var property_units = []\n var property_unit = ''\n\n\n var select_max_num = 0\n\n var input_max_num = 0\n var input_type = ''\n var input_format = ''\n\n var date_format = ''\n\n var measure_templates = {} // 组合模版\n\n if (item.type === 'text') {\n // 文本\n property_type = 1\n } else if (item.type === 'select') {\n // 单选\n property_type = 2\n select_max_num = 1\n } else if (item.type === 'multi_select') {\n // 多选\n property_type = 3\n select_max_num = item.multi_select_max\n } else if (item.type === 'measure') {\n // 单位输入\n property_type = 4\n\n if (item.measure_templates.length) {\n let measure_templatesItem = item.measure_templates[0]\n\n let moduleItem = measure_templatesItem.value_modules[0]\n moduleItem.units.forEach(unit => {\n property_units.push(unit.unit_name)\n })\n }\n property_unit = property_units[0]\n\n } else if (item.type === 'multi_value_measure') {\n // 组合多选 ('面料材质')\n property_type = 6\n select_max_num = item.multi_select_max\n\n let measure_values = []\n //\n if (item.measure_templates.length) {\n let measure_templatesItem = item.measure_templates[0]\n measure_templates = {\n template_id: measure_templatesItem.template_id,\n value_modules: measure_templatesItem.value_modules.map(moduleItem => {\n return {\n input_type: moduleItem.input_type,\n module_id: moduleItem.module_id,\n prefix: moduleItem.prefix,\n suffix: moduleItem.suffix,\n unit: moduleItem.units.length ? moduleItem.units[0] : {\n unit_id: 0,\n unit_name: ''\n }\n }\n })\n }\n\n let moduleItem = measure_templatesItem.value_modules.find(moduleItem => moduleItem.input_type === 'enum_diy')\n if (moduleItem) {\n // 查询到需要的带单位的\n measure_values = moduleItem.values\n }\n }\n\n property_values = item.options.map(value => {\n\n // let disableContent = measure_values.findIndex(valueItem => valueItem.value_name === value.name)\n\n return {\n name: value.name,\n value_id: value.value_id,\n value: value.value,\n\n disableContent: false, // 是否需要成分\n content: '', // 成分\n }\n })\n }\n\n let show_condition = []\n\n\n return {\n\n property_id: item.property_id, // 属性id\n property_required: item.required == 1, // 是否必填\n property_name: item.property_name, // 属性名称\n\n property_type: property_type, // 属性类型,0:未知 1:文本,2:单选,3:多选, 4:单位输入(数字)5:日期选择,6:组合多选\n property_value: undefined ,// 属性值(根据具体属性类型,属性值类型不同)\n\n property_values: property_values, // 属性可选值列表(单选、多选)\n\n property_unit: property_unit, // 单位\n property_units: property_units, // 单位列表\n\n select_max_num: select_max_num ,// 最多选择多少个选项(多选,组合多选使用)\n select_custom: false, // 是否支持自定义选项\n\n input_max_num: input_max_num, // 输入文本最大字数(纯文本输入使用)\n input_num: 0, // 当前文本输入字数\n\n input_type: input_type, // 输入类型(单位输入使用),number: 整数,float: 价格\n\n input_format: input_format, // 输入格式(单位输入使用)\n input_min_value: '', // 范围输入,最小值\n input_max_value: '', // 范围输入,最大值\n\n date_format: date_format, // 日期格式(日期使用)\n\n measure_templates: measure_templates, // 属性模版 (组合模版)\n\n has_children: false, // 没有子属性,\n show_condition: show_condition ,// 显示条件,有数据即为子属性\n condition_values: [], // 子属性根据父属性筛选后的 选项列表\n }\n })\n\n return propertys\n}","\nimport utils from \"../utils/utils.js\";\n\nexport default {\n\n // 匹配文本输入\n matchInputProperty(propertyItem, goodsProperties, goods) {\n\n // 进行包含匹配\n let result = goodsProperties.findIndex(item => item.attr_name.includes(propertyItem.property_name))\n if (result != -1) {\n // 能进行模糊匹配到, 直接文本直接赋值\n let goodsProperty = goodsProperties[result]\n goodsProperties.splice(result, 1) // 从匹配数据中移除\n\n if (typeof goodsProperty.value === 'string') {\n // 值为字符串\n return goodsProperty.value\n }\n\n if (typeof goodsProperty.value === 'object') {\n // 对象/数组\n if (goodsProperty.value instanceof Array) {\n // 数组\n let property_values = []\n let reg = /(.*?)\\[(\\d+)%\\]/\n goodsProperty.value.forEach(valueItem => {\n\n if (typeof valueItem === 'string' && reg.test(valueItem)) {\n // 为字符串,并且为 '其他材质[100%]'格式数据\n let values = reg.exec(valueItem)\n\n if (propertyItem.property_name.includes('含量')) {\n // 含量,只取含量,不取材质\n property_values.push(values[2])\n } else if (propertyItem.property_name.includes('材质成分')) {\n // 材质成分,直接赋值\n property_values.push(values[0])\n } else if (propertyItem.property_name.includes('材质')) {\n // 材质,只取材质,不取含量\n property_values.push(values[1])\n }\n }\n })\n return property_values.length ? property_values[0] : ''\n }\n }\n }\n\n // 没有进行模糊匹配到,进行特殊处理\n\n if (propertyItem.property_name.includes('CCC') || propertyItem.property_name.includes('3C')) {\n // 玩具3C认证\n result = goodsProperties.findIndex(item => item.attr_name.includes('CCC') || item.attr_name.includes('3C'))\n if (result != -1) {\n let goodsProperty = goodsProperties[result]\n goodsProperties.splice(result, 1) // 从匹配数据中移除\n return goodsProperty.value\n }\n }\n\n if (propertyItem.property_name.includes('型号') && goods.cate_path.includes('3C数码配件')) {\n\n return goods.goods_sn\n }\n\n if (propertyItem.property_name.includes('生产厂家') && goods.cate_path.includes('3C数码配件')) {\n return '国内'\n }\n\n return ''\n },\n\n /**\n * 匹配单选\n * @param {Boolean} isTemplate 是否模板匹配,true时以模板属性为主\n * */\n matchSingleSelectProperty(isTemplate, propertyItem, goodsProperties) {\n\n\n // 子属性 使用’condition_values‘,正常属性 使用’property_values‘\n let property_values = propertyItem.show_condition.length ? propertyItem.condition_values : propertyItem.property_values\n\n if (property_values.length == 1) {\n // 只有一个选项, 直接选\n return property_values[0]\n }\n\n // 模糊匹配\n let index = goodsProperties.findIndex(item => item.attr_name.includes(propertyItem.property_name))\n if (index != -1) {\n let attr = goodsProperties[index]\n let valueItem = this.matchSingleSelectPropertyValue(property_values, attr)\n if (valueItem) {\n goodsProperties.splice(i, 1)\n return valueItem\n }\n }\n\n // 使用相似度进行匹配\n for (var i = 0; i < goodsProperties.length; i++) {\n\n let attr = goodsProperties[i]\n let result = utils.getStringSimilarity(propertyItem.property_name, attr.attr_name)\n\n if (result >= 50) {\n // 相似程度大于等50,进行匹配属性值\n\n let valueItem = this.matchSingleSelectPropertyValue(property_values, attr)\n if (valueItem) {\n goodsProperties.splice(i, 1)\n return valueItem\n }\n }\n }\n\n // 指定修改\n if (['产地'].includes(propertyItem.property_name)) {\n //\n let valueItem = propertyItem.property_values.find(item => item.name.includes('中国'))\n if (valueItem) {\n return valueItem\n }\n }\n\n\n return {}\n },\n\n /**\n * 匹配单选值\n * @param {Array} propertyValues 属性值可选列表\n * @param {Object} goodsAttr 参考属性值\n * */\n matchSingleSelectPropertyValue(propertyValues, goodsAttr) {\n\n if (!goodsAttr || !Object.keys(goodsAttr).length) {\n // 参考值为空\n return {}\n }\n\n let valueItem = propertyValues.find(item => item.name === goodsAttr.value)\n if (valueItem) {\n // 属性值全匹配正确\n return valueItem\n }\n\n // 属性值全字符匹配失败,进行字符包含匹配\n valueItem = propertyValues.find(item => item.name.includes(goodsAttr.value) || goodsAttr.value.includes(item.name))\n if (valueItem) {\n // 字符包含匹配正确\n return valueItem\n }\n\n // 字符包含匹配失败,进行字符相似度匹配\n let similarity = 0\n propertyValues.forEach(item => {\n\n let result = utils.getStringSimilarity(item.name, goodsAttr.value)\n if (result >= 50 && result > similarity) {\n\n // 相似度大于50, 并且比之前相似度大(取最大相似值)\n similarity = result\n valueItem = item\n }\n })\n if (valueItem) {\n // 相似度匹配大于50, 获取最相似的值)\n return valueItem\n }\n return {}\n },\n\n\n /* 匹配多选 */\n matchMultipleSelectProperty(propertyItem, goodsProperties) {\n\n // 子属性 使用’condition_values‘,正常属性 使用’property_values‘\n let property_values = propertyItem.show_condition.length ? propertyItem.condition_values : propertyItem.property_values\n\n\n\n if (['面料分类','面料材质'].includes(propertyItem.property_name)) {\n // 多选 面料材质\n let index = goodsProperties.findIndex(item => ['面料分类','面料材质'].includes(item.attr_name))\n\n if (index != -1) {\n let attr = goodsProperties[index]\n goodsProperties.splice(index, 1)\n\n let value = []\n if (attr.value instanceof Array) {\n // 数组(原商品属性多选),字符串数组\n attr.value.forEach(attrValue => {\n\n if (propertyItem.select_max_num > value.length) {\n // 未到限制多选数量,进行匹配\n let valueItem = property_values.find(valueItem => valueItem.name === attrValue)\n if (valueItem) {\n // 有匹配到属性值, 并且未到最大选中值\n valueItem.isSelect = true\n value.push(valueItem)\n }\n }\n })\n } else {\n // 对象(原商品属性单选)\n if (propertyItem.select_max_num > value.length) {\n let valueItem = property_values.find(value => value.name === attr.value)\n if (valueItem) {\n // 有匹配到属性值, 并且未到最大选中值\n valueItem.isSelect = true\n value.push(valueItem)\n }\n }\n }\n\n return value\n }\n return []\n }\n\n\n return []\n },\n\n\n /* 匹配组合多选(’材质成分‘) */\n matchMaterialQualityProperty(propertyItem, goodsProperties) {\n\n // 子属性 使用’condition_values‘,正常属性 使用’property_values‘\n let property_values = propertyItem.show_condition.length ? propertyItem.condition_values : propertyItem.property_values\n\n let valueList = []\n\n // console.log(\"匹配材质成分\", propertyItem.property_name)\n // console.log(JSON.stringify(goodsProperties))\n // 模糊匹配\n let index = goodsProperties.findIndex(item => item.attr_name.includes(propertyItem.property_name))\n if (index != -1) {\n let attr = goodsProperties[index]\n\n let attrValue = []\n console.log(attr.value, typeof attr.value)\n if (typeof attr.value === 'string') {\n // 字符串\n attrValue = attr.value.split(',')\n } else {\n // 数组\n attrValue = [...attr.value]\n }\n\n if (attrValue) {\n attrValue.forEach(item => {\n if (item instanceof String) {\n let t = item.lastIndexOf('[')\n if (t != -1) {\n let attValue = item.slice(0, t)\n let attContent = item.slice(t + 1, item.length - 1).replace('%', '')\n\n let valueItem = property_values.find(item => item.name === attValue)\n if (valueItem) {\n // 属性值全匹配正确\n valueItem.content = Number(attContent) ? Number(attContent) : 0\n valueItem.isSelect = true\n valueList.push(valueItem)\n }\n }\n }\n\n })\n }\n }\n\n\n return valueList\n },\n\n\n\n /* 计算属性各项属性数量,与选择数量 */\n calculateCategroyProperty(propertiesDatas) {\n\n let requiredTotal = 0\n let selectCount = 0\n propertiesDatas.required_list.forEach(item => {\n\n if (item.show) {\n requiredTotal++\n\n if (item.property_type == 1 && item.property_value) {\n // 文本\n selectCount++\n } else if (item.property_type == 2 && item.property_value && Object.keys(item.property_value).length) {\n // 单选\n selectCount++\n } else if (item.property_type == 3 && item.property_value.length) {\n // 多选\n selectCount++\n } else if (item.property_type == 4 && item.property_value && item.property_unit) {\n // 规格输入\n selectCount++\n } else if (item.property_type == 5 && item.property_value) {\n // 日期选择\n selectCount++\n } else if (item.property_type == 6 && item.property_value.length) {\n // 组合多选\n selectCount++\n }\n }\n })\n\n propertiesDatas.require_total = requiredTotal\n propertiesDatas.require_count = selectCount\n },\n\n\n /* 获取子属性 */\n getChildrenProperty(list, parentItem, children_list) {\n\n let index = children_list.length - 1\n while (index >= 0){\n let childrenItem = children_list[index]\n\n let result = childrenItem.show_condition.findIndex(conditionItem => conditionItem.parent_property_id == parentItem.property_id)\n if (result != -1) {\n // 当前子属性,为当前属性的子属性\n\n if (childrenItem.show_condition.length == 1) {\n // 子属性只有一个显示条件,直接添加\n children_list.splice(index, 1) // 移除属性列表\n\n childrenItem.property_required = parentItem.property_required // 子属性设置为必须项\n list.push(childrenItem)\n if (childrenItem.has_children) {\n // 需要重新调用赋值,打破当前循序重新开始遍历子属性\n this.getChildrenProperty(list, childrenItem, children_list)\n break\n }\n\n } else {\n // 子属性有多个显示条件\n childrenItem.property_required = parentItem.property_required // 先设置子属性为必填项,后续非必填筛选完成后,分别添加到列表最后面\n }\n }\n index--\n }\n\n },\n\n}","\nimport { checkPlatform } from \"./config/platform.js\";\nimport utils from \"./utils/utils.js\";\n\nimport pdd from \"./platform/pdd.js\";\nimport tb from \"./platform/tb.js\";\nimport dy from \"./platform/dy.js\";\n\nimport propertyTools from \"./tools/property.js\";\n\nexport default {\n createCategoryProperties\n}\n\n/*\n* 匹配属性值\n* @param {String} pt_type 平台编码(生成平台编码)\n* @param {Array} pt_attrs 平台属性列表(生成平台属性)\n* @param {Array} orgrin_attrs 匹配来源属性列表(来源属性,用于生成平台属性属性值匹配)\n* */\nfunction createCategoryProperties(cate, pt_type, pt_attrs, orgrin_attrs=[], goods={}) {\n\n return new Promise((resolve, reject) => {\n try {\n\n\n // console.log(\"待处理属性列表\", pt_attrs)\n // console.log(\"来源属性\", orgrin_attrs)\n\n // 获取平台,检测平台是否正确\n let platform = checkPlatform(pt_type)?.code || ''\n console.log(\"开始进行匹配\", JSON.stringify(cate), platform)\n\n let properties = []\n\n switch (platform) {\n case 'pdd':\n // 拼多多\n properties = pdd.createCategoryProperties(pt_attrs)\n break;\n case 'tb':\n // 淘宝\n properties = tb.createCategoryProperties(pt_attrs)\n break;\n case 'tm':\n // 天猫\n break;\n case 'jd':\n // 京东\n break;\n case 'dy':\n // 抖音\n properties = dy.createCategoryProperties(pt_attrs)\n break;\n case 'xp':\n // 虾皮\n break;\n case 'xhs':\n // 小红书\n break;\n case 'ks':\n // 快手\n break;\n case 'dsy':\n // 电商园\n break;\n case '1688':\n // 1688\n break;\n case 'sph':\n // 微信小店\n break;\n case 'tk':\n // Tiktio\n break;\n default:\n // 其他类型,报错\n reject({\n msg: '检测不到类目来源平台!',\n code: -1,\n type: 'pt_type参数错误'\n })\n break;\n }\n\n console.log(\"待处理属性列表(转换后)\",properties)\n\n // 获取转换来源数据\n let attrs = checkOriginAttrs(orgrin_attrs, goods)\n console.log(\"来源属性(转换后)\", attrs)\n\n let propertiesDatas = matchCategroyProperties(properties, attrs)\n\n console.log(\"匹配结果\", JSON.stringify(propertiesDatas))\n\n resolve ({\n msg: '成功',\n data: propertiesDatas,\n code: 1,\n })\n\n } catch (err) {\n console.log(err)\n reject({\n msg: err.message,\n code: -10000,\n type: '系统报错'\n })\n }\n })\n}\n\n/*\n* 检测并装换来源参数\n* */\nfunction checkOriginAttrs(orgrin_attrs, goods) {\n\n var attrs = orgrin_attrs.map(item => {\n\n if (item?.property_id !== undefined && item?.property_value !== undefined && item.property_type !== undefined) {\n // 当前属性为自定义属性\n var attrItem = {\n id: item.property_id,\n attr_name: item.property_name,\n value_id: '',\n value: '',\n }\n\n let property_type = item?.property_type || 0\n\n if (property_type == 1 || property_type == 5) {\n // 纯文本、日期选择\n attrItem.value = item?.property_value || ''\n } else if (property_type == 2) {\n // 单选\n attrItem.value = item?.property_value.name || ''\n attrItem.value_id = item?.property_value.value_id || ''\n } else if (property_type == 3) {\n // 多选\n let valueList = item?.property_value || []\n if (valueList.length) {\n attrItem.value = valueList.map(item => item.name)\n attrItem.value_id = valueList.map(item => item.value_id)\n }\n } else if (property_type == 4) {\n // 输入 + 规格\n if (item?.property_value) {\n // 有输入值\n attrItem.value = item?.property_value || '' + item?.property_unit || ''\n }\n\n } else if (property_type == 6) {\n // 组合多选('面料材质')\n } else if (property_type == 7) {\n // 分级选择\n attrItem.value = item?.property_value?.parent_id ? item?.property_value?.parent_name || '' + ' - ' + item?.property_value?.name || '' : item?.property_value?.name || ''\n attrItem.value_id = item?.property_value?.value_id\n } else if (property_type == 8) {\n // 范围输入\n attrItem.value = item?.property_value || '' + item?.property_unit || ''\n }\n\n return attrItem\n }\n\n return {\n id: item?.id || '',\n attr_name: item?.attr_name,\n value_id: item?.value_id || '',\n value: item?.value || '',\n }\n }).filter(item => item.value)\n\n if (goods?.goodsSn) {\n // 有货号数据\n let result = attrs.find(item => item.attr_name.includes('货号'))\n if (result) {\n // 有货号的属性\n if (!result?.value) {\n // 货号没有值\n result.value = goods.goodsSn\n }\n } else {\n // 没有货号属性,添加货号属性\n attrs.push({\n id: '',\n attr_name: '货号',\n value_id: '',\n value: goods.goodsSn,\n })\n }\n }\n\n if (goods?.ccc_code) {\n // 商品有3c编码\n let result = attrs.find(item => item.attr_name.includes('CCC') || item.attr_name.includes('3C'))\n if (result) {\n // 有货号的属性\n if (!result?.value) {\n // 货号没有值\n result.value = goods.ccc_code\n }\n } else {\n // 没有货号属性,添加货号属性\n attrs.push({\n id: '',\n attr_name: '3C证书',\n value_id: '',\n value: goods.ccc_code,\n })\n }\n }\n\n return attrs\n\n}\n\n\nfunction matchCategroyProperties(properties, attrs) {\n\n let goodsPropertys = [].concat(attrs || [])\n\n let propertiesDatas = {\n list: [], // 正常属性列表(不包含‘品牌’属性 以及 子属性)\n\n require_total: 0,\t// 必填属性总数\n require_count: 0, \t// 必填属性已填数\n required_list: [], \t// 必填属性列表\n other_list: [], \t// 非必填属性列表\n children_list: []\t,// 子属性列表\n\n brand_property: {}, // '品牌'属性\n material_quality_property: {}, // ‘材料成分’属性\n }\n\n // 第一步,先进行筛选,分出“品牌”属性,必填属性,非必填属性,子属性, 其中‘材料成分’属性外部登记(方便后期进行检测)\n properties.forEach(item => {\n\n if (item.property_name === '品牌') {\n // 品牌,跳过\n propertiesDatas.brand_property = item\n\n } else if (item.show_condition.length) {\n // 子属性,有显示条件\n item.show = false\n propertiesDatas.children_list.push(item)\n\n // 子属性初始化\n if (item.property_type == 1 || item.property_type == 4 || item.property_type == 5 || item.property_type == 7 || item.property_type == 8) {\n // 纯文本,数字,日期\n item.property_value = ''\n } else if (item.property_type == 2) {\n // 单选\n item.property_value = {}\n } else if (item.property_type == 3) {\n // 多选\n item.property_value = []\n }\n\n } else {\n // 固定属性,区分必填项,与 非必填项\n item.show = true\n if (item.property_required) {\n // 必填\n propertiesDatas.required_list.push(item)\n } else {\n // 非必填\n propertiesDatas.other_list.push(item)\n }\n\n switch (item.property_type) {\n case 1: // 纯文本\n {\n item.property_value = propertyTools.matchInputProperty(item, goodsPropertys)\n // let index = goodsPropertys.findIndex(attr => attr.attr_name === item.property_name)\n // if (index != -1) {\n // \t// 匹配到,直接赋值\n // \tlet attr = goodsPropertys[index]\n // \t// 移除商品属性列表(减少后期匹配循环次数),目前不可能属性列表存在相同的属性名称\n // \tgoodsPropertys.splice(index, 1)\n // \titem.property_value = attr.value\n // } else {\n // \t// 没有匹配到,默认为空字符\n // \titem.property_value = ''\n // }\n // 输入文本数量\n item.input_num = utils.getTextLength(item.property_value)\n }\n break;\n case 2: // 单选类型 (根据可以选择的选项多少判断)\n {\n // 搜索关键词\n item.search_key = ''\n\n if (item.property_name === '货号') {\n // 货号(快手’货号‘属性为单选)\n\n let property_value = item.property_values.find(property_value => property_value.name === goods.goods_sn)\n if (!property_value) {\n // 原数据没有当前货号的选项,新增一个\n property_value = {\n name: goods.goods_sn,\n value_id: 0,\n value: 0,\n parent_value: []\n }\n item.property_values.unshift(property_value)\n }\n item.property_value = property_value\n } else {\n // 其他\n\n let index = goodsPropertys.findIndex(attr => attr.attr_name === item.property_name)\n if (index != -1) {\n // 匹配到了\n let attr = goodsPropertys[index]\n // 移除商品属性列表(减少后期匹配循环次数),目前不可能属性列表存在相同的属性名称\n goodsPropertys.splice(index, 1)\n\n let property_values = item.show_condition.length ? item.condition_values : item.property_values\n item.property_value = propertyTools.matchSingleSelectPropertyValue(property_values, attr)\n\n } else {\n // 未匹配到,默认为空对象\n item.property_value = {}\n }\n }\n }\n break;\n case 3: // 多选类型\n {\n // 搜索关键词\n item.search_key = ''\n\n let index = goodsPropertys.findIndex(attr => attr.attr_name === item.property_name)\n if (index != -1) {\n // 匹配到了\n let attr = goodsPropertys[index]\n // 移除商品属性列表(减少后期匹配循环次数),目前不可能属性列表存在相同的属性名称\n goodsPropertys.splice(index, 1)\n\n let value = []\n if (attr) {\n // 商品有该属性,进行匹配\n if (attr.value instanceof Array) {\n // 数组(原商品属性多选),字符串数组\n attr.value.forEach(attrValue => {\n\n if (item.select_max_num > value.length) {\n // 未到限制多选数量,进行匹配\n let valueItem = item.property_values.find(valueItem => valueItem.name === attrValue)\n if (valueItem) {\n // 有匹配到属性值, 并且未到最大选中值\n valueItem.isSelect = true\n value.push(valueItem)\n }\n }\n })\n } else {\n // 对象(原商品属性单选)\n if (item.select_max_num > value.length) {\n let valueItem = item.property_values.find(value => value.name === attr.value)\n if (valueItem) {\n // 有匹配到属性值, 并且未到最大选中值\n valueItem.isSelect = true\n value.push(valueItem)\n }\n }\n }\n }\n item.property_value = value ? value : []\n } else {\n // 匹配不到\n item.property_value = []\n }\n\n if (item.select_max_num) {\n // 有限制选择个数\n item.property_tips = `限最多选${item.select_max_num}个`\n }\n }\n break;\n case 4: // 输入,带单位\n {\n item.property_value = ''\n }\n break;\n case 5: // 日期\n {\n item.property_value = ''\n item.property_tips = ''\n }\n break;\n case 6: // 组合多选,目前仅’材质成分‘\n {\n // 外部登记出来,方便进行检测\n propertiesDatas.material_quality_property = item\n if (item.select_max_num) {\n // 有限制选择个数\n item.property_tips = `限最多选${item.select_max_num}个, 且需填写每项【材质】的含量,填写完成后材质成分占比总和必须为100%`\n }\n\n }\n break;\n case 7: // 日期\n {\n item.property_value = {}\n item.property_tips = ''\n }\n break;\n case 8: // 范围输入,带单位\n {\n item.property_value = ''\n }\n break;\n default:\n {\n item.property_type = 0\n item.property_value = ''\n }\n break;\n }\n }\n })\n\n // 第二步,进行数据重组排序,必填属性 与 非必填属性 加入子属性\n if (propertiesDatas.children_list.length) {\n // 有子属性, 需要将子属性添加到对应的属性下,子属性多条件显示,添加到列表最后\n // console.log(\"============= 当前分类存在子分类,需要进行处理 =============\")\n let required_list = []\n let other_list = []\n let children_list = [...propertiesDatas.children_list].sort((a, b) => { return b.has_children}) // 排序有子属性的排前\n\n propertiesDatas.required_list.forEach(item => {\n // 加入新列表\n required_list.push(item)\n if (item.has_children) {\n // 有子分类,将子分类添加进列表来\n propertyTools.getChildrenProperty(required_list, item, children_list)\n }\n })\n\n propertiesDatas.other_list.forEach(item => {\n // 加入临时 非必填属性列表\n other_list.push(item)\n if (item.has_children) {\n // 有子分类,将子分类添加进列表来\n propertyTools.getChildrenProperty(other_list, item, children_list)\n }\n })\n\n // 开始合并成新的完整属性列表\n children_list.forEach(item => {\n\n if (item.property_required) {\n required_list.push(item)\n } else {\n other_list.push(item)\n }\n })\n\n propertiesDatas.required_list = required_list\n propertiesDatas.other_list = other_list\n\n // console.log(\"排序完 必选项\", JSON.stringify(required_list))\n // console.log('排序完 非必填项', JSON.stringify(other_list))\n }\n\n // 第三步,合成完整的列表\n propertiesDatas.list = [...propertiesDatas.required_list, ...propertiesDatas.other_list]\n\n // 第四步,进行属性值匹配填写(必填项,非必填项,子项)\n propertiesDatas.list.forEach(item => {\n\n switch (item.property_type){\n case 1: // 文本\n {\n if (!item.property_value) {\n // 没有选项,进行模糊匹配\n item.property_value = propertyTools.matchInputProperty(item, goodsPropertys)\n }\n if (item.property_required && item.property_value) {\n // 必填 且 有选中项,\n propertiesDatas.require_count++\n }\n }\n break;\n case 2: // 单选\n {\n if (!item.property_value || !Object.keys(item.property_value).length) {\n // 没有选项,进行匹配\n item.property_value = propertyTools.matchSingleSelectProperty(false ,item, goodsPropertys)\n }\n if (item.property_required && Object.keys(item.property_value).length) {\n // 必填 且 有选中项,\n propertiesDatas.require_count++\n }\n }\n break;\n case 3:\t// 多选\n {\n\n if (!item.property_value || !item.property_value.length) {\n // 没有选项,进行匹配\n item.property_value = propertyTools.matchMultipleSelectProperty(item, goodsPropertys)\n }\n if (item.property_required && item.property_value.length) {\n // 必填 且 有选中项,\n propertiesDatas.require_count++\n }\n }\n break;\n case 4: // 输入,带单位\n {\n\n // if (!item.property_value) {\n // \t// 没有选项,进行匹配\n // \titem.property_value = propertyTools.matchMultipleSelectProperty(item, goodsPropertys)\n // }\n if (item.property_required && item.property_value) {\n // 必填 且 有选中项,\n propertiesDatas.require_count++\n }\n }\n break;\n case 5: // 日期\n {\n if (item.property_required && item.property_value) {\n // 必填 且 有选中项,\n propertiesDatas.require_count++\n }\n }\n break;\n case 6: // 组合多选 ('材质成分')\n {\n if (!item.property_value || !item.property_value.length) {\n // 没有选项,进行匹配\n item.property_value = propertyTools.matchMaterialQualityProperty(item, goodsPropertys)\n }\n\n // item.property_value = []\n\n if (item.property_required && item.property_value.length) {\n // 必填 且 有选中项,\n propertiesDatas.require_count++\n }\n }\n break;\n default:\n break;\n }\n\n if (item.has_children) {\n // 当前属性有子属性,判断起是否显示\n\n propertiesDatas.children_list.forEach(childrenItem => {\n let isShow = true\n\n if (childrenItem.show_condition.length) {\n // 子属性 遍历显示条件\n let result = childrenItem.show_condition.find(conditionItem => item.property_id === conditionItem.parent_property_id)\n if (result) {\n // 查询到为当前属性的子属性\n if (!Object.keys(item.property_value).length) {\n // 当前属性没有属性值,子属性不显示\n isShow = false\n } else {\n // 当前属性有选择属性值\n if (result.parent_property_value.includes(item.property_value.value_id)) {\n // 当前子属性需显示,根据父属性选项,筛选子属性可使用的属性\n childrenItem.condition_values = childrenItem.property_values.filter(valueItem => !valueItem.parent_value || !valueItem.parent_value.length || (valueItem.parent_value.length && valueItem.parent_value.includes(item.property_value.value_id)))\n } else {\n // 当前子属性不需要显示\n isShow = false\n }\n }\n childrenItem.show = isShow\n }\n }\n })\n }\n })\n\n // 第五步,计算必填项数量\n propertyTools.calculateCategroyProperty(propertiesDatas)\n\n return propertiesDatas\n\n}\n\n"],"names":["platformList","id","title","code","shopType","checkPlatform","pt_type","platform","Number","find","item","getStringSimilarity","str1","str2","sameNum","i","length","j","evil","str","fn","Function","checkValue","value","undefined","Array","Object","keys","error","console","log","isTextInclude","text","arr","type","arguments","prototype","toString","call","Error","some","indexOf","filter","getTextLength","max","charAt","match","createCategoryProperties","categoryPropertys","hasChildren","propertys","is_sale","map","property_id","property_value","property_type","show_condition","property_values","values","name","value_id","vid","parent_value","parent_vids","property_units","value_unit","unitItem","property_unit","select_max_num","input_max_num","input_type","input_format","date_format","choose_max_num","property_value_type","max_value","conditionItem","parent_property_id","parent_ref_pid","parent_property_value","ref_pid","property_required","required","property_name","select_custom","input_num","input_min_value","input_max_value","has_children","condition_values","forEach","result","propertyItem","index","findIndex","splice","unshift","rules","_item$rules","rule","ruleList","_toConsumableArray","ruleItem","Boolean","options","option","displayName","property_unit_type","input_operator","input_values","property_tips","properties","property","unitNames","unit","unitName","formats","format","formatItem","formatIndex","push","precision","taoSirType","tip","_property$tip","field","fields","material_prop_name","fieldItem","material_prop_content","disableContent","content","disableRule","express","expressItem","fieldId","measure_templates","multi_select_max","measure_templatesItem","moduleItem","value_modules","units","unit_name","template_id","module_id","prefix","suffix","unit_id","matchInputProperty","goodsProperties","goods","attr_name","includes","goodsProperty","_typeof","reg","valueItem","test","exec","cate_path","goods_sn","matchSingleSelectProperty","isTemplate","attr","matchSingleSelectPropertyValue","utils","propertyValues","goodsAttr","similarity","matchMultipleSelectProperty","attrValue","isSelect","matchMaterialQualityProperty","valueList","split","String","t","lastIndexOf","attValue","slice","attContent","replace","calculateCategroyProperty","propertiesDatas","requiredTotal","selectCount","required_list","show","require_total","require_count","getChildrenProperty","list","parentItem","children_list","childrenItem","cate","pt_attrs","orgrin_attrs","Promise","resolve","reject","_checkPlatform","JSON","stringify","pdd","tb","dy","msg","attrs","checkOriginAttrs","matchCategroyProperties","data","err","message","attrItem","_item$property_value","_item$property_value2","_item$property_value3","_item$property_value4","_item$property_value5","parent_id","parent_name","goodsSn","ccc_code","goodsPropertys","concat","other_list","brand_property","material_quality_property","propertyTools","search_key","sort","a","b","isShow"],"mappings":"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"}
|
package/dist/index.html
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Rollup Example</title>
|
|
7
|
+
</head>
|
|
8
|
+
<body>
|
|
9
|
+
<h1>Rollup + ES Modules 示例</h1>
|
|
10
|
+
<script src="bundle.js"></script>
|
|
11
|
+
</body>
|
|
12
|
+
</html>
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ftdsy-attr",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "dist/ftdsy-attr",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "NODE_ENV=development rollup -c -w",
|
|
8
|
+
"build": "NODE_ENV=production rollup -c"
|
|
9
|
+
},
|
|
10
|
+
"keywords": [],
|
|
11
|
+
"author": "",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"@babel/core": "^7.26.9",
|
|
15
|
+
"@babel/preset-env": "^7.26.9",
|
|
16
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
17
|
+
"@rollup/plugin-node-resolve": "^16.0.0",
|
|
18
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
19
|
+
"rollup": "^4.34.9",
|
|
20
|
+
"rollup-plugin-serve": "^3.0.0"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
|
24
|
+
"rollup-plugin-livereload": "^2.0.5"
|
|
25
|
+
},
|
|
26
|
+
"description": ""
|
|
27
|
+
}
|
package/rollup.config.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
|
|
2
|
+
import { nodeResolve } from '@rollup/plugin-node-resolve'; // 解析第三方模块
|
|
3
|
+
import babel from '@rollup/plugin-babel'; // 使用 Babel 转译代码
|
|
4
|
+
import commonjs from '@rollup/plugin-commonjs'; // 将 CommonJS 模块转换为 ES Modules
|
|
5
|
+
import terser from "@rollup/plugin-terser"; // 代码压缩
|
|
6
|
+
import serve from 'rollup-plugin-serve'; // 开发服务器
|
|
7
|
+
import livereload from 'rollup-plugin-livereload'; // 实时刷新
|
|
8
|
+
|
|
9
|
+
// 公共配置
|
|
10
|
+
const commonConfig = {
|
|
11
|
+
input: 'src/main.js',
|
|
12
|
+
output: {
|
|
13
|
+
file: 'dist/ftdsy-attr.js',
|
|
14
|
+
format: 'es',
|
|
15
|
+
name: 'FtDsyAttr',
|
|
16
|
+
sourcemap: true,
|
|
17
|
+
},
|
|
18
|
+
plugins: [
|
|
19
|
+
nodeResolve(),
|
|
20
|
+
commonjs(),
|
|
21
|
+
babel({
|
|
22
|
+
babelHelpers: 'bundled',
|
|
23
|
+
exclude: 'node_modules/**',
|
|
24
|
+
}),
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// 开发环境配置
|
|
29
|
+
const devConfig = {
|
|
30
|
+
...commonConfig,
|
|
31
|
+
plugins: [
|
|
32
|
+
...commonConfig.plugins,
|
|
33
|
+
serve({
|
|
34
|
+
open: true,
|
|
35
|
+
contentBase: 'dist',
|
|
36
|
+
port: 3000,
|
|
37
|
+
}),
|
|
38
|
+
livereload('dist'),
|
|
39
|
+
],
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// 生产环境配置
|
|
43
|
+
const prodConfig = {
|
|
44
|
+
...commonConfig,
|
|
45
|
+
plugins: [
|
|
46
|
+
...commonConfig.plugins,
|
|
47
|
+
terser(), // 生产环境压缩代码
|
|
48
|
+
],
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// 根据环境变量选择配置
|
|
52
|
+
export default process.env.NODE_ENV === 'production' ? prodConfig : devConfig;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
|
|
2
|
+
const platformList = [
|
|
3
|
+
{
|
|
4
|
+
id: 1,
|
|
5
|
+
title: '拼多多',
|
|
6
|
+
code: 'pdd',
|
|
7
|
+
shopType: 1,
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
id: 2,
|
|
11
|
+
title: '淘宝',
|
|
12
|
+
code: 'tb',
|
|
13
|
+
shopType: 1
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
id: 2,
|
|
17
|
+
title: '天猫',
|
|
18
|
+
code: 'tm',
|
|
19
|
+
shopType: 2
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 3,
|
|
23
|
+
title: '京东',
|
|
24
|
+
code: 'jd',
|
|
25
|
+
shopType: 1
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: 4,
|
|
29
|
+
title: '抖音',
|
|
30
|
+
code: 'dy',
|
|
31
|
+
shopType: 1
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 5,
|
|
35
|
+
title: '虾皮',
|
|
36
|
+
code: 'xp',
|
|
37
|
+
shopType: 1
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: 6,
|
|
41
|
+
title: '小红书',
|
|
42
|
+
code: 'xhs',
|
|
43
|
+
shopType: 1
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
id: 7,
|
|
47
|
+
title: '快手',
|
|
48
|
+
code: 'ks',
|
|
49
|
+
shopType: 1
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 8,
|
|
53
|
+
title: '52电商园',
|
|
54
|
+
code: 'dsy',
|
|
55
|
+
shopType: 1
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
id: 9,
|
|
59
|
+
title: '1688',
|
|
60
|
+
code: '1688',
|
|
61
|
+
shopType: 1
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 10,
|
|
65
|
+
title: '虾皮本土',
|
|
66
|
+
code: 'xpbt',
|
|
67
|
+
shopType: 1
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
id: 11,
|
|
71
|
+
title: '淘工厂',
|
|
72
|
+
code: 'tgc',
|
|
73
|
+
shopType: 1
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
id: 12,
|
|
77
|
+
title: '微信小店',
|
|
78
|
+
code: 'sph',
|
|
79
|
+
shopType: 1
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 13,
|
|
83
|
+
title: 'TikTok',
|
|
84
|
+
code: 'tk',
|
|
85
|
+
shopType: 1
|
|
86
|
+
}
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
export function checkPlatform(pt_type) {
|
|
90
|
+
|
|
91
|
+
let platform
|
|
92
|
+
if (pt_type instanceof Number) {
|
|
93
|
+
// 通过平台id查询
|
|
94
|
+
platform = platformList.find(item => item.id == pt_type)
|
|
95
|
+
} else {
|
|
96
|
+
// 通过平台code查询
|
|
97
|
+
platform = platformList.find(item => item.code === pt_type)
|
|
98
|
+
}
|
|
99
|
+
return platform
|
|
100
|
+
}
|
|
101
|
+
|