dfish-widget 1.0.108 → 1.0.109
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/lib/index.esm.js +32 -6
- package/lib/index.esm.js.map +1 -1
- package/package.json +1 -1
package/lib/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../src/util/browser.js","../../../src/util/uid.js","../../../src/util/loc/zh-CN.js","../../../src/util/str.js","../../../src/util/number.js","../../../src/util/date.js","../../../src/util/range.js","../../../src/util/elem.js","../../../src/util/css.js","../../../src/util/snap.js","../../../src/util/json.js","../../../src/util/event.js","../../../src/dfish.js","../../../src/directive/form-ignore.js","../../../src/directive/dialog-move.js","../../../src/directive/label-width.js","../../../src/directive/index.js","../../../src/widgets/WidgetAbs.vue","../../../src/widgets/SrcParent.vue","../../../src/widgets/ViewAbs.vue","../../../src/assets/SVGIcon.vue","../../../src/assets/SVGIcon.vue?vue&type=template&id=295361ea&lang.js","../../../src/template/TemplatePreviewMedia.vue","../../../src/template/TemplatePreviewMedia.vue?vue&type=template&id=ee9dc2bc&lang.js","../../../src/template/TemplateDateSheet.vue","../../../src/template/TemplateDateSheet.vue?vue&type=template&id=74a0f61b&lang.js","../../../src/widgets/DocView.vue","../../../src/widgets/WidgetBase.vue","../../../src/widgets/Scroll.vue","../../../src/widgets/AlignParent.vue","../../../src/widgets/Horizontal.vue","../../../src/widgets/Vertical.vue","../../../src/widgets/View.vue","../../../src/widgets/DialogTarget.vue","../../../src/widgets/Dialog.vue","../../../src/template/TemplateAlert.vue","../../../src/widgets/Alert.vue","../../../src/template/TemplateConfirm.vue","../../../src/widgets/Confirm.vue","../../../src/template/TemplateTip.vue","../../../src/widgets/Tip.vue","../../../src/widgets/Img.vue","../../../src/widgets/ButtonAbs.vue","../../../src/widgets/MenuButton.vue","../../../src/widgets/Button.vue","../../../src/widgets/Menu.vue","../../../src/widgets/Loading.vue","../../../src/widgets/Table.vue","../../../src/widgets/TableColumns.vue","../../../src/widgets/TableColumn.vue","../../../src/widgets/PubParent.vue","../../../src/widgets/SlotDefault.vue?vue&type=template&id=4a1f0f1a&lang.js","../../../src/widgets/TableTHead.vue","../../../src/widgets/TableTBody.vue","../../../src/widgets/TableTR.vue","../../../src/widgets/TableTD.vue","../../../src/widgets/TableTH.vue","../../../src/widgets/TreeV2Wrap.vue","../../../src/widgets/TableV2.vue","../../../src/widgets/Grid.vue","../../../src/widgets/SwiperItem.vue","../../../src/widgets/Swiper.vue","../../../src/widgets/ButtonBar.vue","../../../src/widgets/TabBar.vue","../../../src/widgets/TabButton.vue","../../../src/widgets/Tabs.vue","../../../src/widgets/Tab.vue","../../../src/widgets/Album.vue","../../../src/widgets/Html.vue","../../../src/widgets/Tree.vue","../../../src/widgets/TreeV2.vue","../../../src/widgets/Label.vue","../../../src/widgets/FormBase.vue","../../../src/widgets/CheckBox.vue","../../../src/widgets/TripleBox.vue","../../../src/widgets/Leaf.vue","../../../src/widgets/PageBar.vue","../../../src/widgets/Split.vue","../../../src/widgets/Toggle.vue","../../../src/widgets/Video.vue","../../../src/widgets/Progress.vue","../../../src/widgets/Calendar.vue","../../../src/widgets/Calendar.vue?vue&type=template&id=a37780d2&lang.js","../../../src/widgets/Timeline.vue","../../../src/widgets/TimelineItem.vue","../../../src/widgets/SlidePicker.vue","../../../src/widgets/SlidePicker.vue?vue&type=template&id=622adf54&lang.js","../../../src/widgets/Hidden.vue","../../../src/widgets/Text.vue","../../../src/widgets/Textarea.vue","../../../src/widgets/CheckBoxGroup.vue","../../../src/widgets/RadioGroup.vue","../../../src/widgets/Radio.vue","../../../src/widgets/Switch.vue","../../../src/util/mime.js","../../../src/widgets/FileUpload.vue","../../../src/widgets/MediaUploadItem.vue","../../../src/widgets/MediaUploadItem.vue?vue&type=template&id=fbfb4322&lang.js","../../../src/widgets/MediaUpload.vue","../../../src/widgets/ImageUpload.vue","../../../src/widgets/Option.vue","../../../src/widgets/Option.vue?vue&type=template&id=1bc8d4e4&lang.js","../../../src/widgets/Spinner.vue","../../../src/widgets/DatePicker.vue","../../../src/widgets/DropBox.vue","../../../src/widgets/PickBox.vue","../../../src/widgets/Password.vue","../../../src/widgets/Range.vue","../../../src/widgets/ComboBox.vue","../../../src/widgets/LinkBox.vue","../../../src/template/TemplateJigsaw.vue","../../../src/template/TemplateJigsaw.vue?vue&type=template&id=4ce89cf2&lang.js","../../../src/widgets/Jigsaw.vue","../../../src/widgets/Form.vue","../../../src/widgets/Rate.vue","../../../src/widgets/Slider.vue","../../../src/widgets/index.js"],"sourcesContent":["let u = navigator.userAgent.toLowerCase()\r\nlet chrome = u.match(/\\bchrome\\/(\\d+)/)\r\nlet firefox = u.match(/\\bfirefox\\/(\\d+)/)\r\n\r\nconst r = {\r\n agent: u,\r\n chrome: chrome && parseFloat(chrome[1]),\r\n firefox: firefox && parseFloat(firefox[1]),\r\n safari: !chrome && u.indexOf('safari') > 0,\r\n ie: (navigator.appName === 'Microsoft Internet Explorer' || u.indexOf('trident') > 0) && document.documentMode,\r\n compat: {\r\n gap: false\r\n },\r\n}\r\n\r\nif (u.match(/\\bmobile\\b/)) {\r\n r.mobile = true\r\n r.app = location.protocol === 'file:';\r\n let wechat = u.match(/(MicroMessenger)\\/([\\d\\.]+)/i);\r\n if (wechat) r.wechat = {\r\n version: wechat[2].replace(/_/g, '.')\r\n };\r\n let android = u.match(/(Android);?[\\s\\/]+([\\d.]+)?/i);\r\n if (android) {\r\n r.android = true;\r\n r.version = android[2];\r\n r.isBadAndroid = !(/Chrome\\/\\d/.test(window.navigator.appVersion))\r\n }\r\n let iphone = u.match(/(iPhone\\sOS)\\s([\\d_]+)/i)\r\n if (iphone) {\r\n r.ios = r.iphone = true;\r\n r.version = iphone[2].replace(/_/g, '.')\r\n } else {\r\n let ipad = u.match(/(iPad).*OS\\s([\\d_]+)/i)\r\n if (ipad) {\r\n r.ios = r.ipad = true;\r\n r.version = ipad[2].replace(/_/g, '.')\r\n }\r\n }\r\n}\r\n\r\nif ((r.chrome && r.chrome < 84) || (r.firefox && r.firefox < 63)) {\r\n r.compat.gap = true\r\n}\r\n\r\nexport default r\r\n","let _uidCnt = 0\r\nconst _uidKey = 'uid'\r\nconst _guid = () => (_uidCnt++).toString(36) + ':'\r\n\r\nexport default function(o) {\r\n if (o) {\r\n return o[_uidKey] || (o[_uidKey] = _guid())\r\n }\r\n return _guid()\r\n}","export default {\r\n yes: '是',\r\n no: '否',\r\n none: '无',\r\n to: '至',\r\n jump: '转到',\r\n confirm: '确定',\r\n search: '搜索',\r\n query: '查询',\r\n choose: '选择',\r\n save: '保存',\r\n remove: '删除',\r\n cancel: '取消',\r\n create: '新建',\r\n add: '添加',\r\n edit: '编辑',\r\n finish: '完成',\r\n refresh: '刷新',\r\n operfail: '操作失败',\r\n opertip: '操作提示',\r\n nodata: '暂无数据',\r\n more: '更多',\r\n field: '字段',\r\n close: '关闭',\r\n restore: '还原',\r\n rotate_left: '向左旋转',\r\n rotate_right: '向右旋转',\r\n dialog_max: '最大化',\r\n dialog_min: '最小化',\r\n\r\n detect_zoom: '温馨提示: 你的浏览器可能处于缩放({0}%)状态,这可能影响页面浏览效果,请尝试Ctrl+0重置,并刷新',\r\n no_tip_anymore: '不再提示',\r\n loading: '正在加载',\r\n wait: '请稍候..',\r\n submiting: '数据提交中,请稍候..',\r\n uploading: '正在上传,请稍侯..',\r\n click_preview: '点击预览',\r\n toomuch_wait: '次数过多,请稍候再试',\r\n toomuch_wait_countdown: '次数过多,请稍候再试(<em>{0}</em>)',\r\n preview_orginal_image: '查看原图',\r\n auth_success: '验证成功',\r\n auth_fail: '验证失败',\r\n choose_image: '选择图片',\r\n \r\n\r\n tree_movefail1: '无法移动:目标文件夹和源文件夹相同',\r\n tree_movefail2: '无法移动:目标文件夹是源文件夹的子文件夹',\r\n\r\n internet_error: '[{0} error] {1}<br>网络连接失败,请稍候再试',\r\n server_error: '[{0} error] {1}<br>系统异常,请联系管理员',\r\n preload_error: '获取预装载模板 \"{0}\" 失败',\r\n\r\n page: '页',\r\n page_text: {\r\n first: '首页',\r\n last: '尾页',\r\n next: '下页',\r\n prev: '上页'\r\n },\r\n\r\n print_preview: '打印预览',\r\n\r\n placeholder_input: '请输入{0}',\r\n placeholder_select: '请选择{0}',\r\n\r\n pulldown_refresh: '下拉刷新',\r\n release_refresh: '释放刷新',\r\n pullup_refresh: '上拉显示更多',\r\n pullup_nomore: '没有更多了',\r\n\r\n download_start: '开始下载..',\r\n download_complete: '下载完成',\r\n download_cannotopen: '无法打开此文件',\r\n download_fail: '下载失败',\r\n\r\n tab_close: '关闭标签',\r\n tab_close_others: '关闭其他标签',\r\n tab_close_all: '关闭全部标签',\r\n\r\n sort_asc: '升序',\r\n sort_desc: '降序',\r\n sort_cancel: '取消排序',\r\n column_choose: '选择列',\r\n\r\n connection_not_wifi: '您当前处于非wifi网络环境下,继续使用可能产生流量,确定继续吗?',\r\n\r\n debug: {\r\n sorry: '很抱歉,系统发生了错误',\r\n view_more: '点击“确定”,可在新窗口查看详细错误信息',\r\n no_command: '视图中没有定义此命令: {0}\\nview path: {1}',\r\n no_combo: '选项列表(或树)没有设置combo参数\\nname: {0}',\r\n error_template_type: '{0}\\n请把此模板类型改为 \"{1}\"',\r\n error_type: 'type错误或丢失\\n{0}',\r\n tmpl_method_undefined: '\"{0}\" 方法不存在'\r\n },\r\n\r\n form: {\r\n required: '{0}不能为空',\r\n onlyone: '{0的}只能选择一条记录',\r\n maxLength: '{0}超出了{1}个字',\r\n reach_maxLength: '已到达可输入的最大字符长度',\r\n over_maxLength: '字符长度超出了{0}个字节',\r\n minLength: '{0}不能少于{1}个字节',\r\n maxValue: '{0}最大值为{1}',\r\n minValue: '{0}最小值为{1}',\r\n maxSize: '{0}最多选择{1}项',\r\n minSize: '{0}最少选择{1}项',\r\n pattern: '{0}格式不符合规范,或包含非法字符',\r\n password_weak: '弱',\r\n password_middle: '中',\r\n password_strong: '强',\r\n number_invalid: '{0}不是一个有效数字',\r\n number_integer: '{0}请填入一个整数',\r\n number_decimal_digit: '{0的}小数位不能超过{1}位',\r\n step_max_value: '已到达最大值',\r\n step_min_value: '已到达最小值',\r\n time_exceed: '{0的}年份超出有效范围。有效年份:{1}年 至 {2}年',\r\n time_format: '{0的}时间格式错误。正确格式范例:{1}',\r\n period_invalid: '{0的}起始时间应早于结束时间',\r\n beforeNow: '{0}不能大于当前时间',\r\n afterNow: '{0}不能小于当前时间',\r\n compare: '{0}需要满足条件:{1} {2} {3}',\r\n invalid_option: '存在无效选项',\r\n need_valid_option: '请输入一个有效选项',\r\n choose_atleastone: '请至少选择一项',\r\n complete_required: '请完成必填项',\r\n jigsaw_drag_right: '向右拖动滑块填充拼图',\r\n jigsaw_required: '请完成滑块验证',\r\n jigsaw_errorimg: '图片数据异常',\r\n upload_loading: '正在上传,请稍候..',\r\n upload_invalid_file: '存在无效文件',\r\n no_files: '<没有文件>',\r\n upload_error: '(上传失败)',\r\n upload_limit: '上传数量超过上限(最多{0}个)',\r\n upload_invalid_file_type: '无效的文件类型:<br>{0}<br><br>只能选择 {1} 格式文件',\r\n upload_invalid_data: '错误的文件数据格式:<br>{0}',\r\n upload_no_data: '缺少文件数据',\r\n upload_maxfilesize: '上传失败: {0}<br><br>文件大小不能超过{1}',\r\n upload_minfilesize: '上传失败: {0}<br><br>文件大小不能小于{1}'\r\n },\r\n\r\n year: '年',\r\n month: '月',\r\n day: '日',\r\n sky: '天',\r\n hour: '时',\r\n minute: '分',\r\n second: '秒',\r\n\r\n calendar: {\r\n now: '现在',\r\n today: '今天',\r\n weeknow: '本周',\r\n monthnow: '本月',\r\n yearnow: '本年',\r\n day_title: ['日', '一', '二', '三', '四', '五', '六'],\r\n day_title_1: [ '一', '二', '三', '四', '五', '六','日'],\r\n y: '{0}<span>年</span>',\r\n monthname: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n backdate: '返回日期',\r\n picktime: '选择时间',\r\n H: '时',\r\n m: '分',\r\n s: '秒',\r\n from_to: '{0} 至 {1}',\r\n },\r\n\r\n error: '错误',\r\n\r\n ps(a, ...args) {\r\n if (a) {\r\n a = a.replace(/\\{(\\d+)([^\\d]+)?\\}/g, function($0, $1, $2) {\r\n let d = args[parseFloat($1)]\r\n return d == null || d === '' ? '' : $2 ? d + $2 : d\r\n })\r\n }\r\n return a\r\n },\r\n \r\n end: '结束'\r\n\r\n}\r\n","import lodash, { max } from 'lodash'\r\n\r\nconst strTrim = (a) => String(a).replace(/^\\s+|\\s+$/g, '')\r\n\r\nconst string = (a) => a == null ? '' : '' + a\r\n\r\n// @a -> str, b -> no html entities?\r\nconst strQuot = (a, b) => {\r\n\ta = String(a)\r\n\tb && (a = a.replace(/<[^>]+>/g, ''))\r\n\treturn a.replace(/\\\"/g, '"')\r\n}\r\n\r\n// 在a中取以b开始的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strFrom = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(d + b.length)\r\n}\r\n\r\n// 在a中取以b结束的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strTo = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(0, d)\r\n}\r\n\r\n// 取字符串字节数(一个汉字算双字节) /@ s -> str, b -> 一个汉字算几个字节?默认2个\r\nconst strLen = (s, b) => {\r\n if (!s) return 0;\r\n if (!b) b = $.x.cnBytes || 2;\r\n let d = 0\r\n for (let i = 0, l = s.length; i < l; i++)\r\n d += s.charCodeAt(i) > 128 ? b : 1;\r\n return d;\r\n}\r\n\r\n// 给定maxLength,计算超出多少字符 /@ s -> str, b -> 一个汉字算几个字节?默认2个\r\nconst strExceed = (s, maxLength, b) => {\r\n let len = strLen(s, b)\r\n if (!b) b = $.x.cnBytes || 2\r\n return Math.ceil((len - maxLength) / b)\r\n}\r\n\r\n// 数字前加0 /@ a -> num, b -> 补成多少长度的字符串?\r\nconst strPad = function(a, b, c) {\r\n\tc = c == null ? '0' : (c + '');\r\n\tif (!b)\r\n\t\treturn a < 10 ? c + a : a;\r\n\ta = a + '';\r\n\twhile (a.length < b)\r\n\t\ta = c + a;\r\n\treturn a\r\n}\r\n\r\nconst strFormat = (a, b, c, d) => {\r\n a != null && (a += '');\r\n if (!a || !b) return a;\r\n if (Array.isArray(b)) {\r\n return a.replace(/\\$\\{?(\\d+)\\}?/g, function($0, $1) {\r\n return b[$1] == null ? (d ? $0 : '') : c ? encodeURIComponent(b[$1]) : b[$1]\r\n });\r\n } else {\r\n return a.replace(/\\$\\{?([a-z_][\\w.]*)\\}?/gi, function($0, $1) {\r\n let e = lodash.get(b, $1)\r\n return e == null ? (d ? $0 : '') : c ? encodeURIComponent(e) : e\r\n });\r\n }\r\n}\r\n\r\nconst strEscape = function(s) {\r\n\treturn s != null ? (s + '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\\\"/g, '"') : '';\r\n}\r\n\r\n// 在 a 中查找 b 并给 b 加上标签样式 c /@ a -> str, b -> key, c -> matchLength?, d -> key cls?\r\nconst strHighlight = function(a, b, c, d) {\r\n\treturn (a = a + '').replace(RegExp('(<[\\\\/!]?\\\\w+(?::\\\\w+)?\\\\s*(?:[-\\\\w]+(?:=(\\'|\")?.*?\\\\2)?\\\\s*)*>)|(' + strSplitword(b, c, true).join('|') + ')', 'ig'), function($0, $1, $2, $3) {\r\n\t \treturn $3 === undefined ? $1 : '<em class=\"' + (d || 'f-keyword') + '\">' + $3 + '</em>'\r\n\t})\r\n}\r\n\r\n// 字符转为regexp支持的模式\r\nconst _s_regexp = function(a) {\r\n\treturn a.replace(/([-.*+?^${}()|[\\]\\/\\\\])/g, '\\\\\\$1')\r\n}\r\n\r\n// @a -> key, b -> matchLength, c -> regexp?\r\nconst strSplitword = function(a, b, c) {\r\n\tlet e = [c ? _s_regexp(a) : a]\r\n let m = a.length\r\n\tif (b > 0 && m > b) {\r\n\t\tfor (let j = m - 1; j >= b; j --) {\r\n\t\t\tfor (let i = 0, l = m - j, f; i <= l; i ++) {\r\n\t\t\t\tf = a.substr(i, j)\r\n\t\t\t\te.push(c ? _s_regexp(f) : f)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn e\r\n}\r\n\r\nexport {string, strTrim, strEscape, strQuot, strFrom, strTo, strPad, strLen, strExceed, strFormat, strHighlight}\r\n","import {strFrom, strTo} from './str.js'\r\n\r\nconst _OBJ = 'object'\r\nconst N = null\r\nconst U = undefined\r\n\r\nconst number = (a) => {\r\n var r = typeof a === 'string' ? parseFloat(a.replace(/[^\\d\\.-]|\\b-/g, '')) : +a\r\n return isNaN(r) ? 0 : r\r\n}\r\n// 判断是否数字\r\nconst isNumber = (a) => a != null && !isNaN(a)\r\n\r\n// 如果 a 的大小在 b 和 c 之间,则返回 a。否则返回 b 或 c\r\nconst numRange = function(a, b, c) {\r\n\treturn a == null ? ((b || b === 0) ? b : (c || c === 0) ? c : a) : ((b || b === 0) && a < b) ? b : ((c || c === 0) && a > c) ? c : a\r\n}\r\n// js小数相加运算出现多位小数的解决办法\r\nconst numAdd = function(...args) {\r\n let m = 0\r\n let r = 0\r\n args.forEach(a => {\r\n m = Math.max(m, strFrom(a + '', '.').length)\r\n r += a\r\n })\r\n m = Math.pow(10, m)\r\n\treturn Math.round(r * m) / m\r\n}\r\n// 给数字加上分隔符 /@a -> str, b -> length?, c -> separator?, d -> rightward?\r\nconst numFormat = function(a, b, c, d) {\r\n\ta = String(a)\r\n\tb == null && (b = 3)\r\n\tc == null && (c = ',')\r\n\tlet e = a.replace(/[^.\\d]/g, '').split('.'), s = e[0], l = s.length, i = d ? 0 : l, t = '', n = a.charAt(0) === '-' ? '-' : '';\r\n\tif (d) {\r\n\t\tdo {\r\n\t\t\ti += b;\r\n\t\t\tt += (i < l ? s.substr(i - b, b) + c : s.substr(i - b));\r\n\t\t} while (i < l);\r\n\t} else {\r\n\t\tdo {\r\n\t\t\ti -= b;\r\n\t\t\tt = (i > 0 ? c + s.substr(i, b) : s.substr(0, b + i)) + t;\r\n\t\t} while (i > 0);\r\n\t}\r\n\treturn n + t + (e.length > 1 ? '.' + strFrom(a, '.').replace(RegExp('[.' + c + ']', 'g'), '') : '');\r\n}\r\n// 调整小数位数\r\nconst numDecimal = function(a, b) {\r\n\tif (!b) {\r\n\t\treturn parseInt(number(a))\r\n\t} else if (b < 0) {\r\n\t\treturn parseFloat(number(a))\r\n\t} else {\r\n\t\tlet f = strFrom('' + a, '.')\r\n\t\treturn f ? strTo('' + a, '.') + '.' + f.slice(0, b) : a\r\n\t}\r\n}\r\n\r\n// $.scale的辅助方法\nconst scaleRange = function(a, b) {\n\tif (b != N) {\n\t\tif (b.min && !isNaN(b.min)) a = Math.max(a, b.min);\n\t\tif (b.max && !isNaN(b.max)) a = Math.min(a, b.max);\n\t}\n\treturn a;\n}\r\n\n// 把数字a按照数组b切割 / @a -> num, b -> array, c -> cover?(如果切割依据都是数字,那么可能会有剩余。设置此参数为true,剩余的数据平摊到结果中)\n// @example: _scale(100, [{value:'*',max:10}, {value:60}, {value:'*'}])\n// 返回: [10, 60, 30]\n// @example: _scale(null, ['*', '60', '*'])\n// 返回: [null, 60, null]\nconst numScale = function(a, b, c) {\n\tvar d = 0, e = a, l = b.length, i = 0, p, s, v, t = 0, r = Array(l);\n\tfor (; i < l; i ++) {\n\t\tv = typeof b[i] === _OBJ ? b[i].value : b[i];\n\t\tif (v != N && isNaN(v)) {\n\t\t\ta == N ? (r[i] = N) : v === '*' ? (s = i, t ++) : p = i;\n\t\t} else\n\t\t\td += (r[i] = v == N || v < 0 ? N : + v);\n\t}\n\tif (a == N) return r;\n\tif (p !== U) {\n\t\ta = Math.max(0, a - d);\n\t\tvar z = 0;\n\t\tfor (i = d = 0; i <= p; i ++) {\n\t\t\tv = typeof b[i] === _OBJ ? b[i].value : b[i];\n\t\t\tif (r[i] === U && typeof v === _STR && v.indexOf('%') > 0) {\n\t\t\t\tz += (v = parseFloat(v));\n\t\t\t\td += (r[i] = scaleRange(Math.floor(e * v / 100), b[i]));\n\t\t\t}\n\t\t}\n\t\tif (s === U && z >= 100)\n\t\t\tr[p] = scaleRange(Math.max(0, r[p] + e - d), b[i]);\n\t}\n\tif (s !== U) {\n\t\ta = Math.max(0, a - d);\n\t\tfor (i = d = 0; i <= s; i ++) {\n\t\t\tif (r[i] === U) d += (r[i] = scaleRange(Math.floor(a / t), b[i]));\n\t\t}\n\t\tr[s] = scaleRange(Math.max(0, r[s] + a - d), b[s]);\n\t}\n\tif (c && p === U && s === U) {\n\t\tfor (i = 0, l = r.length, d = 0, t = 0; i < l; i ++) {\n\t\t\tisNumber(r[i]) && (d += r[i], t ++);\n\t\t}\n\t\tif (d < e) {\n\t\t\tvar f = Math.floor((e - d) / t);\n\t\t\tfor (i = 0; i < l; i ++)\n\t\t\t\tisNumber(r[i]) && (r[i] += f);\n\t\t\tfor (i = l; i >= 0; i --)\n\t\t\t\tif (isNumber(r[i])) {(r[i] += e - d - (f * t)); break;}\n\t\t}\n\t}\n\treturn r;\n}\r\n\r\nexport {number, isNumber, numRange, numAdd, numFormat, numDecimal, numScale}","import {\r\n number\r\n} from './number.js'\r\nimport {\r\n strPad\r\n} from './str.js'\r\n\r\n// 一天的毫秒数\r\nconst _date_D = 86400000\r\n\r\n// 标准格式化字符串\r\nconst _date_sf = 'yyyy-MM-dd HH:mm:ss'\r\n\r\nconst month_quarter = {\r\n 0: 'Q1', 1: 'Q1', 2: 'Q1',\r\n 3: 'Q2', 4: 'Q2', 5: 'Q2',\r\n 6: 'Q3', 7: 'Q3', 8: 'Q3',\r\n 9: 'Q4', 10: 'Q4', 11: 'Q4',\r\n}\r\n\r\n// 格式化日期\r\nconst dateFormat = function(a, b) {\r\n if (typeof a === 'string')\r\n a = dateParse(a, b);\r\n let o = {\r\n y: a.getFullYear(),\r\n m: a.getMonth(),\r\n d: a.getDate(),\r\n h: a.getHours(),\r\n i: a.getMinutes(),\r\n s: a.getSeconds(),\r\n }\r\n let s = (b || _date_sf).replace('yyyy', o.y).replace('MM', strPad(o.m + 1)).replace('dd', strPad(o.d)).replace('HH',\r\n strPad(o.h))\r\n .replace('mm', strPad(o.i)).replace('ss', strPad(o.s))\r\n .replace('M', o.m + 1).replace('d', o.d).replace('H', o.h).replace('m', o.i).replace('s', o.s)\r\n if (s.indexOf('w') > -1) {\r\n let w = dateWeek(a)\r\n s = s.replace('ww', strPad(w[1])).replace('w', w[1])\r\n }\r\n if (s.indexOf('q') > -1) {\r\n let q = month_quarter[o.m]\r\n s = s.replace('qq', q).replace('q', q)\r\n }\r\n return s\r\n}\r\n\r\n// 字串型转为日期型 /@a -> str, b -> format?\r\nconst dateParse = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1');\r\n b = (b || _date_sf).replace(/\\b([MdHmsw])\\b/g, '$1$1');\r\n let c\r\n let y = (c = b.indexOf('yyyy')) > -1 ? (number(a.substr(c, 4)) || (new Date().getFullYear())) : (new Date()\r\n .getFullYear())\r\n let M = (c = b.indexOf('MM')) > -1 ? Math.max(number(a.substr(c, 2)) - 1, 0) : 0\r\n let d = (c = b.indexOf('dd')) > -1 ? number(a.substr(c, 2)) || 1 : 1\r\n let H = (c = b.indexOf('HH')) > -1 ? number(a.substr(c, 2)) : 0\r\n let m = (c = b.indexOf('mm')) > -1 ? number(a.substr(c, 2)) : 0\r\n let s = (c = b.indexOf('ss')) > -1 ? number(a.substr(c, 2)) : 0\r\n if ((c = b.indexOf('qq')) > -1) {\r\n let q = a.substr(c, 2)\r\n let m = q === 'Q1' ? 0 : q === 'Q2' ? 3 : q === 'Q3' ? 6 : 9\r\n return new Date(y, m, 1)\r\n }\r\n if ((c = b.indexOf('ww')) > -1) {\r\n let w = number(a.substr(c, 2))\r\n let t = dateWeek(new Date(y, 0, 1))\r\n if (t[0] != y)\r\n t = dateWeek(new Date(y, 0, 8))\r\n return new Date(t[2].getTime() + (w - 1) * 7 * _date_D)\r\n }\r\n return new Date(y, M, d, H, m, s)\r\n}\r\n\r\n// 日期增减 /@ a -> date, b -> type enum (y/M/d/H/m/s), c -> value\r\nconst dateAdd = function(a, b, c) {\r\n c = number(c)\r\n let e = new Date(a.getTime())\r\n if (b === 'y')\r\n e.setFullYear(a.getFullYear() + c)\r\n else if (b === 'M')\r\n e.setMonth(e.getMonth() + c)\r\n else if (b === 'd')\r\n e.setDate(e.getDate() + c)\r\n else if (b === 'H')\r\n e.setHours(e.getHours() + c)\r\n else if (b === 'm')\r\n e.setMinutes(e.getMinutes() + c)\r\n else if (b === 's')\r\n e.setSeconds(e.getSeconds() + c)\r\n if ((b === 'y' || b === 'M') && e.getDate() != a.getDate())\r\n e = new Date(e.getTime() - e.getDate() * _date_D)\r\n return e\r\n}\r\n\r\n// 取得一个日期对象的week相关信息。返回一个包含四个元素的数组,【 年份,第几周,周一的日期,周日的日期 】\r\n// @a -> date\r\nconst dateWeek = function(a) {\r\n let b = $.x.weekPoint != null ? $.x.weekPoint : 1 //周的重心(星期几,从0到6)\r\n let c = $.x.weekStart != null ? $.x.weekStart : 1 //周的第一天(星期几,从0到6)\r\n let w = a.getDay() || 7\r\n let d = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + b)\r\n let e = Math.ceil((d - new Date(d.getFullYear(), 0, 0)) / _date_D)\r\n let f = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + c)\r\n return [d.getFullYear(), Math.floor((e + 6) / 7), f, new Date(f.getTime() + (7 * _date_D) - 1)]\r\n}\r\n\r\n// 获取某年的第一周\r\nconst dateWeekFirst = function(year) {\r\n let c = $.dateWeek(new Date(year, 0, 1))\r\n if (c[0] != year)\r\n c = $.dateWeek(new Date(year, 0, 8))\r\n return c\r\n}\r\n\r\n// 获取某年的最后一周\r\nconst dateWeekLast = function(year) {\r\n let b = dateWeek(new Date(year, 11, 31))\r\n if (b[0] !== year)\r\n b = dateWeek(new Date(year, 11, 31 - 7))\r\n return b\r\n}\r\n\r\n// 判断一个字符串格式的日期是否正确 /@ a -> date string, b -> date format string\r\nconst dateValid = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1')\r\n let d = dateParse(a, b)\r\n let y = d.getFullYear()\r\n return y >= 1000 && y <= 9999 && a == dateFormat(d, b)\r\n}\r\n\r\nconst dateDiff = function(a, b = new Date, c) {\r\n if (typeof a === 'string') a = dateParse(a)\r\n if (typeof b === 'string') b = dateParse(b)\r\n switch (c) {\r\n case 'y':\r\n let e = b.getFullYear() - a.getFullYear()\r\n let f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e\r\n case 'M':\r\n let y = _dateDiff(a, b, 'y')\r\n let z = dateAdd(a, 'y', y)\r\n e = z.getFullYear() < b.getFullYear() ? b.getMonth() + 11 - z.getMonth() : b.getMonth() - z.getMonth()\r\n f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e + y * 12\r\n case 'H':\r\n return Math.floor((b - a) / (60 * 60 * 1000))\r\n case 'm':\r\n return Math.floor((b - a) / (60 * 1000))\r\n case 's':\r\n return Math.floor((b - a) / 1000)\r\n default: // 'd' 日期类型为默认\r\n return Math.floor((b - a) / _date_D)\r\n }\r\n}\r\n\r\nconst dateSheet = function(...args) {\r\n return $.docView.dateSheet(...args)\r\n}\r\n\r\nexport {\r\n dateFormat,\r\n dateParse,\r\n dateAdd,\r\n dateValid,\r\n dateDiff,\r\n dateSheet,\r\n dateWeek,\r\n dateWeekFirst,\r\n dateWeekLast,\r\n}\r\n","if (window.Range && !Range.prototype.movePoint) {\r\n if (Range.prototype.__defineGetter__) {\r\n Range.prototype.__defineGetter__('text', function() {\r\n return this.toString()\r\n });\r\n Range.prototype.__defineSetter__('text', function(a) {\r\n this.deleteContents()\r\n this.insertNode(document.createTextNode(a))\r\n });\r\n }\r\n Range.prototype.movePoint = function(a, b) {\r\n var c = this.startContainer.firstChild || this.startContainer,\r\n d, i = a,\r\n l = 0,\r\n b = b == null ? a : b;\r\n do {\r\n this.selectNodeContents(c);\r\n l = this.toString().length;\r\n i -= l;\r\n } while (i > 0 && (c = c.nextSibling));\r\n c = d = this.startContainer;\r\n i += l;\r\n var j = b - a + i,\r\n l = 0;\r\n do {\r\n this.selectNodeContents(d);\r\n l = this.toString().length;\r\n j -= l;\r\n } while (j > 0 && (d = d.nextSibling));\r\n this.setStart(c.firstChild || c, i);\r\n if (d) {\r\n var e = d;\r\n while (e.firstChild) e = e.firstChild;\r\n this.setEnd(e, l + j);\r\n }\r\n };\r\n Range.prototype.select = function() {\r\n let s = window.getSelection()\r\n s.removeAllRanges()\r\n s.addRange(this)\r\n };\r\n}\r\n\r\nconst rngSelection = function() {\r\n let s = window.getSelection()\r\n return s.rangeCount && s.getRangeAt(0)\r\n}\r\nconst rngElement = function() {\r\n let s = rngSelection()\r\n return s && s.startContainer.parentNode\r\n}\r\nconst rngCursor = function(a, b) {\r\n let r = a\r\n if (window.getSelection) {\r\n if (typeof a.selectionStart === 'number' && typeof a.selectionEnd === 'number') {\r\n a.selectionStart = a.selectionEnd = b != null ? b : a.value.length\r\n } else {\r\n let s = window.getSelection()\r\n if (a.nodeType === 1)\r\n (r = document.createRange()).selectNodeContents(a)\r\n if (b != null)\r\n r.movePoint(b)\r\n s.removeAllRanges()\r\n s.addRange(r)\r\n s.collapseToEnd()\r\n }\r\n }\r\n return r\r\n}\r\nconst rngCursorOffset = function() {\r\n let n = rngSelection()\r\n let c = n.startOffset\r\n if (c != null)\r\n return c\r\n let r = document.body.createTextRange()\r\n r.selectNodeContents(n.startContainer.parentNode)\r\n r.setEndPoint('EndToStart', n)\r\n return rngText(r).length\r\n}\r\n// @a ->range, b -> text?\r\nconst rngText = function(a, b) {\r\n if (a == null)\r\n a = rngSelection()\r\n if (b != null) {\r\n if (a.deleteContents) {\r\n a.deleteContents()\r\n a.insertNode(document.createTextNode(b))\r\n } else {\r\n a.text = b\r\n }\r\n }\r\n return a.text === undefined ? a.toString() : a.text\r\n}\r\n\r\nexport {\r\n rngSelection,\r\n rngElement,\r\n rngCursor,\r\n rngCursorOffset,\r\n rngText\r\n}\r\n","import jquery from 'jquery'\r\n\r\nconst _adjacent_where = ['afterend', 'afterbegin', 'beforebegin', 'beforeend']\r\nconst _adjacent_query = ['after', 'prepend', 'before', 'append']\r\n// 创建一个div /@ s -> html\r\nconst _div = function(s) {\r\n\tlet o = document.createElement('div')\r\n\tif (s) o.innerHTML = s\r\n\ttry {return o} catch(e) {return false}\r\n\tfinally {o = null}\r\n}\r\nconst frag = function(s) {\r\n\tlet d = typeof s === 'string' ? _div(s) : s\r\n let f = document.createDocumentFragment()\r\n\twhile (d.firstChild)\r\n\t\tf.appendChild(d.firstChild);\r\n\ttry {return f} catch(e) {return false}\r\n\tfinally {d = f = null}\r\n}\r\n\r\nconst el = function(o) {\r\n if (o) {\r\n const d = o.$el\r\n if (d) return d.nodeType === 1 ? d : d.nextElementSibling\r\n return o.isWidget ? o.el() : o\r\n }\r\n}\r\n// o -> el, s -> html string/object, r -> where[`after`, `prepend`, `before`, `append`]\r\nconst html = function(o, s, r) {\r\n\tif (r == null) {\r\n\t\tif (s == null) return o.innerHTML\r\n\t\ttry {o.innerHTML = s} catch(ex) {\r\n\t\t\twhile (o.firstChild)\r\n\t\t\t\to.removeChild(o.firstChild)\r\n\t\t\thtml(o, s, 3)\r\n\t\t}\r\n\t} else {\r\n\t\tlet b\r\n\t\tif (typeof s === 'string') {\r\n\t\t\ttry {\r\n\t\t\t\to.nodeType === 3 ? jquery(o)[_adjacent_query[r]](s) : o.insertAdjacentHTML(_adjacent_where[r], s)\r\n\t\t\t} catch (ex) {\r\n\t\t\t\thtml(o, frag(s), r)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tlet p = r % 2 ? o : o.parentNode\r\n\t\t\tp && p.insertBefore(s, r === 0 ? o.nextSibling : r === 1 ? o.firstChild : r === 2 ? o : null)\r\n\t}\r\n\t}\r\n}\r\nconst append = function(o, s) {html(o, s, 3); return o.lastElementChild || o.lastChild}\r\nconst prepend = function(o, s) {html(o, s, 1); return o.firstElementChild || o.firstChild}\r\nconst before = function(o, s) {html(o, s, 2); return o.previousElementSibling || o.previousSibling}\r\nconst after = function(o, s) {html(o, s, 0); return o.nextElementSibling || o.nextSibling}\r\nconst replaceWith = function(o, s) {\r\n\tlet a = o.nextSibling\r\n\tif (a) {\r\n\t\to.parentNode.removeChild(o)\r\n\t\treturn before(a, s)\r\n\t} else {\r\n\t\tlet p = o.parentNode\r\n\t\tp.removeChild(o)\r\n\t\treturn append(p, s)\r\n\t}\r\n}\r\n\r\nexport {el, html, append, prepend, before, after, replaceWith}","import {number} from './number.js'\r\nimport {strFrom, strTo} from './str.js'\r\n\r\nconst _css_camelize = (function() {\r\n\tlet b = {'float' : 'cssFloat'}\r\n\treturn function(s) {\r\n\t\treturn b[s] || s.replace(/-./g, function($0) {return $0.charAt(1).toUpperCase()});\r\n\t}\r\n})()\r\n\r\n// @o -> el, n -> name, v -> value\r\nconst _set_style = function(o, n, v) {\r\n\t// 如属性名前面带 += 号,则执行 += 操作\r\n\tif (typeof v === 'string' && v.charAt(1) === '=') {\r\n\t\tvar\tn = _css_camelize(n),\r\n\t\t\tc = o.style[n] || getComputedStyle(o, null)[n],\r\n\t\t\tv = number(v.replace('=', ''))\r\n\t\tif (n === 'width' || n === 'height') {\r\n\t\t\tc = number(c && c !== 'auto' ? c : n.charAt(0) === 'w' ? o.offsetWidth : o.offsetHeight);\r\n\t\t\tif (c < 0) c = 0;\r\n\t\t} else\r\n\t\t\tc = number(c);\r\n\t\to.style[n] = (c + v) + (n === 'zIndex' ? 0 : 'px');\r\n\t} else {\r\n\t\tn = _css_camelize(n);\r\n\t\tif (n === 'width' || n === 'height')\r\n\t\t\tv && v !== 'auto' && (v = Math.max(_number(v), 0));\r\n\t\tif (v && !isNaN(v) && n !== 'zIndex')\r\n\t\t\tv += 'px';\r\n\t\to.style[n] = v;\r\n\t}\r\n\treturn o;\r\n}\r\n\r\nconst css = function(o, s, n) {\r\n\tif (!o || !s)\r\n\t\treturn null;\r\n\tif (n != null) {\r\n\t\tfor (var i = 1, l = arguments.length; i < l; i += 2)\r\n\t\t\t_set_style(o, arguments[i], arguments[i + 1]);\r\n\t} else {\r\n\t\tif (typeof s === 'string') {\r\n\t\t\tif (s.indexOf(':') > 0) {\r\n\t\t\t\tfor (var i = 0, b = s.split(';'), l = b.length, k, v; i < l; i ++)\r\n\t\t\t\t\t(k = strTo(b[i], ':')) && (v = strFrom(b[i], ':')) && _set_style(o, k, v);\r\n\t\t\t} else\r\n\t\t\t\treturn o.style[s] || getComputedStyle(o, null)[s];\r\n\t\t}\r\n\t\tfor (var i in s) _set_style(o, i, s[i]);\r\n\t}\r\n}\r\n\r\nexport {css}","import {number, isNumber} from './number.js'\r\nimport {css} from './css.js'\r\nimport Q from 'jquery'\r\n\r\nconst T = true\r\nconst F = false\r\nconst N = null\r\nconst doc = document\r\nconst cvs = document.documentElement\r\n\r\nconst _arr_comma = a => a.split(',')\r\n\r\nconst _snaptype = {\r\n\th : _arr_comma('21,12,34,43'),\r\n\tv : _arr_comma('41,14,32,23'),\r\n\ta : _arr_comma('41,32,14,23,21,34,12,43,11'),\r\n\tt: ['tt'], b: ['bb'], l: ['ll'], r: ['rr'], c: ['cc'], top: ['tt'], bottom: ['bb'], left: ['ll'], right: ['rr'],\r\n\ttl: ['11'], tr: ['22'], rt: ['22'], rb: ['33'], br: ['33'], bl: ['44'], lb: ['44'], lt: ['11'], \r\n\t'1': ['11'], '2': ['22'], '3': ['22'], '4': ['33'], '5': ['33'], '6': ['44'], '7': ['44'], '8': ['11']\r\n}\r\n\r\nconst _snapMag = (function() {\r\n\tvar r = [23,22,33,32,21,34,'rr','rl'], b = [14,23,34,43,33,44,'bb','tb'], i, o = {pix: {r:{}, b:{}}, mag: {l:{}, r:{}, t:{}, b:{}}, inner:{}};\r\n\ti = r.length; while (i --) o.pix.r[r[i]] = T;\r\n\ti = b.length; while (i --) o.pix.b[b[i]] = T;\r\n\tvar r = [21,34,22,33,'rr','rl'], b = [41,32,44,33,'bt','bb'], l = [12,43,11,44,'lr','ll'], t = [14,23,11,22,'tb','tt'];\r\n\ti = r.length; while (i --) o.mag.r[r[i]] = T;\r\n\ti = b.length; while (i --) o.mag.b[b[i]] = T;\r\n\ti = l.length; while (i --) o.mag.l[l[i]] = T;\r\n\ti = t.length; while (i --) o.mag.t[t[i]] = T;\r\n\tvar r = [11,22,33,44,'tt','bb','ll','rr'];\r\n\ti = r.length; while (i --) o.inner[r[i]] = T;\r\n\treturn o;\r\n})()\r\n\r\nconst canvasOffset = function(o) {\r\n\tvar a = bcr(o);\r\n\ta.right = cvs.clientWidth - a.right;\r\n\ta.bottom = cvs.clientHeight - a.bottom;\r\n\treturn a;\r\n}\r\n\r\nconst offset = function(a, b) {\r\n\tlet r = {top: 0, left: 0, width: a.offsetWidth, height: a.offsetHeight}\r\n\tdo {\r\n\t\tr.top += a.offsetTop\r\n r.left += a.offsetLeft\r\n\t} while((a = a.offsetParent) && b != a)\r\n\treturn r\r\n}\r\n\r\nconst bcr = function(a) {\r\n\tvar b = cvs.clientLeft, c = cvs.scrollLeft, d = cvs.clientTop, e = cvs.scrollTop, o = a && a != doc && (a.isWidget ? a.el() : a), r = o && o.getBoundingClientRect();\r\n\treturn r ? {left : r.left - b + c, top : r.top - d + e, right : r.right - b + c, bottom : r.bottom - d + e, width : r.width, height : r.height} :\r\n\t\ta == document ? {left: c, top: e, right: cvs.clientWidth + c, bottom: cvs.clientHeight + e, width: cvs.clientWidth, height: cvs.clientHeight} : N;\r\n}\r\n\r\n// 获取对齐吸附模式的位置参数。元素四个角,左上为1,右上为2,右下为3,左下为4。目标元素在前,浮动元素在后。如\"41\"代表目标元素的左下角和浮动元素的左上角粘合。\r\n// @ a -> width, b -> height, c -> toObj offset, d -> adsorb type, e - > fit?[是否自动选择位置,让可见区域最大化], f -> indent[缩进多少像素], u -> range?[浮动元素的限定范围元素]\r\nconst snap = function(a, b, c, d, e, f, u) {\r\n\tif (!c)\r\n\t\tc = bcr(doc);\r\n\telse if (c.nodeType)\r\n\t\tc = bcr(c);\r\n\telse if (c.isWidget)\r\n\t\tc = bcr(c.el());\r\n\telse if (c.originalEvent || c.clientX != N) {\r\n\t\tc = c.originalEvent || c;\r\n\t\tc = {left: c.clientX, right: c.clientX, top: c.clientY, bottom: c.clientY};\r\n\t}\r\n\tvar t = [], l = [], g, h, k = -1, ew = cvs.clientWidth, eh = cvs.clientHeight,\r\n\t\ts = d ? (_snaptype[d] || ('' + d).split(',')) : _snaptype.a;\r\n\tif (/[1-4]/.test(s[0])) {// 1-4是边角对齐 .\r\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\r\n\t\t\tg = + s[i].charAt(0), h = + s[i].charAt(1);\r\n\t\t\tt.push((g === 1 || g === 2 ? c.top : c.bottom) - (h === 3 || h === 4 ? b : 0));\r\n\t\t\tl.push((g === 1 || g === 4 ? c.left : c.right) - (h === 2 || h === 3 ? a : 0));\r\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\r\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\r\n\t\t\tif (o && p) {\r\n\t\t\t\tk = i;\r\n\t\t\t\tbreak;\r\n\t\t\t} else {\r\n\t\t\t\t// 计算可见面积,取最大的那个\r\n\t\t\t\tvar ot = t[i] < 0 ? -t[i] : 0,\r\n\t\t\t\t\tor = l[i] + a > ew ? l[i] + a - ew : 0,\r\n\t\t\t\t\tob = t[i] + b > eh ? t[i] + b - eh : 0,\r\n\t\t\t\t\tol = l[i] < 0 ? -l[i] : 0;\r\n\t\t\t\tm = s[i] === '14' || s[i] === '34' ? (a-or)*(b-ot) : s[i] === '23' || s[i] === '43' ? (a-ol)*(b-ot) :\r\n\t\t\t\t\ts[i] === '32' || s[i] === '12' ? (a-ol)*(b-ob) : (a-or)*(b-ob);\r\n\t\t\t\tif (!n || n < m) {\r\n\t\t\t\t\tn = m;\r\n\t\t\t\t\tk = i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t} else {// t r b l 是边线中点对齐 .\r\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\r\n\t\t\tg = s[i].charAt(0), h = s[i].charAt(1);\r\n\t\t\tt.push((g === 'r' || g === 'l' || g === 'c' ? (c.top + c.bottom) / 2 : (g === 't' ? c.top : c.bottom)) - (h === 'r' || h === 'l' || h === 'c' ? b / 2 : (h === 'b' ? b : 0)));\r\n\t\t\tl.push((g === 't' || g === 'b' || g === 'c' ? (c.left + c.right) / 2 : (g === 'r' ? c.right : c.left)) - (h === 't' || h === 'b' || h === 'c' ? a / 2 : (h === 'r' ? a : 0)));\r\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\r\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\r\n\t\t\tif (o && p) {\r\n\t\t\t\tk = i;\r\n\t\t\t\tbreak;\r\n\t\t\t} else if (o || p) {\r\n\t\t\t\tif (d) {\r\n\t\t\t\t\tm = d == _snaptype.v ? (g == 1 || g == 2 ? - t[i] : t[i] + b - eh) : (g == 1 || g == 4 ? - l[i] : l[i] + a - ew);\r\n\t\t\t\t\tif (!n || n > m) {\r\n\t\t\t\t\t\tn = m;\r\n\t\t\t\t\t\tk = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (k < 0)\r\n\t\t\t\t\tk = i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (k < 0) k = 0;\r\n\tvar y = s[k], o = {left : l[k], top : t[k], bottom: eh - (t[k] + b), right: ew - (l[k] + a), type : y};\r\n\t_snapMag.pix.r[y] && (o.pix_r = T);\r\n\t_snapMag.pix.b[y] && (o.pix_b = T);\r\n\t_snapMag.mag.r[y] && (o.mag_r = T, o.mag = 'r');\r\n\t_snapMag.mag.b[y] && (o.mag_b = T, o.mag = 'b');\r\n\t_snapMag.mag.l[y] && (o.mag_l = T, o.mag = 'l');\r\n\t_snapMag.mag.t[y] && (o.mag_t = T, o.mag = 't');\r\n\t_snapMag.inner[y] && (o.inner = T);\r\n\tif (f && o.mag) {\r\n var i = f.indent || number(f)\r\n if (i) {\r\n i = i / (window.devicePixelRatio || 1)\r\n if (o.inner) {\r\n \to.mag_t ? (o.top -= i, o.bottom += i) : o.mag_b ? (o.top += i, o.bottom -= i) : o.mag_r ? (o.left += i, o.right -= i) : (o.left -= i, o.right += i);\r\n } else {\r\n \to.mag_t ? (o.top += i, o.bottom -= i) : o.mag_b ? (o.top -= i, o.bottom += i) : o.mag_r ? (o.left -= i, o.right += i) : (o.left += i, o.right -= i);\r\n }\r\n }\r\n f.top && (o.top -= f.top);\r\n f.bottom && (o.bottom -= f.bottom);\r\n f.left && (o.left -= f.left);\r\n f.right && (o.right -= f.right)\r\n\t}\r\n\tif (e) {// 自适应位置 \r\n\t\tvar l = o.left, r = o.right, b = o.bottom, t = o.top;\r\n\t\tif (o.mag_t || o.mag_b) {\r\n\t\t\tif (o.pix_r)\r\n\t\t\t\tr = Math.max(0, l < 0 ? r + l : r), l += o.right - r;\r\n\t\t\telse\r\n\t\t\t\tl = Math.max(0, r < 0 ? r + l : l), r += o.left - l;\r\n\t\t}\r\n\t\tif (o.mag_l || o.mag_r) {\r\n\t\t\tif (o.pix_b)\r\n\t\t\t\tb = Math.max(0, t < 0 ? b + t : b), t += o.bottom - b;\r\n\t\t\telse\r\n\t\t\t\tt = Math.max(0, b < 0 ? b + t : t), b += o.top - t;\r\n\t\t}\r\n\t\to.left = l, o.right = r, o.top = t, o.bottom = b;\r\n\t} \r\n\tif (d === 'cc' && o.top < 0)\r\n\t\to.top = 0;\r\n\tif (u) {\r\n \t\tvar s = canvasOffset(u);\r\n\t\to.top -= (s.top);\r\n\t\to.left -= (s.left);\r\n\t\to.right -= (s.right);\r\n\t\to.bottom -= (s.bottom);\r\n\t}\r\n\to.width = a;\r\n\to.height = b;\r\n\to.target = c; \r\n\treturn o;\r\n}\r\n\r\n// @a -> el, b -> snap option\r\nconst snapTo = function(a, b) {\r\n\tvar e = b.type;\r\n\tif (e) {\r\n\t\tif (b.pix_r) {\r\n\t\t\ta.style.right = b.right + 'px';\r\n\t\t\ta.style.left = '';\r\n\t\t} else {\r\n\t\t\ta.style.left = b.left + 'px';\r\n\t\t\ta.style.right = '';\r\n\t\t}\r\n\t\tif (b.pix_b) {\r\n\t\t\ta.style.bottom = b.bottom + 'px';\r\n\t\t\ta.style.top = '';\r\n\t\t} else {\r\n\t\t\ta.style.top = b.top + 'px';\r\n\t\t\ta.style.bottom = '';\r\n\t\t}\r\n\t} else\r\n\t\tcss(a, b)\r\n}\r\n\r\nexport {bcr, offset, snap, snapTo}\r\n","// 最后一个属性是数组 / a -> obj, b -> target\r\n// example: _jsonArray(obj, target, 'a', 'b');\r\n// 等同于: target['a']['b'].push(obj);\r\nconst jsonArray = function(a, b) {\r\n\tfor (var i = 2, l = arguments.length - 1; i < l; i ++)\r\n\t\tb = b[arguments[i]] || (b[arguments[i]] = {});\r\n\t(b[arguments[l]] || (b[arguments[l]] = [])).push(a);\r\n\treturn b[arguments[l]];\r\n}\r\n\r\n// example: _jsonChain(obj, target, 'a', 'b');\r\n// 等同于: target['a']['b'] = obj;\r\nconst jsonChain = function(a, b) {\r\n\tfor (var i = 2, l = arguments.length - 1, c = b; i < l; i ++)\r\n\t\tc = c[arguments[i]] || (c[arguments[i]] = {});\r\n\tc[arguments[l]] = a;\r\n\treturn c;\r\n}\r\n\r\nexport {jsonArray, jsonChain}","import {strFrom, strTo } from './str.js'\r\nimport {jsonArray} from './json.js'\r\nimport br from './browser.js'\r\nimport uid from './uid.js'\r\nimport lodash from 'lodash'\r\n\r\nconst _EventUser = {}\r\nconst _event_remove = function(k) {\r\n if (k.fn) {\r\n lodash.pull(_EventUser[k.id][k.type], k)\r\n k.type = k.fn = k.args = null\r\n }\r\n}\r\nconst _event_name = function(a) {\r\n return a.indexOf('.') > -1 ? strTo(a, '.') : a\r\n}\r\nconst _event_space = function(a) {\r\n return a.indexOf('.') > -1 ? '.' + strFrom(a, '.').split('.').sort().join('.') + '.' : ''\r\n}\r\nconst _event_handlers = function(a, b) {\r\n var c = _EventUser[uid(a)];\r\n if (!c) return;\r\n var type = _event_name(b),\r\n ns = _event_space(b);\r\n if (type) {\r\n return c[type] && (ns ? c[type].filter(v => v.ns.indexOf(ns) > -1) : c[type])\r\n }\r\n var r = [];\r\n for (type in c) {\r\n r.push.apply(r, c[type].filter(v => v.ns.indexOf(ns) > -1))\r\n }\r\n return r;\r\n}\r\n\r\nclass EventListener {\r\n constructor(ctx) {\r\n this.ctx = ctx\r\n }\r\n hasEvent(type) {\r\n let a = _event_handlers(this.ctx, type)\r\n return a && a.length\r\n }\r\n // type -> event type, fn -> fn, pvdr -> context, one -> exec once [T/F]\r\n addEvent(type, fn, one) {\r\n var k = {\r\n id: uid(this.ctx),\r\n type: _event_name(type),\r\n ns: _event_space(type),\r\n fn: fn,\r\n one: one\r\n };\r\n jsonArray(k, _EventUser, k.id, k.type).ori = true\r\n return this;\r\n }\r\n addEventOnce(type, fn) {\r\n return this.addEvent(type, fn, true)\r\n }\r\n // e -> event, r -> args[array]\r\n fireEvent(e, r) {\r\n var a = _event_handlers(this.ctx, e.type || e);\r\n if (a) {\r\n for (var i = 0, k, l = a.length, v; i < l; i++) {\r\n if ((k = a[i]) && k.fn) {\r\n v = k.fn.apply(this.ctx, r ? [e].concat(r) : [e]);\r\n if (k.one) {\r\n _event_remove(k);\r\n a.ori && (i--, l--);\r\n }\r\n if (v !== undefined)\r\n return v;\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n // a -> event type, b -> fn\r\n removeEvent(a, b) {\r\n if (a) {\r\n var d = _event_handlers(this.ctx, a);\r\n if (d) {\r\n var i = d.length;\r\n while (i--)\r\n if (!b || (d[i].fn === b)) _event_remove(d[i]);\r\n }\r\n } else {\r\n var c = _EventUser[uid(this.ctx)],\r\n i;\r\n for (i in c) this.removeEvent(i);\r\n delete _EventUser[uid(this.ctx)];\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nconst eventX = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientX : e.clientX\r\n}\r\n\r\nconst eventY = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientY : e.clientY\r\n}\r\n\r\nconst moveup = function(moveCB, upCB, downEv) {\r\n let moveHdl, upHdl, dir = downEv == null,\r\n cvs = document.documentElement,\r\n evX = e => e.targetTouches ? e.targetTouches[0].clientX : e.clientX,\r\n evY = e => e.targetTouches ? e.targetTouches[0].clientY : e.clientY,\r\n prevent = e => e.preventDefault()\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = 'none'\r\n }\r\n cvs.addEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl = function(e) {\r\n dir ? moveCB(e) :\r\n downEv && (Math.abs(evX(e) - evX(downEv)) > 1 || Math.abs(evY(e) - evY(downEv)) > 1) && (dir = true)\r\n }, true);\r\n cvs.addEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl = function(e) {\r\n cvs.removeEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl, true)\r\n cvs.removeEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl, true)\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = ''\r\n }\r\n br.mobile && cvs.removeEventListener('touchmove', prevent, {passive: false});\r\n upCB && upCB(e, dir)\r\n }, true);\r\n // 业务拖动时禁用浏览器默认的拖动效果\r\n br.mobile && cvs.addEventListener('touchmove', prevent, {passive: false})\r\n}\r\n\r\nexport {EventListener, eventX, eventY, moveup}","import lodash from 'lodash'\r\nimport jquery from 'jquery'\r\nimport http from 'axios'\r\nimport Qs from 'qs'\r\n\r\nimport br from './util/browser.js'\r\nimport uid from './util/uid.js'\r\nimport loc from './util/loc/zh-CN.js'\r\nimport {number, isNumber, numRange, numAdd, numFormat, numDecimal, numScale} from './util/number.js'\r\nimport {string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strExceed, strFormat, strHighlight} from './util/str.js'\r\nimport {dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast} from './util/date.js'\r\nimport {rngSelection, rngElement, rngCursor, rngCursorOffset, rngText} from './util/range.js'\r\nimport {el, html, append, prepend, before, after, replaceWith} from './util/elem.js'\r\nimport {bcr, offset, snap, snapTo} from './util/snap.js'\r\nimport {EventListener, eventX, eventY, moveup} from './util/event.js'\r\n\r\n// 根据元素获取widget组件\r\nfunction $(o) {\r\n if (!o || o.isWidget) return o\r\n if (typeof o === 'string' || o.uid) return $.vueMap.get(o.uid || o)\r\n if (o instanceof Event) {\r\n o = o.currentTarget || o.target\r\n }\r\n if (o.$el) {\r\n\t\tif (o.$attrs.orientUid) {\r\n\t\t\treturn $.vueMap.get(o.$attrs.orientUid)\r\n\t\t}\r\n\t\tconst el = o.$el\r\n\t\tif (el.nodeType === 8) {\r\n\t\t\tif (o.$.subTree.component.data.uid)\r\n\t\t\t\treturn $.vueMap.get(o.$.subTree.component.data.uid)\r\n\t\t}\r\n\t\to = el.nodeType != 1 ? o.$el.nextElementSibling : o.$el\r\n }\r\n if (lodash.isElement(o)) {\r\n do {\r\n if (o.id) {\r\n if ($.vueMap.has(o.id)) return $.vueMap.get(o.id)\r\n let d = $.strTo(o.id, ':') + ':'\r\n if($.vueMap.has(d)) return $.vueMap.get(d)\r\n }\r\n } while (o = o.parentNode)\r\n }\r\n while (o && !o.isWidget) o = o.$parent\r\n return o || $.docView\r\n}\r\n\r\nObject.assign($, {\r\n x: {defaultOptions: {}},\r\n vueMap: new Map(),\r\n dfclsCache: {},\r\n q: jquery, lodash, http,\r\n br, loc, uid, EventListener, eventX, eventY,\r\n number, isNumber, numRange, numAdd, numFormat, numDecimal, numScale,\r\n string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strExceed, strFormat, strHighlight,\r\n dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast,\r\n rngSelection, rngElement, rngCursor, rngCursorOffset, rngText,\r\n el, html, append, prepend, before, after, replaceWith,\r\n moveup, bcr, offset, snap, snapTo,\r\n})\r\n\r\n// a继承b的属性。不覆盖a的既有同名属性\r\n$.extend = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c)\r\n if (!(k in a) && c[k] !== undefined) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n// 递归继承\r\n$.extendDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null && typeof c === 'object' && ('constructor' in c) && c.constructor === Object) {\r\n for (let i in c) {\r\n if (!(i in a)) {\r\n if (c[i] != null && typeof c[i] === 'object' && ('constructor' in c[i]) && c[i].constructor === Object) {\r\n $.extendDeep(a[i] = {}, c[i])\r\n } else\r\n a[i] = c[i]\r\n } else if (a[i] != null && typeof a[i] === 'object' && ('constructor' in a[i]) && a[i].constructor === Object)\r\n $.extendDeep(a[i], c[i])\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.merge = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n$.mergeDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null) {\r\n for (let k in c) {\r\n if (typeof a[k] === 'object')\r\n $.mergeDeep(a[k], c[k])\r\n else\r\n a[k] = c[k]\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.cloneDeep = lodash.cloneDeep\r\n\r\n$.eval = function(str, opt) {\r\n if (opt) {\r\n let keys = Object.keys(opt)\r\n return Function(keys.map(k => k), `return (${str})`)(...keys.map(k => opt[k]))\r\n }\r\n return Function(`return (${str})`)()\r\n}\r\n\r\n$.string = function(a) {\r\n\treturn a == null ? '' :\r\n\t\ttypeof a === 'object' ? JSON.stringify(a) : '' + a\r\n}\r\n\r\n// a -> object\r\n$.array = function(a) {\r\n return Array.isArray(a) ? a : a == null || a === '' ? [] : [a]\r\n}\r\n// a -> object\r\n$.arrayID = function(a) {\r\n return Array.isArray(a) ? a : a == null || a === '' ? [] : typeof a === 'string' ? a.split(',') : [a]\r\n}\r\n// 把数组内的文本转为数字\r\n$.arrayNumber = function(a) {\r\n return $.array(a).map(v => parseFloat(v))\r\n}\r\n\r\n// 数字转为像素单位。如果自带单位则保留单位\r\n$.unitSize = (size, allowMinus) => size == null || size === '' ? '' : size === '*' ? '' : (size == -1 && !allowMinus)|| size == 'auto' ?\r\n 'auto' : isNaN(size) ? size : `${size}px`\r\n\r\n// 添加一个ID\r\n$.idsAdd = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s || n\r\n for (var i = 0, n = n.split(p), l = n.length; i < l; i++) {\r\n if ((p + s + p).indexOf(p + n[i] + p) < 0) s += (s ? p : '') + n[i];\r\n }\r\n return s\r\n}\r\n// 删除一个ID\r\n$.idsRemove = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s\r\n for (var i = 0, e, n = n.split(p), l = n.length; i < l; i++) {\r\n do {\r\n e = (p + s + p).indexOf(p + n[i] + p);\r\n if (e > -1) s = s.slice(0, e ? e - 1 : e) + s.slice(e + n[i].length + (e ? 0 : 1));\r\n } while (s && e > -1);\r\n }\r\n return s\r\n}\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAny = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return false\r\n if (s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) > -1) return true\r\n return false\r\n}\r\n\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAll = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = s == null ? '' : '' + s\r\n n = n == null ? '' : '' + n\r\n p = p == null ? ',' : '' + p\r\n if (!s) return false\r\n if (!n || s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) < 0) return false\r\n return true\r\n}\r\n\r\n// 添加一个class /@ a -> el, b -> className, c -> add?(默认添加)\r\n$.classAdd = function(a, b, c) {\r\n if (!a) return\r\n let s = a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $.strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b[i], ' ')\r\n } else\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b, ' ')\r\n a.className = s\r\n}\r\n\r\n// 删除一个class /@ a -> el, b -> className\r\n$.classRemove = function(a, b) {\r\n if (!a) return\r\n if (b.indexOf(' ') > -1) {\r\n $.classAdd(a, b, false)\r\n } else\r\n a.className = $.idsRemove(a.className, b, ' ')\r\n}\r\n\r\n// 是否包含任意一个class(多个是“或”的关系) /@ a -> el or className\r\n$.classAny = function(a, b) {\r\n if (!a) return\r\n let s = typeof a === 'string' ? a : a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n if ($.idsAny(s, b[i], ' ')) return i + 1\r\n } else\r\n return $.idsAny(s, b, ' ')\r\n}\r\n\r\n// url 编码\r\n$.urlEncode = (a) => {\r\n return a == null ? '' : encodeURIComponent(typeof a === 'object' ? JSON.stringify(a) : a)\r\n}\r\n \r\n// url 解码\r\n$.urlDecode = (a) => {\r\n return a == null ? '' : decodeURIComponent(a.replace(/\\+/g, ' '))\r\n}\r\n// 替换带$变量的url,如 \"a.sp?id=$0\" /@a -> url, b -> array/object\r\n$.urlFormat = (a, ...args) => {\r\n args.forEach((v, i) => v != null && (a = $.strFormat(a, v, true, i < args.length - 1)))\r\n return a\r\n}\r\n$.urlParam = function(a, b) {\r\n var r = a.split('#'),\r\n u = r[0],\r\n h = r[1];\r\n if (typeof b === 'string') {\r\n return b === '#' ? (h || '') : $.urlDecode((u.match(new RegExp('[\\\\?&]' + b + '=([^&]*)'), 'g') || A)[1]);\r\n } else if (b && typeof b === 'object') {\r\n for (var k in b) {\r\n if (k === '#') {\r\n h = b[k];\r\n } else {\r\n var c = $.urlEncode(b[k]),\r\n d = new RegExp('\\\\b' + k + '=[^&]*');\r\n u = d.test(u) ? u.replace(d, k + '=' + c) : u + (u.indexOf('?') < 0 ? '?' : '&') + k + '=' + c;\r\n }\r\n }\r\n } else if (arguments.length === 1) {\r\n var r = {},\r\n c = u.split('?');\r\n c = c[c.length - 1];\r\n\r\n if (c) {\r\n c = c.split('&');\r\n for (var d = 0, e, f, g; d < c.length; d++) {\r\n e = c[d].indexOf('=');\r\n if (e == -1) continue;\r\n f = c[d].substring(0, e);\r\n g = c[d].substring(e + 1);\r\n r[f] = $.urlDecode(g.replace(/\\+/g, ' '));\r\n }\r\n }\r\n return r\r\n }\r\n return u + (h ? '#' + h : '')\r\n}\r\n// 把相对路径url和baseURL拼接为完整地址\r\n$.urlServer = function(src, ...args) {\r\n if (!src) return\r\n if (!(src.startsWith('http://') || src.startsWith('https://'))) {\r\n let b = lodash.get($.x, 'http.baseURL')\r\n if (b) {\r\n src = b + (b.endsWith('/') ? '' : '/') + src\r\n }\r\n }\r\n return $.strFormat(src, ...args)\r\n}\r\n\r\n$.urlComplete = function(a) {\r\n\tif (a.indexOf('data:') !== 0) {\r\n\t\ta = $.urlServer(a)\r\n let r = lodash.get($.x, 'http.params')\r\n\t\tr && (a = $.urlParam(a, r))\r\n\t}\r\n\treturn a\r\n},\r\n\t// @a -> src, b -> options\r\n$.download = function(a, b) {\r\n a = $.urlComplete(a)\r\n\tif (br.app) {\r\n\t\t$.wifiConfirm(function() {\r\n\t\t\tlet dtask = plus.downloader.createDownload(a, b)\r\n\t\t\tplus.nativeUI.showWaiting()\r\n\t\t\tdtask.addEventListener(\"statechanged\", function(task, status) {\r\n\t\t\t\tswitch (task.state) {\r\n\t\t\t\t\tcase 1: // 开始\r\n\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_start)\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tcase 4: // 下载完成\r\n\t\t\t\t\t\tif (status == 200) {\r\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_complete)\r\n\t\t\t\t\t\t\tplus.runtime.openFile(task.filename, {}, function(e) {\r\n\t\t\t\t\t\t\t\tplus.nativeUI.alert($.loc.download_cannotopen)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_fail + status)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tplus.nativeUI.closeWaiting()\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tdtask.start()\r\n\t\t})\r\n\t} else {\r\n\t\tlet link = document.createElement('a')\r\n //link.download = true\r\n link.href = a\r\n if ($.x.downloadTarget) {\r\n link.target = $.x.downloadTarget\r\n }\r\n link.click()\r\n link.remove()\r\n\t}\r\n}\r\n\r\n\r\n$.wifiConfirm = (a, b) => {\r\n if ($.x.wifiConfirm && plus.networkinfo.getCurrentType() != 3) {\r\n plus.nativeUI.confirm($.loc.connection_not_wifi, function(e){e.index === 0 && a.call(b)}, {buttons:[$.loc.confirm, $.loc.cancel]})\r\n } else {\r\n a.call(b)\r\n }\r\n}\r\n\r\n$.vm = $.view = (a) => {\r\n if (!a) return $.docView\r\n if (typeof a === 'string') {\r\n if ($.vueMap.has(a)) {\r\n a = $.vueMap.get(a)\r\n if (a.isView) return a\r\n }\r\n }\r\n a = $(a)\r\n if (a == null) return\r\n return a.isView ? a : a.ownerView\r\n}\r\n\r\n$.close = (a) => {\r\n let d = $.dialog(a)\r\n d && d.close()\r\n}\r\n\r\n$.closePopup = () => {\r\n document.dispatchEvent(new Event('mousedown'))\r\n}\r\n\r\n$.previewVideo = function(src) {\r\n $.vm().previewVideo($.urlServer(src))\r\n}\r\n\t// @img -> image array, options -> {current:i,loop:true,indicator: 'number'}\r\n$.previewImage = function(imgs, options) {\r\n imgs = $.array(imgs).map(v => $.urlServer(v))\r\n\tif (br.app) {\r\n\t\tplus.nativeUI.previewImage(imgs, options)\r\n\t} else {\r\n $.vm().previewImage(imgs, options)\r\n\t}\r\n}\r\n\r\n$.slotsChildren = function(slots, name = 'default') {\r\n let r = []\r\n const getChildren = (d) => {\r\n d && d.forEach(v => {\r\n if (typeof v.type === 'symbol') {\r\n if (Array.isArray(v.children)) {\r\n getChildren(v.children)\r\n } else if (v.type.toString() === 'Symbol(v-txt)') {\r\n r.push(v)\r\n }\r\n } else\r\n r.push(v)\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n$.hasChild = function(slots, name = 'default') {\r\n let r = false\r\n const getChildren = (d) => {\r\n lodash.forEach(d, v => {\r\n if (typeof v.type === 'symbol') {\r\n Array.isArray(v.children) && getChildren(v.children)\r\n } else {\r\n return !(r = true)\r\n }\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n// @fn(得到0-1的参数), ms -> milliseconds, count -> 帧数\r\n$.ease = function(fn, ms, count) {\r\n\tfn(0)\r\n\tif (ms == null)\r\n\t\tms = 200\r\n\tif (count == null)\r\n\t\tcount = Math.ceil(ms / 10)\r\n\tlet p = Math.ceil(ms / count)\r\n\tlet\tcr = 0\r\n\tlet d1 = new Date().getTime()\r\n\tlet it = setInterval(function() {\r\n\t\t\tlet d2 = new Date().getTime()\r\n\t\t\tlet ri = d2 - d1\r\n\t\t\tlet st = Math.floor(ri / p)\r\n\t\t\tif (cr != st) {\r\n\t\t\t\tif (st < count) {\r\n\t\t\t\t\tfn((- Math.cos((st / count) * Math.PI) / 2) + 0.5)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tclearInterval(it)\r\n\t\t\t\t\tfn(1)\r\n\t\t\t\t}\r\n\t\t\t\tcr = st\r\n\t\t\t}\r\n\t\t}, Math.max(p - 10, 5))\r\n\treturn it\r\n},\r\n\r\n// @a -> widget|HTMLElement, y -> {print: T/F(是否打印), head: \"head标签\", input2text: T/F(把表单值转为文本)\r\n$.print = function(a, y) {\r\n\t\tlet d = $.el(a), w = d.ownerDocument, b = $.q('link[media=print]', w), c = [];\r\n y = y || {};\r\n\t\t$.q('meta', w).each(function() {c.push(this.outerHTML)});\r\n\t\t(b.length > 0 ? b : $.q('link', w)).each(function() {c.push('<link rel=\"stylesheet\" type=\"text/css\" href=\"' + this.getAttribute('href') + '\"/>');});\r\n\t\t$.q('style', w).each(function() {c.push(this.outerHTML)});\r\n\t\tlet s = d.outerHTML;\r\n\t\ts = s.replace(/<div[^>]+w-scroll[^>]+>/gi, function($0) {return $0.replace(/height: \\w+/gi, '');});\r\n\t\t$.q(':text,:password,textarea,select', d).each(function() {\r\n\t\t\tlet h = this.outerHTML, v, r;\r\n\t\t\tif (y.input2text) {\r\n\t\t\t\tlet g = $(this), w = 'auto';\r\n\t\t\t\tif (g && g.isFormWidget) {\r\n\t\t\t\t\th = g.el('form').outerHTML;\r\n\t\t\t\t\tv = g.formText();\r\n\t\t\t\t} else\r\n\t\t\t\t\tv = this.value;\r\n\t\t\t\tv = '<div class=\"f-oh w-input-s\">' + v + '</div>';\r\n\t\t\t} else {\r\n\t\t\t\tv = h.replace('value=\"' + this.defaultValue + '\"', () => 'value=\"' + this.value + '\"');\r\n\t\t\t}\r\n\t\t\ts = s.replace(h, () => v + (r || ''));\r\n\t\t});\r\n\t\t$.q(':radio,:checkbox', d).each(function() {\r\n\t\t\tif (y.input2text) {\r\n\t\t\t\tlet g = $(this);\r\n\t\t\t\tif (g && g.isFormWidget) {\r\n\t\t\t\t\ts = s.replace(g.el().outerHTML, () => g.isChecked ? '<div class=\"f-wdbr\">' + g.text + '</div>' : '');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tlet h = this.outerHTML, n = h.replace(/ checked=\"\"/, '');\r\n\t\t\t\tif (this.checked)\r\n\t\t\t\t\tn = n.replace(/>$/, ' checked>');\r\n\t\t\t\ts = s.replace(h, n);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (y.input2text) {\r\n\t\t\t$.q('input[type=hidden]', d).each(function() {\r\n\t\t\t\tvar g = $(this);\r\n\t\t\t\tif (g && g.isFormWidget && g.$options.name != 'w-hidden') {\r\n\t\t\t\t\ts = s.replace(g.el('form').outerHTML, () => '<div class=\"f-wdbr f-print-input-text\">' + g.formText() + '</div>');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t$.q('.w-input-placeholder', d).each(function() {\r\n\t\t\ts = s.replace(this.outerHTML, '');\r\n\t\t});\r\n const printf = function() {\r\n \tlet w = window.frames.wPrintFrame;\r\n \tif (!w) {\r\n \t\t$.q('<div class=f-none><iframe name=wPrintFrame></iframe></div>').appendTo(document.body);\r\n \t\tw = window.frames.wPrintFrame;\r\n \t}\r\n \treturn w;\r\n }\r\n w = y.print !== false ? printf() : window.open();\r\n\t\td = w.document;\r\n\t\td.open('text/html', 'replace');\r\n\t\td.write('<!doctype html><html class=f-print><head><meta charset=utf-8><title>' + $.loc.print_preview +\r\n\t\t\t'</title><style>.f-print .w-f-remark{height:auto;line-height:inherit}.f-print-input-text{line-height: var(--w-label-min-height);}.w-input{display: flex!important;}.w-input-s{word-break:normal;white-space:normal}.w-input-s:empty:before{content:\"\\xa0\"}</style><script>var $={e:function(){}}</script>' + c.join('') +\r\n\t\t\t(y.head || '') + '</head><body><div class=x-print>' + s + '</div>' +\r\n\t\t\t(y.print !== false ? '<script>window.print();window.close()</script>' : '') +\r\n\t\t\t'</body></html>');\r\n\t\td.close();\r\n\t\treturn d;\r\n\t}\r\n\r\n\r\nconst queryEncode = function(data, config) {\r\n if (!data || data instanceof FormData) return data\r\n let contentType = $.lodash.get(config, 'headers[\"Content-Type\"]') || $.lodash.get($.x, 'http.headers.post[\"Content-Type\"]')\r\n return contentType == 'application/x-www-form-urlencoded' ? Qs.stringify(data, {arrayFormat: 'repeat'}) : data\r\n}\r\n\r\n$.ajax = async function(cmd, args) {\r\n let src = args ? $.urlFormat(cmd.src, args) : cmd.src\r\n if (!src && !cmd.request) {\r\n return Promise.reject('$.ajax(): The first parameter must be an object, and the property(src) of the object is required.')\r\n }\r\n let config = $.lodash.pick(cmd, ['headers', 'responseType', 'transformRequest', 'transformResponse', 'timeout', 'cancelToken'])\r\n if (cmd.download) {\r\n $.extend(config, {responseType: 'blob'})\r\n }\r\n\tif (cmd.request) {\r\n\t\treturn cmd.request(cmd.data)\r\n\t} else {\r\n\t\tlet method = (cmd.method || (cmd.data ? 'post' : 'get')).toLowerCase()\r\n\t\treturn (method === 'post' || method === 'put' || method === 'patch' ? $.http[method](src, queryEncode(cmd.data, config), config) : $.http[method](src, config))\r\n\t\t\t.then(res => {\r\n\t\t let data = res.data\r\n\t\t if (cmd.filter) data = cmd.filter(res)\r\n\t\t if (cmd.success) cmd.success(data)\r\n\t\t if (cmd.complete) cmd.complete(res)\r\n\t\t if (cmd.download) {\r\n\t\t let disposition = res.headers['content-disposition']\r\n\t\t if (disposition) {\r\n\t\t let fileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length))\r\n\t\t let blob = new Blob([res.data])\r\n\t\t let link = document.createElement('a')\r\n\t\t link.href = URL.createObjectURL(blob)\r\n\t\t link.download = fileName\r\n\t\t link.click()\r\n\t\t link.remove()\r\n\t\t } else {\r\n\t\t console.error('download: none content-disposition')\r\n\t\t }\r\n\t\t }\r\n\t\t return data\r\n\t\t }).catch(ex => {\r\n\t\t if (cmd.error) cmd.error(ex)\r\n\t\t if (cmd.complete) cmd.complete(ex.response, ex)\r\n\t\t return Promise.reject(ex)\r\n\t\t })\r\n\t}\r\n}\r\n\r\n$.extend($.ajax, {\r\n get(src, config) {\r\n return $.http.get(src, config).then(res => res && res.data)\r\n },\r\n\thead(src, config) {\r\n\t return $.http.head(src, config)\r\n\t},\r\n\tdelete(src, config) {\r\n\t return $.http.delete(src, config).then(res => res && res.data)\r\n\t},\r\n post(src, data, config) {\r\n return $.http.post(src, queryEncode(data, config), config).then(res => res && res.data)\r\n },\r\n\tput(src, data, config) {\r\n\t return $.http.put(src, queryEncode(data, config), config).then(res => res && res.data)\r\n\t},\r\n\tpatch(src, data, config) {\r\n\t return $.http.patch(src, queryEncode(data, config), config).then(res => res && res.data)\r\n\t},\r\n}, http)\r\n\r\n$.alert = function(text, position, timeout, yes) {\r\n return $.docView.pop('w-alert', typeof text === 'object' ? {title: $.loc.opertip, ...text} : {\r\n title: $.loc.opertip, text, position, timeout, yes\r\n })\r\n}\r\n\r\n$.confirm = function(text, yes, no, cover=true) {\r\n return $.docView.pop('w-confirm', typeof text === 'object' ? {title: $.loc.opertip, ...text} : {\r\n title: $.loc.opertip, text, yes, no, cover\r\n })\r\n}\r\n\r\n$.dialog = (a) => {\r\n if (!a) return\r\n a = $.vm(a)\r\n while (a && !a.isDialog) a = a.ownerView\r\n return a\r\n}\r\n\r\n$.config = function(opt) {\r\n $.config_uid = uid() //读取默认配置的地方有缓存,根据这个uid来判断是否刷新缓存\r\n $.mergeDeep($.x, opt)\r\n if (opt.http) {\r\n $.mergeDeep(http.defaults, opt.http)\r\n http.interceptors.response.use(\r\n opt.http.filter,\r\n opt.http.error || function(ex) {\r\n if (ex.response) {\r\n ex.callback = () => $.alert({icon: '.f-i .f-i-alert-warning', text: (ex.response.status) + ': ' + ex.config.url})\r\n }\r\n return Promise.reject(ex)\r\n }\r\n )\r\n }\r\n const _dfopt = $.x.defaultOptions\r\n const _dfcls = {}\r\n for (let k in _dfopt) {\r\n if (k.includes('.')) {\r\n let a = $.strFrom(k, '.').replace(/\\./g, ' ')\r\n let b = $.strTo(k, '.');\r\n ($.dfclsCache[b] || ($.dfclsCache[b] = {}))[a] = _dfopt[k]\r\n }\r\n }\r\n}\r\n\r\n$.pop = (template, props, options = {}) => {\r\n const commander = $(options.target) || $.vm()\r\n return $.vm(commander).createPop(commander, template, props, options)\r\n}\r\n\r\n$.submit = (request, options = {}) => {\r\n const commander = $(options.target) || $.vm()\r\n return commander.submit(request, options)\r\n}\r\n\r\n$.symbol = {\r\n leafSymbol: Symbol('leaf')\r\n}\r\n\r\nwindow.addEventListener('unhandledrejection', (event) => {\r\n if ($.x.catchReject) {\r\n $.x.catchReject(event)\r\n } else {\r\n if (event.reason) {\r\n if (event.reason.callback)\r\n event.reason.callback()\r\n else if (typeof event.reason === 'string')\r\n console.error(event.reason)\r\n }\r\n event.preventDefault()\r\n }\r\n})\r\n\r\nexport default $\r\n","// 实现指令 v-form-ignore=\"true\"\r\n// 不提交不验证当前范围内的表单\r\n\r\nfunction formIgnore(el, bind) {\r\n bind.value ? el.setAttribute('w-form-ignore', '') : el.removeAttribute('w-form-ignore')\r\n}\r\n\r\nexport default {\r\n created: formIgnore,\r\n updated: formIgnore,\r\n}\r\n","// 实现指令 v-dialog-move=\"true\"\r\n// 使对话框可拖动\r\n\r\nimport $ from '../dfish.js'\r\n\r\nfunction onmousedown(e) {\r\n let o = $.dialog(e.currentTarget)\r\n if (o) {\r\n if (o.x.movable !== false && !o.x.fullScreen) {\r\n let d = o.el()\r\n let sl = d.style.left\r\n let sr = d.style.right\r\n let st = d.style.top\r\n let sb = d.style.bottom\r\n let b = sb ? -1 : 1\r\n let r = sr ? -1 : 1\r\n let v = b < 0 ? 'bottom' : 'top'\r\n let h = r < 0 ? 'right' : 'left'\r\n let x = e.clientX\r\n let y = e.clientY\r\n let t = $.number(b < 0 ? sb : st)\r\n let l = $.number(r < 0 ? sr : sl)\r\n let m\r\n let n = document.documentElement.clientHeight\r\n let w = document.documentElement.clientWidth\r\n $.moveup(function(e) {\r\n\t\t\t\tif (!m) {\r\n\t\t\t\t\tm = $.q('<div class=w-dialog-move-helper></div>').appendTo(document.body)\r\n\t\t\t\t\to.el().style.transition = 'none'\r\n\t\t\t\t}\r\n let cx = $.numRange(e.clientX, 0, w)\r\n let cy = $.numRange(e.clientY, 0, n)\r\n o.setPosition({[v]: (t + b * (cy - y)) + 'px', [h]: (l + r * (cx - x)) + 'px'})\r\n }, function(e, moved) {\r\n moved && m && m.remove()\r\n\t\t\t\to.el().style.transition = ''\r\n }, e)\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n mounted(el, bind) {\r\n bind.value && el.addEventListener('mousedown', onmousedown)\r\n },\r\n unmounted(el) {\r\n el.removeEventListener('mousedown', onmousedown)\r\n }\r\n}","// 实现指令 v-label-width=\"100\"\r\n// 设定\r\nimport $ from '../dfish.js'\r\n\r\nfunction labelWidth(el, bind) {\r\n el.style.setProperty('--v-label-width', $.unitSize(bind.value))\r\n}\r\n\r\nexport default {\r\n created: labelWidth,\r\n updated: labelWidth,\r\n}\r\n","import formIgnore from './form-ignore.js'\r\nimport dialogMove from './dialog-move.js'\r\nimport labelWidth from './label-width.js'\r\n\r\nexport default function(Vue) {\r\n Vue.directive('form-ignore', formIgnore)\r\n Vue.directive('dialog-move', dialogMove)\r\n Vue.directive('label-width', labelWidth)\r\n}","<script>\r\n import $ from '../dfish.js'\r\n import {h, mergeProps, nextTick} from 'vue'\r\n\r\n const bindCache = {}\r\n\r\n export default {\r\n props: ['data', 'width', 'height', 'colspan', 'rowspan', 'ownproperty', 'orientUid'],\r\n data() {\r\n return {\r\n isWidget: true,\r\n uid: this.orientUid || $.uid(),\r\n runtimeX: {},\r\n }\r\n },\r\n created() {\r\n $.vueMap.set(this.uid, this)\r\n let dftX = this.getDefaultProp()\r\n let cuid = $.config_uid\r\n let watchs = {}\r\n this.x = new Proxy(this.runtimeX, {\r\n get: (obj, prop) => {\r\n if (prop in obj) return obj[prop]\r\n if (this.$props[prop] !== undefined) return this.$props[prop]\r\n if (cuid != $.config_uid) {\r\n cuid = $.config_uid\r\n dftX = this.getDefaultProp()\r\n }\r\n return dftX[prop]\r\n },\r\n set: (obj, prop, newval) => {\r\n if (!watchs[prop]) {\r\n watchs[prop] = this.$watch(prop, (v) => obj[prop] = v)\r\n }\r\n obj[prop] = newval\r\n return true\r\n }\r\n })\r\n },\r\n unmounted() {\r\n $.vueMap.delete(this.uid)\r\n },\r\n methods: {\r\n x_default() {\r\n //implement\r\n },\r\n getDefaultProp() {\r\n let dftopt\r\n if (!this.ownproperty) {\r\n let b = this.$options.name\r\n dftopt = $.x.defaultOptions[b]\r\n if ($.dfclsCache[b]) {\r\n let c = this.$options.name + (this.$attrs.class ? ' ' + this.$attrs.class : '')\r\n let d = $.dfclsCache[b]\r\n let z\r\n for (let k in d) {\r\n $.idsAll(c, k, ' ') && $.mergeDeep(z || (z = {}), d[k])\r\n }\r\n z && (dftopt = $.extendDeep(z, dftopt))\r\n }\r\n }\r\n return {\r\n ...this.x_default(),\r\n ...dftopt,\r\n }\r\n },\r\n\t\t\tattr(name, value) {\r\n\t\t\t\tif (arguments.length == 2) {\r\n\t\t\t\t\tthis.x[name] = value\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.x[name]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tajax(cmd) {\r\n this.ajaxLock && this.ajaxLock()\r\n\t\t\t\treturn $.ajax(cmd).then((res) => {\r\n this.ajaxLock && this.ajaxLock(false)\r\n return res\r\n })\r\n\t\t\t},\r\n\t\t\tsubmit(request, cmd) {\r\n\t\t\t\tif (typeof request === 'object') {\r\n\t\t\t\t\tcmd = request\r\n\t\t\t\t\trequest = null\r\n\t\t\t\t}\r\n\t\t\t\tif (!cmd) {\r\n\t\t\t\t\tcmd = {}\r\n\t\t\t\t}\r\n\t\t\t\tif (request) {\r\n\t\t\t\t\tcmd.request = request\r\n\t\t\t\t}\r\n return new Promise(async (resolve) => {\r\n await nextTick()\r\n const vm = $.vm(this)\r\n this.ajaxLock && this.ajaxLock()\r\n let isValid = await vm.valid(cmd.range, cmd.group)\r\n if (isValid) {\r\n let post = vm.getPostData(cmd.range)\r\n cmd.data = cmd.data && post ? $.extend({}, cmd.data, post) : (cmd.data || post)\r\n \tresolve(this.ajax(cmd))\r\n } else {\r\n this.ajaxLock && this.ajaxLock(false)\r\n }\r\n })\r\n\t\t\t},\r\n\t\t\tpop(template, props, options) {\r\n return $.vm(this).createPop(this, template, props, options)\r\n\t\t\t},\r\n closePop(template) {\r\n const vm = $.vm(this)\r\n vm.getPops(template).forEach(p => vm.removePop(p))\r\n },\r\n trigger(ev, ...args) {\r\n let type = ev.runType || ev.type || ev\r\n let f = this.getOn(type)\r\n if (f) {\r\n if (typeof ev === 'string') {\r\n ev = {type, uid: this.uid}\r\n }\r\n if (Array.isArray(f)) f.forEach(n => n(ev, ...args))\r\n else f(ev, ...args)\r\n }\r\n },\r\n getOn(type) {\r\n let n = 'on' + type.charAt(0).toUpperCase() + type.slice(1)\r\n return (this.$.vnode.props && this.$.vnode.props[n]) || this.x[n]\r\n },\r\n getKey() {\r\n return this.$.vnode.key\r\n },\r\n closest(target, range) {\r\n let p = this\r\n const t = typeof target\r\n do {\r\n if (t === 'string') {\r\n if ($.idsAny(target, p.$options.name))\r\n return p\r\n } else if (t === 'function') {\r\n if (target(p))\r\n return p\r\n }\r\n\t\t\t\t\tif (p.isDialog || p == range) return\r\n } while (p = p.$parent)\r\n },\r\n contains(a) {\r\n return a && this.el() && this.el().contains(a.isWidget ? a.el() : a)\r\n },\r\n el(a) {\r\n\t\t\t\tif (a && /\\W/.test(a)) {\r\n\t\t\t\t\tconst o = this.el()\r\n\t\t\t\t\treturn o && $.q(a, o)[0]\r\n\t\t\t\t}\r\n return document.getElementById(this.uid + (a || ''))\r\n },\r\n createEvent(name, data) {\r\n let e = new CustomEvent(name)\r\n e.value = data\r\n e.uid = this.uid\r\n return e\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n scrollIntoView(opt = false) {\r\n const next = (dir, fn) => {\r\n let c = 'hasScroll' + dir.toUpperCase()\r\n let t = this.closest(p => p[c] && (p.scrollState() || false)[dir])\r\n if (t) {\r\n t.scrollTo(this, opt.hasOwnProperty('y') ? opt.y : 'auto', opt.x, opt.ease == null ? 200 : opt.ease, opt.divide, fn)\r\n } else\r\n fn && fn()\r\n }\r\n next('y', () => next('x', opt.success))\r\n },\r\n hasBubble(a) {\r\n if (!a) return false\r\n if (this.contains(a)) return true\r\n let d = $.dialog(a)\r\n if (d && d.commander) return d.commander === a ? true : this.hasBubble(d.commander)\r\n },\r\n bind(name, fn) {\r\n let c = bindCache[this.uid] || (bindCache[this.uid] = {})\r\n if (!c[name]) c[name] = fn || this[name]\r\n return c[name]\r\n },\r\n slots_children(name) {\r\n return $.slotsChildren(this.$slots, name)\r\n },\r\n slot(name = 'default') {\r\n return this.$slots[name] ? this.$slots[name]() : []\r\n },\r\n\t\t\thtml_icon(src, cls, onclick) {\r\n\t\t\t const font = src.startsWith('.') && !src.includes('/')\r\n\t\t\t\tconst scopeId = this.$.vnode.scopeId || ''\r\n\t\t\t return font ? h('i', {\r\n\t\t\t\t\t[`${scopeId}`]: '',\r\n\t\t\t class: [cls, src.replace(/\\./g, '')],\r\n\t\t\t onclick,\r\n\t\t\t }) : h('img', {\r\n\t\t\t src,\r\n\t\t\t onclick,\r\n\t\t\t class: cls,\r\n\t\t\t\t\t[`${scopeId}`]: ''\r\n\t\t\t })\r\n\t\t\t},\r\n html_slots() {\r\n return this.$slots\r\n },\r\n html_self(a) {\r\n return h(this.tagName || 'div', a ? mergeProps(this.html_attrs, this.html_props, this.$attrs) : mergeProps(this\r\n .html_attrs, this.html_props), this.html_slots())\r\n },\r\n html() {\r\n return this.html_self()\r\n }\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n ownerView() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n pubParent() {\r\n return this.providePubParent && $.idsAny(this.$options.pubParentName, this.providePubParent.$options.name) &&\r\n this.providePubParent\r\n },\r\n parentNode() {\r\n return $(this.el().parentElement)\r\n },\r\n tagName() {\r\n return 'div'\r\n },\r\n html_attrs() {\r\n return {\r\n id: this.uid,\r\n class: [this.$options.name, this.html_class],\r\n style: [{\r\n width: this.x.width && $.unitSize(this.x.width),\r\n height: this.x.height && $.unitSize(this.x.height),\r\n '--w-grid-colspan': !this.x.colspan || this.x.colspan == -1 ? null : `span ${this.x.colspan}`,\r\n '--w-grid-rowspan': !this.x.rowspan || this.x.rowspan == -1 ? null : `span ${this.x.rowspan}`,\r\n }, this.html_style],\r\n 'w-key': this.getKey(),\r\n 'w-width': this.x.width === '*' ? '*' : null,\r\n 'w-height': this.x.height === '*' ? '*' : null,\r\n }\r\n },\r\n html_style() {\r\n // implements\r\n },\r\n html_class() {\r\n // implements\r\n },\r\n html_props() {\r\n // implements\r\n },\r\n html_binds() {\r\n return mergeProps(this.html_attrs, this.html_props, this.$attrs)\r\n }\r\n },\r\n render() {\r\n return this.html()\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['src', 'children', 'parentItem'],\r\n data() {\r\n return {\r\n loading: false,\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n getSrc() {\r\n return (this.x || this.$props).src\r\n },\r\n request(fn) {\r\n let src = this.getSrc()\r\n if (src && !this.loading) {\r\n this.showLoading(true)\r\n if (typeof src === 'function') {\r\n return src(this).then(res => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n fn && fn()\r\n }).catch(ex => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n })\r\n }\r\n }\r\n },\r\n showLoading(a) {\r\n this.loading = a\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n\timport {h, toRaw, markRaw, mergeProps, resolveComponent} from 'vue'\r\n import WidgetAbs from './WidgetAbs.vue'\r\n import SrcParent from './SrcParent.vue'\r\n\t\r\n export default {\r\n name: 'w-view',\r\n mixins: [SrcParent],\r\n provide() {\r\n return {\r\n provideView: this\r\n }\r\n },\r\n props: ['commands'],\r\n data() {\r\n return {\r\n isView: true,\r\n pops: [],\r\n }\r\n },\r\n beforeCreate() {\r\n this.popCommanders = {}\r\n },\r\n methods: {\r\n find(a) {\r\n const b = this.el().querySelectorAll(`[w-key=\"${a}\"]`)\r\n for (let c of b) {\r\n if ((c = $(c)) && c.ownerView === this) return c\r\n }\r\n },\r\n fv(a, b) {\r\n let d = this.f(a)\r\n if (arguments.length === 2) {\r\n d && (d.groupFormVal ? d.groupFormVal(b) : d.val(b))\r\n } else if (typeof a === 'object') {\r\n for (let i in a) this.fv(i, a[i])\r\n } else {\r\n return d && (d.groupFormVal ? d.groupFormVal() : d.formVal())\r\n }\r\n },\r\n f(a, b) {\r\n return this.fAll(a, b)[0]\r\n },\r\n // 获取范围内的所有表单 /@a -> name, b -> range?(elem|widget)\r\n fAll(a, b) {\r\n if (a === '*' || a == null) {\r\n for (var i = 0, q = this.getFormList(b, true), l = q.length, d, e, f = []; i < l; i++)\r\n (d = $(q[i])) && d != e && f.push(e = d);\r\n return f;\r\n }\r\n let dom = b ? (b.isWidget ? b.el() : b) : this.el()\r\n let r = $.q(':input[name=\"' + a + '\"]', dom)\r\n if (!r.length) r = $.q(':input[w-name=\"' + a + '\"]', dom)\r\n return $.lodash.map(r.not('[w-form-ignore] :input'), d => $(d))\r\n },\r\n // 获取所有表单,返回一个dom集合 /@ a -> range(widgetID, 可选,如果 range 以 !开头,表示排除), b -> 是否包含disabled的表单\r\n getFormList(a, b) {\r\n let r, f = ':input:not(button)' + (b ? '' : ':not(:disabled)')\r\n if (a && typeof a === 'string') {\r\n let d = a.charAt(0) === '!'\r\n let e = a.replace(/\\!/g, '').split(',').map(v => `[w-key=\"${v}\"] ${f}`)\r\n if (e = e.join())\r\n r = $.q(d ? `${f}:not(${e})` : e, this.el())\r\n } else {\r\n r = $.q(f, Array.isArray(a) ? $.q(a.map(n => $.el(n))) : a ? $.el(a) : this.el())\r\n }\r\n return r ? $.lodash.map(r.not('[w-form-ignore] :input')) : []\r\n },\r\n // 获取提交数据 {name: value, ...} /@ a -> range [widgetID, 可选,如果 range 以 !开头,表示排除]\r\n getPostData(range) {\r\n let r = {}\r\n this.getFormList(range).forEach(a => {\r\n let d = a.name\r\n let v = a.value\r\n if (!d) return\r\n switch (a.type) {\r\n case 'text':\r\n let t = a.getAttribute('w-valuetype')\r\n if (t === 'number')\r\n v = v.replace(/[^\\d\\.-]/g, '')\r\n break\r\n case 'checkbox':\r\n if (!a.value || (!a.checked && !(a.indeterminate && a.getAttribute('w-partialsubmit'))))\r\n return null\r\n break\r\n case 'radio':\r\n if (!a.value || !a.checked)\r\n return null\r\n d = a.getAttribute('w-name') || d\r\n break;\r\n case 'select-one':\r\n if (a.selectedIndex < 0)\r\n return null;\r\n break;\r\n }\r\n v && (v = $.strTrim(v))\r\n if (d in r) {\r\n if (!Array.isArray(r[d]))\r\n r[d] = [r[d]]\r\n r[d].push(v)\r\n } else\r\n r[d] = v\r\n })\r\n return r\r\n },\r\n // 表单验证。如果检测到错误,将返回一个包含错误信息的数组 /@r -> range, n -> validate group name\r\n async getValidError(range) {\r\n let e, q = this.getFormList(range)\r\n const group = {}\r\n for (let i = 0, l = q.length, c, v; i < l; i++) {\r\n if ((c = $(q[i])) && c.isFormWidget) {\r\n if (q[i].name in group) {\r\n v = group[q[i].name] && $.extend({wid: c.uid}, group[q[i].name])\r\n } else {\r\n v = await c.getValidError()\r\n }\r\n if (v) {\r\n if (!e) e = []\r\n if (!e.find(n => n.wid == v.wid)) e.push(v)\r\n }\r\n }\r\n // checkbox 和 radio 只需验证一个\r\n if (q[i].type === 'checkbox' || q[i].type === 'radio') {\r\n group[q[i].name] = v\r\n }\r\n }\r\n return e\r\n },\r\n // 表单验证。验证通过返回true /@ range -> validaterange\r\n async valid(range) {\r\n if (this._err_ns) {\r\n this._err_ns.forEach(v => {\r\n const wg = $.vueMap.get(v.wid)\r\n wg && wg.warn(false)\r\n })\r\n }\r\n let e = await this.getValidError(range)\r\n if (e) {\r\n e.forEach(v => $.vueMap.get(v.wid).warn())\r\n $.vueMap.get(e[0].wid).showErrorTip(e[0].text)\r\n }\r\n return !(this._err_ns = e)\r\n },\r\n // @range -> 范围, original -> (设置为true,检测表单是否有修改,对照的值为初始值)\r\n isModified(range, original) {\r\n return this.getFormList(range).find(o => (o = $(o)).isModified && o.isModified(original))\r\n },\r\n // @range -> 范围, original -> (设置为true,设置为true,修改初始值)\r\n saveModified(range, original) {\r\n this.getFormList(range).forEach(o => (o = $(o)).saveModified && o.saveModified(original))\r\n },\r\n resetFormStyle(range) {\r\n this.getFormList(range).forEach(f => {\r\n const c = $(f)\r\n c.warn && c.warn(false)\r\n })\r\n },\r\n resetForm(range, empty) {\r\n this.getFormList(range).forEach(f => {\r\n const c = $(f)\r\n c.reset && c.reset(empty)\r\n })\r\n },\r\n showLoading(props) {\r\n\t\t\t\tif (props === false) {\r\n\t\t\t\t\tthis.pop('w-loading', false)\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.pop('w-loading', {cover: true, local: true, ...props})\r\n\t\t\t\t}\r\n },\r\n /*\r\n @options: {\r\n mode: {\r\n 'multiple': 默认值,一个template可以多个实例\r\n 'single': 一个template只有一个实例,且每次都是新实例\r\n 'component': 一个template只有一个实例\r\n }\r\n }\r\n */\r\n createPop(commander, template, props, options = {}) {\r\n return new Promise((resolve, reject) => {\r\n const mode = options.mode || 'multiple'\r\n const pop = this.getPops(template)[0]\r\n if (pop) {\r\n if (mode === 'component') {\r\n Object.assign(pop, {props, options, resolve, reject})\r\n return\r\n } else if (mode === 'single') {\r\n let index = this.pops.indexOf(pop)\r\n this.pops.splice(index, 1)\r\n }\r\n } \r\n const orientUid = $.uid()\r\n this.pops.push({commander, template, props, options, orientUid, resolve, reject})\r\n })\r\n },\r\n removePop(p) {\r\n\t\t\t\tlet i = typeof p === 'string' ? this.pops.findIndex(v => v.orientUid == p) : this.pops.indexOf(p)\r\n\t\t\t\ti > -1 && this.pops.splice(i, 1)\r\n },\r\n\t\t\tgetPops(template, commander) {\r\n\t\t\t\treturn this.pops.filter(p => {\r\n\t\t\t\t\tif (template && toRaw(p.template) != toRaw(template)) return false\r\n\t\t\t\t\tif (commander && p.commander != commander) return false\r\n\t\t\t\t\treturn true\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tgetPopById(uid) {\r\n\t\t\t\treturn this.pops.find(p => p.orientUid == uid)\r\n\t\t\t},\r\n html_pops() {\r\n return this.pops.map(({template, orientUid, props}) => {\r\n\t\t\t\t\tconst com = typeof template === 'string' ? resolveComponent(template) : toRaw(template)\r\n\t\t\t\t\treturn com && h(com, {key: orientUid, orientUid, ...props})\r\n\t\t\t\t})\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-view {\r\n position: relative;\r\n }\r\n\r\n</style>\r\n","<template>\r\n <svg style=\"display:none;width:0;height:0\" width=\"0\" height=\"0\" focusable=\"false\" aria-hidden=\"true\">\r\n <symbol id=\"f-svg-loading\" viewBox=\"0 0 50 50\">\r\n <path\r\n d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\"\r\n transform=\"rotate(86.9154 25 25)\">\r\n </path>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-1\" viewBox=\"0 0 50 50\">\r\n <circle cx=\"25\" cy=\"25\" r=\"20\" />\r\n </symbol>\r\n <symbol id=\"f-svg-loading-2\" viewBox=\"0 0 24 30\">\r\n <rect x=\"0\" y=\"8.66115\" width=\"4\" height=\"12.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"8\" y=\"6.16115\" width=\"4\" height=\"17.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"16\" y=\"6.33885\" width=\"4\" height=\"17.3223\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-3\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n d=\"M514.048 337.715a32 32 0 0 1-32-32V135.168a32 32 0 1 1 64 0v170.534a32 32 0 0 1-32 32z m-1.28 581.799a32 32 0 0 1-32-32V714.406a32 32 0 1 1 64 0v173.095a32 32 0 0 1-32 32zM305.011 543.347H135.744a32 32 0 0 1 0-64h169.267a32 32 0 0 1 0 64z m583.079 0H713.83a32 32 0 0 1 0-64h174.26a32 32 0 1 1 0 64zM245.978 806.4a32 32 0 0 1-22.656-54.669L342.643 632.32a32 32 0 0 1 45.325 45.325L268.646 796.979a31.898 31.898 0 0 1-22.668 9.344z m408.435-408.5a32 32 0 0 1-22.656-54.68l123.558-123.56a32 32 0 1 1 45.325 45.3L677.12 388.544a31.898 31.898 0 0 1-22.669 9.357z m121.523 411.06a31.885 31.885 0 0 1-22.669-9.344l-122.15-122.15a32 32 0 1 1 45.325-45.325l122.15 122.15a32 32 0 0 1-22.656 54.669zM364.672 397.632a31.923 31.923 0 0 1-22.669-9.344L221.273 267.52a32 32 0 1 1 45.325-45.325l120.73 120.743a32 32 0 0 1-22.656 54.668z m0 0\"\r\n p-id=\"4486\"></path>\r\n </symbol>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'w-svg-loading'\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-svg {\r\n width: 20px;\r\n height: 20px;\r\n fill: currentColor;\r\n }\r\n \r\n .f-svg use {\r\n stroke: currentColor;\r\n }\r\n \r\n .f-svg-loading {\r\n animation: f-svg-key-rotate .6s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1 {\r\n animation: f-svg-key-rotate 1.5s linear infinite;\r\n }\r\n \r\n .f-svg-loading-3 {\r\n animation: f-svg-key-rotate 2s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1>use {\r\n stroke: #777;\r\n stroke-width: 3;\r\n fill: none;\r\n animation: f-svg-key-dash 1.5s linear infinite;\r\n }\r\n\r\n @keyframes f-svg-key-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n\r\n @keyframes f-svg-key-dash {\r\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -40;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -120;\n }\r\n }\r\n</style>\r\n","<template>\r\n <svg style=\"display:none;width:0;height:0\" width=\"0\" height=\"0\" focusable=\"false\" aria-hidden=\"true\">\r\n <symbol id=\"f-svg-loading\" viewBox=\"0 0 50 50\">\r\n <path\r\n d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\"\r\n transform=\"rotate(86.9154 25 25)\">\r\n </path>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-1\" viewBox=\"0 0 50 50\">\r\n <circle cx=\"25\" cy=\"25\" r=\"20\" />\r\n </symbol>\r\n <symbol id=\"f-svg-loading-2\" viewBox=\"0 0 24 30\">\r\n <rect x=\"0\" y=\"8.66115\" width=\"4\" height=\"12.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"8\" y=\"6.16115\" width=\"4\" height=\"17.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"16\" y=\"6.33885\" width=\"4\" height=\"17.3223\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-3\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n d=\"M514.048 337.715a32 32 0 0 1-32-32V135.168a32 32 0 1 1 64 0v170.534a32 32 0 0 1-32 32z m-1.28 581.799a32 32 0 0 1-32-32V714.406a32 32 0 1 1 64 0v173.095a32 32 0 0 1-32 32zM305.011 543.347H135.744a32 32 0 0 1 0-64h169.267a32 32 0 0 1 0 64z m583.079 0H713.83a32 32 0 0 1 0-64h174.26a32 32 0 1 1 0 64zM245.978 806.4a32 32 0 0 1-22.656-54.669L342.643 632.32a32 32 0 0 1 45.325 45.325L268.646 796.979a31.898 31.898 0 0 1-22.668 9.344z m408.435-408.5a32 32 0 0 1-22.656-54.68l123.558-123.56a32 32 0 1 1 45.325 45.3L677.12 388.544a31.898 31.898 0 0 1-22.669 9.357z m121.523 411.06a31.885 31.885 0 0 1-22.669-9.344l-122.15-122.15a32 32 0 1 1 45.325-45.325l122.15 122.15a32 32 0 0 1-22.656 54.669zM364.672 397.632a31.923 31.923 0 0 1-22.669-9.344L221.273 267.52a32 32 0 1 1 45.325-45.325l120.73 120.743a32 32 0 0 1-22.656 54.668z m0 0\"\r\n p-id=\"4486\"></path>\r\n </symbol>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'w-svg-loading'\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-svg {\r\n width: 20px;\r\n height: 20px;\r\n fill: currentColor;\r\n }\r\n \r\n .f-svg use {\r\n stroke: currentColor;\r\n }\r\n \r\n .f-svg-loading {\r\n animation: f-svg-key-rotate .6s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1 {\r\n animation: f-svg-key-rotate 1.5s linear infinite;\r\n }\r\n \r\n .f-svg-loading-3 {\r\n animation: f-svg-key-rotate 2s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1>use {\r\n stroke: #777;\r\n stroke-width: 3;\r\n fill: none;\r\n animation: f-svg-key-dash 1.5s linear infinite;\r\n }\r\n\r\n @keyframes f-svg-key-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n\r\n @keyframes f-svg-key-dash {\r\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -40;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -120;\n }\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-dialog-preview\" width=\"calc(100% - 100px)\" height=\"calc(100% - 100px)\" :ownproperty=\"true\" :cover=\"true\" :autoHide=\"true\">\r\n <template v-if=\"data.type=='image'\">\r\n <w-swiper ref=\"swiper\" class=\"f-height\" :current=\"current\" :arrow=\"data.imgs.length > 1\" :indicator-dots=\"data.imgs.length > 1\" duration=\"300\">\r\n <w-swiper-item v-for=\"(item,index) in data.imgs\" :key=\"index\">\r\n <div class=\"f-height f-rel f-oh\">\r\n <img class=\"_img\" :src=\"item\" />\r\n </div>\r\n </w-swiper-item>\r\n </w-swiper>\r\n <div class=_rotate>\r\n <a class=_l @click=\"rot(-1)\">{{loc.rotate_left}}</a>\r\n <span class=_s>|</span>\r\n <a class=_r @click=\"rot(1)\">{{loc.rotate_right}}</a>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <w-video class=\"f-height\" :src=\"data.src\"></w-video>\r\n </template>\r\n <div class=\"_dlg_x\" @click=\"close\"></div>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n return {\r\n rotate: {},\r\n current: $.lodash.get(this.data, 'options.current', 0),\r\n }\r\n },\r\n methods: {\r\n close() {\r\n $.close(this)\r\n },\r\n rot(a) {\r\n let n = this.$refs.swiper.focusIndex\r\n let r = this.rotate[n]\r\n if (r == null) {\r\n r = this.rotate[n] = 0\r\n }\r\n let d = this.$refs.swiper.getCurrentItem().el()\r\n let b = $.bcr(d)\r\n let w = b.width - 40\r\n let h = b.height - 80\r\n if (a > 0) {\r\n r += 90\r\n } else if (a < 0) {\r\n r -= 90\r\n }\r\n let t = (r / 90) % 2\r\n $.q('._img', d).css({\r\n transform: 'rotate(' + r + 'deg)',\r\n maxWidth: t ? h : w,\r\n maxHeight: t ? w : h,\r\n });\r\n this.rotate[n] = r\r\n }\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n },\r\n mounted() {\r\n \r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-dialog-preview\" width=\"calc(100% - 100px)\" height=\"calc(100% - 100px)\" :ownproperty=\"true\" :cover=\"true\" :autoHide=\"true\">\r\n <template v-if=\"data.type=='image'\">\r\n <w-swiper ref=\"swiper\" class=\"f-height\" :current=\"current\" :arrow=\"data.imgs.length > 1\" :indicator-dots=\"data.imgs.length > 1\" duration=\"300\">\r\n <w-swiper-item v-for=\"(item,index) in data.imgs\" :key=\"index\">\r\n <div class=\"f-height f-rel f-oh\">\r\n <img class=\"_img\" :src=\"item\" />\r\n </div>\r\n </w-swiper-item>\r\n </w-swiper>\r\n <div class=_rotate>\r\n <a class=_l @click=\"rot(-1)\">{{loc.rotate_left}}</a>\r\n <span class=_s>|</span>\r\n <a class=_r @click=\"rot(1)\">{{loc.rotate_right}}</a>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <w-video class=\"f-height\" :src=\"data.src\"></w-video>\r\n </template>\r\n <div class=\"_dlg_x\" @click=\"close\"></div>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n return {\r\n rotate: {},\r\n current: $.lodash.get(this.data, 'options.current', 0),\r\n }\r\n },\r\n methods: {\r\n close() {\r\n $.close(this)\r\n },\r\n rot(a) {\r\n let n = this.$refs.swiper.focusIndex\r\n let r = this.rotate[n]\r\n if (r == null) {\r\n r = this.rotate[n] = 0\r\n }\r\n let d = this.$refs.swiper.getCurrentItem().el()\r\n let b = $.bcr(d)\r\n let w = b.width - 40\r\n let h = b.height - 80\r\n if (a > 0) {\r\n r += 90\r\n } else if (a < 0) {\r\n r -= 90\r\n }\r\n let t = (r / 90) % 2\r\n $.q('._img', d).css({\r\n transform: 'rotate(' + r + 'deg)',\r\n maxWidth: t ? h : w,\r\n maxHeight: t ? w : h,\r\n });\r\n this.rotate[n] = r\r\n }\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n },\r\n mounted() {\r\n \r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-datesheet\">\r\n <w-buttonbar class=\"f-datesheet-bbr\" align=\"between\" height=\"52\" style=\"padding:0 10px\">\r\n <w-button text=\"取消\" @click=\"clickCancel\"></w-button>\r\n <w-button text=\"确定\" @click=\"clickOK\" face=\"primary\"></w-button>\r\n </w-buttonbar>\r\n <w-horizontal height=\"*\">\r\n <w-vertical width=\"*\" v-if=\"hasYear\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">年</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusYear\" :min-value=\"minYear\" :max-value=\"maxYear\" :keep-index=\"true\"\r\n :data=\"{mode: 'year'}\">\r\n <w-option v-for=\"y in yearList\" :key=\"y\" :value=\"y\" :text=\"y\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMonth\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">月</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMonth\" :min-value=\"minMonth\" :max-value=\"maxMonth\" :keep-index=\"true\"\r\n :data=\"{mode: 'month'}\">\r\n <w-option v-for=\"m in monthList\" :key=\"m\" :value=\"m\" :text=\"dfish.strPad(m+1)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasDate\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">日</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusDate\" :min-value=\"minDate\" :max-value=\"maxDate\" :keep-index=\"true\"\r\n :data=\"{mode: 'date'}\">\r\n <w-option v-for=\"d in dateList\" :key=\"d\" :value=\"d\" :text=\"dfish.strPad(d)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasHour\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">时</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusHour\" :min-value=\"minHour\" :max-value=\"maxHour\" :keep-index=\"true\">\r\n <w-option v-for=\"h in hourList\" :key=\"h\" :value=\"h\" :text=\"dfish.strPad(h)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMinute\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">分</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMinute\" :min-value=\"minMinute\" :max-value=\"maxMinute\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"i in minuteList\" :key=\"i\" :value=\"i\" :text=\"dfish.strPad(i)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasSecond\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">秒</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusSecond\" :min-value=\"minSecond\" :max-value=\"maxSecond\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"s in secondList\" :key=\"s\" :value=\"s\" :text=\"dfish.strPad(s)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasWeek\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">周</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusWeek\" :min-value=\"minWeek\" :max-value=\"maxWeek\" :keep-index=\"true\">\r\n <w-option v-for=\"w in weekList\" :key=\"w.value\" :value=\"w.value\" :text=\"w.text\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n </w-horizontal>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n let f = this.data.format || 'yyyy-MM-dd'\r\n let d = this.data && this.data.value ? $.dateParse(this.data.value, f) : new Date\r\n let nd = this.data && this.data.minValue && $.dateParse(this.data.minValue, f)\r\n let xd = this.data && this.data.maxValue && $.dateParse(this.data.maxValue, f)\r\n d = $.numRange(d, nd, xd)\r\n let focusYear = d.getFullYear()\r\n let focusWeek, weekFirst, weekLast\r\n if (f.includes('w')) {\r\n focusWeek = $.dateWeek(d)[1]\r\n weekFirst = $.dateWeekFirst(focusYear)\r\n weekLast = $.dateWeekLast(focusYear)\r\n }\r\n return {\r\n focusYear,\r\n focusMonth: d.getMonth(),\r\n focusDate: d.getDate(),\r\n focusHour: d.getHours(),\r\n focusMinute: d.getMinutes(),\r\n focusSecond: d.getSeconds(),\r\n startYear: $.numRange(d.getFullYear() - 30, nd && nd.getFullYear()),\r\n endYear: $.numRange(d.getFullYear() + 30, null, xd && xd.getFullYear()),\r\n monthDays: new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\r\n focusWeek,\r\n weekFirst,\r\n weekLast,\r\n minTime: nd,\r\n maxTime: xd,\r\n format: f\r\n }\r\n },\r\n watch: {\r\n focusYear(y) {\r\n if (y == this.yearList[0] && y > 1030) {\r\n this.startYear = $.numRange(this.startYear - 30, this.minYear)\r\n } else if (y == this.yearList.at(-1)) {\r\n this.endYear = $.numRange(this.endYear + 30, null, this.maxYear)\r\n }\r\n this.monthDays = new Date(y, this.focusMonth + 1, 0).getDate()\r\n if (this.hasWeek) {\r\n this.weekFirst = $.dateWeekFirst(y)\r\n this.weekLast = $.dateWeekLast(y)\r\n }\r\n },\r\n focusMonth(m) {\r\n this.monthDays = new Date(this.focusYear, m + 1, 0).getDate()\r\n }\r\n },\r\n methods: {\r\n weekText(w) {\r\n \r\n },\r\n clickCancel() {\r\n $.close(this)\r\n },\r\n clickOK() {\r\n if (this.data.success) {\r\n let d = this.hasWeek ? $.dateParse(`${this.focusYear}-${this.focusWeek}`, 'yyyy-ww') :\r\n new Date(this.focusYear, this.focusMonth, this.focusDate, this.focusHour, this.focusMinute, this.focusSecond)\r\n this.data.success($.dateFormat(d, this.format))\r\n }\r\n $.close(this)\r\n },\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n yearList() {\r\n return Array.from(Array(this.endYear - this.startYear + 1)).map((v, i) => this.startYear + i)\r\n },\r\n monthList() {\r\n return Array.from(Array(12)).map((v, i) => i)\r\n },\r\n dateList() {\r\n return Array.from(Array(this.monthDays)).map((v, i) => i + 1)\r\n },\r\n hourList() {\r\n return Array.from(Array(24)).map((v, i) => i)\r\n },\r\n minuteList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n secondList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n weekList() {\r\n let d = this.weekFirst[2]\r\n return Array.from(Array(this.weekLast[1])).map((v, i) => {\r\n let startDate = d\r\n let endDate = $.dateAdd(d, 'd', 6)\r\n d = $.dateAdd(d, 'd', 7)\r\n return {\r\n value: i + 1,\r\n text: `${$.strPad(i + 1)} (${$.dateFormat(startDate, 'MM.dd')} - ${$.dateFormat(endDate, 'MM.dd')})`,\r\n }\r\n })\r\n },\r\n hasYear() {\r\n return this.format.includes('y')\r\n },\r\n hasMonth() {\r\n return this.format.includes('M')\r\n },\r\n hasDate() {\r\n return this.format.includes('d')\r\n },\r\n hasHour() {\r\n return this.format.includes('H')\r\n },\r\n hasMinute() {\r\n return this.format.includes('m')\r\n },\r\n hasSecond() {\r\n return this.format.includes('s')\r\n },\r\n hasWeek() {\r\n return this.format.includes('w')\r\n },\r\n minYear() {\r\n return this.minTime && this.hasYear && this.minTime.getFullYear()\r\n },\r\n maxYear() {\r\n return this.maxTime && this.hasYear && this.maxTime.getFullYear()\r\n },\r\n minMonth() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && this.minTime.getMonth()\r\n },\r\n maxMonth() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && this.maxTime.getMonth()\r\n },\r\n minDate() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) && this.minTime.getDate()\r\n },\r\n maxDate() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) && this.maxTime.getDate()\r\n },\r\n minHour() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && this.minTime.getHours()\r\n },\r\n maxHour() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && this.maxTime.getHours()\r\n },\r\n minMinute() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && this\r\n .minTime.getMinutes()\r\n },\r\n maxMinute() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && this\r\n .maxTime.getMinutes()\r\n },\r\n minSecond() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && (!\r\n this.hasMinute || this.minMinute == this.focusMinute) && this.minTime.getSeconds()\r\n },\r\n maxSecond() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && (!\r\n this.hasMinute || this.maxMinute == this.focusMinute) && this.maxTime.getSeconds()\r\n },\r\n minWeek() {\r\n\r\n },\r\n maxWeek() {\r\n\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-datesheet {\r\n background: #f9f9f9;\r\n }\r\n\r\n .f-datesheet-ok {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .f-datesheet-head {\r\n height: 36px;\r\n border-top: 1px solid #ddd;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-datesheet\">\r\n <w-buttonbar class=\"f-datesheet-bbr\" align=\"between\" height=\"52\" style=\"padding:0 10px\">\r\n <w-button text=\"取消\" @click=\"clickCancel\"></w-button>\r\n <w-button text=\"确定\" @click=\"clickOK\" face=\"primary\"></w-button>\r\n </w-buttonbar>\r\n <w-horizontal height=\"*\">\r\n <w-vertical width=\"*\" v-if=\"hasYear\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">年</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusYear\" :min-value=\"minYear\" :max-value=\"maxYear\" :keep-index=\"true\"\r\n :data=\"{mode: 'year'}\">\r\n <w-option v-for=\"y in yearList\" :key=\"y\" :value=\"y\" :text=\"y\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMonth\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">月</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMonth\" :min-value=\"minMonth\" :max-value=\"maxMonth\" :keep-index=\"true\"\r\n :data=\"{mode: 'month'}\">\r\n <w-option v-for=\"m in monthList\" :key=\"m\" :value=\"m\" :text=\"dfish.strPad(m+1)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasDate\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">日</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusDate\" :min-value=\"minDate\" :max-value=\"maxDate\" :keep-index=\"true\"\r\n :data=\"{mode: 'date'}\">\r\n <w-option v-for=\"d in dateList\" :key=\"d\" :value=\"d\" :text=\"dfish.strPad(d)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasHour\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">时</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusHour\" :min-value=\"minHour\" :max-value=\"maxHour\" :keep-index=\"true\">\r\n <w-option v-for=\"h in hourList\" :key=\"h\" :value=\"h\" :text=\"dfish.strPad(h)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMinute\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">分</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMinute\" :min-value=\"minMinute\" :max-value=\"maxMinute\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"i in minuteList\" :key=\"i\" :value=\"i\" :text=\"dfish.strPad(i)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasSecond\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">秒</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusSecond\" :min-value=\"minSecond\" :max-value=\"maxSecond\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"s in secondList\" :key=\"s\" :value=\"s\" :text=\"dfish.strPad(s)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasWeek\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">周</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusWeek\" :min-value=\"minWeek\" :max-value=\"maxWeek\" :keep-index=\"true\">\r\n <w-option v-for=\"w in weekList\" :key=\"w.value\" :value=\"w.value\" :text=\"w.text\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n </w-horizontal>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n let f = this.data.format || 'yyyy-MM-dd'\r\n let d = this.data && this.data.value ? $.dateParse(this.data.value, f) : new Date\r\n let nd = this.data && this.data.minValue && $.dateParse(this.data.minValue, f)\r\n let xd = this.data && this.data.maxValue && $.dateParse(this.data.maxValue, f)\r\n d = $.numRange(d, nd, xd)\r\n let focusYear = d.getFullYear()\r\n let focusWeek, weekFirst, weekLast\r\n if (f.includes('w')) {\r\n focusWeek = $.dateWeek(d)[1]\r\n weekFirst = $.dateWeekFirst(focusYear)\r\n weekLast = $.dateWeekLast(focusYear)\r\n }\r\n return {\r\n focusYear,\r\n focusMonth: d.getMonth(),\r\n focusDate: d.getDate(),\r\n focusHour: d.getHours(),\r\n focusMinute: d.getMinutes(),\r\n focusSecond: d.getSeconds(),\r\n startYear: $.numRange(d.getFullYear() - 30, nd && nd.getFullYear()),\r\n endYear: $.numRange(d.getFullYear() + 30, null, xd && xd.getFullYear()),\r\n monthDays: new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\r\n focusWeek,\r\n weekFirst,\r\n weekLast,\r\n minTime: nd,\r\n maxTime: xd,\r\n format: f\r\n }\r\n },\r\n watch: {\r\n focusYear(y) {\r\n if (y == this.yearList[0] && y > 1030) {\r\n this.startYear = $.numRange(this.startYear - 30, this.minYear)\r\n } else if (y == this.yearList.at(-1)) {\r\n this.endYear = $.numRange(this.endYear + 30, null, this.maxYear)\r\n }\r\n this.monthDays = new Date(y, this.focusMonth + 1, 0).getDate()\r\n if (this.hasWeek) {\r\n this.weekFirst = $.dateWeekFirst(y)\r\n this.weekLast = $.dateWeekLast(y)\r\n }\r\n },\r\n focusMonth(m) {\r\n this.monthDays = new Date(this.focusYear, m + 1, 0).getDate()\r\n }\r\n },\r\n methods: {\r\n weekText(w) {\r\n \r\n },\r\n clickCancel() {\r\n $.close(this)\r\n },\r\n clickOK() {\r\n if (this.data.success) {\r\n let d = this.hasWeek ? $.dateParse(`${this.focusYear}-${this.focusWeek}`, 'yyyy-ww') :\r\n new Date(this.focusYear, this.focusMonth, this.focusDate, this.focusHour, this.focusMinute, this.focusSecond)\r\n this.data.success($.dateFormat(d, this.format))\r\n }\r\n $.close(this)\r\n },\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n yearList() {\r\n return Array.from(Array(this.endYear - this.startYear + 1)).map((v, i) => this.startYear + i)\r\n },\r\n monthList() {\r\n return Array.from(Array(12)).map((v, i) => i)\r\n },\r\n dateList() {\r\n return Array.from(Array(this.monthDays)).map((v, i) => i + 1)\r\n },\r\n hourList() {\r\n return Array.from(Array(24)).map((v, i) => i)\r\n },\r\n minuteList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n secondList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n weekList() {\r\n let d = this.weekFirst[2]\r\n return Array.from(Array(this.weekLast[1])).map((v, i) => {\r\n let startDate = d\r\n let endDate = $.dateAdd(d, 'd', 6)\r\n d = $.dateAdd(d, 'd', 7)\r\n return {\r\n value: i + 1,\r\n text: `${$.strPad(i + 1)} (${$.dateFormat(startDate, 'MM.dd')} - ${$.dateFormat(endDate, 'MM.dd')})`,\r\n }\r\n })\r\n },\r\n hasYear() {\r\n return this.format.includes('y')\r\n },\r\n hasMonth() {\r\n return this.format.includes('M')\r\n },\r\n hasDate() {\r\n return this.format.includes('d')\r\n },\r\n hasHour() {\r\n return this.format.includes('H')\r\n },\r\n hasMinute() {\r\n return this.format.includes('m')\r\n },\r\n hasSecond() {\r\n return this.format.includes('s')\r\n },\r\n hasWeek() {\r\n return this.format.includes('w')\r\n },\r\n minYear() {\r\n return this.minTime && this.hasYear && this.minTime.getFullYear()\r\n },\r\n maxYear() {\r\n return this.maxTime && this.hasYear && this.maxTime.getFullYear()\r\n },\r\n minMonth() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && this.minTime.getMonth()\r\n },\r\n maxMonth() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && this.maxTime.getMonth()\r\n },\r\n minDate() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) && this.minTime.getDate()\r\n },\r\n maxDate() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) && this.maxTime.getDate()\r\n },\r\n minHour() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && this.minTime.getHours()\r\n },\r\n maxHour() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && this.maxTime.getHours()\r\n },\r\n minMinute() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && this\r\n .minTime.getMinutes()\r\n },\r\n maxMinute() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && this\r\n .maxTime.getMinutes()\r\n },\r\n minSecond() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && (!\r\n this.hasMinute || this.minMinute == this.focusMinute) && this.minTime.getSeconds()\r\n },\r\n maxSecond() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && (!\r\n this.hasMinute || this.maxMinute == this.focusMinute) && this.maxTime.getSeconds()\r\n },\r\n minWeek() {\r\n\r\n },\r\n maxWeek() {\r\n\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-datesheet {\r\n background: #f9f9f9;\r\n }\r\n\r\n .f-datesheet-ok {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .f-datesheet-head {\r\n height: 36px;\r\n border-top: 1px solid #ddd;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetAbs from './WidgetAbs.vue' \r\n import ViewAbs from './ViewAbs.vue' \r\n import SVGIcon from '../assets/SVGIcon.vue'\r\n import TemplatePreviewMedia from '../template/TemplatePreviewMedia.vue'\r\n import TemplateDateSheet from '../template/TemplateDateSheet.vue'\r\n \r\n\r\n export default {\r\n name: 'w-docview',\r\n mixins: [WidgetAbs, ViewAbs],\r\n provide() {\r\n return {\r\n providePubParent: null,\r\n provideBoxParent: null,\r\n provideRangeParent: null,\r\n provideCompatGap: null,\r\n provideMenu_w: null,\r\n }\r\n },\r\n beforeCreate() {\r\n $.docView = this\r\n $.q(document.body).prepend('<div id=w-dfish-pops></div>')\r\n },\r\n methods: {\r\n el() {\r\n return document.getElementById('app') || document.body\r\n },\r\n getKey() {\r\n return null\r\n },\r\n previewVideo(src) {\r\n this.pop(TemplatePreviewMedia, {data: {type: 'video', src}})\r\n },\r\n previewImage(imgs, options) {\r\n this.pop(TemplatePreviewMedia, {data: {type: 'image', imgs, options}})\r\n },\r\n //dateOptions: {value, format, minValue, maxValue, success}\r\n dateSheet(dateOptions, dialogOptions) {\r\n this.pop(TemplateDateSheet, {\r\n template: TemplateDateSheet,\r\n width: '100%',\r\n height: '55%',\r\n position: 'b',\r\n cover: true,\r\n autoHide: true,\r\n data: dateOptions,\r\n on: {\r\n 'click:cover': $.close\r\n }\r\n })\r\n },\r\n html() {\r\n return [\r\n this.$slots.default && this.$slots.default(),\r\n this.html_pops(),\r\n h(SVGIcon),\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import WidgetAbs from './WidgetAbs.vue'\r\n \r\n export default {\r\n mixins: [WidgetAbs],\r\n inject: ['provideView']\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n const onScroll = function(e) {\r\n if (this.wScrollPercentX) {\r\n let left = e.target.scrollLeft\r\n this.scrollXPosition = left == 0 ? 'left' : left >= this.wScrollSizeX ? 'right' : 'center'\r\n this.$refs.wScrollBarThumbX.style.transform = `translateX(${left/this.wScrollPercentX}px)`\r\n }\r\n if (this.wScrollPercentY) {\r\n let top = e.target.scrollTop\r\n this.scrollYPosition = top == 0 ? 'top' : top >= this.wScrollSizeY ? 'bottom' : 'middle'\r\n this.$refs.wScrollBarThumbY.style.transform = `translateY(${top/this.wScrollPercentY}px)`\r\n }\r\n this.onScroll(e)\r\n }\r\n\r\n const onMousedown = function(dnEv) {\r\n let dir, dnX, dnY, scrLeft, scrTop;\r\n let ov = this.$refs.wScrollOverflow\r\n let x = this.wScrollPercentX\r\n let y = this.wScrollPercentY\r\n $.moveup((mvEv) => {\r\n if (!dir) {\r\n dir = this.$refs.wScrollBarThumbX === dnEv.target ? 'X' : 'Y'\r\n dnX = dnEv.clientX\r\n dnY = dnEv.clientY\r\n scrLeft = ov.scrollLeft\r\n scrTop = ov.scrollTop\r\n dnEv.target.parentNode.classList.add('z-drag')\r\n }\r\n if (dir === 'X') {\r\n ov.scrollLeft = scrLeft + ((mvEv.clientX - dnX) * x)\r\n } else {\r\n ov.scrollTop = scrTop + ((mvEv.clientY - dnY) * y)\r\n }\r\n }, (upEv, moved) => {\r\n if (moved)\r\n dnEv.target.parentNode.classList.remove('z-drag')\r\n }, dnEv)\r\n }\r\n\r\n export default {\r\n mixins: [WidgetBase],\r\n props: ['scrollX', 'scrollY', 'scrollView', 'scrollFlex'],\r\n data() {\r\n return {\r\n wScrollPercentX: false,\r\n wScrollPercentY: false,\r\n wScrollSizeX: false,\r\n wScrollSizeY: false,\r\n scrollXPosition: 'left',\r\n scrollYPosition: 'top',\r\n isDeactivated: false,\r\n }\r\n },\r\n watch: {\r\n scrollXPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n scrollYPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n wScrollPercentX(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-x', '') : el.removeAttribute('w-scroll-show-x')\r\n }\r\n },\r\n wScrollPercentY(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-y', '') : el.removeAttribute('w-scroll-show-y')\r\n }\r\n }\r\n },\r\n methods: {\r\n onScroll(e) {\r\n //implement\r\n },\r\n onScrollPosition() {\r\n //implement\r\n },\r\n onScrollAttributeChange(e) {\r\n //implement\r\n },\r\n\t\t\tonScrollResize() {\r\n\t\t\t\t//implement\r\n\t\t\t},\r\n // 让元素滚动到可见区域。支持下面两种调用方式 /e -> el|wg, y -> (top,bottom,middle,auto,top+n,bottom+n,n), x -> (left,right,center,auto), p -> ease?, q -> divide(整除数字,让滚动的距离是这个数字的整数倍), r -> callback\r\n scrollTo(e, y, x, p, q, r) {\r\n let a = this.ovf()\r\n if (!a) return r && r()\r\n let b = this.$refs.wScrollCont || a\r\n let c = $.bcr(a)\r\n let d = $.bcr(b)\r\n let f = e ? $.bcr(e) : d\r\n let t, l\r\n if (y != null) {\r\n if (!isNaN(y)) {\r\n t = $.number(y)\r\n if (e) t = f.top - d.top - t\r\n } else if (~y.indexOf('top')) {\r\n\t\t\t\t\t\tt = 0\r\n\t\t\t\t\t\tlet add = x.slice(3)\r\n if (add) t = a.scrollTop + (+add)\r\n } else if (~y.indexOf('bottom')) {\r\n t = f.bottom - d.top - c.height + (+y.slice(6))\r\n } else if (y === 'middle') {\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n } else if (y === 'nearest') {\r\n\t\t\t\t\t\tlet add = x.slice(7)\r\n\t\t\t\t\t\tadd = add ? add.split(',') : [0, 0]\r\n if (f.top - add[0] < c.top) {\r\n t = a.scrollTop - c.top + f.top -add[0]\r\n } else if (f.bottom > c.bottom - add[1]) {\r\n t = a.scrollTop + f.bottom - c.bottom + (+add[1])\r\n\t\t\t\t\t\t}\r\n } else {\r\n if (f.top < c.top || f.bottom > c.bottom)\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n }\r\n }\r\n if (x != null) {\r\n if (!isNaN(x)) {\r\n l = $.number(x)\r\n if (e) l = f.left - d.left - l\r\n } else if (~x.indexOf('left')) {\r\n\t\t\t\t\t\tl = 0\r\n\t\t\t\t\t\tlet add = x.slice(4)\r\n\t\t\t\t\t\tif (add) l = a.scrollLeft + (+add)\r\n } else if (~x.indexOf('right')) {\r\n l = f.right - d.left - c.width + (+x.slice(5))\r\n } else if (x === 'center') {\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n } else if (~x.indexOf('nearest')) {\r\n\t\t\t\t\t\tlet add = x.slice(7)\r\n\t\t\t\t\t\tadd = add ? add.split(',') : [0, 0]\r\n if (f.left - add[0] < c.left) {\r\n\t\t\t\t\t\t\tl = a.scrollLeft - c.left + f.left - add[0]\r\n\t\t\t\t\t\t} else if (f.right > c.right - add[1]) {\r\n\t\t\t\t\t\t\tl = a.scrollLeft + f.right - c.right + (+add[1])\r\n\t\t\t\t\t\t}\r\n } else {\r\n if (f.left < c.left || f.right > c.right)\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n }\r\n }\r\n if (q != null) {\r\n t != null && (t = t - (t % q))\r\n l != null && (l = l - (l % q))\r\n }\r\n if (p && (t != null || l != null)) {\r\n let g = a.scrollTop\r\n let h = a.scrollLeft\r\n $.ease((i) => {\r\n if (t != null) a.scrollTop = g + (t - g) * i\r\n if (l != null) a.scrollLeft = h + (l - h) * i\r\n i === 1 && r && r()\r\n }, p)\r\n } else {\r\n if (t != null) a.scrollTop = t\r\n if (l != null) a.scrollLeft = l\r\n r && r()\r\n }\r\n },\r\n //@public /@ e -> el, y -> (top,bottom,middle), p -> ease?, q -> divide, r -> callback\r\n scrollToY(e, y, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollTop\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = y, y = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, y, null, p, q, r)\r\n },\r\n //@public /@ e -> el, x -> (left,right,center), p -> ease?, q -> divide, r -> callback\r\n scrollToX(e, x, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollLeft\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = x, x = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, null, x, p, q, r)\r\n },\r\n ovf() {\r\n return $.br.mobile ? this.el() : this.$refs.wScrollOverflow || this.$refs.wScrollCont\r\n },\r\n html_scroll_slots(s) {\r\n return this.hasScrollX || this.hasScrollY ? [h('div', {\r\n ref: \"wScrollOverflow\",\r\n class: \"w-scroll-overflow\",\r\n onscroll: onScroll.bind(this),\r\n onmouseenter: this.initScroll\r\n }, h('div', {\r\n class: 'w-scroll-cont',\r\n style: this.html_scroll_cont_style,\r\n ref: \"wScrollCont\"\r\n }, s || (this.$slots.default && this.$slots.default()))),\r\n !$.br.mobile && this.hasScrollX && [h('div', {\r\n class: \"w-scrollbar-x\",\r\n ref: \"wScrollBarX\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbX\"\r\n }))],\r\n !$.br.mobile && this.hasScrollY && [h('div', {\r\n class: \"w-scrollbar-y\",\r\n ref: \"wScrollBarY\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbY\"\r\n }))]\r\n ] : (s || (this.$slots.default && this.$slots.default()))\r\n\r\n },\r\n scrollState() {\r\n if ($.br.mobile || !this.$refs.wScrollCont || !this.el()) return\r\n const flow = this.$refs.wScrollOverflow.getBoundingClientRect()\r\n const cont = this.$refs.wScrollCont.getBoundingClientRect()\r\n let x, y;\r\n if (this.hasScrollX) {\r\n let size = cont.width > flow.width && cont.width - flow.width\r\n if (size && size <= 1) size = false //@fixme 横向滚动时,width:fit-content的设置会让有小数点的宽度变成整数。目前先加一个像素容错\r\n if (size) {\r\n x = {\r\n size,\r\n percent: flow.width / cont.width\r\n }\r\n }\r\n }\r\n if (this.hasScrollY) {\r\n let size = cont.height > flow.height && cont.height - flow.height\r\n if (size) {\r\n y = {\r\n size,\r\n percent: flow.height / cont.height\r\n }\r\n }\r\n }\r\n return {x, y}\r\n },\r\n initScroll() {\r\n const state = this.scrollState()\r\n if (!state) return\r\n const wrap = this.el().getBoundingClientRect()\r\n const {x, y} = state\r\n if (x) {\r\n let thbX = x.percent * wrap.width\r\n this.$refs.wScrollBarThumbX.style.width = Math.max(20, thbX) + 'px'\r\n this.wScrollSizeX = x.size\r\n this.wScrollPercentX = x.size && (x.size / ((1 - x.percent) * (wrap.width - (thbX < 20 ? 20 - thbX : 0))))\r\n } else {\r\n this.wScrollSizeX = this.wScrollPercentX = false\r\n }\r\n if (y) {\r\n let thbY = y.percent * wrap.height\r\n this.$refs.wScrollBarThumbY.style.height = Math.max(20, thbY) + 'px'\r\n this.wScrollSizeY = y.size\r\n this.wScrollPercentY = y.size && (y.size / ((1 - y.percent) * (wrap.height - (thbY < 20 ? 20 - thbY : 0))))\r\n } else {\r\n this.wScrollSizeY = this.wScrollPercentY = false\r\n }\r\n },\r\n scroll_observe(ob) {\r\n if (this.isDeactivated) return \r\n this.initScroll()\r\n\t\t\t\tthis.onScrollResize(ob)\r\n this.$refs.wScrollOverflow && this.$refs.wScrollOverflow.dispatchEvent(new Event('scroll'))\r\n }\r\n },\r\n computed: {\r\n\t\t\thasScrollX() {\r\n\t\t\t\treturn this.x.scrollX\r\n\t\t\t},\r\n\t\t\thasScrollY() {\r\n\t\t\t\treturn this.x.scrollY\r\n\t\t\t},\r\n html_scroll_cont_style() {\r\n // implement\r\n },\r\n html_scroll_class() {\r\n let sx = this.hasScrollX\r\n let sy = this.hasScrollY\r\n return {\r\n 'w-scroll': sx || sy,\r\n 'w-scroll-x': sx,\r\n 'w-scroll-y': sy,\r\n 'w-scroll-flex': this.x.scrollFlex,\r\n }\r\n },\r\n\r\n },\r\n mounted() {\r\n if (this.x.scrollView && this.el()) {\r\n setTimeout(() => {\r\n let el = this.el().querySelector(this.x.scrollView)\r\n el && this.scrollToY(el, 'middle')\r\n })\r\n }\r\n //在PC端生成滚动条。移动端不生成\r\n if ($.br.mobile || !(this.hasScrollX || this.hasScrollY)) return\r\n this.$refs.wScrollOverflow && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollOverflow)\r\n this.$refs.wScrollCont && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollCont)\r\n this.el() && new MutationObserver(this.onScrollAttributeChange).observe(this.el(), {attributes: true})\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n //router切回来时,让滚动条滚动到切出去之前的位置\r\n if (this.hasScrollY && this.$refs.wScrollBarThumbY) {\r\n this.scrollToY($.number(this.$refs.wScrollBarThumbY.style.transform) * this.wScrollPercentY)\r\n }\r\n if (this.hasScrollX && this.$refs.wScrollBarThumbX) {\r\n this.scrollToX($.number(this.$refs.wScrollBarThumbX.style.transform) * this.wScrollPercentX)\r\n }\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-scroll {\r\n position: relative;\r\n display: flex;\r\n }\r\n\r\n .w-scroll-overflow {\r\n flex: 1;\r\n box-sizing: border-box;\r\n scrollbar-width: none;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow {\r\n overflow-x: auto;\r\n }\r\n\r\n .w-scroll-y>.w-scroll-overflow {\r\n overflow-y: auto;\r\n }\r\n\r\n .w-scroll-flex>.w-scroll-overflow {\r\n display: flex;\r\n }\r\n\r\n .w-scroll-cont {\r\n min-width: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow>.w-scroll-cont {\r\n width: fit-content;\r\n }\r\n\r\n .w-scroll-overflow::-webkit-scrollbar {\r\n width: 0;\r\n height: 0;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n background-color: rgba(200, 200, 200, .9);\r\n }\r\n\r\n .w-scrollbar-thumb:hover {\r\n background-color: rgba(180, 180, 180, 1);\r\n }\r\n\r\n .w-scroll-x:hover>.w-scrollbar-x,\r\n .w-scroll-x.z-hv>.w-scrollbar-x,\r\n .w-scroll-y:hover>.w-scrollbar-y,\r\n .w-scroll-y.z-hv>.w-scrollbar-y,\r\n .w-scrollbar-x.z-drag,\r\n .w-scrollbar-y.z-drag {\r\n visibility: visible;\r\n }\r\n\r\n .w-scroll[w-scroll-show-x]>.w-scrollbar-x,\r\n .w-scroll[w-scroll-show-y]>.w-scrollbar-y {\r\n display: block;\r\n }\r\n\r\n .w-scrollbar-x {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n height: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-y {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n position: absolute;\r\n transition-property: top, left;\r\n transition-duration: .1s;\r\n }\r\n\r\n .w-scrollbar-x>.w-scrollbar-thumb {\r\n top: 4px;\r\n bottom: 0;\r\n min-width: 20px;\r\n }\r\n\r\n\r\n .w-scrollbar-y>.w-scrollbar-thumb {\r\n left: 4px;\r\n right: 0;\r\n min-height: 20px;\r\n }\r\n\r\n .w-scrollbar-x:hover>.w-scrollbar-thumb {\r\n top: 0;\r\n }\r\n\r\n .w-scrollbar-y:hover>.w-scrollbar-thumb {\r\n left: 0;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['align', 'valign', 'gap'],\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n html_align_class() {\r\n return [\r\n this.x.align && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-align-' + this.x.align,\r\n this.x.valign && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-valign-' + this.x.valign\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import Scroll from './Scroll.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-horizontal',\r\n mixins: [Scroll, AlignParent],\r\n props: ['br', 'reverse'],\r\n provide() {\r\n return {\r\n provideLayout: this.$options.name,\r\n provideCompatGap: this.compatGap\r\n }\r\n },\r\n inject: ['provideCompatGap'],\r\n methods: {\r\n html_slots() {\r\n return this.html_scroll_slots()\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n compatGap() {\r\n return $.br.compat.gap ? (this.x ? this.x.gap : this.gap) : null\r\n },\r\n\t\t\thtml_props_on() {\r\n\t\t\t\t//implement\r\n\t\t\t},\r\n html_props() {\r\n let gap = this.x.gap\r\n return {\r\n class: [this.html_scroll_class, this.html_align_class, {'z-br': this.x.br, [`f-${this.dir}-gap${this.x.reverse?'-reverse':''}`]: gap != null && gap !== '' && ($.br.compat.gap || gap < 0)}],\r\n style: !this.x.scrollX && !this.x.scrollY && this.html_scroll_cont_style,\r\n\t\t\t\t\t...this.html_props_on,\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let gap = this.x.gap\r\n let st = {}\r\n if (gap != null) {\r\n st['gap'] = $.unitSize(gap, true)\r\n }\r\n if ($.br.compat.gap || gap < 0) {\r\n st['--w-gap'] = $.unitSize(gap, true)\r\n }\r\n if ($.br.compat.gap && this.provideCompatGap != null) {\r\n st['--w-compat-gap'] = $.unitSize(this.provideCompatGap, true)\r\n }\r\n if (this.x.reverse) {\r\n st['flex-direction'] = `${this.dir=='h'?'row':'column'}-reverse`\r\n }\r\n return st\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-vertical',\r\n mixins: [Horizontal],\r\n computed: {\r\n dir() {\r\n return 'v'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import ViewAbs from './ViewAbs.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-view',\r\n mixins: [Vertical, ViewAbs],\r\n inject: ['provideView'],\r\n methods: {\r\n\t\t\thtml_slots() {\r\n\t\t\t\treturn [\r\n\t\t\t\t\tthis.html_scroll_slots(),\r\n\t\t\t\t\tthis.html_pops()\r\n\t\t\t\t]\r\n\t\t\t}\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-vertical f-rel', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <slot></slot>\n</template>\n\n<script setup>\r\n import {ref, provide, inject} from 'vue'\r\n const dialogView = inject('provideView', null)\r\n const provideView = dialogView && dialogView.provideView\r\n provide('provideView', provideView)\n</script>\n\n<style>\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps,\r\n Teleport\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n import View from './View.vue'\r\n import DialogTarget from './DialogTarget.vue'\r\n\r\n const O = {},\r\n T = true,\r\n F = false,\r\n N = null\r\n\t\t\r\n\tconst zIndex = 100\r\n\r\n const positionCodes = {\r\n t: 'tt', r: 'rr', b: 'bb', l: 'll', c: 'cc', lt: '11', tl: '11', tr: '22', rt: '22', rb: '33', br: '33', bl: '44', lb: '44',\r\n '-t': 'tb', '-r': 'rl', '-b': 'bt', '-l': 'lr', '-c': 'cc', '-tl': '14', '-tr': '23', '-rt': '21', '-rb': '34', '-bl': '41', '-br': '32', '-lt': '12', '-lb': '43',\r\n }\r\n\r\n const positionNames = {\r\n 'tt': 't', 'rr': 'r', 'bb': 'b', 'll': 'l', 'cc': 'c', '11': 'tl', '22': 'tr', '33': 'br', '44': 'bl',\r\n 'tb': '-t', 'rl': '-r', 'bt': '-b', 'lr': '-l', 'cc': '-c', '14': '-tl', '23': '-tr', '21': '-rt', '34': '-rb', '41': '-bl', '32': '-br', '12': '-lt', '43': '-lb',\r\n }\r\n\t\r\n\tconst boundary = ['minWidth', 'maxWidth', 'minHeight', 'maxHeight']\r\n\r\n\tconst dialogPosition = (a) => {\r\n\t return typeof a === 'string' && a.split(',').map(v => positionCodes[v] || v).join()\r\n\t}\r\n\r\n export default {\r\n name: 'w-dialog',\r\n mixins: [View],\r\n props: ['title', 'autoHide', 'context', 'prong', 'independent', 'timeout', 'cover', 'coverProps',\r\n 'position', 'snap', 'indent', 'offsetRange', 'local', 'fullScreen', 'hoverShowDrop', 'visible',\r\n\t\t\t...boundary\r\n ],\r\n emits: ['show', 'close', 'update:visible'],\r\n data() {\r\n return {\r\n isDialog: true,\r\n keepHover: false,\r\n hoverTimer: null,\r\n hoverMove: null,\r\n animateState: null,\r\n isDeactivated: false,\r\n _pos: null,\r\n snapStyle: null\r\n }\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n methods: {\r\n getKey() {\r\n return null\r\n },\r\n getLocalElem() {\r\n let c = this.getCommander()\r\n return c && $.el(c)\r\n },\r\n snapTargetElem() {\r\n let d = this.x.snap\r\n if (typeof d === 'function') {\r\n return d()\r\n } else if (d) {\r\n return d.isWidget ? d.snapElem() : d\r\n } else {\r\n return this.x.local ? this.getLocalElem() : this.defaultSnapTargetElem\r\n }\r\n },\r\n fixSnapStyle() {\r\n let r = this._pos\r\n let s = {}\r\n if (r.type) {\r\n if (r.pix_r) {\r\n s.right = r.right\r\n } else {\r\n s.left = r.left\r\n }\r\n if (r.pix_b) {\r\n s.pix_b = true\r\n s.bottom = r.bottom\r\n } else {\r\n s.top = r.top\r\n }\r\n s.type = r.type\r\n } else {\r\n s = r\r\n }\r\n this.snapStyle = s\r\n },\r\n axis() {\r\n let f = this.x.position || this.defaultSnapPosition\r\n let r = f\r\n if (typeof f === 'string' || !f) {\r\n\t\t\t\t\tlet el = this.el()\r\n\t\t\t\t\tif (!el || this.x.fullScreen) return;\r\n\t\t\t\t\tlet c = this.x.local\r\n\t\t\t\t\tlet g = this.snapTargetElem()\r\n\t\t\t\t\t// 如果有指定 snap,采用 snap 模式\r\n\t\t\t\t\tlet w = el.offsetWidth\r\n\t\t\t\t\tlet h = el.offsetHeight\r\n\t\t\t\t\tlet indent = this.x.indent != null ? this.x.indent : (this.x.prong && -9)\r\n r = $.snap(w, h, g, dialogPosition(f), this._fitpos, indent, c && g)\r\n\t\t\t\t\tif (!this.x.snap) { // 没有设置snap,则默认snap对象是body,加上动画效果\r\n\t\t\t\t\t\tlet lp = $.q(`[w-dialog-position=\"${r.type}\"]:not([id=\"${this.uid}\"]):last`)[0]\r\n\t\t\t\t\t\tif (lp) { // 同一浮动位置出现的对话框,实现排队效果\r\n\t\t\t\t\t\t let lc = $(lp)._pos\r\n\t\t\t\t\t\t\tif (f == 'tl' || f == 'tr' || f == 't') {\r\n\t\t\t\t\t\t\t\tr.top = lc.top + lc.height + 5\r\n\t\t\t\t\t\t\t\tr.bottom = lc.bottom - lc.height - 5\r\n\t\t\t\t\t\t\t} else if (f == 'br' || f == 'bl' || f == 'b') {\r\n\t\t\t\t\t\t\t\tr.top = lc.top - lc.height - 5\r\n\t\t\t\t\t\t\t\tr.bottom = lc.bottom + lc.height + 5\r\n\t\t\t\t\t\t\t} else if (f == 'lb' || f == 'lt' || f == 'l') {\r\n\t\t\t\t\t\t\t\tr.left = lc.left + lc.width + 5\r\n\t\t\t\t\t\t\t\tr.right = lc.right - lc.width - 5\r\n\t\t\t\t\t\t\t} else if (f == 'rb' || f == 'rt' || f == 'r') {\r\n\t\t\t\t\t\t\t\tr.left = lc.left - lc.width - 5\r\n\t\t\t\t\t\t\t\tr.right = lc.right + lc.width + 5\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.animateState = 'animating'\r\n\t\t\t\t\t}\r\n }\r\n this._pos = r\r\n this.fixSnapStyle()\r\n if (typeof this.x.position === 'string' && this.x.snap) {\r\n this.checkOutScreen()\r\n }\r\n },\r\n setPosition(s) {\r\n this.x.position = s\r\n },\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.bottom < 0) {\r\n this.autoSetMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.autoSetMaxHeight(c.height + c.top)\r\n }\r\n },\r\n close() {\r\n if (this.x.visible === false) return\r\n this.closeRelease()\r\n this.trigger('close')\r\n this.ownerView.removePop(this.uid)\r\n this.setVisible(false)\r\n },\r\n closeRelease() {\r\n this.x.autoHide && this.listenHide(F)\r\n let f = this.x.position\r\n if (f && typeof f === 'string' && this.el()) { // 当前窗口关闭后,有相同position的dialog依次移动补空位\r\n\t\t\t\t\tlet lc = this._pos\r\n let ps = $.q(`~[w-dialog-position=\"${lc.type}\"]`, this.el())\r\n ps.each((i, el) => {\r\n\t\t\t\t\t\tconst g = $(el)\r\n const s = g._pos\r\n\t\t\t\t\t\tif (f == 'tl' || f == 'tr' || f == 't') {\r\n\t\t\t\t\t\t\ts.top -= lc.height + 5\r\n\t\t\t\t\t\t\ts.bottom += lc.height + 5\r\n\t\t\t\t\t\t} else if (f == 'br' || f == 'bl' || f == 'b') {\r\n\t\t\t\t\t\t\ts.top += lc.height + 5\r\n\t\t\t\t\t\t\ts.bottom -= lc.height + 5\r\n\t\t\t\t\t\t} else if (f == 'lb' || f == 'lt' || f == 'l') {\r\n\t\t\t\t\t\t\ts.left -= lc.width + 5\r\n\t\t\t\t\t\t\ts.right += lc.width + 5\r\n\t\t\t\t\t\t} else if (f == 'rb' || f == 'rt' || f == 'r') {\r\n\t\t\t\t\t\t\ts.left += lc.width + 5\r\n\t\t\t\t\t\t\ts.right -= lc.width + 5\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tg.fixSnapStyle()\r\n })\r\n }\r\n },\r\n // 绑定鼠标监听 /@a -> 为 false 时解除监听\r\n listenHide(a) {\r\n if (a === F) {\r\n this.setListenHide(a)\r\n } else {\r\n setTimeout(() => {\r\n if (this.x.visible !== false) {\r\n this.setListenHide(a)\r\n }\r\n }, 100) // 延时处理,避免出现后立即消失的情况\r\n }\r\n },\r\n setListenHide(a) {\r\n let d = this.x.hoverShowDrop\r\n let n = a ? 'addEventListener' : 'removeEventListener'\r\n let evs = $.br.mobile ? ['touchend'] : ['mousedown', $.br.firefox ? 'DOMMouseScroll' : 'mousewheel']\r\n evs.forEach(v => document[n](v, this.bind('listenHideClose', (e) => {\r\n let c\r\n if (this.x.visible !== false && (e.target.classList.contains('w-dialog-cover') || !(this.hasBubble(e.target) || (!this.x.independent && ((c = this.getCommander()).isWidget ? c.hasBubble(e.target) : c.contains(e.target)))))) {\r\n if (e.target.id == this.id + 'cvr') e.stopPropagation()\r\n this.close()\r\n }\r\n }), T))\r\n window.plus && plus.key[n]('backbutton', this.bind('close'), F)\r\n if (d) {\r\n let o = d === T ? (this.x.snap ? this.snapTargetElem() : $.el(this.getCommander())) : $.el(d)\r\n let hvOver = this.bind('listenHideHoverOver', e => {\r\n clearTimeout(this.hoverTimer), this.hoverTimer = null\r\n });\r\n let hvMove = this.bind('listenHideHoverMove', e => {\r\n if (!o.contains(e.target) && !this.hasBubble(e.target) && !this.keepHover) {\r\n if (!this.hoverTimer)\r\n this.hoverTimer = setTimeout(() => {this.close(); hvOver() }, 200)\r\n } else\r\n hvOver()\r\n });\r\n [o, this.el()].forEach(v => v && v[n]('mouseenter', hvOver))\r\n document[n]('mousemove', hvMove)\r\n }\r\n },\r\n autoSetMaxHeight(h) {\r\n\t\t\t\tif (this.maxHeight == null) {\r\n\t\t\t\t\tthis.x.maxHeight = h\r\n\t\t\t\t}\r\n },\r\n setVisible(a) {\r\n a = a == null ? true : a\r\n this.x.visible = a\r\n this.$emit('update:visible', a)\r\n if (this.slotTarget) {\r\n if (a) {\r\n this.getTargetElem().setAttribute('w-pop-visible', '')\r\n } else {\r\n this.getTargetElem().removeAttribute('w-pop-visible')\r\n }\r\n }\r\n this.setVisibleSub(a)\r\n },\r\n setVisibleSub(a) {\r\n // implement\r\n },\r\n getTargetElem() {\r\n return !this.$el ? null : this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el\r\n },\r\n getPop() {\r\n return this.ownerView.getPopById(this.uid)\r\n },\r\n getCommander() {\r\n\t\t\t\tif (this.context) return this.context\r\n let o = this.getPop()\r\n if (o) return o.commander\r\n if (this.slotTarget) {\r\n return this.getTargetElem()\r\n }\r\n return this.ownerView\r\n },\r\n resolve(v) {\r\n let o = this.getPop()\r\n o && o.resolve && o.resolve(v)\r\n },\r\n reject(v) {\r\n let o = this.getPop()\r\n o && o.reject && o.reject(v)\r\n },\r\n html_slots_default() {\r\n return null\r\n },\r\n html_slots() {\r\n let prong\r\n let r = this._pos\r\n if (this.x.prong && r) {\r\n let m = r.inner ? (r.mag_b ? 'b' : r.mag_t ? 't' : r.mag_l ? 'l' : 'r') : (r.mag_b ? 't' : r.mag_t ? 'b' : r.mag_l ? 'r' : 'l')\r\n prong = h('div', {\r\n class: 'w-dialog-prong z-' + m,\r\n }, [\r\n h('i', {\r\n class: 'w-dialog-prong-out f-arw f-arw-' + m + '5'\r\n }),\r\n h('i', {\r\n class: 'w-dialog-prong-in f-arw f-arw-' + m + '4'\r\n }),\r\n ])\r\n }\r\n return [prong || [], this.html_scroll_slots(this.html_slots_default()), this.html_pops()]\r\n },\r\n html() {\r\n let to = this.x.local ? this.getLocalElem() : '#w-dfish-pops'\r\n let cover = null\r\n if (this.x.cover && this.x.visible !== false && !this.isDeactivated) {\r\n let coverProps = {\r\n ref: 'cover',\r\n class: 'w-dialog-cover f-abs-full',\r\n ...this.scope_props\r\n }\r\n if (this.x.coverProps) {\r\n coverProps = mergeProps(coverProps, this.x.coverProps)\r\n }\r\n cover = h('div', coverProps)\r\n }\r\n let s = [cover, this.html_self(true)]\r\n let r = to ? h(Teleport, {to}, s) : s\r\n return this.slotTarget ? [r, h(DialogTarget, null, {default: () => [this.slotTarget()]})] : r\r\n }\r\n },\r\n computed: {\r\n commander() {\r\n return this.getCommander()\r\n },\r\n defaultSnapTargetElem() {\r\n //implement\r\n },\r\n defaultSnapPosition() {\r\n return 'cc'\r\n },\r\n slotTarget() {\r\n return this.$slots.target\r\n },\r\n\t\t\tscope_props() { // 手动获取 data-v-xxxxx 数据,因为Teleport会丢失这部分数据\r\n\t\t\t\tlet scopeId = this.$.vnode.scopeId || this.$.parent.vnode.scopeId\r\n\t\t\t\tif (scopeId) {\r\n\t\t\t\t\treturn {[`${scopeId}`]: ''}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\thtml_props() {\r\n\t\t\t\tconst r = this._pos || O\r\n\t\t\t\treturn {\r\n\t\t\t\t\tref: 'dialog',\r\n\t\t\t\t\tclass: 'w-dialog',\r\n\t\t\t\t\t'w-dialog-position': r.type,\r\n\t\t\t\t\t...this.scope_props\r\n\t\t\t\t}\r\n\t\t\t},\r\n html_class() {\r\n\t\t\t\tconst r = this._pos || O\r\n\t\t\t\tconst p = this.x.position\r\n return ['w-vertical', this.html_align_class, this.html_scroll_class, {\r\n 'z-hide': this.isDeactivated || (this.x.visible != null ? !this.x.visible : !!this.slotTarget),\r\n 'z-full': this.x.fullScreen,\r\n ['z-face-' + this.x.face]: this.x.face,\r\n\t\t\t\t ['z-mag-' + (r.mag_t ? 't' : r.mag_l ? 'l' : r.mag_b ? 'b' : 'r')]: r.type,\r\n\t\t\t\t ['z-snap z-snap-' + r.type]: r.type,\r\n\t\t\t\t\t[`w-dialog-animate-${p}`]: positionCodes[p] && typeof p === 'string' && this.animateState != 'animating'\r\n\t\t\t\t}]\r\n },\r\n html_style() {\r\n if (this.x.fullScreen) {\r\n return {\r\n width: '100%',\r\n height: '100%',\r\n top: 0,\r\n left: 0,\r\n }\r\n } else {\r\n let f = this.x.position\r\n let n = this.snapStyle\r\n let s = {}\r\n if (f && typeof f === 'object') {\r\n $.extend(s, f)\r\n if (n) {\r\n if (s.top == null && s.bottom == null) $.extend(s, $.lodash.pick(n, 'top', 'bottom'))\r\n if (s.left == null && s.right == null) $.extend(s, $.lodash.pick(n, 'left', 'right'))\r\n }\r\n } else {\r\n if (n) $.extend(s, n)\r\n }\r\n for (let k in s) {\r\n s[k] = $.unitSize(s[k])\r\n }\r\n\t\t\t\t\tboundary.forEach(k => {\r\n\t\t\t\t\t\tif (this.x[k] != null) s[k] = $.unitSize(this.x[k])\r\n\t\t\t\t\t})\r\n return s\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.x.local) {\r\n $.q(this.getLocalElem()).addClass('f-dialog-local-wrap')\r\n }\r\n this.$nextTick(() => {\r\n\t\t\t\tthis.$watch(() => this.x.position, this.axis)\r\n\t\t\t\tthis.$watch(() => this.x.visible, (vis) => {\r\n if (vis !== false) {\r\n this.x.autoHide && this.listenHide(T)\r\n this.axis()\r\n }\r\n }, {immediate: true})\r\n setTimeout(() => {\r\n this.axis()\r\n this.$nextTick(() => this.trigger('show'))\r\n })\r\n if (this.slotTarget) {\r\n let el = this.getTargetElem()\r\n if (el) {\r\n if (this.hoverShowDrop) {\r\n el.addEventListener('mouseenter', () => this.visible == null && this.setVisible(), false)\r\n } else {\r\n el.addEventListener('click', (e) => {e.stopPropagation(); this.visible == null && this.setVisible()}, false)\r\n }\r\n }\r\n }\r\n const observe = (o) => {\r\n if (this.x.visible === false || this.animateState == 'animating' || !this.el()) return\r\n this.axis()\r\n }\r\n new ResizeObserver(observe).observe(this.el())\r\n if (this.x.timeout) {\r\n setTimeout(this.close, this.x.timeout)\r\n }\r\n })\r\n },\r\n unmounted() {\r\n if (this.x.visible !== false) {\r\n this.closeRelease()\r\n }\r\n }\r\n }\r\n\t\r\n</script>\r\n\r\n<style>\r\n .w-dialog {\r\n display: inline-flex;\r\n position: absolute;\r\n box-shadow: 0px 0px 8px #bbb;\r\n z-index: 100;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-dialog.z-hide {\r\n visibility: hidden;\r\n pointer-events: none;\r\n z-index: -1;\r\n }\r\n\r\n .w-dialog.z-full {\r\n transform: none;\r\n transition: none;\r\n }\r\n\r\n .w-dialog-cover {\r\n background: rgba(0, 0, 0);\r\n opacity: .35;\r\n z-index: 100;\r\n animation: w-dialog-cover-ani 200ms;\r\n }\r\n \r\n @keyframes w-dialog-cover-ani {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: .35;\r\n }\r\n }\r\n\r\n .w-dialog-prong {\r\n position: absolute;\r\n }\r\n\r\n .w-dialog-prong .f-arw {\r\n position: absolute;\r\n margin: 0\r\n }\r\n\r\n .w-dialog-prong.z-b {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n bottom: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-in {\r\n top: 0;\r\n left: 1px;\r\n border-top-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-out {\r\n top: 0;\r\n left: 0;\r\n border-top-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-t {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n top: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-in {\r\n bottom: 0;\r\n left: 1px;\r\n border-bottom-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-out {\r\n bottom: 0;\r\n left: 0;\r\n border-bottom-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-l {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n left: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-in {\r\n right: 0;\r\n top: 1px;\r\n border-right-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-out {\r\n right: 0;\r\n top: 0;\r\n border-right-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-r {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n right: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-in {\r\n left: 0;\r\n top: 1px;\r\n border-left-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-out {\r\n left: 0;\r\n top: 0;\r\n border-left-color: #d5d5d5\r\n }\r\n \r\n .w-dialog-teleport {\r\n display: none;\r\n }\r\n\r\n .w-dialog-animate-br,\r\n .w-dialog-animate-bl,\r\n .w-dialog-animate-b {\r\n transform: translateY(100%);\r\n }\r\n\r\n .w-dialog-animate-tr,\r\n .w-dialog-animate-tl,\r\n .w-dialog-animate-t {\r\n transform: translateY(-100%);\r\n }\r\n\r\n .w-dialog-animate-lt,\r\n .w-dialog-animate-lb,\r\n .w-dialog-animate-l {\r\n transform: translateX(-100%);\r\n }\r\n\r\n .w-dialog-animate-rt,\r\n .w-dialog-animate-rb,\r\n .w-dialog-animate-r {\r\n transform: translateX(100%);\r\n }\r\n \r\n .w-dialog-move-helper {\r\n position: fixed;\r\n background: #fff;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n opacity: 0;\r\n z-index: 101;\r\n }\r\n</style>\r\n","<template>\r\n <w-vertical class=\"w-alert-wrap\">\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-vertical v-dialog-move=\"true\" class=\"w-alert-move\" w-width=\"*\">\r\n <w-html class=\"w-alert-title\" valign=\"middle\" height=\"*\" v-html=\"title\"></w-html>\r\n </w-vertical>\r\n \t<w-html class=\"w-alert-close\" align=\"center\" valign=\"middle\" @click=\"close\">\r\n \t\t<i class=\"w-alert-close-icon f-i f-i-close\"></i>\r\n \t</w-html>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot width=\"*\">\r\n <w-html width=\"*\" class=\"w-alert-text\" v-if=\"escape\">{{text}}</w-html>\r\n <w-html width=\"*\" class=\"w-alert-text\" v-else v-html=\"text\"></w-html>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar v-if=\"showButton!==false\" class=\"w-alert-buttonbar\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\" :ownproperty=\"true\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-vertical>\r\n</template>\r\n\r\n<script setup>\r\n import {computed} from 'vue'\r\n \r\n const {icon} = defineProps(['text', 'escape', 'title', 'icon', 'showButton'])\r\n \r\n const emit = defineEmits(['save', 'close'])\r\n \r\n const icons = {\r\n info: '.f-i .f-i-alert-info',\r\n warning: '.f-i .f-i-alert-warning',\r\n success: '.f-i .f-i-alert-success',\r\n question: '.f-i .f-i-alert-question',\r\n error: '.f-i .f-i-alert-error'\r\n }\r\n \r\n const save = (e) => {\r\n emit('save', e)\r\n }\r\n \r\n const close = (e) => {\r\n emit('close', e)\r\n }\r\n \r\n const typeIcon = computed(() => {\r\n return icons[icon] || icon || icons['info']\r\n })\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n import TemplateAlert from '../template/TemplateAlert.vue'\r\n\r\n export default {\r\n name: 'w-alert',\r\n mixins: [Dialog],\r\n props: ['text', 'title', 'escape', 'yes', 'no', 'showButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n title: $.loc.opertip\r\n }\r\n },\r\n async onSave(e) {\r\n let r\r\n if (this.x.yes) {\r\n try {\r\n r = await this.x.yes(e)\r\n } catch(e) {\r\n console.error(e)\r\n }\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n async onClose(e) {\r\n let r\r\n if (this.x.no) {\r\n r = await this.x.no(e)\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n html_slots_default() {\r\n return h(\r\n TemplateAlert,\r\n {\r\n text: this.x.text,\r\n title: this.x.title,\r\n icon: this.x.icon,\r\n escape: this.x.escape,\r\n showButton: this.x.showButton,\r\n onSave: this.onSave,\r\n onClose: this.onClose,\r\n },\r\n this.$slots\r\n )\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <w-vertical class=\"w-alert-wrap\">\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-vertical v-dialog-move=\"true\" class=\"w-alert-move\" w-width=\"*\">\r\n <w-html class=\"w-alert-title\" valign=\"middle\" height=\"*\" v-html=\"title\"></w-html>\r\n </w-vertical>\r\n\t\t\t<w-html class=\"w-alert-close\" align=\"center\" valign=\"middle\" @click=\"close\">\r\n\t\t\t\t<i class=\"w-alert-close-icon f-i f-i-close\"></i>\r\n\t\t\t</w-html>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\" valign=\"middle\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot width=\"*\">\r\n <w-html width=\"*\" class=\"w-alert-text\" v-if=\"escape\">{{text}}</w-html>\r\n <w-html width=\"*\" class=\"w-alert-text\" v-else v-html=\"text\"></w-html>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar gap=\"10\" class=\"w-alert-buttonbar\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\" :ownproperty=\"true\"/>\r\n <w-button class=\"w-alert-button\" text=\"取消\" @click=\"close\" :ownproperty=\"true\"/>\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-vertical>\r\n</template>\r\n\r\n<script setup>\r\n import {computed} from 'vue'\r\n \r\n const {icon} = defineProps(['text', 'escape', 'title', 'icon', 'showButton'])\r\n \r\n const emit = defineEmits(['save', 'close'])\r\n \r\n const icons = {\r\n info: '.f-i .f-i-alert-info',\r\n warning: '.f-i .f-i-alert-warning',\r\n success: '.f-i .f-i-alert-success',\r\n question: '.f-i .f-i-alert-question',\r\n error: '.f-i .f-i-alert-error'\r\n }\r\n \r\n const save = (e) => {\r\n emit('save', e)\r\n }\r\n \r\n const close = (e) => {\r\n emit('close', e)\r\n }\r\n \r\n const typeIcon = computed(() => {\r\n return icons[icon] || icon || icons['question']\r\n })\r\n</script>","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n import TemplateConfirm from '../template/TemplateConfirm.vue'\r\n\r\n export default {\r\n name: 'w-confirm',\r\n mixins: [Dialog],\r\n props: ['text', 'title', 'escape', 'yes', 'no', 'showButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n title: $.loc.opertip\r\n }\r\n },\r\n async onSave(e) {\r\n let r\r\n if (this.x.yes) {\r\n try {\r\n r = await this.x.yes(e)\r\n } catch(e) {\r\n console.error(e)\r\n }\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n async onClose(e) {\r\n let r\r\n if (this.x.no) {\r\n r = await this.x.no(e)\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n html_slots_default() {\r\n return h(\r\n TemplateConfirm,\r\n {\r\n text: this.x.text,\r\n title: this.x.title,\r\n icon: this.x.icon,\r\n escape: this.x.escape,\r\n showButton: this.x.showButton,\r\n onSave: this.onSave,\r\n onClose: this.onClose,\r\n },\r\n this.$slots\r\n )\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <div class=\"w-tip-body\">\r\n <slot name=\"text\">\r\n <div class=\"w-tip-text\" v-if=\"escape\">{{text}}</div>\r\n <div class=\"w-tip-text\" v-else v-html=\"text\"></div>\r\n </slot>\r\n </div>\r\n</template>\r\n<script setup>\r\n defineProps(['text', 'escape'])\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n import TemplateTip from '../template/TemplateTip.vue'\r\n \r\n let inst = null\r\n let tipCache = {\r\n time: new Date().getTime()\r\n }\r\n export {tipCache}\r\n \r\n export default {\r\n name: 'w-tip',\r\n mixins: [Dialog],\r\n props: ['face', 'text', 'escape'],\r\n provide() {\r\n return {\r\n provideView: this.provideView\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n prong: true,\r\n autoHide: true,\r\n face: 'normal',\r\n escape: true,\r\n }\r\n },\r\n html_slots_default() {\r\n return h(TemplateTip, {text: this.x.text, escape: this.x.escape}, this.$slots)\r\n }\r\n },\r\n computed: {\r\n slotTarget() {\r\n return this.$slots.default\r\n },\r\n defaultSnapTargetElem() {\r\n const c = this.commander\r\n return c.snapElem ? c.snapElem() : c\r\n },\r\n defaultSnapPosition() {\r\n return '-t,-r,-b,-l,-tl,-tr,-rt,-tb,-bl,-br,-lt,-lb,c'\r\n }\r\n },\r\n mounted() {\r\n tipCache.time = new Date().getTime()\r\n inst && $.close(inst)\r\n inst = this.uid\r\n },\r\n unmounted() {\r\n inst = null\r\n }\r\n }\r\n \r\n</script>\r\n\r\n<style>\r\n .w-tip.w-dialog {\r\n border: 1px solid #2498ff;\r\n background: #f5faff;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip .w-tip-x {\r\n position: absolute;\r\n right: 3px;\r\n top: 3px;\r\n padding: 0 3px;\r\n cursor: pointer\r\n }\r\n\r\n .w-tip .f-i-close {\r\n font-size: 12px;\r\n color: #999\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #2498ff\r\n }\r\n\r\n .w-tip.w-dialog.z-face-warn {\r\n border: 1px solid #f3e041;\r\n background: #faf0cd;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #f3e041\r\n }\r\n\r\n .w-tip-body {\r\n padding: 5px 10px;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-img',\r\n pubParentName: 'w-album',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['src', 'text', 'square', 'imgWidth', 'imgHeight', 'dataUrl', 'vertical', 'disabled'],\r\n data() {\r\n return {\r\n hover: false\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n vertical: true,\r\n }\r\n },\r\n onerror(e) {\r\n if (this.dataUrl) e.target.src = this.dataUrl\r\n },\r\n html_slots() {\r\n let src = this.x.src\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n let svg = src && src.startsWith('#')\r\n let cont = this.$slots.default || (this.x.text ? {\r\n default: () => this.x.text\r\n } : null)\r\n src = src || this.dataUrl\r\n return [\r\n src && h('div', {\r\n class: 'w-img-gut',\r\n }, [font ? h('i', {\r\n class: 'w-img-icon ' + src.replace(/\\./g, '')\r\n }) :\r\n svg ? h('svg', {\r\n class: 'f-svg ' + src.slice(1)\r\n }, h('use', {\r\n 'xlink:href': src,\r\n })) :\r\n h('img', {\r\n ref: 'img',\r\n src: src,\r\n class: 'w-img-icon',\r\n onerror: this.onerror,\r\n }),\r\n this.$slots.cover && h('div', {\r\n class: 'w-img-cover f-abs-full'\r\n }, this.$slots.cover())\r\n ]),\r\n cont && h(Vertical, {\r\n class: 'w-img-description'\r\n }, cont)\r\n ]\r\n }\r\n },\r\n computed: {\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let w = $.unitSize(this.x.imgWidth ? this.x.imgWidth : this.x.width)\r\n let h = $.unitSize(this.x.imgHeight ? this.x.imgHeight : this.x.height)\r\n return {\r\n class: {\r\n 'z-hv': this.hover,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled,\r\n 'z-square': this.x.square,\r\n 'z-canplay': this.x.canPlay,\r\n 'z-vertical': this.x.vertical,\r\n [`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap,\r\n },\r\n style: {\r\n '--w-img-icon-width': w,\r\n '--w-img-icon-height': h,\r\n },\r\n onmouseenter: e => !this.x.disabled && (this.hover = true),\r\n onmouseleave: e => !this.x.disabled && (this.hover = false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-img {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-img.z-vertical {\r\n flex-direction: column;\r\n --w-compat-gap: 7px;\r\n }\r\n\r\n .w-img-gut {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-img-gut img {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--w-img-icon-width, 100%);\r\n height: var(--w-img-icon-height);\r\n }\r\n \r\n .w-img .f-svg {\r\n width: var(--w-img-icon-width, 18px);\r\n height: var(--w-img-icon-height, 18px) ;\r\n }\r\n\r\n .w-img.z-square .w-img-gut {\r\n position: relative;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 0;\r\n padding-bottom: 100%;\r\n }\r\n\r\n .w-img.z-square .w-img-icon {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-img-icon {\r\n display: block;\r\n object-fit: cover;\r\n line-height: 1;\r\n }\r\n\r\n .w-img-cover {}\r\n\r\n .w-img-description {}\r\n\r\n .w-img.z-vertical>.w-img-description {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps, resolveComponent\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Img from './Img.vue'\r\n\timport {menuRelate, closeMenu} from './Menu.vue'\r\n\r\n export default {\r\n pubParentName: 'w-buttonbar',\r\n mixins: [WidgetBase],\r\n props: ['text', 'icon', 'focusIcon', 'dropIcon', 'focusDropIcon', 'arrowIcon', 'face', 'target', 'closable', 'dropToggle', 'loading', 'disabled', 'vertical', 'hoverShowDrop', 'dropProps', 'showArrowIcon'],\r\n inject: ['providePubParent', 'provideMenu_w'],\r\n emits: ['click:close', 'dropClose'],\r\n data() {\r\n return {\r\n dropper: null,\r\n showDrop: false,\r\n mouses: {\r\n onmouseenter: e => {\r\n\t\t\t\t\t\tif (!this.showDrop) {\r\n\t\t\t\t\t\t\tif (this.pubParent && menuRelate(this.pubParent) && !menuRelate(this)) closeMenu()\r\n\t\t\t\t\t\t\tif(this.x.hoverShowDrop) {\r\n\t\t\t\t\t\t\t\tthis.drop()\r\n\t\t\t\t\t\t\t\tthis.$nextTick(() => e.currentTarget.classList.add('z-hv'))\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\te.currentTarget.classList.add('z-hv')\r\n\t\t\t\t\t},\r\n onmouseleave: e => e.currentTarget.classList.remove('z-hv'),\r\n onmousedown: e => e.currentTarget.classList.add('z-down'),\r\n onmouseup: e => e.currentTarget.classList.remove('z-down'),\r\n }\r\n }\r\n },\r\n watch: {\r\n disabled(a) {\r\n a && $.q('.z-hv', this.el()).removeClass('z-hv')\r\n }\r\n },\r\n methods: {\r\n ajaxLock(a) {\r\n a = a == null ? true : a\r\n this.x.loading = a\r\n },\r\n drop() {\r\n\t\t\t\tif (this.hasChild) {\r\n\t\t\t\t\tthis.showDrop = true\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcloseMenu()\r\n\t\t\t\t}\r\n },\r\n isShowDrop() {\r\n return this.showDrop\r\n },\r\n\t\t\tcloseDrop() {\r\n this.showDrop = false\r\n\t\t\t},\r\n onclick(e) {\r\n if (this.isMore) {\r\n if (this.showDrop && this.x.dropToggle) {\r\n this.closeDrop()\r\n } else {\r\n this.drop()\r\n }\r\n }\r\n\t\t\t\tif (this.pubParent)\r\n\t\t\t\t\tthis.pubParent.$emit('click:item', e)\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n clickDrop(e) {\r\n if (this.isDisabled) return\r\n e.stopPropagation()\r\n this.drop()\r\n },\r\n html_drop() {\r\n if (this.showDrop && this.hasChild) {\r\n\t\t\t\t\tlet dropProps = {\r\n\t\t\t\t\t context: this,\r\n\t\t\t\t\t ownproperty: true,\r\n\t\t\t\t\t minWidth: $.bcr(this.el()).width,\r\n\t\t\t\t\t autoHide: true,\r\n\t\t\t\t\t hoverShowDrop: this.x.hoverShowDrop,\r\n\t\t\t\t\t snap: () => this.el(),\r\n\t\t\t\t\t position: this.pubParent && this.pubParent.x.vertical ? '-rt,-lt' : 'v',\r\n\t\t\t\t\t indent: 1,\r\n\t\t\t\t\t onClose: () => {\r\n\t\t\t\t\t\t\tthis.showDrop = false\r\n\t\t\t\t\t\t\tthis.$emit('dropClose')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.x.dropProps) dropProps = mergeProps(dropProps, this.x.dropProps)\r\n\t\t\t\t\treturn h(resolveComponent('w-menu'), dropProps, this.$slots)\r\n\t\t\t\t} else\r\n\t\t\t\t\treturn []\r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n if (this.x.loading) {\r\n r.push(h('div', {\r\n class: 'w-button-loading f-abs-full f-flex-center'\r\n }, h(Img, {\r\n src: '#f-svg-loading'\r\n })))\r\n }\r\n if (this.x.icon) {\r\n let icon = this.x.focusDropIcon && this.isCurrent && this.showDrop ? this.x.focusDropIcon :\r\n this.x.focusIcon && this.isCurrent ? this.x.focusIcon :\r\n this.x.dropIcon && this.showDrop ? this.x.dropIcon :\r\n this.x.icon\r\n r.push(this.html_icon(icon, 'w-button-icon f-flex-center' + (this.x.vertical ? '' : ' f-height')))\r\n }\r\n if (t) {\r\n\t\t\t\t\tconst title = this.pubParent && this.pubParent.x.flexSize && t\r\n r.push(h('div', {\r\n class: 'w-button-text'\r\n }, h('span', {class: 'w-button-text-line f-line-1', title}, t)))\r\n }\r\n if (this.isMore && this.x.showArrowIcon) {\r\n r.push(h(Img, {\r\n class: 'w-button-more f-flex-center f-height',\r\n src: this.x.arrowIcon || '.f-i .f-i-caret-down'\r\n }))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-button-close f-flex-center'\r\n }, h('i', {\r\n class: 'w-button-close-icon f-i f-i-close',\r\n onclick: this.clickClose,\r\n })))\r\n }\r\n return [\r\n h('div', {\r\n class: 'w-button-main f-oh f-height',\r\n ...(this.isCombo && !this.isDisabled && this.mouses),\r\n }, r),\r\n this.isCombo && h(Img, {\r\n class: 'w-button-drop f-flex-center f-height',\r\n src: '.f-i .f-i-caret-down',\r\n ...(!this.isDisabled && this.mouses),\r\n onclick: this.clickDrop\r\n }),\r\n\t\t\t\t\tthis.html_drop()\r\n ]\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'button'\r\n },\r\n hasChild() {\r\n const c = this.slots_children()\r\n return c && c.length\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n isMore() {\r\n return this.hasChild && !this.getOn('click')\r\n },\r\n isCombo() {\r\n return !!(this.hasChild && this.x.showArrowIcon && this.getOn('click'))\r\n },\r\n isDisabled() {\r\n return !!this.x.disabled || !!this.x.loading\r\n },\r\n html_props() {\r\n return {\r\n disabled: this.isDisabled,\r\n class: {\r\n [`z-face-${this.x.face}`]: this.x.face,\r\n 'z-combo': this.isCombo,\r\n 'z-more': this.isMore,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': !!this.x.disabled,\r\n 'z-loading': !!this.x.loading,\r\n 'z-vertical': !!this.x.vertical,\r\n 'z-closable': !!this.x.closable,\r\n\t\t\t\t\t\t'z-drop': this.showDrop\r\n },\r\n onclick: this.onclick,\r\n ...(!this.isCombo && !this.isDisabled && this.mouses),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps, resolveComponent\r\n } from 'vue'\r\n import ButtonAbs from './ButtonAbs.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-menubutton',\r\n mixins: [ButtonAbs],\r\n methods: {\r\n\t\t\tajax(...args) {\r\n\t\t\t return this.parentMenu.rootCommander.ajax(...args)\r\n\t\t\t},\r\n\t\t\tsubmit(...args) {\r\n\t\t\t return this.parentMenu.rootCommander.submit(...args)\r\n\t\t\t},\r\n drop() {\r\n if (this.showDrop) return\r\n this.closeSub()\r\n this.showDrop = true\r\n this.parentMenu.currentMenuButton = this\r\n },\r\n onclick(e) {\r\n if (this.isMore) return\r\n //this.trigger(e)\r\n setTimeout(() => this.parentMenu.root.close(), 10)\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && e.currentTarget.classList.add('z-hv')\r\n if (this.isMore) {\r\n this.drop()\r\n } else {\r\n this.closeSub()\r\n }\r\n },\r\n closeSub() {\r\n if (this.parentMenu.currentMenuButton) {\r\n this.parentMenu.currentMenuButton.showDrop = false\r\n this.parentMenu.currentMenuButton = null\r\n }\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n let src = this.x.icon\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n r.push(!src || font ? h('i', {\r\n class: 'w-menubutton-icon f-flex-center f-height ' + (src ? src.replace(/\\./g, '') : '')\r\n }) : h('img', {\r\n src: src,\r\n class: 'w-menubutton-icon f-flex-center f-height'\r\n }))\r\n\r\n if (t) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-text f-line-1'\r\n }, t))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-close'\r\n }, h('i', {\r\n class: 'w-menubutton-close-icon f-i f-i-close',\r\n onclick: this.clickClose\r\n })))\r\n }\r\n r.push(h(Img, {\r\n class: 'w-menubutton-drop f-flex-center f-height',\r\n src: this.isMore ? (this.x.arrowIcon || '.f-i .f-i-caret-right') : ''\r\n }))\r\n if (this.showDrop) {\r\n\t\t\t\t\tlet dropProps = {\r\n autoHide: true,\r\n context: this,\r\n ownproperty: true,\r\n snap: () => this.el(),\r\n position: '21,12',\r\n indent: {top: 1, bottom: 1},\r\n onClose: () => this.showDrop = null\r\n }\r\n\t\t\t\t\tif (this.x.dropProps) dropProps = mergeProps(dropProps, this.x.dropProps)\r\n r.push(h(resolveComponent('w-menu'), dropProps, this.$slots))\r\n }\r\n return r\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'button'\r\n },\r\n isMore() {\r\n return !!this.hasChild\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n ownerView() { // 因为业务会调用 $.vm(event), 所以返回commander的view\r\n const cmd = this.parentMenu.rootCommander\r\n return cmd ? cmd.ownerView : this.parentMenu.root.provideView\r\n },\r\n html_props() {\r\n return {\r\n disabled: !!this.x.disabled,\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': !!this.x.disabled,\r\n 'z-drop': this.showDrop,\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: !this.x.disabled && (e => e.currentTarget.classList.remove('z-hv')),\r\n onclick: this.onclick\r\n }\r\n }\r\n },\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menubutton {\r\n display: inline-flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n margin: 0;\r\n height: 32px;\r\n background: #fff;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-menubutton .f-i {\r\n color: #999;\r\n }\r\n\r\n .w-menubutton-icon {\r\n width: 30px;\r\n }\r\n\r\n .w-menubutton-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n }\r\n\r\n .w-menubutton-drop {\r\n width: 30px;\r\n margin-left: 5px;\r\n }\r\n\r\n .w-menubutton>.w-menubutton-close {\r\n margin-right: -5px;\r\n flex-shrink: 0;\r\n color: #aaa;\r\n }\r\n\r\n .w-menubutton-close-icon:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-menubutton.z-hv,\r\n .w-menubutton.z-drop {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-menubutton.z-ds {\r\n background-color: #eee;\r\n color: #b9b9b9;\r\n cursor: default;\r\n }\r\n\r\n .w-menubutton.z-ds .w-menubutton-icon {\r\n color: #bbb;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import ButtonAbs from './ButtonAbs.vue'\r\n import MenuButton from './MenuButton.vue'\r\n\r\n export default {\r\n name: 'w-button',\r\n mixins: [ButtonAbs],\r\n props: ['autoMenuButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n showArrowIcon: true,\r\n autoMenuButton: true,\r\n }\r\n },\r\n },\r\n render() {\r\n if (this.provideMenu_w && this.x.autoMenuButton) {\r\n return h(MenuButton, this.$props, this.$slots)\r\n } else {\r\n return this.html()\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h, resolveComponent} from 'vue'\r\n\r\n import Dialog from './Dialog.vue'\r\n import Button from './Button.vue'\r\n import MenuButton from './MenuButton.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n let inst = null\r\n\t\r\n\texport function closeMenu() {\r\n\t\tif (inst) {\r\n\t\t\t$.close(inst)\r\n\t\t\tinst = null\r\n\t\t}\r\n\t}\r\n\t\r\n\texport function menuRelate(ctx) {\r\n\t\treturn inst && (ctx.hasBubble(inst.context) || inst.hasBubble(ctx))\r\n\t}\r\n\r\n export default {\r\n name: 'w-menu',\r\n mixins: [Dialog],\r\n provide() {\r\n return {\r\n provideMenu_w: this\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n autoHide: true,\r\n independent: false,\r\n }\r\n },\r\n hasBubble(a, b) {\r\n if (this.contains(a, b)) return true\r\n let p = $(a).closest('w-menu,w-menubutton')\r\n if (p && (p = p.parentMenu) && p.rootCommander == this.rootCommander) return true\r\n },\r\n arrow(a) {\r\n let b = this.$refs.bbr.el()\r\n let c = $.bcr(b)\r\n b.scrollTop += c.height * a\r\n },\r\n mousewheel(e) {\r\n this.arrow(e.deltaY < 0 ? 1 : -1)\r\n },\r\n getRoot() {\r\n let c = this\r\n while (c.getCommander() && c.getCommander().isWidget && c.getCommander().$options.name === 'w-menubutton') c = c.getCommander().parentMenu\r\n return c\r\n },\r\n // implement\r\n setVisibleSub(a) {\r\n if (a === false && this.currentMenuButton) {\r\n this.currentMenuButton.showDrop = false\r\n // this.subMenu.setVisibleSub(a)\r\n }\r\n },\r\n // implement\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.mag_l || c.mag_r) {\r\n if (c.bottom < 0) {\r\n c.top += c.bottom\r\n if (c.top < 0) {\r\n this.autoSetMaxHeight(c.height + c.top)\r\n c.top = 0\r\n }\r\n this.fixSnapStyle()\r\n } else if (c.top < 0) {\r\n c.bottom += c.top\r\n if (c.bottom < 0) {\r\n this.autoSetMaxHeight(c.height + c.bottom)\r\n c.bottom = 0\r\n }\r\n this.fixSnapStyle()\r\n }\r\n } else {\r\n if (c.bottom < 0) {\r\n this.autoSetMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.autoSetMaxHeight(c.height + c.top)\r\n }\r\n }\r\n },\r\n html_buttons() {\r\n return this.slots_children()\r\n },\r\n html_slots() {\r\n return [\r\n this.x.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-up'\r\n })),\r\n h(Vertical, {\r\n class: 'w-menu-bbr',\r\n height: '*',\r\n ref: 'bbr',\r\n onwheel: this.mousewheel\r\n }, this.$slots),\r\n this.x.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-down'\r\n })),\r\n ]\r\n }\r\n },\r\n computed: {\r\n root() {\r\n return this.getRoot()\r\n },\r\n rootCommander() {\r\n return this.root.commander\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n\t\t\tdefaultSnapTargetElem() {\r\n let c = this.getCommander()\r\n if (c)\r\n return c.isWidget ? c.snapElem() : c\r\n\t\t\t},\r\n\t\t\tdefaultSnapPosition() {\r\n\t\t\t return '-bl,-br,-tl,-tr'\r\n\t\t\t},\r\n\t\t\tscope_props() { // implement Dialog.scope_props\r\n if (this.rootCommander) {\r\n const cmd = $(this.rootCommander)\r\n let scopeId = cmd.$.vnode.scopeId || this.$.vnode.scopeId || this.$.parent.vnode.scopeId\r\n if (scopeId) {\r\n \treturn {[`${scopeId}`]: ''}\r\n }\r\n }\r\n\t\t\t}\r\n },\r\n mounted() {\r\n if (!this.context || (this.context.$options && this.context.$options.name !== 'w-menubutton')) {\r\n if (inst && inst.context !== this.context) {\r\n $.close(inst)\r\n }\r\n inst = this\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menu {\r\n box-shadow: none;\r\n border: 1px solid #ccc;\r\n background: #fff;\r\n }\r\n\r\n .w-menu .w-split {\r\n height: 1px;\r\n background: #ddd;\r\n margin: 2px 0;\r\n }\r\n\r\n .w-menu-arr {\r\n height: 18px;\r\n line-height: 1;\r\n text-align: center;\r\n cursor: pointer;\r\n }\r\n\r\n .w-menu-arr:hover {\r\n background: #f5f5f5;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Dialog from './Dialog.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-loading',\r\n mixins: [Dialog],\r\n props: ['text', 'icon'],\r\n methods: {\r\n x_default() {\r\n return {\r\n //local: true,\r\n }\r\n },\r\n html_slots() {\r\n return h(Img, {\r\n src: this.x.icon !== undefined ? this.x.icon : '#f-svg-loading',\r\n text: this.x.text !== undefined ? this.x.text : $.loc.loading\r\n })\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-dialog'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-loading {\r\n padding: 10px;\r\n border-radius: 10px;\r\n background: rgba(0, 0, 0, .6);\r\n color: #fff;\r\n box-shadow: none;\r\n }\r\n\r\n .w-loading .f-svg {\r\n width: 30px;\r\n height: 30px;\r\n fill: #fff;\r\n }\r\n .w-loading .f-svg>use {\r\n stroke: #fff;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n h\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-table',\r\n mixins: [WidgetBase],\r\n props: ['face', 'scroll-x', 'scroll-y'],\r\n provide() {\r\n return {\r\n _provideTable: this,\r\n provideLevel: -1,\r\n provideParentTR: null,\r\n }\r\n },\r\n data() {\r\n return {\r\n sticky: {left: null, right: null, observers: []},\r\n }\r\n },\r\n mounted() {\r\n this.$watch('hasSticky', (v) => {\r\n this.$nextTick(() => this.observeSticky())\r\n }, {immediate: true})\r\n this.$el.setAttribute('w-scroll-x', 'left')\r\n if ($.br.chrome && $.br.chrome <= 60) { //低版本谷歌表格宽度有变化时,sticky的td内容会不可见。因此执行一个强制重新渲染的步骤\r\n new ResizeObserver(() => {\r\n this.$el.setAttribute('w-compact-resize-sticky', '')\r\n requestAnimationFrame(() => this.$el.removeAttribute('w-compact-resize-sticky'))\r\n }).observe(this.$el)\r\n }\r\n },\r\n methods: {\r\n observeSticky() {\r\n const observe = (e) => this.initFixedCells('left').concat(this.initFixedCells('right'))\r\n for (let ob of this.sticky.observers) {\r\n ob.disconnect()\r\n }\r\n let observers = []\r\n $.lodash.each(observe(), cell => {\r\n let ob = new ResizeObserver(observe)\r\n ob.observe(cell)\r\n observers.push(ob)\r\n })\r\n this.sticky.observers = observers\r\n },\r\n initFixedCells(dir) {\r\n let sticky = null\r\n let offset = 0\r\n let fixedCells = $.lodash.map(this.$el.querySelector(`thead`).querySelectorAll(`td[w-fixed=\"${dir}\"]`))\r\n if (dir === 'right') fixedCells.reverse()\r\n fixedCells.forEach(td => {\r\n (sticky || (sticky = [])).push({colIndex: td.cellIndex, offset})\r\n offset += td.offsetWidth\r\n })\r\n this.sticky[dir] = sticky\r\n return fixedCells\r\n },\r\n html_slots() {\r\n return [\r\n this.slotHooks.thead, this.slotHooks.tbody, this.slotHooks.hiddens || [],\r\n ]\r\n },\r\n },\r\n computed: {\r\n slotHooks() {\r\n const a = {}\r\n this.slots_children().forEach(o => {\r\n let n = o.type.name && o.type.name.slice(2)\r\n if (n) {\r\n if (n === 'hidden') {\r\n (a.hiddens || (a.hiddens = [])).push(o)\r\n } else\r\n a[n] = o\r\n }\r\n })\r\n return a\r\n },\r\n colgroup() {\r\n return $.slotsChildren(this.slotHooks.columns.children).map(v => v.props)\r\n },\r\n hasSticky() {\r\n let s = ''\r\n for (let col of this.colgroup) {\r\n if (col.fixed) s += col.fixed\r\n }\r\n return s\r\n },\r\n html_class() {\r\n return ['f-flex-column', this.x.face && 'z-face-' + this.x.face]\r\n },\r\n html_style() {\r\n let r = {}\r\n if (this.sticky.left) {\r\n this.sticky.left.forEach(v => r[`--w-td-fixed-left-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n if (this.sticky.right) {\r\n this.sticky.right.forEach(v => r[`--w-td-fixed-right-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n return r\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-table {\r\n position: relative;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n }\r\n\r\n .w-table-tbl {\r\n table-layout: fixed;\r\n border-collapse: separate;\r\n width: 100%;\r\n }\r\n\r\n .w-thead {\r\n overflow: hidden;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-tr {\r\n height: 40px;\r\n }\r\n\r\n .w-td,\r\n .w-th {\r\n background: #fff;\r\n }\r\n\r\n .w-thead .w-td,\r\n .w-th {\r\n background: var(--w-thead-background-color);\r\n }\r\n\r\n .w-tbody .w-td {\r\n border-bottom: 1px solid var(--w-td-border-color);\r\n }\r\n\r\n .w-tr.z-on .w-td {\r\n background: var(--w--vice-color);\r\n }\r\n\r\n .w-th {\r\n font-weight: normal;\r\n }\r\n\r\n .w-th.z-sortable {\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort {\r\n height: 28px;\r\n line-height: 1;\r\n color: #aaa;\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort-up:before {\r\n position: relative;\r\n top: 1px;\r\n }\r\n\r\n .w-th-sort-down:before {\r\n position: relative;\r\n top: -4px;\r\n }\r\n\r\n .w-th.z-asc .w-th-sort-up {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-th.z-desc .w-th-sort-down {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-td {\r\n padding: 5px;\r\n }\r\n\r\n .w-td.z-align-left {\r\n text-align: left;\r\n }\r\n\r\n .w-td.z-align-center {\r\n text-align: center;\r\n }\r\n\r\n .w-td.z-align-right {\r\n text-align: right;\r\n }\r\n\r\n .w-td.z-valign-top {\r\n vertical-align: top;\r\n }\r\n\r\n .w-td.z-valign-middle {\r\n vertical-align: middle;\r\n }\r\n\r\n .w-td.z-valign-bottom {\r\n vertical-align: bottom;\r\n }\r\n\r\n .w-td>.w-triplebox>.w-formbase-main>.w-input,\r\n .w-td>.w-radio>.w-formbase-main>.w-input {\r\n min-height: auto;\r\n }\r\n\r\n .w-table.z-face-cell {\r\n border: 1px solid var(--w-table-border-color);\r\n }\r\n\r\n .w-table.z-face-cell .w-td {\r\n border: 0 solid var(--w-td-border-color, var(--w-table-border-color));\r\n border-right-width: 1px;\r\n border-bottom-width: 1px;\r\n }\r\n\r\n .w-table.z-face-cell .w-td-lastborder {\r\n border-right: 0;\r\n }\r\n\r\n .w-table.z-face-cell .w-tbody {\r\n margin-bottom: -1px;\r\n }\r\n\r\n .w-td-fixed-left,\r\n .w-td-fixed-right {\r\n position: sticky;\r\n z-index: 1;\r\n }\r\n\r\n .w-td-fixed-left-last:after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-td-fixed-right-first:after {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(-100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-left-last:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=right] .w-td-fixed-left-last:after {\r\n box-shadow: inset 10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=left] .w-td-fixed-right-first:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-right-first:after {\r\n box-shadow: inset -10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-compact-resize-sticky] .w-td-fixed-left,\r\n .w-table[w-compact-resize-sticky] .w-td-fixed-right {\r\n position: static;\r\n }\r\n \r\n</style>\r\n","<script>\r\n export default {\r\n name: 'w-columns'\r\n }\r\n</script>\r\n\r\n","<script>\r\n export default {\r\n name: 'w-column',\r\n props: ['width', 'minWidth'],\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['pub', 'current'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n methods: {\r\n inCurrent(target) {\r\n let c = this.x.current\r\n if (c == null) return\r\n if (Array.isArray(c)) {\r\n return -1 < c.findIndex(v => this.isCurrentChild(v, target))\r\n } else {\r\n return this.isCurrentChild(c, target)\r\n }\r\n },\r\n isCurrentChild(current, target) {\r\n if (typeof current === 'object') {\r\n let d = target.isWidget ? (target.x || target).data : (target.props && target.props.data)\r\n if (d) {\r\n for (let i in current)\r\n if ($.lodash.get(d, i) == current[i]) return true\r\n }\r\n } else if (current == (target.isWidget ? target.getKey() : target.key)) {\r\n return true\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <slot></slot>\n</template>","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import Scroll from './Scroll.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n\r\n export default {\r\n name: 'w-thead',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['br', 'sort'],\r\n inject: ['_provideTable'],\r\n provide() {\r\n return {\r\n provideLeafLevel: -2,\r\n provideParentLeaf: null,\r\n provideInBody: false,\r\n _provideThead: this,\r\n _provideTBody: false,\r\n }\r\n },\r\n data() {\r\n return {\r\n rows: null,\r\n sortUID: null,\r\n }\r\n },\r\n methods: {\r\n isExpanded() {\r\n return true\r\n },\r\n slot_rows() {\r\n if (this.$slots.row) {\r\n let r\r\n let chd = this.x.children\r\n if (Array.isArray(chd)) {\r\n let i = 0\r\n r = chd.map((item, index) => {\r\n let key\r\n const row = this.$slots.row({item, index}).map(t => {\r\n if (!t.props) t.props = {}\r\n t.props.rowIndex = i++\r\n if (!key) key = t.key\r\n return t\r\n })\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => row})\r\n } else {\r\n return row\r\n }\r\n })\r\n }\r\n return r || []\r\n } else {\r\n return this.slots_children().map((vr, vi) => $.lodash.set(vr, 'props.rowIndex', vi))\r\n }\r\n },\r\n html_tbody() {\r\n let cg = this._provideTable.colgroup\r\n let rows = this.slot_rows()\r\n let style = {}\r\n if (!this._provideTable.fixed) {\r\n let mw = 0\r\n cg.forEach(c => {\r\n mw += $.number(c.width) || $.number(c['min-width'])\r\n })\r\n if (mw) {\r\n style.minWidth = $.unitSize(mw)\r\n }\r\n }\r\n this.rows = {}\r\n return h('div', {\r\n class: 'w-table-tbl-wrap'\r\n }, h('table', {\r\n ref: 'table',\r\n cellpadding: 0,\r\n cellspacing: 0,\r\n class: 'w-table-tbl',\r\n style,\r\n }, [\r\n //h('colgroup', null, cg.map(v => h('col', {style: {width: v.width == '*' ? null : $.unitSize(v.width)}}))),\r\n h('thead', null, h('tr', null, cg.map(v => h('td', {\r\n style: {\r\n width: v.width == '*' ? null : $.unitSize(v.width),\r\n minWidth: $.unitSize(v['min-width']),\r\n },\r\n 'w-fixed': v.fixed\r\n })))),\r\n h('tbody', rows)\r\n ]))\r\n },\r\n html_slots() {\r\n return this.html_tbody()\r\n }\r\n },\r\n computed: {\r\n isEscape() {\r\n return this.x.escape\r\n },\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import THead from './TableTHead.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-tbody',\r\n mixins: [THead, Scroll],\r\n inject: ['_provideTable'],\r\n props: ['children'],\r\n provide() {\r\n return {\r\n _provideThead: null,\r\n provideInBody: true,\r\n _provideTBody: this,\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this._provideTable.x, (x) => {\r\n this.x.scrollX = x.scrollX\r\n this.x.scrollY = this._provideTable.fixed ? true : x.scrollY\r\n }, {\r\n immediate: true\r\n })\r\n this.$watch('current', () => this.viewCurrent())\r\n },\r\n methods: {\r\n\t\t\tgetCurrent() {\r\n\t\t\t const tr = $.q('.w-tr.z-on', this.el())[0]\r\n\t\t\t return tr && $(tr)\r\n\t\t\t},\r\n viewCurrent(f) {\r\n this.$nextTick(() => {\r\n f = f || this.getCurrent()\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView())\r\n }\r\n })\r\n },\r\n onScroll(e) {\r\n let hd = this._provideTable.slotHooks.thead\r\n if (hd) {\r\n hd.el.scrollLeft = e.target.scrollLeft\r\n }\r\n },\r\n onScrollPosition(v) {\r\n let el = this._provideTable.el()\r\n if (el && v == 'left' || v == 'center' || v == 'right') {\r\n el.setAttribute('w-scroll-x', v)\r\n }\r\n },\r\n onScrollAttributeChange(e) {\r\n let el = this._provideTable.el()\r\n if (el) {\r\n e.forEach(m => {\r\n let n = m.attributeName\r\n m.target.hasAttribute(n) ? el.setAttribute(n, '') : el.removeAttribute(n)\r\n })\r\n }\r\n },\r\n html_slots() {\r\n return this.html_scroll_slots(this.html_tbody())\r\n }\r\n },\r\n computed: {\r\n inBody() {\r\n return true\r\n },\r\n html_class() {\r\n return ['w-vertical f-flex-1 f-oh', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n\r\n export default {\r\n name: 'w-tr',\r\n pubParentName: 'w-tbody,w-thead',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['rowIndex', 'expanded', 'children'],\r\n inject: ['_provideTable', 'providePubParent', 'provideInBody', '_provideTBody', 'provideLevel', 'provideParentTR'],\r\n provide() {\r\n return {\r\n provideParentTR: this,\r\n provideLevel: this.provideLevel + 1,\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n return $.hasChild(this.$slots, 'rows')\r\n },\r\n isDisplay() {\r\n if (!this.provideParentTR) return true\r\n let p = this\r\n while (p = p.provideParentTR) {\r\n if (!p.isExpanded()) return false\r\n }\r\n return true\r\n },\r\n isExpanded() {\r\n return this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentTR) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n toggle(exp, fn) {\r\n\t\t\t\tconst o = this.el('.w-leaf')\r\n\t\t\t\tlet leaf = o && $(o)\r\n if (leaf) {\r\n leaf.toggle(exp, fn)\r\n } else {\r\n this.setExpanded(exp)\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n html_slots() {\r\n let ri = this.rowIndex\r\n let rs = this.pubParent.rows\r\n let ci = 0\r\n return this.slots_children().map(td => {\r\n if (rs[ri] && rs[ri][ci]) {\r\n ci += rs[ri][ci]\r\n }\r\n td.dfishColIndex = ci\r\n if (td.props) {\r\n if (td.props.rowspan > 1) {\r\n for (let j = 1, r; j < td.props.rowspan; j++) {\r\n r = rs[ri + j] || (rs[ri + j] = {})\r\n r[ci] = $.number(td.props.colspan) || 1\r\n }\r\n }\r\n if (td.props.colspan > 1) ci += td.props.colspan - 1\r\n }\r\n ci++;\r\n return td\r\n })\r\n },\r\n html() {\r\n if (this.x.children && Array.isArray(this.x.children) && this._provideTBody && this._provideTBody.$slots.row) {\r\n return [\r\n this.html_self(true),\r\n this.x.children.map((item, index) => {\r\n let key\r\n const row = this._provideTBody.$slots.row({item, index})\r\n for (let r of row) {\r\n if (!key) {\r\n key = r.key\r\n }\r\n }\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => row})\r\n } else {\r\n return row\r\n }\r\n })\r\n ]\r\n }\r\n return this.$slots.row ? [this.html_self(true), this.$slots.row()] : this.html_self()\r\n },\r\n },\r\n computed: {\r\n tagName() {\r\n return 'tr'\r\n },\r\n level() {\r\n return this.provideLevel + 1\r\n },\r\n isEscape() {\r\n return this.pubParent.x.escape\r\n },\r\n inCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n if (this.provideInBody) {\r\n return {\r\n class: {\r\n 'z-on': this.inCurrent,\r\n 'z-expanded': this.isExpanded(),\r\n 'f-hide': !this.isDisplay()\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: this.onmouseleave\r\n }\r\n }\r\n \r\n }\r\n },\r\n mounted() {\r\n if (this.inCurrent) this.pubParent.viewCurrent(this)\r\n }\r\n\r\n }\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n \r\n export default {\r\n name: 'w-td',\r\n props: ['colspan', 'rowspan', 'align', 'valign', 'data'],\r\n inject: ['_provideTable', 'provideInBody'],\r\n methods: {\r\n td_props() {\r\n let ci = this.$.vnode.dfishColIndex\r\n let col = this._provideTable.colgroup[ci] || false\r\n let len = this._provideTable.colgroup.length\r\n let colspan = this.colspan\r\n if (colspan == -1) {\r\n colspan = len\r\n }\r\n let last = ci + (colspan || 1) == len\r\n return {\r\n class: ['w-td',\r\n last && 'w-td-lastborder',\r\n this.provideInBody && col.class, \r\n col.fixed && {\r\n [`w-td-fixed-${col.fixed}`]: true, \r\n [`w-td-fixed-left-last`]: col.fixed === 'left' && (this._provideTable.colgroup[ci + 1] && this._provideTable.colgroup[ci + 1].fixed != col.fixed),\r\n [`w-td-fixed-right-first`]: col.fixed === 'right' && (this._provideTable.colgroup[ci - 1] && this._provideTable.colgroup[ci - 1].fixed != col.fixed),\r\n }\r\n ],\r\n style: [this.provideInBody && col.style, col.fixed && {[`${col.fixed}`]: `var(--w-td-fixed-${col.fixed}-${ci})`}],\r\n colspan,\r\n rowspan: this.rowspan,\r\n align: this.align || col.align,\r\n valign: this.valign || col.valign,\r\n }\r\n }\r\n },\r\n render() {\r\n return h('td', this.td_props(), this.$slots)\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import TD from './TableTD.vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-th',\r\n mixins: [TD, WidgetBase],\r\n props: ['sortable', 'sortOrders', 'sortOrderDefault'],\r\n inject: ['_provideThead'],\r\n emits: ['click:sort'],\r\n data() {\r\n return {\r\n sortType: null,\r\n sortOrder: null,\r\n }\r\n },\r\n methods: {\r\n onClick(e) {\r\n if (this.x.sortable) {\r\n this.clickSort(e, 'toggle')\r\n }\r\n },\r\n clickSort(e, order) {\r\n e.stopPropagation()\r\n let o = this.sortOrder\r\n if(this._provideThead.sortUID != this.uid) {\r\n o = null\r\n }\r\n let orders = this.x.sortOrders || ['asc', 'desc', null]\r\n if (order === 'toggle') {\r\n let i = orders.indexOf(o)\r\n o = orders[i < 0 || i == 2 ? 0 : i + 1]\r\n } else {\r\n o = o == order ? null : order\r\n }\r\n this.sortOrder = o\r\n this._provideThead.sortUID = this.uid\r\n e.value = o\r\n this.$emit('click:sort', e, o)\r\n },\r\n html_slots() {\r\n return h(Horizontal, {class: 'w-th-wrap', valign: 'middle', align: this.align || this.col.align}, {default: () => [\r\n h('div', {class: 'w-th-title'}, this.$slots),\r\n this.x.sortable ? h('div', {class: 'w-th-sort f-flex-column f-flex-center f-oh'}, [\r\n h('i', {class: 'f-i f-i-caret-up f-oh w-th-sort-up', onClick: e => this.clickSort(e, 'asc')}),\r\n h('i', {class: 'f-i f-i-caret-down f-oh w-th-sort-down', onClick: e => this.clickSort(e, 'desc')}),\r\n ]) : []\r\n ]})\r\n }\r\n },\r\n computed: {\r\n col() {\r\n return this._provideTable.colgroup[this.$.vnode.dfishColIndex] || false\r\n },\r\n tagName() {\r\n return 'th'\r\n },\r\n html_props() {\r\n return mergeProps(this.td_props(), {\r\n class: {'z-sortable': this.x.sortable, [`z-${this.sortOrder}`]: this.sortOrder && this._provideThead.sortUID == this.uid},\r\n onClick: this.onClick,\r\n }) \r\n },\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n mixins: [Vertical],\r\n emits: ['scroll'],\r\n methods: {\r\n onScroll(e) {\r\n this.$emit('scroll', e)\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n","<template>\r\n <w-vertical ref=\"root\" class=\"w-table-v2\">\r\n <w-horizontal class=\"w-table-v2-thead\" :style=\"{height:`${itemHeight}px`}\">\r\n <div :class=\"['w-table-v2-th', {[`z-align-${col.align}`]: col.align}]\" :style=\"tdStyle(col,index)\" v-for=\"(col,index) in columns\" :key=\"index\">\r\n <div class=\"'w-table-v2-th-text f-line-1\">{{col.text}}</div>\r\n </div>\r\n </w-horizontal>\r\n <TreeV2Wrap ref=\"wrap\" height=\"*\" class=\"w-table-v2-tbody\" :scroll-y=\"true\" @scroll=\"onScroll\">\r\n <slot v-if=\"loading\" name=\"loading\">\r\n <div class=\"w-tree-loading w-table-v2-loading\">\r\n <w-img src=\"#f-svg-loading-1\" width=\"28\" height=\"28\"></w-img>\r\n </div>\r\n </slot>\r\n <div v-else class=\"w-table-v2-wrap\" :style=\"wrapStyle\">\r\n <div v-for=\"(item,index) in showList\" :key=\"index\" :class=\"['w-table-v2-tr', itemClass(item, index), {'z-on': isCurrent(item)}]\" :style=\"itemStyle(item)\" @click=\"clickItem($event, item)\">\r\n <div v-for=\"(col,j) in columns\" :key=\"j\" :class=\"['w-table-v2-td', {[`z-align-${col.align}`]: col.align}]\" :style=\"tdStyle(col,j)\">\r\n <div v-if=\"col.type=='leaf'\" :class=\"['w-leaf', {'z-folder': isFolder(item)}]\" :style=\"leafStyle(item)\">\r\n <w-img v-if=\"isItemLoading(item)\" src=\"#f-svg-loading\" class=\"w-leaf-loading\"></w-img>\r\n <div v-else :class=\"['w-leaf-toggle f-i', item.expanded ? 'f-i-caret-down' : 'f-i-caret-right']\" @click=\"clickToggle($event, item)\">\r\n </div>\r\n <w-img v-if=\"itemIcon(item)\" :src=\"itemIcon(item)\" class=\"w-leaf-icon\"></w-img>\r\n <div class=\"w-leaf-text f-line-1\" :title=\"item[col.field]\">{{item[col.field]}}</div>\r\n </div>\r\n <slot v-else :name=\"col.field\" :item=\"item\" :rowIndex=\"index\" :column=\"col\" :colIndex=\"j\">\r\n <div class=\"'w-table-v2-td-text f-line-1\">{{item[col.field]}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </div>\r\n </TreeV2Wrap>\r\n </w-vertical>\r\n\r\n</template>\r\n<script>\r\n export default {\r\n name: 'w-table-v2'\r\n }\r\n</script>\r\n<script setup>\r\n import $ from '../dfish.js'\r\n import { ref, computed, watch, onMounted, nextTick } from 'vue';\r\n import TreeV2Wrap from './TreeV2Wrap.vue';\r\n \r\n const emits = defineEmits(['click:item'])\r\n\r\n const props = defineProps({\r\n alias: {\r\n type: Object,\r\n default() {\r\n return {}\r\n }\r\n },\r\n children: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n current: {\r\n type: [String, Number, Array]\r\n },\r\n itemHeight: {\r\n type: [String, Number],\r\n default: 40\r\n },\r\n src: {\r\n type: Function\r\n },\r\n columns: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n loading: {\r\n type: Boolean\r\n }\r\n })\r\n \r\n let {alias, itemHeight, current} = props\r\n \r\n const propValue = alias.value || 'id'\r\n const propText = alias.text || 'text'\r\n const propChildren = alias.children || 'children'\r\n const propClass = alias.class || 'class'\r\n \r\n const leafSymbol = Symbol('leaf')\r\n const showCount = ref(0)\r\n const scrollTop = ref(0)\r\n const flatList = ref([])\r\n const root = ref()\r\n const wrap = ref()\r\n const flow = ref()\r\n const xLoading = ref(false)\r\n const loading = computed(() => props.loading || xLoading.value)\r\n \r\n const wrapStyle = computed(() => {\r\n return {\r\n height: `${flatList.value.length * itemHeight}px`\r\n }\r\n })\r\n \r\n const tdStyle = (col, index) => {\r\n const s = {}\r\n if (!col.width || col.width == '*') {\r\n s.flex = 1\r\n } else {\r\n s.width = $.unitSize(col.width)\r\n }\r\n if (col.minWidth) s.minWidth = $.unitSize(col.minWidth)\r\n return s\r\n }\r\n \r\n const itemClass = (item) => {\r\n return typeof propClass === 'function' ? propClass(item) : item[propClass]\r\n }\r\n \r\n const itemStyle = (item) => {\r\n return {\r\n height: `${itemHeight}px`,\r\n top: `${item[leafSymbol].showIndex * itemHeight}px`,\r\n }\r\n }\r\n \r\n const leafStyle = (item) => {\r\n return {\r\n paddingLeft: `${item[leafSymbol].level * 16}px`\r\n }\r\n }\r\n \r\n const itemIcon = (item) => {\r\n return isFolder(item) ? (item.expanded ? item.expandedIcon : item.collapsedIcon) : item.icon\r\n }\r\n\r\n const isItemLoading = (item) => {\r\n return item[leafSymbol].loading\r\n }\r\n \r\n const isFolder = (item) => {\r\n return (item[propChildren] && item[propChildren].length) || (item[leafSymbol].src && !item[leafSymbol].loaded)\r\n }\r\n \r\n const isCurrent = (item) => {\r\n return Array.isArray(props.current) ? props.current.includes(item[propValue]) : (props.current === item[propValue])\r\n }\r\n \r\n let autoFocus = true\r\n let autoFocusTimer\r\n const clickItem = (e, item) => {\r\n autoFocus = false\r\n clearTimeout(autoFocusTimer)\r\n autoFocusTimer = setTimeout(() => autoFocus = true, 500)\r\n emits('click:item', e, item)\r\n }\r\n \r\n const clickToggle = (e, item) => {\r\n e.stopPropagation()\r\n toggle(item)\r\n }\r\n \r\n const toggle = async (item, expanded) => {\r\n if (typeof item === 'string') {\r\n item = find(item)\r\n }\r\n if (!item) return\r\n const leaf = item[leafSymbol]\r\n if (leaf.loading) return\r\n item.expanded = expanded != null ? expanded : !item.expanded\r\n if (item.expanded) {\r\n if (item[propChildren]) {\r\n const i = flatList.value.indexOf(item)\r\n const cs = toFlat(item[propChildren], item)\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1)\r\n flatList.value = prev.concat(cs, next)\r\n } else if (leaf.src && !leaf.loaded) {\r\n leaf.loading = true\r\n await leaf.src().catch(() => {})\r\n leaf.loading = false\r\n leaf.loaded = true\r\n toggle(item, item.expanded)\r\n }\r\n } else {\r\n const i = flatList.value.indexOf(item)\r\n const count = desCount(item[propChildren])\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1 + count)\r\n flatList.value = prev.concat(next)\r\n }\r\n }\r\n\r\n const onScroll = (e) => {\r\n if (scrollTop.value !== e.target.scrollTop)\r\n scrollTop.value = e.target.scrollTop\r\n }\r\n\r\n // 树形数据扁平化\r\n const toFlat = (children, parent) => {\r\n let r = []\r\n if (children) {\r\n children.forEach(item => {\r\n r.push(item)\r\n const leaf = item[leafSymbol]\r\n if (!leaf) {\r\n item[leafSymbol] = {level: parent ? parent[leafSymbol].level + 1 : 0, parent, src: props.src && props.src(item)}\r\n }\r\n if (item[propChildren] && item[propChildren].length) {\r\n if (item.expanded) {\r\n r = r.concat(toFlat(item[propChildren], item))\r\n } else if (!leaf) { // 没有leaf的话也要做初始化\r\n toFlat(item[propChildren], item)\r\n }\r\n } else if (item.expanded && item[leafSymbol].src) {\r\n nextTick(() => toggle(item, true))\r\n }\r\n })\r\n }\r\n return r\r\n }\r\n \r\n const desCount = (children) => {\r\n let count = 0\r\n for (let item of children) {\r\n count ++\r\n if (item[propChildren] && item.expanded) {\r\n count += desCount(item[propChildren])\r\n }\r\n } \r\n return count\r\n }\r\n \r\n const find = (id, children) => {\r\n if (!children) children = props.children\r\n for (let item of children) {\r\n if (item[propValue] === id) return item\r\n if (item[propChildren] && item[propChildren].length) {\r\n const r = find(id, item[propChildren])\r\n if (r) return r\r\n }\r\n } \r\n }\r\n \r\n // 展开到指定ID的数据\r\n const expandTo = (id) => {\r\n const item = find(id)\r\n if (item) {\r\n let p = item\r\n let a = p\r\n while (p = p[leafSymbol].parent) {\r\n if (!p.expanded) {\r\n p.expanded = true\r\n a = p\r\n }\r\n }\r\n a && a != item && toggle(a, true)\r\n }\r\n return item\r\n }\r\n \r\n const merge = (newList) => {\r\n if (!Array.isArray(newList)) return []\r\n const oldList = JSON.parse(JSON.stringify(props.children))\r\n mergeChildren(newList, oldList)\r\n props.children.length = 0\r\n props.children.push.apply(props.children, newList)\r\n flatList.value = toFlat(newList)\r\n }\r\n \r\n const mergeChildren = (newList, oldList) => {\r\n for (let n of newList) {\r\n let o = oldList.find(v => v[propValue] === n[propValue])\r\n if (o) {\r\n if (o[propChildren]) {\r\n if (n[propChildren]) mergeChildren(n[propChildren], o[propChildren])\r\n else n[propChildren] = o[propChildren]\r\n }\r\n if (o.expanded != null) {\r\n n.expanded = o.expanded\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 界面可见的数据\r\n const showList = computed(() => {\r\n const topCount = Math.floor(scrollTop.value / itemHeight)\r\n const r = flatList.value.slice(topCount, topCount + showCount.value).map((item, index) => {\r\n item[leafSymbol].showIndex = index + topCount\r\n return item\r\n })\r\n return r\r\n })\r\n \r\n const initShowCount = () => {\r\n flow.value = wrap.value.$refs.wScrollOverflow.getBoundingClientRect()\r\n showCount.value = Math.ceil(flow.value.height / itemHeight) + 1\r\n }\r\n \r\n const focus = async (id) => {\r\n if (!showList.value.find(n => id === n[propValue])) {\r\n expandTo(id)\r\n }\r\n const showIndex = showList.value.findIndex(n => id === n[propValue])\r\n if (showIndex === -1 || showIndex === showList.value.length - 1) {\r\n const item = find(id)\r\n const i = flatList.value.indexOf(item)\r\n if (i > -1) {\r\n await nextTick()\r\n root.value.scrollToY(((i + 1) * itemHeight) - (flow.value.height / 2))\r\n }\r\n }\r\n }\r\n \r\n const watchCurrent = async (val) => {\r\n await nextTick()\r\n current = val\r\n val = val && $.arrayID(val)\r\n if (!val || !val.length) return\r\n for (let v of val) {\r\n if (!showList.value.find(n => v === n[propValue])) {\r\n expandTo(v)\r\n }\r\n }\r\n if (autoFocus) {\r\n focus(val[0])\r\n }\r\n }\r\n \r\n onMounted(async () => {\r\n watch(() => wrap.value.wScrollSizeY, (ssy) => {\r\n initShowCount()\r\n }, {immediate: true})\r\n watch(() => props.children, (children) => {\r\n flatList.value = toFlat(children)\r\n if (current && current == props.current) { // 此判断避免重复聚焦\r\n watchCurrent(props.current)\r\n }\r\n }, {immediate: true})\r\n watch(() => props.current, watchCurrent, {deep: true})\r\n if (!props.children || props.children.length == 0) {\r\n const src = props.src && props.src()\r\n if (src) {\r\n xLoading.value = true\r\n await src().catch(() => {})\r\n xLoading.value = false\r\n }\r\n }\r\n })\r\n \r\n defineExpose({toggle, focus, find, merge})\r\n \r\n</script>\r\n<style>\r\n .w-table-v2-thead {\r\n display: flex;\r\n height: 40px;\r\n }\r\n .w-table-v2-th,\r\n .w-table-v2-td {\r\n display: flex;\r\n align-items: center;\r\n padding: 0 10px;\r\n min-width: 0;\r\n }\r\n .w-table-v2-th {\r\n background: var(--w-thead-background-color);\r\n }\r\n .w-table-v2-wrap {\r\n position: relative;\r\n }\r\n .w-table-v2-tr {\r\n position: absolute;\r\n display: flex;\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 40px;\r\n }\r\n .w-table-v2-td {\r\n border-bottom: 1px solid var(--w-td-border-color);\r\n }\r\n .w-table-v2-th.z-align-center,\r\n .w-table-v2-td.z-align-center {\r\n justify-content: center;\r\n }\r\n .w-table-v2-th.z-align-right,\r\n .w-table-v2-td.z-align-right {\r\n justify-content: flex-end;\r\n }\r\n .w-table-v2-td .w-leaf {\r\n flex: 1;\r\n min-width: 0;\r\n min-height: auto;\r\n }\r\n .w-table-v2-td .w-leaf:hover {\r\n background: transparent;\r\n }\r\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-grid',\r\n mixins: [Scroll],\r\n props: ['columns', 'rows', 'gap', 'defaultColspan', 'face', 'labelWidth'],\r\n methods: {\r\n x_default() {\r\n return {\r\n columns: 12,\r\n gap: 0,\r\n\t\t\t\t\tface: 'normal',\r\n }\r\n },\r\n html_slots() {\r\n return this.x.scrollX || this.x.scrollY ? this.html_scroll_slots() : h('div', {\r\n class: 'w-grid-cont',\r\n style: this.html_scroll_cont_style,\r\n }, this.$slots)\r\n },\r\n },\r\n computed: {\r\n html_props() {\r\n return {\r\n class: [this.x.rows ? 'z-full' : 'z-auto', this.x.face && 'z-face-' + this.x.face, this.html_scroll_class],\r\n\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\t'--important-label-width': $.unitSize(this.x.labelWidth)\r\n\t\t\t\t\t}\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let cols = this.x.columns\r\n if ($.isNumber(cols)) cols = `repeat(${cols}, 1fr)`\r\n let rows = this.x.rows\r\n if ($.isNumber(rows)) rows = `repeat(${rows}, 1fr)`\r\n let dc = this.x.defaultColspan\r\n return {\r\n 'grid-template-columns': cols,\r\n 'grid-template-rows': rows,\r\n 'grid-gap': this.x.gap ? $.unitSize(this.x.gap) : '',\r\n '--w-grid-colspan': (dc == -1 || !dc ? '' : `span ${dc}`),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-grid {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont {\r\n display: grid;\r\n grid-auto-flow: row;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont>*,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont>* {\r\n grid-column: var(--w-grid-colspan, 1 / -1);\r\n grid-row: var(--w-grid-rowspan);\r\n }\r\n\r\n .w-grid.z-full>.w-grid-cont {\r\n height: 100%;\r\n }\r\n\r\n .w-grid.w-scroll.z-auto>.w-scroll-overflow>.w-scroll-cont {\r\n min-height: auto;\r\n }\r\n\r\n .w-grid.z-face-cell {\r\n border-top: 1px solid var(--w-grid-cell-border-color);\r\n border-left: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-formbase {\r\n align-items: stretch;\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n border-bottom: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n \r\n .w-grid.z-face-cell .w-td > .w-formbase {\r\n border-right: 0;\r\n border-bottom: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-label {\r\n background: var(--w-grid-cell-label-background-color);\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-input-border,\r\n .w-grid.z-face-cell .w-input .w-formbase {\r\n border: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload {\r\n align-items: stretch;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload>.w-formbase-main>.w-input {\r\n padding: 10px;\r\n justify-content: center;\r\n }\r\n\r\n .w-grid.z-face-cell .w-imageupload>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-mediaupload>.w-formbase-main>.w-input {\r\n padding: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-form>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-switch>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-radiogroup>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-checkboxgroup>.w-formbase-main>.w-input {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-boxgroup-grid {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-grid.z-face-cell .w-combobox-list {\r\n padding-left: 5px;\r\n }\r\n\t\r\n\t.w-td[align=center] > .w-formbase>.w-formbase-main>.w-input {\r\n\t\tjustify-content: center;\r\n\t}\r\n\t\r\n\t.w-td[align=right] > .w-formbase>.w-formbase-main>.w-input {\r\n\t\tjustify-content: flex-end;\r\n\t}\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-swiper-item',\r\n pubParentName: 'w-swiper',\r\n inject: ['providePubParent'],\r\n mixins: [WidgetBase],\r\n props: ['lazy'],\r\n data() {\r\n return {\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n lazy: true\r\n }\r\n },\r\n html_slots() {\r\n if (this.loaded || !this.lazy) {\r\n return this.$slots\r\n }\r\n if (this.isCurrent) {\r\n this.loaded = true\r\n return this.$slots\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {'z-on': this.isCurrent}\r\n },\r\n isCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-swiper',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['arrow', 'indicatorDots', 'duration'],\r\n data() {\r\n return {\r\n focusIndex: null,\r\n }\r\n },\r\n watch: {\r\n current(v) {\r\n this.setFocus(v)\r\n },\r\n },\r\n methods: {\r\n //@a -> key, index\r\n setFocus(a) {\r\n let s = this.slots_children()\r\n let c = s.findIndex(v => this.isCurrentChild(a, v))\r\n this.focusIndex = c\r\n },\r\n getCurrentItem() {\r\n if (this.el()) {\r\n let dom = $.q('>.w-swiper-cont>.w-swiper-item', this.el())[this.focusIndex]\r\n return dom && $(dom)\r\n }\r\n },\r\n clickArrow(a) {\r\n this.focusIndex += a\r\n },\r\n clickIndicator(a) {\r\n this.focusIndex = a\r\n },\r\n html_slots() {\r\n if (this.focusIndex == null) {\r\n this.setFocus(this.x.current)\r\n }\r\n let v = this.x.vertical\r\n let a = v ? 'up' : 'left'\r\n let b = v ? 'down' : 'right'\r\n return [\r\n h('div', {\r\n class: 'w-swiper-cont',\r\n ref: 'cont',\r\n }, this.$slots),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + a,\r\n onclick: e => this.clickArrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + a\r\n })),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + b,\r\n onclick: e => this.clickArrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + b\r\n })),\r\n this.x.indicatorDots && h('div', {\r\n class: 'w-swiper-indicator f-flex-center',\r\n }, this.slots_children().map((v, i) => h('div', {\r\n class: 'w-swiper-indicator-dot' + (i == this.focusIndex ? ' z-on' : ''),\r\n onclick: e => this.clickIndicator(i)\r\n })))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n let i = this.focusIndex\r\n return {\r\n 'z-at-first': i == 0,\r\n 'z-at-last': i > -1 && i == this.slots_children().length - 1\r\n }\r\n },\r\n html_style() {\r\n let i = this.focusIndex\r\n return {\r\n '--w-swiper-translate-x': (-i * 100) + '%',\r\n '--w-swiper-transition': this.x.duration ? `left ${this.x.duration}ms` : 0,\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.cont) {\r\n new MutationObserver(() => {\r\n this.setFocus(this.x.current)\r\n }).observe(this.$refs.cont, {\r\n childList: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-swiper {\r\n position: relative;\r\n box-sizing: border-box;\r\n display: flex;\r\n }\r\n\r\n .w-swiper-cont {\r\n display: flex;\r\n box-sizing: border-box;\r\n width: 100%;\r\n flex: 1;\r\n overflow: hidden;\r\n }\r\n\r\n .w-swiper-item {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n left: var(--w-swiper-translate-x);\r\n transition: var(--w-swiper-transition);\r\n }\r\n\r\n .w-swiper-item>* {\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-left,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-right,\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-up,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-down {\r\n display: none\r\n }\r\n\r\n .w-swiper-arrow {\r\n position: absolute;\r\n margin: auto;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-arrow.z-left {\r\n width: 40px;\r\n right: auto\r\n }\r\n\r\n .w-swiper-arrow.z-right {\r\n width: 40px;\r\n left: auto\r\n }\r\n\r\n .w-swiper-arrow.z-up {\r\n height: 40px;\r\n bottom: auto\r\n }\r\n\r\n .w-swiper-arrow.z-down {\r\n height: 40px;\r\n top: auto\r\n }\r\n\r\n .w-swiper-arrow .f-i {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 36px;\r\n color: #ccc\r\n }\r\n\r\n .w-swiper-arrow:hover {\r\n background: rgba(0, 0, 0, .1)\r\n }\r\n\r\n .w-swiper-arrow:hover .f-i {\r\n color: #fff\r\n }\r\n\r\n .w-swiper-indicator {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: 10px;\r\n text-align: center\r\n }\r\n\r\n .w-swiper-indicator-dot {\r\n width: 9px;\r\n height: 9px;\r\n margin: 0 4px;\r\n background-color: #bbb;\r\n border-radius: 10px;\r\n vertical-align: middle;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-indicator-dot.z-on {\r\n background-color: #333\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Horizontal from './Horizontal.vue'\r\n import Vertical from './Vertical.vue'\r\n import PubParent from './PubParent.vue'\r\n import Button from './Button.vue'\r\n\r\n export default {\r\n name: 'w-buttonbar',\r\n mixins: [Horizontal, PubParent],\r\n props: ['vertical'],\r\n\t\temits: ['click:item'],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n valign: this.vertical ? null : 'middle'\r\n }\r\n },\r\n html_slots() {\r\n\t\t\t\tlet slots = this.slots_children()\r\n\t\t\t\tlet children = slots.concat()\r\n\t\t\t\tlet split = this.$slots.split\r\n\t\t\t\tif (split) {\r\n\t\t\t\t\tfor (let i = s.length - 1; i > 0; i--) {\r\n\t\t\t\t\t\tchildren.splice(i, 0, split)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n return this.html_scroll_slots(children)\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return this.x.vertical ? 'v' : 'h'\r\n },\r\n html_class() {\r\n return [this.x.vertical ? 'w-vertical' : 'w-horizontal']\r\n },\r\n\t\t}\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n\r\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {h, TransitionGroup} from 'vue'\r\n import Vertical from './Vertical.vue'\r\n import Horizontal from './Horizontal.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n\r\n export default {\r\n name: 'w-tabbar',\r\n mixins: [ButtonBar],\r\n props: ['vertical', 'arrow', 'quickCloseButton', 'flexSize', 'buttons'],\r\n\t\temits: ['click:item', 'click:quickCloseButton'],\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tresizeObserver: 1,\r\n\t\t\t\tisMouseEnter: false,\r\n\t\t\t\trunButtonFlexWidth: null,\r\n\t\t\t\trunArrow: false,\r\n\t\t\t\tisClickCloseLastChild: false,\r\n\t\t\t}\r\n\t\t},\r\n methods: {\r\n\t\t\t// implement\r\n\t\t\tonScrollResize(ob) {\r\n\t\t\t\tthis.resizeObserver++\r\n\t\t\t},\r\n\t\t\tclickArrow(dir) {\r\n\t\t\t\tthis.scrollToX(`left${dir * 240}`, 240)\r\n\t\t\t},\r\n\t\t\tcloseAll(e) {\r\n\t\t\t\tthis.$emit('click:quickCloseButton', 'closeAll')\r\n\t\t\t},\r\n\t\t\tonMouseenter(e) {\r\n\t\t\t\tthis.isMouseEnter = true\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tthis.runButtonFlexWidth = this.buttonFlexWidth\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonMouseleave(e) {\r\n\t\t\t\tif (e && this.hasBubble(e.relatedTarget)) return\r\n\t\t\t\tthis.isMouseEnter = false\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tthis.runButtonFlexWidth = null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeEnter(e) {\r\n\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\tthis.el().setAttribute('w-tabbar-fixed-quickclosebutton', '')\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonAfterEnter(e) {\r\n\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\tthis.el().removeAttribute('w-tabbar-fixed-quickclosebutton')\r\n\t\t\t\t\tthis.resizeObserver++\r\n\t\t\t\t}\r\n const b = $(e)\r\n\t\t\t\tb && b.vis && b.vis()\r\n\t\t\t},\r\n\t\t\tonBeforeLeave(e) {\r\n\t\t\t\tif (!e.nextElementSibling) {\r\n\t\t\t\t\tthis.isClickCloseLastChild = true\r\n\t\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\t\tthis.el().setAttribute('w-tabbar-fixed-quickclosebutton', '')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.isMouseEnter) {\r\n\t\t\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\t\t\tthis.runButtonFlexWidth = null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonAfterLeave(e) {\r\n\t\t\t\tif (this.isClickCloseLastChild) {\r\n\t\t\t\t\tthis.isClickCloseLastChild = false\r\n\t\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\t\tthis.el().removeAttribute('w-tabbar-fixed-quickclosebutton')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.isMouseEnter) {\r\n\t\t\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\t\t\tthis.runButtonFlexWidth = this.buttonFlexWidth\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n html_slots() {\r\n\t\t\t\tlet group = h(TransitionGroup, {name: 'w-tabbar', onBeforeEnter: this.onBeforeEnter, onAfterEnter: this.onAfterEnter, onBeforeLeave: this.onBeforeLeave, onAfterLeave: this.onAfterLeave}, {default: () => this.buttons})\r\n\t\t\t\tlet gut = [h(this.x.vertical ? Vertical : Horizontal, {ref: 'gut', width: '*', class: 'w-tabbar-gut', gap: this.x.gap, align: this.x.align, valign: this.x.valign}, {default: () => group})]\r\n\t\t\t\tif (this.$slots.append) {\r\n gut.push(h('div', {ref: 'append', class: 'w-tabbar-append'}, this.slot('append')))\r\n }\r\n if (this.x.arrow) {\r\n\t\t\t\t\tgut.unshift(h('div', {class: 'w-tabbar-arrow-start', onClick: () => this.clickArrow(-1)}, h('i', {class: 'f-i f-i-caret-left'})))\r\n\t\t\t\t\tgut.push(h('div', {class: 'w-tabbar-arrow-end', onClick: () => this.clickArrow(1)}, h('i', {class: 'f-i f-i-caret-right'})))\r\n\t\t\t\t}\r\n\t\t\t\tif (this.x.quickCloseButton) {\r\n\t\t\t\t\tlet closeAllDisabled = !this.buttons.find(c => c.props.closable)\r\n\t\t\t\t\tif (this.buttons.length) {\r\n\t\t\t\t\t\tgut.push(h(Button, {\r\n\t\t\t\t\t\t\tref: 'quickCloseButton',\r\n\t\t\t\t\t\t\tdata: {isQuickCloseButton: true},\r\n\t\t\t\t\t\t\tshowArrowIcon: false,\r\n\t\t\t\t\t\t\ticon: '.f-i .f-i-close',\r\n\t\t\t\t\t\t\tclass: 'w-tabbar-quickclosebutton',\r\n onClick: this.closeAll,\r\n disabled: closeAllDisabled,\r\n title: '关闭全部标签'\r\n\t\t\t\t\t\t}))\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n return this.html_scroll_slots(gut)\r\n }\r\n },\r\n computed: {\r\n\t\t\t// implement\r\n\t\t\thasScrollX() {\r\n\t\t\t\treturn (this.x.arrow && this.dir === 'h') || this.x.scrollX\r\n\t\t\t},\r\n\t\t\tshowArrow() {\r\n\t\t\t\tif (!this.x.arrow) return\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet cw = this.buttonCalcWidth\r\n\t\t\t\t\treturn cw && cw < this.x.flexSize[0]\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.wScrollPercentX\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tfixQuickCloseButton() {\r\n\t\t\t\tif (!this.x.quickCloseButton) return\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet cw = this.buttonCalcWidth\r\n\t\t\t\t\treturn cw && cw < this.x.flexSize[1]\r\n\t\t\t\t} \r\n\t\t\t},\r\n\t\t\tgutWidth() {\r\n\t\t\t\tconst sp = this.x.arrow && this.wScrollPercentX\r\n\t\t\t\tconst rw = this.resizeObserver\r\n\t\t\t\tif (rw && this.el()) {\r\n\t\t\t\t\tlet w = this.el().clientWidth\r\n\t\t\t\t\tif (sp) {\r\n\t\t\t\t\t\tw -= 40\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.x.quickCloseButton) {\r\n\t\t\t\t\t\tw -= 20\r\n\t\t\t\t\t}\r\n if (this.$refs.append) {\r\n w -= this.$refs.append.offsetWidth\r\n }\r\n\t\t\t\t\treturn w\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbuttonCalcWidth() {\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet w\r\n\t\t\t\t\tlet len = this.buttons.length\r\n\t\t\t\t\tlet vw = this.gutWidth\r\n\t\t\t\t\tif (vw && len) {\r\n\t\t\t\t\t\tw = vw / len\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn w\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbuttonFlexWidth() {\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet nw = this.x.flexSize[0]\r\n\t\t\t\t\tlet mw = this.x.flexSize[1]\r\n\t\t\t\t\tlet w = mw\r\n\t\t\t\t\tif (this.buttonCalcWidth) {\r\n\t\t\t\t\t\tw = $.numRange(this.buttonCalcWidth, nw, mw)\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn w + 1\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\thtml_props_on() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonMouseenter: this.onMouseenter,\r\n\t\t\t\t\tonMouseleave: this.onMouseleave,\r\n\t\t\t\t}\r\n\t\t\t},\r\n html_class() {\r\n return [this.x.vertical ? 'w-vertical' : 'w-horizontal', {\r\n\t\t\t\t\t'z-arrow': this.x.arrow,\r\n\t\t\t\t\t'z-quickclosebutton': this.x.quickCloseButton,\r\n\t\t\t\t\t'z-flexsize': this.x.flexSize,\r\n\t\t\t\t\t'z-show-arrow': this.showArrow\r\n\t\t\t\t}]\r\n },\r\n\t\t\thtml_style() {\r\n\t\t\t\tconst style = {}\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tstyle['--w-tabbar-flex-width'] = `${this.runButtonFlexWidth || this.buttonFlexWidth}px`\r\n\t\t\t\t}\r\n\t\t\t\treturn style\r\n\t\t\t}\r\n },\r\n\t\tmounted() {\r\n\t\t\tif (this.x.flexSize && this.$refs.gut) {\r\n\t\t\t\tnew ResizeObserver(() => this.resizeObserver++).observe(this.$refs.gut.el())\r\n\t\t\t\tlet unwatch = this.$watch(() => this.buttons.length, (len) => {\r\n\t\t\t\t\tif (len) {\r\n\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\tunwatch()\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n const el = this.el()\r\n el && el.setAttribute('w-tabbar-flex-all', '')\r\n }, 150)\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}, {immediate: true})\r\n\t\t\t}\r\n\t\t}\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n\t.w-tabbar {\r\n .w-tabbar-append {\r\n display: flex;\r\n }\r\n\t\t&.z-arrow {\r\n\t\t\t&.z-show-arrow {\r\n\t\t\t\t.w-tabbar-arrow-start,\r\n\t\t\t\t.w-tabbar-arrow-end {\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t}\r\n .w-tabbar-append {\r\n right: 20px;\r\n }\r\n &.z-quickclosebutton {\r\n .w-tabbar-append {\r\n right: 40px;\r\n }\r\n }\r\n\t\t\t}\r\n\t\t\t>.w-scrollbar-x {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t\t&.z-quickclosebutton {\r\n .w-tabbar-append {\r\n \tright: 20px;\r\n }\r\n\t\t\t.w-tabbar-arrow-end {\r\n\t\t\t\tright: 20px;\r\n\t\t\t}\r\n\t\t\t.w-tabbar-quickclosebutton {\r\n\t\t\t\t.w-button-main {\r\n\t\t\t\t\tpadding: 0;\r\n\t\t\t\t\tjustify-content: center;\r\n\t\t\t\t}\r\n\t\t\t}\r\n .w-tabbar-quickclosebutton.z-hv {\r\n background: #f5f5f5;\r\n }\r\n\t\t\t&[w-tabbar-fixed-quickclosebutton] {\r\n\t\t\t\t.w-tabbar-quickclosebutton {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t&.z-flexsize {\r\n\t\t\t&[w-tabbar-flex-all] {\r\n\t\t\t\t.w-tabbar-gut {\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\ttransition: width .15s ease;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t.w-tabbar-gut {\r\n\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\twidth: var(--w-tabbar-flex-width);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t.w-button-main {\r\n\t\t\t\tjustify-content: space-between;\r\n\t\t\t\tpadding-left: 10px;\r\n\t\t\t\t.w-button-close {\r\n\t\t\t\t\tmargin-left: 3px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.w-tabbar-quickclosebutton,\r\n\t.w-tabbar-arrow-start,\r\n\t.w-tabbar-arrow-end {\r\n\t\tposition: sticky;\r\n\t\tdisplay: none;\r\n\t\twidth: 20px;\r\n\t\theight: 100%;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tz-index: 2;\r\n\t\tborder-top: 0;\r\n\t\tbox-sizing: border-box;\r\n\t\tbackground: #fff;\r\n\t\tcolor: #909309;\r\n\t\tcursor: pointer;\r\n\t}\r\n\t\r\n\t.w-tabbar-quickclosebutton {\r\n\t\tdisplay: flex;\r\n\t\tright: 0;\r\n\t\toverflow: hidden;\r\n\t\t.f-i {\r\n\t\t\ttransform: rotate(90deg);\r\n\t\t}\r\n\t}\r\n\t\r\n\t.w-tabbar-arrow-start {\r\n\t\tleft: 0;\r\n\t\tborder-right: 1px solid #ddd;\r\n\t}\r\n\t\r\n\t.w-tabbar-arrow-end {\r\n\t\tright: 0;\r\n\t\tborder-left: 1px solid #ddd;\r\n\t}\r\n\t\r\n\t.w-tabbar-enter-from,\r\n\t.w-tabbar-leave-to {\r\n\t\twidth: 0!important;\r\n\t}\r\n\t\r\n\t.w-tabbar-gut {\r\n\t\twidth: max-content;\r\n\t}\r\n\t\r\n</style>","<script>\r\n import Button from './Button.vue'\r\n export default {\r\n\t\tname: 'w-tabbutton',\r\n pubParentName: 'w-tabbar',\r\n mixins: [Button],\r\n\t\tmethods: {\r\n\t\t\tvis() {\r\n\t\t\t\tlet add = [20, 20]\r\n\t\t\t\tif (this.pubParent.x.quickCloseButton) {\r\n\t\t\t\t\tadd[1] += 20\r\n\t\t\t\t}\r\n\t\t\t\tthis.scrollIntoView({x: `nearest${add}`, y: null})\r\n\t\t\t}\r\n\t\t},\r\n computed: {\r\n html_class() {\r\n return 'w-button'\r\n }\r\n },\r\n\t\tmounted() {\r\n\t\t\tthis.$watch('isCurrent', (v) => v && this.vis(), {immediate: true})\r\n\t\t}\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-tabbutton {\r\n background: #f8f8f8;\r\n\t\t&.z-on {\r\n\t\t background: #fff;\r\n\t\t}\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h, TransitionGroup} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import TabBar from './TabBar.vue'\r\n import TabButton from './TabButton.vue'\r\n import Swiper from './Swiper.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-tabs',\r\n mixins: [WidgetBase],\r\n props: ['current', 'position', 'gap', 'face', 'quickCloseButton', 'flexSize'],\r\n\t\temits: ['click:quickCloseButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n position: 'top',\r\n\t\t\t\t\tface: 'line',\r\n gap: -1\r\n }\r\n },\r\n clickTab(e) {\r\n\t\t\t\tconst tab = $(e)\r\n\t\t\t\tif (!(tab.data && tab.data.isQuickCloseButton)) {\r\n\t\t\t\t\t// this.x.current = tab.getKey()\r\n\t\t\t\t}\r\n },\r\n\t\t\tclickQuickCloseButton(e) {\r\n\t\t\t\tthis.$emit('click:quickCloseButton', e)\r\n\t\t\t},\r\n html_slots() {\r\n let buttons = []\r\n let pages = []\r\n let pos = this.x.position\r\n this.slots_children().forEach((v, i) => {\r\n if (!v.props || v.props.key == null) {\r\n $.lodash.set(v, 'props.key', i)\r\n }\r\n buttons.push(h(TabButton, v.props))\r\n pages.push(h(SwiperItem, {lazy: v.props.lazy == null ? true : v.props.lazy, key: v.props.key}, v.children))\r\n })\r\n return [\r\n h(TabBar, {\r\n\t\t\t\t\t\tref: 'tabBar',\r\n class: 'w-tabs-buttonbar',\r\n current: this.x.current,\r\n gap: this.x.gap,\r\n vertical: pos == 'left' || pos == 'right',\r\n arrow: true,\r\n\t\t\t\t\t\tflexSize: this.x.flexSize,\r\n\t\t\t\t\t\tquickCloseButton: this.x.quickCloseButton,\r\n 'onClick:item': this.clickTab,\r\n 'onClick:quickCloseButton': this.clickQuickCloseButton,\r\n\t\t\t\t\t\tbuttons,\r\n }, this.$slots),\r\n h(Swiper, {class: 'w-tabs-swiper f-flex-1 f-oh', current: this.x.current}, {default: () => pages}),\r\n ]\r\n }\r\n },\r\n computed: {\r\n tabBar() {\r\n return this.$refs.tabBar\r\n },\r\n html_class() {\r\n let pos = this.x.position\r\n return 'f-oh f-flex' + (pos == 'top' || pos == 'bottom' ? '-column' : '') + ' z-pos-' + pos + ' z-face-' + this.x.face\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n\t.w-tabs-buttonbar {\r\n\t\tposition: relative;\r\n\t\t&:after {\r\n\t\t\tcontent: '';\r\n\t\t\tposition: absolute;\r\n\t\t\tbackground: #ddd;\r\n\t\t}\r\n\t}\r\n\t.w-tabbutton {\r\n\t\tborder-radius: 0;\r\n\t\t&.z-on {\r\n\t\t\tposition: relative;\r\n\t\t\tz-index: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.w-tabs {\r\n\t\t&.z-face-line {\r\n\t\t\t&.z-pos-top {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\tborder-bottom: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\tborder-bottom: 2px solid transparent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\t\tborder-bottom: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-quickclosebutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-bottom {\r\n\t\t\t\t>.w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t\tborder-top: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0 15px;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\tborder-top: 2px solid transparent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\t\tborder-top: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-left {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\tborder-right: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\tborder-right: 2px solid transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0 15px;\r\n\t\t\t\t\t\t\tjustify-content: flex-start;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\tborder-right: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-right {\r\n\t\t\t\t> .w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t\tborder-left: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\tborder-left: 2px solid transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0 15px;\r\n\t\t\t\t\t\t\tjustify-content: flex-start;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\t\tborder-left: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\t&.z-face-cell {\r\n\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t background: #f5f5f5;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-top {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\t&:after {\r\n\t\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\t\theight: 1px;\r\n\t\t\t\t\t\tbottom: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-bottom-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-quickclosebutton {\r\n\t\t\t\t\t\tbackground: #f8f8f8;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-bottom {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\t:after {\r\n\t\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\t\theight: 1px;\r\n\t\t\t\t\t\ttop: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-bottom: 0;\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-top-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-left {\r\n\t\t\t\t> .w-tabs-buttonbar {\r\n\t\t\t\t\t&:after {\r\n\t\t\t\t\t\twidth: 1px;\r\n\t\t\t\t\t\theight: 100%;\r\n\t\t\t\t\t\tright: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-right-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-right {\r\n\t\t\t\t> .w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t}\r\n\t\t\t\t> .w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t> .w-tabs-buttonbar {\r\n\t\t\t\t\t&:after {\r\n\t\t\t\t\t\twidth: 1px;\r\n\t\t\t\t\t\theight: 100%;\r\n\t\t\t\t\t\tleft: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-right: 0;\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-left-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n \r\n</style>\r\n","<script>\r\n export default {\r\n name: 'w-tab',\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Horizontal from './Horizontal.vue'\r\n import PubParent from './PubParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-album',\r\n mixins: [Horizontal, PubParent],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n br: true,\r\n valign: 'top',\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-horizontal'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-html',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['line'],\r\n computed: {\r\n html_props() {\r\n let line = this.x.line\r\n return {\r\n class: [\r\n (this.x.align || this.x.valign) && 'w-horizontal',\r\n line != null && 'f-line',\r\n this.html_align_class\r\n ],\r\n style: line != null && {\r\n '-webkit-line-clamp': line\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-html {\r\n box-sizing: border-box;\r\n flex-wrap: wrap;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import Img from './Img.vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n\r\n export default {\r\n name: 'w-tree',\r\n mixins: [Scroll, PubParent, SrcParent],\r\n emits: ['click:item'],\r\n provide() {\r\n return {\r\n provideLevel: -1,\r\n provideParentLeaf: null,\r\n provideParentTR: null,\r\n }\r\n },\r\n methods: {\r\n load() {\r\n return this.request()\r\n },\r\n getCurrent() {\r\n const leaf = $.q('.w-leaf.z-on', this.el())[0]\r\n return leaf && $(leaf)\r\n },\r\n viewCurrent(f) {\r\n this.$nextTick(() => {\r\n f = f || this.getCurrent()\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView())\r\n }\r\n })\r\n },\r\n html_slots() {\r\n let r\r\n if (this.loading) {\r\n const sl = this.slot('loading')\r\n r = sl && sl.length ? sl : h('div', {\r\n class: 'w-tree-loading'\r\n }, h(Img, {src: '#f-svg-loading-1', width: 28, height: 28}))\r\n } else {\r\n let chd = this.x.children\r\n if (this.$slots.default) {\r\n if (Array.isArray(chd)) {\r\n r = chd.map((item, index) => {\r\n let key\r\n const leaf = this.$slots.default({item, index})\r\n for (let f of leaf) {\r\n if (!key) {\r\n key = f.key\r\n }\r\n }\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => leaf})\r\n } else {\r\n return leaf\r\n }\r\n })\r\n } else {\r\n r = []\r\n }\r\n }\r\n }\r\n return this.html_scroll_slots(r)\r\n }\r\n },\r\n computed: {\r\n level() {\r\n return -1\r\n },\r\n html_props() {\r\n return {\r\n class: this.html_scroll_class\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.children || !this.x.children.length) this.request()\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-tree {\r\n text-align: left;\r\n box-sizing: border-box;\r\n }\r\n \r\n .w-tree-loading {\r\n display: flex;\r\n justify-content: center;\r\n padding: 10px 0;\r\n color: #aaa;\r\n }\r\n\r\n</style>\r\n","<template>\r\n <TreeV2Wrap ref=\"root\" class=\"w-tree w-tree-v2\" :scroll-y=\"true\" @scroll=\"onScroll\">\r\n <slot v-if=\"loading\" name=\"loading\">\r\n <div class=\"w-tree-loading w-tree-v2-loading\">\r\n <w-img src=\"#f-svg-loading-1\" width=\"28\" height=\"28\"></w-img>\r\n </div>\r\n </slot>\r\n <div v-else class=\"w-tree-v2-wrap\" :style=\"wrapStyle\">\r\n <div v-for=\"(item,index) in showList\" :key=\"index\" :class=\"['w-leaf w-leaf-v2', itemClass(item, index), {'z-folder': isFolder(item), 'z-on': isCurrent(item), 'z-ds': isDisabled(item, index)}]\" :style=\"itemStyle(item)\" @click=\"clickItem($event, item)\">\r\n <w-img v-if=\"isItemLoading(item)\" src=\"#f-svg-loading\" class=\"w-leaf-loading\"></w-img>\r\n <div v-else :class=\"['w-leaf-toggle f-i', item.expanded ? 'f-i-caret-down' : 'f-i-caret-right']\" @click=\"clickToggle($event, item)\"></div>\r\n <slot name=\"box\" :item=\"item\"></slot>\r\n <w-img v-if=\"itemIcon(item)\" :src=\"itemIcon(item)\" class=\"w-leaf-icon\"></w-img>\r\n <div class=\"w-leaf-text f-line-1\">\r\n <slot name=\"text\" :item=\"item\">\r\n <span :title=\"item[propText]\">{{item[propText]}}</span>\r\n </slot>\r\n </div>\r\n </div>\r\n </div>\r\n </TreeV2Wrap>\r\n</template>\r\n<script>\r\n export default {\r\n name: 'w-tree-v2'\r\n }\r\n</script>\r\n<script setup>\r\n import $ from '../dfish.js'\r\n import { ref, computed, watch, onMounted, nextTick } from 'vue';\r\n import TreeV2Wrap from './TreeV2Wrap.vue';\r\n \r\n const emits = defineEmits(['click:item'])\r\n\r\n const props = defineProps({\r\n alias: {\r\n type: Object,\r\n default() {\r\n return {}\r\n }\r\n },\r\n children: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n current: {\r\n type: [String, Number, Array]\r\n },\r\n itemHeight: {\r\n type: [String, Number],\r\n default: 32\r\n },\r\n src: {\r\n type: Function\r\n },\r\n loading: {\r\n type: Boolean\r\n }\r\n })\r\n \r\n let {alias, itemHeight, current} = props\r\n \r\n const propValue = alias.value || 'id'\r\n const propText = alias.text || 'text'\r\n const propChildren = alias.children || 'children'\r\n const propClass = alias.class || 'class'\r\n const propDisabled = alias.disabled || 'disabled'\r\n \r\n const leafSymbol = Symbol('leaf')\r\n const showCount = ref(0)\r\n const scrollTop = ref(0)\r\n const flatList = ref([])\r\n const root = ref()\r\n const flow = ref()\r\n const xLoading = ref(false)\r\n const loading = computed(() => props.loading || xLoading.value)\r\n \r\n const wrapStyle = computed(() => {\r\n return {\r\n height: `${flatList.value.length * itemHeight}px`\r\n }\r\n })\r\n \r\n const itemClass = (item, index) => {\r\n return typeof propClass === 'function' ? propClass(item, index) : item[propClass]\r\n }\r\n \r\n const itemStyle = (item) => {\r\n return {\r\n height: `${itemHeight}px`,\r\n top: `${item[leafSymbol].showIndex * itemHeight}px`,\r\n paddingLeft: `${item[leafSymbol].level * 16}px`\r\n }\r\n }\r\n \r\n const itemIcon = (item) => {\r\n return isFolder(item) ? (item.expanded ? item.expandedIcon : item.collapsedIcon) : item.icon\r\n }\r\n\r\n const isItemLoading = (item) => {\r\n return item[leafSymbol].loading\r\n }\r\n \r\n const isFolder = (item) => {\r\n return (item[propChildren] && item[propChildren].length) || (item[leafSymbol].src && !item[leafSymbol].loaded)\r\n }\r\n \r\n const isCurrent = (item) => {\r\n return Array.isArray(props.current) ? props.current.includes(item[propValue]) : (props.current === item[propValue])\r\n }\r\n \r\n const isDisabled = (item, index) => {\r\n return typeof propDisabled === 'function' ? propDisabled(item, index) : item[propDisabled]\r\n }\r\n \r\n let autoFocus = true\r\n let autoFocusTimer\r\n const clickItem = (e, item) => {\r\n if (!isDisabled(item)) {\r\n autoFocus = false\r\n clearTimeout(autoFocusTimer)\r\n autoFocusTimer = setTimeout(() => autoFocus = true, 500)\r\n emits('click:item', e, item)\r\n }\r\n }\r\n \r\n const clickToggle = (e, item) => {\r\n e.stopPropagation()\r\n toggle(item)\r\n }\r\n \r\n const toggle = async (item, expanded) => {\r\n if (typeof item === 'string') {\r\n item = find(item)\r\n }\r\n if (!item) return\r\n const leaf = item[leafSymbol]\r\n if (leaf.loading) return\r\n item.expanded = expanded != null ? expanded : !item.expanded\r\n if (item.expanded) {\r\n if (item[propChildren]) {\r\n const i = flatList.value.indexOf(item)\r\n const cs = toFlat(item[propChildren], item)\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1)\r\n flatList.value = prev.concat(cs, next)\r\n } else if (leaf.src && !leaf.loaded) {\r\n leaf.loading = true\r\n await leaf.src().catch(() => {})\r\n leaf.loading = false\r\n leaf.loaded = true\r\n toggle(item, item.expanded)\r\n }\r\n } else {\r\n const i = flatList.value.indexOf(item)\r\n const count = desCount(item[propChildren])\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1 + count)\r\n flatList.value = prev.concat(next)\r\n }\r\n }\r\n\r\n const onScroll = (e) => {\r\n if (scrollTop.value !== e.target.scrollTop)\r\n scrollTop.value = e.target.scrollTop\r\n }\r\n\r\n // 树形数据扁平化\r\n const toFlat = (children, parent) => {\r\n let r = []\r\n if (children) {\r\n children.forEach(item => {\r\n r.push(item)\r\n const leaf = item[leafSymbol]\r\n if (!leaf) {\r\n item[leafSymbol] = {level: parent ? parent[leafSymbol].level + 1 : 0, parent, src: props.src && props.src(item)}\r\n }\r\n if (item[propChildren] && item[propChildren].length) {\r\n if (item.expanded) {\r\n r = r.concat(toFlat(item[propChildren], item))\r\n } else if (!leaf) { // 没有leaf的话也要做初始化\r\n toFlat(item[propChildren], item)\r\n }\r\n } else if (item.expanded && item[leafSymbol].src) {\r\n nextTick(() => toggle(item, true))\r\n }\r\n })\r\n }\r\n return r\r\n }\r\n \r\n const desCount = (children) => {\r\n let count = 0\r\n for (let item of children) {\r\n count ++\r\n if (item[propChildren] && item.expanded) {\r\n count += desCount(item[propChildren])\r\n }\r\n } \r\n return count\r\n }\r\n \r\n const find = (id, children) => {\r\n if (id && id[leafSymbol]) return id\r\n if (!children) children = props.children\r\n for (let item of children) {\r\n if (item[propValue] === id) return item\r\n if (item[propChildren] && item[propChildren].length) {\r\n const r = find(id, item[propChildren])\r\n if (r) return r\r\n }\r\n } \r\n }\r\n \r\n // 展开到指定ID的数据\r\n const expandTo = (id) => {\r\n const item = find(id)\r\n if (item) {\r\n let p = item\r\n let a = p\r\n while (p = p[leafSymbol].parent) {\r\n if (!p.expanded) {\r\n p.expanded = true\r\n a = p\r\n }\r\n }\r\n a && a != item && toggle(a, true)\r\n }\r\n return item\r\n }\r\n \r\n const merge = (newList) => {\r\n if (!Array.isArray(newList)) return []\r\n const oldList = JSON.parse(JSON.stringify(props.children))\r\n mergeChildren(newList, oldList)\r\n props.children.length = 0\r\n props.children.push.apply(props.children, newList)\r\n flatList.value = toFlat(newList)\r\n }\r\n \r\n const mergeChildren = (newList, oldList) => {\r\n for (let n of newList) {\r\n let o = oldList.find(v => v[propValue] === n[propValue])\r\n if (o) {\r\n if (o[propChildren]) {\r\n if (n[propChildren]) mergeChildren(n[propChildren], o[propChildren])\r\n else n[propChildren] = o[propChildren]\r\n }\r\n if (o.expanded != null) {\r\n n.expanded = o.expanded\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 界面可见的数据\r\n const showList = computed(() => {\r\n const topCount = Math.floor(scrollTop.value / itemHeight)\r\n const r = flatList.value.slice(topCount, topCount + showCount.value).map((item, index) => {\r\n item[leafSymbol].showIndex = index + topCount\r\n return item\r\n })\r\n return r\r\n })\r\n \r\n const initShowCount = () => {\r\n flow.value = root.value.$refs.wScrollOverflow.getBoundingClientRect()\r\n showCount.value = Math.ceil(flow.value.height / itemHeight) + 1\r\n }\r\n \r\n const focus = async (id) => {\r\n await nextTick()\r\n if (!showList.value.find(n => id === n[propValue])) {\r\n expandTo(id)\r\n }\r\n const showIndex = showList.value.findIndex(n => id === n[propValue])\r\n if (showIndex === -1 || showIndex === showList.value.length - 1) {\r\n const item = find(id)\r\n const i = flatList.value.indexOf(item)\r\n if (i > -1) {\r\n await nextTick()\r\n root.value.scrollToY(((i + 1) * itemHeight) - (flow.value.height / 2))\r\n }\r\n }\r\n }\r\n \r\n const watchCurrent = async (val) => {\r\n await nextTick()\r\n current = val\r\n val = val && $.arrayID(val)\r\n if (!val || !val.length) return\r\n for (let v of val) {\r\n if (!showList.value.find(n => v === n[propValue])) {\r\n expandTo(v)\r\n }\r\n }\r\n if (autoFocus) {\r\n focus(val[0])\r\n }\r\n }\r\n \r\n onMounted(async () => {\r\n watch(() => root.value.wScrollSizeY, (ssy) => {\r\n initShowCount()\r\n }, {immediate: true})\r\n watch(() => props.children, (children) => {\r\n flatList.value = toFlat(children)\r\n if (current && current == props.current) { // 此判断避免重复聚焦\r\n watchCurrent(props.current)\r\n }\r\n }, {immediate: true})\r\n watch(() => props.current, watchCurrent, {deep: true})\r\n if (!props.children || props.children.length == 0) {\r\n const src = props.src && props.src()\r\n if (src) {\r\n xLoading.value = true\r\n await src().catch(() => {})\r\n xLoading.value = false\r\n }\r\n }\r\n })\r\n \r\n defineExpose({toggle, focus, find, merge})\r\n \r\n</script>\r\n<style>\r\n .w-tree-v2-wrap {\r\n position: relative;\r\n }\r\n .w-leaf-v2 {\r\n display: flex;\r\n align-items: center;\r\n position: absolute;\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 32px;\r\n }\r\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-label',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['text', 'suffix', 'vertical'],\r\n methods: {\r\n html_slots() {\r\n return h('label', {class: 'w-label-text'}, \r\n h('span', this.$slots.default ? this.$slots.default() : this.x.text + (this.x.suffix == null ? '' : this.x.suffix)))\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n this.x.vertical && (this.$parent.labelVertical = true)\r\n return ['f-oh f-br' + (this.x.vertical ? ' z-vertical' : ''), this.html_align_class]\r\n },\r\n html_style() {\r\n return {\r\n width: null,\r\n '--label-width': this.x.width && $.unitSize(this.x.width)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Label from './Label.vue'\r\n import {tipCache} from './Tip.vue'\r\n\r\n const _validate_dft_value = {\r\n required: true,\r\n beforeNow: true,\r\n afterNow: true\r\n }\r\n\r\n\r\n export default {\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['name', 'value', 'modelValue', 'placeholder', 'label', 'readonly', 'readonlyValidate', 'disabled', 'required',\r\n 'validateDefault', 'validateHandler', 'inputWidth', 'inputHeight' ],\r\n emits: ['update:modelValue', 'change', 'blur', 'focus'],\r\n data() {\r\n let mv = this.modelValue\r\n return {\r\n isFormWidget: true,\r\n isFocus: false,\r\n hasBorder: false,\r\n isPlural: false,\r\n isEdit: false,\r\n loading: false,\r\n warnClass: '',\r\n labelVertical: false,\r\n modifiedValue: mv,\r\n defaultValue: mv,\r\n placeholder_type: '',\r\n validIndex: 0,\r\n }\r\n },\r\n watch: {\r\n \tmodelValue(v, ov) {\r\n if (this.isEdit) {\r\n this.isEdit = false\r\n } else {\r\n if (v == null) v = ''\r\n if (ov == null) ov = ''\r\n this.watchModelValue(v, ov)\r\n }\r\n \t}\r\n },\r\n \r\n methods: {\r\n val(v) {\r\n if (arguments.length == 0)\r\n return this.x.modelValue\r\n let ov = this.x.modelValue\r\n this.x.modelValue = v\r\n if (ov == null) {\r\n ov = ''\r\n }\r\n if (v == null) {\r\n v = ''\r\n }\r\n let changed = ov !== v\r\n if (typeof ov === 'object') {\r\n changed = JSON.stringify(ov) != JSON.stringify(v)\r\n }\r\n if (changed) {\r\n this.warnClass && this.warn(false)\r\n if (this.isUsableVal(v)) {\r\n this.isEdit = true\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n }\r\n }\r\n return v\r\n },\r\n formVal() {\r\n return this.input_value\r\n },\r\n isUsableVal(v) { //implement\r\n return true \r\n },\r\n defaultRuleValue(name) {\r\n let r = this.rules[name]\r\n if (r != null) {\r\n if (Array.isArray(r)) {\r\n r = r[0]\r\n }\r\n return r && r.value ? r.value : r\r\n }\r\n },\r\n watchModelValue(v, ov) {\r\n if (ov != v) {\r\n this.trigger('change', v)\r\n }\r\n },\r\n async valid(trigger) {\r\n let error = await this.getValidError(trigger)\r\n if (error) {\r\n this.warn()\r\n this.showErrorTip(error.text)\r\n }\r\n return !error\r\n },\r\n async getValidError(trigger, val) {\r\n let ques = trigger ? this.validTriggers[trigger] : this.validQueues\r\n if (ques && (this.isNormal || (this.isReadonly && this.x.readonlyValidate))) {\r\n let v = val !== undefined ? val : this.isPlural ? this.groupFormVal() : this.formVal()\r\n if (typeof v !== 'string')\r\n v = Array.isArray(v) ? v.join(',') : v == null ? '' : ('' + v);\r\n v = v.trim()\r\n let hs = this.validHooks\r\n for (let q of ques) {\r\n let rv = typeof q.rule !== 'object' ? q.rule : q.rule.value !== undefined ? q.rule.value : q.rule\r\n let e = await hs[q.type](v, rv, q)\r\n if (e) return e\r\n }\r\n }\r\n },\r\n getValidErrorSync(trigger, val) {\r\n let ques = trigger ? this.validTriggers[trigger] : this.validQueues\r\n if (ques && (this.isNormal || (this.isReadonly && this.x.readonlyValidate))) {\r\n let v = val !== undefined ? val : this.isPlural ? this.groupFormVal() : this.formVal()\r\n if (typeof v !== 'string')\r\n v = Array.isArray(v) ? v.join(',') : v == null ? '' : ('' + v);\r\n v = v.trim()\r\n let hs = this.validHooks\r\n for (let q of ques) {\r\n let rv = typeof q.rule !== 'object' ? q.rule : q.rule.value !== undefined ? q.rule.value : q.rule\r\n let e = hs[q.type](v, rv, q)\r\n if (e) return e\r\n }\r\n }\r\n },\r\n formErr(que, arg) {\r\n let label = this.getLabelText()\r\n let type = que.type\r\n let text = que.rule && que.rule.text\r\n if (!text) {\r\n text = $.loc.ps.apply(null, [$.loc.form[type], label || ''].concat(arg != null && arg !== '' ? arg : [])) || ''\r\n }\r\n return {\r\n wid: this.uid,\r\n name: this.x.name,\r\n type,\r\n label,\r\n text,\r\n }\r\n },\r\n warn(a) {\r\n let w = typeof a === 'string' ? a : a !== false ? 'z-err' : ''\r\n this.warnClass = w\r\n if (!w && this._tip) {\r\n\t\t\t\t\tthis._tip.close()\r\n }\r\n },\r\n showErrorTip(text) {\r\n this.scrollIntoView({\r\n ease: 200,\r\n success: () => {\r\n this.pop('w-tip', {\r\n text,\r\n face: 'warn',\r\n independent: true,\r\n snap: this.errorTipTarget,\r\n\t\t\t\t\t\t\tonClose: () => this._tip = null\r\n }, (tip) => {\r\n this._tip = tip\r\n })\r\n }\r\n })\r\n },\r\n focus() {\r\n this.$refs.v.focus()\r\n return this\r\n },\r\n formText() {\r\n let t = this.val()\r\n return t == null ? '' : t\r\n },\r\n getLabelText() {\r\n let t = this.x.label || (this.pubParent && this.pubParent.x.label)\r\n return t ? (t.text || t) : ''\r\n },\r\n onCloseDrop() {\r\n this.showDrop = false\r\n },\r\n mergeDropProps(dropProps) {\r\n if (this.x.dropProps) dropProps = mergeProps(dropProps, this.x.dropProps)\r\n dropProps.onClose = () => {\r\n this.onCloseDrop()\r\n if (this.x.dropProps && this.x.dropProps.onClose) {\r\n this.x.dropProps.onClose()\r\n }\r\n }\r\n return dropProps\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n this.baseValid('change')\r\n },\r\n baseFocus(e) {\r\n this.isFocus = true\r\n this.warn(false)\r\n this.trigger(e)\r\n this.baseValid('focus')\r\n },\r\n baseBlur(e) {\r\n if (!this.isFocusTarget(e.relatedTarget)) this.isFocus = false\r\n this.trigger(e)\r\n this.baseValid('blur')\r\n },\r\n baseValid(trigger) {\r\n if (this.validTriggers[trigger]) {\r\n clearTimeout(this._baseValidTimer)\r\n this._baseValidTimer = setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) {\r\n let time = new Date().getTime()\r\n if (time - tipCache.time > 100) this.valid(trigger)\r\n }\r\n }, 100)\r\n }\r\n },\r\n snapElem() {\r\n return this.el('form')\r\n },\r\n hasBubble(a) {\r\n return this.snapElem().contains(a.isWidget ? a.el() : a)\r\n },\r\n isFocusTarget(el) {\r\n // dao\r\n },\r\n getInputValue(mv) {\r\n return mv\r\n },\r\n // @original: 检测表单是否有修改,对照参考的值为初始值\r\n isModified(original) {\r\n let dv = original ? this.defaultValue : this.modifiedValue\r\n let mv = this.x.modelValue\r\n if (dv == null) dv = ''\r\n if (mv == null) mv = ''\r\n if (dv == mv)\r\n return false\r\n return this.getInputValue(dv) != this.getInputValue(mv)\r\n },\r\n // @original: 设置为true,修改初始值\r\n saveModified(original) {\r\n this.modifiedValue = $.lodash.clone(this.x.modelValue)\r\n if (original) {\r\n this.defaultValue = this.modifiedValue\r\n }\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n this.warn(false)\r\n this.val(empty || this.defaultValue == null ? '' : this.defaultValue)\r\n },\r\n html_label() {\r\n\t\t\t\tif (this.$slots.label) return this.$slots.label()\r\n\t\t\t\tif (this.x.label && typeof this.x.label === 'object') {\r\n\t\t\t\t\tconst label = $.cloneDeep(this.x.label)\r\n\t\t\t\t\tif (label.width == null) delete label.width\r\n\t\t\t\t\tif (label.width != 0) return h(Label, label)\r\n\t\t\t\t}\r\n },\r\n html_input() {\r\n return h(this.input_tag, {\r\n class: 'w-input-value',\r\n ref: 'v',\r\n id: this.uid + 'v',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n readonly: this.isReadonly,\r\n disabled: this.isDisabled,\r\n placeholder: this.input_placeholder,\r\n autocomplete: 'off', //off, nope, new-password\r\n //list: 'autocompleteOff',\r\n //role: 'presentation',\r\n oninput: this.oninput,\r\n onfocus: this.baseFocus,\r\n onblur: this.baseBlur,\r\n ...this.input_prop,\r\n })\r\n },\r\n html_input_hidden() {\r\n return this.x.name ? h('input', {\r\n type: 'hidden',\r\n ref: 'v',\r\n name: this.input_name,\r\n value: this.input_value,\r\n disabled: this.isDisabled,\r\n class: 'f-hide'\r\n }) : []\r\n },\r\n html_button() {\r\n return []\r\n },\r\n html_form_slot() {\r\n return [\r\n this.slot('prepend'),\r\n this.html_input(),\r\n this.html_button(),\r\n this.slot('append'),\r\n ]\r\n },\r\n html_slot_down() {\r\n return this.slot('down')\r\n },\r\n html_main() {\r\n return h('div', {class: 'w-formbase-main'}, [this.html_form(), this.html_slot_down()])\r\n },\r\n html_form() {\r\n let fh = this.x.inputHeight && $.unitSize(this.x.inputHeight)\r\n return h('div', mergeProps({\r\n ref: 'form',\r\n id: this.uid + 'form',\r\n class: ['w-input', {\r\n 'w-input-border': this.hasBorder,\r\n [`f-${this.dir}-gap`]: $.br.compat.gap && this.x.gap,\r\n }],\r\n style: {\r\n 'height': fh\r\n },\r\n title: this.input_title\r\n }, this.form_prop), this.html_form_slot())\r\n },\r\n html_slots() {\r\n return [this.html_label(), this.html_main(), this.slot('right')]\r\n }\r\n },\r\n computed: {\r\n rules() {\r\n return this.x\r\n },\r\n pubValidHooks() {\r\n return {\r\n required: (v, rule, que) => {\r\n if (rule && !v) return this.formErr(que)\r\n },\r\n pattern: (v, rule, que) => {\r\n if (v && rule && (typeof rule === 'string' ? !$.eval(`${rule}.test(v)`, {rule, v}) : (rule.test && !rule.test(v))))\r\n return this.formErr(que)\r\n },\r\n validateHandler: async(v, rule, que) => {\r\n let rs = rule && rule(v)\r\n if (rs) {\r\n let text = await rs\r\n if (text) {\r\n return this.formErr({type: 'validateHandler', rule: {text}})\r\n }\r\n }\r\n }\r\n }\r\n },\r\n validHooks() {\r\n return this.pubValidHooks\r\n },\r\n validQueues() {\r\n let r = []\r\n let type = 'validateDefault'\r\n if (this.validHooks[type]) r.push({type})\r\n for(let k in this.validHooks) {\r\n if (!r.includes(k)) {\r\n let rule = this.rules[k]\r\n if (rule != null) {\r\n if (Array.isArray(rule)) {\r\n rule.forEach(item => r.push({type: k, rule: item}))\r\n } else {\r\n r.push({type: k, rule})\r\n }\r\n }\r\n }\r\n }\r\n return r\r\n },\r\n validTriggers() {\r\n let r = {}\r\n Object.keys(this.validHooks).forEach(k => {\r\n let d = this.rules[k]\r\n if (d) {\r\n if (Array.isArray(d)) {\r\n for (let e of d) {\r\n if (e.trigger) {\r\n (r[e.trigger] || (r[e.trigger] = [])).push({type: k, rule: e})\r\n }\r\n }\r\n } else if (d.trigger) {\r\n (r[d.trigger] || (r[d.trigger] = [])).push({type: k, rule: d})\r\n }\r\n }\r\n })\r\n return r\r\n },\r\n input_value() {\r\n return this.getInputValue(this.x.modelValue)\r\n },\r\n input_name() {\r\n return this.x.name\r\n },\r\n input_tag() {\r\n return 'input'\r\n },\r\n input_type() {\r\n return 'text'\r\n },\r\n input_title() {\r\n // implement\r\n },\r\n input_prop() {\r\n // implement\r\n },\r\n input_placeholder() {\r\n if (!this.isNormal) return;\r\n let s = this.x.placeholder\r\n if (s == null && $.x.autoPlaceholder && this.x.label) {\r\n s = $.loc.ps($.loc[this.placeholder_type || 'placeholder_input'], (this.x.label.text || this.x.label))\r\n }\r\n return s\r\n },\r\n form_prop() {\r\n // implement\r\n },\r\n hasVal() {\r\n return this.x.modelValue != null && this.x.modelValue !== ''\r\n },\r\n isNormal() {\r\n return !this.isReadonly && !this.isDisabled\r\n },\r\n isDisabled() {\r\n return !!this.x.disabled\r\n },\r\n isReadonly() {\r\n return !!this.x.readonly\r\n },\r\n errorTipTarget() {\r\n return this\r\n },\r\n // implement\r\n hasClassSlotDown() {\r\n return !!this.$slots.down\r\n },\r\n html_on() {\r\n // implement\r\n },\r\n html_props() {\r\n let fw = this.x.inputWidth && $.unitSize(this.x.inputWidth)\r\n return {\r\n class: ['w-formbase', this.warnClass, this.html_align_class, {\r\n 'z-on': this.isFocus,\r\n 'z-ds': !this.isNormal,\r\n 'z-req': this.rules.required,\r\n 'z-label-vertical': this.labelVertical,\r\n // 'z-fixed': !!fw,\r\n // 'z-full': this.x.inputWidth === '*',\r\n 'z-slot-down': this.hasClassSlotDown\r\n }],\r\n // style: fw && {\r\n // '--w-input-width': fw\r\n // },\r\n //'w-input-width': this.x.inputWidth,\r\n ...this.html_on\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-label {\r\n display: flex;\r\n align-items: center;\r\n padding-right: 10px;\r\n flex-shrink: 0;\r\n justify-content: flex-end;\r\n box-sizing: border-box;\r\n min-height: 32px;\r\n width: var(--important-label-width, var(--label-width));\r\n }\r\n\r\n .w-label.z-vertical {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-label-text {\r\n text-align: right;\r\n }\r\n\r\n .w-formbase {\r\n display: flex;\r\n box-sizing: border-box;\r\n align-items: center;\r\n }\r\n .w-formbase.z-slot-down {\r\n align-items: flex-start;\r\n }\r\n \r\n .w-formbase-main {\r\n flex: 1;\r\n min-width: 0;\r\n }\r\n\r\n .w-input {\r\n display: flex;\r\n box-sizing: border-box;\r\n min-height: 32px;\r\n overflow: hidden;\r\n align-items: center;\r\n flex: 1;\r\n flex-shrink: 1;\r\n flex-basis: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-label-vertical {\r\n display: block;\r\n }\r\n\r\n .w-formbase.z-label-vertical>.w-formbase-main>.w-input {\r\n max-width: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-fixed>.w-formbase-main>.w-input {\r\n flex-grow: 0;\r\n }\r\n \r\n .w-input-border {\r\n border: 1px solid #ddd;\r\n box-sizing: border-box;\r\n background: #fff;\r\n }\r\n \r\n .w-input-buttonbar {\r\n position: relative;\r\n }\r\n \r\n .w-input-buttonbar,\r\n .w-input-button {\r\n display: flex;\r\n flex-shrink: 0;\r\n width: 26px;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 16px;\r\n cursor: pointer;\r\n }\r\n\r\n .w-input-button.f-i-caret-down {\r\n font-size: 18px;\r\n }\r\n\r\n .w-input-button button {\r\n width: 100%;\r\n }\r\n\r\n .w-input-main button:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-input-button,\r\n .w-input-button button,\r\n .w-input-main button:disabled {\r\n color: #a3a3a3;\r\n }\r\n\r\n .w-formbase.z-on>.w-formbase-main>.w-input-border,\r\n\t.w-formbase.z-drop>.w-formbase-main>.w-input-border {\r\n border-color: var(--w--primary-color);\r\n }\r\n\r\n .w-input-value {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-input-border>.w-input-value {\r\n width: 100%;\r\n border: 0;\r\n padding: 1px 0 1px 10px;\r\n background: transparent;\r\n }\r\n\r\n input::placeholder,\r\n textarea::placeholder,\r\n .w-input-placeholder {\r\n color: #a6a6a6;\r\n }\r\n \r\n .w-input-button-clear {\r\n visibility: hidden;\r\n }\r\n \r\n .w-input-button-clear:before {\r\n width: 18px;\r\n height: 18px;\r\n font-size: 12px;\r\n background-color: #eee;\r\n border-radius: 10px;\r\n content: '\\e636';\r\n transform: scale(0.9);\r\n }\r\n \r\n .w-input-buttonbar .w-input-button-clear {\r\n position: absolute;\r\n }\r\n \r\n .w-label,\r\n .w-form,\r\n .w-fileupload-nofile {\r\n line-height: 1.22;\r\n }\r\n \r\n .w-formbase:not(.z-ds) {\r\n &.z-val.z-clearable .w-input:hover {\r\n .w-input-button-drop {\r\n visibility: hidden;\r\n }\r\n .w-input-button-clear {\r\n visibility: visible;\r\n }\r\n }\r\n }\r\n\r\n .w-dropbox-text {\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding-left: 10px;\r\n text-align: left;\r\n }\r\n \r\n .w-dropbox-dialog.z-mob {\r\n max-width: calc(100% - 40px);\r\n max-height: calc(100% - 100px);\r\n }\r\n\r\n .w-textarea .w-input-border>.w-input-value {\r\n height: 100%;\r\n padding: 5px 10px;\r\n box-sizing: border-box;\r\n font-family: inherit;\r\n resize: none;\r\n }\r\n\r\n .w-textarea .w-input-border {\r\n height: 100%;\r\n }\r\n \r\n .w-textarea-down {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n \r\n .w-textarea-show-count {\r\n color: rgba(0, 0, 0, 0.45);\r\n }\r\n \r\n .w-textarea-show-count-exceed {\r\n font-style: normal;\r\n color: #f00;\r\n }\r\n\r\n .w-checkbox,\r\n .w-triplebox,\r\n .w-radio {\r\n margin: 0;\r\n }\r\n \r\n .w-checkbox>.w-input,\r\n .w-triplebox>.w-input,\r\n .w-radio>.w-input {\r\n min-height: 30px;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-triplebox {\r\n display: inline-flex;\r\n justify-content: center;\r\n }\r\n \r\n .w-checkboxgroup .w-checkbox>.w-input,\r\n .w-radiogroup .w-radio>.w-input {\r\n min-height: 20px;\r\n }\r\n \r\n .w-checkboxgroup,\r\n .w-radiogroup {\r\n &.z-br {\r\n &>.w-formbase-main>.w-input {\r\n flex-wrap: wrap;\r\n }\r\n }\r\n &>.w-formbase-main>.w-input {\r\n padding-top: 3px;\r\n padding-bottom: 3px;\r\n gap: var(--w-boxgroup-gap, 10px);\r\n --w-compat-gap: var(--w-boxgroup-gap, 10px);\r\n }\r\n }\r\n\r\n .w-boxgroup-grid {\r\n flex: 1;\r\n display: grid;\r\n grid-template-columns: auto 1fr;\r\n align-items: center;\r\n grid-gap: var(--w-boxgroup-gap);\r\n }\r\n \r\n .w-boxgroup-grid>.w-checkbox,\r\n .w-boxgroup-grid>.w-radio,\r\n .w-boxgroup-grid>.w-triplebox {\r\n grid-column: 1 / span 2;\r\n }\r\n \r\n \r\n .w-boxgroup-grid>.w-checkbox.z-target,\r\n .w-boxgroup-grid>.w-triplebox.z-target,\r\n .w-boxgroup-grid>.w-radio.z-target {\r\n grid-column: 1;\r\n }\r\n\r\n .w-checkbox-target>*,\r\n .w-radio-target>* {\r\n width: 100%;\r\n }\r\n\r\n .w-checkbox-text,\r\n .w-radio-text,\r\n .w-triplebox-text {\r\n padding-left: 5px;\r\n padding-bottom: 1px;\r\n }\r\n\r\n .w-checkbox-appear,\r\n .w-radio-appear,\r\n .w-triplebox-appear {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n border: 1px solid #ccc;\r\n box-sizing: border-box;\r\n line-height: 0;\r\n color: var(--w--primary-color);\r\n background-color: #fff;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, 5%), inset 0px -15px 10px -12px rgba(0, 0, 0, 5%);\r\n }\r\n\r\n .w-radio-appear {\r\n border-radius: 20px;\r\n }\r\n\r\n .w-checkbox .w-input-value,\r\n .w-radio .w-input-value,\r\n .w-triplebox .w-input-value {\r\n display: none;\r\n }\r\n\r\n .w-checkbox-appear .f-i,\r\n .w-radio-appear .f-i,\r\n .w-triplebox-appear .f-i {\r\n visibility: hidden;\r\n font-size: 14px;\r\n }\r\n\r\n .w-radio-appear .f-i {\r\n width: 10px;\r\n height: 10px;\r\n background: var(--w--primary-color);\r\n border-radius: 20px;\r\n }\r\n\r\n .w-radio-text,\r\n .w-checkbox-text,\r\n .w-triplebox-text {\r\n word-break: keep-all;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear,\r\n .w-input-value:checked+.w-triplebox-appear,\r\n .w-input-value:checked+.w-radio-appear {\r\n border-color: var(--w--primary-color);\r\n box-shadow: none;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear .f-i,\r\n .w-input-value:checked+.w-triplebox-appear .f-i,\r\n .w-input-value:checked+.w-radio-appear .f-i {\r\n visibility: visible;\r\n }\r\n\r\n .w-triplebox.z-half .w-triplebox-appear:before {\r\n content: '';\r\n position: absolute;\r\n background: var(--w--primary-color);\r\n flex-shrink: 0;\r\n width: 10px;\r\n height: 3px;\r\n }\r\n\r\n .w-formbase.z-ds .w-input-border,\r\n .w-formbase.z-ds .w-checkbox-appear,\r\n .w-formbase.z-ds .w-triplebox-appear,\r\n .w-formbase.z-ds .w-radio-appear {\r\n border-color: #ccc;\r\n background-color: #e6e6e6;\r\n }\r\n\r\n .w-formbase.z-err .w-input-border,\r\n .w-formbase.z-err .w-radio-appear,\r\n .w-formbase.z-err .w-triplebox-appear,\r\n .w-formbase.z-err .w-checkbox-appear,\r\n .w-form.z-err>.w-formbase-main>.w-input{\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text {\r\n position: relative;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text>span:before {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-right: 3px;\r\n line-height: 0;\r\n }\r\n\r\n .w-label.z-h-align-left {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-label.z-h-align-left>.w-label-text {\r\n text-align: left;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:before {\r\n content: '';\r\n display: none;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:after {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-left: 3px;\r\n }\r\n\r\n .w-form>.w-formbase-main {\r\n display: flex;\r\n }\r\n\r\n .w-form.z-vertical>.w-formbase-main {\r\n flex-direction: column;\r\n }\r\n\r\n .w-form>.w-formbase-main>.w-input {\r\n word-break: break-word;\r\n gap: var(--w-form-gap);\r\n }\r\n \r\n .w-form.z-vertical>.w-formbase-main>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-v-align-left>.w-formbase-main>.w-input,\r\n .w-form.z-h-valign-top>.w-formbase-main>.w-input {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-form.z-v-align-center>.w-formbase-main>.w-input,\r\n .w-form.z-h-valign-middle>.w-formbase-main>.w-input {\r\n align-items: center;\r\n }\r\n\r\n .w-form.z-v-align-right>.w-formbase-main>.w-input,\r\n .w-form.z-h-valign-bottom>.w-formbase-main>.w-input {\r\n align-items: flex-end;\r\n }\r\n\r\n .w-form.z-h-align-left>.w-formbase-main>.w-input,\r\n .w-form.z-v-valign-top>.w-formbase-main>.w-input {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-form.z-h-align-center>.w-formbase-main>.w-input,\r\n .w-form.z-v-valign-middle>.w-formbase-main>.w-input {\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-h-align-right>.w-formbase-main>.w-input,\r\n .w-form.z-v-valign-bottom>.w-formbase-main>.w-input {\r\n justify-content: flex-end;\r\n }\r\n \r\n .w-text>.w-formbase-main>.w-input,\r\n .w-spinner>.w-formbase-main>.w-input,\r\n .w-datepicker>.w-formbase-main>.w-input {\r\n align-items: stretch;\r\n }\r\n \r\n .w-input-value:checked+.w-radio-appear:after {\r\n content: 'a';\r\n position: absolute;\r\n }\r\n \r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, ref\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n \r\n const {leafSymbol} = $.symbol\r\n\r\n export default {\r\n name: 'w-checkbox',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['text', 'checked', 'partialSubmit', 'minSize', 'maxSize'],\r\n inject: ['providePubParent', 'provideBoxParent'],\r\n emits: ['change', 'update:checked', 'click'],\r\n data() {\r\n return {\r\n isPlural: true,\r\n indeterminate: false,\r\n modifiedChecked: false,\r\n defaultChecked: false,\r\n }\r\n },\r\n created() {\r\n if (this.provideBoxParent) {\r\n this.provideBoxParent.boxProxy = this\r\n }\r\n this.defaultChecked = this.isChecked\r\n this.modifiedChecked = this.isChecked\r\n },\r\n methods: {\r\n val(a) {\r\n if (arguments.length == 0) {\r\n return this.getVal()\r\n }\r\n this.setVal(a, {\r\n type: 'change',\r\n target: this.$refs.v\r\n })\r\n },\r\n getVal() {\r\n return this.isChecked ? this.value : ''\r\n },\r\n setVal(checked, event) {\r\n let p = this.pubParent\r\n let v = this.checkValue\r\n let rdo = this.input_type === 'radio'\r\n let mv = this.x.modelValue\r\n if (rdo) {\r\n mv = checked ? $.string(v) : ''\r\n } else {\r\n mv = checked ? $.idsAdd(mv, v) : $.idsRemove(mv, v)\r\n }\r\n this.x.modelValue = mv\r\n if (rdo) {\r\n this.siblings().forEach(sb => sb.x.modelValue = mv)\r\n }\r\n this.$emit('update:modelValue', mv)\r\n this.trigger(event, mv)\r\n this.parentTrigger('change', mv)\r\n },\r\n formVal() {\r\n return !this.isDisabled && this.isChecked ? this.x.value : ''\r\n },\r\n groupFormVal(a) {\r\n if (a == null) {\r\n let r = []\r\n $.lodash.each(this.siblings(null, true), f => {\r\n let g = f.formVal()\r\n if (g != null && g !== '') r.push(g)\r\n })\r\n return r.join(',')\r\n }\r\n $.lodash.each(this.siblings(), f => f.val($.idsAny(a, f.checkValue)))\r\n },\r\n watchModelValue(v, ov) {\r\n if (ov != v) {\r\n this.trigger('change', v)\r\n this.parentTrigger('change', v)\r\n }\r\n },\r\n getInputValue(v) {\r\n // 如果没有定义value,必须返回空字符串。因为当<input type=\"checkbox\">没有value属性时,它的表单值会变成\"on\"\r\n return v == null ? '' : v\r\n },\r\n parentTrigger(e, v) {\r\n if (this.pubParent && this.pubParent.watchValue != v) {\r\n this.pubParent.watchValue = v\r\n this.pubParent.trigger(e, v)\r\n }\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n this.val(a)\r\n },\r\n // @a -> T/F 是否只获取所有选中项, b -> 是否只选择可用的\r\n siblings(a, b) {\r\n return $.lodash.map($.q(':input[name=\"' + this.input_name + '\"]:not([w-form-ignore] :input)' + (b ? ':not(:disabled)' : '') +\r\n (a === true ? ':checked' : a === false ? ':not(:checked)' : (a || '')), this.ownerView.el()), e => $(e))\r\n },\r\n relate() {\r\n // implement\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n if (this.pubParent) {\r\n this.pubParent.reset(empty)\r\n } else {\r\n this.val(empty || !this.defaultChecked ? false : true)\r\n }\r\n },\r\n onclick(e) {\r\n //implement\r\n e.stopPropagation()\r\n },\r\n onbasechange(e) {\r\n if (this.warnClass) {\r\n this.siblings().forEach(v => v.warn && v.warn(false))\r\n }\r\n this.setVal(e.target.checked, e)\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n },\r\n isModified(original) {\r\n let c = original ? this.defaultChecked : this.modifiedChecked\r\n return c != this.isChecked\r\n },\r\n saveModified(original) {\r\n this.modifiedChecked = this.isChecked\r\n if (original) {\r\n this.defaultChecked = this.modifiedChecked\r\n }\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n html_input() {\r\n return [h(this.input_tag, {\r\n ref: 'v',\r\n class: 'w-input-value',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n checked: this.isChecked,\r\n disabled: this.isDisabled,\r\n onclick: e => {\r\n if (this.isNormal) {\r\n this.indeterminate = false\r\n if (this.x.cancelable && this.isChecked) {\r\n e.preventDefault()\r\n this.val(false)\r\n setTimeout(() => {\r\n this.$refs.v.checked = false\r\n })\r\n }\r\n } else {\r\n e.preventDefault()\r\n }\r\n },\r\n onchange: this.onchange,\r\n ...this.input_prop,\r\n }), h('em', {\r\n ref: 'appear',\r\n class: this.$options.name + '-appear'\r\n }, h('i', {\r\n class: this.input_icon\r\n })),\r\n this.$slots.text || this.x.text ?\r\n h('span', {\r\n class: this.$options.name + '-text',\r\n }, this.$slots.text ? this.$slots.text() : this.x.text) : null\r\n ]\r\n },\r\n html_main() {\r\n return h('label', {\r\n class: 'w-input',\r\n onclick: this.onclick,\r\n }, this.html_input())\r\n },\r\n html_target() {\r\n return this.$slots.default ? h(Horizontal, {\r\n class: this.$options.name + '-target',\r\n width: '*',\r\n ref: 'target'\r\n }, this.$slots) : []\r\n },\r\n html() {\r\n return this.$slots.default ? [this.html_self(true), this.html_target()] : this.html_self()\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length < $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n maxSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length > $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n }\r\n },\r\n rules() {\r\n return {\r\n required: this.x.required != null ? !!this.x.required : !!(this.pubParent && this.pubParent.x.required),\r\n minSize: this.x.minSize != null ? this.x.minSize : (this.pubParent && this.pubParent.x.minSize),\r\n maxSize: this.x.maxSize != null ? this.x.maxSize : (this.pubParent && this.pubParent.x.maxSize),\r\n }\r\n },\r\n input_type() {\r\n return 'checkbox'\r\n },\r\n input_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_value() {\r\n // 如果没有定义value,必须返回空字符串。因为当<input type=\"checkbox\">没有value属性时,它的表单值会变成\"on\"\r\n return this.x.value == null ? '' : this.x.value\r\n },\r\n isIndeterminate() {\r\n return this.data && this.data[leafSymbol] ? this.data[leafSymbol].indeterminate : this.indeterminate\r\n },\r\n input_prop() {\r\n return {\r\n indeterminate: this.isIndeterminate,\r\n 'w-partialsubmit': this.x.partialSubmit ? 1 : null,\r\n 'w-all': this.x.all ? '' : null,\r\n }\r\n },\r\n input_icon() {\r\n return 'f-i f-i-check'\r\n },\r\n checkValue() {\r\n return this.x.value\r\n },\r\n isChecked() {\r\n return $.idsAny(this.x.modelValue, this.checkValue)\r\n },\r\n isDisabled() {\r\n return this.x.disabled != null ? !!this.x.disabled : (this.pubParent && this.pubParent.disabled)\r\n },\r\n isReadonly() {\r\n return this.x.readonly != null ? !!this.x.readonly : (this.pubParent && this.pubParent.readonly)\r\n },\r\n html_class() {\r\n return {\r\n 'z-half': this.isIndeterminate,\r\n 'z-target': !!this.$slots.default,\r\n 'z-checked': this.isChecked,\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.target) {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n this.siblings().forEach((sb) => {\r\n let t = sb.$refs.target\r\n if (t) this.ownerView.fAll(null, t.$el).forEach(n => n.x.disabled = !sb.isChecked)\r\n })\r\n }, {immediate: true})\r\n }\r\n },\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {computed, h} from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n \r\n const {leafSymbol} = $.symbol\r\n\r\n export default {\r\n name: 'w-triplebox',\r\n mixins: [CheckBox],\r\n props: ['all'],\r\n created() {\r\n if (this.provideBoxParent) {\r\n if (this.data && !this.data[leafSymbol]) {\r\n const parentLeaf = this.provideBoxParent.provideParentLeaf\r\n const parent = parentLeaf && parentLeaf.boxProxy && parentLeaf.boxProxy.data\r\n const indeterminate = computed(() => {\r\n if (this.data.children && this.data.children.length) {\r\n let hasAny, hasNot\r\n const mv = this.x.modelValue\r\n for (let item of this.data.children) {\r\n if (!item[leafSymbol]) return false\r\n if (item[leafSymbol].indeterminate) return true\r\n if ($.idsAny(mv, item[leafSymbol].checkValue)) hasAny = true\r\n else hasNot = true\r\n }\r\n return !!(hasAny && hasNot)\r\n }\r\n return false\r\n })\r\n this.data[leafSymbol] = {parent, checkValue: this.value, indeterminate}\r\n }\r\n } else {\r\n this.$watch(() => this.x.modelValue, (v, ov) => {\r\n if ((v == null || v === '') && (ov == null || ov === '')) return\r\n if (!this.x.all) this.relate()\r\n })\r\n }\r\n },\r\n methods: {\r\n getVal() {\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.value : ''\r\n },\r\n checkDescendant(data, mv, checked) {\r\n if (data.children) {\r\n for (let item of data.children) {\r\n const leaf = item[leafSymbol]\r\n mv = checked ? $.idsAdd(mv, leaf.checkValue) : $.idsRemove(mv, leaf.checkValue)\r\n mv = this.checkDescendant(item, mv, checked)\r\n }\r\n }\r\n return mv\r\n },\r\n checkAncestor(item, mv) {\r\n const hasNot = item.children.find(n => !$.idsAny(mv, n[leafSymbol].checkValue))\r\n mv = hasNot ? $.idsRemove(mv, item[leafSymbol].checkValue) : $.idsAdd(mv, item[leafSymbol].checkValue)\r\n if (item[leafSymbol].parent) {\r\n mv = this.checkAncestor(item[leafSymbol].parent, mv)\r\n }\r\n return mv\r\n },\r\n setVal(checked, event) {\r\n let p = this.pubParent\r\n let v = this.checkValue\r\n let mv = this.x.modelValue\r\n mv = checked ? $.idsAdd(mv, v) : $.idsRemove(mv, v)\r\n if (this.data) {\r\n if (this.data.children) {\r\n mv = this.checkDescendant(this.data, mv, checked)\r\n }\r\n const leaf = this.data[leafSymbol]\r\n if (leaf.parent) {\r\n mv = this.checkAncestor(leaf.parent, mv, checked)\r\n }\r\n }\r\n this.x.modelValue = mv\r\n this.$emit('update:modelValue', mv)\r\n this.trigger(event, mv)\r\n this.parentTrigger('change', mv)\r\n },\r\n formVal() {\r\n if (this.isDisabled) return ''\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.$refs.v.value : ''\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n this.relate()\r\n },\r\n checkstate(a) {\r\n let b = this.indeterminate ? 2 : this.isChecked ? 1 : 0\r\n if (a == null) {\r\n return b\r\n }\r\n this.val(a == 1)\r\n this.indeterminate = a == 2\r\n },\r\n isPartial() {\r\n return this.checkstate() == 2\r\n },\r\n relate() {\r\n const allbox = this.x.name && $.q(`[name=\"${this.x.name}\"][w-all]`, $.el(this.ownerView))[0]\r\n if (allbox) {\r\n const b = this.ownerView.fAll(this.x.name)\r\n for (var i = 0, c = this.isPartial(), l = b.length, n = l, c0 = 0, c1 = 0, c2 = 0,\r\n d; i < l; i++) {\r\n if (!b[i].isNormal) {\r\n n--\r\n continue\r\n }\r\n if (this.x.all) {\r\n if (this != b[i]) {\r\n if (c) {\r\n this.checkstate(b[i].checkstate())\r\n break;\r\n } else {\r\n b[i].checkstate(this.isChecked ? 1 : 0)\r\n }\r\n } else if (l == 1)\r\n d = this\r\n } else if (b[i].x.all) {\r\n d = b[i]\r\n } else {\r\n b[i].isChecked ? (c1++) : b[i].isPartial() ? (c2++) : (c0++)\r\n }\r\n }\r\n if (d && ((c0 + c1 + c2) || l == 1)) {\r\n d.checkstate(c0 == n - 1 ? 0 : c1 == n - 1 ? 1 : 2)\r\n }\r\n }\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n let s = this.checkstate()\r\n if (s != a) {\r\n this.checkstate(a)\r\n this.relate()\r\n }\r\n },\r\n },\r\n computed: {\r\n checkValue() {\r\n return this.x.all ? 'checked' : this.x.value\r\n }\r\n },\r\n mounted() {\r\n //if (!this.x.all && this.isChecked)\r\n }\r\n\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import TripleBox from './TripleBox.vue'\r\n import Img from './Img.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n \r\n const leafSymbol = Symbol('leaf')\r\n\r\n export default {\r\n name: 'w-leaf',\r\n pubParentName: 'w-tree',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['text', 'expanded', 'expandedIcon', 'collapsedIcon', 'icon', 'boxSync', 'src', 'disabled'],\r\n inject: ['providePubParent', 'provideLevel', 'provideParentLeaf', 'provideParentTR'],\r\n emits: ['click'],\r\n provide() {\r\n return {\r\n provideParentLeaf: this,\r\n provideLevel: this.provideLevel + 1,\r\n provideBoxParent: this,\r\n }\r\n },\r\n data() {\r\n return {\r\n hover: false,\r\n loading: false,\r\n loaded: this.getInitLoaded()\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n let chd = (this.x || this.$props).children\r\n if (chd === true || (Array.isArray(chd) && chd.length)) return true\r\n },\r\n childrenList() {\r\n return $.lodash.map(this.$refs.cont.querySelectorAll(':scope > .w-leaf'), v => $(v))\r\n },\r\n getInitLoaded() {\r\n return this.hasChild() || !this.getSrc() ? true : false\r\n },\r\n isExpanded() {\r\n return this.provideParentTR ? this.provideParentTR.isExpanded() : this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n isFolder() {\r\n return this.hasChild() ? true : !!(this.getSrc() && !this.loaded)\r\n },\r\n toggle(exp, fn) {\r\n (this.provideParentTR || this).setExpanded(exp)\r\n if (this.isExpanded() && !this.loaded) {\r\n this.request(fn)\r\n } else {\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n onclick(e) {\r\n if (this.x.disabled) {\r\n return\r\n }\r\n if (this.boxProxy && this.x.boxSync) {\r\n this.boxProxy.check(!this.boxProxy.isChecked)\r\n }\r\n this.$emit('click', e)\r\n },\r\n // triplebox 级联勾选\r\n triple() {\r\n if (!this.boxProxy || this.boxProxy.$options.name !== 'w-triplebox') return\r\n let p = this\r\n while ((p = p.provideParentLeaf) && p.$options.name === 'w-leaf') {\r\n if (p.boxProxy) {\r\n let c = p.childrenList()\r\n let m = [0, 0, 0]\r\n let l = c.length\r\n c.forEach(v => {\r\n let b = v.boxProxy\r\n if (b) m[b.checkstate()]++\r\n })\r\n p.boxProxy.check(m[0] === l ? 0 : m[1] === l ? 1 : 2)\r\n }\r\n }\r\n let c = this.boxProxy.checkstate()\r\n c != 2 && this.tripleAll(c)\r\n },\r\n tripleAll(a) {\r\n this.childrenList().forEach(v => {\r\n if (v.boxProxy) {\r\n v.boxProxy.check(a)\r\n v.tripleAll(a)\r\n }\r\n })\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentLeaf) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n html_self() {\r\n let exp = this.isExpanded()\r\n let ico = this.isFolder() ? (exp ? this.x.expandedIcon : this.x.collapsedIcon) : this.x.icon\r\n return h('div', mergeProps(this.html_attrs, this.html_props, this.$attrs), [\r\n this.loading ?\r\n h(Img, {\r\n src: '#f-svg-loading',\r\n class: 'w-leaf-loading'\r\n }) :\r\n h('div', {\r\n ref: 'toggle',\r\n class: ['w-leaf-toggle f-i', exp ? 'f-i-caret-down' : 'f-i-caret-right'],\r\n onclick: (e) => {\r\n e.stopPropagation(), this.toggle()\r\n }\r\n }),\r\n this.$slots.box && this.$slots.box(),\r\n ico && h(Img, {\r\n src: ico,\r\n class: 'w-leaf-icon'\r\n }),\r\n h('div', {\r\n class: 'w-leaf-text f-line-1',\r\n title: this.x.text,\r\n }, this.$slots.text ? this.$slots.text() : this.x.text)\r\n ])\r\n },\r\n html_cont() {\r\n let r\r\n let chd = this.x.children\r\n let tree = this.pubParent\r\n if (Array.isArray(chd) && tree) {\r\n r = chd.map((item, index) => {\r\n let key\r\n const leaf = tree.$slots.default({item, index})\r\n for (let f of leaf) {\r\n if (!key) {\r\n key = f.key\r\n }\r\n }\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => leaf})\r\n } else {\r\n return leaf\r\n }\r\n })\r\n }\r\n return h('div', {\r\n id: this.uid + 'cont',\r\n ref: 'cont',\r\n class: 'w-leaf-cont',\r\n style: {\r\n display: this.x.expanded ? '' : 'none'\r\n },\r\n }, r)\r\n },\r\n html() {\r\n return [this.html_self(), this.html_cont()]\r\n }\r\n },\r\n computed: {\r\n tree() {\r\n return this.pubParent\r\n },\r\n level() {\r\n return this.provideParentTR ? this.provideParentTR.level : this.provideLevel + 1\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let exp = this.isExpanded()\r\n let fd = this.isFolder()\r\n let ds = !!this.x.disabled\r\n let prop = {\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': ds,\r\n 'z-folder': fd,\r\n 'z-expanded': fd && exp,\r\n 'z-collapse': fd && !exp\r\n },\r\n style: 'padding-left:' + $.unitSize(this.level * 16),\r\n }\r\n if (this.pubParent) {\r\n prop.onmouseenter = this.onmouseenter\r\n prop.onmouseleave = this.onmouseleave\r\n prop.onclick = this.onclick\r\n // prop[`onClick${ds?'Capture':''}`] = this.onclick\r\n }\r\n return prop\r\n }\r\n },\r\n mounted() {\r\n if (this.x.expanded) this.toggle(true)\r\n if (this.isCurrent) this.pubParent.viewCurrent(this)\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-leaf {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n min-height: 30px;\r\n width: 100%;\r\n text-align: left;\r\n }\r\n\r\n .w-leaf-text {\r\n flex: 1;\r\n }\r\n\r\n .w-leaf-toggle {\r\n visibility: hidden;\r\n padding: 0 1px;\r\n margin-left: 1px;\r\n color: #777;\r\n opacity: #777;\r\n }\r\n \r\n .w-leaf.z-on .w-leaf-toggle,\r\n .w-leaf.z-on .f-svg {\r\n color: currentcolor;\r\n fill: currentcolor;\r\n }\r\n\r\n .w-leaf-loading {\r\n width: 20px;\r\n margin-left: 1px;\r\n }\r\n\r\n .w-leaf-icon {\r\n margin-right: 6px;\r\n }\r\n\r\n .w-leaf.z-folder .w-leaf-toggle {\r\n visibility: visible;\r\n }\r\n\r\n .w-leaf .w-triplebox,\r\n .w-leaf .w-checkbox, \r\n .w-leaf .w-radio {\r\n margin-right: 6px;\r\n }\r\n \r\n .w-leaf.z-hv {\r\n background: #f5faff;\r\n }\r\n \r\n .w-leaf.z-on {\r\n background: var(--w--primary-color);\r\n color: #fff\r\n }\r\n \r\n .w-leaf.z-ds {\r\n color: #999;\r\n }\r\n \r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n\r\n export default {\r\n name: 'w-pagebar',\r\n mixins: [ButtonBar],\r\n emits: ['click:item'],\r\n props: ['limit', 'size', 'offset', 'buttonCount', 'noFirstLast', 'face', 'jump'],\r\n data() {\r\n return {\r\n isJumpFocus: false,\r\n showDrop: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n limit: 1,\r\n size: 0,\r\n offset: 0,\r\n buttonCount: 5,\r\n face: 'normal',\r\n gap: 0,\r\n valign: 'middle',\r\n }\r\n },\r\n inCurrent(a) {\r\n return this.currentPage == a.text\r\n },\r\n clickItem(e, i) {\r\n let b = (i - 1) * this.x.limit\r\n if (b != this.x.offset) {\r\n e.runType = 'click:item'\r\n e.value = b\r\n this.trigger(e, b)\r\n }\r\n },\r\n clickDrop(e) {\r\n this.showDrop = true\r\n },\r\n onJumpClick(e) {\r\n let v = Math.max(0, $.number(this.$refs.jumpInput.value))\r\n this.clickItem(e, v)\r\n },\r\n html_button(i, t, ic, ds) {\r\n return h('button', {\r\n class: ['w-pagebar-button w-pagebar-num', {'z-on': !t && !ic && i == this.currentPage, 'z-ds': ds, [ic]: ic}],\r\n disabled: ds,\r\n onclick: e => this.clickItem(e, i)\r\n }, t || (ic ? '' : i))\r\n },\r\n html_slots() {\r\n return this.x.face === 'button' ? this.html_face_button() :\r\n this.x.face === 'simple' ? this.html_face_simple() : \r\n this.html_face_normal()\r\n },\r\n html_buttons() {\r\n return [h(Button, {\r\n class: 'w-pagebar-button w-pagebar-prev',\r\n icon: '.f-i .f-i-angle-left',\r\n disabled: this.currentPage == 1,\r\n title: $.loc.page_text.prev,\r\n onclick: e => this.clickItem(e, this.currentPage - 1)\r\n }), h(Button, {\r\n class: 'w-pagebar-button w-pagebar-next',\r\n icon: '.f-i .f-i-angle-right',\r\n disabled: this.currentPage == this.sumPage,\r\n title: $.loc.page_text.next,\r\n onclick: e => this.clickItem(e, this.currentPage + 1)\r\n })]\r\n },\r\n html_drop() {\r\n let s = []\r\n if (this.x.buttonCount) {\r\n s.push(h(Button, {\r\n class: 'w-pagebar-button w-pagebar-button-count w-pagebar-prev',\r\n ref: 'drop',\r\n text: this.currentPage + '/' + this.sumPage,\r\n onclick: e => this.clickDrop(e)\r\n }))\r\n }\r\n if (this.showDrop) {\r\n let b = []\r\n for (let i = 1, sp = this.sumPage; i <= sp; i ++) b.push(h(Button, {text: i, onClick: e => this.clickItem(e, i)}))\r\n s.push(h(Menu, {snap: () => this.$refs.drop, position: 'v', indent: 1, onClose: () => this.showDrop = false}, {default: () => b}))\r\n }\r\n return s\r\n },\r\n html_face_simple() {\r\n return this.html_drop().concat(this.html_buttons())\r\n },\r\n html_face_button() {\r\n let b = this.html_buttons()\r\n b.splice(1, 0, ...this.html_drop())\r\n return b\r\n },\r\n html_face_normal() {\r\n const s = []\r\n let sp = this.sumPage\r\n let cp = this.currentPage\r\n let n = $.number(this.x.buttonCount)\r\n let f = Math.max(1, cp - Math.ceil(n / 2) + 1)\r\n let l = Math.min(sp + 1, f + n)\r\n let d = l - f < n ? Math.max(1, l - n) : f\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(1, this.labelFirst, this.iconFirst, cp == 1))\r\n }\r\n s.push(this.html_button(cp - 1, this.labelPrev, this.iconPrev, cp == 1))\r\n for (let i = d; i < l; i++) {\r\n s.push(this.html_button(i))\r\n }\r\n s.push(this.html_button(cp + 1, this.labelNext, this.iconNext, cp >= this.sumPage))\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(sp, this.labelLast, this.iconLast, cp >= this.sumPage))\r\n }\r\n if (this.x.jump) {\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-to'\r\n }, $.loc.to))\r\n s.push(h('input', {\r\n class: 'w-pagebar-jump-input',\r\n ref: 'jumpInput',\r\n onfocus: e => this.isJumpFocus = true,\r\n onblur: e => this.isJumpFocus = false,\r\n onkeydown: e => e.keyCode == 13 && this.onJumpClick(e)\r\n }))\r\n s.push(h('button', {\r\n class: 'w-pagebar-button w-pagebar-jump-button',\r\n onclick: this.onJumpClick\r\n }, 'GO'))\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-page'\r\n }, $.loc.page))\r\n }\r\n return s\r\n },\r\n html_face_mini() {\r\n return this.html_face_normal()\r\n },\r\n },\r\n computed: {\r\n currentPage() {\r\n return (Math.ceil(this.x.offset / this.x.limit) || 0) + 1\r\n },\r\n sumPage() {\r\n return Math.ceil(this.x.size / this.x.limit) || 1\r\n },\r\n labelFirst() {\r\n return this.x.face === 'normal' ? $.loc.page_text.first : ''\r\n },\r\n labelLast() {\r\n return this.x.face === 'normal' ? $.loc.page_text.last : ''\r\n },\r\n labelNext() {\r\n return this.x.face === 'normal' ? $.loc.page_text.next : ''\r\n },\r\n labelPrev() {\r\n return this.x.face === 'normal' ? $.loc.page_text.prev : ''\r\n },\r\n iconFirst() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-first' : ''\r\n },\r\n iconLast() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-last' : ''\r\n },\r\n iconNext() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-right' : ''\r\n },\r\n iconPrev() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-left' : ''\r\n },\r\n html_class() {\r\n return [\r\n 'w-buttonbar w-horizontal',\r\n 'z-face-' + this.x.face,\r\n this.html_align_class,\r\n this.isJumpFocus && 'z-jump-on',\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-pagebar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-num {\r\n display: flex;\r\n position: relative;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n border: 1px solid #ddd;\r\n background: #fff;\r\n cursor: pointer;\r\n }\r\n\r\n .w-pagebar-num .w-button-text {\r\n padding: 0\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num {\r\n min-width: 30px;\r\n padding: 0 10px;\r\n height: 32px;\r\n flex-shrink: 0;\r\n margin-right: -1px;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num:last-child,\r\n .w-pagebar.z-face-mini .w-pagebar-num:last-child{\r\n margin-right: 0;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on {\r\n font-weight: 700;\r\n background: var(--w--primary-color);\r\n border-color: var(--w--primary-color);\r\n color: #fff;\r\n z-index: 1;\r\n cursor: default;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-hv {\r\n color: #3e89fa;\r\n border-color: var(--w--primary-color);\r\n z-index: 1;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on.z-hv {\r\n color: #fff;\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num {\r\n min-width: 23px;\r\n padding: 0 3px;\r\n height: 23px;\r\n flex-shrink: 0;\r\n margin-right: 3px;\r\n }\r\n \r\n .w-pagebar.z-face-mini .f-i {\r\n color: #999;\r\n font-size: 14px;\r\n }\r\n\r\n .w-pagebar.z-face-mini .f-i.z-ds,\r\n .w-pagebar.z-face-mini .f-i.z-ds:hover {\r\n color: #ccc;\r\n background: #f9f9f9;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-pagebar.z-face-mini .w-pagebar-num:hover {\r\n border-color: var(--w--primary-color);\r\n color: var(--w--primary-color);\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num.z-on {\r\n background: var(--w--primary-color);\r\n border-color: var(--w--primary-color);\r\n color: #fff;\r\n cursor: default;\r\n }\r\n \r\n \r\n .w-pagebar.z-face-button .w-button {\r\n margin-right: -1px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button:last-child {\r\n margin-right: 0;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button-main {\r\n padding: 0 6px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-pagebar-button-count {\r\n padding: 0 8px;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button.z-ds {\r\n background: transparent;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button-main {\r\n border: 0;\r\n padding: 3px;\r\n }\r\n\r\n .w-pagebar.z-face-simple .w-button .w-button-icon {\r\n color: #555;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button.z-ds .w-button-icon {\r\n color: #bbb;\r\n }\r\n \r\n \r\n .w-pagebar-num.z-ds {\r\n color: #999;\r\n cursor: default;\r\n background-color: #fff;\r\n }\r\n\r\n .w-pagebar-jump-to {\r\n padding: 0 5px 0 10px;\r\n }\r\n\r\n .w-pagebar-jump-input {\r\n width: 30px;\r\n height: 32px;\r\n border: 1px solid #ddd;\r\n background-color: #fff;\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-pagebar-jump-button {\r\n width: 30px;\r\n height: 30px;\r\n padding: 0;\r\n border: 1px solid #ddd;\r\n background-color: #fafafa;\r\n margin-left: -1px;\r\n color: #888;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-jump-page {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-input {\r\n border-color: var(--w--primary-color);\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-button {\r\n border-color: var(--w--primary-color);;\r\n background-color: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-split',\r\n mixins: [WidgetBase],\r\n props: ['collapsedIcon', 'expandedIcon', 'movable', 'range', 'toNext', 'expanded'],\r\n inject: ['provideLayout'],\r\n created() {\r\n this.$watch('expanded', (v) => {\r\n if (typeof v === 'boolean') this.x.expanded = v\r\n else if (this.x.expanded == null) this.x.expanded = true\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n toggle(exp) {\r\n this.x.expanded = exp == null ? !this.x.expanded : exp\r\n let minorElem = this.x.toNext ? this.el().nextElementSibling : this.el().previousElementSibling\r\n if (minorElem) {\r\n $.q(minorElem).toggleClass('f-split-collapsed', !this.x.expanded)\r\n //$.q(minorElem).css(this.expanded ? {visibility: '', position: '', zIndex: ''} : {visibility: 'hidden', position: 'absolute', zIndex: -1})\r\n }\r\n },\r\n dragstart(e) {\r\n let prevElem = this.el().previousElementSibling\r\n let nextElem = this.el().nextElementSibling\r\n if (prevElem && nextElem) {\r\n let vert = this.inVertical\r\n let minorElem = this.x.toNext ? nextElem : prevElem\r\n let downX = $.eventX(e)\r\n let downY = $.eventY(e)\r\n let posName = vert ? 'top' : 'left'\r\n let sizeName = vert ? 'height' : 'width'\r\n let clientName = vert ? 'clientY' : 'clientX'\r\n let downPos = vert ? downY : downX\r\n let minPos = $.bcr(prevElem)[posName]\r\n let maxPos = $.bcr(nextElem)[vert ? 'bottom' : 'right'] - 5\r\n let movRect = $.lodash.pick($.bcr(this.$refs.movable), ['width', 'height', 'top', 'left'])\r\n let pos\r\n let help\r\n $.moveup((e) => {\r\n if (!help) {\r\n help = $.q(`<div style=\"position:absolute;background:rgba(0,0,0,.3);z-index:101;\"></div>`).css(\r\n movRect).appendTo(document.body)\r\n }\r\n pos = $.numRange(movRect[posName] + e[clientName] - downPos, minPos, maxPos)\r\n help.css({\r\n [posName]: pos\r\n })\r\n }, (e, moved) => {\r\n if (moved && help) {\r\n help.remove()\r\n let size = (this.x.expanded ? $.bcr(minorElem)[sizeName] : 0) + (this.x.toNext ? 1 : -1) * (downPos -\r\n pos)\r\n if (size <= 0) {\r\n this.toggle(false)\r\n } else {\r\n if (!this.x.expanded) this.toggle(true)\r\n $.q(minorElem).css({\r\n [sizeName]: size\r\n })\r\n }\r\n }\r\n }, e)\r\n }\r\n },\r\n html_slots() {\r\n let r = []\r\n let expandedIcon = this.x.expandedIcon || this.x.collapsedIcon\r\n let collapsedIcon = this.x.collapsedIcon || expandedIcon\r\n if (expandedIcon) {\r\n r.push(this.html_icon(this.x.expanded ? expandedIcon : collapsedIcon, 'w-split-icon', () => this.toggle()))\r\n }\r\n if (this.x.movable) {\r\n r.push(h('div', {\r\n ref: 'movable',\r\n class: 'w-split-movable',\r\n onmousedown: this.dragstart\r\n }))\r\n }\r\n return r\r\n }\r\n },\r\n computed: {\r\n inVertical() {\r\n return this.provideLayout === 'w-vertical'\r\n },\r\n html_props() {\r\n return {\r\n class: ['f-rel z-' + (this.inVertical ? 'vertical' : 'horizontal'), {\r\n 'z-tonext': this.x.toNext\r\n }]\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-split-collapsed {\r\n position: absolute !important;\r\n visibility: hidden !important;\r\n z-index: -1;\r\n opacity: 0;\r\n }\r\n\r\n .w-split-icon {\r\n position: absolute;\r\n cursor: pointer;\r\n line-height: 1;\r\n z-index: 1;\r\n }\r\n\r\n .w-split.z-vertical .w-split-icon {\r\n left: 50%;\r\n top: 0;\r\n transform: translateX(-50%);\r\n }\r\n\r\n .w-split.z-vertical.z-tonext .w-split-icon {\r\n top: auto;\r\n bottom: 0;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-icon {\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n }\r\n\r\n .w-split.z-horizontal.z-tonext .w-split-icon {\r\n left: auto;\r\n right: 0;\r\n }\r\n\r\n .w-split-movable {\r\n position: absolute;\r\n }\r\n\r\n .w-split.z-vertical .w-split-movable {\r\n height: 100%;\r\n min-height: 5px;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n cursor: row-resize;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-movable {\r\n width: 100%;\r\n min-width: 5px;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n cursor: col-resize;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-toggle',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['collapsedIcon', 'expandedIcon', 'expanded', 'align', 'valign'],\r\n methods: {\r\n x_default() {\r\n return {\r\n expanded: true,\r\n valign: 'middle',\r\n }\r\n },\r\n toggle(e = true) {\r\n let exp = typeof e === 'boolean' ? e : !this.x.expanded\r\n this.x.expanded = exp\r\n $.q(this.el()).nextUntil('.w-toggle').toggle(exp)\r\n },\r\n html_slots() {\r\n let exp = this.x.expanded\r\n let ico = exp ? this.x.expandedIcon : this.x.collapsedIcon\r\n return [ico && h(Img, {\r\n src: ico,\r\n class: 'w-toggle-icon',\r\n }), h('div', {class: 'w-toggle-main'}, this.$slots.default())]\r\n }\r\n },\r\n computed: {\r\n html_props() {\r\n let exp = this.x.expanded\r\n return {\r\n class: ['w-horizontal f-pointer',\r\n {\r\n 'z-expanded': exp,\r\n 'z-collapse': !exp,\r\n },\r\n this.html_align_class],\r\n onclick: this.toggle\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-toggle-icon {\r\n margin-right: 5px;\r\n flex-shrink: 0;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-video',\r\n mixins: [WidgetBase],\r\n props: ['src', 'poster'],\r\n data() {\r\n return {\r\n playing: false,\r\n }\r\n },\r\n methods: {\r\n getMimeType() {\r\n let filePath = $.strTo(this.x.src, '?') || this.x.src\r\n let fileName = $.strFrom(filePath, '/', true) || filePath\r\n let suffix = $.strFrom(fileName, '.', true)\r\n return suffix ? mimeType(fileName) : 'video/mp4'\r\n },\r\n html_slots() {\r\n return [h('video', {\r\n class: 'w-video-vd f-width f-height',\r\n ref: 'vd',\r\n src: this.x.src,\r\n poster: this.x.poster,\r\n onplay: e => this.playing = true,\r\n onpause: e => this.playing = false,\r\n controls: true,\r\n 'webkit-playsinline': true,\r\n 'playsinline': true,\r\n 'x-webkit-airplay': true,\r\n 'x5-playsinline': true,\r\n 'x5-video-player-type': 'h5',\r\n 'x5-video-orientation': 'h5',\r\n 'x5-video-player-fullscreen': true,\r\n }), h('div', {\r\n class: 'w-video-play f-abs-center f-flex-center',\r\n innerHTML: '<i class=\"f-i f-i-play\"></i>',\r\n onclick: e => {\r\n let o = this.$refs.vd\r\n o.paused ? o.play() : o.pause()\r\n }\r\n })]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['f-rel f-flex-center', {'z-play': this.playing}]\r\n }\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-video {\r\n box-sizing: border-box;\r\n background: #000;\r\n }\r\n\r\n .w-video.z-play .w-video-play {\r\n display: none\r\n }\r\n\r\n .w-video-play {\r\n display: flex;\r\n width: 62px;\r\n height: 62px;\r\n background: rgba(0, 0, 0, .5);\r\n border-radius: 50%;\r\n z-index: 1;\r\n }\r\n\r\n .w-video-play .f-i {\r\n color: #fff;\r\n font-size: 36px;\r\n transform: translate(4px, 0px);\r\n cursor: default\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-progress',\r\n mixins: [WidgetBase],\r\n props: ['percent', 'range', 'text'],\r\n methods: {\r\n html_slots() {\r\n let w = $.number(this.x.percent)\r\n\t\t\t\tlet text = this.x.text\r\n\t\t\t\tif (text == null) {\r\n\t\t\t\t\ttext = w + '%'\r\n\t\t\t\t}\r\n return [\r\n h('span', {\r\n class: 'w-progress-text'\r\n }, text),\r\n h('div', {\r\n class: 'w-progress-gut',\r\n style: {\r\n width: `${w}%`\r\n }\r\n }, h('div', {\r\n class: 'w-progress-bar f-flex f-flex-center',\r\n style: {\r\n width: `${w==0?w:(100*100/w)}%`\r\n }\r\n }, h('span', {\r\n class: 'w-progress-text'\r\n }, text)))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n if (this.x.range) {\r\n let a = this.x.range.split(',')\r\n for (let i = a.length - 1; i >= 0; i--) {\r\n if ($.number(this.x.percent) >= $.number(a[i])) return 'z-' + a[i]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-progress {\r\n display: flex;\r\n position: relative;\r\n height: 18px;\r\n border-radius: 20px;\r\n background: #e6e6e6;\r\n align-items: center;\r\n justify-content: center;\r\n overflow: hidden;\r\n font-size: 14px;\r\n line-height: 1;\r\n }\r\n\r\n .w-progress-gut {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n background: var(--w--primary-color);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n transition: width, background .1s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-progress-bar {\r\n color: #fff;\r\n height: 100%;\r\n }\r\n</style>\r\n","<template>\r\n <w-vertical v-bind=\"html_binds\" :class=\"['f-rel', 'w-calendar-' + this.x.face]\">\r\n <w-vertical class=\"w-calendar-main\" v-if=\"!onlyTime\">\r\n <w-horizontal :class=\"['w-calendar-head', {'f-h-gap': dfish.br.compat.gap}]\" valign=\"middle\" align=\"center\">\r\n <i class=\"w-calendar-head-prev-year f-i f-i-angle-double-left f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(-12)\"></i>\r\n <i class=\"w-calendar-head-prev f-i f-i-angle-single-left f-pointer\" @click=\"clickStep(-1)\"></i>\r\n <w-horizontal :class=\"['w-calendar-head-pop', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <div class=\"w-calendar-head-year f-link\" ref=\"popYear\" @click=\"clickPopYear()\" v-html=\"headYear\"></div>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopYear\" :context=\"$refs.popYear\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popYear\" @close=\"headPopYear=null\">\r\n <div class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(-1)\"><i class=\"f-i f-i-minus\"></i></div>\r\n <w-html height=\"*\" @wheel.passive=\"mousewheelPopYear\">\r\n <div v-for=\"item in headPopYear\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getFullYear()}]\"\r\n @click=\"clickPopYearItem(item)\">{{item}}</div>\r\n </w-html>\r\n <w-html class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(1)\"><i class=\"f-i f-i-plus\"></i>\r\n </w-html>\r\n </w-dialog>\r\n <w-html v-if=\"x.face == 'date'\" class=\"w-calendar-head-month f-link\" ref=\"popMonth\" @click=\"clickPopMonth\">\r\n {{headMonth}}\r\n </w-html>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopMonth\" :context=\"$refs.popMonth\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popMonth\" @close=\"headPopMonth=null\">\r\n <w-html height=\"*\">\r\n <div v-for=\"item in headPopMonth\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getMonth() + 1}]\"\r\n @click=\"clickPopMonthItem(item)\">{{item}}</div>\r\n </w-html>\r\n </w-dialog>\r\n </w-horizontal>\r\n <i class=\"w-calendar-head-next f-i f-i-angle-single-right f-pointer\" @click=\"clickStep(1)\"></i>\r\n <i class=\"w-calendar-head-next-year f-i f-i-angle-double-right f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(12)\"></i>\r\n <div class=\"w-calendar-head-blank\"></div>\r\n </w-horizontal>\r\n <slot name=\"head\"></slot>\r\n <div class=\"w-calendar-body\">\r\n <template v-if=\"x.face == 'date'\">\r\n <div v-for=\"item in loc.calendar.day_title_1\" class=\"w-calendar-daytitle\">{{item}}</div>\r\n </template>\r\n <div v-for=\"item,index in bodyList\" :title=\"item.title\"\r\n :class=\"['w-calendar-item', {'z-on': item.focus && !item.disabled, 'z-pad': item.pad, 'z-ds': item.disabled}]\"\r\n @click=\"clickItem($event,item)\">\r\n <slot :item=\"item\" :index=\"index\">\r\n <div class=\"w-calendar-item-text\">{{item.text}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </w-vertical>\r\n <w-horizontal v-if=\"hasTime\" class=\"w-calendar-time\">\r\n <w-vertical v-if=\"focusHour!==false\" class=\"w-calendar-time-col w-calendar-time-hour\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.hour}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"hour\" :current=\"focusHour\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"h in bodyListHour\" :key=\"h\" :text=\"dfish.strPad(h)\"\r\n :disabled=\"isHourDisabled(h)\" @click=\"clickHour($event,h)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusMinute!==false\" class=\"w-calendar-time-col w-calendar-time-minute\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.minute}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"minute\" :current=\"focusMinute\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"m in bodyListMinute\" :key=\"m\" :text=\"dfish.strPad(m)\"\r\n :disabled=\"isMinuteDisabled(m)\" @click=\"clickMinute($event,m)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusSecond!==false\" class=\"w-calendar-time-col w-calendar-time-second\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.second}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"second\" :current=\"focusSecond\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"s in bodyListSecond\" :key=\"s\" :text=\"dfish.strPad(s)\"\r\n :disabled=\"isSecondDisabled(s)\" @click=\"clickSecond($event,s)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-horizontal>\r\n <w-horizontal v-if=\"success\" :class=\"['w-calendar-foot', {'f-h-gap': dfish.br.compat.gap}]\" align=\"between\"\r\n valign=\"middle\">\r\n <div class=\"w-calendar-button-now f-link\" @click=\"clickNow\">{{loc.calendar.now}}</div>\r\n <div class=\"w-calendar-button-confirm f-link\" @click=\"clickConfirm\">{{loc.confirm}}</div>\r\n </w-horizontal>\r\n </w-vertical>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-calendar',\r\n mixins: [WidgetBase],\r\n emits: ['click:item', 'change'],\r\n props: ['value', 'minValue', 'maxValue', 'current', 'pad', 'face', 'format', 'success', 'cg', 'start',\r\n 'enableHour', 'enableMinute', 'enableSecond', 'defaultHour', 'defaultMinute', 'defaultSecond'\r\n ],\r\n data() {\r\n let dt = this.value2date()\r\n return {\r\n dt,\r\n currentDate: null,\r\n headPopYear: null,\r\n headPopMonth: null,\r\n }\r\n },\r\n watch: {\r\n value(v) {\r\n this.dt = this.value2date()\r\n },\r\n dt(nv, ov) {\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.trigger('change', nv)\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.trigger('change', nv)\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.trigger('change', nv)\r\n }\r\n },\r\n current(nc) {\r\n if (!nc) return\r\n let nv = typeof nc === 'string' ? $.dateParse(nc, this.formatter) : nc\r\n let ov = this.dt\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.dt = nv\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.dt = nv\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.dt = nv\r\n }\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n let b = this.format || ''\r\n return {\r\n face: b === 'yyyy' ? 'year' : b.includes('MM') && !b.includes('dd') ? 'month' :\r\n b.includes('ww') ? 'week' : b.includes('qq') ? 'quarter' : 'date'\r\n }\r\n },\r\n value2date() {\r\n let dt = this.value\r\n let bd = this.minValue\r\n let ed = this.maxValue\r\n let f = this.format || ''\r\n if (bd && (!dt || dt < bd)) {\r\n dt = bd\r\n }\r\n if (ed && (!dt || dt > ed)) {\r\n dt = ed\r\n }\r\n dt = dt ? $.dateParse(dt, f) : new Date()\r\n if (!this.value) this.setDefaultTime(dt)\r\n return dt\r\n },\r\n weekday(d) {\r\n let w = d.getDay()\r\n return w == 0 ? 6 : w - 1\r\n },\r\n setDefaultTime(d) {\r\n let dh = this.defaultHour == null ? d.getHours() : parseFloat(this.defaultHour)\r\n if (this.enableHour) {\r\n let eh = $.arrayNumber(this.enableHour)\r\n if (!eh.includes(dh)) dh = eh[0]\r\n }\r\n d.setHours(dh)\r\n let dm = this.defaultMinute == null ? d.getMinutes() : parseFloat(this.defaultMinute)\r\n if (this.enableMinute) {\r\n let em = $.arrayNumber(this.enableMinute)\r\n if (!em.includes(dm)) dm = em[0]\r\n }\r\n d.setMinutes(dm)\r\n let ds = this.defaultSecond == null ? d.getSeconds() : parseFloat(this.defaultSecond)\r\n if (this.enableSecond) {\r\n let es = $.arrayNumber(this.enableSecond)\r\n if (!es.includes(ds)) ds = es[0]\r\n }\r\n d.setSeconds(ds)\r\n return d\r\n },\r\n fixDate(d) {\r\n if (this.beginDate && d < this.beginDate) d = this.beginDate\r\n if (this.endDate && d > this.endDate) d = this.endDate\r\n return this.setDefaultTime(new Date(d.getTime()))\r\n },\r\n clickStep(a) {\r\n console.log(a)\r\n let d = new Date(this.dt.getTime())\r\n if (this.x.face == 'year') {\r\n d = $.dateAdd(d, 'y', 10 * a)\r\n } else if (this.x.face == 'quarter') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'month') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'date') {\r\n d = $.dateAdd(d, 'M', a)\r\n } else if (this.x.face == 'week') {\r\n d = $.dateAdd(d, 'y', a)\r\n }\r\n this.dt = d\r\n },\r\n clickPopYear(y) {\r\n y = y || (this.dt.getFullYear() - 4)\r\n if (y < 1000) y = 1000\r\n this.headPopYear = Array.from(Array(10)).map((v, i) => y + i)\r\n },\r\n clickPopYearItem(year) {\r\n let d = new Date(this.dt.getTime())\r\n d.setFullYear(year)\r\n this.dt = d\r\n this.headPopYear = null\r\n },\r\n clickPopYearStep(a) {\r\n let r = this.headPopYear\r\n let y = a < 0 ? r[0] - 10 : r[r.length - 1] + 1\r\n this.clickPopYear(y)\r\n },\r\n mousewheelPopYear(e) {\r\n this.clickPopYearStep(e.deltaY > 0 ? -1 : 1)\r\n },\r\n clickPopMonth() {\r\n this.headPopMonth = Array.from(Array(12)).map((v, i) => i + 1)\r\n },\r\n clickPopMonthItem(month) {\r\n let m = this.dt.getMonth()\r\n this.dt = $.dateAdd(this.dt, 'M', month - 1 - this.dt.getMonth())\r\n this.headPopMonth = null\r\n },\r\n clickItem(e, item) {\r\n if (item.disabled) return\r\n if (this.x.current !== undefined) {\r\n this.dt = this.fixDate(item.date)\r\n }\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n if (!this.hasTime)\r\n this.callback(item.value)\r\n },\r\n clickNow() {\r\n this.callback(this.fixDate(new Date()))\r\n },\r\n clickConfirm(s) {\r\n let d = this.dt\r\n let f = this.focusDate\r\n this.callback(this.fixDate(new Date(f.getFullYear(), f.getMonth(), f.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())))\r\n },\r\n callback(v) {\r\n if (typeof v === 'object') {\r\n v = this.fm(v)\r\n }\r\n this.x.success && this.x.success(v)\r\n },\r\n clickHour(e, v) {\r\n this.dt.setHours(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.hour.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickMinute(e, v) {\r\n this.dt.setMinutes(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.minute.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickSecond(e, v) {\r\n this.dt.setSeconds(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.second.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n fm(a) {\r\n return $.dateFormat(typeof a === 'string' ? $.dateParse(a, this.formatter) : a, this.formatter)\r\n },\r\n isHourDisabled(v) {\r\n let n = this.minHour\r\n let m = this.maxHour\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isMinuteDisabled(v) {\r\n let n = this.minMinute\r\n let m = this.maxMinute\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isSecondDisabled(v) {\r\n let n = this.minSecond\r\n let m = this.maxSecond\r\n return (n && n > v) || (m && m < v)\r\n },\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n formatter() {\r\n return this.x.format || 'yyyy-MM-dd'\r\n },\r\n hasTime() {\r\n return /[Hms]/.test(this.formatter)\r\n },\r\n onlyTime() {\r\n return this.hasTime && !/[yMd]/.test(this.formatter)\r\n },\r\n focusValue() {\r\n let d = this.focusDate\r\n return d && this.fm(d)\r\n },\r\n focusDate() {\r\n let c = this.x.current\r\n if (c) {\r\n return $.dateParse(c, this.x.format)\r\n } else if (!this.x.value && this.x.success) {\r\n return this.x.format && this.dt\r\n }\r\n },\r\n beginDate() {\r\n return this.x.minValue && $.dateParse(this.x.minValue, this.formatter)\r\n },\r\n endDate() {\r\n return this.x.maxValue && $.dateParse(this.x.maxValue, this.formatter)\r\n },\r\n focusHour() {\r\n return this.x.format.includes('H') && this.dt.getHours()\r\n },\r\n focusMinute() {\r\n return this.x.format.includes('m') && this.dt.getMinutes()\r\n },\r\n focusSecond() {\r\n return this.x.format.includes('s') && this.dt.getSeconds()\r\n },\r\n minHour() {\r\n if (this.beginDate) {\r\n let d = this.beginDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n maxHour() {\r\n if (this.endDate) {\r\n let d = this.endDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n minMinute() {\r\n if (this.minHour === this.dt.getHours()) {\r\n return this.beginDate.getMinutes()\r\n }\r\n },\r\n maxMinute() {\r\n if (this.maxHour === this.dt.getHours()) {\r\n return this.endDate.getMinutes()\r\n }\r\n },\r\n minSecond() {\r\n if (this.minMinute === this.dt.getMinutes()) {\r\n return this.beginDate.getSeconds()\r\n }\r\n },\r\n maxSecond() {\r\n if (this.maxMinute === this.dt.getMinutes()) {\r\n return this.endDate.getSeconds()\r\n }\r\n },\r\n headYear() {\r\n let y = this.dt.getFullYear()\r\n if (this.x.face === 'year') {\r\n y = this.dt.getFullYear() - (this.dt.getFullYear() % 10)\r\n y += ' - ' + (y + 9)\r\n }\r\n return $.loc.ps($.loc.calendar.y, y)\r\n },\r\n headMonth() {\r\n return $.loc.calendar.monthname[this.dt.getMonth()]\r\n },\r\n bodyList() {\r\n return this.x.face === 'year' ? this.bodyListYear : this.x.face === 'quarter' ? this.bodyListQuarter :\r\n this.x.face === 'month' ? this.bodyListMonth : this.x.face === 'week' ? this.bodyListWeek : this.bodyListDate\r\n },\r\n bodyListYear() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear() - (this.dt.getFullYear() % 10) - 1\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setFullYear(y)\r\n for (let i = 0; i < 12; i++) {\r\n let v = y + i\r\n let g = {\r\n value: v,\r\n text: v,\r\n date: new Date(b.getTime()),\r\n pad: i == 0 || i == 11,\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n r.push(g)\r\n b.setFullYear(b.getFullYear() + 1)\r\n }\r\n return r\r\n },\r\n bodyListQuarter() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 1; i <= 4; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: `Q${i}`,\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 3)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListMonth() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 0; i < 12; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: $.loc.calendar.monthname[i],\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 1)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListWeek() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let w = $.dateWeek(this.dt)\r\n let y = w[0]\r\n let b = $.dateWeekLast(y)\r\n let c = $.dateWeekFirst(y)\r\n let d = c[2]\r\n for (let i = 1, l = b[1]; i <= l; i++) {\r\n let v = this.fm(d)\r\n let g = {\r\n text: i,\r\n value: y + '-' + $.strPad(i),\r\n date: new Date(d.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v,\r\n title: $.loc.ps($.loc.calendar.from_to, $.dateFormat(d, 'yyyy-MM-dd'), $.dateFormat($.dateAdd(d, 'd', 6),\r\n 'yyyy-MM-dd'))\r\n }\r\n d.setDate(d.getDate() + 7)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListDate() {\r\n let b = new Date(this.dt.getTime())\r\n let c = b.getMonth()\r\n let d = new Date(b.getTime())\r\n let f = this.focusValue\r\n let fd = f && $.dateFormat($.dateParse(f, this.x.format), 'yyyy-MM-dd')\r\n let fn = this.beginDate && $.dateFormat(this.beginDate, 'yyyy-MM-dd')\r\n let fm = this.endDate && $.dateFormat(this.endDate, 'yyyy-MM-dd')\r\n let cell = []\r\n b.setDate(1)\r\n d.setDate(new Date(b.getFullYear(), c + 1, 0).getDate())\r\n let g = 7 - (this.weekday(b) + d.getDate()) % 7\r\n if (g && g < 7)\r\n d.setDate(d.getDate() + g)\r\n if (this.weekday(b) > 0)\r\n b.setDate(1 - this.weekday(b))\r\n if (this.x.pad) {\r\n g = 1 + (d.getTime() - b.getTime()) / 86400000\r\n g < 42 && d.setDate(d.getDate() + 42 - g)\r\n }\r\n while (b <= d) {\r\n let v = this.fm(b)\r\n let fv = $.dateFormat(b, 'yyyy-MM-dd')\r\n let t = {\r\n text: b.getDate(),\r\n value: v,\r\n date: new Date(b.getTime()),\r\n pad: b.getMonth() !== c,\r\n disabled: (fn && fn > fv) || (fm && fm < fv) ? true : false,\r\n focus: fd === fv,\r\n }\r\n cell.push(t)\r\n b.setDate(b.getDate() + 1)\r\n }\r\n return cell\r\n },\r\n bodyListHour() {\r\n return this.enableHour ? $.arrayNumber(this.enableHour) : Array.from(Array(24).keys())\r\n },\r\n bodyListMinute() {\r\n return this.enableMinute ? $.arrayNumber(this.enableMinute) : Array.from(Array(60).keys())\r\n },\r\n bodyListSecond() {\r\n return this.enableSecond ? $.arrayNumber(this.enableSecond) : Array.from(Array(60).keys())\r\n },\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-calendar-dialog {\r\n line-height: 1.5;\r\n --w-datepicker-dialog-width: 260px;\r\n --w-datepicker-dialog-time-width: 66px;\r\n width: calc(var(--w-datepicker-dialog-width) + calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0)));\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime {\r\n --w-datepicker-dialog-width: 2px;\r\n --w-datepicker-dialog-time-height: 254px;\r\n }\r\n\r\n .w-calendar-dialog.z-hastime .w-calendar-head,\r\n .w-calendar-dialog.z-hastime .w-calendar-body {\r\n box-sizing: border-box;\r\n width: calc(var(--w-datepicker-dialog-width) - 2px);\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-head {\r\n box-sizing: border-box;\r\n width: var(--w-datepicker-dialog-width);\r\n }\r\n\r\n .w-calendar-dialog .w-calendar-body {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-calendar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-calendar-head,\r\n .w-calendar-foot {\r\n height: 36px;\r\n padding: 0 5px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-pop {\r\n padding: 0 10px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-blank {\r\n display: none;\r\n flex: 1;\r\n }\r\n\r\n .w-calendar-head-month {\r\n margin-left: 3px;\r\n }\r\n\r\n .w-calendar-body {\r\n display: grid;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-body {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-item {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-calendar-date .w-calendar-body,\r\n .w-calendar-week .w-calendar-body {\r\n grid-template-columns: repeat(7, 1fr);\r\n }\r\n\r\n .w-calendar-body {\r\n grid-template-columns: repeat(4, 1fr);\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n\r\n .w-calendar-dialog .w-calendar-month .w-calendar-body,\r\n .w-calendar-dialog .w-calendar-year .w-calendar-body {\r\n min-height: 120px;\r\n }\r\n\r\n .w-calendar-item {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .w-calendar-item,\r\n .w-calendar-daytitle {\r\n text-align: center;\r\n padding: 5px;\r\n cursor: default;\r\n }\r\n\r\n .w-calendar-item:not(.z-ds):not(.z-on):hover,\r\n .w-calendar-head-year-item:hover {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-calendar-item.z-on {\r\n background: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n \r\n .w-calendar-item.z-ds {\r\n background: #f9f9f9;\r\n }\r\n\r\n .w-calendar-item.z-ds,\r\n .w-calendar-item.z-pad {\r\n color: #999;\r\n }\r\n\r\n .w-calendar-item-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-calendar-foot {\r\n position: relative;\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n position: static;\r\n height: var(--w-datepicker-dialog-time-height);\r\n }\r\n\r\n .w-calendar-time {\r\n position: absolute;\r\n top: 0;\r\n bottom: 35px;\r\n right: 0;\r\n width: calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0));\r\n border-left: 1px solid #ddd;\r\n }\r\n \r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n border-left: 0;\r\n }\r\n\r\n .w-calendar-time-th,\r\n .w-calendar-time-item {\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-time-th {\r\n line-height: 36px;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-time-item {\r\n height: 30px;\r\n border: 0;\r\n }\r\n\r\n .w-calendar-time-item.z-on,\r\n .w-calendar-head-year-item.z-on {\r\n background: var(--w--vice-color);\r\n }\r\n\r\n .w-calendar-head-year-item {\r\n height: 24px;\r\n line-height: 24px;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-head .f-i {\r\n font-size: 20px;\r\n color: #aaa;\r\n }\r\n\r\n .w-calendar-head .f-i:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-calendar-time-body .w-scroll-cont {\r\n padding: 94px 0;\r\n }\r\n \r\n .w-calendar-time-body .w-button.z-ds {\r\n background: #fff;\r\n color: #aaa;\r\n }\r\n \r\n .w-calendar-button-now,\r\n .w-calendar-button-confirm {\r\n padding: 2px 10px;\r\n cursor: pointer;\r\n }\r\n</style>\r\n","<template>\r\n <w-vertical v-bind=\"html_binds\" :class=\"['f-rel', 'w-calendar-' + this.x.face]\">\r\n <w-vertical class=\"w-calendar-main\" v-if=\"!onlyTime\">\r\n <w-horizontal :class=\"['w-calendar-head', {'f-h-gap': dfish.br.compat.gap}]\" valign=\"middle\" align=\"center\">\r\n <i class=\"w-calendar-head-prev-year f-i f-i-angle-double-left f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(-12)\"></i>\r\n <i class=\"w-calendar-head-prev f-i f-i-angle-single-left f-pointer\" @click=\"clickStep(-1)\"></i>\r\n <w-horizontal :class=\"['w-calendar-head-pop', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <div class=\"w-calendar-head-year f-link\" ref=\"popYear\" @click=\"clickPopYear()\" v-html=\"headYear\"></div>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopYear\" :context=\"$refs.popYear\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popYear\" @close=\"headPopYear=null\">\r\n <div class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(-1)\"><i class=\"f-i f-i-minus\"></i></div>\r\n <w-html height=\"*\" @wheel.passive=\"mousewheelPopYear\">\r\n <div v-for=\"item in headPopYear\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getFullYear()}]\"\r\n @click=\"clickPopYearItem(item)\">{{item}}</div>\r\n </w-html>\r\n <w-html class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(1)\"><i class=\"f-i f-i-plus\"></i>\r\n </w-html>\r\n </w-dialog>\r\n <w-html v-if=\"x.face == 'date'\" class=\"w-calendar-head-month f-link\" ref=\"popMonth\" @click=\"clickPopMonth\">\r\n {{headMonth}}\r\n </w-html>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopMonth\" :context=\"$refs.popMonth\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popMonth\" @close=\"headPopMonth=null\">\r\n <w-html height=\"*\">\r\n <div v-for=\"item in headPopMonth\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getMonth() + 1}]\"\r\n @click=\"clickPopMonthItem(item)\">{{item}}</div>\r\n </w-html>\r\n </w-dialog>\r\n </w-horizontal>\r\n <i class=\"w-calendar-head-next f-i f-i-angle-single-right f-pointer\" @click=\"clickStep(1)\"></i>\r\n <i class=\"w-calendar-head-next-year f-i f-i-angle-double-right f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(12)\"></i>\r\n <div class=\"w-calendar-head-blank\"></div>\r\n </w-horizontal>\r\n <slot name=\"head\"></slot>\r\n <div class=\"w-calendar-body\">\r\n <template v-if=\"x.face == 'date'\">\r\n <div v-for=\"item in loc.calendar.day_title_1\" class=\"w-calendar-daytitle\">{{item}}</div>\r\n </template>\r\n <div v-for=\"item,index in bodyList\" :title=\"item.title\"\r\n :class=\"['w-calendar-item', {'z-on': item.focus && !item.disabled, 'z-pad': item.pad, 'z-ds': item.disabled}]\"\r\n @click=\"clickItem($event,item)\">\r\n <slot :item=\"item\" :index=\"index\">\r\n <div class=\"w-calendar-item-text\">{{item.text}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </w-vertical>\r\n <w-horizontal v-if=\"hasTime\" class=\"w-calendar-time\">\r\n <w-vertical v-if=\"focusHour!==false\" class=\"w-calendar-time-col w-calendar-time-hour\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.hour}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"hour\" :current=\"focusHour\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"h in bodyListHour\" :key=\"h\" :text=\"dfish.strPad(h)\"\r\n :disabled=\"isHourDisabled(h)\" @click=\"clickHour($event,h)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusMinute!==false\" class=\"w-calendar-time-col w-calendar-time-minute\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.minute}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"minute\" :current=\"focusMinute\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"m in bodyListMinute\" :key=\"m\" :text=\"dfish.strPad(m)\"\r\n :disabled=\"isMinuteDisabled(m)\" @click=\"clickMinute($event,m)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusSecond!==false\" class=\"w-calendar-time-col w-calendar-time-second\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.second}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"second\" :current=\"focusSecond\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"s in bodyListSecond\" :key=\"s\" :text=\"dfish.strPad(s)\"\r\n :disabled=\"isSecondDisabled(s)\" @click=\"clickSecond($event,s)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-horizontal>\r\n <w-horizontal v-if=\"success\" :class=\"['w-calendar-foot', {'f-h-gap': dfish.br.compat.gap}]\" align=\"between\"\r\n valign=\"middle\">\r\n <div class=\"w-calendar-button-now f-link\" @click=\"clickNow\">{{loc.calendar.now}}</div>\r\n <div class=\"w-calendar-button-confirm f-link\" @click=\"clickConfirm\">{{loc.confirm}}</div>\r\n </w-horizontal>\r\n </w-vertical>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-calendar',\r\n mixins: [WidgetBase],\r\n emits: ['click:item', 'change'],\r\n props: ['value', 'minValue', 'maxValue', 'current', 'pad', 'face', 'format', 'success', 'cg', 'start',\r\n 'enableHour', 'enableMinute', 'enableSecond', 'defaultHour', 'defaultMinute', 'defaultSecond'\r\n ],\r\n data() {\r\n let dt = this.value2date()\r\n return {\r\n dt,\r\n currentDate: null,\r\n headPopYear: null,\r\n headPopMonth: null,\r\n }\r\n },\r\n watch: {\r\n value(v) {\r\n this.dt = this.value2date()\r\n },\r\n dt(nv, ov) {\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.trigger('change', nv)\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.trigger('change', nv)\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.trigger('change', nv)\r\n }\r\n },\r\n current(nc) {\r\n if (!nc) return\r\n let nv = typeof nc === 'string' ? $.dateParse(nc, this.formatter) : nc\r\n let ov = this.dt\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.dt = nv\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.dt = nv\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.dt = nv\r\n }\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n let b = this.format || ''\r\n return {\r\n face: b === 'yyyy' ? 'year' : b.includes('MM') && !b.includes('dd') ? 'month' :\r\n b.includes('ww') ? 'week' : b.includes('qq') ? 'quarter' : 'date'\r\n }\r\n },\r\n value2date() {\r\n let dt = this.value\r\n let bd = this.minValue\r\n let ed = this.maxValue\r\n let f = this.format || ''\r\n if (bd && (!dt || dt < bd)) {\r\n dt = bd\r\n }\r\n if (ed && (!dt || dt > ed)) {\r\n dt = ed\r\n }\r\n dt = dt ? $.dateParse(dt, f) : new Date()\r\n if (!this.value) this.setDefaultTime(dt)\r\n return dt\r\n },\r\n weekday(d) {\r\n let w = d.getDay()\r\n return w == 0 ? 6 : w - 1\r\n },\r\n setDefaultTime(d) {\r\n let dh = this.defaultHour == null ? d.getHours() : parseFloat(this.defaultHour)\r\n if (this.enableHour) {\r\n let eh = $.arrayNumber(this.enableHour)\r\n if (!eh.includes(dh)) dh = eh[0]\r\n }\r\n d.setHours(dh)\r\n let dm = this.defaultMinute == null ? d.getMinutes() : parseFloat(this.defaultMinute)\r\n if (this.enableMinute) {\r\n let em = $.arrayNumber(this.enableMinute)\r\n if (!em.includes(dm)) dm = em[0]\r\n }\r\n d.setMinutes(dm)\r\n let ds = this.defaultSecond == null ? d.getSeconds() : parseFloat(this.defaultSecond)\r\n if (this.enableSecond) {\r\n let es = $.arrayNumber(this.enableSecond)\r\n if (!es.includes(ds)) ds = es[0]\r\n }\r\n d.setSeconds(ds)\r\n return d\r\n },\r\n fixDate(d) {\r\n if (this.beginDate && d < this.beginDate) d = this.beginDate\r\n if (this.endDate && d > this.endDate) d = this.endDate\r\n return this.setDefaultTime(new Date(d.getTime()))\r\n },\r\n clickStep(a) {\r\n console.log(a)\r\n let d = new Date(this.dt.getTime())\r\n if (this.x.face == 'year') {\r\n d = $.dateAdd(d, 'y', 10 * a)\r\n } else if (this.x.face == 'quarter') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'month') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'date') {\r\n d = $.dateAdd(d, 'M', a)\r\n } else if (this.x.face == 'week') {\r\n d = $.dateAdd(d, 'y', a)\r\n }\r\n this.dt = d\r\n },\r\n clickPopYear(y) {\r\n y = y || (this.dt.getFullYear() - 4)\r\n if (y < 1000) y = 1000\r\n this.headPopYear = Array.from(Array(10)).map((v, i) => y + i)\r\n },\r\n clickPopYearItem(year) {\r\n let d = new Date(this.dt.getTime())\r\n d.setFullYear(year)\r\n this.dt = d\r\n this.headPopYear = null\r\n },\r\n clickPopYearStep(a) {\r\n let r = this.headPopYear\r\n let y = a < 0 ? r[0] - 10 : r[r.length - 1] + 1\r\n this.clickPopYear(y)\r\n },\r\n mousewheelPopYear(e) {\r\n this.clickPopYearStep(e.deltaY > 0 ? -1 : 1)\r\n },\r\n clickPopMonth() {\r\n this.headPopMonth = Array.from(Array(12)).map((v, i) => i + 1)\r\n },\r\n clickPopMonthItem(month) {\r\n let m = this.dt.getMonth()\r\n this.dt = $.dateAdd(this.dt, 'M', month - 1 - this.dt.getMonth())\r\n this.headPopMonth = null\r\n },\r\n clickItem(e, item) {\r\n if (item.disabled) return\r\n if (this.x.current !== undefined) {\r\n this.dt = this.fixDate(item.date)\r\n }\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n if (!this.hasTime)\r\n this.callback(item.value)\r\n },\r\n clickNow() {\r\n this.callback(this.fixDate(new Date()))\r\n },\r\n clickConfirm(s) {\r\n let d = this.dt\r\n let f = this.focusDate\r\n this.callback(this.fixDate(new Date(f.getFullYear(), f.getMonth(), f.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())))\r\n },\r\n callback(v) {\r\n if (typeof v === 'object') {\r\n v = this.fm(v)\r\n }\r\n this.x.success && this.x.success(v)\r\n },\r\n clickHour(e, v) {\r\n this.dt.setHours(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.hour.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickMinute(e, v) {\r\n this.dt.setMinutes(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.minute.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickSecond(e, v) {\r\n this.dt.setSeconds(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.second.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n fm(a) {\r\n return $.dateFormat(typeof a === 'string' ? $.dateParse(a, this.formatter) : a, this.formatter)\r\n },\r\n isHourDisabled(v) {\r\n let n = this.minHour\r\n let m = this.maxHour\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isMinuteDisabled(v) {\r\n let n = this.minMinute\r\n let m = this.maxMinute\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isSecondDisabled(v) {\r\n let n = this.minSecond\r\n let m = this.maxSecond\r\n return (n && n > v) || (m && m < v)\r\n },\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n formatter() {\r\n return this.x.format || 'yyyy-MM-dd'\r\n },\r\n hasTime() {\r\n return /[Hms]/.test(this.formatter)\r\n },\r\n onlyTime() {\r\n return this.hasTime && !/[yMd]/.test(this.formatter)\r\n },\r\n focusValue() {\r\n let d = this.focusDate\r\n return d && this.fm(d)\r\n },\r\n focusDate() {\r\n let c = this.x.current\r\n if (c) {\r\n return $.dateParse(c, this.x.format)\r\n } else if (!this.x.value && this.x.success) {\r\n return this.x.format && this.dt\r\n }\r\n },\r\n beginDate() {\r\n return this.x.minValue && $.dateParse(this.x.minValue, this.formatter)\r\n },\r\n endDate() {\r\n return this.x.maxValue && $.dateParse(this.x.maxValue, this.formatter)\r\n },\r\n focusHour() {\r\n return this.x.format.includes('H') && this.dt.getHours()\r\n },\r\n focusMinute() {\r\n return this.x.format.includes('m') && this.dt.getMinutes()\r\n },\r\n focusSecond() {\r\n return this.x.format.includes('s') && this.dt.getSeconds()\r\n },\r\n minHour() {\r\n if (this.beginDate) {\r\n let d = this.beginDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n maxHour() {\r\n if (this.endDate) {\r\n let d = this.endDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n minMinute() {\r\n if (this.minHour === this.dt.getHours()) {\r\n return this.beginDate.getMinutes()\r\n }\r\n },\r\n maxMinute() {\r\n if (this.maxHour === this.dt.getHours()) {\r\n return this.endDate.getMinutes()\r\n }\r\n },\r\n minSecond() {\r\n if (this.minMinute === this.dt.getMinutes()) {\r\n return this.beginDate.getSeconds()\r\n }\r\n },\r\n maxSecond() {\r\n if (this.maxMinute === this.dt.getMinutes()) {\r\n return this.endDate.getSeconds()\r\n }\r\n },\r\n headYear() {\r\n let y = this.dt.getFullYear()\r\n if (this.x.face === 'year') {\r\n y = this.dt.getFullYear() - (this.dt.getFullYear() % 10)\r\n y += ' - ' + (y + 9)\r\n }\r\n return $.loc.ps($.loc.calendar.y, y)\r\n },\r\n headMonth() {\r\n return $.loc.calendar.monthname[this.dt.getMonth()]\r\n },\r\n bodyList() {\r\n return this.x.face === 'year' ? this.bodyListYear : this.x.face === 'quarter' ? this.bodyListQuarter :\r\n this.x.face === 'month' ? this.bodyListMonth : this.x.face === 'week' ? this.bodyListWeek : this.bodyListDate\r\n },\r\n bodyListYear() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear() - (this.dt.getFullYear() % 10) - 1\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setFullYear(y)\r\n for (let i = 0; i < 12; i++) {\r\n let v = y + i\r\n let g = {\r\n value: v,\r\n text: v,\r\n date: new Date(b.getTime()),\r\n pad: i == 0 || i == 11,\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n r.push(g)\r\n b.setFullYear(b.getFullYear() + 1)\r\n }\r\n return r\r\n },\r\n bodyListQuarter() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 1; i <= 4; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: `Q${i}`,\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 3)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListMonth() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 0; i < 12; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: $.loc.calendar.monthname[i],\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 1)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListWeek() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let w = $.dateWeek(this.dt)\r\n let y = w[0]\r\n let b = $.dateWeekLast(y)\r\n let c = $.dateWeekFirst(y)\r\n let d = c[2]\r\n for (let i = 1, l = b[1]; i <= l; i++) {\r\n let v = this.fm(d)\r\n let g = {\r\n text: i,\r\n value: y + '-' + $.strPad(i),\r\n date: new Date(d.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v,\r\n title: $.loc.ps($.loc.calendar.from_to, $.dateFormat(d, 'yyyy-MM-dd'), $.dateFormat($.dateAdd(d, 'd', 6),\r\n 'yyyy-MM-dd'))\r\n }\r\n d.setDate(d.getDate() + 7)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListDate() {\r\n let b = new Date(this.dt.getTime())\r\n let c = b.getMonth()\r\n let d = new Date(b.getTime())\r\n let f = this.focusValue\r\n let fd = f && $.dateFormat($.dateParse(f, this.x.format), 'yyyy-MM-dd')\r\n let fn = this.beginDate && $.dateFormat(this.beginDate, 'yyyy-MM-dd')\r\n let fm = this.endDate && $.dateFormat(this.endDate, 'yyyy-MM-dd')\r\n let cell = []\r\n b.setDate(1)\r\n d.setDate(new Date(b.getFullYear(), c + 1, 0).getDate())\r\n let g = 7 - (this.weekday(b) + d.getDate()) % 7\r\n if (g && g < 7)\r\n d.setDate(d.getDate() + g)\r\n if (this.weekday(b) > 0)\r\n b.setDate(1 - this.weekday(b))\r\n if (this.x.pad) {\r\n g = 1 + (d.getTime() - b.getTime()) / 86400000\r\n g < 42 && d.setDate(d.getDate() + 42 - g)\r\n }\r\n while (b <= d) {\r\n let v = this.fm(b)\r\n let fv = $.dateFormat(b, 'yyyy-MM-dd')\r\n let t = {\r\n text: b.getDate(),\r\n value: v,\r\n date: new Date(b.getTime()),\r\n pad: b.getMonth() !== c,\r\n disabled: (fn && fn > fv) || (fm && fm < fv) ? true : false,\r\n focus: fd === fv,\r\n }\r\n cell.push(t)\r\n b.setDate(b.getDate() + 1)\r\n }\r\n return cell\r\n },\r\n bodyListHour() {\r\n return this.enableHour ? $.arrayNumber(this.enableHour) : Array.from(Array(24).keys())\r\n },\r\n bodyListMinute() {\r\n return this.enableMinute ? $.arrayNumber(this.enableMinute) : Array.from(Array(60).keys())\r\n },\r\n bodyListSecond() {\r\n return this.enableSecond ? $.arrayNumber(this.enableSecond) : Array.from(Array(60).keys())\r\n },\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-calendar-dialog {\r\n line-height: 1.5;\r\n --w-datepicker-dialog-width: 260px;\r\n --w-datepicker-dialog-time-width: 66px;\r\n width: calc(var(--w-datepicker-dialog-width) + calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0)));\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime {\r\n --w-datepicker-dialog-width: 2px;\r\n --w-datepicker-dialog-time-height: 254px;\r\n }\r\n\r\n .w-calendar-dialog.z-hastime .w-calendar-head,\r\n .w-calendar-dialog.z-hastime .w-calendar-body {\r\n box-sizing: border-box;\r\n width: calc(var(--w-datepicker-dialog-width) - 2px);\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-head {\r\n box-sizing: border-box;\r\n width: var(--w-datepicker-dialog-width);\r\n }\r\n\r\n .w-calendar-dialog .w-calendar-body {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-calendar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-calendar-head,\r\n .w-calendar-foot {\r\n height: 36px;\r\n padding: 0 5px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-pop {\r\n padding: 0 10px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-blank {\r\n display: none;\r\n flex: 1;\r\n }\r\n\r\n .w-calendar-head-month {\r\n margin-left: 3px;\r\n }\r\n\r\n .w-calendar-body {\r\n display: grid;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-body {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-item {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-calendar-date .w-calendar-body,\r\n .w-calendar-week .w-calendar-body {\r\n grid-template-columns: repeat(7, 1fr);\r\n }\r\n\r\n .w-calendar-body {\r\n grid-template-columns: repeat(4, 1fr);\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n\r\n .w-calendar-dialog .w-calendar-month .w-calendar-body,\r\n .w-calendar-dialog .w-calendar-year .w-calendar-body {\r\n min-height: 120px;\r\n }\r\n\r\n .w-calendar-item {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .w-calendar-item,\r\n .w-calendar-daytitle {\r\n text-align: center;\r\n padding: 5px;\r\n cursor: default;\r\n }\r\n\r\n .w-calendar-item:not(.z-ds):not(.z-on):hover,\r\n .w-calendar-head-year-item:hover {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-calendar-item.z-on {\r\n background: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n \r\n .w-calendar-item.z-ds {\r\n background: #f9f9f9;\r\n }\r\n\r\n .w-calendar-item.z-ds,\r\n .w-calendar-item.z-pad {\r\n color: #999;\r\n }\r\n\r\n .w-calendar-item-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-calendar-foot {\r\n position: relative;\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n position: static;\r\n height: var(--w-datepicker-dialog-time-height);\r\n }\r\n\r\n .w-calendar-time {\r\n position: absolute;\r\n top: 0;\r\n bottom: 35px;\r\n right: 0;\r\n width: calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0));\r\n border-left: 1px solid #ddd;\r\n }\r\n \r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n border-left: 0;\r\n }\r\n\r\n .w-calendar-time-th,\r\n .w-calendar-time-item {\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-time-th {\r\n line-height: 36px;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-time-item {\r\n height: 30px;\r\n border: 0;\r\n }\r\n\r\n .w-calendar-time-item.z-on,\r\n .w-calendar-head-year-item.z-on {\r\n background: var(--w--vice-color);\r\n }\r\n\r\n .w-calendar-head-year-item {\r\n height: 24px;\r\n line-height: 24px;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-head .f-i {\r\n font-size: 20px;\r\n color: #aaa;\r\n }\r\n\r\n .w-calendar-head .f-i:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-calendar-time-body .w-scroll-cont {\r\n padding: 94px 0;\r\n }\r\n \r\n .w-calendar-time-body .w-button.z-ds {\r\n background: #fff;\r\n color: #aaa;\r\n }\r\n \r\n .w-calendar-button-now,\r\n .w-calendar-button-confirm {\r\n padding: 2px 10px;\r\n cursor: pointer;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n\r\n export default {\r\n name: 'w-timeline',\r\n mixins: [Scroll, PubParent],\r\n props: ['face', 'vertical'],\r\n methods: {\r\n indent() {\r\n let len = this.$refs.wrap.querySelectorAll('.w-timeline-item').length\r\n if (len <= 1) return\r\n let vt = this.x.vertical\r\n let size = vt ? 'width' : 'height'\r\n let prevWidth = 0\r\n let nextWidth = 0\r\n for (let i = 0; i < len; i++) {\r\n let prev = this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i}\"]`)\r\n let next = i < len - 1 && this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i+1}\"]`)\r\n let prevBcr = $.bcr(prev.querySelector('.w-timeline-item-icon-img'))\r\n if (prev.parentNode == this.$refs.prev) {\r\n prevWidth = Math.max(prevWidth, prevBcr[size])\r\n } else {\r\n nextWidth = Math.max(nextWidth, prevBcr[size])\r\n }\r\n if (next && prev.parentNode != next.parentNode) {\r\n let nextBcr = $.bcr(next.querySelector('.w-timeline-item-icon-img'))\r\n if (vt && prevBcr.bottom + 25 > nextBcr.top) {\r\n $.q(next).css({\r\n marginTop: prevBcr.bottom + 25 - nextBcr.top\r\n })\r\n } else if (!vt && prevBcr.right + 50 > nextBcr.left) {\r\n $.q(next).css({\r\n marginLeft: prevBcr.right + 50 - nextBcr.left\r\n })\r\n }\r\n }\r\n }\r\n let prevItems = $.q('.w-timeline-item', this.$refs.prev)\r\n prevItems.each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginRight' : 'marginBottom']: (prevWidth - bcr[size]) / 2\r\n })\r\n })\r\n $.q('.w-timeline-item', this.$refs.next).each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginLeft' : 'marginTop']: (nextWidth - bcr[size]) / 2\r\n })\r\n })\r\n prevItems.length && $.q(this.$refs.next).css({\r\n [vt ? 'marginLeft' : 'marginTop']: `-${nextWidth/2 + prevWidth/2}px`\r\n })\r\n \r\n const wrapBcr = $.bcr(this.$refs.wrap)\r\n const center = []\r\n let bg = []\r\n let linePos = 0\r\n let lineColor = '#ddd'\r\n for (let i = 0; i < len; i++) {\r\n let el = $.q(`.w-timeline-item[w-index=\"${i}\"]`, this.$refs.wrap)\r\n let b = $.bcr(el.find('.w-timeline-item-icon-img')[0])\r\n let c = {x: b.left + (b.width / 2), y: b.top + (b.height / 2), color: el.attr('w-line-color')}\r\n center.push(c)\r\n }\r\n center.sort((n, m) => this.x.vertical ? (n.y < m.y ? -1 : 0) : (n.x < m.x ? -1 : 0))\r\n for (let i = 0; i < len; i++) {\r\n const c = center[i]\r\n if (i > 0) {\r\n const prev = center[0]\r\n linePos = this.x.vertical ? c.y - prev.y : c.x - prev.x\r\n bg.push(`${lineColor} ${linePos}px`)\r\n }\r\n if (c.color) lineColor = c.color\r\n if (i > 0) {\r\n bg.push(`${lineColor} ${linePos}px`)\r\n }\r\n }\r\n if (this.x.vertical) {\r\n $.q(this.$refs.line).css({\r\n width: 2,\r\n height: center[len-1].y - center[0].y,\r\n top: center[0].y - wrapBcr.top,\r\n left: center[0].x - wrapBcr.left - 1,\r\n })\r\n } else {\r\n $.q(this.$refs.line).css({\r\n width: center[len-1].x - center[0].x,\r\n height: 2,\r\n top: center[0].y - wrapBcr.top - 1,\r\n left: center[0].x - wrapBcr.left,\r\n background: `linear-gradient(to right, ${bg.join()})`\r\n })\r\n }\r\n\r\n },\r\n html_slots() {\r\n let prevSlots = []\r\n let nextSlots = []\r\n let vt = this.x.vertical\r\n this.slots_children().forEach((c, i) => {\r\n $.lodash.set(c, 'props.index', i)\r\n if (vt) {\r\n (c.props.position == 'right' ? prevSlots : nextSlots).push(c)\r\n } else {\r\n (c.props.position == 'bottom' ? nextSlots : prevSlots).push(c)\r\n }\r\n })\r\n return this.html_scroll_slots(\r\n h('div', {\r\n ref: 'wrap',\r\n class: 'w-timeline-wrap'\r\n }, [\r\n h('div', {\r\n ref: 'line',\r\n class: 'w-timeline-line'\r\n }),\r\n h('div', {\r\n ref: 'prev',\r\n class: ['w-timeline-prev', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, prevSlots),\r\n h('div', {\r\n ref: 'next',\r\n class: ['w-timeline-next', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, nextSlots),\r\n ])\r\n )\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return [this.html_scroll_class,\r\n {\r\n ['z-face-' + this.x.face]: this.x.face,\r\n 'z-horizontal': !this.x.vertical,\r\n 'z-vertical': this.x.vertical\r\n }\r\n ]\r\n }\r\n },\r\n mounted() {\r\n this.indent()\r\n const observe = $.lodash.debounce(() => {\r\n if (this.$refs.wrap && this.$refs.next) {\r\n $.q('.w-timeline-item', this.$refs.wrap).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n $.q(this.$refs.next).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n this.indent()\r\n }\r\n })\r\n new MutationObserver(observe).observe(this.$refs.wrap, {childList: true, attributes:true, subtree: true})\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-timeline-wrap {\r\n flex-shrink: 0;\r\n display: flex;\r\n position: relative;\r\n width: max-content;\r\n min-width: 100%;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-wrap {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-prev .w-timeline-item {\r\n flex-direction: column-reverse;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-wrap,\r\n .w-timeline.z-vertical .w-timeline-item {\r\n flex-direction: row;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev,\r\n .w-timeline.z-vertical .w-timeline-next {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev .w-timeline-item {\r\n flex-direction: row-reverse;\r\n }\r\n\r\n .w-timeline-prev,\r\n .w-timeline-next {\r\n position: relative;\r\n display: flex;\r\n flex: 1;\r\n flex-shrink: 0;\r\n --w-compat-gap: 25px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-timeline-prev:empty,\r\n .w-timeline-next:empty {\r\n display: none;\r\n }\r\n\r\n .w-timeline-item {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-icon {\r\n align-items: center;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-center .w-timeline-item-icon {\r\n justify-content: center;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-center .w-timeline-item-main-text {\r\n text-align: center;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-right .w-timeline-item-icon {\r\n justify-content: flex-end;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-right .w-timeline-item-main-text {\r\n text-align: right;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-main {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item-main {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item.z-position-right {\r\n text-align: right;\r\n }\r\n\r\n .w-timeline-item-icon {\r\n display: flex;\r\n flex-shrink: 0;\r\n position: relative;\r\n line-height: 1;\r\n }\r\n\r\n .w-timeline-item-icon-img.z-default {\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n border: 2px solid #1890ff;\r\n border-radius: 100px;\r\n background: #fff;\r\n color: #1890ff;\r\n }\r\n\r\n .w-timeline-line {\r\n position: absolute;\r\n background: #ddd;\r\n }\r\n \r\n</style>\r\n","<!-- <template>\r\n <div v-bind=\"html_binds\">\r\n <div class=\"_t\">\r\n <div class=\"_s\"></div>\r\n <i v-if=\"pubParent.x.face === 'bubble'\"\r\n :class=\"'_caret f-i f-i-caret-' + (leftIndex != null ? 'right' : rightIndex != null ? 'left' : topIndex != null ? 'down' : 'up')\"></i>\r\n </div>\r\n \r\n </div>\r\n</template> -->\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-timeline-item',\r\n pubParentName: 'w-timeline',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['position', 'index', 'align', 'lineColor'],\r\n watch: {\r\n lineColor(v) {\r\n this.$nextTick(() => this.providePubParent.indent())\r\n }\r\n },\r\n methods: {\r\n html_slots() {\r\n let text = h('div', {\r\n class: 'w-timeline-item-main f-br'\r\n }, h('div', {\r\n class: 'w-timeline-item-main-text'\r\n }, this.$slots))\r\n let icon = h('div', {\r\n ref: 'icon',\r\n class: 'w-timeline-item-icon'\r\n }, this.$slots.icon ? h('div', {\r\n class: 'w-timeline-item-icon-img'\r\n }, this.$slots.icon()) : h('i', {\r\n class: 'w-timeline-item-icon-img z-default'\r\n }))\r\n return [icon, text]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'z-position-' + (this.x.position || (this.pubParent.x.vertical ? 'left' : 'bottom')) + ' z-align-' + (this.x.align || 'left')\r\n },\r\n html_props() {\r\n return {\r\n 'w-index': this.x.index,\r\n 'w-line-color': this.x.lineColor\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<template>\r\n <div ref=\"root\" v-bind=\"html_binds\">\r\n <div ref=\"options\" class=\"w-slidepicker-options\">\r\n <slot />\r\n </div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-top\"></div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-bottom\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n getCurrentInstance,\r\n onMounted,\r\n watch,\r\n computed,\r\n ref,\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-slidepicker',\r\n mixins: [WidgetBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['optionHeight', 'modelValue', 'minValue', 'maxValue', 'keepIndex', 'cover'],\r\n emits: ['update:modelValue', 'change'],\r\n setup(props, context) {\r\n const self = getCurrentInstance().ctx\r\n const root = ref()\r\n const options = ref()\r\n let startY, endY, minY, maxY, optY, optH, roll\r\n\r\n const onmousedown = function(downEv) {\r\n let downY = $.eventY(downEv)\r\n let moveY, lastY, lastTime\r\n let speed = 0\r\n let lastSpeed = null\r\n options.value.style.transition = ''\r\n $.moveup(e => {\r\n let nowY = $.eventY(e)\r\n let nowTime = e.timeStamp\r\n moveY = optY + nowY - downY\r\n if (lastY && lastTime && nowTime > lastTime) {\r\n lastSpeed = speed\r\n speed = (nowY - lastY) / (nowTime - lastTime)\r\n }\r\n lastY = nowY\r\n lastTime = nowTime\r\n moveY = $.numRange(moveY, minY - optH, maxY + optH)\r\n options.value.style.transform = `translateY(${moveY}px)`\r\n }, (e, moved) => {\r\n if (!moved) {\r\n return onclick(downEv)\r\n }\r\n if (moveY == null) return\r\n let minSpeed = 0.15 //speed大于这个值时,做惯性滚动\r\n if (Math.abs(speed) < minSpeed || (lastSpeed && Math.abs(lastSpeed) < minSpeed)) {\r\n speed = 0\r\n } else if (lastSpeed && Math.abs(lastSpeed) > Math.abs(speed)) {\r\n speed = lastSpeed //记录最后两个speed,选择其中一个最大的,此步骤可优化体验\r\n }\r\n let y = moveY + (speed * 200)\r\n let s = Math.abs(speed / 2)\r\n let yuH = (maxY - y) % optH\r\n y += yuH\r\n if (yuH > (optH / 2)) {\r\n y -= optH\r\n }\r\n optY = $.numRange(y, minY, maxY)\r\n if (optY != moveY) {\r\n if (moveY < minY || moveY > minY || s < minSpeed) {\r\n s = minSpeed\r\n }\r\n if (Math.abs(optY - moveY) < 10) {\r\n s = 0.05 // 移动范围很小时,过渡时间也相应缩短\r\n }\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform ${s}s ease-out`\r\n }\r\n }, downEv)\r\n }\r\n const onwheel = function(e) {\r\n optY += (e.deltaY < 0 ? -1 : 1) * optH\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform .12s ease-out`\r\n }\r\n const onclick = function(e) {\r\n let g = $(e)\r\n if (g.$options.name == 'w-option') {\r\n update(g.$props.value)\r\n focus(true)\r\n }\r\n }\r\n const focus = function(ease) {\r\n if (!root.value || !options.value) return\r\n let sc = self.slots_children()\r\n if (!sc.length) return\r\n let v = self.x.modelValue\r\n let nv = self.x.minValue\r\n let xv = self.x.maxValue\r\n if (nv || nv === 0 || xv || xv === 0) {\r\n v = $.numRange(v, nv, xv)\r\n if (v != self.x.modelValue) {\r\n update(v)\r\n }\r\n }\r\n let bcrRoot = $.bcr(root.value)\r\n let bcrOpt = $.bcr(options.value)\r\n let ni = -1\r\n let xi = -1\r\n let asc = true\r\n optH = self.x.optionHeight\r\n startY = maxY = (bcrRoot.height - optH) / 2\r\n endY = minY = startY - bcrOpt.height + optH\r\n if (nv || nv === 0) {\r\n ni = sc.findIndex(s => s.props.value == nv)\r\n }\r\n if (xv || xv === 0) {\r\n xi = sc.findIndex(s => s.props.value == xv)\r\n }\r\n if ((ni > -1 || xi > -1) && sc[0].props.value > sc[sc.length - 1].props.value) { // 判断是不是倒序\r\n asc = false\r\n }\r\n if (ni > -1) {\r\n if (asc) {\r\n maxY -= ni * optH\r\n } else {\r\n minY += ni * optH\r\n }\r\n }\r\n if (xi > -1) {\r\n if (asc) {\r\n minY += (sc.length - 1 - xi) * optH\r\n } else {\r\n maxY -= (sc.length - 1 - xi) * optH\r\n }\r\n }\r\n if (v != null) {\r\n let index = sc.findIndex(s => s.props.value == v)\r\n if (index === -1) {\r\n update(optY != null && optY < endY && self.keepIndex ? sc[sc.length - 1].props.value : sc[0].props.value)\r\n } else {\r\n optY = startY - (optH * index)\r\n }\r\n } else {\r\n optY = startY\r\n }\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transition = ''\r\n options.value.style.transform = `translateY(${optY}px)`\r\n if (ease) {\r\n options.value.style.transition = `transform .15s ease-out`\r\n }\r\n }\r\n\r\n const update = function(v) {\r\n roll = true\r\n self.x.modelValue = v\r\n }\r\n \r\n const getIndex = function() {\r\n return (startY - optY) / optH\r\n }\r\n \r\n const transEnd = function() {\r\n let ret = self.slots_children()[getIndex()]\r\n ret && update(ret.props.value)\r\n }\r\n \r\n const x_default = function() {\r\n return {\r\n optionHeight: 32,\r\n cover: true\r\n }\r\n }\r\n\r\n const html_props = computed(() => {\r\n return {\r\n style: {\r\n '--w-option-height': $.unitSize(self.x.optionHeight)\r\n },\r\n ...($.br.mobile ? {\r\n ontouchstart: onmousedown\r\n } : {\r\n onmousedown,\r\n onwheel,\r\n })\r\n }\r\n })\r\n\r\n onMounted(() => {\r\n watch(() => self.x.modelValue, v => {\r\n context.emit('update:modelValue', v)\r\n context.emit('change', v)\r\n })\r\n watch(() => self.x.minValue, focus)\r\n watch(() => self.x.maxValue, focus)\r\n new ResizeObserver(() => {\r\n if (options.value) {\r\n focus()\r\n transEnd()\r\n }\r\n }).observe(options.value)\r\n options.value.addEventListener('transitionend', transEnd)\r\n })\r\n\r\n return {\r\n root,\r\n options,\r\n x_default,\r\n onmousedown,\r\n onwheel,\r\n html_props,\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-slidepicker {\r\n position: relative;\r\n overflow: hidden;\r\n background: #fff;\r\n }\r\n\r\n .w-slidepicker-bg-top {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.9), rgba(245, 245, 245, 0.4));\r\n border-bottom: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker-bg-bottom {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.4), rgba(245, 245, 245, 0.9));\r\n border-top: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker .w-option {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n\r\n .w-slidepicker .w-option-checked {\r\n display: none;\r\n }\r\n\r\n .w-slidepicker-options {\r\n user-select: none;\r\n /* pointer-events: none; */\r\n }\r\n</style>\r\n","<template>\r\n <div ref=\"root\" v-bind=\"html_binds\">\r\n <div ref=\"options\" class=\"w-slidepicker-options\">\r\n <slot />\r\n </div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-top\"></div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-bottom\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n getCurrentInstance,\r\n onMounted,\r\n watch,\r\n computed,\r\n ref,\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-slidepicker',\r\n mixins: [WidgetBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['optionHeight', 'modelValue', 'minValue', 'maxValue', 'keepIndex', 'cover'],\r\n emits: ['update:modelValue', 'change'],\r\n setup(props, context) {\r\n const self = getCurrentInstance().ctx\r\n const root = ref()\r\n const options = ref()\r\n let startY, endY, minY, maxY, optY, optH, roll\r\n\r\n const onmousedown = function(downEv) {\r\n let downY = $.eventY(downEv)\r\n let moveY, lastY, lastTime\r\n let speed = 0\r\n let lastSpeed = null\r\n options.value.style.transition = ''\r\n $.moveup(e => {\r\n let nowY = $.eventY(e)\r\n let nowTime = e.timeStamp\r\n moveY = optY + nowY - downY\r\n if (lastY && lastTime && nowTime > lastTime) {\r\n lastSpeed = speed\r\n speed = (nowY - lastY) / (nowTime - lastTime)\r\n }\r\n lastY = nowY\r\n lastTime = nowTime\r\n moveY = $.numRange(moveY, minY - optH, maxY + optH)\r\n options.value.style.transform = `translateY(${moveY}px)`\r\n }, (e, moved) => {\r\n if (!moved) {\r\n return onclick(downEv)\r\n }\r\n if (moveY == null) return\r\n let minSpeed = 0.15 //speed大于这个值时,做惯性滚动\r\n if (Math.abs(speed) < minSpeed || (lastSpeed && Math.abs(lastSpeed) < minSpeed)) {\r\n speed = 0\r\n } else if (lastSpeed && Math.abs(lastSpeed) > Math.abs(speed)) {\r\n speed = lastSpeed //记录最后两个speed,选择其中一个最大的,此步骤可优化体验\r\n }\r\n let y = moveY + (speed * 200)\r\n let s = Math.abs(speed / 2)\r\n let yuH = (maxY - y) % optH\r\n y += yuH\r\n if (yuH > (optH / 2)) {\r\n y -= optH\r\n }\r\n optY = $.numRange(y, minY, maxY)\r\n if (optY != moveY) {\r\n if (moveY < minY || moveY > minY || s < minSpeed) {\r\n s = minSpeed\r\n }\r\n if (Math.abs(optY - moveY) < 10) {\r\n s = 0.05 // 移动范围很小时,过渡时间也相应缩短\r\n }\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform ${s}s ease-out`\r\n }\r\n }, downEv)\r\n }\r\n const onwheel = function(e) {\r\n optY += (e.deltaY < 0 ? -1 : 1) * optH\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform .12s ease-out`\r\n }\r\n const onclick = function(e) {\r\n let g = $(e)\r\n if (g.$options.name == 'w-option') {\r\n update(g.$props.value)\r\n focus(true)\r\n }\r\n }\r\n const focus = function(ease) {\r\n if (!root.value || !options.value) return\r\n let sc = self.slots_children()\r\n if (!sc.length) return\r\n let v = self.x.modelValue\r\n let nv = self.x.minValue\r\n let xv = self.x.maxValue\r\n if (nv || nv === 0 || xv || xv === 0) {\r\n v = $.numRange(v, nv, xv)\r\n if (v != self.x.modelValue) {\r\n update(v)\r\n }\r\n }\r\n let bcrRoot = $.bcr(root.value)\r\n let bcrOpt = $.bcr(options.value)\r\n let ni = -1\r\n let xi = -1\r\n let asc = true\r\n optH = self.x.optionHeight\r\n startY = maxY = (bcrRoot.height - optH) / 2\r\n endY = minY = startY - bcrOpt.height + optH\r\n if (nv || nv === 0) {\r\n ni = sc.findIndex(s => s.props.value == nv)\r\n }\r\n if (xv || xv === 0) {\r\n xi = sc.findIndex(s => s.props.value == xv)\r\n }\r\n if ((ni > -1 || xi > -1) && sc[0].props.value > sc[sc.length - 1].props.value) { // 判断是不是倒序\r\n asc = false\r\n }\r\n if (ni > -1) {\r\n if (asc) {\r\n maxY -= ni * optH\r\n } else {\r\n minY += ni * optH\r\n }\r\n }\r\n if (xi > -1) {\r\n if (asc) {\r\n minY += (sc.length - 1 - xi) * optH\r\n } else {\r\n maxY -= (sc.length - 1 - xi) * optH\r\n }\r\n }\r\n if (v != null) {\r\n let index = sc.findIndex(s => s.props.value == v)\r\n if (index === -1) {\r\n update(optY != null && optY < endY && self.keepIndex ? sc[sc.length - 1].props.value : sc[0].props.value)\r\n } else {\r\n optY = startY - (optH * index)\r\n }\r\n } else {\r\n optY = startY\r\n }\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transition = ''\r\n options.value.style.transform = `translateY(${optY}px)`\r\n if (ease) {\r\n options.value.style.transition = `transform .15s ease-out`\r\n }\r\n }\r\n\r\n const update = function(v) {\r\n roll = true\r\n self.x.modelValue = v\r\n }\r\n \r\n const getIndex = function() {\r\n return (startY - optY) / optH\r\n }\r\n \r\n const transEnd = function() {\r\n let ret = self.slots_children()[getIndex()]\r\n ret && update(ret.props.value)\r\n }\r\n \r\n const x_default = function() {\r\n return {\r\n optionHeight: 32,\r\n cover: true\r\n }\r\n }\r\n\r\n const html_props = computed(() => {\r\n return {\r\n style: {\r\n '--w-option-height': $.unitSize(self.x.optionHeight)\r\n },\r\n ...($.br.mobile ? {\r\n ontouchstart: onmousedown\r\n } : {\r\n onmousedown,\r\n onwheel,\r\n })\r\n }\r\n })\r\n\r\n onMounted(() => {\r\n watch(() => self.x.modelValue, v => {\r\n context.emit('update:modelValue', v)\r\n context.emit('change', v)\r\n })\r\n watch(() => self.x.minValue, focus)\r\n watch(() => self.x.maxValue, focus)\r\n new ResizeObserver(() => {\r\n if (options.value) {\r\n focus()\r\n transEnd()\r\n }\r\n }).observe(options.value)\r\n options.value.addEventListener('transitionend', transEnd)\r\n })\r\n\r\n return {\r\n root,\r\n options,\r\n x_default,\r\n onmousedown,\r\n onwheel,\r\n html_props,\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-slidepicker {\r\n position: relative;\r\n overflow: hidden;\r\n background: #fff;\r\n }\r\n\r\n .w-slidepicker-bg-top {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.9), rgba(245, 245, 245, 0.4));\r\n border-bottom: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker-bg-bottom {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.4), rgba(245, 245, 245, 0.9));\r\n border-top: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker .w-option {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n\r\n .w-slidepicker .w-option-checked {\r\n display: none;\r\n }\r\n\r\n .w-slidepicker-options {\r\n user-select: none;\r\n /* pointer-events: none; */\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-hidden',\r\n mixins: [FormBase],\r\n methods: {\r\n isModified() {\r\n return false\r\n },\r\n html() {\r\n return h('input', {\r\n type: 'hidden',\r\n id: this.uid,\r\n class: 'w-hidden',\r\n name: this.x.name,\r\n value: this.x.modelValue,\r\n ref: 'v'\r\n })\r\n }\r\n },\r\n \r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-text',\r\n mixins: [FormBase],\r\n props: ['minLength', 'maxLength', 'pattern', 'clearable', 'showCount'],\r\n\t\temits: ['clear'],\r\n data() {\r\n return {\r\n hasBorder: true\r\n }\r\n },\r\n methods: {\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n if (this.hasVal) {\r\n this.val('')\r\n this.focus()\r\n this.$emit('clear', e)\r\n }\r\n },\r\n html_button() {\r\n return this.isNormal && this.x.clearable && h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-close',\r\n onclick: this.clickButtonClear\r\n })\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minLength: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && $.strLen(v) < r)\r\n return this.formErr(q, [r])\r\n },\r\n maxLength: (v, r, q) => {\r\n let d\r\n if (v && r != null && r !== '' && r > 0 && v && (d = $.strLen(v)) > r)\r\n return this.formErr(q, [$.strExceed(v, r)])\r\n }\r\n }\r\n },\r\n input_prop() {\r\n if (this.x.maxLength) {\r\n return {maxlength: this.x.maxLength}\r\n }\r\n },\r\n html_class() {\r\n \treturn {\r\n \t\t'z-val': this.hasVal,\r\n 'z-clearable': this.x.clearable,\r\n \t}\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Text from './Text.vue'\r\n \r\n export default {\r\n name: 'w-textarea',\r\n mixins: [Text],\r\n methods: {\r\n html_slot_down() {\r\n const down = this.slot('down')\r\n if (this.x.showCount || (down && down.length)) {\r\n let counter = ''\r\n if (this.x.showCount && this.x.maxLength) {\r\n let v = this.x.modelValue || ''\r\n let cnt = $.strLen(v)\r\n if (cnt > this.x.maxLength) {\r\n const exc = $.strExceed(v, this.x.maxLength)\r\n cnt = `<em class=w-textarea-show-count-exceed>超出${exc}个字</em>`\r\n }\r\n counter = `${cnt} / ${this.x.maxLength}`\r\n }\r\n return h('div', {class: 'w-textarea-down'}, [\r\n h('div', {class: 'w-textarea-down-left'}, down),\r\n h('div', {class: 'w-textarea-down-right w-textarea-show-count', innerHTML: counter})\r\n ])\r\n }\r\n return down\r\n },\r\n },\r\n computed: {\r\n input_tag() {\r\n return 'textarea'\r\n },\r\n hasClassSlotDown() {\r\n return (this.x.showCount && this.x.maxLength) || !!this.$slots.down\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['modelValue', 'required', 'vertical', 'gap', 'minSize', 'maxSize', 'br'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n data() {\r\n return {\r\n watchValue: null\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n br: true,\r\n gap: 15\r\n }\r\n },\r\n watchModelValue(v, ov) {\r\n // not do\r\n },\r\n html_form_slot() {\r\n return this.x.vertical ? h('div', {class: 'w-boxgroup-grid'}, this.$slots) : this.$slots\r\n },\r\n },\r\n computed: {\r\n html_class() {\r\n return {'z-br': this.x.br}\r\n },\r\n html_style() {\r\n return this.x.gap && {\r\n '--w-boxgroup-gap': $.unitSize(this.x.gap)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import CheckBoxGroup from './CheckBoxGroup.vue'\r\n\r\n export default {\r\n name: 'w-radiogroup',\r\n mixins: [CheckBoxGroup]\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n\r\n export default {\r\n name: 'w-radio',\r\n pubParentName: 'w-radiogroup',\r\n mixins: [CheckBox],\r\n props: ['cancelable'],\r\n methods: {\r\n\r\n },\r\n computed: {\r\n input_type() {\r\n return 'radio'\r\n },\r\n input_icon() {\r\n return 'f-i'\r\n },\r\n input_name() {\r\n return this.w_name && (this.w_name + '@' + this.ownerView.uid)\r\n },\r\n w_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_prop() {\r\n return {'w-name': this.w_name}\r\n }\r\n },\r\n mounted() {\r\n\r\n\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-switch',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['checkedText', 'uncheckedText', 'checkedValue', 'uncheckedValue'],\r\n inject: ['providePubParent'],\r\n methods: {\r\n x_default() {\r\n return {\r\n checkedValue: 1,\r\n uncheckedValue: 0,\r\n }\r\n },\r\n onclick(e) {\r\n let c = !this.isChecked\r\n let v = c ? this.x.checkedValue : this.x.uncheckedValue\r\n this.val(v)\r\n },\r\n formText() {\r\n return this.isChecked ? this.x.checkedText : this.x.uncheckedText\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-switch-box',\r\n onclick: this.isNormal && this.onclick\r\n }, [\r\n h('i', {\r\n class: 'w-switch-icon'\r\n }),\r\n h('span', {\r\n class: 'w-switch-text'\r\n }, this.isChecked ? this.x.checkedText : this.x.uncheckedText),\r\n ])\r\n ]\r\n }\r\n },\r\n computed: {\r\n input_value() {\r\n return this.isChecked ? this.x.checkedValue : this.x.uncheckedValue\r\n },\r\n html_class() {\r\n return this.isChecked ? 'z-checked' : 'z-unchecked'\r\n },\r\n isChecked() {\r\n return this.x.modelValue == this.x.checkedValue\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-switch>.w-formbase-main>.w-input {\r\n flex: none;\r\n display: inline-flex;\r\n }\r\n\r\n .w-switch-box {\r\n flex: 1;\r\n position: relative;\r\n height: 22px;\r\n background: #c0c0c0;\r\n background: rgba(0, 0, 0, 0.25);\r\n border: 1px solid #c1caca;\r\n border-radius: 20px;\r\n color: #fff;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-appearance: none;\r\n }\r\n\r\n .w-switch-icon {\r\n position: absolute;\r\n top: 1px;\r\n left: 1px;\r\n background: #fff;\r\n padding: 10px;\r\n border-radius: 20px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);\r\n transition: all .15s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-switch-text {\r\n float: right;\r\n min-width: 2px;\r\n margin-left: 26px;\r\n margin-right: 8px;\r\n line-height: 22px;\r\n font-style: normal;\r\n min-width: 10px;\r\n }\r\n\r\n .w-switch.z-checked .w-switch-box {\r\n background: #1890ff;\r\n border-color: #1890ff\r\n }\r\n\r\n .w-switch.z-checked .w-switch-icon {\r\n left: 100%;\r\n border-color: #1890ff;\r\n transform: translateX(calc(-100% - 1px));\r\n }\r\n\r\n .w-switch.z-checked .w-switch-text {\r\n float: left;\r\n margin-left: 8px;\r\n margin-right: 26px;\r\n }\r\n\r\n .w-switch.z-ds .w-switch-box {\r\n background: #e6e6e6;\r\n border-color: #e6e6e6;\r\n cursor: default\r\n }\r\n\r\n .w-switch.z-ds .w-switch-icon {\r\n border-color: #e6e6e6\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-box {\r\n background: #a2d2ff;\r\n border-color: #a2d2ff\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-icon {\r\n border-color: #a2d2ff\r\n }\r\n</style>\r\n","import {strFrom} from './str.js'\r\n\r\nconst mimes = {\r\n \".323\": \"text/h323\",\r\n \".3gp\": \"video/3gpp\",\r\n \".aab\": \"application/x-authoware-bin\",\r\n \".aam\": \"application/x-authoware-map\",\r\n \".aas\": \"application/x-authoware-seg\",\r\n \".acx\": \"application/internet-property-stream\",\r\n \".ai\": \"application/postscript\",\r\n \".aif\": \"audio/x-aiff\",\r\n \".aifc\": \"audio/x-aiff\",\r\n \".aiff\": \"audio/x-aiff\",\r\n \".als\": \"audio/X-Alpha5\",\r\n \".amc\": \"application/x-mpeg\",\r\n \".apk\": \"application/vnd.android.package-archive\",\r\n \".asc\": \"text/plain\",\r\n \".asd\": \"application/astound\",\r\n \".asf\": \"video/x-ms-asf\",\r\n \".asn\": \"application/astound\",\r\n \".asp\": \"application/x-asap\",\r\n \".asr\": \"video/x-ms-asf\",\r\n \".asx\": \"video/x-ms-asf\",\r\n \".au\": \"audio/basic\",\r\n \".avi\": \"video/x-msvideo\",\r\n \".awb\": \"audio/amr-wb\",\r\n \".axs\": \"application/olescript\",\r\n \".bas\": \"text/plain\",\r\n \".bcpio\": \"application/x-bcpio\",\r\n \".bld\": \"application/bld\",\r\n \".bld2\": \"application/bld2\",\r\n \".bmp\": \"image/bmp\",\r\n \".bz2\": \"application/x-bzip2\",\r\n \".c\": \"text/plain\",\r\n \".cal\": \"image/x-cals\",\r\n \".cat\": \"application/vnd.ms-pkiseccat\",\r\n \".ccn\": \"application/x-cnc\",\r\n \".cco\": \"application/x-cocoa\",\r\n \".cdf\": \"application/x-cdf\",\r\n \".cer\": \"application/x-x509-ca-cert\",\r\n \".cgi\": \"magnus-internal/cgi\",\r\n \".chat\": \"application/x-chat\",\r\n \".clp\": \"application/x-msclip\",\r\n \".cmx\": \"image/x-cmx\",\r\n \".co\": \"application/x-cult3d-object\",\r\n \".cod\": \"image/cis-cod\",\r\n \".conf\": \"text/plain\",\r\n \".cpio\": \"application/x-cpio\",\r\n \".cpp\": \"text/plain\",\r\n \".cpt\": \"application/mac-compactpro\",\r\n \".crd\": \"application/x-mscardfile\",\r\n \".crl\": \"application/pkix-crl\",\r\n \".crt\": \"application/x-x509-ca-cert\",\r\n \".csh\": \"application/x-csh\",\r\n \".csm\": \"chemical/x-csml\",\r\n \".csml\": \"chemical/x-csml\",\r\n \".css\": \"text/css\",\r\n \".dcm\": \"x-lml/x-evm\",\r\n \".dcr\": \"application/x-director\",\r\n \".dcx\": \"image/x-dcx\",\r\n \".der\": \"application/x-x509-ca-cert\",\r\n \".dhtml\": \"text/html\",\r\n \".dir\": \"application/x-director\",\r\n \".dll\": \"application/x-msdownload\",\r\n \".doc\": \"application/msword\",\r\n \".docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n \".dot\": \"application/msword\",\r\n \".dvi\": \"application/x-dvi\",\r\n \".dwf\": \"drawing/x-dwf\",\r\n \".dwg\": \"application/x-autocad\",\r\n \".dxf\": \"application/x-autocad\",\r\n \".dxr\": \"application/x-director\",\r\n \".ebk\": \"application/x-expandedbook\",\r\n \".emb\": \"chemical/x-embl-dl-nucleotide\",\r\n \".embl\": \"chemical/x-embl-dl-nucleotide\",\r\n \".eps\": \"application/postscript\",\r\n \".epub\": \"application/epub+zip\",\r\n \".eri\": \"image/x-eri\",\r\n \".es\": \"audio/echospeech\",\r\n \".esl\": \"audio/echospeech\",\r\n \".etc\": \"application/x-earthtime\",\r\n \".etx\": \"text/x-setext\",\r\n \".evm\": \"x-lml/x-evm\",\r\n \".evy\": \"application/envoy\",\r\n \".fh4\": \"image/x-freehand\",\r\n \".fh5\": \"image/x-freehand\",\r\n \".fhc\": \"image/x-freehand\",\r\n \".fif\": \"application/fractals\",\r\n \".flr\": \"x-world/x-vrml\",\r\n \".flv\": \"flv-application/octet-stream\",\r\n \".fm\": \"application/x-maker\",\r\n \".fpx\": \"image/x-fpx\",\r\n \".fvi\": \"video/isivideo\",\r\n \".gau\": \"chemical/x-gaussian-input\",\r\n \".gca\": \"application/x-gca-compressed\",\r\n \".gdb\": \"x-lml/x-gdb\",\r\n \".gif\": \"image/gif\",\r\n \".gps\": \"application/x-gps\",\r\n \".gtar\": \"application/x-gtar\",\r\n \".gz\": \"application/x-gzip\",\r\n \".h\": \"text/plain\",\r\n \".hdf\": \"application/x-hdf\",\r\n \".hdm\": \"text/x-hdml\",\r\n \".hdml\": \"text/x-hdml\",\r\n \".hlp\": \"application/winhlp\",\r\n \".hqx\": \"application/mac-binhex40\",\r\n \".hta\": \"application/hta\",\r\n \".htc\": \"text/x-component\",\r\n \".htm\": \"text/html\",\r\n \".html\": \"text/html\",\r\n \".hts\": \"text/html\",\r\n \".htt\": \"text/webviewhtml\",\r\n \".ice\": \"x-conference/x-cooltalk\",\r\n \".ico\": \"image/x-icon\",\r\n \".ief\": \"image/ief\",\r\n \".ifm\": \"image/gif\",\r\n \".ifs\": \"image/ifs\",\r\n \".iii\": \"application/x-iphone\",\r\n \".imy\": \"audio/melody\",\r\n \".ins\": \"application/x-internet-signup\",\r\n \".ips\": \"application/x-ipscript\",\r\n \".ipx\": \"application/x-ipix\",\r\n \".isp\": \"application/x-internet-signup\",\r\n \".it\": \"audio/x-mod\",\r\n \".itz\": \"audio/x-mod\",\r\n \".ivr\": \"i-world/i-vrml\",\r\n \".j2k\": \"image/j2k\",\r\n \".jad\": \"text/vnd.sun.j2me.app-descriptor\",\r\n \".jam\": \"application/x-jam\",\r\n \".jar\": \"application/java-archive\",\r\n \".java\": \"text/plain\",\r\n \".jfif\": \"image/pipeg\",\r\n \".jnlp\": \"application/x-java-jnlp-file\",\r\n \".jpe\": \"image/jpeg\",\r\n \".jpeg\": \"image/jpeg\",\r\n \".jpg\": \"image/jpeg\",\r\n \".jpz\": \"image/jpeg\",\r\n \".js\": \"application/x-javascript\",\r\n \".jwc\": \"application/jwc\",\r\n \".kjx\": \"application/x-kjx\",\r\n \".lak\": \"x-lml/x-lak\",\r\n \".latex\": \"application/x-latex\",\r\n \".lcc\": \"application/fastman\",\r\n \".lcl\": \"application/x-digitalloca\",\r\n \".lcr\": \"application/x-digitalloca\",\r\n \".lgh\": \"application/lgh\",\r\n \".lml\": \"x-lml/x-lml\",\r\n \".lmlpack\": \"x-lml/x-lmlpack\",\r\n \".log\": \"text/plain\",\r\n \".lsf\": \"video/x-la-asf\",\r\n \".lsx\": \"video/x-la-asf\",\r\n \".m13\": \"application/x-msmediaview\",\r\n \".m14\": \"application/x-msmediaview\",\r\n \".m15\": \"audio/x-mod\",\r\n \".m3u\": \"audio/x-mpegurl\",\r\n \".m3url\": \"audio/x-mpegurl\",\r\n \".m4a\": \"audio/mp4a-latm\",\r\n \".m4b\": \"audio/mp4a-latm\",\r\n \".m4p\": \"audio/mp4a-latm\",\r\n \".m4u\": \"video/vnd.mpegurl\",\r\n \".m4v\": \"video/x-m4v\",\r\n \".ma1\": \"audio/ma1\",\r\n \".ma2\": \"audio/ma2\",\r\n \".ma3\": \"audio/ma3\",\r\n \".ma5\": \"audio/ma5\",\r\n \".man\": \"application/x-troff-man\",\r\n \".map\": \"magnus-internal/imagemap\",\r\n \".mbd\": \"application/mbedlet\",\r\n \".mct\": \"application/x-mascot\",\r\n \".mdb\": \"application/x-msaccess\",\r\n \".mdz\": \"audio/x-mod\",\r\n \".me\": \"application/x-troff-me\",\r\n \".mel\": \"text/x-vmel\",\r\n \".mht\": \"message/rfc822\",\r\n \".mhtml\": \"message/rfc822\",\r\n \".mi\": \"application/x-mif\",\r\n \".mid\": \"audio/mid\",\r\n \".midi\": \"audio/midi\",\r\n \".mif\": \"application/x-mif\",\r\n \".mil\": \"image/x-cals\",\r\n \".mio\": \"audio/x-mio\",\r\n \".mmf\": \"application/x-skt-lbs\",\r\n \".mng\": \"video/x-mng\",\r\n \".mny\": \"application/x-msmoney\",\r\n \".moc\": \"application/x-mocha\",\r\n \".mocha\": \"application/x-mocha\",\r\n \".mod\": \"audio/x-mod\",\r\n \".mof\": \"application/x-yumekara\",\r\n \".mol\": \"chemical/x-mdl-molfile\",\r\n \".mop\": \"chemical/x-mopac-input\",\r\n \".mov\": \"video/quicktime\",\r\n \".movie\": \"video/x-sgi-movie\",\r\n \".mp2\": \"video/mpeg\",\r\n \".mp3\": \"audio/mpeg\",\r\n \".mp4\": \"video/mp4\",\r\n \".mpa\": \"video/mpeg\",\r\n \".mpc\": \"application/vnd.mpohun.certificate\",\r\n \".mpe\": \"video/mpeg\",\r\n \".mpeg\": \"video/mpeg\",\r\n \".mpg\": \"video/mpeg\",\r\n \".mpg4\": \"video/mp4\",\r\n \".mpga\": \"audio/mpeg\",\r\n \".mpn\": \"application/vnd.mophun.application\",\r\n \".mpp\": \"application/vnd.ms-project\",\r\n \".mps\": \"application/x-mapserver\",\r\n \".mpv2\": \"video/mpeg\",\r\n \".mrl\": \"text/x-mrml\",\r\n \".mrm\": \"application/x-mrm\",\r\n \".ms\": \"application/x-troff-ms\",\r\n \".msg\": \"application/vnd.ms-outlook\",\r\n \".mts\": \"application/metastream\",\r\n \".mtx\": \"application/metastream\",\r\n \".mtz\": \"application/metastream\",\r\n \".mvb\": \"application/x-msmediaview\",\r\n \".mzv\": \"application/metastream\",\r\n \".nar\": \"application/zip\",\r\n \".nbmp\": \"image/nbmp\",\r\n \".nc\": \"application/x-netcdf\",\r\n \".ndb\": \"x-lml/x-ndb\",\r\n \".ndwn\": \"application/ndwn\",\r\n \".nif\": \"application/x-nif\",\r\n \".nmz\": \"application/x-scream\",\r\n \".nokia-op-logo\": \"image/vnd.nok-oplogo-color\",\r\n \".npx\": \"application/x-netfpx\",\r\n \".nsnd\": \"audio/nsnd\",\r\n \".nva\": \"application/x-neva1\",\r\n \".nws\": \"message/rfc822\",\r\n \".oda\": \"application/oda\",\r\n \".ogg\": \"audio/ogg\",\r\n \".oom\": \"application/x-AtlasMate-Plugin\",\r\n \".p10\": \"application/pkcs10\",\r\n \".p12\": \"application/x-pkcs12\",\r\n \".p7b\": \"application/x-pkcs7-certificates\",\r\n \".p7c\": \"application/x-pkcs7-mime\",\r\n \".p7m\": \"application/x-pkcs7-mime\",\r\n \".p7r\": \"application/x-pkcs7-certreqresp\",\r\n \".p7s\": \"application/x-pkcs7-signature\",\r\n \".pac\": \"audio/x-pac\",\r\n \".pae\": \"audio/x-epac\",\r\n \".pan\": \"application/x-pan\",\r\n \".pbm\": \"image/x-portable-bitmap\",\r\n \".pcx\": \"image/x-pcx\",\r\n \".pda\": \"image/x-pda\",\r\n \".pdb\": \"chemical/x-pdb\",\r\n \".pdf\": \"application/pdf\",\r\n \".pfr\": \"application/font-tdpfr\",\r\n \".pfx\": \"application/x-pkcs12\",\r\n \".pgm\": \"image/x-portable-graymap\",\r\n \".pict\": \"image/x-pict\",\r\n \".pko\": \"application/ynd.ms-pkipko\",\r\n \".pm\": \"application/x-perl\",\r\n \".pma\": \"application/x-perfmon\",\r\n \".pmc\": \"application/x-perfmon\",\r\n \".pmd\": \"application/x-pmd\",\r\n \".pml\": \"application/x-perfmon\",\r\n \".pmr\": \"application/x-perfmon\",\r\n \".pmw\": \"application/x-perfmon\",\r\n \".png\": \"image/png\",\r\n \".pnm\": \"image/x-portable-anymap\",\r\n \".pnz\": \"image/png\",\r\n \".pot\": \"application/vnd.ms-powerpoint\",\r\n \".ppm\": \"image/x-portable-pixmap\",\r\n \".pps\": \"application/vnd.ms-powerpoint\",\r\n \".ppt\": \"application/vnd.ms-powerpoint\",\r\n \".pptx\": \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n \".pqf\": \"application/x-cprplayer\",\r\n \".pqi\": \"application/cprplayer\",\r\n \".prc\": \"application/x-prc\",\r\n \".prf\": \"application/pics-rules\",\r\n \".prop\": \"text/plain\",\r\n \".proxy\": \"application/x-ns-proxy-autoconfig\",\r\n \".ps\": \"application/postscript\",\r\n \".ptlk\": \"application/listenup\",\r\n \".pub\": \"application/x-mspublisher\",\r\n \".pvx\": \"video/x-pv-pvx\",\r\n \".qcp\": \"audio/vnd.qcelp\",\r\n \".qt\": \"video/quicktime\",\r\n \".qti\": \"image/x-quicktime\",\r\n \".qtif\": \"image/x-quicktime\",\r\n \".r3t\": \"text/vnd.rn-realtext3d\",\r\n \".ra\": \"audio/x-pn-realaudio\",\r\n \".ram\": \"audio/x-pn-realaudio\",\r\n \".ras\": \"image/x-cmu-raster\",\r\n \".rc\": \"text/plain\",\r\n \".rdf\": \"application/rdf+xml\",\r\n \".rf\": \"image/vnd.rn-realflash\",\r\n \".rgb\": \"image/x-rgb\",\r\n \".rlf\": \"application/x-richlink\",\r\n \".rm\": \"audio/x-pn-realaudio\",\r\n \".rmf\": \"audio/x-rmf\",\r\n \".rmi\": \"audio/mid\",\r\n \".rmm\": \"audio/x-pn-realaudio\",\r\n \".rmvb\": \"audio/x-pn-realaudio\",\r\n \".rnx\": \"application/vnd.rn-realplayer\",\r\n \".roff\": \"application/x-troff\",\r\n \".rp\": \"image/vnd.rn-realpix\",\r\n \".rpm\": \"audio/x-pn-realaudio-plugin\",\r\n \".rt\": \"text/vnd.rn-realtext\",\r\n \".rte\": \"x-lml/x-gps\",\r\n \".rtf\": \"application/rtf\",\r\n \".rtg\": \"application/metastream\",\r\n \".rtx\": \"text/richtext\",\r\n \".rv\": \"video/vnd.rn-realvideo\",\r\n \".rwc\": \"application/x-rogerwilco\",\r\n \".s3m\": \"audio/x-mod\",\r\n \".s3z\": \"audio/x-mod\",\r\n \".sca\": \"application/x-supercard\",\r\n \".scd\": \"application/x-msschedule\",\r\n \".sct\": \"text/scriptlet\",\r\n \".sdf\": \"application/e-score\",\r\n \".sea\": \"application/x-stuffit\",\r\n \".setpay\": \"application/set-payment-initiation\",\r\n \".setreg\": \"application/set-registration-initiation\",\r\n \".sgm\": \"text/x-sgml\",\r\n \".sgml\": \"text/x-sgml\",\r\n \".sh\": \"application/x-sh\",\r\n \".shar\": \"application/x-shar\",\r\n \".shtml\": \"magnus-internal/parsed-html\",\r\n \".shw\": \"application/presentations\",\r\n \".si6\": \"image/si6\",\r\n \".si7\": \"image/vnd.stiwap.sis\",\r\n \".si9\": \"image/vnd.lgtwap.sis\",\r\n \".sis\": \"application/vnd.symbian.install\",\r\n \".sit\": \"application/x-stuffit\",\r\n \".skd\": \"application/x-Koan\",\r\n \".skm\": \"application/x-Koan\",\r\n \".skp\": \"application/x-Koan\",\r\n \".skt\": \"application/x-Koan\",\r\n \".slc\": \"application/x-salsa\",\r\n \".smd\": \"audio/x-smd\",\r\n \".smi\": \"application/smil\",\r\n \".smil\": \"application/smil\",\r\n \".smp\": \"application/studiom\",\r\n \".smz\": \"audio/x-smd\",\r\n \".snd\": \"audio/basic\",\r\n \".spc\": \"application/x-pkcs7-certificates\",\r\n \".spl\": \"application/futuresplash\",\r\n \".spr\": \"application/x-sprite\",\r\n \".sprite\": \"application/x-sprite\",\r\n \".sdp\": \"application/sdp\",\r\n \".spt\": \"application/x-spt\",\r\n \".src\": \"application/x-wais-source\",\r\n \".sst\": \"application/vnd.ms-pkicertstore\",\r\n \".stk\": \"application/hyperstudio\",\r\n \".stl\": \"application/vnd.ms-pkistl\",\r\n \".stm\": \"text/html\",\r\n \".svg\": \"image/svg+xml\",\r\n \".sv4cpio\": \"application/x-sv4cpio\",\r\n \".sv4crc\": \"application/x-sv4crc\",\r\n \".svf\": \"image/vnd\",\r\n \".svh\": \"image/svh\",\r\n \".svr\": \"x-world/x-svr\",\r\n \".swf\": \"application/x-shockwave-flash\",\r\n \".swfl\": \"application/x-shockwave-flash\",\r\n \".t\": \"application/x-troff\",\r\n \".talk\": \"text/x-speech\",\r\n \".tar\": \"application/x-tar\",\r\n \".taz\": \"application/x-tar\",\r\n \".tbp\": \"application/x-timbuktu\",\r\n \".tbt\": \"application/x-timbuktu\",\r\n \".tcl\": \"application/x-tcl\",\r\n \".tex\": \"application/x-tex\",\r\n \".texi\": \"application/x-texinfo\",\r\n \".texinfo\": \"application/x-texinfo\",\r\n \".tgz\": \"application/x-compressed\",\r\n \".thm\": \"application/vnd.eri.thm\",\r\n \".tif\": \"image/tiff\",\r\n \".tiff\": \"image/tiff\",\r\n \".tki\": \"application/x-tkined\",\r\n \".tkined\": \"application/x-tkined\",\r\n \".toc\": \"application/toc\",\r\n \".toy\": \"image/toy\",\r\n \".tr\": \"application/x-troff\",\r\n \".trk\": \"x-lml/x-gps\",\r\n \".trm\": \"application/x-msterminal\",\r\n \".tsi\": \"audio/tsplayer\",\r\n \".tsp\": \"application/dsptype\",\r\n \".tsv\": \"text/tab-separated-values\",\r\n \".ttz\": \"application/t-time\",\r\n \".txt\": \"text/plain\",\r\n \".uls\": \"text/iuls\",\r\n \".ult\": \"audio/x-mod\",\r\n \".ustar\": \"application/x-ustar\",\r\n \".uu\": \"application/x-uuencode\",\r\n \".uue\": \"application/x-uuencode\",\r\n \".vcd\": \"application/x-cdlink\",\r\n \".vcf\": \"text/x-vcard\",\r\n \".vdo\": \"video/vdo\",\r\n \".vib\": \"audio/vib\",\r\n \".viv\": \"video/vivo\",\r\n \".vivo\": \"video/vivo\",\r\n \".vmd\": \"application/vocaltec-media-desc\",\r\n \".vmf\": \"application/vocaltec-media-file\",\r\n \".vmi\": \"application/x-dreamcast-vms-info\",\r\n \".vms\": \"application/x-dreamcast-vms\",\r\n \".vox\": \"audio/voxware\",\r\n \".vqe\": \"audio/x-twinvq-plugin\",\r\n \".vqf\": \"audio/x-twinvq\",\r\n \".vql\": \"audio/x-twinvq\",\r\n \".vre\": \"x-world/x-vream\",\r\n \".vrml\": \"x-world/x-vrml\",\r\n \".vrt\": \"x-world/x-vrt\",\r\n \".vrw\": \"x-world/x-vream\",\r\n \".vts\": \"workbook/formulaone\",\r\n \".wav\": \"audio/x-wav\",\r\n \".wax\": \"audio/x-ms-wax\",\r\n \".wbmp\": \"image/vnd.wap.wbmp\",\r\n \".wcm\": \"application/vnd.ms-works\",\r\n \".wdb\": \"application/vnd.ms-works\",\r\n \".web\": \"application/vnd.xara\",\r\n \".webm\": \"video/webm\",\r\n \".wi\": \"image/wavelet\",\r\n \".wis\": \"application/x-InstallShield\",\r\n \".wks\": \"application/vnd.ms-works\",\r\n \".wm\": \"video/x-ms-wm\",\r\n \".wma\": \"audio/x-ms-wma\",\r\n \".wmd\": \"application/x-ms-wmd\",\r\n \".wmf\": \"application/x-msmetafile\",\r\n \".wml\": \"text/vnd.wap.wml\",\r\n \".wmlc\": \"application/vnd.wap.wmlc\",\r\n \".wmls\": \"text/vnd.wap.wmlscript\",\r\n \".wmlsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wmlscript\": \"text/vnd.wap.wmlscript\",\r\n \".wmv\": \"audio/x-ms-wmv\",\r\n \".wmx\": \"video/x-ms-wmx\",\r\n \".wmz\": \"application/x-ms-wmz\",\r\n \".wpng\": \"image/x-up-wpng\",\r\n \".wpt\": \"x-lml/x-gps\",\r\n \".wri\": \"application/x-mswrite\",\r\n \".wrl\": \"x-world/x-vrml\",\r\n \".wrz\": \"x-world/x-vrml\",\r\n \".ws\": \"text/vnd.wap.wmlscript\",\r\n \".wsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wv\": \"video/wavelet\",\r\n \".wvx\": \"video/x-ms-wvx\",\r\n \".wxl\": \"application/x-wxl\",\r\n \".x-gzip\": \"application/x-gzip\",\r\n \".xaf\": \"x-world/x-vrml\",\r\n \".xar\": \"application/vnd.xara\",\r\n \".xbm\": \"image/x-xbitmap\",\r\n \".xdm\": \"application/x-xdma\",\r\n \".xdma\": \"application/x-xdma\",\r\n \".xdw\": \"application/vnd.fujixerox.docuworks\",\r\n \".xht\": \"application/xhtml+xml\",\r\n \".xhtm\": \"application/xhtml+xml\",\r\n \".xhtml\": \"application/xhtml+xml\",\r\n \".xla\": \"application/vnd.ms-excel\",\r\n \".xlc\": \"application/vnd.ms-excel\",\r\n \".xll\": \"application/x-excel\",\r\n \".xlm\": \"application/vnd.ms-excel\",\r\n \".xls\": \"application/vnd.ms-excel\",\r\n \".xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n \".xlt\": \"application/vnd.ms-excel\",\r\n \".xlw\": \"application/vnd.ms-excel\",\r\n \".xm\": \"audio/x-mod\",\r\n \".xml\": \"application/xml\",\r\n \".xmz\": \"audio/x-mod\",\r\n \".xof\": \"x-world/x-vrml\",\r\n \".xpi\": \"application/x-xpinstall\",\r\n \".xpm\": \"image/x-xpixmap\",\r\n \".xsit\": \"text/xml\",\r\n \".xsl\": \"text/xml\",\r\n \".xul\": \"text/xul\",\r\n \".xwd\": \"image/x-xwindowdump\",\r\n \".xyz\": \"chemical/x-pdb\",\r\n \".yz1\": \"application/x-yz1\",\r\n \".z\": \"application/x-compress\",\r\n \".zac\": \"application/x-zaurus-zac\",\r\n \".json\": \"application/json\",\r\n \".vsd\": \"application/vnd.visio\",\r\n \".et\": \"application/kset\",\r\n \".wps\": \"application/kswps\",\r\n \".dps\": \"application/ksdps\"\r\n}\r\n\r\nexport default function(a) {\r\n let b = strFrom(a, '.', true) || a\r\n return mimes['.' + b]\r\n}\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n import mimeType from '../util/mime.js'\r\n\r\n const suffixHooks = {\r\n '0': 'js.css.pdf.psd.ai.txt.eps.txt',\r\n xls: 'xls.xlsx',\r\n doc: 'doc.docx.rtf',\r\n ppt: 'ppt.pptx',\r\n htm: 'htm.html',\r\n zip: 'rar.zip.tar.jar.z.7z.ace.lzh.arj.gzip.bz2.cab.uue',\r\n fla: 'fla.swf',\r\n fon: 'eot.otf.fon.font.ttf.ttc.woff.woff2',\r\n iso: 'iso.nrg.mds.mdf.bin.cue.img.fcd.lcd.dmg',\r\n vid: 'avi.asf.wmv.avs.flv.mkv.mov.3gp.mp4.webm.mpa.mpe.mpg.mpeg.dat.dsm.ogm.vob.rm.rmvb.ts.tp.ifo.nsv.m4u.m4v.asx.asr.movie.fvi.pvx.rv.vdo.viv.vivo.wm.wmx.wv.wvx.mpv2.mpg4',\r\n aud: 'aif.aifc.aiff.als.awb.mp3.aac.au.wav.wma.cda.flac.m4a.mid.mka.mp2.mpc.ape.ofr.ogg.ra.wv.tta.ac3.dts.wv.shn.vqf.spc.nsf.adx.psf.minipsf.psf2.minipsf2.rsn.zst',\r\n img: 'jpg.jpeg.gif.png.bmp.tif.tiff.ico'\r\n }\r\n \r\n const suffix = {}\r\n \r\n for (let k in suffixHooks) {\r\n suffixHooks[k].split('.').forEach(v => {\r\n suffix[v] = k == '0' ? v : k\r\n })\r\n }\r\n \r\n const fileTypesAlias = {\r\n video: suffixHooks.vid,\r\n audio: suffixHooks.aud,\r\n image: suffixHooks.img\r\n }\r\n \r\n for (let k in fileTypesAlias) {\r\n fileTypesAlias[k] = fileTypesAlias[k].split('.').map(v => `*.${v};`).join('')\r\n }\r\n\r\n const getSuffix = function(url) {\r\n let a = $.strFrom(url || '', '.', true).toLowerCase()\r\n return suffix[a] || 'file'\r\n }\r\n\r\n // 把 \"1MB\" 转为字节\r\n const fileByte = function(val) {\r\n let unit\r\n if (val != null && !isNaN(val))\r\n val += 'K'\r\n val = $.number(val.replace(/[a-z]+$/i, function($0) {\r\n unit = $0.charAt(0).toUpperCase();\r\n return ''\r\n }))\r\n return val * (unit === 'K' ? 1024 : unit === 'M' ? 1024 * 1024 : unit === 'G' ? 1024 * 1024 * 1024 : unit ===\r\n 'T' ? 1024 * 1024 * 1024 * 1024 : 1)\r\n }\r\n\r\n export default {\r\n name: 'w-fileupload',\r\n mixins: [FormBase],\r\n props: ['uploadSrc', 'thumbnailSrc', 'downloadSrc', 'uploadLimit', 'sizeLimit', 'maxFileSize', 'minFileSize',\r\n 'fileTypes', 'filter', 'success', 'error', 'itemWidth', 'align', 'vertical', 'gap', 'checkFile'\r\n ],\r\n data() {\r\n return {\r\n list: [],\r\n emiting: false,\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this.x.modelValue, v => {\r\n if (this.emiting) return this.emiting = false\r\n if (v && typeof v === 'string') v = JSON.parse(v)\r\n this.list = Array.isArray(v) ? v.map(value => {return {value}}) : v ? [{value: v}] : []\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 10,\r\n vertical: true,\r\n }\r\n },\r\n val(v) {\r\n if (arguments.length == 0) {\r\n let r = []\r\n this.list.forEach(item => item.value && r.push(item.value))\r\n return r\r\n }\r\n this.x.modelValue = v\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n getInputValue(v) {\r\n return v.length == 0 ? '' : JSON.stringify(v)\r\n },\r\n getFileTypes() {\r\n let t = this.x.fileTypes\r\n if (fileTypesAlias[t]) {\r\n t = fileTypesAlias[t]\r\n }\r\n return t && t !== '*.*' ? t.replace(/\\*/g, '').replace(/;/g, ',').toLowerCase() : ''\r\n },\r\n getAccept() {\r\n let r = []\r\n let t = this.getFileTypes()\r\n if (!t) return\r\n let n = []\r\n t.toLowerCase().split(',').forEach(b => {\r\n b && n.push(b)\r\n })\r\n n.forEach(b => {\r\n b && r.push(mimeType(b) || b)\r\n })\r\n return r.join(',')\r\n },\r\n isImage(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'img'\r\n },\r\n isVideo(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'vid'\r\n },\r\n isAudio(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'aud'\r\n },\r\n fileSelected(e) {\r\n if (this.x.uploadLimit > 1 && e.target.files.length + this.list.length > this.x.uploadLimit) {\r\n e.target.value = ''\r\n return $.alert($.loc.ps($.loc.form.upload_limit, this.x.uploadLimit))\r\n }\r\n let xfs = this.x.maxFileSize && fileByte(this.x.maxFileSize)\r\n let nfs = this.x.minFileSize && fileByte(this.x.minFileSize)\r\n let ft = this.getFileTypes()\r\n let cf = this.x.checkFile\r\n let xfs_names\r\n let nfs_names\r\n let ft_names\r\n let cf_errors\r\n let fileList = cf && this.list.filter(item => item.file).map(item => item.file)\r\n let valueList = cf && this.list.filter(item => item.value).map(item => item.value)\r\n $.lodash.each(e.target.files, file => {\r\n let sfx = '.' + $.strFrom(file.name, '.', true).toLowerCase()\r\n if (xfs && file.size > xfs) {\r\n (xfs_names || (xfs_names = [])).push(file.name)\r\n } else if (nfs && file.size < nfs) {\r\n (nfs_names || (nfs_names = [])).push(file.name)\r\n } else if (ft && !$.idsAny(ft, sfx, ',')) {\r\n (ft_names || (ft_names = [])).push(file.name)\r\n } else {\r\n let err = cf && cf(file, e.target.files, fileList, valueList)\r\n if (err) {\r\n (cf_errors || (cf_errors = [])).push(err)\r\n } else {\r\n this.list.push({file})\r\n }\r\n }\r\n })\r\n if (xfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_maxfilesize, xfs_names.join('<br>'), this.x.maxFileSize))\r\n } else if (nfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_minfilesize, nfs_names.join('<br>'), this.x.minFileSize))\r\n } else if (ft_names) {\r\n $.alert($.loc.ps($.loc.form.upload_invalid_file_type, ft_names.join('<br>'), ft))\r\n } else if (cf_errors) {\r\n $.alert(cf_errors.join('<br>'))\r\n }\r\n e.target.value = '' // 获取文件后要设value为空,否则下一次选择同一个文件不会触发onchange\r\n this.nextUpload()\r\n },\r\n upload(item) {\r\n if (this.x.uploadSrc && !item.loading) {\r\n let src = $.urlFormat(this.x.uploadSrc, this.x.data, this.x)\r\n let fd = new FormData()\r\n fd.append('Filedata', item.file)\r\n item.loading = true\r\n item.source = $.http.CancelToken.source()\r\n $.http.post(src, fd, {\r\n onUploadProgress: e => item.progress = Math.floor(e.loaded / e.total * 100),\r\n cancelToken: item.source.token\r\n }).then(res => {\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n let d = this.x.filter ? this.x.filter(res, this) : res.data\r\n if (!d) {\r\n item.error = {\r\n message: $.loc.form.upload_no_data\r\n }\r\n } else if (d.error) {\r\n item.error = d.error\r\n } else if (!d.id) {\r\n item.error = {\r\n message: $.loc.ps($.loc.form.upload_invalid_data, JSON.stringify(d))\r\n }\r\n } else {\r\n item.value = d\r\n this.x.success && this.x.success(item.value, this, res)\r\n }\r\n if (item.error && item.error.message) $.alert(item.error.message)\r\n this.nextUpload()\r\n }).catch(error => {\r\n item.error = error\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n this.nextUpload()\r\n if (error.response && error.response.status) $.alert(error.response.status + ': ' + error)\r\n })\r\n } else if (!this.x.uploadSrc) {\r\n let message = '请给上传组件配置uploadSrc'\r\n item.error = {message}\r\n console.error(message)\r\n this.nextUpload()\r\n }\r\n },\r\n nextUpload() {\r\n for (let item of this.list) {\r\n if (item.loading) return\r\n if (item.error) continue\r\n if (item.file && !item.loaded) {\r\n return this.upload(item)\r\n }\r\n }\r\n this.emiting = true\r\n let v = this.val()\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n clickItem(e, item) {\r\n if (!item.value) return\r\n if (this.getOn('click:item')) {\r\n e.runType = 'click:item'\r\n this.trigger(e, item.value, this.val())\r\n } else if (this.x.downloadSrc) {\r\n $.download($.urlServer(this.x.downloadSrc, item.value, this.x.data))\r\n }\r\n },\r\n remove(item) {\r\n item.source && item.source.cancel()\r\n let i = this.list.findIndex(v => v == item)\r\n this.list.splice(i, 1)\r\n this.nextUpload()\r\n },\r\n formText() {\r\n let v = this.val()\r\n return v.map(m => m.name).join(', ')\r\n },\r\n chooseFile() {\r\n this.$refs.file.click()\r\n },\r\n html_list() {\r\n return this.list.map(item => {\r\n\t\t\t\t\tlet value = item.value\r\n let name = value ? value.name : item.file.name\r\n\t\t\t\t\tlet button = [h('div', {\r\n class: 'w-fileupload-value-close f-i f-i-trash',\r\n title: $.loc.remove,\r\n onclick: e => this.remove(item)\r\n })]\r\n\t\t\t\t\tif (value && this.$slots.menu) {\r\n\t\t\t\t\t\tbutton.push(h(Menu, null, {\r\n\t\t\t\t\t\t\ttarget: () => h('div', {\r\n\t\t\t\t\t\t\t\tclass: 'w-fileupload-value-menu f-i f-i-ellipsis',\r\n\t\t\t\t\t\t\t\ttitle: $.loc.more,\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\tdefault: () => this.$slots.menu({item: value})\r\n\t\t\t\t\t\t}))\r\n\t\t\t\t\t}\r\n let key = value ? value.id : item.key\r\n if (!key) {item.key = key = $.uid()}\r\n return h('div', {\r\n key,\r\n class: ['w-fileupload-value', {\r\n 'z-loading': !item.error && (item.loading || (item.file && !item.loaded)),\r\n 'z-err': item.error\r\n }],\r\n style: {\r\n '--w-upload-progress': item.file ? `${item.progress || 0}%` : '',\r\n width: $.unitSize(this.x.itemWidth)\r\n },\r\n title: item.error ? item.error.message : name,\r\n }, [\r\n h('i', {\r\n class: ['w-fileupload-value-icon f-i', 'f-i-file-' + getSuffix(name)],\r\n\t\t\t\t\t\t\tonclick: e => this.clickItem(e, item)\r\n }),\r\n item.error && h('div', {\r\n class: 'w-fileupload-value-error'\r\n }, $.loc.form.upload_error),\r\n h('div', {\r\n class: 'w-fileupload-value-text f-line-1',\r\n\t\t\t\t\t\t\tonclick: e => this.clickItem(e, item)\r\n }, name),\r\n\t\t\t\t\t\tbutton\r\n ])\r\n })\r\n },\r\n html_input_form() {\r\n return [\r\n this.html_input_hidden(),\r\n h('input', {\r\n type: 'file',\r\n ref: 'file',\r\n multiple: this.x.uploadLimit != 1,\r\n accept: this.getAccept(),\r\n onchange: this.fileSelected,\r\n class: 'f-hide'\r\n })\r\n ]\r\n },\r\n html_input_button() {\r\n return h('div', {}, [\r\n h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr',\r\n gap: 10,\r\n }, {\r\n default: () => [\r\n this.$slots.button ? this.$slots.button(this) :\r\n h(Button, {\r\n text: '选择文件',\r\n icon: '.f-i .f-i-upload',\r\n class: 'w-fileupload-button',\r\n onclick: this.chooseFile\r\n }),\r\n this.slot('right')\r\n ]\r\n }),\r\n this.slot('down')\r\n ])\r\n },\r\n html_input_list() {\r\n return this.list.length ? h('div', {\r\n ref: 'list',\r\n class: ['w-fileupload-list', {'f-clearfix': this.x.vertical}]\r\n }, this.html_list()) : !this.isNormal ? h('div', {\r\n class: 'w-fileupload-nofile f-flex-align'\r\n }, $.loc.form.no_files) : null\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(this.canUpload && this.html_input_button(), this.html_input_list())\r\n },\r\n html_main() {\r\n return h('div', {class: 'w-formbase-main'}, this.html_form())\r\n },\r\n html_slots() {\r\n return [this.html_label(), this.html_main()]\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n for (let item of this.list) {\r\n if (item.loading) {\r\n return this.formErr({type: 'upload_loading'})\r\n }\r\n if (item.error) {\r\n return this.formErr({type: 'upload_invalid_file'})\r\n }\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n return this.getInputValue(this.val())\r\n },\r\n errorTipTarget() {\r\n return this.$refs.uploadbbr || this\r\n },\r\n canUpload() {\r\n if (!this.isNormal) return false\r\n if (this.x.uploadLimit > 0 && this.list.length >= this.x.uploadLimit) return false\r\n return true\r\n },\r\n\t\t\tdir() {\r\n\t\t\t return 'v'\r\n\t\t\t},\r\n html_class() {\r\n return {'z-vertical': this.x.vertical, 'z-horizontal': !this.x.vertical, 'z-compat': $.br.compat.gap}\r\n },\r\n html_style() {\r\n return {\r\n '--w-label-min-height': '32px',\r\n }\r\n },\r\n html_on() {\r\n return {\r\n onclick: () => this.warn(false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-fileupload {\r\n align-items: flex-start;\r\n \r\n &>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n \r\n &>.w-formbase-main>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n input[type=\"file\"] {\r\n display: none;\r\n }\r\n \r\n .w-fileupload-list {\r\n display: flex;\r\n flex-wrap: wrap;\r\n width: 100%;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n &.z-vertical {\r\n .w-fileupload-list {\r\n display: block;\r\n flex-direction: column;\r\n line-height: 0;\r\n }\r\n \r\n .w-fileupload-value {\r\n line-height: 1.5;\r\n \r\n + .w-fileupload-value {\r\n margin-top: 10px;\r\n }\r\n }\r\n }\r\n \r\n &.z-horizontal {\r\n &.z-compat {\r\n .w-fileupload-value {\r\n margin-right: 10px;\r\n margin-bottom: 10px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .w-fileupload-button {\r\n background: #f8f8f8;\r\n }\r\n\r\n .w-fileupload-value {\r\n display: inline-flex;\r\n float: left;\r\n clear: both;\r\n align-items: center;\r\n max-width: 100%;\r\n height: 32px;\r\n line-height: 1.5;\r\n border: 1px solid #ddd;\r\n background: #f8f8f8;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n cursor: pointer;\r\n }\r\n\r\n .w-fileupload-value.z-loading {\r\n background-image: linear-gradient(to right, #e5f3ff var(--w-upload-progress), #fff var(--w-upload-progress));\r\n background-size: calc(100% - 30px) 100%;\r\n background-position: 30px 0;\r\n }\r\n\r\n .w-fileupload-value.z-err {\r\n border-color: #f00;\r\n }\r\n\r\n .w-fileupload-value-icon {\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 10px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-fileupload-value-error {\r\n margin-right: 10px;\r\n color: #f00;\r\n }\r\n\r\n .w-fileupload-value-text {\r\n flex: 1;\r\n margin-right: 15px;\r\n max-width: 100%;\r\n }\r\n\r\n .w-fileupload-value-text:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n .w-fileupload.z-ds .w-fileupload-value-close {\r\n display: none;\r\n }\r\n\r\n .w-fileupload-value-close,\r\n .w-fileupload-value-menu {\r\n padding-right: 8px;\r\n color: #999;\r\n }\r\n\r\n .w-fileupload-value-close:hover,\r\n .w-fileupload-value-menu:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-fileupload-nofile {\r\n color: #999;\r\n height: 32px;\r\n }\r\n\r\n .w-fileupload.z-err .w-fileupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\r\n","<template>\r\n <w-img :class=\"['w-mediaupload-value', {'z-loading': item.loading, 'z-canplay': canPlay, 'z-err': item.error}]\" ref=\"thumbnail\" :src=\"src\" :data-url=\"dataURL\"\r\n :width=\"upload.x.thumbnailWidth\" :img-width=\"upload.x.thumbnailWidth-2\" :img-height=\"upload.x.thumbnailHeight-2\" :tip=\"tip\" @click=\"click\">\r\n <template v-if=\"upload.x.showFileName\" #default>\r\n <div class=\"f-line-1\">{{name}}</div>\r\n </template>\r\n <template #cover>\r\n <canvas v-if=\"item.loading\" ref=\"loading\" width=\"34\" height=\"34\" class=\"w-mediaupload-progress-loading f-abs-center\"></canvas>\r\n <i v-else-if=\"canPlay\" class=\"w-mediaupload-cover-play f-abs-center f-flex-center f-i f-i-play\"></i>\r\n <div class=\"w-mediaupload-value-oper\">\r\n <i v-if=\"upload.isNormal\" class=\"w-mediaupload-value-close f-flex-center f-i f-i-trash\" :title=\"titleRemove\" @click=\"remove\"></i>\r\n <w-menu v-if=\"item.value && upload.$slots.menu\">\r\n <component v-for=\"menu in menus\" :is=\"menu\"></component>\r\n <template #target>\r\n <i class=\"w-mediaupload-value-menu f-flex-center f-i f-i-ellipsis\" :title=\"titleMore\"></i>\r\n </template>\r\n </w-menu>\r\n </div>\r\n </template>\r\n </w-img>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['item'],\r\n inject: ['provideUpload'],\r\n data() {\r\n return {\r\n dataURL: null,\r\n }\r\n },\r\n methods: {\r\n click(e) {\r\n this.provideUpload.clickItem(e, this.item, this.provideUpload)\r\n },\r\n createImageThumbnail() {\r\n let r = new FileReader()\r\n r.onload = (e) => {\r\n if (this.item.loaded) return\r\n this.dataURL = e.target.result\r\n }\r\n r.readAsDataURL(this.item.file)\r\n },\r\n createVideoThumbnail() {\r\n let video = document.createElement('video')\r\n video.addEventListener('loadeddata', () => {\r\n setTimeout(() => {\r\n if (this.item.loaded) return\r\n let cvs = document.createElement('canvas')\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = video.videoWidth\r\n cvs.height = video.videoHeight\r\n ctx.drawImage(video, 0, 0)\r\n this.dataURL = cvs.toDataURL('image/png') \r\n video.pause()\r\n $.q(video).remove()\r\n }, 150)\r\n });\r\n video.src = URL.createObjectURL(this.item.file)\r\n video.muted = true\r\n video.play()\r\n },\r\n setProgress(a) {\r\n let cvs = this.$refs.loading\r\n if (!this.item.loading || !cvs) return\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = cvs.width\r\n ctx.beginPath()\r\n ctx.translate(17, 17)\r\n ctx.moveTo(0, 0)\r\n ctx.arc(0, 0, 15, -Math.PI * .5, Math.PI * ((2 * a / 100) - .5))\r\n ctx.closePath()\r\n ctx.fillStyle = 'rgba(255,255,255,.7)'\r\n ctx.fill()\r\n ctx.beginPath()\r\n ctx.arc(0, 0, 16, 0, Math.PI * 2)\r\n ctx.strokeStyle = '#fff'\r\n ctx.stroke()\r\n },\r\n remove(e) {\r\n this.upload.remove(this.item)\r\n e.stopPropagation()\r\n }, \r\n },\r\n computed: {\r\n upload() {\r\n return this.provideUpload\r\n },\r\n img() {\r\n return this.$refs.thumbnail.$refs.img\r\n },\r\n src() {\r\n return this.item.value ? $.urlServer(this.item.value.thumbnail || this.upload.x.thumbnailSrc, this.item.value,\r\n this.upload.x.data) : ''\r\n },\r\n name() {\r\n return this.item.value ? this.item.value.name : this.item.file.name\r\n },\r\n tip() {\r\n return this.item.error ? this.item.error.message : this.name\r\n },\r\n titleRemove() {\r\n return $.loc.remove\r\n },\r\n titleMore() {\r\n return $.loc.more\r\n },\r\n canPlay() {\r\n return this.item.value && (this.upload.isVideo(this.item) || this.upload.isAudio(this.item))\r\n },\r\n menus() {\r\n return this.upload.$slots.menu({item: this.item.value})\r\n }\r\n },\r\n mounted() {\r\n if (!this.item.loaded && this.item.file) {\r\n this.upload.isVideo(this.item) ? this.createVideoThumbnail() : this.upload.isImage(this.item) ? this.createImageThumbnail() : null\r\n this.$watch(() => this.item.progress, v => this.setProgress(v), {\r\n immediate: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload-value.z-loading .w-img-cover {\r\n background: rgba(0, 0, 0, .25);\r\n }\r\n\r\n .w-mediaupload-progress {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload-progress-img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: right top;\r\n }\r\n</style>\r\n","<template>\r\n <w-img :class=\"['w-mediaupload-value', {'z-loading': item.loading, 'z-canplay': canPlay, 'z-err': item.error}]\" ref=\"thumbnail\" :src=\"src\" :data-url=\"dataURL\"\r\n :width=\"upload.x.thumbnailWidth\" :img-width=\"upload.x.thumbnailWidth-2\" :img-height=\"upload.x.thumbnailHeight-2\" :tip=\"tip\" @click=\"click\">\r\n <template v-if=\"upload.x.showFileName\" #default>\r\n <div class=\"f-line-1\">{{name}}</div>\r\n </template>\r\n <template #cover>\r\n <canvas v-if=\"item.loading\" ref=\"loading\" width=\"34\" height=\"34\" class=\"w-mediaupload-progress-loading f-abs-center\"></canvas>\r\n <i v-else-if=\"canPlay\" class=\"w-mediaupload-cover-play f-abs-center f-flex-center f-i f-i-play\"></i>\r\n <div class=\"w-mediaupload-value-oper\">\r\n <i v-if=\"upload.isNormal\" class=\"w-mediaupload-value-close f-flex-center f-i f-i-trash\" :title=\"titleRemove\" @click=\"remove\"></i>\r\n <w-menu v-if=\"item.value && upload.$slots.menu\">\r\n <component v-for=\"menu in menus\" :is=\"menu\"></component>\r\n <template #target>\r\n <i class=\"w-mediaupload-value-menu f-flex-center f-i f-i-ellipsis\" :title=\"titleMore\"></i>\r\n </template>\r\n </w-menu>\r\n </div>\r\n </template>\r\n </w-img>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['item'],\r\n inject: ['provideUpload'],\r\n data() {\r\n return {\r\n dataURL: null,\r\n }\r\n },\r\n methods: {\r\n click(e) {\r\n this.provideUpload.clickItem(e, this.item, this.provideUpload)\r\n },\r\n createImageThumbnail() {\r\n let r = new FileReader()\r\n r.onload = (e) => {\r\n if (this.item.loaded) return\r\n this.dataURL = e.target.result\r\n }\r\n r.readAsDataURL(this.item.file)\r\n },\r\n createVideoThumbnail() {\r\n let video = document.createElement('video')\r\n video.addEventListener('loadeddata', () => {\r\n setTimeout(() => {\r\n if (this.item.loaded) return\r\n let cvs = document.createElement('canvas')\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = video.videoWidth\r\n cvs.height = video.videoHeight\r\n ctx.drawImage(video, 0, 0)\r\n this.dataURL = cvs.toDataURL('image/png') \r\n video.pause()\r\n $.q(video).remove()\r\n }, 150)\r\n });\r\n video.src = URL.createObjectURL(this.item.file)\r\n video.muted = true\r\n video.play()\r\n },\r\n setProgress(a) {\r\n let cvs = this.$refs.loading\r\n if (!this.item.loading || !cvs) return\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = cvs.width\r\n ctx.beginPath()\r\n ctx.translate(17, 17)\r\n ctx.moveTo(0, 0)\r\n ctx.arc(0, 0, 15, -Math.PI * .5, Math.PI * ((2 * a / 100) - .5))\r\n ctx.closePath()\r\n ctx.fillStyle = 'rgba(255,255,255,.7)'\r\n ctx.fill()\r\n ctx.beginPath()\r\n ctx.arc(0, 0, 16, 0, Math.PI * 2)\r\n ctx.strokeStyle = '#fff'\r\n ctx.stroke()\r\n },\r\n remove(e) {\r\n this.upload.remove(this.item)\r\n e.stopPropagation()\r\n }, \r\n },\r\n computed: {\r\n upload() {\r\n return this.provideUpload\r\n },\r\n img() {\r\n return this.$refs.thumbnail.$refs.img\r\n },\r\n src() {\r\n return this.item.value ? $.urlServer(this.item.value.thumbnail || this.upload.x.thumbnailSrc, this.item.value,\r\n this.upload.x.data) : ''\r\n },\r\n name() {\r\n return this.item.value ? this.item.value.name : this.item.file.name\r\n },\r\n tip() {\r\n return this.item.error ? this.item.error.message : this.name\r\n },\r\n titleRemove() {\r\n return $.loc.remove\r\n },\r\n titleMore() {\r\n return $.loc.more\r\n },\r\n canPlay() {\r\n return this.item.value && (this.upload.isVideo(this.item) || this.upload.isAudio(this.item))\r\n },\r\n menus() {\r\n return this.upload.$slots.menu({item: this.item.value})\r\n }\r\n },\r\n mounted() {\r\n if (!this.item.loaded && this.item.file) {\r\n this.upload.isVideo(this.item) ? this.createVideoThumbnail() : this.upload.isImage(this.item) ? this.createImageThumbnail() : null\r\n this.$watch(() => this.item.progress, v => this.setProgress(v), {\r\n immediate: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload-value.z-loading .w-img-cover {\r\n background: rgba(0, 0, 0, .25);\r\n }\r\n\r\n .w-mediaupload-progress {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload-progress-img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: right top;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FileUpload from './FileUpload.vue'\r\n import MediaUploadItem from './MediaUploadItem.vue'\r\n import Horizontal from './Horizontal.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-mediaupload',\r\n mixins: [FileUpload],\r\n props: ['thumbnailWidth', 'thumbnailHeight', 'showFileName'],\r\n provide() {\r\n return {\r\n provideUpload: this\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'video',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n gap: 10,\r\n }\r\n },\r\n html_list() {\r\n return this.list.map((item, index) => {\r\n let key = item.value ? item.value.id : item.key\r\n if (!key) {item.key = key = $.uid()}\r\n return h(MediaUploadItem, {item, index, key})\r\n })\r\n },\r\n html_input_button() {\r\n return h('div', {}, [\r\n h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr'\r\n }, {\r\n default: () => [\r\n this.$slots.button ? this.$slots.button(this) : h(Button, {\r\n ref: 'uploadbutton',\r\n title: $.loc.form.choose_image,\r\n icon: '.f-i .f-i-plus',\r\n class: 'w-mediaupload-button',\r\n style: {\r\n width: $.unitSize(this.x.thumbnailWidth),\r\n height: $.unitSize(this.x.thumbnailHeight),\r\n },\r\n onclick: this.chooseFile\r\n }),\r\n this.slot('right')\r\n ]\r\n }),\r\n this.slot('down')\r\n ])\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(h(Horizontal, {\r\n width: '*',\r\n class: 'w-mediaupload-list',\r\n align: this.x.align,\r\n gap: this.x.gap,\r\n }, {default: () => [this.html_list(), this.canUpload && this.html_input_button()]}))\r\n },\r\n },\r\n computed: {\r\n html_style() {\r\n return {\r\n '--w-thumbnail-width': $.unitSize(this.x.thumbnailWidth),\r\n '--w-label-min-height': $.unitSize(this.x.thumbnailHeight),\r\n '--w-gap': $.unitSize(this.x.gap),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-mediaupload {\r\n &.z-h-valign-top,\r\n &.z-h-valign-top>.w-formbase-main>.w-input {\r\n align-items: flex-start;\r\n }\r\n \r\n &.z-h-valign-bottom,\r\n &.z-h-valign-bottom>.w-formbase-main>.w-input {\r\n align-items: flex-end;\r\n }\r\n \r\n &.z-h-align-center>.w-formbase-main>.w-input {\r\n justify-content: center;\r\n }\r\n \r\n &.z-h-align-right>.w-formbase-main>.w-input {\r\n justify-content: flex-end;\r\n }\r\n \r\n &>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n \r\n &>.w-formbase-main>.w-input {\r\n height: 100%;\r\n }\r\n \r\n input[type=\"file\"] {\r\n display: none;\r\n }\r\n }\r\n\r\n .w-mediaupload-list {\r\n\r\n }\r\n\r\n .w-mediaupload-value,\r\n .w-mediaupload-button {\r\n position: relative;\r\n }\r\n\r\n .w-mediaupload-button {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value {\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n }\r\n\r\n .w-mediaupload-value.z-loading .w-mediaupload-progress:before,\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n background: rgba(0, 0, 0, .2);\r\n }\r\n\r\n .w-mediaupload-button .w-button-icon {\r\n font-size: 36px;\r\n color: #bbb;\r\n }\r\n\r\n .w-mediaupload-value-oper {\r\n position: absolute;\r\n display: flex;\r\n cursor: pointer;\r\n top: 0;\r\n right: 0;\r\n }\r\n \r\n .w-mediaupload-value-close,\r\n .w-mediaupload-value-menu {\r\n visibility: hidden;\r\n width: 24px;\r\n height: 24px;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .6);\r\n }\r\n\r\n .w-mediaupload-value-close:hover {\r\n color: #f33;\r\n }\r\n\r\n .w-mediaupload-value:hover .w-mediaupload-value-oper > *,\r\n .w-mediaupload-value-menu[w-pop-visible] {\r\n visibility: visible;\r\n }\r\n\r\n .w-mediaupload-value .w-img-gut {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-img-gut {\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress-loading {\r\n display: none;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '上传失败';\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .5);\r\n }\r\n\r\n .w-mediaupload-cover-play {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 30px;\r\n background: rgba(0, 0, 0, .5);\r\n color: #fff;\r\n cursor: pointer;\r\n }\r\n\r\n .w-mediaupload-cover-play:before {\r\n transform: translateX(2px);\r\n }\r\n\r\n .w-mediaupload.z-err .w-mediaupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import MediaUpload from './MediaUpload.vue'\r\n\r\n export default {\r\n name: 'w-imageupload',\r\n mixins: [MediaUpload],\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'image',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n gap: 10\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-mediaupload'\r\n },\r\n },\r\n }\r\n</script>\r\n","<template>\r\n <button v-bind=\"html_attrs\" :class=\"['f-flex-align', provideOptionParent.$options.name + '-option', {'z-on': isFocus, 'z-ds': disabled, 'z-mul': isMul}]\"\r\n @click=\"click\" :disabled=\"disabled\" :title=\"text\">\r\n <div class=\"f-flex-1 f-line-1\">\r\n <slot>{{text}}</slot>\r\n </div>\r\n <div v-if=\"isMul\" :class=\"['w-option-checked', {'f-i f-i-check': isFocus}]\"></div>\r\n </button>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-option',\r\n mixins: [WidgetBase],\r\n props: ['value', 'text', 'disabled'],\r\n inject: ['provideOptionParent'],\r\n methods: {\r\n click(e) {\r\n if (this.provideOptionParent.clickOption)\r\n this.provideOptionParent.clickOption(this)\r\n }\r\n },\r\n\r\n computed: {\r\n isFocus() {\r\n let m = this.provideOptionParent.x.modelValue\r\n return Array.isArray(m) ? m.includes(this.value) : $.idsAny(m, this.value)\r\n },\r\n isMul() {\r\n return this.provideOptionParent.x.multiple\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-option {\r\n height: var(--w-option-height, 32px);\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n text-align: left;\r\n }\r\n\r\n .w-dropbox-option.z-ds,\r\n .w-dropbox-option.z-ds:hover {\r\n background-color: #f9f9f9;\r\n color: #999;\r\n }\r\n\r\n .w-dropbox-option:hover {\r\n background-color: #f5faff;\r\n }\r\n\r\n .w-dropbox-option.z-on:not(.z-mul) {\r\n background-color: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n\r\n .w-dropbox-option.z-on.z-mul {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-option-checked {\r\n width: 18px;\r\n height: 18px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .w-option.z-mul {\r\n padding-left: 13px;\r\n }\r\n\r\n .w-option-checked.f-i {\r\n border-color: var(--w--primary-color);\r\n }\r\n</style>\r\n","<template>\r\n <button v-bind=\"html_attrs\" :class=\"['f-flex-align', provideOptionParent.$options.name + '-option', {'z-on': isFocus, 'z-ds': disabled, 'z-mul': isMul}]\"\r\n @click=\"click\" :disabled=\"disabled\" :title=\"text\">\r\n <div class=\"f-flex-1 f-line-1\">\r\n <slot>{{text}}</slot>\r\n </div>\r\n <div v-if=\"isMul\" :class=\"['w-option-checked', {'f-i f-i-check': isFocus}]\"></div>\r\n </button>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-option',\r\n mixins: [WidgetBase],\r\n props: ['value', 'text', 'disabled'],\r\n inject: ['provideOptionParent'],\r\n methods: {\r\n click(e) {\r\n if (this.provideOptionParent.clickOption)\r\n this.provideOptionParent.clickOption(this)\r\n }\r\n },\r\n\r\n computed: {\r\n isFocus() {\r\n let m = this.provideOptionParent.x.modelValue\r\n return Array.isArray(m) ? m.includes(this.value) : $.idsAny(m, this.value)\r\n },\r\n isMul() {\r\n return this.provideOptionParent.x.multiple\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-option {\r\n height: var(--w-option-height, 32px);\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n text-align: left;\r\n }\r\n\r\n .w-dropbox-option.z-ds,\r\n .w-dropbox-option.z-ds:hover {\r\n background-color: #f9f9f9;\r\n color: #999;\r\n }\r\n\r\n .w-dropbox-option:hover {\r\n background-color: #f5faff;\r\n }\r\n\r\n .w-dropbox-option.z-on:not(.z-mul) {\r\n background-color: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n\r\n .w-dropbox-option.z-on.z-mul {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-option-checked {\r\n width: 18px;\r\n height: 18px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .w-option.z-mul {\r\n padding-left: 13px;\r\n }\r\n\r\n .w-option-checked.f-i {\r\n border-color: var(--w--primary-color);\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n\r\n export default {\r\n name: 'w-spinner',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['decimal', 'format', 'showButton', 'buttonPosition', 'step', 'autoFix', 'compare', 'minValue', 'maxValue'],\r\n mounted() {\r\n this.x.format && this.doFormat()\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n step: 1,\r\n autoFix: true,\r\n showButton: true,\r\n buttonPosition: 'right',\r\n // inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 140\r\n }\r\n },\r\n doFormat() {\r\n let v = '' + this.x.modelValue\r\n let s = this.x.format.separator || ','\r\n let r = RegExp(s.replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&'), 'g')\r\n let t = $.numFormat(v, this.x.format.length, s, this.x.format.rightward)\r\n if (v !== t) {\r\n let n = this.$refs.v.selectionStart\r\n let b = v.slice(0, n).replace(r, '')\r\n this.val(t)\r\n if (document.activeElement === this.$refs.v) {\r\n let a = t.slice(0, n).replace(r, '')\r\n this.$nextTick(() => $.rngCursor(this.$refs.v, n + (b.length - a.length)))\r\n }\r\n }\r\n },\r\n stepBy(a) {\r\n if (!this.isNormal) return\r\n let m = this.defaultRuleValue('maxValue')\r\n let n = this.defaultRuleValue('minValue')\r\n let u = this.val()\r\n let v = $.numAdd($.number(u), a * this.x.step)\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n let r = v\r\n m != null && (r = Math.min(m, r))\r\n n != null && (r = Math.max(n, r))\r\n if (p) {\r\n if (p[0] == this) {\r\n let endValue = p[1].val()\r\n if (endValue != null) r = Math.min(endValue, r)\r\n } else if (p[1] == this) {\r\n let beginValue = p[0].val()\r\n if (beginValue != null) r = Math.max(beginValue, r)\r\n }\r\n }\r\n this.warn(false)\r\n this.focus()\r\n this.val(r)\r\n if (r == v) {\r\n if (this.tip_uid) {\r\n $.close(this.tip_uid)\r\n this.tip_uid = null\r\n }\r\n }\r\n this.x.format && this.doFormat()\r\n },\r\n // #fixme: 暂时用getValidErrorSync\r\n isUsableVal(v) {\r\n return !this.getValidErrorSync(null, v)\r\n },\r\n isFocusTarget(el) { // implement\r\n return (this.$refs.buttonMinus && this.$refs.buttonMinus.contains(el)) || (this.$refs.buttonPlus && this.$refs.buttonPlus.contains(el))\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.isNumber(v) && $.isNumber(tv)) {\r\n let d = $.number(v)\r\n let td = $.number(tv)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n this.x.format && this.doFormat()\r\n },\r\n onfocus(e) {\r\n this.baseFocus(e)\r\n },\r\n onblur(e) {\r\n let v = this.x.modelValue\r\n if (v && !this.isUsableVal(v) && this.x.autoFix) {\r\n let nv = $.numDecimal(v, this.x.decimal)\r\n nv = $.numRange(nv, this.x.minValue, this.x.maxValue)\r\n this.val(nv)\r\n }\r\n this.baseBlur(e)\r\n },\r\n html_button() {\r\n let r = []\r\n let clearButton\r\n if (this.x.clearable && this.isNormal) {\r\n clearButton = h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n })\r\n }\r\n if (this.x.showButton) {\r\n if (clearButton) r.push(clearButton)\r\n if (this.x.buttonPosition === 'right') {\r\n r.push(h('div', {\r\n class: 'w-spinner-step w-input-button f-flex-column f-oh',\r\n }, [\r\n h('button', {\r\n\t\t\t\t\t\t\t\tref: 'buttonPlus',\r\n class: 'w-spinner-step-up f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-up\"></i>'\r\n }),\r\n h('button', {\r\n\t\t\t\t\t\t\t\tref: 'buttonMinus',\r\n class: 'w-spinner-step-down f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(-1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-down\"></i>'\r\n }),\r\n ]))\r\n } else if (this.x.buttonPosition === 'between') {\r\n r.push(h('button', {\r\n\t\t\t\t\t\t\tref: 'buttonMinus',\r\n class: 'w-spinner-step-minus f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(-1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-minus\"></i>'\r\n }),\r\n h('button', {\r\n\t\t\t\t\t\t\tref: 'buttonPlus',\r\n class: 'w-spinner-step-plus f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-plus\"></i>'\r\n }))\r\n }\r\n } else {\r\n if (clearButton) r.push(clearButton)\r\n }\r\n return r\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) < $.number(r)) : (v < r)))\r\n return this.formErr(q, [r])\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) > $.number(r)) : (v > r)))\r\n return this.formErr(q, [r])\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v) => {\r\n this.x.format && (v = v.replace(RegExp(this.x.format.separator || ',', 'g'), ''))\r\n if (v != null) {\r\n if (!$.isNumber(v))\r\n return this.formErr({\r\n type: 'number_invalid'\r\n })\r\n let d = this.x.decimal\r\n v = '' + v\r\n if (!d && v.includes('.'))\r\n return this.formErr({\r\n type: 'number_integer'\r\n })\r\n if (d && d > 0 && $.strFrom(v, '.').length > d)\r\n return this.formErr({\r\n type: 'number_decimal_digit'\r\n }, [d])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({\r\n type: 'compare'\r\n }, e)\r\n }\r\n }\r\n }\r\n },\r\n input_prop() {\r\n return {\r\n 'w-valuetype': 'number',\r\n oninput: this.oninput,\r\n onfocus: this.onfocus,\r\n onblur: this.onblur,\r\n }\r\n },\r\n html_class() {\r\n return ['z-buttonposition-' + this.x.buttonPosition, {\r\n 'z-val': this.hasVal,\r\n 'z-clearable': !!this.x.clearable,\r\n }]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-spinner-step-up,\r\n .w-spinner-step-down {\r\n height: 15px;\r\n overflow: hidden;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .f-i {\r\n font-size: 14px;\r\n color: #777;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-minus {\r\n order: -1;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-right: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-plus {\r\n order: 1;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-left: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n import Dialog from './Dialog.vue'\r\n import Calendar from './Calendar.vue'\r\n\r\n export default {\r\n name: 'w-datepicker',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['showButton', 'multiple', 'format', 'autoFix', 'compare', 'minValue', 'maxValue', 'dropProps', 'enableHour', 'enableMinute', 'enableSecond',\r\n 'defaultHour', 'defaultMinute', 'defaultSecond'],\r\n data() {\r\n return {\r\n showDrop: false,\r\n currentDate: null,\r\n lastValue: null,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n format: 'yyyy-MM-dd',\r\n autoFix: true,\r\n showButton: true,\r\n // inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 180\r\n }\r\n },\r\n isUsableVal(v) {\r\n if (!v) return true\r\n if (!$.dateValid(v, this.x.format)) return false\r\n let eh = this.x.enableHour && $.arrayNumber(this.x.enableHour)\r\n let em = this.x.enableMinute && $.arrayNumber(this.x.enableMinute)\r\n let es = this.x.enableSecond && $.arrayNumber(this.x.enableSecond)\r\n if (eh || em || es) {\r\n let d = $.dateParse(v, this.x.format)\r\n if ((eh && !eh.includes(d.getHours())) || (em && !em.includes(d.getMinutes())) || (es && !es.includes(d.getSeconds()))) return false\r\n }\r\n return true\r\n },\r\n onfocus(e) {\r\n this.lastValue = this.x.modelValue\r\n this.baseFocus(e)\r\n },\r\n onkeyup() {\r\n if (this.isNormal)\r\n this.showDrop = true\r\n },\r\n // implement\r\n onCloseDrop() {\r\n this.showDrop = false\r\n this.currentDate = null\r\n this.doAutoFix()\r\n },\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n if (this.hasVal) {\r\n this.val('')\r\n this.$emit('clear', e)\r\n }\r\n },\r\n doAutoFix() {\r\n let v = this.x.modelValue\r\n if (v) {\r\n if (!this.isUsableVal(v)) {\r\n this.x.autoFix && this.val(this.lastValue)\r\n } else {\r\n let re = /\\b(\\d)\\b/g\r\n if (re.test(v)) {\r\n this.val(v.replace(re, '0$1'))\r\n }\r\n }\r\n }\r\n },\r\n drop() {\r\n if ($.br.mobile) {\r\n $.dateSheet({\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n success: this.calendarCallback,\r\n })\r\n } else {\r\n this.showDrop = true\r\n }\r\n },\r\n calendarCallback(val) {\r\n this.val(val)\r\n this.showDrop = false\r\n this.currentDate = null\r\n if (!$.br.mobile)\r\n this.focus()\r\n },\r\n getPeriod() {\r\n let minValue = this.x.minValue\r\n let maxValue = this.x.maxValue\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n if (p) {\r\n if (p[0] == this) {\r\n let end = p[1].formVal()\r\n if (end != null && (maxValue == null || maxValue > end)) maxValue = end\r\n } else if (p[1] == this) {\r\n let begin = p[0].formVal()\r\n if (begin != null && (minValue == null || minValue < begin)) minValue = begin\r\n }\r\n }\r\n return {\r\n minValue,\r\n maxValue\r\n }\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let f = this.x.format\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.dateValid(v, f) && $.dateValid(tv, f)) {\r\n let d = $.dateParse(v, f)\r\n let td = $.dateParse(tv, f)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n html_button() {\r\n let r = []\r\n let f = this.x.format || ''\r\n let timeCols = 0\r\n if (f.includes('H')) timeCols ++\r\n if (f.includes('m')) timeCols ++\r\n if (f.includes('s')) timeCols ++\r\n let onlyTime = /[Hms]/.test(f) && !/[yMd]/.test(f)\r\n \r\n let s = []\r\n let clearButton\r\n if (this.x.clearable && this.isNormal) {\r\n clearButton = h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n })\r\n }\r\n if (this.x.showButton) {\r\n let b = [h('button', {class: 'w-input-button-drop w-input-button f-i f-i-date'})]\r\n if (clearButton) b.push(clearButton)\r\n r.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n } else if (clearButton) {\r\n r.push(clearButton)\r\n }\r\n if (this.showDrop) {\r\n\t\t\t\t\tlet dropProps = {\r\n ownproperty: true,\r\n class: ['f-dfish-dialog w-calendar-dialog', {'z-hastime': timeCols, 'z-onlytime': onlyTime}],\r\n style: {'--w-datepicker-time-cols': (timeCols || '')},\r\n context: this,\r\n autoHide: true,\r\n snap: () => this.snapElem(),\r\n position: 'v',\r\n\t\t\t\t\t\tindent: 1\r\n }\r\n\t\t\t\t\tdropProps = this.mergeDropProps(dropProps)\r\n r.push(h(Dialog, dropProps, {\r\n default: () => h(Calendar, {\r\n height: '*',\r\n pad: true,\r\n current: this.currentDate || this.x.modelValue || '',\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n enableHour: this.x.enableHour,\r\n enableMinute: this.x.enableMinute,\r\n enableSecond: this.x.enableSecond,\r\n defaultHour: this.x.defaultHour,\r\n defaultMinute: this.x.defaultMinute,\r\n defaultSecond: this.x.defaultSecond,\r\n success: this.calendarCallback,\r\n 'onClick:item': (e, item) => {this.currentDate = item.value},\r\n })\r\n }))\r\n }\r\n return r\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) < $.dateParse(r, this.x.format))\r\n return this.formErr(q)\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) > $.dateParse(r, this.x.format))\r\n return this.formErr(q)\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v, r, q) => {\r\n if (this.x.multiple)\r\n return;\r\n if (v) {\r\n let c = v\r\n let d = $.dateParse(c, this.x.format)\r\n let y = d.getFullYear()\r\n let m = 9999\r\n let n = 1000\r\n if (y > m || y < n)\r\n return this.formErr({type: 'time_exceed'}, [n, m])\r\n if (c != $.dateFormat(d, this.x.format)) {\r\n return this.formErr({type: 'time_format'}, [$.dateFormat(new Date, this.x.format)]);\r\n }\r\n }\r\n if (this.defaultRuleValue('beforeNow') && v && v > $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'beforeNow'}, [this.x.beforeNow])\r\n if (this.defaultRuleValue('afterNow') && v && v < $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'afterNow'}, [this.x.afterNow])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({type: 'compare'}, e)\r\n }\r\n }\r\n },\r\n input_prop() {\r\n return $.br.mobile ? {\r\n readonly: true,\r\n } : {\r\n onfocus: this.onfocus,\r\n onkeyup: this.onkeyup,\r\n }\r\n },\r\n form_prop() {\r\n return {\r\n onclick: this.isNormal && this.drop\r\n }\r\n },\r\n\t\t\thtml_class() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t'z-drop': this.showDrop,\r\n 'z-val': this.hasVal,\r\n 'z-droppable': true,\r\n 'z-clearable': this.x.clearable,\r\n\t\t\t\t}\r\n\t\t\t}\r\n },\r\n mounted() {\r\n this.$watch('modelValue', (v) => {\r\n if (this.x.autoFix && v && (v = $.strTrim(v))) {\r\n if (!$.dateValid(v, this.x.format)) {\r\n let d = $.dateParse(v, this.x.format)\r\n v = $.dateFormat(d, this.x.format)\r\n this.val(v)\r\n }\r\n this.lastValue = v\r\n }\r\n }, {immediate: true})\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-dropbox',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['multiple', 'cancelable', 'clearable', 'dropProps'],\r\n\t\temits: ['clear'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n dropper: null,\r\n showDrop: false,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n click() {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n }\r\n },\r\n clickOption(opt) {\r\n if (this.x.multiple) {\r\n let cv = $.arrayID(this.val()).concat()\r\n if (opt.isFocus) $.lodash.pull(cv, opt.value)\r\n else cv.push(opt.value)\r\n this.val(cv)\r\n } else {\r\n let cv = this.x.cancelable && opt.isFocus ? '' : opt.value\r\n this.val(cv)\r\n this.showDrop = false\r\n }\r\n },\r\n clickButtonClear(e) {\r\n if (this.x.clearable && this.hasVal) {\r\n e.stopPropagation()\r\n this.val('')\r\n this.$emit('clear', e)\r\n }\r\n },\r\n formText() {\r\n return this.input_text\r\n },\r\n html_input() {\r\n let t = $.string(this.input_text)\r\n let p = this.input_placeholder\r\n let m = !!$.br.mobile\r\n\t\t\t\tlet r = [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-dropbox-text f-line-1',\r\n title: t || p,\r\n }, t || (p && h('div', {class: 'w-input-placeholder'}, p))),\r\n ]\r\n\t\t\t\tif (this.showDrop) {\r\n\t\t\t\t\tlet dropProps = {\r\n\t\t\t\t\t context: this,\r\n\t\t\t\t\t ownproperty: true,\r\n\t\t\t\t\t class: 'f-dfish-dialog w-dropbox-dialog' + (m ? ' z-mob' : ''),\r\n\t\t\t\t\t width: m ? '100%' : $.bcr(this.el('form')).width,\r\n\t\t\t\t\t autoHide: true,\r\n\t\t\t\t\t cover: m,\r\n\t\t\t\t\t snap: m ? null : () => this.el('form'),\r\n\t\t\t\t\t position: m ? null : 'v',\r\n\t\t\t\t\t indent: 1,\r\n scrollY: true,\r\n scrollView: '.z-on'\r\n\t\t\t\t\t}\r\n dropProps = this.mergeDropProps(dropProps)\r\n\t\t\t\t\tr.push(h(Dialog, dropProps, this.$slots))\r\n\t\t\t\t}\r\n\t\t\t\treturn r\r\n },\r\n html_button() {\r\n let b = [h('button', {class: 'w-input-button-drop w-input-button f-i f-i-caret-down'})]\r\n if (this.x.clearable && this.isNormal) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n return h('div', {class: 'w-input-buttonbar'}, b)\r\n }\r\n },\r\n computed: {\r\n input_text() {\r\n let r = []\r\n let s = this.slots_children()\r\n let m = $.arrayID(this.x.modelValue)\r\n $.lodash.each(m, v => {\r\n let i = s.findIndex(n => n.props.value == v)\r\n if (i > -1) r.push(i)\r\n if (!this.x.multiple) return false\r\n })\r\n return r.sort().map(v => s[v].props.text).join(', ')\r\n },\r\n form_prop() {\r\n return {\r\n onclick: this.isNormal && this.click\r\n }\r\n },\r\n\t\t\thtml_class() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t'z-val': this.hasVal,\r\n\t\t\t\t\t'z-drop': this.showDrop,\r\n\t\t\t\t\t'z-droppable': true,\r\n 'z-clearable': this.x.clearable,\r\n\t\t\t\t}\r\n\t\t\t}\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import DropBox from './DropBox.vue'\r\n\r\n export default {\r\n name: 'w-pickbox',\r\n mixins: [DropBox],\r\n props: ['picker'],\r\n methods: {\r\n // implement\r\n getInputValue(mv) {\r\n \t// return mv && typeof mv === 'object' ? JSON.stringify(mv) : mv == null ? '' : mv\r\n return typeof mv === 'string' ? mv : $.array(mv).map(v => v.value).join(',')\r\n },\r\n click(e) {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n } else if (this.x.picker) {\r\n this.clickButtonPicker(e)\r\n }\r\n },\r\n clickButtonPicker(e) {\r\n e && e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n closeDrop() {\r\n this.showDrop = false\r\n return this\r\n },\r\n html_button() {\r\n\t\t\t\tlet s = []\r\n if (this.$slots.default || (this.x.clearable && this.isNormal)) {\r\n let b = []\r\n if (this.$slots.default) {\r\n b.push(h('button', {\r\n class: 'w-input-button-drop w-input-button f-i f-i-caret-down'\r\n }))\r\n }\r\n if (this.x.clearable && this.isNormal) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n s.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-button-picker w-input-button f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickButtonPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n hasVal() {\r\n return this.input_text\r\n },\r\n input_text() {\r\n let v = this.x.modelValue\r\n\t\t\t\tif (v && typeof v === 'string') {\r\n\t\t\t\t\tv = JSON.parse(v)\r\n\t\t\t\t}\r\n if (Array.isArray(v)) {\r\n return v.map(item => item.text).join(', ')\r\n } else {\r\n return (v && v.text) || ''\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import Text from './Text.vue'\r\n\r\n export default {\r\n name: 'w-password',\r\n mixins: [Text],\r\n props: ['compare'],\r\n methods: {\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '=='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && !$.eval('v' + m + 'tv', {v, tv})) {\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n }\r\n }\r\n },\r\n input_type() {\r\n return 'password'\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-range',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideRangeParent: this\r\n }\r\n },\r\n props: ['mode'],\r\n methods: {\r\n getRangeError() {\r\n let f = this.forms()\r\n if (f && f.length) {\r\n return f[0].getCompareError(f[0].formVal(), {target: f[1], mode: this.x.mode})\r\n }\r\n },\r\n forms() {\r\n const to = this.$refs.to\r\n return to && this.ownerView.fAll(null, to.parentNode)\r\n },\r\n snapElem() {\r\n return this.forms()[0] || this.el('form')\r\n },\r\n html_form() {\r\n let c = this.slots_children()\r\n c.splice(1, 0, h('div', {ref: 'to', class: 'w-range-to'}, $.loc.to))\r\n //c.push(h('input', {type: 'hidden', ref:'v', id: this.uid + 'hdn'}))\r\n return c\r\n },\r\n },\r\n computed: {\r\n html_on() {\r\n return {\r\n onclick: e => this.warnClass = ''\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-range.z-full>.w-formbase-main>.w-input>.w-formbase:not(.z-fixed) {\r\n flex: 1;\r\n }\r\n .w-range>.w-formbase-main {\r\n display: flex;\r\n align-items: center;\r\n &>.w-formbase {\r\n width: 100%;\r\n min-width: 0;\r\n }\r\n } \r\n .w-range-to {\r\n width: 28px;\r\n min-width: 24px;\r\n text-align: center;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import Vertical from './Vertical.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n \r\n export default {\r\n name: 'w-combobox',\r\n mixins: [FormBase],\r\n props: ['multiple', 'strict', 'dropper', 'picker', 'dropProps', 'br', 'clearable'],\r\n emits: ['input', 'click:item', 'blur', 'focus', 'clear'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n showSuggest: false,\r\n sug_timer: null,\r\n sensor_text: this.getInputText(this.modelValue),\r\n sensor_width: null,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n strict: true\r\n }\r\n },\r\n // implement\r\n watchModelValue(v, ov) {\r\n this.clear()\r\n if (!this.x.strict) {\r\n this.sensor_text = this.getInputText(v)\r\n }\r\n const or = ov && ov.map ? ov.map(n => n.value).join(',') : ''\r\n const r = v && v.map ? v.map(n => n.value).join(',') : ''\r\n if (or != r) {\r\n this.trigger('change', v)\r\n }\r\n },\r\n getInputValue(mv) {\r\n if (typeof mv === 'string') {\r\n return mv\r\n }\r\n let r = $.array(mv).filter(v => v.value).map(v => v.value)\r\n if (!this.x.strict && this.sensor_text) {\r\n r.push(this.sensor_text)\r\n }\r\n return r.join(',')\r\n },\r\n getInputText(mv) {\r\n const n = $.array(mv).find(v => !v.value && v.text)\r\n return n ? n.text : ''\r\n },\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n $.lodash.remove(mv, m => !m || !m.text)\r\n this.val(mv)\r\n },\r\n complete(v) {\r\n this.addVal(v)\r\n this.clear()\r\n this.$nextTick(this.focus)\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n clear() {\r\n this.sensor_text = ''\r\n if (this.isNormal) {\r\n this.$refs.input.value = ''\r\n }\r\n },\r\n // implement\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n this.warn(false)\r\n this.clear()\r\n this.val(empty || this.defaultValue == null ? '' : this.defaultValue)\r\n },\r\n focus(toEnd) {\r\n\t\t\t\tif (this.isNormal) {\r\n\t\t\t\t\tthis.$refs.input.focus()\r\n if (toEnd && this.$refs.input.value) $.rngCursor(this.$refs.input)\r\n\t\t\t\t\tthis.warn(false)\r\n\t\t\t\t}\r\n },\r\n\t\t\tonclick(e) {\r\n\t\t\t\tif (!this.sensor_text && typeof this.x.dropper === 'function') {\r\n\t\t\t\t\tthis.suggest()\r\n\t\t\t\t\tthis.x.dropper(this)\r\n\t\t\t\t}\r\n const toEnd = e && e.target == this.$refs.list\r\n\t\t\t\tthis.focus(toEnd)\r\n\t\t\t},\r\n oninput(e) {\r\n let v = e.target.value\r\n this.sensor_text = v\r\n clearTimeout(this.sug_timer)\r\n if (v === '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n e.value = v\r\n this.trigger(e, v)\r\n }, 500)\r\n }\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 8) { // 8:backspace\r\n if (e.target.selectionStart === 0 && e.target.selectionEnd === 0) {\r\n let mv = $.array(this.x.modelValue).concat()\r\n if (mv.length) {\r\n mv.splice(mv.length - 1, 1)\r\n this.val(mv)\r\n }\r\n }\r\n }\r\n //38: up, 40:down\r\n //if (this.showSuggest && (k == 38 || k == 40)) e.preventDefault()\r\n },\r\n onblur(e) {\r\n this.isFocus = false\r\n this.trigger('blur')\r\n setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) this.valid('blur')\r\n }, 100)\r\n }, \r\n onfocus(e) {\r\n this.isFocus = true\r\n !this.showSuggest && e.target.value && e.target.dispatchEvent(new Event('input'))\r\n this.trigger('focus')\r\n },\r\n onwheel(e) {\r\n if (this.$refs.list.scrollWidth > this.$refs.list.clientWidth) {\r\n this.$refs.list.scrollLeft += (e.deltaY > 0 ? 1 : -1) * 50\r\n e.preventDefault()\r\n }\r\n },\r\n // implement\r\n onCloseDrop() {\r\n this.showSuggest = false\r\n },\r\n clickItem(e, item) {\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n },\r\n clickClose(e, item) {\r\n e.stopPropagation()\r\n let mv = $.array(this.x.modelValue).concat()\r\n let i = mv.findIndex(v => v.value == item.value)\r\n if (i > -1) {\r\n mv.splice(i, 1)\r\n this.val(mv)\r\n }\r\n },\r\n clickButtonPicker(e) {\r\n e.stopPropagation()\r\n this.warn(false)\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n this.val('')\r\n this.clear()\r\n this.suggest(false)\r\n this.focus()\r\n this.$emit('clear', e)\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options() {\r\n let m = this.x.modelValue\r\n if (m && typeof m !== 'string') {\r\n return $.array(m).filter(v => v.value).map(v => h('div', {\r\n class: ['w-combobox-option f-flex-center', {\r\n 'z-forbid': v.forbid\r\n }],\r\n onclick: e => this.clickItem(e, v)\r\n }, [h('div', {\r\n class: 'w-combobox-option-text f-line-1',\r\n title: v.text\r\n }, v.text),\r\n this.isNormal && h('div', {\r\n class: 'w-combobox-option-close f-i f-i-close',\r\n onclick: e => this.clickClose(e, v)\r\n })\r\n ]))\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-combobox-input-wrap'\r\n }, [\r\n h('div', {\r\n class: 'w-combobox-sensor',\r\n ref: 'sensor',\r\n }, this.sensor_text || (this.input_value ? null : this.input_placeholder)),\r\n h('input', {\r\n\t\t\t\t\t\ttype: 'text',\r\n ref: 'input',\r\n\t\t\t\t\t\tvalue: this.sensor_text,\r\n class: 'w-combobox-input',\r\n style: {\r\n width: this.sensor_width,\r\n },\r\n readonly: !this.isNormal,\r\n placeholder: this.input_value ? null : this.input_placeholder,\r\n oninput: this.oninput,\r\n onkeydown: this.onkeydown,\r\n onblur: this.isNormal && this.onblur,\r\n onfocus: this.isNormal && this.onfocus,\r\n })\r\n ])\r\n },\r\n html_input() {\r\n\t\t\t\tconst r = [\r\n\t\t\t\t\tthis.html_options()\r\n\t\t\t\t]\r\n\t\t\t\t//if (this.isNormal) {\r\n\t\t\t\t\tr.push(this.html_var())\r\n\t\t\t\t//}\r\n\t\t\t\tif (this.showSuggest) {\r\n\t\t\t\t\tlet dropProps = {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: $.bcr(this.el('form')).width,\r\n autoHide: true,\r\n snap:() => this.el('form'),\r\n position: 'v',\r\n indent: 1,\r\n scrollY: true\r\n }\r\n\t\t\t\t\tdropProps = this.mergeDropProps(dropProps)\r\n\t\t\t\t\tr.push(h(Dialog, dropProps, this.$slots))\r\n\t\t\t\t}\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n ref: 'list',\r\n class: ['w-combobox-list f-flex-1 f-flex f-oh f-height', {'f-h-gap': $.br.compat.gap}],\r\n onWheel: !this.x.br && this.onwheel\r\n }, r)\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper || (this.x.clearable && this.isNormal)) {\r\n let b = []\r\n if (this.x.dropper) {\r\n b.push(h('button', {class: 'w-input-button-drop w-input-button f-i f-i-caret-down'}))\r\n }\r\n if (this.x.clearable) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n s.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-button-picker w-input-button f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickButtonPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n validateDefault: (v) => {\r\n if (this.sensor_text) {\r\n if (this.x.strict) {\r\n return this.formErr({type: 'invalid_option'})\r\n }\r\n if (!this.x.multiple) {\r\n const n = $.array(this.x.modelValue).find(v => v.value)\r\n if (n) {\r\n return this.formErr({type: 'maxSize'}, 1)\r\n }\r\n }\r\n }\r\n },\r\n ...this.pubValidHooks,\r\n }\r\n },\r\n hasVal() {\r\n return this.input_value\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text).join(', ')\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br,\r\n\t\t\t\t\t'z-drop': this.showSuggest,\r\n 'z-val': this.hasVal || this.sensor_text,\r\n 'z-droppable': this.x.dropper,\r\n 'z-clearable': this.x.clearable,\r\n }\r\n },\r\n form_prop() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonclick: this.isNormal && this.onclick\r\n\t\t\t\t}\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.sensor) {\r\n new ResizeObserver(() => {\r\n if (this.$refs.sensor) {\r\n this.sensor_width = this.$refs.sensor.offsetWidth + 'px'\r\n }\r\n }).observe(this.$refs.sensor)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-combobox-list {\r\n padding: 2px 3px;\r\n box-sizing: border-box;\r\n align-items: center;\r\n --w-compat-gap: 3px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-combobox-list.f-h-gap {\r\n padding: 1px 3px;\r\n }\r\n \r\n .w-combobox-list.f-h-gap>* {\r\n margin-top: 1px;\r\n margin-bottom: 1px;\r\n }\r\n\r\n .w-combobox-list>.w-combobox-input-wrap:first-child {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-combobox-input-wrap {\r\n display: flex;\r\n }\r\n\r\n .w-combobox-sensor {\r\n position: absolute;\r\n visibility: hidden;\r\n z-index: -1;\r\n white-space: pre-wrap; \r\n }\r\n\r\n .w-combobox-input {\r\n min-width: 14px;\r\n width: 14px;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-combobox-option {\r\n position: relative;\r\n height: 26px;\r\n border: 1px solid #e6e6e6;\r\n background: #f8f8f8;\r\n padding: 0 5px;\r\n background: #f8f8f8;\r\n box-sizing: border-box;\r\n max-width: calc(100% - 21px);\r\n }\r\n\r\n .w-combobox-option.z-forbid .w-combobox-option-text {\r\n text-decoration: line-through;\r\n }\r\n\r\n .w-combobox-option-close {\r\n color: #aaa;\r\n font-size: 12px;\r\n line-height: 0;\r\n margin-left: 5px;\r\n transform: translateY(1px);\r\n cursor: pointer;\r\n }\r\n\r\n .w-combobox-option-close:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option {\r\n border-color: #d0d0d0;\r\n background: transparent;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option ._s {\r\n padding-right: 7px\r\n }\r\n\r\n .w-combobox.z-br .w-combobox-list {\r\n flex-wrap: wrap;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n\r\n export default {\r\n name: 'w-linkbox',\r\n mixins: [FormBase],\r\n props: ['multiple', 'picker', 'dropProps', 'separator', 'strict', 'br', 'clearable'],\r\n emits: ['input', 'dblclick:item', 'clear'],\r\n created() {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n if (!this.isFocus) {\r\n this.initOptions(v)\r\n }\r\n })\r\n },\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n sugger: null,\r\n showSuggest: false,\r\n sug_timer: null,\r\n _KC: null,\r\n imeMode: false,\r\n paste_rng: null,\r\n currOpt: null,\r\n store: [],\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n strict: true\r\n }\r\n },\r\n getInputValue(mv) {\r\n return typeof mv === 'string' ? mv : $.array(mv).map(v => v.value).join(',')\r\n },\r\n initOptions(v) {\r\n if (v == null) v = this.x.modelValue\r\n if (v && typeof v !== 'string') {\r\n v = $.array(v)\r\n if (this.store.length) this.store = []\r\n this.addStore(v)\r\n this.inp().innerHTML = this.html_options(v)\r\n }\r\n },\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n this.val(mv)\r\n },\r\n complete(a) {\r\n this.addStore(a)\r\n this.focus()\r\n let u = this.currOpt || $.rngElement()\r\n let p = this.x.separator || ','\r\n if (u) {\r\n if (u.tagName === 'U') {\r\n this.rng_text(u, 0, a.text)\r\n } else {\r\n if (u.tagName === 'I') {\r\n if (u.nextSibling && u.nextSibling.tagName === 'U') {\r\n u = u.nextSibling\r\n } else {\r\n u = $.after(u, '<u></u>')\r\n this.x.multiple && $.after(u, '<i>' + p + '</i>')\r\n }\r\n } else\r\n u = (!this.x.multiple && this.inp().querySelector('u')) || $.append(this.inp(), '<u></u>')\r\n this.rng_text(u, 0, a.text)\r\n }\r\n $.classAdd(u, '_o')\r\n u.setAttribute('data-value', a.value)\r\n a.forbid && u.setAttribute('data-forbid', '')\r\n let n = u.nextSibling\r\n $.rngCursor(n && !n.nextSibling ? n : u)\r\n this.x.multiple && !n && $.rngCursor($.after(u, '<i>' + p + '</i>')) // 光标在末尾则自动添加逗号分隔符\r\n let m = $.q(`u[data-value=\"${a.value}\"]`, this.inp())\r\n if (m.length > 1) m.eq(0).next('i').addBack().remove()\r\n this.save()\r\n }\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n input(a) {\r\n this.currOpt = a\r\n let v = a.innerText.replace(/^[\\s,]+|[\\s,]+$/g, '')\r\n clearTimeout(this.sug_timer)\r\n if (v === '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n this.trigger(this.createEvent('input', v), v)\r\n }, 500)\r\n }\r\n },\r\n focus() {\r\n this.$refs.inp.focus()\r\n this.warn(false)\r\n return this\r\n },\r\n inp() {\r\n return this.$refs.inp\r\n },\r\n fixStyle() {\r\n let c = $.rngElement()\r\n let g = false\r\n let t\r\n let uid = this.uid\r\n let inp = this.inp()\r\n if (!inp.contains(c))\r\n c = inp\r\n t = c.innerText\r\n if (this.paste_rng)\r\n c = this.paste_rng.parentElement()\r\n if (c.id === uid)\r\n c = inp\r\n if (c.id === uid + 't') {\r\n if (t) {\r\n if (c.firstChild.nodeType === 3) {\r\n let r = $.rngCursor(c)\r\n let u = document.createElement('u')\r\n r.extractContents()\r\n u.appendChild(document.createTextNode(t))\r\n r.insertNode(u)\r\n $.rngCursor(u)\r\n c = u\r\n } else {\r\n $.q('br', inp).remove()\r\n if (c.firstChild)\r\n c = c.firstChild\r\n else\r\n $.rngCursor(c)\r\n }\r\n } else\r\n return this.closeDrop()\r\n }\r\n $.q('br', inp).remove()\r\n // 输入框内之只允许存在U和I两种标签。输入过程中浏览器可能会自动生成 <font> 标签,需要去除它\r\n if (c.tagName === 'FONT') {\r\n if (c.parentNode.tagName === 'U') {\r\n let d = c.previousSibling.nodeValue\r\n let c = c.parentNode\r\n let t = c.innerText\r\n this.rng_text(c, t.indexOf(d) + d.length + 1, t)\r\n } else if (c.parentNode.id === uid + 't') {\r\n t = c.parentNode.innerText\r\n c = $.replaceWith(c, '<u></u>')\r\n c.innerText = t\r\n }\r\n }\r\n\r\n // 如果U标签后面跟的标签不是 <i>,</i> 就要合并\r\n if (c !== inp && c.tagName !== 'I' && c.nextSibling && c.nextSibling.tagName !== 'I') {\r\n if (c.nextSibling.nodeType === 3) {\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n } else {\r\n t = c.innerText\r\n this.rng_text(c, t.length, t + c.nextSibling.innerText)\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n g = true // 有更新\r\n }\r\n }\r\n $.q('u:has(br)', inp).remove()\r\n t = c.innerText\r\n // match text\r\n let n = []\r\n let p = this.x.separator || ','\r\n\r\n // 文本中如果包含分隔符 , 则分成若干选项\r\n if (this.x.multiple && t.length > 1 && t.indexOf(p) > -1) {\r\n let d = [],\r\n f = t.length - $.rngCursorOffset(),\r\n h, m = []\r\n t.split(p).forEach(s => {\r\n if (h = $.strTrim(s)) {\r\n g = this.param(h)\r\n d.push('<u' + (g ? ' class=_o data-value=\"' + g.value + '\"' + (g.forbid ? ' data-forbid' : '') : '') +\r\n '>' + h + '</u>')\r\n g ? m.push('u[data-value=\"' + g.value + '\"]') : n.push(h)\r\n } else\r\n d.push('')\r\n })\r\n m.length && (m = $.q(m.join(','), inp).next('i').addBack()) // 收集重复数据,以备删除\r\n let o = $.replaceWith(c, d.join('<i>' + p + '</i>'))\r\n let k = 0\r\n if (!this.paste_rng || this._KC === 188) { // 保留原有光标位置\r\n do {\r\n if ((k += o.innerText.length) >= f) {\r\n this.rng_text(o, k - f)\r\n break\r\n }\r\n } while (o = o.previousSibling)\r\n }\r\n m.length && (m.remove(), $.q('i + i, i:first-child', inp).remove()) // 删除重复数据\r\n g = true\r\n if ((c = $.rngElement()) && c.tagName === 'U' && !c.getAttribute('data-value'))\r\n this.input(c)\r\n else\r\n this.closeDrop()\r\n } else {\r\n if (t) {\r\n if ($.classAny(c, '_o') && !this.param(t)) {\r\n $.classRemove(c, '_o')\r\n c.removeAttribute('data-value')\r\n g = true\r\n } else if (!this.x.strict)\r\n g = true\r\n this.input(c)\r\n } else {\r\n g = true\r\n this.closeDrop()\r\n }\r\n }\r\n if (g) {\r\n this.save()\r\n //this._online && n.length > 1 && this.match({text: n.join(p)})\r\n }\r\n this.paste_rng = null\r\n },\r\n // 选项上的光标移动到指定位置 /@a -> elem, b -> cursor point, c -> text?\r\n rng_text(a, b, c) {\r\n let n = $.rngSelection()\r\n c != null && (a.innerText = c)\r\n n.selectNodeContents(a)\r\n $.rngCursor(n, b)\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n if (this.x.clearable && this.hasVal) {\r\n this.val([])\r\n this.$nextTick(this.focus)\r\n this.$emit('clear', e)\r\n }\r\n },\r\n addStore(m) {\r\n if (m && typeof m !== 'string') {\r\n let r = $.array(m).filter(v => !this.store.find(s => s.value == v.value))\r\n if (r.length) this.store = this.store.concat(r)\r\n }\r\n },\r\n param(t) {\r\n return this.store.find(v => v.text == t)\r\n },\r\n save() {\r\n let strict = this.x.strict\r\n let r = []\r\n let m = []\r\n $.q('> u', this.inp()).each((i, u) => {\r\n let value = u.getAttribute('data-value')\r\n let text = u.innerText\r\n if (value) {\r\n r.push(value)\r\n m.push({\r\n value,\r\n text\r\n })\r\n } else if (!strict) {\r\n r.push(text)\r\n m.push({\r\n value: text\r\n })\r\n }\r\n })\r\n //this.$refs.v.value = r.join(',')\r\n this.val(m)\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 13) {\r\n e.preventDefault()\r\n }\r\n },\r\n onkeyup(e) {\r\n if (!this.imeMode) {\r\n let k = this._KC = e.keyCode\r\n let m\r\n if (k === 13 || k === 38 || k === 40 || k === 17) { // 38:up, 40:down, 17:ctrl\r\n e.stopPropagation()\r\n } else {\r\n this.fixStyle()\r\n }\r\n this._KC = null\r\n }\r\n },\r\n onclick(e) {\r\n if (this.isNormal) {\r\n if (e.target && e.target.tagName === 'U' && !e.target.getAttribute('data-value')) {\r\n this.input(e.target)\r\n } else {\r\n let c = $.rngElement()\r\n if (c.tagName === 'U') {\r\n this.input(c)\r\n } else if (typeof this.x.dropper === 'function') {\r\n this.x.dropper(this)\r\n } else {\r\n this.closeDrop()\r\n }\r\n }\r\n }\r\n },\r\n ondblclick(e) {\r\n if (e.target.tagName === 'U' && e.target.getAttribute('data-value')) {\r\n let v = $.array(this.x.modelValue).find(o => o.value == e.target.getAttribute('data-value'))\r\n if (v) {\r\n e.runType = 'dblclick:item'\r\n e.value = v\r\n this.trigger(e, v)\r\n window.getSelection().removeAllRanges()\r\n }\r\n }\r\n },\r\n // implement\r\n onCloseDrop() {\r\n this.showSuggest = false\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options(v) {\r\n let p = this.x.separator || ','\r\n if (v == null) v = this.x.modelValue\r\n if (v !== 'string') {\r\n let b = $.array(v)\r\n let r = []\r\n $.lodash.each(b, (o, i) => {\r\n r.push('<u' + (o.value ? ' class=_o data-value=\"' + o.value + '\"' : '') + (o.forbid ? ' data-forbid' :\r\n '') + '>' + o.text + '</u>')\r\n if (!this.x.multiple) return false\r\n r.push('<i>' + p + '</i>')\r\n })\r\n return r.join('')\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-linkbox-input f-flex-1',\r\n ref: 'inp',\r\n id: this.uid + 't',\r\n contentEditable: this.isNormal,\r\n onkeyup: this.onkeyup,\r\n onkeydown: this.onkeydown,\r\n onclick: this.onclick,\r\n ondblclick: this.ondblclick,\r\n onfocus: e => {\r\n this.isFocus = true\r\n },\r\n onblur: e => {\r\n this.isFocus = false\r\n },\r\n })\r\n },\r\n html_input() {\r\n\t\t\t\tlet r = []\r\n\t\t\t\tif (this.showSuggest) {\r\n\t\t\t\t\tlet dropProps = {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: $.bcr(this.el('form')).width,\r\n scrollY: true,\r\n autoHide: true,\r\n snap: () => this.el('form'),\r\n position: 'v',\r\n indent: 1,\r\n scrollY: true\r\n }\r\n\t\t\t\t\tdropProps = this.mergeDropProps(dropProps)\r\n\t\t\t\t\tr.push(h(Dialog, dropProps, this.$slots))\r\n\t\t\t\t}\r\n return [\r\n this.html_input_hidden(),\r\n this.html_var(),\r\n h('div', {\r\n class: 'w-input-placeholder'\r\n }, this.input_value ? null : this.input_placeholder),\r\n r\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper || (this.x.clearable && this.isNormal)) {\r\n let b = []\r\n if (this.x.dropper) {\r\n b.push(h('button', {class: 'w-input-button-drop w-input-button f-i f-i-caret-down'}))\r\n }\r\n if (this.x.clearable) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n s.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-button f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (this.x.strict && $.q('u:not([data-value])').length > 0) {\r\n return this.formErr({\r\n type: 'invalid_option'\r\n })\r\n }\r\n }\r\n }\r\n },\r\n hasVal() {\r\n return this.input_value\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text || v.value).join(', ')\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br,\r\n 'z-dc': this.getOn('dblclick:item'),\r\n\t\t\t\t\t'z-drop': this.showSuggest,\r\n 'z-val': this.hasVal,\r\n 'z-droppable': this.x.dropper,\r\n 'z-clearable': this.x.clearable,\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.initOptions()\r\n this.inp().addEventListener('compositionstart', () => {\r\n this.imeMode = true\r\n })\r\n this.inp().addEventListener('compositionend', () => {\r\n this.imeMode = false\r\n })\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-linkbox-input {\r\n height: 100%;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input {\r\n padding-left: 10px;\r\n min-height: 30px;\r\n line-height: 30px;\r\n font-family: verdana;\r\n font-style: normal;\r\n outline: none;\r\n overflow: hidden;\r\n word-break: keep-all;\r\n word-wrap: normal;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u {\r\n padding-right: 1px;\r\n color: #999;\r\n text-decoration: none\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o {\r\n color: #333\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o[data-forbid] {\r\n text-decoration: line-through !important;\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u {\r\n color: #333\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u._o {\r\n color: #275696;\r\n text-decoration: underline\r\n }\r\n\r\n .w-linkbox .w-linkbox-input i {\r\n font-style: normal;\r\n padding: 0 3px 0 1px;\r\n color: #999;\r\n }\r\n\r\n .w-linkbox ._v {\r\n display: inline-block;\r\n height: 22px;\r\n line-height: 22px;\r\n vertical-align: middle\r\n }\r\n\r\n .w-linkbox.z-loading {\r\n color: gray;\r\n }\r\n\r\n .w-linkbox.z-loading .w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox.z-br .w-linkbox-input {\r\n overflow: visible;\r\n word-break: break-all;\r\n word-wrap: break-word;\r\n }\r\n\r\n .w-linkbox .w-input {\r\n position: relative;\r\n }\r\n\r\n .w-linkbox-input:not(:empty)~.w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox .w-input-placeholder {\r\n position: absolute;\r\n left: 0;\r\n padding-left: 10px;\r\n pointer-events: none;\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog ref=\"dialog\" class=\"w-jigsaw-dialog\" :width=\"width\" :height=\"height\" :context=\"context\">\r\n <img class=\"w-jigsaw-big\" :src=\"bigSrc\">\r\n <img class=\"w-jigsaw-small\" :src=\"smallSrc\" :width=\"smallWidth\" :style=\"{left: smallLeft + 'px'}\" @dragstart.prevent=\"dragstart\" @mousedown=\"mousedown\">\r\n <span @click=\"refresh\" class=\"w-jigsaw-refresh\">刷新</span>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n\t\tprops: ['width', 'height', 'context'],\r\n data() {\r\n return {\r\n smallLeft: 0\r\n }\r\n },\r\n watch: {\r\n 'context.x.modelValue': {\r\n handler(v) {\r\n let m = this.context.max()\r\n let n = this.context.min()\r\n this.smallLeft = (this.width - this.smallWidth) * (v / (m - n))\r\n }\r\n }\r\n },\r\n\t\tmounted() {\r\n\r\n\t\t},\r\n methods: {\r\n refresh(e) {\r\n this.context.refresh(e)\r\n },\r\n dragstart(e) {\r\n //\r\n },\r\n mousedown(e) {\r\n this.context.dragstart(e)\r\n }\r\n },\r\n computed: {\r\n bigSrc() {\r\n return this.context.x.big.src\r\n },\r\n smallSrc() {\r\n return this.context.x.small.src\r\n },\r\n smallWidth() {\r\n return this.height * (this.context.x.small.width / this.context.x.small.height)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw-big {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-jigsaw-small {\r\n position: absolute;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-jigsaw-refresh {\r\n position: absolute;\r\n top: 5px;\r\n right: 5px;\r\n color: #fff;\r\n cursor: pointer;\r\n text-shadow: 0 0 3px #000;\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog ref=\"dialog\" class=\"w-jigsaw-dialog\" :width=\"width\" :height=\"height\" :context=\"context\">\r\n <img class=\"w-jigsaw-big\" :src=\"bigSrc\">\r\n <img class=\"w-jigsaw-small\" :src=\"smallSrc\" :width=\"smallWidth\" :style=\"{left: smallLeft + 'px'}\" @dragstart.prevent=\"dragstart\" @mousedown=\"mousedown\">\r\n <span @click=\"refresh\" class=\"w-jigsaw-refresh\">刷新</span>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n\t\tprops: ['width', 'height', 'context'],\r\n data() {\r\n return {\r\n smallLeft: 0\r\n }\r\n },\r\n watch: {\r\n 'context.x.modelValue': {\r\n handler(v) {\r\n let m = this.context.max()\r\n let n = this.context.min()\r\n this.smallLeft = (this.width - this.smallWidth) * (v / (m - n))\r\n }\r\n }\r\n },\r\n\t\tmounted() {\r\n\r\n\t\t},\r\n methods: {\r\n refresh(e) {\r\n this.context.refresh(e)\r\n },\r\n dragstart(e) {\r\n //\r\n },\r\n mousedown(e) {\r\n this.context.dragstart(e)\r\n }\r\n },\r\n computed: {\r\n bigSrc() {\r\n return this.context.x.big.src\r\n },\r\n smallSrc() {\r\n return this.context.x.small.src\r\n },\r\n smallWidth() {\r\n return this.height * (this.context.x.small.width / this.context.x.small.height)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw-big {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-jigsaw-small {\r\n position: absolute;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-jigsaw-refresh {\r\n position: absolute;\r\n top: 5px;\r\n right: 5px;\r\n color: #fff;\r\n cursor: pointer;\r\n text-shadow: 0 0 3px #000;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import TemplateJigsaw from '../template/TemplateJigsaw.vue'\r\n\r\n\r\n const init_text = $.loc.form.jigsaw_drag_right\r\n\r\n export default {\r\n name: 'w-jigsaw',\r\n mixins: [FormBase],\r\n emits: ['drop', 'click:refresh'],\r\n props: ['big', 'small', 'dropWidth'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: init_text,\r\n locked: false,\r\n isSuccess: false,\r\n isError: false,\r\n\t\t\t\tshowDrop: false,\r\n }\r\n },\r\n methods: {\r\n success(text) {\r\n this.text = text\r\n this.locked = true\r\n this.isSuccess = true\r\n\t\t\t\tthis.showDrop = false\r\n this.setThumbLeft()\r\n },\r\n error(text, timeout, fn) {\r\n if (!text) text = ''\r\n\t\t\t\tthis.text = text\r\n this.isError = true\r\n\t\t\t\tthis.showDrop = false\r\n this.warn(true)\r\n this.setThumbLeft(0)\r\n if (timeout) {\r\n this.locked = true\r\n this.text = text + `(${timeout/1000})`\r\n let timer = setInterval(() => {\r\n timeout -= 1000\r\n this.text = text + `(${timeout/1000})`\r\n if (timeout <= 0) {\r\n clearInterval(timer)\r\n this.reset()\r\n fn && fn()\r\n }\r\n }, 1000)\r\n } else {\r\n fn && fn()\r\n }\r\n },\r\n reset() {\r\n this.locked = false\r\n this.isError = false\r\n this.isSuccess = false\r\n this.text = init_text\r\n this.setThumbLeft(0)\r\n this.warn(false)\r\n },\r\n refresh(e) {\r\n e.runType = 'click:refresh'\r\n this.trigger(e)\r\n },\r\n setThumbLeft(left) {\r\n if (left == null) {\r\n left = $.number(this.$refs.thumb.style.left)\r\n } else {\r\n this.$refs.thumb.style.left = left + 'px'\r\n }\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n let hf = (left + (g / 2)) > (w / 2)\r\n this.$refs.text.style.left = hf ? 0 : (left + g) + 'px'\r\n this.$refs.text.style.right = hf ? (w - left) + 'px' : 0\r\n this.el().classList.remove('z-drag')\r\n },\r\n dragstart(e) {\r\n if (!this.isNormal || this.locked) return\r\n this.warn(false)\r\n let a = this.$refs.thumb\r\n let x = $.eventX(e)\r\n let m = this.max()\r\n let n = this.min()\r\n let f = $.number(a.style.left)\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n $.moveup((e) => {\r\n let c = $.eventX(e)\r\n let l = $.numRange(f + c - x, 0, w - g)\r\n a.style.left = l + 'px'\r\n this.$refs.track.style.width = (l + g) + 'px'\r\n this.x.modelValue = (m - n) * l / (w - g)\r\n this.el().classList.add('z-drag')\r\n }, (e, moved) => {\r\n if (moved) a.dispatchEvent(new Event('drop'))\r\n }, e)\r\n },\r\n mouseenter(e) {\r\n if (!this.x.big || this.isSuccess || this.locked) return\r\n this.warn(false)\r\n\t\t\t\tthis.showDrop = true\r\n },\r\n drop(e) {\r\n this.trigger(e, this.x.modelValue)\r\n },\r\n max() {\r\n let v = this.x.maxValue\r\n return v == null ? 100 : v\r\n },\r\n min() {\r\n let v = this.x.minValue\r\n return v == null ? 0 : v\r\n },\r\n thumbWidth() {\r\n return $.bcr(this.$refs.thumb).width\r\n },\r\n mainWidth() {\r\n return $.bcr(this.$refs.form).width\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n [\r\n h('div', {\r\n ref: 'track',\r\n class: 'w-jigsaw-track',\r\n }),\r\n h('div', {\r\n ref: 'text',\r\n class: 'w-jigsaw-text f-flex-center f-line-1',\r\n }, this.text),\r\n ]\r\n ]\r\n },\r\n html_button() {\r\n\t\t\t\tlet r = [\r\n\t\t\t\t\th('button', {\r\n\t\t\t\t\t ref: 'thumb',\r\n\t\t\t\t\t class: ['w-jigsaw-thumb w-input-button f-i', this.isSuccess ? 'f-i-check' :\r\n\t\t\t\t\t 'f-i-long-arrow-right'\r\n\t\t\t\t\t ],\r\n\t\t\t\t\t disabled: !!this.x.disabled,\r\n\t\t\t\t\t onmousedown: this.dragstart,\r\n\t\t\t\t\t\tonmouseenter: this.mouseenter,\r\n\t\t\t\t\t ondrop: this.drop,\r\n\t\t\t\t\t})\r\n\t\t\t\t]\r\n\t\t\t\tif (this.showDrop) {\r\n\t\t\t\t\tlet width = Math.max($.number(this.x.dropWidth), $.bcr(this.el('form')).width)\r\n\t\t\t\t\tlet height = Math.ceil(width * (this.x.big.height / this.x.big.width))\r\n\t\t\t\t\tr.push(h(TemplateJigsaw, {\r\n\t\t\t\t\t ownproperty: true,\r\n\t\t\t\t\t width,\r\n\t\t\t\t\t height,\r\n\t\t\t\t\t autoHide: true,\r\n\t\t\t\t\t context: this,\r\n\t\t\t\t\t snap: () => this.el('form'),\r\n\t\t\t\t\t position: 'v',\r\n\t\t\t\t\t onClose: () => this.showDrop = null\r\n\t\t\t\t\t}))\r\n\t\t\t\t}\r\n return r\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (!this.isSuccess) {\r\n\t return this.formErr({type: 'jigsaw_required'})\r\n }\r\n }\r\n }\r\n },\r\n html_class() {\r\n return {\r\n 'z-success': this.isSuccess,\r\n }\r\n },\r\n form_prop() {\r\n return {\r\n onmouseenter: this.mouseenter\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw .w-input {\r\n position: relative;\r\n background: #f8f8f8;\r\n overflow: visible;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-jigsaw-thumb {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n width: 30px;\r\n background: #fff;\r\n box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .w-jigsaw-thumb:hover,\r\n .w-jigsaw.z-drag .w-jigsaw-thumb {\r\n background: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw-text {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 30px;\r\n right: 0;\r\n color: #a9a9a9;\r\n }\r\n\r\n .w-jigsaw-track {\r\n display: none;\r\n position: absolute;\r\n left: -1px;\r\n top: -1px;\r\n bottom: -1px;\r\n background: #e5f3ff;\r\n border: 1px solid transparent;\r\n }\r\n\r\n\t.w-grid.z-face-cell .w-jigsaw-track {\r\n\t\ttop: 0;\r\n\t\tbottom: 0;\r\n\t}\r\n\t\r\n .w-jigsaw.z-drag .w-jigsaw-text {\r\n display: none;\r\n }\r\n\r\n .w-jigsaw.z-drag .w-jigsaw-track {\r\n display: block;\r\n border-color: var(--w--primary-color);\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-track {\r\n display: block;\r\n background: #eaffe5;\r\n border-color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-thumb {\r\n background: #24c301;\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-text {\r\n color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-err .w-jigsaw-text {\r\n color: #f00;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-form',\r\n mixins: [FormBase],\r\n props: ['vertical'],\r\n methods: {\r\n getInputValue(mv) {\r\n return mv == null ? '' : typeof mv === 'object' ? JSON.stringify(mv) : mv\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n this.$slots.default && this.$slots.default()\r\n ]\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n required: (v, r, q) => {\r\n if (r && (!v || v === '[]' || v === '{}')) {\r\n return this.formErr(q)\r\n }\r\n }\r\n }\r\n },\r\n html_class() {\r\n return [{\r\n 'z-vertical': this.x.vertical,\r\n }]\r\n },\r\n html_style() {\r\n return {\r\n '--w-form-gap': $.unitSize(this.x.gap)\r\n }\r\n },\r\n form_prop() {\r\n return this.name && {\r\n onclick: e => this.warn(false)\r\n }\r\n }\r\n },\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-rate',\r\n mixins: [FormBase],\r\n props: ['allowHalf', 'cancelable', 'sum', 'count', 'text'],\r\n data() {\r\n return {\r\n hoverWrap: false,\r\n hoverIndex: -1,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n sum: 5,\r\n count: 5,\r\n }\r\n },\r\n hoverItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.hoverIndex = i\r\n },\r\n clickItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.x.modelValue = this.x.cancelable && this.x.modelValue == i ? '' : i\r\n },\r\n html_star(i) {\r\n return h(Img, {\r\n class: ['w-rate-star-icon', {'z-hv': this.hoverWrap && i <= this.hoverIndex, 'z-on': !this.hoverWrap && i <= this.x.modelValue}],\r\n src: '.f-i .f-i-star-full', \r\n onMouseenter: e => this.hoverItem(e, i),\r\n onClick: e => this.clickItem(e, i),\r\n disabled: !this.isNormal\r\n })\r\n },\r\n html_input() {\r\n let half = this.x.allowHalf ? .5 : 1\r\n let sum = this.x.sum || 5\r\n let count = this.x.count || 5\r\n let step = sum * half / count \r\n let stars = []\r\n for (let i = step; i <= this.x.sum; i += step / half) {\r\n let icons = [this.html_star(i)]\r\n if (this.x.allowHalf) icons.push(this.html_star(i + step))\r\n stars.push(h('li', {class: 'w-rate-star'}, icons))\r\n }\r\n return [\r\n this.html_input_hidden(),\r\n h('ul', {\r\n class: 'w-rate-wrap',\r\n onMouseenter: e => this.isNormal && (this.hoverWrap = true),\r\n onMouseleave: e => this.isNormal && (this.hoverWrap = false),\r\n },\r\n stars\r\n ),\r\n this.x.text && this.x.modelValue && h('span', {class: 'w-rate-text'}, this.x.text[(this.x.modelValue - step) / half])\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {\r\n 'z-allow-half': this.x.allowHalf\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-rate-wrap {\r\n padding: 0 0 0 10px;\r\n margin: 0;\r\n display: flex;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star:last-child {\r\n margin-right: 0;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star-icon {\r\n position: relative;\r\n overflow: hidden;\r\n align-items: flex-start;\r\n color: #bbb;\r\n }\r\n .w-rate-star-icon:nth-child(2) {\r\n align-items: flex-end;\r\n margin-top: -100%;\r\n margin-left: 50%;\r\n }\r\n .w-rate-star-icon.z-hv,\r\n .w-rate-star-icon.z-on {\r\n color: gold;\r\n }\r\n \r\n .w-rate.z-allow-half .w-rate-star-icon {\r\n width: 50%;\r\n }\r\n \r\n .w-rate-text {\r\n margin-left: 10px;\r\n }\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-slider',\r\n mixins: [FormBase],\r\n props: ['minValue', 'maxValue'],\r\n\t\temits: ['drop'],\r\n data() {\r\n return {\r\n grabbing: false\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n minValue: 0,\r\n maxValue: 100\r\n }\r\n },\r\n onmousedown(e) {\r\n const bar = $.bcr(this.$refs.form)\r\n let mv = $.number(this.x.modelValue)\r\n let dn_x = e.clientX\r\n this.grabbing = true\r\n $.moveup((e) => {\r\n let dist = e.clientX - dn_x\r\n let v = mv + (dist / bar.width) * (this.x.maxValue - this.x.minValue)\r\n v = $.numRange(v, this.x.minValue, this.x.maxValue)\r\n this.val(v)\r\n }, (e) => {\r\n this.grabbing = false\r\n this.trigger('drop', this.x.modelValue)\r\n }, e)\r\n },\r\n onclick(e) {\r\n if (e.target !== this.$refs.button) {\r\n const bar = $.bcr(this.$refs.form)\r\n let dist = e.clientX - bar.left\r\n let v = (dist / (bar.width)) * (this.x.maxValue - this.x.minValue)\r\n v = $.numRange(v, this.x.minValue, this.x.maxValue)\r\n this.val(v)\r\n this.trigger('drop', v)\r\n }\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n onClick: this.onclick,\r\n class: ['w-slider-wrap'],\r\n },\r\n [\r\n h('div', {\r\n class: ['w-slider-progress'],\r\n }),\r\n h('div', {\r\n ref: 'button',\r\n onMousedown: this.onmousedown,\r\n class: ['w-slider-button', {'z-grabbing': this.grabbing}],\r\n })\r\n ]\r\n )\r\n ]\r\n },\r\n },\r\n computed: {\r\n percent() {\r\n let v = this.x.modelValue\r\n if (!v) return 0\r\n return v\r\n },\r\n html_style() {\r\n return {\r\n '--w-slider-left': `${this.percent}%`\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-slider {\r\n &> .w-formbase-main {\r\n &> .w-input {\r\n margin: 0 10px;\r\n overflow: visible;\r\n }\r\n }\r\n &-wrap {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n position: relative;\r\n height: 6px;\r\n min-height: 6px;\r\n background-color: #eee;\r\n border-radius: 3px;\r\n cursor: pointer;\r\n }\r\n &-progress {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: var(--w-slider-left);\r\n box-sizing: border-box;\r\n border-radius: 10px;\r\n background-color: #409eff;\r\n }\r\n &-button {\r\n position: relative;\r\n width: 20px;\r\n height: 20px;\r\n box-sizing: border-box;\r\n border: 2px solid #409eff;\r\n border-radius: 10px;\r\n background-color: #fff;\r\n margin-left: -10px;\r\n left: var(--w-slider-left);\r\n cursor: grab;\r\n &.z-grabbing {\r\n cursor: grabbing;\r\n }\r\n }\r\n } \r\n</style>","import $ from '../dfish.js'\r\nimport '../assets/dfish.css'\r\n\r\nimport directive from '../directive/index.js'\r\n\r\nimport DocView from './DocView.vue'\r\nimport View from './View.vue'\r\nimport Dialog from './Dialog.vue'\r\nimport Alert from './Alert.vue'\r\nimport Confirm from './Confirm.vue'\r\nimport Tip from './Tip.vue'\r\nimport Menu from './Menu.vue'\r\nimport Loading from './Loading.vue'\r\n\r\nimport Vertical from './Vertical.vue'\r\nimport Horizontal from './Horizontal.vue'\r\nimport Table from './Table.vue'\r\nimport TableColumns from './TableColumns.vue'\r\nimport TableColumn from './TableColumn.vue'\r\nimport TableTBody from './TableTBody.vue'\r\nimport TableTHead from './TableTHead.vue'\r\nimport TableTR from './TableTR.vue'\r\nimport TableTD from './TableTD.vue'\r\nimport TableTH from './TableTH.vue'\r\nimport TableV2 from './TableV2.vue'\r\nimport Grid from './Grid.vue'\r\nimport Swiper from './Swiper.vue'\r\nimport SwiperItem from './SwiperItem.vue'\r\nimport Tabs from './Tabs.vue'\r\nimport Tab from './Tab.vue'\r\n\r\nimport Album from './Album.vue'\r\nimport Img from './Img.vue'\r\nimport ButtonBar from './ButtonBar.vue'\r\nimport Button from './Button.vue'\r\nimport MenuButton from './MenuButton.vue'\r\nimport Html from './Html.vue'\r\nimport Tree from './Tree.vue'\r\nimport TreeV2 from './TreeV2.vue'\r\nimport Leaf from './Leaf.vue'\r\nimport PageBar from './PageBar.vue'\r\nimport Split from './Split.vue'\r\nimport Toggle from './Toggle.vue'\r\nimport Video from './Video.vue'\r\nimport Progress from './Progress.vue'\r\nimport Calendar from './Calendar.vue'\r\nimport Timeline from './Timeline.vue'\r\nimport TimelineItem from './TimelineItem.vue'\r\nimport SlidePicker from './SlidePicker.vue'\r\n\r\nimport Label from './Label.vue'\r\nimport Hidden from './Hidden.vue'\r\nimport Text from './Text.vue'\r\nimport Textarea from './Textarea.vue'\r\nimport CheckBoxGroup from './CheckBoxGroup.vue'\r\nimport CheckBox from './CheckBox.vue'\r\nimport RadioGroup from './RadioGroup.vue'\r\nimport Radio from './Radio.vue'\r\nimport TripleBox from './TripleBox.vue'\r\nimport Switch from './Switch.vue'\r\nimport FileUpload from './FileUpload.vue'\r\nimport MediaUpload from './MediaUpload.vue'\r\nimport ImageUpload from './ImageUpload.vue'\r\nimport Option from './Option.vue'\r\nimport Spinner from './Spinner.vue'\r\nimport DatePicker from './DatePicker.vue'\r\nimport DropBox from './DropBox.vue'\r\nimport PickBox from './PickBox.vue'\r\nimport Password from './Password.vue'\r\nimport Range from './Range.vue'\r\nimport ComboBox from './ComboBox.vue'\r\nimport LinkBox from './LinkBox.vue'\r\nimport Jigsaw from './Jigsaw.vue'\r\nimport Form from './Form.vue'\r\nimport Rate from './Rate.vue'\r\nimport Slider from './Slider.vue'\r\n\r\n\r\nconst components = [\r\n DocView, View, Dialog, Alert, Confirm, Tip, Menu, Loading, \r\n Grid, Vertical, Horizontal, Table, TableColumns, TableColumn, TableTBody, TableTHead, TableTR, TableTD, TableTH, TableV2, Swiper, SwiperItem, Tabs, Tab,\r\n Album, Img, ButtonBar, Button, MenuButton, Html, Tree, Leaf, TreeV2, PageBar, Split, Toggle, Video, Progress, Calendar, Timeline, TimelineItem, SlidePicker,\r\n Label, Hidden, Text, Textarea, CheckBoxGroup, CheckBox, RadioGroup, Radio, TripleBox, Switch, FileUpload, MediaUpload, ImageUpload, Option,\r\n Spinner, DatePicker, DropBox, PickBox, Password, Range, ComboBox, LinkBox, Jigsaw, Form, Rate, Slider\r\n]\r\n\r\n//每个组件从这里曝露,以便在某些特殊需求情境下,业务可以修改源码\r\nconst WIDGET = {}\r\n$.WIDGET = WIDGET\r\n\r\n//按Vue要求提供install接口\r\n$.install = (Vue) => {\r\n //注册组件\r\n\tcomponents.forEach(com => {\r\n\t\tVue.component(com.name, com)\r\n\t\tWIDGET[com.name] = com\r\n\t})\r\n //注册指令\r\n Vue.use(directive)\r\n}\r\n\r\nexport default $\r\n"],"names":["N","T","br","$","formIgnore","labelWidth","SrcParent","_createElementVNode","_hoisted_2","_hoisted_5","_createElementBlock","_hoisted_1","_createBlock","_createVNode","_hoisted_3","_hoisted_4","WidgetAbs","ViewAbs","TemplatePreviewMedia","TemplateDateSheet","SVGIcon","WidgetBase","ResizeObserver","Scroll","AlignParent","Horizontal","Vertical","View","DialogTarget","Dialog","TemplateAlert","TemplateConfirm","inst","TemplateTip","Img","ButtonAbs","MenuButton","_renderSlot","PubParent","SlotDefault","THead","TD","ButtonBar","Button","TabButton","SwiperItem","TabBar","Swiper","Label","leafSymbol","FormBase","CheckBox","Menu","_mergeProps","Text","CheckBoxGroup","mimeType","FileUpload","MediaUploadItem","MediaUpload","Calendar","DropBox","TemplateJigsaw","DocView","Alert","Confirm","Tip","Loading","Grid","Table","TableColumns","TableColumn","TableTBody","TableTHead","TableTR","TableTD","TableTH","TableV2","Tabs","Tab","Album","Html","Tree","Leaf","TreeV2","PageBar","Split","Toggle","Video","Progress","Timeline","TimelineItem","SlidePicker","Hidden","Textarea","RadioGroup","Radio","TripleBox","Switch","ImageUpload","Option","Spinner","DatePicker","PickBox","Password","Range","ComboBox","LinkBox","Jigsaw","Form","Rate","Slider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../src/util/browser.js","../../../src/util/uid.js","../../../src/util/loc/zh-CN.js","../../../src/util/str.js","../../../src/util/number.js","../../../src/util/date.js","../../../src/util/range.js","../../../src/util/elem.js","../../../src/util/css.js","../../../src/util/snap.js","../../../src/util/json.js","../../../src/util/event.js","../../../src/dfish.js","../../../src/directive/form-ignore.js","../../../src/directive/dialog-move.js","../../../src/directive/label-width.js","../../../src/directive/index.js","../../../src/widgets/WidgetAbs.vue","../../../src/widgets/SrcParent.vue","../../../src/widgets/ViewAbs.vue","../../../src/assets/SVGIcon.vue","../../../src/assets/SVGIcon.vue?vue&type=template&id=295361ea&lang.js","../../../src/template/TemplatePreviewMedia.vue","../../../src/template/TemplatePreviewMedia.vue?vue&type=template&id=ee9dc2bc&lang.js","../../../src/template/TemplateDateSheet.vue","../../../src/template/TemplateDateSheet.vue?vue&type=template&id=74a0f61b&lang.js","../../../src/widgets/DocView.vue","../../../src/widgets/WidgetBase.vue","../../../src/widgets/Scroll.vue","../../../src/widgets/AlignParent.vue","../../../src/widgets/Horizontal.vue","../../../src/widgets/Vertical.vue","../../../src/widgets/View.vue","../../../src/widgets/DialogTarget.vue","../../../src/widgets/Dialog.vue","../../../src/template/TemplateAlert.vue","../../../src/widgets/Alert.vue","../../../src/template/TemplateConfirm.vue","../../../src/widgets/Confirm.vue","../../../src/template/TemplateTip.vue","../../../src/widgets/Tip.vue","../../../src/widgets/Img.vue","../../../src/widgets/ButtonAbs.vue","../../../src/widgets/MenuButton.vue","../../../src/widgets/Button.vue","../../../src/widgets/Menu.vue","../../../src/widgets/Loading.vue","../../../src/widgets/Table.vue","../../../src/widgets/TableColumns.vue","../../../src/widgets/TableColumn.vue","../../../src/widgets/PubParent.vue","../../../src/widgets/SlotDefault.vue?vue&type=template&id=4a1f0f1a&lang.js","../../../src/widgets/TableTHead.vue","../../../src/widgets/TableTBody.vue","../../../src/widgets/TableTR.vue","../../../src/widgets/TableTD.vue","../../../src/widgets/TableTH.vue","../../../src/widgets/TreeV2Wrap.vue","../../../src/widgets/TableV2.vue","../../../src/widgets/Grid.vue","../../../src/widgets/SwiperItem.vue","../../../src/widgets/Swiper.vue","../../../src/widgets/ButtonBar.vue","../../../src/widgets/TabBar.vue","../../../src/widgets/TabButton.vue","../../../src/widgets/Tabs.vue","../../../src/widgets/Tab.vue","../../../src/widgets/Album.vue","../../../src/widgets/Html.vue","../../../src/widgets/Tree.vue","../../../src/widgets/TreeV2.vue","../../../src/widgets/Label.vue","../../../src/widgets/FormBase.vue","../../../src/widgets/CheckBox.vue","../../../src/widgets/TripleBox.vue","../../../src/widgets/Leaf.vue","../../../src/widgets/PageBar.vue","../../../src/widgets/Split.vue","../../../src/widgets/Toggle.vue","../../../src/widgets/Video.vue","../../../src/widgets/Progress.vue","../../../src/widgets/Calendar.vue","../../../src/widgets/Calendar.vue?vue&type=template&id=a37780d2&lang.js","../../../src/widgets/Timeline.vue","../../../src/widgets/TimelineItem.vue","../../../src/widgets/SlidePicker.vue","../../../src/widgets/SlidePicker.vue?vue&type=template&id=622adf54&lang.js","../../../src/widgets/Hidden.vue","../../../src/widgets/Text.vue","../../../src/widgets/Textarea.vue","../../../src/widgets/CheckBoxGroup.vue","../../../src/widgets/RadioGroup.vue","../../../src/widgets/Radio.vue","../../../src/widgets/Switch.vue","../../../src/util/mime.js","../../../src/widgets/FileUpload.vue","../../../src/widgets/MediaUploadItem.vue","../../../src/widgets/MediaUploadItem.vue?vue&type=template&id=fbfb4322&lang.js","../../../src/widgets/MediaUpload.vue","../../../src/widgets/ImageUpload.vue","../../../src/widgets/Option.vue","../../../src/widgets/Option.vue?vue&type=template&id=1bc8d4e4&lang.js","../../../src/widgets/Spinner.vue","../../../src/widgets/DatePicker.vue","../../../src/widgets/DropBox.vue","../../../src/widgets/PickBox.vue","../../../src/widgets/Password.vue","../../../src/widgets/Range.vue","../../../src/widgets/ComboBox.vue","../../../src/widgets/LinkBox.vue","../../../src/template/TemplateJigsaw.vue","../../../src/template/TemplateJigsaw.vue?vue&type=template&id=4ce89cf2&lang.js","../../../src/widgets/Jigsaw.vue","../../../src/widgets/Form.vue","../../../src/widgets/Rate.vue","../../../src/widgets/Slider.vue","../../../src/widgets/index.js"],"sourcesContent":["let u = navigator.userAgent.toLowerCase()\r\nlet chrome = u.match(/\\bchrome\\/(\\d+)/)\r\nlet firefox = u.match(/\\bfirefox\\/(\\d+)/)\r\n\r\nconst r = {\r\n agent: u,\r\n chrome: chrome && parseFloat(chrome[1]),\r\n firefox: firefox && parseFloat(firefox[1]),\r\n safari: !chrome && u.indexOf('safari') > 0,\r\n ie: (navigator.appName === 'Microsoft Internet Explorer' || u.indexOf('trident') > 0) && document.documentMode,\r\n compat: {\r\n gap: false\r\n },\r\n}\r\n\r\nif (u.match(/\\bmobile\\b/)) {\r\n r.mobile = true\r\n r.app = location.protocol === 'file:';\r\n let wechat = u.match(/(MicroMessenger)\\/([\\d\\.]+)/i);\r\n if (wechat) r.wechat = {\r\n version: wechat[2].replace(/_/g, '.')\r\n };\r\n let android = u.match(/(Android);?[\\s\\/]+([\\d.]+)?/i);\r\n if (android) {\r\n r.android = true;\r\n r.version = android[2];\r\n r.isBadAndroid = !(/Chrome\\/\\d/.test(window.navigator.appVersion))\r\n }\r\n let iphone = u.match(/(iPhone\\sOS)\\s([\\d_]+)/i)\r\n if (iphone) {\r\n r.ios = r.iphone = true;\r\n r.version = iphone[2].replace(/_/g, '.')\r\n } else {\r\n let ipad = u.match(/(iPad).*OS\\s([\\d_]+)/i)\r\n if (ipad) {\r\n r.ios = r.ipad = true;\r\n r.version = ipad[2].replace(/_/g, '.')\r\n }\r\n }\r\n}\r\n\r\nif ((r.chrome && r.chrome < 84) || (r.firefox && r.firefox < 63)) {\r\n r.compat.gap = true\r\n}\r\n\r\nexport default r\r\n","let _uidCnt = 0\r\nconst _uidKey = 'uid'\r\nconst _guid = () => (_uidCnt++).toString(36) + ':'\r\n\r\nexport default function(o) {\r\n if (o) {\r\n return o[_uidKey] || (o[_uidKey] = _guid())\r\n }\r\n return _guid()\r\n}","export default {\r\n yes: '是',\r\n no: '否',\r\n none: '无',\r\n to: '至',\r\n jump: '转到',\r\n confirm: '确定',\r\n search: '搜索',\r\n query: '查询',\r\n choose: '选择',\r\n save: '保存',\r\n remove: '删除',\r\n cancel: '取消',\r\n create: '新建',\r\n add: '添加',\r\n edit: '编辑',\r\n finish: '完成',\r\n refresh: '刷新',\r\n operfail: '操作失败',\r\n opertip: '操作提示',\r\n nodata: '暂无数据',\r\n more: '更多',\r\n field: '字段',\r\n close: '关闭',\r\n restore: '还原',\r\n rotate_left: '向左旋转',\r\n rotate_right: '向右旋转',\r\n dialog_max: '最大化',\r\n dialog_min: '最小化',\r\n\r\n detect_zoom: '温馨提示: 你的浏览器可能处于缩放({0}%)状态,这可能影响页面浏览效果,请尝试Ctrl+0重置,并刷新',\r\n no_tip_anymore: '不再提示',\r\n loading: '正在加载',\r\n wait: '请稍候..',\r\n submiting: '数据提交中,请稍候..',\r\n uploading: '正在上传,请稍侯..',\r\n click_preview: '点击预览',\r\n toomuch_wait: '次数过多,请稍候再试',\r\n toomuch_wait_countdown: '次数过多,请稍候再试(<em>{0}</em>)',\r\n preview_orginal_image: '查看原图',\r\n auth_success: '验证成功',\r\n auth_fail: '验证失败',\r\n choose_image: '选择图片',\r\n \r\n\r\n tree_movefail1: '无法移动:目标文件夹和源文件夹相同',\r\n tree_movefail2: '无法移动:目标文件夹是源文件夹的子文件夹',\r\n\r\n internet_error: '[{0} error] {1}<br>网络连接失败,请稍候再试',\r\n server_error: '[{0} error] {1}<br>系统异常,请联系管理员',\r\n preload_error: '获取预装载模板 \"{0}\" 失败',\r\n\r\n page: '页',\r\n page_text: {\r\n first: '首页',\r\n last: '尾页',\r\n next: '下页',\r\n prev: '上页'\r\n },\r\n\r\n print_preview: '打印预览',\r\n\r\n placeholder_input: '请输入{0}',\r\n placeholder_select: '请选择{0}',\r\n\r\n pulldown_refresh: '下拉刷新',\r\n release_refresh: '释放刷新',\r\n pullup_refresh: '上拉显示更多',\r\n pullup_nomore: '没有更多了',\r\n\r\n download_start: '开始下载..',\r\n download_complete: '下载完成',\r\n download_cannotopen: '无法打开此文件',\r\n download_fail: '下载失败',\r\n\r\n tab_close: '关闭标签',\r\n tab_close_others: '关闭其他标签',\r\n tab_close_all: '关闭全部标签',\r\n\r\n sort_asc: '升序',\r\n sort_desc: '降序',\r\n sort_cancel: '取消排序',\r\n column_choose: '选择列',\r\n\r\n connection_not_wifi: '您当前处于非wifi网络环境下,继续使用可能产生流量,确定继续吗?',\r\n\r\n debug: {\r\n sorry: '很抱歉,系统发生了错误',\r\n view_more: '点击“确定”,可在新窗口查看详细错误信息',\r\n no_command: '视图中没有定义此命令: {0}\\nview path: {1}',\r\n no_combo: '选项列表(或树)没有设置combo参数\\nname: {0}',\r\n error_template_type: '{0}\\n请把此模板类型改为 \"{1}\"',\r\n error_type: 'type错误或丢失\\n{0}',\r\n tmpl_method_undefined: '\"{0}\" 方法不存在'\r\n },\r\n\r\n form: {\r\n required: '{0}不能为空',\r\n onlyone: '{0的}只能选择一条记录',\r\n maxLength: '{0}超出了{1}个字',\r\n reach_maxLength: '已到达可输入的最大字符长度',\r\n over_maxLength: '字符长度超出了{0}个字节',\r\n minLength: '{0}不能少于{1}个字节',\r\n maxValue: '{0}最大值为{1}',\r\n minValue: '{0}最小值为{1}',\r\n maxSize: '{0}最多选择{1}项',\r\n minSize: '{0}最少选择{1}项',\r\n pattern: '{0}格式不符合规范,或包含非法字符',\r\n password_weak: '弱',\r\n password_middle: '中',\r\n password_strong: '强',\r\n number_invalid: '{0}不是一个有效数字',\r\n number_integer: '{0}请填入一个整数',\r\n number_decimal_digit: '{0的}小数位不能超过{1}位',\r\n step_max_value: '已到达最大值',\r\n step_min_value: '已到达最小值',\r\n time_exceed: '{0的}年份超出有效范围。有效年份:{1}年 至 {2}年',\r\n time_format: '{0的}时间格式错误。正确格式范例:{1}',\r\n period_invalid: '{0的}起始时间应早于结束时间',\r\n beforeNow: '{0}不能大于当前时间',\r\n afterNow: '{0}不能小于当前时间',\r\n compare: '{0}需要满足条件:{1} {2} {3}',\r\n invalid_option: '存在无效选项',\r\n need_valid_option: '请输入一个有效选项',\r\n choose_atleastone: '请至少选择一项',\r\n complete_required: '请完成必填项',\r\n jigsaw_drag_right: '向右拖动滑块填充拼图',\r\n jigsaw_required: '请完成滑块验证',\r\n jigsaw_errorimg: '图片数据异常',\r\n upload_loading: '正在上传,请稍候..',\r\n upload_invalid_file: '存在无效文件',\r\n no_files: '<没有文件>',\r\n upload_error: '(上传失败)',\r\n upload_limit: '上传数量超过上限(最多{0}个)',\r\n upload_invalid_file_type: '无效的文件类型:<br>{0}<br><br>只能选择 {1} 格式文件',\r\n upload_invalid_data: '错误的文件数据格式:<br>{0}',\r\n upload_no_data: '缺少文件数据',\r\n upload_maxfilesize: '上传失败: {0}<br><br>文件大小不能超过{1}',\r\n upload_minfilesize: '上传失败: {0}<br><br>文件大小不能小于{1}'\r\n },\r\n\r\n year: '年',\r\n month: '月',\r\n day: '日',\r\n sky: '天',\r\n hour: '时',\r\n minute: '分',\r\n second: '秒',\r\n\r\n calendar: {\r\n now: '现在',\r\n today: '今天',\r\n weeknow: '本周',\r\n monthnow: '本月',\r\n yearnow: '本年',\r\n day_title: ['日', '一', '二', '三', '四', '五', '六'],\r\n day_title_1: [ '一', '二', '三', '四', '五', '六','日'],\r\n y: '{0}<span>年</span>',\r\n monthname: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\r\n backdate: '返回日期',\r\n picktime: '选择时间',\r\n H: '时',\r\n m: '分',\r\n s: '秒',\r\n from_to: '{0} 至 {1}',\r\n },\r\n\r\n error: '错误',\r\n\r\n ps(a, ...args) {\r\n if (a) {\r\n a = a.replace(/\\{(\\d+)([^\\d]+)?\\}/g, function($0, $1, $2) {\r\n let d = args[parseFloat($1)]\r\n return d == null || d === '' ? '' : $2 ? d + $2 : d\r\n })\r\n }\r\n return a\r\n },\r\n \r\n end: '结束'\r\n\r\n}\r\n","import lodash, { max } from 'lodash'\r\n\r\nconst strTrim = (a) => String(a).replace(/^\\s+|\\s+$/g, '')\r\n\r\nconst string = (a) => a == null ? '' : '' + a\r\n\r\n// @a -> str, b -> no html entities?\r\nconst strQuot = (a, b) => {\r\n\ta = String(a)\r\n\tb && (a = a.replace(/<[^>]+>/g, ''))\r\n\treturn a.replace(/\\\"/g, '"')\r\n}\r\n\r\n// 在a中取以b开始的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strFrom = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(d + b.length)\r\n}\r\n\r\n// 在a中取以b结束的字符串(不包括b) /@ c -> last indexOf ?\r\nconst strTo = (a, b, c) => {\r\n let d = c ? a.lastIndexOf(b) : a.indexOf(b)\r\n return d < 0 ? '' : a.substr(0, d)\r\n}\r\n\r\n// 取字符串字节数(一个汉字算双字节) /@ s -> str, b -> 一个汉字算几个字节?默认2个\r\nconst strLen = (s, b) => {\r\n if (!s) return 0;\r\n if (!b) b = $.x.cnBytes || 2;\r\n let d = 0\r\n for (let i = 0, l = s.length; i < l; i++)\r\n d += s.charCodeAt(i) > 128 ? b : 1;\r\n return d;\r\n}\r\n\r\n// 给定maxLength,计算超出多少字符 /@ s -> str, b -> 一个汉字算几个字节?默认2个\r\nconst strExceed = (s, maxLength, b) => {\r\n let len = strLen(s, b)\r\n if (!b) b = $.x.cnBytes || 2\r\n return Math.ceil((len - maxLength) / b)\r\n}\r\n\r\n// 数字前加0 /@ a -> num, b -> 补成多少长度的字符串?\r\nconst strPad = function(a, b, c) {\r\n\tc = c == null ? '0' : (c + '');\r\n\tif (!b)\r\n\t\treturn a < 10 ? c + a : a;\r\n\ta = a + '';\r\n\twhile (a.length < b)\r\n\t\ta = c + a;\r\n\treturn a\r\n}\r\n\r\nconst strFormat = (a, b, c, d) => {\r\n a != null && (a += '');\r\n if (!a || !b) return a;\r\n if (Array.isArray(b)) {\r\n return a.replace(/\\$\\{?(\\d+)\\}?/g, function($0, $1) {\r\n return b[$1] == null ? (d ? $0 : '') : c ? encodeURIComponent(b[$1]) : b[$1]\r\n });\r\n } else {\r\n return a.replace(/\\$\\{?([a-z_][\\w.]*)\\}?/gi, function($0, $1) {\r\n let e = lodash.get(b, $1)\r\n return e == null ? (d ? $0 : '') : c ? encodeURIComponent(e) : e\r\n });\r\n }\r\n}\r\n\r\nconst strEscape = function(s) {\r\n\treturn s != null ? (s + '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\\\"/g, '"') : '';\r\n}\r\n\r\n// 在 a 中查找 b 并给 b 加上标签样式 c /@ a -> str, b -> key, c -> matchLength?, d -> key cls?\r\nconst strHighlight = function(a, b, c, d) {\r\n\treturn (a = a + '').replace(RegExp('(<[\\\\/!]?\\\\w+(?::\\\\w+)?\\\\s*(?:[-\\\\w]+(?:=(\\'|\")?.*?\\\\2)?\\\\s*)*>)|(' + strSplitword(b, c, true).join('|') + ')', 'ig'), function($0, $1, $2, $3) {\r\n\t \treturn $3 === undefined ? $1 : '<em class=\"' + (d || 'f-keyword') + '\">' + $3 + '</em>'\r\n\t})\r\n}\r\n\r\n// 字符转为regexp支持的模式\r\nconst _s_regexp = function(a) {\r\n\treturn a.replace(/([-.*+?^${}()|[\\]\\/\\\\])/g, '\\\\\\$1')\r\n}\r\n\r\n// @a -> key, b -> matchLength, c -> regexp?\r\nconst strSplitword = function(a, b, c) {\r\n\tlet e = [c ? _s_regexp(a) : a]\r\n let m = a.length\r\n\tif (b > 0 && m > b) {\r\n\t\tfor (let j = m - 1; j >= b; j --) {\r\n\t\t\tfor (let i = 0, l = m - j, f; i <= l; i ++) {\r\n\t\t\t\tf = a.substr(i, j)\r\n\t\t\t\te.push(c ? _s_regexp(f) : f)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn e\r\n}\r\n\r\nexport {string, strTrim, strEscape, strQuot, strFrom, strTo, strPad, strLen, strExceed, strFormat, strHighlight}\r\n","import {strFrom, strTo} from './str.js'\r\n\r\nconst _OBJ = 'object'\r\nconst N = null\r\nconst U = undefined\r\n\r\nconst number = (a) => {\r\n var r = typeof a === 'string' ? parseFloat(a.replace(/[^\\d\\.-]|\\b-/g, '')) : +a\r\n return isNaN(r) ? 0 : r\r\n}\r\n// 判断是否数字\r\nconst isNumber = (a) => a != null && !isNaN(a)\r\n\r\n// 如果 a 的大小在 b 和 c 之间,则返回 a。否则返回 b 或 c\r\nconst numRange = function(a, b, c) {\r\n\treturn a == null ? ((b || b === 0) ? b : (c || c === 0) ? c : a) : ((b || b === 0) && a < b) ? b : ((c || c === 0) && a > c) ? c : a\r\n}\r\n// js小数相加运算出现多位小数的解决办法\r\nconst numAdd = function(...args) {\r\n let m = 0\r\n let r = 0\r\n args.forEach(a => {\r\n m = Math.max(m, strFrom(a + '', '.').length)\r\n r += a\r\n })\r\n m = Math.pow(10, m)\r\n\treturn Math.round(r * m) / m\r\n}\r\n// 给数字加上分隔符 /@a -> str, b -> length?, c -> separator?, d -> rightward?\r\nconst numFormat = function(a, b, c, d) {\r\n\ta = String(a)\r\n\tb == null && (b = 3)\r\n\tc == null && (c = ',')\r\n\tlet e = a.replace(/[^.\\d]/g, '').split('.'), s = e[0], l = s.length, i = d ? 0 : l, t = '', n = a.charAt(0) === '-' ? '-' : '';\r\n\tif (d) {\r\n\t\tdo {\r\n\t\t\ti += b;\r\n\t\t\tt += (i < l ? s.substr(i - b, b) + c : s.substr(i - b));\r\n\t\t} while (i < l);\r\n\t} else {\r\n\t\tdo {\r\n\t\t\ti -= b;\r\n\t\t\tt = (i > 0 ? c + s.substr(i, b) : s.substr(0, b + i)) + t;\r\n\t\t} while (i > 0);\r\n\t}\r\n\treturn n + t + (e.length > 1 ? '.' + strFrom(a, '.').replace(RegExp('[.' + c + ']', 'g'), '') : '');\r\n}\r\n// 调整小数位数\r\nconst numDecimal = function(a, b) {\r\n\tif (!b) {\r\n\t\treturn parseInt(number(a))\r\n\t} else if (b < 0) {\r\n\t\treturn parseFloat(number(a))\r\n\t} else {\r\n\t\tlet f = strFrom('' + a, '.')\r\n\t\treturn f ? strTo('' + a, '.') + '.' + f.slice(0, b) : a\r\n\t}\r\n}\r\n\r\n// $.scale的辅助方法\nconst scaleRange = function(a, b) {\n\tif (b != N) {\n\t\tif (b.min && !isNaN(b.min)) a = Math.max(a, b.min);\n\t\tif (b.max && !isNaN(b.max)) a = Math.min(a, b.max);\n\t}\n\treturn a;\n}\r\n\n// 把数字a按照数组b切割 / @a -> num, b -> array, c -> cover?(如果切割依据都是数字,那么可能会有剩余。设置此参数为true,剩余的数据平摊到结果中)\n// @example: _scale(100, [{value:'*',max:10}, {value:60}, {value:'*'}])\n// 返回: [10, 60, 30]\n// @example: _scale(null, ['*', '60', '*'])\n// 返回: [null, 60, null]\nconst numScale = function(a, b, c) {\n\tvar d = 0, e = a, l = b.length, i = 0, p, s, v, t = 0, r = Array(l);\n\tfor (; i < l; i ++) {\n\t\tv = typeof b[i] === _OBJ ? b[i].value : b[i];\n\t\tif (v != N && isNaN(v)) {\n\t\t\ta == N ? (r[i] = N) : v === '*' ? (s = i, t ++) : p = i;\n\t\t} else\n\t\t\td += (r[i] = v == N || v < 0 ? N : + v);\n\t}\n\tif (a == N) return r;\n\tif (p !== U) {\n\t\ta = Math.max(0, a - d);\n\t\tvar z = 0;\n\t\tfor (i = d = 0; i <= p; i ++) {\n\t\t\tv = typeof b[i] === _OBJ ? b[i].value : b[i];\n\t\t\tif (r[i] === U && typeof v === _STR && v.indexOf('%') > 0) {\n\t\t\t\tz += (v = parseFloat(v));\n\t\t\t\td += (r[i] = scaleRange(Math.floor(e * v / 100), b[i]));\n\t\t\t}\n\t\t}\n\t\tif (s === U && z >= 100)\n\t\t\tr[p] = scaleRange(Math.max(0, r[p] + e - d), b[i]);\n\t}\n\tif (s !== U) {\n\t\ta = Math.max(0, a - d);\n\t\tfor (i = d = 0; i <= s; i ++) {\n\t\t\tif (r[i] === U) d += (r[i] = scaleRange(Math.floor(a / t), b[i]));\n\t\t}\n\t\tr[s] = scaleRange(Math.max(0, r[s] + a - d), b[s]);\n\t}\n\tif (c && p === U && s === U) {\n\t\tfor (i = 0, l = r.length, d = 0, t = 0; i < l; i ++) {\n\t\t\tisNumber(r[i]) && (d += r[i], t ++);\n\t\t}\n\t\tif (d < e) {\n\t\t\tvar f = Math.floor((e - d) / t);\n\t\t\tfor (i = 0; i < l; i ++)\n\t\t\t\tisNumber(r[i]) && (r[i] += f);\n\t\t\tfor (i = l; i >= 0; i --)\n\t\t\t\tif (isNumber(r[i])) {(r[i] += e - d - (f * t)); break;}\n\t\t}\n\t}\n\treturn r;\n}\r\n\r\nexport {number, isNumber, numRange, numAdd, numFormat, numDecimal, numScale}","import {\r\n number\r\n} from './number.js'\r\nimport {\r\n strPad\r\n} from './str.js'\r\n\r\n// 一天的毫秒数\r\nconst _date_D = 86400000\r\n\r\n// 标准格式化字符串\r\nconst _date_sf = 'yyyy-MM-dd HH:mm:ss'\r\n\r\nconst month_quarter = {\r\n 0: 'Q1', 1: 'Q1', 2: 'Q1',\r\n 3: 'Q2', 4: 'Q2', 5: 'Q2',\r\n 6: 'Q3', 7: 'Q3', 8: 'Q3',\r\n 9: 'Q4', 10: 'Q4', 11: 'Q4',\r\n}\r\n\r\n// 格式化日期\r\nconst dateFormat = function(a, b) {\r\n if (typeof a === 'string')\r\n a = dateParse(a, b);\r\n let o = {\r\n y: a.getFullYear(),\r\n m: a.getMonth(),\r\n d: a.getDate(),\r\n h: a.getHours(),\r\n i: a.getMinutes(),\r\n s: a.getSeconds(),\r\n }\r\n let s = (b || _date_sf).replace('yyyy', o.y).replace('MM', strPad(o.m + 1)).replace('dd', strPad(o.d)).replace('HH',\r\n strPad(o.h))\r\n .replace('mm', strPad(o.i)).replace('ss', strPad(o.s))\r\n .replace('M', o.m + 1).replace('d', o.d).replace('H', o.h).replace('m', o.i).replace('s', o.s)\r\n if (s.indexOf('w') > -1) {\r\n let w = dateWeek(a)\r\n s = s.replace('ww', strPad(w[1])).replace('w', w[1])\r\n }\r\n if (s.indexOf('q') > -1) {\r\n let q = month_quarter[o.m]\r\n s = s.replace('qq', q).replace('q', q)\r\n }\r\n return s\r\n}\r\n\r\n// 字串型转为日期型 /@a -> str, b -> format?\r\nconst dateParse = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1');\r\n b = (b || _date_sf).replace(/\\b([MdHmsw])\\b/g, '$1$1');\r\n let c\r\n let y = (c = b.indexOf('yyyy')) > -1 ? (number(a.substr(c, 4)) || (new Date().getFullYear())) : (new Date()\r\n .getFullYear())\r\n let M = (c = b.indexOf('MM')) > -1 ? Math.max(number(a.substr(c, 2)) - 1, 0) : 0\r\n let d = (c = b.indexOf('dd')) > -1 ? number(a.substr(c, 2)) || 1 : 1\r\n let H = (c = b.indexOf('HH')) > -1 ? number(a.substr(c, 2)) : 0\r\n let m = (c = b.indexOf('mm')) > -1 ? number(a.substr(c, 2)) : 0\r\n let s = (c = b.indexOf('ss')) > -1 ? number(a.substr(c, 2)) : 0\r\n if ((c = b.indexOf('qq')) > -1) {\r\n let q = a.substr(c, 2)\r\n let m = q === 'Q1' ? 0 : q === 'Q2' ? 3 : q === 'Q3' ? 6 : 9\r\n return new Date(y, m, 1)\r\n }\r\n if ((c = b.indexOf('ww')) > -1) {\r\n let w = number(a.substr(c, 2))\r\n let t = dateWeek(new Date(y, 0, 1))\r\n if (t[0] != y)\r\n t = dateWeek(new Date(y, 0, 8))\r\n return new Date(t[2].getTime() + (w - 1) * 7 * _date_D)\r\n }\r\n return new Date(y, M, d, H, m, s)\r\n}\r\n\r\n// 日期增减 /@ a -> date, b -> type enum (y/M/d/H/m/s), c -> value\r\nconst dateAdd = function(a, b, c) {\r\n c = number(c)\r\n let e = new Date(a.getTime())\r\n if (b === 'y')\r\n e.setFullYear(a.getFullYear() + c)\r\n else if (b === 'M')\r\n e.setMonth(e.getMonth() + c)\r\n else if (b === 'd')\r\n e.setDate(e.getDate() + c)\r\n else if (b === 'H')\r\n e.setHours(e.getHours() + c)\r\n else if (b === 'm')\r\n e.setMinutes(e.getMinutes() + c)\r\n else if (b === 's')\r\n e.setSeconds(e.getSeconds() + c)\r\n if ((b === 'y' || b === 'M') && e.getDate() != a.getDate())\r\n e = new Date(e.getTime() - e.getDate() * _date_D)\r\n return e\r\n}\r\n\r\n// 取得一个日期对象的week相关信息。返回一个包含四个元素的数组,【 年份,第几周,周一的日期,周日的日期 】\r\n// @a -> date\r\nconst dateWeek = function(a) {\r\n let b = $.x.weekPoint != null ? $.x.weekPoint : 1 //周的重心(星期几,从0到6)\r\n let c = $.x.weekStart != null ? $.x.weekStart : 1 //周的第一天(星期几,从0到6)\r\n let w = a.getDay() || 7\r\n let d = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + b)\r\n let e = Math.ceil((d - new Date(d.getFullYear(), 0, 0)) / _date_D)\r\n let f = new Date(a.getFullYear(), a.getMonth(), a.getDate() - w + c)\r\n return [d.getFullYear(), Math.floor((e + 6) / 7), f, new Date(f.getTime() + (7 * _date_D) - 1)]\r\n}\r\n\r\n// 获取某年的第一周\r\nconst dateWeekFirst = function(year) {\r\n let c = $.dateWeek(new Date(year, 0, 1))\r\n if (c[0] != year)\r\n c = $.dateWeek(new Date(year, 0, 8))\r\n return c\r\n}\r\n\r\n// 获取某年的最后一周\r\nconst dateWeekLast = function(year) {\r\n let b = dateWeek(new Date(year, 11, 31))\r\n if (b[0] !== year)\r\n b = dateWeek(new Date(year, 11, 31 - 7))\r\n return b\r\n}\r\n\r\n// 判断一个字符串格式的日期是否正确 /@ a -> date string, b -> date format string\r\nconst dateValid = function(a, b) {\r\n a = ('' + a).replace(/\\b(\\d)\\b/g, '0$1')\r\n let d = dateParse(a, b)\r\n let y = d.getFullYear()\r\n return y >= 1000 && y <= 9999 && a == dateFormat(d, b)\r\n}\r\n\r\nconst dateDiff = function(a, b = new Date, c) {\r\n if (typeof a === 'string') a = dateParse(a)\r\n if (typeof b === 'string') b = dateParse(b)\r\n switch (c) {\r\n case 'y':\r\n let e = b.getFullYear() - a.getFullYear()\r\n let f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e\r\n case 'M':\r\n let y = _dateDiff(a, b, 'y')\r\n let z = dateAdd(a, 'y', y)\r\n e = z.getFullYear() < b.getFullYear() ? b.getMonth() + 11 - z.getMonth() : b.getMonth() - z.getMonth()\r\n f = dateAdd(a, c, e)\r\n if (f > b) e--\r\n return e + y * 12\r\n case 'H':\r\n return Math.floor((b - a) / (60 * 60 * 1000))\r\n case 'm':\r\n return Math.floor((b - a) / (60 * 1000))\r\n case 's':\r\n return Math.floor((b - a) / 1000)\r\n default: // 'd' 日期类型为默认\r\n return Math.floor((b - a) / _date_D)\r\n }\r\n}\r\n\r\nconst dateSheet = function(...args) {\r\n return $.docView.dateSheet(...args)\r\n}\r\n\r\nexport {\r\n dateFormat,\r\n dateParse,\r\n dateAdd,\r\n dateValid,\r\n dateDiff,\r\n dateSheet,\r\n dateWeek,\r\n dateWeekFirst,\r\n dateWeekLast,\r\n}\r\n","if (window.Range && !Range.prototype.movePoint) {\r\n if (Range.prototype.__defineGetter__) {\r\n Range.prototype.__defineGetter__('text', function() {\r\n return this.toString()\r\n });\r\n Range.prototype.__defineSetter__('text', function(a) {\r\n this.deleteContents()\r\n this.insertNode(document.createTextNode(a))\r\n });\r\n }\r\n Range.prototype.movePoint = function(a, b) {\r\n var c = this.startContainer.firstChild || this.startContainer,\r\n d, i = a,\r\n l = 0,\r\n b = b == null ? a : b;\r\n do {\r\n this.selectNodeContents(c);\r\n l = this.toString().length;\r\n i -= l;\r\n } while (i > 0 && (c = c.nextSibling));\r\n c = d = this.startContainer;\r\n i += l;\r\n var j = b - a + i,\r\n l = 0;\r\n do {\r\n this.selectNodeContents(d);\r\n l = this.toString().length;\r\n j -= l;\r\n } while (j > 0 && (d = d.nextSibling));\r\n this.setStart(c.firstChild || c, i);\r\n if (d) {\r\n var e = d;\r\n while (e.firstChild) e = e.firstChild;\r\n this.setEnd(e, l + j);\r\n }\r\n };\r\n Range.prototype.select = function() {\r\n let s = window.getSelection()\r\n s.removeAllRanges()\r\n s.addRange(this)\r\n };\r\n}\r\n\r\nconst rngSelection = function() {\r\n let s = window.getSelection()\r\n return s.rangeCount && s.getRangeAt(0)\r\n}\r\nconst rngElement = function() {\r\n let s = rngSelection()\r\n return s && s.startContainer.parentNode\r\n}\r\nconst rngCursor = function(a, b) {\r\n let r = a\r\n if (window.getSelection) {\r\n if (typeof a.selectionStart === 'number' && typeof a.selectionEnd === 'number') {\r\n a.selectionStart = a.selectionEnd = b != null ? b : a.value.length\r\n } else {\r\n let s = window.getSelection()\r\n if (a.nodeType === 1)\r\n (r = document.createRange()).selectNodeContents(a)\r\n if (b != null)\r\n r.movePoint(b)\r\n s.removeAllRanges()\r\n s.addRange(r)\r\n s.collapseToEnd()\r\n }\r\n }\r\n return r\r\n}\r\nconst rngCursorOffset = function() {\r\n let n = rngSelection()\r\n let c = n.startOffset\r\n if (c != null)\r\n return c\r\n let r = document.body.createTextRange()\r\n r.selectNodeContents(n.startContainer.parentNode)\r\n r.setEndPoint('EndToStart', n)\r\n return rngText(r).length\r\n}\r\n// @a ->range, b -> text?\r\nconst rngText = function(a, b) {\r\n if (a == null)\r\n a = rngSelection()\r\n if (b != null) {\r\n if (a.deleteContents) {\r\n a.deleteContents()\r\n a.insertNode(document.createTextNode(b))\r\n } else {\r\n a.text = b\r\n }\r\n }\r\n return a.text === undefined ? a.toString() : a.text\r\n}\r\n\r\nexport {\r\n rngSelection,\r\n rngElement,\r\n rngCursor,\r\n rngCursorOffset,\r\n rngText\r\n}\r\n","import jquery from 'jquery'\r\n\r\nconst _adjacent_where = ['afterend', 'afterbegin', 'beforebegin', 'beforeend']\r\nconst _adjacent_query = ['after', 'prepend', 'before', 'append']\r\n// 创建一个div /@ s -> html\r\nconst _div = function(s) {\r\n\tlet o = document.createElement('div')\r\n\tif (s) o.innerHTML = s\r\n\ttry {return o} catch(e) {return false}\r\n\tfinally {o = null}\r\n}\r\nconst frag = function(s) {\r\n\tlet d = typeof s === 'string' ? _div(s) : s\r\n let f = document.createDocumentFragment()\r\n\twhile (d.firstChild)\r\n\t\tf.appendChild(d.firstChild);\r\n\ttry {return f} catch(e) {return false}\r\n\tfinally {d = f = null}\r\n}\r\n\r\nconst el = function(o) {\r\n if (o) {\r\n const d = o.$el\r\n if (d) return d.nodeType === 1 ? d : d.nextElementSibling\r\n return o.isWidget ? o.el() : o\r\n }\r\n}\r\n// o -> el, s -> html string/object, r -> where[`after`, `prepend`, `before`, `append`]\r\nconst html = function(o, s, r) {\r\n\tif (r == null) {\r\n\t\tif (s == null) return o.innerHTML\r\n\t\ttry {o.innerHTML = s} catch(ex) {\r\n\t\t\twhile (o.firstChild)\r\n\t\t\t\to.removeChild(o.firstChild)\r\n\t\t\thtml(o, s, 3)\r\n\t\t}\r\n\t} else {\r\n\t\tlet b\r\n\t\tif (typeof s === 'string') {\r\n\t\t\ttry {\r\n\t\t\t\to.nodeType === 3 ? jquery(o)[_adjacent_query[r]](s) : o.insertAdjacentHTML(_adjacent_where[r], s)\r\n\t\t\t} catch (ex) {\r\n\t\t\t\thtml(o, frag(s), r)\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tlet p = r % 2 ? o : o.parentNode\r\n\t\t\tp && p.insertBefore(s, r === 0 ? o.nextSibling : r === 1 ? o.firstChild : r === 2 ? o : null)\r\n\t}\r\n\t}\r\n}\r\nconst append = function(o, s) {html(o, s, 3); return o.lastElementChild || o.lastChild}\r\nconst prepend = function(o, s) {html(o, s, 1); return o.firstElementChild || o.firstChild}\r\nconst before = function(o, s) {html(o, s, 2); return o.previousElementSibling || o.previousSibling}\r\nconst after = function(o, s) {html(o, s, 0); return o.nextElementSibling || o.nextSibling}\r\nconst replaceWith = function(o, s) {\r\n\tlet a = o.nextSibling\r\n\tif (a) {\r\n\t\to.parentNode.removeChild(o)\r\n\t\treturn before(a, s)\r\n\t} else {\r\n\t\tlet p = o.parentNode\r\n\t\tp.removeChild(o)\r\n\t\treturn append(p, s)\r\n\t}\r\n}\r\n\r\nexport {el, html, append, prepend, before, after, replaceWith}","import {number} from './number.js'\r\nimport {strFrom, strTo} from './str.js'\r\n\r\nconst _css_camelize = (function() {\r\n\tlet b = {'float' : 'cssFloat'}\r\n\treturn function(s) {\r\n\t\treturn b[s] || s.replace(/-./g, function($0) {return $0.charAt(1).toUpperCase()});\r\n\t}\r\n})()\r\n\r\n// @o -> el, n -> name, v -> value\r\nconst _set_style = function(o, n, v) {\r\n\t// 如属性名前面带 += 号,则执行 += 操作\r\n\tif (typeof v === 'string' && v.charAt(1) === '=') {\r\n\t\tvar\tn = _css_camelize(n),\r\n\t\t\tc = o.style[n] || getComputedStyle(o, null)[n],\r\n\t\t\tv = number(v.replace('=', ''))\r\n\t\tif (n === 'width' || n === 'height') {\r\n\t\t\tc = number(c && c !== 'auto' ? c : n.charAt(0) === 'w' ? o.offsetWidth : o.offsetHeight);\r\n\t\t\tif (c < 0) c = 0;\r\n\t\t} else\r\n\t\t\tc = number(c);\r\n\t\to.style[n] = (c + v) + (n === 'zIndex' ? 0 : 'px');\r\n\t} else {\r\n\t\tn = _css_camelize(n);\r\n\t\tif (n === 'width' || n === 'height')\r\n\t\t\tv && v !== 'auto' && (v = Math.max(_number(v), 0));\r\n\t\tif (v && !isNaN(v) && n !== 'zIndex')\r\n\t\t\tv += 'px';\r\n\t\to.style[n] = v;\r\n\t}\r\n\treturn o;\r\n}\r\n\r\nconst css = function(o, s, n) {\r\n\tif (!o || !s)\r\n\t\treturn null;\r\n\tif (n != null) {\r\n\t\tfor (var i = 1, l = arguments.length; i < l; i += 2)\r\n\t\t\t_set_style(o, arguments[i], arguments[i + 1]);\r\n\t} else {\r\n\t\tif (typeof s === 'string') {\r\n\t\t\tif (s.indexOf(':') > 0) {\r\n\t\t\t\tfor (var i = 0, b = s.split(';'), l = b.length, k, v; i < l; i ++)\r\n\t\t\t\t\t(k = strTo(b[i], ':')) && (v = strFrom(b[i], ':')) && _set_style(o, k, v);\r\n\t\t\t} else\r\n\t\t\t\treturn o.style[s] || getComputedStyle(o, null)[s];\r\n\t\t}\r\n\t\tfor (var i in s) _set_style(o, i, s[i]);\r\n\t}\r\n}\r\n\r\nexport {css}","import {number, isNumber} from './number.js'\r\nimport {css} from './css.js'\r\nimport Q from 'jquery'\r\n\r\nconst T = true\r\nconst F = false\r\nconst N = null\r\nconst doc = document\r\nconst cvs = document.documentElement\r\n\r\nconst _arr_comma = a => a.split(',')\r\n\r\nconst _snaptype = {\r\n\th : _arr_comma('21,12,34,43'),\r\n\tv : _arr_comma('41,14,32,23'),\r\n\ta : _arr_comma('41,32,14,23,21,34,12,43,11'),\r\n\tt: ['tt'], b: ['bb'], l: ['ll'], r: ['rr'], c: ['cc'], top: ['tt'], bottom: ['bb'], left: ['ll'], right: ['rr'],\r\n\ttl: ['11'], tr: ['22'], rt: ['22'], rb: ['33'], br: ['33'], bl: ['44'], lb: ['44'], lt: ['11'], \r\n\t'1': ['11'], '2': ['22'], '3': ['22'], '4': ['33'], '5': ['33'], '6': ['44'], '7': ['44'], '8': ['11']\r\n}\r\n\r\nconst _snapMag = (function() {\r\n\tvar r = [23,22,33,32,21,34,'rr','rl'], b = [14,23,34,43,33,44,'bb','tb'], i, o = {pix: {r:{}, b:{}}, mag: {l:{}, r:{}, t:{}, b:{}}, inner:{}};\r\n\ti = r.length; while (i --) o.pix.r[r[i]] = T;\r\n\ti = b.length; while (i --) o.pix.b[b[i]] = T;\r\n\tvar r = [21,34,22,33,'rr','rl'], b = [41,32,44,33,'bt','bb'], l = [12,43,11,44,'lr','ll'], t = [14,23,11,22,'tb','tt'];\r\n\ti = r.length; while (i --) o.mag.r[r[i]] = T;\r\n\ti = b.length; while (i --) o.mag.b[b[i]] = T;\r\n\ti = l.length; while (i --) o.mag.l[l[i]] = T;\r\n\ti = t.length; while (i --) o.mag.t[t[i]] = T;\r\n\tvar r = [11,22,33,44,'tt','bb','ll','rr'];\r\n\ti = r.length; while (i --) o.inner[r[i]] = T;\r\n\treturn o;\r\n})()\r\n\r\nconst canvasOffset = function(o) {\r\n\tvar a = bcr(o);\r\n\ta.right = cvs.clientWidth - a.right;\r\n\ta.bottom = cvs.clientHeight - a.bottom;\r\n\treturn a;\r\n}\r\n\r\nconst offset = function(a, b) {\r\n\tlet r = {top: 0, left: 0, width: a.offsetWidth, height: a.offsetHeight}\r\n\tdo {\r\n\t\tr.top += a.offsetTop\r\n r.left += a.offsetLeft\r\n\t} while((a = a.offsetParent) && b != a)\r\n\treturn r\r\n}\r\n\r\nconst bcr = function(a) {\r\n\tvar b = cvs.clientLeft, c = cvs.scrollLeft, d = cvs.clientTop, e = cvs.scrollTop, o = a && a != doc && (a.isWidget ? a.el() : a), r = o && o.getBoundingClientRect();\r\n\treturn r ? {left : r.left - b + c, top : r.top - d + e, right : r.right - b + c, bottom : r.bottom - d + e, width : r.width, height : r.height} :\r\n\t\ta == document ? {left: c, top: e, right: cvs.clientWidth + c, bottom: cvs.clientHeight + e, width: cvs.clientWidth, height: cvs.clientHeight} : N;\r\n}\r\n\r\n// 获取对齐吸附模式的位置参数。元素四个角,左上为1,右上为2,右下为3,左下为4。目标元素在前,浮动元素在后。如\"41\"代表目标元素的左下角和浮动元素的左上角粘合。\r\n// @ a -> width, b -> height, c -> toObj offset, d -> adsorb type, e - > fit?[是否自动选择位置,让可见区域最大化], f -> indent[缩进多少像素], u -> range?[浮动元素的限定范围元素]\r\nconst snap = function(a, b, c, d, e, f, u) {\r\n\tif (!c)\r\n\t\tc = bcr(doc);\r\n\telse if (c.nodeType)\r\n\t\tc = bcr(c);\r\n\telse if (c.isWidget)\r\n\t\tc = bcr(c.el());\r\n\telse if (c.originalEvent || c.clientX != N) {\r\n\t\tc = c.originalEvent || c;\r\n\t\tc = {left: c.clientX, right: c.clientX, top: c.clientY, bottom: c.clientY};\r\n\t}\r\n\tvar t = [], l = [], g, h, k = -1, ew = cvs.clientWidth, eh = cvs.clientHeight,\r\n\t\ts = d ? (_snaptype[d] || ('' + d).split(',')) : _snaptype.a;\r\n\tif (/[1-4]/.test(s[0])) {// 1-4是边角对齐 .\r\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\r\n\t\t\tg = + s[i].charAt(0), h = + s[i].charAt(1);\r\n\t\t\tt.push((g === 1 || g === 2 ? c.top : c.bottom) - (h === 3 || h === 4 ? b : 0));\r\n\t\t\tl.push((g === 1 || g === 4 ? c.left : c.right) - (h === 2 || h === 3 ? a : 0));\r\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\r\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\r\n\t\t\tif (o && p) {\r\n\t\t\t\tk = i;\r\n\t\t\t\tbreak;\r\n\t\t\t} else {\r\n\t\t\t\t// 计算可见面积,取最大的那个\r\n\t\t\t\tvar ot = t[i] < 0 ? -t[i] : 0,\r\n\t\t\t\t\tor = l[i] + a > ew ? l[i] + a - ew : 0,\r\n\t\t\t\t\tob = t[i] + b > eh ? t[i] + b - eh : 0,\r\n\t\t\t\t\tol = l[i] < 0 ? -l[i] : 0;\r\n\t\t\t\tm = s[i] === '14' || s[i] === '34' ? (a-or)*(b-ot) : s[i] === '23' || s[i] === '43' ? (a-ol)*(b-ot) :\r\n\t\t\t\t\ts[i] === '32' || s[i] === '12' ? (a-ol)*(b-ob) : (a-or)*(b-ob);\r\n\t\t\t\tif (!n || n < m) {\r\n\t\t\t\t\tn = m;\r\n\t\t\t\t\tk = i;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t} else {// t r b l 是边线中点对齐 .\r\n\t\tfor (var i = 0, o, p, m, n = 0; i < s.length; i ++) {\r\n\t\t\tg = s[i].charAt(0), h = s[i].charAt(1);\r\n\t\t\tt.push((g === 'r' || g === 'l' || g === 'c' ? (c.top + c.bottom) / 2 : (g === 't' ? c.top : c.bottom)) - (h === 'r' || h === 'l' || h === 'c' ? b / 2 : (h === 'b' ? b : 0)));\r\n\t\t\tl.push((g === 't' || g === 'b' || g === 'c' ? (c.left + c.right) / 2 : (g === 'r' ? c.right : c.left)) - (h === 't' || h === 'b' || h === 'c' ? a / 2 : (h === 'r' ? a : 0)));\r\n\t\t\to = t[i] >= 0 && t[i] + b <= eh;\r\n\t\t\tp = l[i] + a <= ew && l[i] >= 0;\r\n\t\t\tif (o && p) {\r\n\t\t\t\tk = i;\r\n\t\t\t\tbreak;\r\n\t\t\t} else if (o || p) {\r\n\t\t\t\tif (d) {\r\n\t\t\t\t\tm = d == _snaptype.v ? (g == 1 || g == 2 ? - t[i] : t[i] + b - eh) : (g == 1 || g == 4 ? - l[i] : l[i] + a - ew);\r\n\t\t\t\t\tif (!n || n > m) {\r\n\t\t\t\t\t\tn = m;\r\n\t\t\t\t\t\tk = i;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (k < 0)\r\n\t\t\t\t\tk = i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tif (k < 0) k = 0;\r\n\tvar y = s[k], o = {left : l[k], top : t[k], bottom: eh - (t[k] + b), right: ew - (l[k] + a), type : y};\r\n\t_snapMag.pix.r[y] && (o.pix_r = T);\r\n\t_snapMag.pix.b[y] && (o.pix_b = T);\r\n\t_snapMag.mag.r[y] && (o.mag_r = T, o.mag = 'r');\r\n\t_snapMag.mag.b[y] && (o.mag_b = T, o.mag = 'b');\r\n\t_snapMag.mag.l[y] && (o.mag_l = T, o.mag = 'l');\r\n\t_snapMag.mag.t[y] && (o.mag_t = T, o.mag = 't');\r\n\t_snapMag.inner[y] && (o.inner = T);\r\n\tif (f && o.mag) {\r\n var i = f.indent || number(f)\r\n if (i) {\r\n i = i / (window.devicePixelRatio || 1)\r\n if (o.inner) {\r\n \to.mag_t ? (o.top -= i, o.bottom += i) : o.mag_b ? (o.top += i, o.bottom -= i) : o.mag_r ? (o.left += i, o.right -= i) : (o.left -= i, o.right += i);\r\n } else {\r\n \to.mag_t ? (o.top += i, o.bottom -= i) : o.mag_b ? (o.top -= i, o.bottom += i) : o.mag_r ? (o.left -= i, o.right += i) : (o.left += i, o.right -= i);\r\n }\r\n }\r\n f.top && (o.top -= f.top);\r\n f.bottom && (o.bottom -= f.bottom);\r\n f.left && (o.left -= f.left);\r\n f.right && (o.right -= f.right)\r\n\t}\r\n\tif (e) {// 自适应位置 \r\n\t\tvar l = o.left, r = o.right, b = o.bottom, t = o.top;\r\n\t\tif (o.mag_t || o.mag_b) {\r\n\t\t\tif (o.pix_r)\r\n\t\t\t\tr = Math.max(0, l < 0 ? r + l : r), l += o.right - r;\r\n\t\t\telse\r\n\t\t\t\tl = Math.max(0, r < 0 ? r + l : l), r += o.left - l;\r\n\t\t}\r\n\t\tif (o.mag_l || o.mag_r) {\r\n\t\t\tif (o.pix_b)\r\n\t\t\t\tb = Math.max(0, t < 0 ? b + t : b), t += o.bottom - b;\r\n\t\t\telse\r\n\t\t\t\tt = Math.max(0, b < 0 ? b + t : t), b += o.top - t;\r\n\t\t}\r\n\t\to.left = l, o.right = r, o.top = t, o.bottom = b;\r\n\t} \r\n\tif (d === 'cc' && o.top < 0)\r\n\t\to.top = 0;\r\n\tif (u) {\r\n \t\tvar s = canvasOffset(u);\r\n\t\to.top -= (s.top);\r\n\t\to.left -= (s.left);\r\n\t\to.right -= (s.right);\r\n\t\to.bottom -= (s.bottom);\r\n\t}\r\n\to.width = a;\r\n\to.height = b;\r\n\to.target = c; \r\n\treturn o;\r\n}\r\n\r\n// @a -> el, b -> snap option\r\nconst snapTo = function(a, b) {\r\n\tvar e = b.type;\r\n\tif (e) {\r\n\t\tif (b.pix_r) {\r\n\t\t\ta.style.right = b.right + 'px';\r\n\t\t\ta.style.left = '';\r\n\t\t} else {\r\n\t\t\ta.style.left = b.left + 'px';\r\n\t\t\ta.style.right = '';\r\n\t\t}\r\n\t\tif (b.pix_b) {\r\n\t\t\ta.style.bottom = b.bottom + 'px';\r\n\t\t\ta.style.top = '';\r\n\t\t} else {\r\n\t\t\ta.style.top = b.top + 'px';\r\n\t\t\ta.style.bottom = '';\r\n\t\t}\r\n\t} else\r\n\t\tcss(a, b)\r\n}\r\n\r\nexport {bcr, offset, snap, snapTo}\r\n","// 最后一个属性是数组 / a -> obj, b -> target\r\n// example: _jsonArray(obj, target, 'a', 'b');\r\n// 等同于: target['a']['b'].push(obj);\r\nconst jsonArray = function(a, b) {\r\n\tfor (var i = 2, l = arguments.length - 1; i < l; i ++)\r\n\t\tb = b[arguments[i]] || (b[arguments[i]] = {});\r\n\t(b[arguments[l]] || (b[arguments[l]] = [])).push(a);\r\n\treturn b[arguments[l]];\r\n}\r\n\r\n// example: _jsonChain(obj, target, 'a', 'b');\r\n// 等同于: target['a']['b'] = obj;\r\nconst jsonChain = function(a, b) {\r\n\tfor (var i = 2, l = arguments.length - 1, c = b; i < l; i ++)\r\n\t\tc = c[arguments[i]] || (c[arguments[i]] = {});\r\n\tc[arguments[l]] = a;\r\n\treturn c;\r\n}\r\n\r\nexport {jsonArray, jsonChain}","import {strFrom, strTo } from './str.js'\r\nimport {jsonArray} from './json.js'\r\nimport br from './browser.js'\r\nimport uid from './uid.js'\r\nimport lodash from 'lodash'\r\n\r\nconst _EventUser = {}\r\nconst _event_remove = function(k) {\r\n if (k.fn) {\r\n lodash.pull(_EventUser[k.id][k.type], k)\r\n k.type = k.fn = k.args = null\r\n }\r\n}\r\nconst _event_name = function(a) {\r\n return a.indexOf('.') > -1 ? strTo(a, '.') : a\r\n}\r\nconst _event_space = function(a) {\r\n return a.indexOf('.') > -1 ? '.' + strFrom(a, '.').split('.').sort().join('.') + '.' : ''\r\n}\r\nconst _event_handlers = function(a, b) {\r\n var c = _EventUser[uid(a)];\r\n if (!c) return;\r\n var type = _event_name(b),\r\n ns = _event_space(b);\r\n if (type) {\r\n return c[type] && (ns ? c[type].filter(v => v.ns.indexOf(ns) > -1) : c[type])\r\n }\r\n var r = [];\r\n for (type in c) {\r\n r.push.apply(r, c[type].filter(v => v.ns.indexOf(ns) > -1))\r\n }\r\n return r;\r\n}\r\n\r\nclass EventListener {\r\n constructor(ctx) {\r\n this.ctx = ctx\r\n }\r\n hasEvent(type) {\r\n let a = _event_handlers(this.ctx, type)\r\n return a && a.length\r\n }\r\n // type -> event type, fn -> fn, pvdr -> context, one -> exec once [T/F]\r\n addEvent(type, fn, one) {\r\n var k = {\r\n id: uid(this.ctx),\r\n type: _event_name(type),\r\n ns: _event_space(type),\r\n fn: fn,\r\n one: one\r\n };\r\n jsonArray(k, _EventUser, k.id, k.type).ori = true\r\n return this;\r\n }\r\n addEventOnce(type, fn) {\r\n return this.addEvent(type, fn, true)\r\n }\r\n // e -> event, r -> args[array]\r\n fireEvent(e, r) {\r\n var a = _event_handlers(this.ctx, e.type || e);\r\n if (a) {\r\n for (var i = 0, k, l = a.length, v; i < l; i++) {\r\n if ((k = a[i]) && k.fn) {\r\n v = k.fn.apply(this.ctx, r ? [e].concat(r) : [e]);\r\n if (k.one) {\r\n _event_remove(k);\r\n a.ori && (i--, l--);\r\n }\r\n if (v !== undefined)\r\n return v;\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n // a -> event type, b -> fn\r\n removeEvent(a, b) {\r\n if (a) {\r\n var d = _event_handlers(this.ctx, a);\r\n if (d) {\r\n var i = d.length;\r\n while (i--)\r\n if (!b || (d[i].fn === b)) _event_remove(d[i]);\r\n }\r\n } else {\r\n var c = _EventUser[uid(this.ctx)],\r\n i;\r\n for (i in c) this.removeEvent(i);\r\n delete _EventUser[uid(this.ctx)];\r\n }\r\n return this;\r\n }\r\n}\r\n\r\nconst eventX = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientX : e.clientX\r\n}\r\n\r\nconst eventY = function(e) {\r\n return e.targetTouches ? e.targetTouches[0].clientY : e.clientY\r\n}\r\n\r\nconst moveup = function(moveCB, upCB, downEv) {\r\n let moveHdl, upHdl, dir = downEv == null,\r\n cvs = document.documentElement,\r\n evX = e => e.targetTouches ? e.targetTouches[0].clientX : e.clientX,\r\n evY = e => e.targetTouches ? e.targetTouches[0].clientY : e.clientY,\r\n prevent = e => e.preventDefault()\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = 'none'\r\n }\r\n cvs.addEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl = function(e) {\r\n dir ? moveCB(e) :\r\n downEv && (Math.abs(evX(e) - evX(downEv)) > 1 || Math.abs(evY(e) - evY(downEv)) > 1) && (dir = true)\r\n }, true);\r\n cvs.addEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl = function(e) {\r\n cvs.removeEventListener(br.mobile ? 'touchmove' : 'mousemove', moveHdl, true)\r\n cvs.removeEventListener(br.mobile ? 'touchend' : 'mouseup', upHdl, true)\r\n if (downEv.currentTarget) {\r\n downEv.currentTarget.style.userSelect = ''\r\n }\r\n br.mobile && cvs.removeEventListener('touchmove', prevent, {passive: false});\r\n upCB && upCB(e, dir)\r\n }, true);\r\n // 业务拖动时禁用浏览器默认的拖动效果\r\n br.mobile && cvs.addEventListener('touchmove', prevent, {passive: false})\r\n}\r\n\r\nexport {EventListener, eventX, eventY, moveup}","import lodash from 'lodash'\r\nimport jquery from 'jquery'\r\nimport http from 'axios'\r\nimport Qs from 'qs'\r\n\r\nimport br from './util/browser.js'\r\nimport uid from './util/uid.js'\r\nimport loc from './util/loc/zh-CN.js'\r\nimport {number, isNumber, numRange, numAdd, numFormat, numDecimal, numScale} from './util/number.js'\r\nimport {string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strExceed, strFormat, strHighlight} from './util/str.js'\r\nimport {dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast} from './util/date.js'\r\nimport {rngSelection, rngElement, rngCursor, rngCursorOffset, rngText} from './util/range.js'\r\nimport {el, html, append, prepend, before, after, replaceWith} from './util/elem.js'\r\nimport {bcr, offset, snap, snapTo} from './util/snap.js'\r\nimport {EventListener, eventX, eventY, moveup} from './util/event.js'\r\n\r\n// 根据元素获取widget组件\r\nfunction $(o) {\r\n if (!o || o.isWidget) return o\r\n if (typeof o === 'string' || o.uid) return $.vueMap.get(o.uid || o)\r\n if (o instanceof Event) {\r\n o = o.currentTarget || o.target\r\n }\r\n if (o.$el) {\r\n\t\tif (o.$attrs.orientUid) {\r\n\t\t\treturn $.vueMap.get(o.$attrs.orientUid)\r\n\t\t}\r\n\t\tconst el = o.$el\r\n\t\tif (el.nodeType === 8) {\r\n\t\t\tif (o.$.subTree.component.data.uid)\r\n\t\t\t\treturn $.vueMap.get(o.$.subTree.component.data.uid)\r\n\t\t}\r\n\t\to = el.nodeType != 1 ? o.$el.nextElementSibling : o.$el\r\n }\r\n if (lodash.isElement(o)) {\r\n do {\r\n if (o.id) {\r\n if ($.vueMap.has(o.id)) return $.vueMap.get(o.id)\r\n let d = $.strTo(o.id, ':') + ':'\r\n if($.vueMap.has(d)) return $.vueMap.get(d)\r\n }\r\n } while (o = o.parentNode)\r\n }\r\n while (o && !o.isWidget) o = o.$parent\r\n return o || $.docView\r\n}\r\n\r\nObject.assign($, {\r\n x: {defaultOptions: {}},\r\n vueMap: new Map(),\r\n dfclsCache: {},\r\n q: jquery, lodash, http,\r\n br, loc, uid, EventListener, eventX, eventY,\r\n number, isNumber, numRange, numAdd, numFormat, numDecimal, numScale,\r\n string, strTrim, strEscape, strFrom, strTo, strPad, strLen, strExceed, strFormat, strHighlight,\r\n dateFormat, dateParse, dateAdd, dateValid, dateDiff, dateSheet, dateWeek, dateWeekFirst, dateWeekLast,\r\n rngSelection, rngElement, rngCursor, rngCursorOffset, rngText,\r\n el, html, append, prepend, before, after, replaceWith,\r\n moveup, bcr, offset, snap, snapTo,\r\n})\r\n\r\n// a继承b的属性。不覆盖a的既有同名属性\r\n$.extend = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c)\r\n if (!(k in a) && c[k] !== undefined) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n// 递归继承\r\n$.extendDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null && typeof c === 'object' && ('constructor' in c) && c.constructor === Object) {\r\n for (let i in c) {\r\n if (!(i in a)) {\r\n if (c[i] != null && typeof c[i] === 'object' && ('constructor' in c[i]) && c[i].constructor === Object) {\r\n $.extendDeep(a[i] = {}, c[i])\r\n } else\r\n a[i] = c[i]\r\n } else if (a[i] != null && typeof a[i] === 'object' && ('constructor' in a[i]) && a[i].constructor === Object)\r\n $.extendDeep(a[i], c[i])\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.merge = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c)\r\n for (let k in c) a[k] = c[k]\r\n })\r\n return a\r\n}\r\n\r\n$.mergeDeep = function(a, ...args) {\r\n args.forEach(c => {\r\n if (c != null) {\r\n for (let k in c) {\r\n if (typeof a[k] === 'object')\r\n $.mergeDeep(a[k], c[k])\r\n else\r\n a[k] = c[k]\r\n }\r\n }\r\n })\r\n return a\r\n}\r\n\r\n$.cloneDeep = lodash.cloneDeep\r\n\r\n$.eval = function(str, opt) {\r\n if (opt) {\r\n let keys = Object.keys(opt)\r\n return Function(keys.map(k => k), `return (${str})`)(...keys.map(k => opt[k]))\r\n }\r\n return Function(`return (${str})`)()\r\n}\r\n\r\n$.string = function(a) {\r\n\treturn a == null ? '' :\r\n\t\ttypeof a === 'object' ? JSON.stringify(a) : '' + a\r\n}\r\n\r\n// a -> object\r\n$.array = function(a) {\r\n return Array.isArray(a) ? a : a == null || a === '' ? [] : [a]\r\n}\r\n// a -> object\r\n$.arrayID = function(a) {\r\n return Array.isArray(a) ? a : a == null || a === '' ? [] : typeof a === 'string' ? a.split(',') : [a]\r\n}\r\n// 把数组内的文本转为数字\r\n$.arrayNumber = function(a) {\r\n return $.array(a).map(v => parseFloat(v))\r\n}\r\n\r\n// 数字转为像素单位。如果自带单位则保留单位\r\n$.unitSize = (size, allowMinus) => size == null || size === '' ? '' : size === '*' ? '' : (size == -1 && !allowMinus)|| size == 'auto' ?\r\n 'auto' : isNaN(size) ? size : `${size}px`\r\n\r\n// 添加一个ID\r\n$.idsAdd = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s || n\r\n for (var i = 0, n = n.split(p), l = n.length; i < l; i++) {\r\n if ((p + s + p).indexOf(p + n[i] + p) < 0) s += (s ? p : '') + n[i];\r\n }\r\n return s\r\n}\r\n// 删除一个ID\r\n$.idsRemove = (s, n, p) => {\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return s\r\n for (var i = 0, e, n = n.split(p), l = n.length; i < l; i++) {\r\n do {\r\n e = (p + s + p).indexOf(p + n[i] + p);\r\n if (e > -1) s = s.slice(0, e ? e - 1 : e) + s.slice(e + n[i].length + (e ? 0 : 1));\r\n } while (s && e > -1);\r\n }\r\n return s\r\n}\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAny = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = string(s)\r\n n = string(n)\r\n p = p == null ? ',' : '' + p\r\n if (!s || !n) return false\r\n if (s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) > -1) return true\r\n return false\r\n}\r\n\r\n// s是否包含n。如果 n 也是逗号隔开,那么只需n中有匹配到s中的一项即返回true\r\n$.idsAll = (s, n, p) => {\r\n if (s === '' && n === s) return true\r\n s = s == null ? '' : '' + s\r\n n = n == null ? '' : '' + n\r\n p = p == null ? ',' : '' + p\r\n if (!s) return false\r\n if (!n || s == n) return true\r\n for (let v of n.split(p))\r\n if ((p + s + p).indexOf(p + v + p) < 0) return false\r\n return true\r\n}\r\n\r\n// 添加一个class /@ a -> el, b -> className, c -> add?(默认添加)\r\n$.classAdd = function(a, b, c) {\r\n if (!a) return\r\n let s = a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $.strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b[i], ' ')\r\n } else\r\n s = (c === false ? $.idsRemove : $.idsAdd)(s, b, ' ')\r\n a.className = s\r\n}\r\n\r\n// 删除一个class /@ a -> el, b -> className\r\n$.classRemove = function(a, b) {\r\n if (!a) return\r\n if (b.indexOf(' ') > -1) {\r\n $.classAdd(a, b, false)\r\n } else\r\n a.className = $.idsRemove(a.className, b, ' ')\r\n}\r\n\r\n// 是否包含任意一个class(多个是“或”的关系) /@ a -> el or className\r\n$.classAny = function(a, b) {\r\n if (!a) return\r\n let s = typeof a === 'string' ? a : a.className\r\n if (b.indexOf(' ') > -1) {\r\n b = $strTrim(b).split(/ +/)\r\n for (let i = 0, l = b.length; i < l; i++)\r\n if ($.idsAny(s, b[i], ' ')) return i + 1\r\n } else\r\n return $.idsAny(s, b, ' ')\r\n}\r\n\r\n// url 编码\r\n$.urlEncode = (a) => {\r\n return a == null ? '' : encodeURIComponent(typeof a === 'object' ? JSON.stringify(a) : a)\r\n}\r\n \r\n// url 解码\r\n$.urlDecode = (a) => {\r\n return a == null ? '' : decodeURIComponent(a.replace(/\\+/g, ' '))\r\n}\r\n// 替换带$变量的url,如 \"a.sp?id=$0\" /@a -> url, b -> array/object\r\n$.urlFormat = (a, ...args) => {\r\n args.forEach((v, i) => v != null && (a = $.strFormat(a, v, true, i < args.length - 1)))\r\n return a\r\n}\r\n$.urlParam = function(a, b) {\r\n var r = a.split('#'),\r\n u = r[0],\r\n h = r[1];\r\n if (typeof b === 'string') {\r\n return b === '#' ? (h || '') : $.urlDecode((u.match(new RegExp('[\\\\?&]' + b + '=([^&]*)'), 'g') || A)[1]);\r\n } else if (b && typeof b === 'object') {\r\n for (var k in b) {\r\n if (k === '#') {\r\n h = b[k];\r\n } else {\r\n var c = $.urlEncode(b[k]),\r\n d = new RegExp('\\\\b' + k + '=[^&]*');\r\n u = d.test(u) ? u.replace(d, k + '=' + c) : u + (u.indexOf('?') < 0 ? '?' : '&') + k + '=' + c;\r\n }\r\n }\r\n } else if (arguments.length === 1) {\r\n var r = {},\r\n c = u.split('?');\r\n c = c[c.length - 1];\r\n\r\n if (c) {\r\n c = c.split('&');\r\n for (var d = 0, e, f, g; d < c.length; d++) {\r\n e = c[d].indexOf('=');\r\n if (e == -1) continue;\r\n f = c[d].substring(0, e);\r\n g = c[d].substring(e + 1);\r\n r[f] = $.urlDecode(g.replace(/\\+/g, ' '));\r\n }\r\n }\r\n return r\r\n }\r\n return u + (h ? '#' + h : '')\r\n}\r\n// 把相对路径url和baseURL拼接为完整地址\r\n$.urlServer = function(src, ...args) {\r\n if (!src) return\r\n if (!(src.startsWith('http://') || src.startsWith('https://'))) {\r\n let b = lodash.get($.x, 'http.baseURL')\r\n if (b) {\r\n src = b + (b.endsWith('/') ? '' : '/') + src\r\n }\r\n }\r\n return $.strFormat(src, ...args)\r\n}\r\n\r\n$.urlComplete = function(a) {\r\n\tif (a.indexOf('data:') !== 0) {\r\n\t\ta = $.urlServer(a)\r\n let r = lodash.get($.x, 'http.params')\r\n\t\tr && (a = $.urlParam(a, r))\r\n\t}\r\n\treturn a\r\n},\r\n\t// @a -> src, b -> options\r\n$.download = function(a, b) {\r\n a = $.urlComplete(a)\r\n\tif (br.app) {\r\n\t\t$.wifiConfirm(function() {\r\n\t\t\tlet dtask = plus.downloader.createDownload(a, b)\r\n\t\t\tplus.nativeUI.showWaiting()\r\n\t\t\tdtask.addEventListener(\"statechanged\", function(task, status) {\r\n\t\t\t\tswitch (task.state) {\r\n\t\t\t\t\tcase 1: // 开始\r\n\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_start)\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t\tcase 4: // 下载完成\r\n\t\t\t\t\t\tif (status == 200) {\r\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_complete)\r\n\t\t\t\t\t\t\tplus.runtime.openFile(task.filename, {}, function(e) {\r\n\t\t\t\t\t\t\t\tplus.nativeUI.alert($.loc.download_cannotopen)\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tplus.nativeUI.toast($.loc.download_fail + status)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tplus.nativeUI.closeWaiting()\r\n\t\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\tdtask.start()\r\n\t\t})\r\n\t} else {\r\n\t\tlet link = document.createElement('a')\r\n //link.download = true\r\n link.href = a\r\n if ($.x.downloadTarget) {\r\n link.target = $.x.downloadTarget\r\n }\r\n link.click()\r\n link.remove()\r\n\t}\r\n}\r\n\r\n\r\n$.wifiConfirm = (a, b) => {\r\n if ($.x.wifiConfirm && plus.networkinfo.getCurrentType() != 3) {\r\n plus.nativeUI.confirm($.loc.connection_not_wifi, function(e){e.index === 0 && a.call(b)}, {buttons:[$.loc.confirm, $.loc.cancel]})\r\n } else {\r\n a.call(b)\r\n }\r\n}\r\n\r\n$.vm = $.view = (a) => {\r\n if (!a) return $.docView\r\n if (typeof a === 'string') {\r\n if ($.vueMap.has(a)) {\r\n a = $.vueMap.get(a)\r\n if (a.isView) return a\r\n }\r\n }\r\n a = $(a)\r\n if (a == null) return\r\n return a.isView ? a : a.ownerView\r\n}\r\n\r\n$.close = (a) => {\r\n let d = $.dialog(a)\r\n d && d.close()\r\n}\r\n\r\n$.closePopup = () => {\r\n document.dispatchEvent(new Event('mousedown'))\r\n}\r\n\r\n$.previewVideo = function(src) {\r\n $.vm().previewVideo($.urlServer(src))\r\n}\r\n\t// @img -> image array, options -> {current:i,loop:true,indicator: 'number'}\r\n$.previewImage = function(imgs, options) {\r\n imgs = $.array(imgs).map(v => $.urlServer(v))\r\n\tif (br.app) {\r\n\t\tplus.nativeUI.previewImage(imgs, options)\r\n\t} else {\r\n $.vm().previewImage(imgs, options)\r\n\t}\r\n}\r\n\r\n$.slotsChildren = function(slots, name = 'default') {\r\n let r = []\r\n const getChildren = (d) => {\r\n d && d.forEach(v => {\r\n if (typeof v.type === 'symbol') {\r\n if (Array.isArray(v.children)) {\r\n getChildren(v.children)\r\n } else if (v.type.toString() === 'Symbol(v-txt)') {\r\n r.push(v)\r\n }\r\n } else\r\n r.push(v)\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n$.hasChild = function(slots, name = 'default') {\r\n let r = false\r\n const getChildren = (d) => {\r\n lodash.forEach(d, v => {\r\n if (typeof v.type === 'symbol') {\r\n Array.isArray(v.children) && getChildren(v.children)\r\n } else {\r\n return !(r = true)\r\n }\r\n })\r\n }\r\n getChildren(slots[name] && slots[name]())\r\n return r\r\n}\r\n\r\n// @fn(得到0-1的参数), ms -> milliseconds, count -> 帧数\r\n$.ease = function(fn, ms, count) {\r\n\tfn(0)\r\n\tif (ms == null)\r\n\t\tms = 200\r\n\tif (count == null)\r\n\t\tcount = Math.ceil(ms / 10)\r\n\tlet p = Math.ceil(ms / count)\r\n\tlet\tcr = 0\r\n\tlet d1 = new Date().getTime()\r\n\tlet it = setInterval(function() {\r\n\t\t\tlet d2 = new Date().getTime()\r\n\t\t\tlet ri = d2 - d1\r\n\t\t\tlet st = Math.floor(ri / p)\r\n\t\t\tif (cr != st) {\r\n\t\t\t\tif (st < count) {\r\n\t\t\t\t\tfn((- Math.cos((st / count) * Math.PI) / 2) + 0.5)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tclearInterval(it)\r\n\t\t\t\t\tfn(1)\r\n\t\t\t\t}\r\n\t\t\t\tcr = st\r\n\t\t\t}\r\n\t\t}, Math.max(p - 10, 5))\r\n\treturn it\r\n},\r\n\r\n// @a -> widget|HTMLElement, y -> {print: T/F(是否打印), head: \"head标签\", input2text: T/F(把表单值转为文本)\r\n$.print = function(a, y) {\r\n\t\tlet d = $.el(a), w = d.ownerDocument, b = $.q('link[media=print]', w), c = [];\r\n y = y || {};\r\n\t\t$.q('meta', w).each(function() {c.push(this.outerHTML)});\r\n\t\t(b.length > 0 ? b : $.q('link', w)).each(function() {c.push('<link rel=\"stylesheet\" type=\"text/css\" href=\"' + this.getAttribute('href') + '\"/>');});\r\n\t\t$.q('style', w).each(function() {c.push(this.outerHTML)});\r\n\t\tlet s = d.outerHTML;\r\n\t\ts = s.replace(/<div[^>]+w-scroll[^>]+>/gi, function($0) {return $0.replace(/height: \\w+/gi, '');});\r\n\t\t$.q(':text,:password,textarea,select', d).each(function() {\r\n\t\t\tlet h = this.outerHTML, v, r;\r\n\t\t\tif (y.input2text) {\r\n\t\t\t\tlet g = $(this), w = 'auto';\r\n\t\t\t\tif (g && g.isFormWidget) {\r\n\t\t\t\t\th = g.el('form').outerHTML;\r\n\t\t\t\t\tv = g.formText();\r\n\t\t\t\t} else\r\n\t\t\t\t\tv = this.value;\r\n\t\t\t\tv = '<div class=\"f-oh w-input-s\">' + v + '</div>';\r\n\t\t\t} else {\r\n\t\t\t\tv = h.replace('value=\"' + this.defaultValue + '\"', () => 'value=\"' + this.value + '\"');\r\n\t\t\t}\r\n\t\t\ts = s.replace(h, () => v + (r || ''));\r\n\t\t});\r\n\t\t$.q(':radio,:checkbox', d).each(function() {\r\n\t\t\tif (y.input2text) {\r\n\t\t\t\tlet g = $(this);\r\n\t\t\t\tif (g && g.isFormWidget) {\r\n\t\t\t\t\ts = s.replace(g.el().outerHTML, () => g.isChecked ? '<div class=\"f-wdbr\">' + g.text + '</div>' : '');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tlet h = this.outerHTML, n = h.replace(/ checked=\"\"/, '');\r\n\t\t\t\tif (this.checked)\r\n\t\t\t\t\tn = n.replace(/>$/, ' checked>');\r\n\t\t\t\ts = s.replace(h, n);\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (y.input2text) {\r\n\t\t\t$.q('input[type=hidden]', d).each(function() {\r\n\t\t\t\tvar g = $(this);\r\n\t\t\t\tif (g && g.isFormWidget && g.$options.name != 'w-hidden') {\r\n\t\t\t\t\ts = s.replace(g.el('form').outerHTML, () => '<div class=\"f-wdbr f-print-input-text\">' + g.formText() + '</div>');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t$.q('.w-input-placeholder', d).each(function() {\r\n\t\t\ts = s.replace(this.outerHTML, '');\r\n\t\t});\r\n const printf = function() {\r\n \tlet w = window.frames.wPrintFrame;\r\n \tif (!w) {\r\n \t\t$.q('<div class=f-none><iframe name=wPrintFrame></iframe></div>').appendTo(document.body);\r\n \t\tw = window.frames.wPrintFrame;\r\n \t}\r\n \treturn w;\r\n }\r\n w = y.print !== false ? printf() : window.open();\r\n\t\td = w.document;\r\n\t\td.open('text/html', 'replace');\r\n\t\td.write('<!doctype html><html class=f-print><head><meta charset=utf-8><title>' + $.loc.print_preview +\r\n\t\t\t'</title><style>.f-print .w-f-remark{height:auto;line-height:inherit}.f-print-input-text{line-height: var(--w-label-min-height);}.w-input{display: flex!important;}.w-input-s{word-break:normal;white-space:normal}.w-input-s:empty:before{content:\"\\xa0\"}</style><script>var $={e:function(){}}</script>' + c.join('') +\r\n\t\t\t(y.head || '') + '</head><body><div class=x-print>' + s + '</div>' +\r\n\t\t\t(y.print !== false ? '<script>window.print();window.close()</script>' : '') +\r\n\t\t\t'</body></html>');\r\n\t\td.close();\r\n\t\treturn d;\r\n\t}\r\n\r\n\r\nconst queryEncode = function(data, config) {\r\n if (!data || data instanceof FormData) return data\r\n let contentType = $.lodash.get(config, 'headers[\"Content-Type\"]') || $.lodash.get($.x, 'http.headers.post[\"Content-Type\"]')\r\n return contentType == 'application/x-www-form-urlencoded' ? Qs.stringify(data, {arrayFormat: 'repeat'}) : data\r\n}\r\n\r\n$.ajax = async function(cmd, args) {\r\n let src = args ? $.urlFormat(cmd.src, args) : cmd.src\r\n if (!src && !cmd.request) {\r\n return Promise.reject('$.ajax(): The first parameter must be an object, and the property(src) of the object is required.')\r\n }\r\n let config = $.lodash.pick(cmd, ['headers', 'responseType', 'transformRequest', 'transformResponse', 'timeout', 'cancelToken'])\r\n if (cmd.download) {\r\n $.extend(config, {responseType: 'blob'})\r\n }\r\n\tif (cmd.request) {\r\n\t\treturn cmd.request(cmd.data)\r\n\t} else {\r\n\t\tlet method = (cmd.method || (cmd.data ? 'post' : 'get')).toLowerCase()\r\n\t\treturn (method === 'post' || method === 'put' || method === 'patch' ? $.http[method](src, queryEncode(cmd.data, config), config) : $.http[method](src, config))\r\n\t\t\t.then(res => {\r\n\t\t let data = res.data\r\n\t\t if (cmd.filter) data = cmd.filter(res)\r\n\t\t if (cmd.success) cmd.success(data)\r\n\t\t if (cmd.complete) cmd.complete(res)\r\n\t\t if (cmd.download) {\r\n\t\t let disposition = res.headers['content-disposition']\r\n\t\t if (disposition) {\r\n\t\t let fileName = decodeURI(disposition.substring(disposition.indexOf('filename=') + 9, disposition.length))\r\n\t\t let blob = new Blob([res.data])\r\n\t\t let link = document.createElement('a')\r\n\t\t link.href = URL.createObjectURL(blob)\r\n\t\t link.download = fileName\r\n\t\t link.click()\r\n\t\t link.remove()\r\n\t\t } else {\r\n\t\t console.error('download: none content-disposition')\r\n\t\t }\r\n\t\t }\r\n\t\t return data\r\n\t\t }).catch(ex => {\r\n\t\t if (cmd.error) cmd.error(ex)\r\n\t\t if (cmd.complete) cmd.complete(ex.response, ex)\r\n\t\t return Promise.reject(ex)\r\n\t\t })\r\n\t}\r\n}\r\n\r\n$.extend($.ajax, {\r\n get(src, config) {\r\n return $.http.get(src, config).then(res => res && res.data)\r\n },\r\n\thead(src, config) {\r\n\t return $.http.head(src, config)\r\n\t},\r\n\tdelete(src, config) {\r\n\t return $.http.delete(src, config).then(res => res && res.data)\r\n\t},\r\n post(src, data, config) {\r\n return $.http.post(src, queryEncode(data, config), config).then(res => res && res.data)\r\n },\r\n\tput(src, data, config) {\r\n\t return $.http.put(src, queryEncode(data, config), config).then(res => res && res.data)\r\n\t},\r\n\tpatch(src, data, config) {\r\n\t return $.http.patch(src, queryEncode(data, config), config).then(res => res && res.data)\r\n\t},\r\n}, http)\r\n\r\n$.alert = function(text, position, timeout, yes) {\r\n return $.docView.pop('w-alert', typeof text === 'object' ? {title: $.loc.opertip, ...text} : {\r\n title: $.loc.opertip, text, position, timeout, yes\r\n })\r\n}\r\n\r\n$.confirm = function(text, yes, no, cover=true) {\r\n return $.docView.pop('w-confirm', typeof text === 'object' ? {title: $.loc.opertip, ...text} : {\r\n title: $.loc.opertip, text, yes, no, cover\r\n })\r\n}\r\n\r\n$.dialog = (a) => {\r\n if (!a) return\r\n a = $.vm(a)\r\n while (a && !a.isDialog) a = a.ownerView\r\n return a\r\n}\r\n\r\n$.config = function(opt) {\r\n $.config_uid = uid() //读取默认配置的地方有缓存,根据这个uid来判断是否刷新缓存\r\n $.mergeDeep($.x, opt)\r\n if (opt.http) {\r\n $.mergeDeep(http.defaults, opt.http)\r\n http.interceptors.response.use(\r\n opt.http.filter,\r\n opt.http.error || function(ex) {\r\n if (ex.response) {\r\n ex.callback = () => $.alert({icon: '.f-i .f-i-alert-warning', text: (ex.response.status) + ': ' + ex.config.url})\r\n }\r\n return Promise.reject(ex)\r\n }\r\n )\r\n }\r\n const _dfopt = $.x.defaultOptions\r\n const _dfcls = {}\r\n for (let k in _dfopt) {\r\n if (k.includes('.')) {\r\n let a = $.strFrom(k, '.').replace(/\\./g, ' ')\r\n let b = $.strTo(k, '.');\r\n ($.dfclsCache[b] || ($.dfclsCache[b] = {}))[a] = _dfopt[k]\r\n }\r\n }\r\n}\r\n\r\n$.pop = (template, props, target, mode) => {\r\n return (target ? $(target) : $.vm()).pop(template, props, {mode})\r\n}\r\n\r\n$.submit = (request, options = {}) => {\r\n const commander = $(options.target) || $.vm()\r\n return commander.submit(request, options)\r\n}\r\n\r\n$.symbol = {\r\n leafSymbol: Symbol('leaf')\r\n}\r\n\r\nwindow.addEventListener('unhandledrejection', (event) => {\r\n if ($.x.catchReject) {\r\n $.x.catchReject(event)\r\n } else {\r\n if (event.reason) {\r\n if (event.reason.callback)\r\n event.reason.callback()\r\n else if (typeof event.reason === 'string')\r\n console.error(event.reason)\r\n }\r\n event.preventDefault()\r\n }\r\n})\r\n\r\nexport default $\r\n","// 实现指令 v-form-ignore=\"true\"\r\n// 不提交不验证当前范围内的表单\r\n\r\nfunction formIgnore(el, bind) {\r\n bind.value ? el.setAttribute('w-form-ignore', '') : el.removeAttribute('w-form-ignore')\r\n}\r\n\r\nexport default {\r\n created: formIgnore,\r\n updated: formIgnore,\r\n}\r\n","// 实现指令 v-dialog-move=\"true\"\r\n// 使对话框可拖动\r\n\r\nimport $ from '../dfish.js'\r\n\r\nfunction onmousedown(e) {\r\n let o = $.dialog(e.currentTarget)\r\n if (o) {\r\n if (o.x.movable !== false && !o.x.fullScreen) {\r\n let d = o.el()\r\n let sl = d.style.left\r\n let sr = d.style.right\r\n let st = d.style.top\r\n let sb = d.style.bottom\r\n let b = sb ? -1 : 1\r\n let r = sr ? -1 : 1\r\n let v = b < 0 ? 'bottom' : 'top'\r\n let h = r < 0 ? 'right' : 'left'\r\n let x = e.clientX\r\n let y = e.clientY\r\n let t = $.number(b < 0 ? sb : st)\r\n let l = $.number(r < 0 ? sr : sl)\r\n let m\r\n let n = document.documentElement.clientHeight\r\n let w = document.documentElement.clientWidth\r\n $.moveup(function(e) {\r\n\t\t\t\tif (!m) {\r\n\t\t\t\t\tm = $.q('<div class=w-dialog-move-helper></div>').appendTo(document.body)\r\n\t\t\t\t\to.el().style.transition = 'none'\r\n\t\t\t\t}\r\n let cx = $.numRange(e.clientX, 0, w)\r\n let cy = $.numRange(e.clientY, 0, n)\r\n o.setPosition({[v]: (t + b * (cy - y)) + 'px', [h]: (l + r * (cx - x)) + 'px'})\r\n }, function(e, moved) {\r\n moved && m && m.remove()\r\n\t\t\t\to.el().style.transition = ''\r\n }, e)\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n mounted(el, bind) {\r\n bind.value && el.addEventListener('mousedown', onmousedown)\r\n },\r\n unmounted(el) {\r\n el.removeEventListener('mousedown', onmousedown)\r\n }\r\n}","// 实现指令 v-label-width=\"100\"\r\n// 设定\r\nimport $ from '../dfish.js'\r\n\r\nfunction labelWidth(el, bind) {\r\n el.style.setProperty('--v-label-width', $.unitSize(bind.value))\r\n}\r\n\r\nexport default {\r\n created: labelWidth,\r\n updated: labelWidth,\r\n}\r\n","import formIgnore from './form-ignore.js'\r\nimport dialogMove from './dialog-move.js'\r\nimport labelWidth from './label-width.js'\r\n\r\nexport default function(Vue) {\r\n Vue.directive('form-ignore', formIgnore)\r\n Vue.directive('dialog-move', dialogMove)\r\n Vue.directive('label-width', labelWidth)\r\n}","<script>\r\n import $ from '../dfish.js'\r\n import {h, mergeProps, nextTick} from 'vue'\r\n\r\n const bindCache = {}\r\n\r\n export default {\r\n props: ['data', 'width', 'height', 'colspan', 'rowspan', 'ownproperty', 'orientUid'],\r\n data() {\r\n return {\r\n isWidget: true,\r\n uid: this.orientUid || $.uid(),\r\n runtimeX: {},\r\n }\r\n },\r\n created() {\r\n $.vueMap.set(this.uid, this)\r\n let dftX = this.getDefaultProp()\r\n let cuid = $.config_uid\r\n let watchs = {}\r\n this.x = new Proxy(this.runtimeX, {\r\n get: (obj, prop) => {\r\n if (prop in obj) return obj[prop]\r\n if (this.$props[prop] !== undefined) return this.$props[prop]\r\n if (cuid != $.config_uid) {\r\n cuid = $.config_uid\r\n dftX = this.getDefaultProp()\r\n }\r\n return dftX[prop]\r\n },\r\n set: (obj, prop, newval) => {\r\n if (!watchs[prop]) {\r\n watchs[prop] = this.$watch(prop, (v) => obj[prop] = v)\r\n }\r\n obj[prop] = newval\r\n return true\r\n }\r\n })\r\n },\r\n unmounted() {\r\n $.vueMap.delete(this.uid)\r\n },\r\n methods: {\r\n x_default() {\r\n //implement\r\n },\r\n getDefaultProp() {\r\n let dftopt\r\n if (!this.ownproperty) {\r\n let b = this.$options.name\r\n dftopt = $.x.defaultOptions[b]\r\n if ($.dfclsCache[b]) {\r\n let c = this.$options.name + (this.$attrs.class ? ' ' + this.$attrs.class : '')\r\n let d = $.dfclsCache[b]\r\n let z\r\n for (let k in d) {\r\n $.idsAll(c, k, ' ') && $.mergeDeep(z || (z = {}), d[k])\r\n }\r\n z && (dftopt = $.extendDeep(z, dftopt))\r\n }\r\n }\r\n return {\r\n ...this.x_default(),\r\n ...dftopt,\r\n }\r\n },\r\n\t\t\tattr(name, value) {\r\n\t\t\t\tif (arguments.length == 2) {\r\n\t\t\t\t\tthis.x[name] = value\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.x[name]\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tajax(cmd) {\r\n this.ajaxLock && this.ajaxLock()\r\n\t\t\t\treturn $.ajax(cmd).then((res) => {\r\n this.ajaxLock && this.ajaxLock(false)\r\n return res\r\n })\r\n\t\t\t},\r\n\t\t\tsubmit(request, cmd) {\r\n\t\t\t\tif (typeof request === 'object') {\r\n\t\t\t\t\tcmd = request\r\n\t\t\t\t\trequest = null\r\n\t\t\t\t}\r\n\t\t\t\tif (!cmd) {\r\n\t\t\t\t\tcmd = {}\r\n\t\t\t\t}\r\n\t\t\t\tif (request) {\r\n\t\t\t\t\tcmd.request = request\r\n\t\t\t\t}\r\n return new Promise(async (resolve) => {\r\n await nextTick()\r\n const vm = $.vm(this)\r\n this.ajaxLock && this.ajaxLock()\r\n let isValid = await vm.valid(cmd.range, cmd.group)\r\n if (isValid) {\r\n let post = vm.getPostData(cmd.range)\r\n cmd.data = cmd.data && post ? $.extend({}, cmd.data, post) : (cmd.data || post)\r\n \tresolve(this.ajax(cmd))\r\n } else {\r\n this.ajaxLock && this.ajaxLock(false)\r\n }\r\n })\r\n\t\t\t},\r\n\t\t\tpop(template, props, options) {\r\n return $.vm(this).createPop(this, template, props, options)\r\n\t\t\t},\r\n closePop(template) {\r\n const vm = $.vm(this)\r\n vm.getPops(template).forEach(p => vm.removePop(p))\r\n },\r\n trigger(ev, ...args) {\r\n let type = ev.runType || ev.type || ev\r\n let f = this.getOn(type)\r\n if (f) {\r\n if (typeof ev === 'string') {\r\n ev = {type, uid: this.uid}\r\n }\r\n if (Array.isArray(f)) f.forEach(n => n(ev, ...args))\r\n else f(ev, ...args)\r\n }\r\n },\r\n getOn(type) {\r\n let n = 'on' + type.charAt(0).toUpperCase() + type.slice(1)\r\n return (this.$.vnode.props && this.$.vnode.props[n]) || this.x[n]\r\n },\r\n getKey() {\r\n return this.$.vnode.key\r\n },\r\n closest(target, range) {\r\n let p = this\r\n const t = typeof target\r\n do {\r\n if (t === 'string') {\r\n if ($.idsAny(target, p.$options.name))\r\n return p\r\n } else if (t === 'function') {\r\n if (target(p))\r\n return p\r\n }\r\n\t\t\t\t\tif (p.isDialog || p == range) return\r\n } while (p = p.$parent)\r\n },\r\n contains(a) {\r\n return a && this.el() && this.el().contains(a.isWidget ? a.el() : a)\r\n },\r\n el(a) {\r\n\t\t\t\tif (a && /\\W/.test(a)) {\r\n\t\t\t\t\tconst o = this.el()\r\n\t\t\t\t\treturn o && $.q(a, o)[0]\r\n\t\t\t\t}\r\n return document.getElementById(this.uid + (a || ''))\r\n },\r\n createEvent(name, data) {\r\n let e = new CustomEvent(name)\r\n e.value = data\r\n e.uid = this.uid\r\n return e\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n scrollIntoView(opt = false) {\r\n const next = (dir, fn) => {\r\n let c = 'hasScroll' + dir.toUpperCase()\r\n let t = this.closest(p => p[c] && (p.scrollState() || false)[dir])\r\n if (t) {\r\n t.scrollTo(this, opt.hasOwnProperty('y') ? opt.y : 'auto', opt.x, opt.ease == null ? 200 : opt.ease, opt.divide, fn)\r\n } else\r\n fn && fn()\r\n }\r\n next('y', () => next('x', opt.success))\r\n },\r\n hasBubble(a) {\r\n if (!a) return false\r\n if (this.contains(a)) return true\r\n let d = $.dialog(a)\r\n if (d && d.commander) return d.commander === a ? true : this.hasBubble(d.commander)\r\n },\r\n bind(name, fn) {\r\n let c = bindCache[this.uid] || (bindCache[this.uid] = {})\r\n if (!c[name]) c[name] = fn || this[name]\r\n return c[name]\r\n },\r\n slots_children(name) {\r\n return $.slotsChildren(this.$slots, name)\r\n },\r\n slot(name = 'default') {\r\n return this.$slots[name] ? this.$slots[name]() : []\r\n },\r\n\t\t\thtml_icon(src, cls, onclick) {\r\n\t\t\t const font = src.startsWith('.') && !src.includes('/')\r\n\t\t\t\tconst scopeId = this.$.vnode.scopeId || ''\r\n\t\t\t return font ? h('i', {\r\n\t\t\t\t\t[`${scopeId}`]: '',\r\n\t\t\t class: [cls, src.replace(/\\./g, '')],\r\n\t\t\t onclick,\r\n\t\t\t }) : h('img', {\r\n\t\t\t src,\r\n\t\t\t onclick,\r\n\t\t\t class: cls,\r\n\t\t\t\t\t[`${scopeId}`]: ''\r\n\t\t\t })\r\n\t\t\t},\r\n html_slots() {\r\n return this.$slots\r\n },\r\n html_self(a) {\r\n return h(this.tagName || 'div', a ? mergeProps(this.html_attrs, this.html_props, this.$attrs) : mergeProps(this\r\n .html_attrs, this.html_props), this.html_slots())\r\n },\r\n html() {\r\n return this.html_self()\r\n }\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n ownerView() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n pubParent() {\r\n return this.providePubParent && $.idsAny(this.$options.pubParentName, this.providePubParent.$options.name) &&\r\n this.providePubParent\r\n },\r\n parentNode() {\r\n return $(this.el().parentElement)\r\n },\r\n tagName() {\r\n return 'div'\r\n },\r\n html_attrs() {\r\n return {\r\n id: this.uid,\r\n class: [this.$options.name, this.html_class],\r\n style: [{\r\n width: this.x.width && $.unitSize(this.x.width),\r\n height: this.x.height && $.unitSize(this.x.height),\r\n '--w-grid-colspan': !this.x.colspan || this.x.colspan == -1 ? null : `span ${this.x.colspan}`,\r\n '--w-grid-rowspan': !this.x.rowspan || this.x.rowspan == -1 ? null : `span ${this.x.rowspan}`,\r\n }, this.html_style],\r\n 'w-key': this.getKey(),\r\n 'w-width': this.x.width === '*' ? '*' : null,\r\n 'w-height': this.x.height === '*' ? '*' : null,\r\n }\r\n },\r\n html_style() {\r\n // implements\r\n },\r\n html_class() {\r\n // implements\r\n },\r\n html_props() {\r\n // implements\r\n },\r\n html_binds() {\r\n return mergeProps(this.html_attrs, this.html_props, this.$attrs)\r\n }\r\n },\r\n render() {\r\n return this.html()\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['src', 'children', 'parentItem'],\r\n data() {\r\n return {\r\n loading: false,\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n getSrc() {\r\n return (this.x || this.$props).src\r\n },\r\n request(fn) {\r\n let src = this.getSrc()\r\n if (src && !this.loading) {\r\n this.showLoading(true)\r\n if (typeof src === 'function') {\r\n return src(this).then(res => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n fn && fn()\r\n }).catch(ex => {\r\n this.showLoading(false)\r\n this.loaded = true\r\n })\r\n }\r\n }\r\n },\r\n showLoading(a) {\r\n this.loading = a\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n\timport {h, toRaw, markRaw, mergeProps, resolveComponent} from 'vue'\r\n import WidgetAbs from './WidgetAbs.vue'\r\n import SrcParent from './SrcParent.vue'\r\n\t\r\n export default {\r\n name: 'w-view',\r\n mixins: [SrcParent],\r\n provide() {\r\n return {\r\n provideView: this\r\n }\r\n },\r\n props: ['commands'],\r\n data() {\r\n return {\r\n isView: true,\r\n pops: [],\r\n }\r\n },\r\n beforeCreate() {\r\n this.popCommanders = {}\r\n },\r\n methods: {\r\n find(a) {\r\n const b = this.el().querySelectorAll(`[w-key=\"${a}\"]`)\r\n for (let c of b) {\r\n if ((c = $(c)) && c.ownerView === this) return c\r\n }\r\n },\r\n fv(a, b) {\r\n let d = this.f(a)\r\n if (arguments.length === 2) {\r\n d && (d.groupFormVal ? d.groupFormVal(b) : d.val(b))\r\n } else if (typeof a === 'object') {\r\n for (let i in a) this.fv(i, a[i])\r\n } else {\r\n return d && (d.groupFormVal ? d.groupFormVal() : d.formVal())\r\n }\r\n },\r\n f(a, b) {\r\n return this.fAll(a, b)[0]\r\n },\r\n // 获取范围内的所有表单 /@a -> name, b -> range?(elem|widget)\r\n fAll(a, b) {\r\n if (a === '*' || a == null) {\r\n for (var i = 0, q = this.getFormList(b, true), l = q.length, d, e, f = []; i < l; i++)\r\n (d = $(q[i])) && d != e && f.push(e = d);\r\n return f;\r\n }\r\n let dom = b ? (b.isWidget ? b.el() : b) : this.el()\r\n let r = $.q(':input[name=\"' + a + '\"]', dom)\r\n if (!r.length) r = $.q(':input[w-name=\"' + a + '\"]', dom)\r\n return $.lodash.map(r.not('[w-form-ignore] :input'), d => $(d))\r\n },\r\n // 获取所有表单,返回一个dom集合 /@ a -> range(widgetID, 可选,如果 range 以 !开头,表示排除), b -> 是否包含disabled的表单\r\n getFormList(a, b) {\r\n let r, f = ':input:not(button)' + (b ? '' : ':not(:disabled)')\r\n if (a && typeof a === 'string') {\r\n let d = a.charAt(0) === '!'\r\n let e = a.replace(/\\!/g, '').split(',').map(v => `[w-key=\"${v}\"] ${f}`)\r\n if (e = e.join())\r\n r = $.q(d ? `${f}:not(${e})` : e, this.el())\r\n } else {\r\n r = $.q(f, Array.isArray(a) ? $.q(a.map(n => $.el(n))) : a ? $.el(a) : this.el())\r\n }\r\n return r ? $.lodash.map(r.not('[w-form-ignore] :input')) : []\r\n },\r\n // 获取提交数据 {name: value, ...} /@ a -> range [widgetID, 可选,如果 range 以 !开头,表示排除]\r\n getPostData(range) {\r\n let r = {}\r\n this.getFormList(range).forEach(a => {\r\n let d = a.name\r\n let v = a.value\r\n if (!d) return\r\n switch (a.type) {\r\n case 'text':\r\n let t = a.getAttribute('w-valuetype')\r\n if (t === 'number')\r\n v = v.replace(/[^\\d\\.-]/g, '')\r\n break\r\n case 'checkbox':\r\n if (!a.value || (!a.checked && !(a.indeterminate && a.getAttribute('w-partialsubmit'))))\r\n return null\r\n break\r\n case 'radio':\r\n if (!a.value || !a.checked)\r\n return null\r\n d = a.getAttribute('w-name') || d\r\n break;\r\n case 'select-one':\r\n if (a.selectedIndex < 0)\r\n return null;\r\n break;\r\n }\r\n v && (v = $.strTrim(v))\r\n if (d in r) {\r\n if (!Array.isArray(r[d]))\r\n r[d] = [r[d]]\r\n r[d].push(v)\r\n } else\r\n r[d] = v\r\n })\r\n return r\r\n },\r\n // 表单验证。如果检测到错误,将返回一个包含错误信息的数组 /@r -> range, n -> validate group name\r\n async getValidError(range) {\r\n let e, q = this.getFormList(range)\r\n const group = {}\r\n for (let i = 0, l = q.length, c, v; i < l; i++) {\r\n if ((c = $(q[i])) && c.isFormWidget) {\r\n if (q[i].name in group) {\r\n v = group[q[i].name] && $.extend({wid: c.uid}, group[q[i].name])\r\n } else {\r\n v = await c.getValidError()\r\n }\r\n if (v) {\r\n if (!e) e = []\r\n if (!e.find(n => n.wid == v.wid)) e.push(v)\r\n }\r\n }\r\n // checkbox 和 radio 只需验证一个\r\n if (q[i].type === 'checkbox' || q[i].type === 'radio') {\r\n group[q[i].name] = v\r\n }\r\n }\r\n return e\r\n },\r\n // 表单验证。验证通过返回true /@ range -> validaterange\r\n async valid(range) {\r\n if (this._err_ns) {\r\n this._err_ns.forEach(v => {\r\n const wg = $.vueMap.get(v.wid)\r\n wg && wg.warn(false)\r\n })\r\n }\r\n let e = await this.getValidError(range)\r\n if (e) {\r\n e.forEach(v => $.vueMap.get(v.wid).warn())\r\n $.vueMap.get(e[0].wid).showErrorTip(e[0].text)\r\n }\r\n return !(this._err_ns = e)\r\n },\r\n // @range -> 范围, original -> (设置为true,检测表单是否有修改,对照的值为初始值)\r\n isModified(range, original) {\r\n return this.getFormList(range).find(o => (o = $(o)).isModified && o.isModified(original))\r\n },\r\n // @range -> 范围, original -> (设置为true,设置为true,修改初始值)\r\n saveModified(range, original) {\r\n this.getFormList(range).forEach(o => (o = $(o)).saveModified && o.saveModified(original))\r\n },\r\n resetFormStyle(range) {\r\n this.getFormList(range).forEach(f => {\r\n const c = $(f)\r\n c.warn && c.warn(false)\r\n })\r\n },\r\n resetForm(range, empty) {\r\n this.getFormList(range).forEach(f => {\r\n const c = $(f)\r\n c.reset && c.reset(empty)\r\n })\r\n },\r\n showLoading(props) {\r\n\t\t\t\tif (props === false) {\r\n\t\t\t\t\tthis.pop('w-loading', false)\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.pop('w-loading', {cover: true, local: true, ...props})\r\n\t\t\t\t}\r\n },\r\n /*\r\n @options: {\r\n mode: {\r\n 'multiple': 默认值,一个template可以多个实例\r\n 'single': 一个template只有一个实例,且每次都是新实例\r\n 'component': 一个template只有一个实例\r\n }\r\n }\r\n */\r\n createPop(commander, template, props, options = {}) {\r\n return new Promise((resolve, reject) => {\r\n const mode = options.mode || 'multiple'\r\n const pop = this.getPops(template)[0]\r\n if (pop) {\r\n if (mode === 'component') {\r\n Object.assign(pop, {props, options, resolve, reject})\r\n return\r\n } else if (mode === 'single') {\r\n let index = this.pops.indexOf(pop)\r\n this.pops.splice(index, 1)\r\n }\r\n } \r\n const orientUid = $.uid()\r\n this.pops.push({commander, template, props, options, orientUid, resolve, reject})\r\n })\r\n },\r\n removePop(p) {\r\n\t\t\t\tlet i = typeof p === 'string' ? this.pops.findIndex(v => v.orientUid == p) : this.pops.indexOf(p)\r\n\t\t\t\ti > -1 && this.pops.splice(i, 1)\r\n },\r\n\t\t\tgetPops(template, commander) {\r\n\t\t\t\treturn this.pops.filter(p => {\r\n\t\t\t\t\tif (template && toRaw(p.template) != toRaw(template)) return false\r\n\t\t\t\t\tif (commander && p.commander != commander) return false\r\n\t\t\t\t\treturn true\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\tgetPopById(uid) {\r\n\t\t\t\treturn this.pops.find(p => p.orientUid == uid)\r\n\t\t\t},\r\n html_pops() {\r\n return this.pops.map(({template, orientUid, props}) => {\r\n\t\t\t\t\tconst com = typeof template === 'string' ? resolveComponent(template) : toRaw(template)\r\n\t\t\t\t\treturn com && h(com, {key: orientUid, orientUid, ...props})\r\n\t\t\t\t})\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-view {\r\n position: relative;\r\n }\r\n\r\n</style>\r\n","<template>\r\n <svg style=\"display:none;width:0;height:0\" width=\"0\" height=\"0\" focusable=\"false\" aria-hidden=\"true\">\r\n <symbol id=\"f-svg-loading\" viewBox=\"0 0 50 50\">\r\n <path\r\n d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\"\r\n transform=\"rotate(86.9154 25 25)\">\r\n </path>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-1\" viewBox=\"0 0 50 50\">\r\n <circle cx=\"25\" cy=\"25\" r=\"20\" />\r\n </symbol>\r\n <symbol id=\"f-svg-loading-2\" viewBox=\"0 0 24 30\">\r\n <rect x=\"0\" y=\"8.66115\" width=\"4\" height=\"12.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"8\" y=\"6.16115\" width=\"4\" height=\"17.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"16\" y=\"6.33885\" width=\"4\" height=\"17.3223\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-3\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n d=\"M514.048 337.715a32 32 0 0 1-32-32V135.168a32 32 0 1 1 64 0v170.534a32 32 0 0 1-32 32z m-1.28 581.799a32 32 0 0 1-32-32V714.406a32 32 0 1 1 64 0v173.095a32 32 0 0 1-32 32zM305.011 543.347H135.744a32 32 0 0 1 0-64h169.267a32 32 0 0 1 0 64z m583.079 0H713.83a32 32 0 0 1 0-64h174.26a32 32 0 1 1 0 64zM245.978 806.4a32 32 0 0 1-22.656-54.669L342.643 632.32a32 32 0 0 1 45.325 45.325L268.646 796.979a31.898 31.898 0 0 1-22.668 9.344z m408.435-408.5a32 32 0 0 1-22.656-54.68l123.558-123.56a32 32 0 1 1 45.325 45.3L677.12 388.544a31.898 31.898 0 0 1-22.669 9.357z m121.523 411.06a31.885 31.885 0 0 1-22.669-9.344l-122.15-122.15a32 32 0 1 1 45.325-45.325l122.15 122.15a32 32 0 0 1-22.656 54.669zM364.672 397.632a31.923 31.923 0 0 1-22.669-9.344L221.273 267.52a32 32 0 1 1 45.325-45.325l120.73 120.743a32 32 0 0 1-22.656 54.668z m0 0\"\r\n p-id=\"4486\"></path>\r\n </symbol>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'w-svg-loading'\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-svg {\r\n width: 20px;\r\n height: 20px;\r\n fill: currentColor;\r\n }\r\n \r\n .f-svg use {\r\n stroke: currentColor;\r\n }\r\n \r\n .f-svg-loading {\r\n animation: f-svg-key-rotate .6s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1 {\r\n animation: f-svg-key-rotate 1.5s linear infinite;\r\n }\r\n \r\n .f-svg-loading-3 {\r\n animation: f-svg-key-rotate 2s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1>use {\r\n stroke: #777;\r\n stroke-width: 3;\r\n fill: none;\r\n animation: f-svg-key-dash 1.5s linear infinite;\r\n }\r\n\r\n @keyframes f-svg-key-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n\r\n @keyframes f-svg-key-dash {\r\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -40;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -120;\n }\r\n }\r\n</style>\r\n","<template>\r\n <svg style=\"display:none;width:0;height:0\" width=\"0\" height=\"0\" focusable=\"false\" aria-hidden=\"true\">\r\n <symbol id=\"f-svg-loading\" viewBox=\"0 0 50 50\">\r\n <path\r\n d=\"M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z\"\r\n transform=\"rotate(86.9154 25 25)\">\r\n </path>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-1\" viewBox=\"0 0 50 50\">\r\n <circle cx=\"25\" cy=\"25\" r=\"20\" />\r\n </symbol>\r\n <symbol id=\"f-svg-loading-2\" viewBox=\"0 0 24 30\">\r\n <rect x=\"0\" y=\"8.66115\" width=\"4\" height=\"12.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"8\" y=\"6.16115\" width=\"4\" height=\"17.6777\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.15s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n <rect x=\"16\" y=\"6.33885\" width=\"4\" height=\"17.3223\" opacity=\"0.2\">\r\n <animate attributeName=\"opacity\" values=\"0.2; 1; .2\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"height\" values=\"10; 20; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n <animate attributeName=\"y\" values=\"10; 5; 10\" begin=\"0.3s\" dur=\"0.6s\"\r\n repeatCount=\"indefinite\"></animate>\r\n </rect>\r\n </symbol>\r\n <symbol id=\"f-svg-loading-3\" viewBox=\"0 0 1024 1024\">\r\n <path\r\n d=\"M514.048 337.715a32 32 0 0 1-32-32V135.168a32 32 0 1 1 64 0v170.534a32 32 0 0 1-32 32z m-1.28 581.799a32 32 0 0 1-32-32V714.406a32 32 0 1 1 64 0v173.095a32 32 0 0 1-32 32zM305.011 543.347H135.744a32 32 0 0 1 0-64h169.267a32 32 0 0 1 0 64z m583.079 0H713.83a32 32 0 0 1 0-64h174.26a32 32 0 1 1 0 64zM245.978 806.4a32 32 0 0 1-22.656-54.669L342.643 632.32a32 32 0 0 1 45.325 45.325L268.646 796.979a31.898 31.898 0 0 1-22.668 9.344z m408.435-408.5a32 32 0 0 1-22.656-54.68l123.558-123.56a32 32 0 1 1 45.325 45.3L677.12 388.544a31.898 31.898 0 0 1-22.669 9.357z m121.523 411.06a31.885 31.885 0 0 1-22.669-9.344l-122.15-122.15a32 32 0 1 1 45.325-45.325l122.15 122.15a32 32 0 0 1-22.656 54.669zM364.672 397.632a31.923 31.923 0 0 1-22.669-9.344L221.273 267.52a32 32 0 1 1 45.325-45.325l120.73 120.743a32 32 0 0 1-22.656 54.668z m0 0\"\r\n p-id=\"4486\"></path>\r\n </symbol>\r\n </svg>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: 'w-svg-loading'\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-svg {\r\n width: 20px;\r\n height: 20px;\r\n fill: currentColor;\r\n }\r\n \r\n .f-svg use {\r\n stroke: currentColor;\r\n }\r\n \r\n .f-svg-loading {\r\n animation: f-svg-key-rotate .6s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1 {\r\n animation: f-svg-key-rotate 1.5s linear infinite;\r\n }\r\n \r\n .f-svg-loading-3 {\r\n animation: f-svg-key-rotate 2s linear infinite;\r\n }\r\n\r\n .f-svg-loading-1>use {\r\n stroke: #777;\r\n stroke-width: 3;\r\n fill: none;\r\n animation: f-svg-key-dash 1.5s linear infinite;\r\n }\r\n\r\n @keyframes f-svg-key-rotate {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n\r\n @keyframes f-svg-key-dash {\r\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -40;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -120;\n }\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-dialog-preview\" width=\"calc(100% - 100px)\" height=\"calc(100% - 100px)\" :ownproperty=\"true\" :cover=\"true\" :autoHide=\"true\">\r\n <template v-if=\"data.type=='image'\">\r\n <w-swiper ref=\"swiper\" class=\"f-height\" :current=\"current\" :arrow=\"data.imgs.length > 1\" :indicator-dots=\"data.imgs.length > 1\" duration=\"300\">\r\n <w-swiper-item v-for=\"(item,index) in data.imgs\" :key=\"index\">\r\n <div class=\"f-height f-rel f-oh\">\r\n <img class=\"_img\" :src=\"item\" />\r\n </div>\r\n </w-swiper-item>\r\n </w-swiper>\r\n <div class=_rotate>\r\n <a class=_l @click=\"rot(-1)\">{{loc.rotate_left}}</a>\r\n <span class=_s>|</span>\r\n <a class=_r @click=\"rot(1)\">{{loc.rotate_right}}</a>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <w-video class=\"f-height\" :src=\"data.src\"></w-video>\r\n </template>\r\n <div class=\"_dlg_x\" @click=\"close\"></div>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n return {\r\n rotate: {},\r\n current: $.lodash.get(this.data, 'options.current', 0),\r\n }\r\n },\r\n methods: {\r\n close() {\r\n $.close(this)\r\n },\r\n rot(a) {\r\n let n = this.$refs.swiper.focusIndex\r\n let r = this.rotate[n]\r\n if (r == null) {\r\n r = this.rotate[n] = 0\r\n }\r\n let d = this.$refs.swiper.getCurrentItem().el()\r\n let b = $.bcr(d)\r\n let w = b.width - 40\r\n let h = b.height - 80\r\n if (a > 0) {\r\n r += 90\r\n } else if (a < 0) {\r\n r -= 90\r\n }\r\n let t = (r / 90) % 2\r\n $.q('._img', d).css({\r\n transform: 'rotate(' + r + 'deg)',\r\n maxWidth: t ? h : w,\r\n maxHeight: t ? w : h,\r\n });\r\n this.rotate[n] = r\r\n }\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n },\r\n mounted() {\r\n \r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-dialog-preview\" width=\"calc(100% - 100px)\" height=\"calc(100% - 100px)\" :ownproperty=\"true\" :cover=\"true\" :autoHide=\"true\">\r\n <template v-if=\"data.type=='image'\">\r\n <w-swiper ref=\"swiper\" class=\"f-height\" :current=\"current\" :arrow=\"data.imgs.length > 1\" :indicator-dots=\"data.imgs.length > 1\" duration=\"300\">\r\n <w-swiper-item v-for=\"(item,index) in data.imgs\" :key=\"index\">\r\n <div class=\"f-height f-rel f-oh\">\r\n <img class=\"_img\" :src=\"item\" />\r\n </div>\r\n </w-swiper-item>\r\n </w-swiper>\r\n <div class=_rotate>\r\n <a class=_l @click=\"rot(-1)\">{{loc.rotate_left}}</a>\r\n <span class=_s>|</span>\r\n <a class=_r @click=\"rot(1)\">{{loc.rotate_right}}</a>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <w-video class=\"f-height\" :src=\"data.src\"></w-video>\r\n </template>\r\n <div class=\"_dlg_x\" @click=\"close\"></div>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n return {\r\n rotate: {},\r\n current: $.lodash.get(this.data, 'options.current', 0),\r\n }\r\n },\r\n methods: {\r\n close() {\r\n $.close(this)\r\n },\r\n rot(a) {\r\n let n = this.$refs.swiper.focusIndex\r\n let r = this.rotate[n]\r\n if (r == null) {\r\n r = this.rotate[n] = 0\r\n }\r\n let d = this.$refs.swiper.getCurrentItem().el()\r\n let b = $.bcr(d)\r\n let w = b.width - 40\r\n let h = b.height - 80\r\n if (a > 0) {\r\n r += 90\r\n } else if (a < 0) {\r\n r -= 90\r\n }\r\n let t = (r / 90) % 2\r\n $.q('._img', d).css({\r\n transform: 'rotate(' + r + 'deg)',\r\n maxWidth: t ? h : w,\r\n maxHeight: t ? w : h,\r\n });\r\n this.rotate[n] = r\r\n }\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n },\r\n mounted() {\r\n \r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-datesheet\">\r\n <w-buttonbar class=\"f-datesheet-bbr\" align=\"between\" height=\"52\" style=\"padding:0 10px\">\r\n <w-button text=\"取消\" @click=\"clickCancel\"></w-button>\r\n <w-button text=\"确定\" @click=\"clickOK\" face=\"primary\"></w-button>\r\n </w-buttonbar>\r\n <w-horizontal height=\"*\">\r\n <w-vertical width=\"*\" v-if=\"hasYear\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">年</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusYear\" :min-value=\"minYear\" :max-value=\"maxYear\" :keep-index=\"true\"\r\n :data=\"{mode: 'year'}\">\r\n <w-option v-for=\"y in yearList\" :key=\"y\" :value=\"y\" :text=\"y\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMonth\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">月</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMonth\" :min-value=\"minMonth\" :max-value=\"maxMonth\" :keep-index=\"true\"\r\n :data=\"{mode: 'month'}\">\r\n <w-option v-for=\"m in monthList\" :key=\"m\" :value=\"m\" :text=\"dfish.strPad(m+1)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasDate\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">日</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusDate\" :min-value=\"minDate\" :max-value=\"maxDate\" :keep-index=\"true\"\r\n :data=\"{mode: 'date'}\">\r\n <w-option v-for=\"d in dateList\" :key=\"d\" :value=\"d\" :text=\"dfish.strPad(d)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasHour\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">时</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusHour\" :min-value=\"minHour\" :max-value=\"maxHour\" :keep-index=\"true\">\r\n <w-option v-for=\"h in hourList\" :key=\"h\" :value=\"h\" :text=\"dfish.strPad(h)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMinute\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">分</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMinute\" :min-value=\"minMinute\" :max-value=\"maxMinute\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"i in minuteList\" :key=\"i\" :value=\"i\" :text=\"dfish.strPad(i)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasSecond\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">秒</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusSecond\" :min-value=\"minSecond\" :max-value=\"maxSecond\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"s in secondList\" :key=\"s\" :value=\"s\" :text=\"dfish.strPad(s)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasWeek\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">周</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusWeek\" :min-value=\"minWeek\" :max-value=\"maxWeek\" :keep-index=\"true\">\r\n <w-option v-for=\"w in weekList\" :key=\"w.value\" :value=\"w.value\" :text=\"w.text\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n </w-horizontal>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n let f = this.data.format || 'yyyy-MM-dd'\r\n let d = this.data && this.data.value ? $.dateParse(this.data.value, f) : new Date\r\n let nd = this.data && this.data.minValue && $.dateParse(this.data.minValue, f)\r\n let xd = this.data && this.data.maxValue && $.dateParse(this.data.maxValue, f)\r\n d = $.numRange(d, nd, xd)\r\n let focusYear = d.getFullYear()\r\n let focusWeek, weekFirst, weekLast\r\n if (f.includes('w')) {\r\n focusWeek = $.dateWeek(d)[1]\r\n weekFirst = $.dateWeekFirst(focusYear)\r\n weekLast = $.dateWeekLast(focusYear)\r\n }\r\n return {\r\n focusYear,\r\n focusMonth: d.getMonth(),\r\n focusDate: d.getDate(),\r\n focusHour: d.getHours(),\r\n focusMinute: d.getMinutes(),\r\n focusSecond: d.getSeconds(),\r\n startYear: $.numRange(d.getFullYear() - 30, nd && nd.getFullYear()),\r\n endYear: $.numRange(d.getFullYear() + 30, null, xd && xd.getFullYear()),\r\n monthDays: new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\r\n focusWeek,\r\n weekFirst,\r\n weekLast,\r\n minTime: nd,\r\n maxTime: xd,\r\n format: f\r\n }\r\n },\r\n watch: {\r\n focusYear(y) {\r\n if (y == this.yearList[0] && y > 1030) {\r\n this.startYear = $.numRange(this.startYear - 30, this.minYear)\r\n } else if (y == this.yearList.at(-1)) {\r\n this.endYear = $.numRange(this.endYear + 30, null, this.maxYear)\r\n }\r\n this.monthDays = new Date(y, this.focusMonth + 1, 0).getDate()\r\n if (this.hasWeek) {\r\n this.weekFirst = $.dateWeekFirst(y)\r\n this.weekLast = $.dateWeekLast(y)\r\n }\r\n },\r\n focusMonth(m) {\r\n this.monthDays = new Date(this.focusYear, m + 1, 0).getDate()\r\n }\r\n },\r\n methods: {\r\n weekText(w) {\r\n \r\n },\r\n clickCancel() {\r\n $.close(this)\r\n },\r\n clickOK() {\r\n if (this.data.success) {\r\n let d = this.hasWeek ? $.dateParse(`${this.focusYear}-${this.focusWeek}`, 'yyyy-ww') :\r\n new Date(this.focusYear, this.focusMonth, this.focusDate, this.focusHour, this.focusMinute, this.focusSecond)\r\n this.data.success($.dateFormat(d, this.format))\r\n }\r\n $.close(this)\r\n },\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n yearList() {\r\n return Array.from(Array(this.endYear - this.startYear + 1)).map((v, i) => this.startYear + i)\r\n },\r\n monthList() {\r\n return Array.from(Array(12)).map((v, i) => i)\r\n },\r\n dateList() {\r\n return Array.from(Array(this.monthDays)).map((v, i) => i + 1)\r\n },\r\n hourList() {\r\n return Array.from(Array(24)).map((v, i) => i)\r\n },\r\n minuteList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n secondList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n weekList() {\r\n let d = this.weekFirst[2]\r\n return Array.from(Array(this.weekLast[1])).map((v, i) => {\r\n let startDate = d\r\n let endDate = $.dateAdd(d, 'd', 6)\r\n d = $.dateAdd(d, 'd', 7)\r\n return {\r\n value: i + 1,\r\n text: `${$.strPad(i + 1)} (${$.dateFormat(startDate, 'MM.dd')} - ${$.dateFormat(endDate, 'MM.dd')})`,\r\n }\r\n })\r\n },\r\n hasYear() {\r\n return this.format.includes('y')\r\n },\r\n hasMonth() {\r\n return this.format.includes('M')\r\n },\r\n hasDate() {\r\n return this.format.includes('d')\r\n },\r\n hasHour() {\r\n return this.format.includes('H')\r\n },\r\n hasMinute() {\r\n return this.format.includes('m')\r\n },\r\n hasSecond() {\r\n return this.format.includes('s')\r\n },\r\n hasWeek() {\r\n return this.format.includes('w')\r\n },\r\n minYear() {\r\n return this.minTime && this.hasYear && this.minTime.getFullYear()\r\n },\r\n maxYear() {\r\n return this.maxTime && this.hasYear && this.maxTime.getFullYear()\r\n },\r\n minMonth() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && this.minTime.getMonth()\r\n },\r\n maxMonth() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && this.maxTime.getMonth()\r\n },\r\n minDate() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) && this.minTime.getDate()\r\n },\r\n maxDate() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) && this.maxTime.getDate()\r\n },\r\n minHour() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && this.minTime.getHours()\r\n },\r\n maxHour() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && this.maxTime.getHours()\r\n },\r\n minMinute() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && this\r\n .minTime.getMinutes()\r\n },\r\n maxMinute() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && this\r\n .maxTime.getMinutes()\r\n },\r\n minSecond() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && (!\r\n this.hasMinute || this.minMinute == this.focusMinute) && this.minTime.getSeconds()\r\n },\r\n maxSecond() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && (!\r\n this.hasMinute || this.maxMinute == this.focusMinute) && this.maxTime.getSeconds()\r\n },\r\n minWeek() {\r\n\r\n },\r\n maxWeek() {\r\n\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-datesheet {\r\n background: #f9f9f9;\r\n }\r\n\r\n .f-datesheet-ok {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .f-datesheet-head {\r\n height: 36px;\r\n border-top: 1px solid #ddd;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog class=\"f-datesheet\">\r\n <w-buttonbar class=\"f-datesheet-bbr\" align=\"between\" height=\"52\" style=\"padding:0 10px\">\r\n <w-button text=\"取消\" @click=\"clickCancel\"></w-button>\r\n <w-button text=\"确定\" @click=\"clickOK\" face=\"primary\"></w-button>\r\n </w-buttonbar>\r\n <w-horizontal height=\"*\">\r\n <w-vertical width=\"*\" v-if=\"hasYear\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">年</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusYear\" :min-value=\"minYear\" :max-value=\"maxYear\" :keep-index=\"true\"\r\n :data=\"{mode: 'year'}\">\r\n <w-option v-for=\"y in yearList\" :key=\"y\" :value=\"y\" :text=\"y\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMonth\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">月</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMonth\" :min-value=\"minMonth\" :max-value=\"maxMonth\" :keep-index=\"true\"\r\n :data=\"{mode: 'month'}\">\r\n <w-option v-for=\"m in monthList\" :key=\"m\" :value=\"m\" :text=\"dfish.strPad(m+1)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasDate\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">日</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusDate\" :min-value=\"minDate\" :max-value=\"maxDate\" :keep-index=\"true\"\r\n :data=\"{mode: 'date'}\">\r\n <w-option v-for=\"d in dateList\" :key=\"d\" :value=\"d\" :text=\"dfish.strPad(d)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasHour\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">时</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusHour\" :min-value=\"minHour\" :max-value=\"maxHour\" :keep-index=\"true\">\r\n <w-option v-for=\"h in hourList\" :key=\"h\" :value=\"h\" :text=\"dfish.strPad(h)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasMinute\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">分</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusMinute\" :min-value=\"minMinute\" :max-value=\"maxMinute\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"i in minuteList\" :key=\"i\" :value=\"i\" :text=\"dfish.strPad(i)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasSecond\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">秒</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusSecond\" :min-value=\"minSecond\" :max-value=\"maxSecond\"\r\n :keep-index=\"true\">\r\n <w-option v-for=\"s in secondList\" :key=\"s\" :value=\"s\" :text=\"dfish.strPad(s)\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n <w-vertical width=\"*\" v-if=\"hasWeek\">\r\n <w-html class=\"f-datesheet-head\" align=\"center\" valign=\"middle\">周</w-html>\r\n <w-slidepicker height=\"*\" v-model=\"focusWeek\" :min-value=\"minWeek\" :max-value=\"maxWeek\" :keep-index=\"true\">\r\n <w-option v-for=\"w in weekList\" :key=\"w.value\" :value=\"w.value\" :text=\"w.text\"></w-option>\r\n </w-slidepicker>\r\n </w-vertical>\r\n </w-horizontal>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['data'],\r\n data() {\r\n let f = this.data.format || 'yyyy-MM-dd'\r\n let d = this.data && this.data.value ? $.dateParse(this.data.value, f) : new Date\r\n let nd = this.data && this.data.minValue && $.dateParse(this.data.minValue, f)\r\n let xd = this.data && this.data.maxValue && $.dateParse(this.data.maxValue, f)\r\n d = $.numRange(d, nd, xd)\r\n let focusYear = d.getFullYear()\r\n let focusWeek, weekFirst, weekLast\r\n if (f.includes('w')) {\r\n focusWeek = $.dateWeek(d)[1]\r\n weekFirst = $.dateWeekFirst(focusYear)\r\n weekLast = $.dateWeekLast(focusYear)\r\n }\r\n return {\r\n focusYear,\r\n focusMonth: d.getMonth(),\r\n focusDate: d.getDate(),\r\n focusHour: d.getHours(),\r\n focusMinute: d.getMinutes(),\r\n focusSecond: d.getSeconds(),\r\n startYear: $.numRange(d.getFullYear() - 30, nd && nd.getFullYear()),\r\n endYear: $.numRange(d.getFullYear() + 30, null, xd && xd.getFullYear()),\r\n monthDays: new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\r\n focusWeek,\r\n weekFirst,\r\n weekLast,\r\n minTime: nd,\r\n maxTime: xd,\r\n format: f\r\n }\r\n },\r\n watch: {\r\n focusYear(y) {\r\n if (y == this.yearList[0] && y > 1030) {\r\n this.startYear = $.numRange(this.startYear - 30, this.minYear)\r\n } else if (y == this.yearList.at(-1)) {\r\n this.endYear = $.numRange(this.endYear + 30, null, this.maxYear)\r\n }\r\n this.monthDays = new Date(y, this.focusMonth + 1, 0).getDate()\r\n if (this.hasWeek) {\r\n this.weekFirst = $.dateWeekFirst(y)\r\n this.weekLast = $.dateWeekLast(y)\r\n }\r\n },\r\n focusMonth(m) {\r\n this.monthDays = new Date(this.focusYear, m + 1, 0).getDate()\r\n }\r\n },\r\n methods: {\r\n weekText(w) {\r\n \r\n },\r\n clickCancel() {\r\n $.close(this)\r\n },\r\n clickOK() {\r\n if (this.data.success) {\r\n let d = this.hasWeek ? $.dateParse(`${this.focusYear}-${this.focusWeek}`, 'yyyy-ww') :\r\n new Date(this.focusYear, this.focusMonth, this.focusDate, this.focusHour, this.focusMinute, this.focusSecond)\r\n this.data.success($.dateFormat(d, this.format))\r\n }\r\n $.close(this)\r\n },\r\n },\r\n computed: {\r\n dfish() {\r\n return $\r\n },\r\n yearList() {\r\n return Array.from(Array(this.endYear - this.startYear + 1)).map((v, i) => this.startYear + i)\r\n },\r\n monthList() {\r\n return Array.from(Array(12)).map((v, i) => i)\r\n },\r\n dateList() {\r\n return Array.from(Array(this.monthDays)).map((v, i) => i + 1)\r\n },\r\n hourList() {\r\n return Array.from(Array(24)).map((v, i) => i)\r\n },\r\n minuteList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n secondList() {\r\n return Array.from(Array(60)).map((v, i) => i)\r\n },\r\n weekList() {\r\n let d = this.weekFirst[2]\r\n return Array.from(Array(this.weekLast[1])).map((v, i) => {\r\n let startDate = d\r\n let endDate = $.dateAdd(d, 'd', 6)\r\n d = $.dateAdd(d, 'd', 7)\r\n return {\r\n value: i + 1,\r\n text: `${$.strPad(i + 1)} (${$.dateFormat(startDate, 'MM.dd')} - ${$.dateFormat(endDate, 'MM.dd')})`,\r\n }\r\n })\r\n },\r\n hasYear() {\r\n return this.format.includes('y')\r\n },\r\n hasMonth() {\r\n return this.format.includes('M')\r\n },\r\n hasDate() {\r\n return this.format.includes('d')\r\n },\r\n hasHour() {\r\n return this.format.includes('H')\r\n },\r\n hasMinute() {\r\n return this.format.includes('m')\r\n },\r\n hasSecond() {\r\n return this.format.includes('s')\r\n },\r\n hasWeek() {\r\n return this.format.includes('w')\r\n },\r\n minYear() {\r\n return this.minTime && this.hasYear && this.minTime.getFullYear()\r\n },\r\n maxYear() {\r\n return this.maxTime && this.hasYear && this.maxTime.getFullYear()\r\n },\r\n minMonth() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && this.minTime.getMonth()\r\n },\r\n maxMonth() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && this.maxTime.getMonth()\r\n },\r\n minDate() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) && this.minTime.getDate()\r\n },\r\n maxDate() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) && this.maxTime.getDate()\r\n },\r\n minHour() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && this.minTime.getHours()\r\n },\r\n maxHour() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && this.maxTime.getHours()\r\n },\r\n minMinute() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && this\r\n .minTime.getMinutes()\r\n },\r\n maxMinute() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && this\r\n .maxTime.getMinutes()\r\n },\r\n minSecond() {\r\n return this.minTime && (!this.hasYear || this.minYear == this.focusYear) && (!this.hasMonth || this.minMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.minDate == this.focusDate) && (!this.hasHour || this.minHour == this.focusHour) && (!\r\n this.hasMinute || this.minMinute == this.focusMinute) && this.minTime.getSeconds()\r\n },\r\n maxSecond() {\r\n return this.maxTime && (!this.hasYear || this.maxYear == this.focusYear) && (!this.hasMonth || this.maxMonth ==\r\n this.focusMonth) &&\r\n (!this.hasDate || this.maxDate == this.focusDate) && (!this.hasHour || this.maxHour == this.focusHour) && (!\r\n this.hasMinute || this.maxMinute == this.focusMinute) && this.maxTime.getSeconds()\r\n },\r\n minWeek() {\r\n\r\n },\r\n maxWeek() {\r\n\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-datesheet {\r\n background: #f9f9f9;\r\n }\r\n\r\n .f-datesheet-ok {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .f-datesheet-head {\r\n height: 36px;\r\n border-top: 1px solid #ddd;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetAbs from './WidgetAbs.vue' \r\n import ViewAbs from './ViewAbs.vue' \r\n import SVGIcon from '../assets/SVGIcon.vue'\r\n import TemplatePreviewMedia from '../template/TemplatePreviewMedia.vue'\r\n import TemplateDateSheet from '../template/TemplateDateSheet.vue'\r\n \r\n\r\n export default {\r\n name: 'w-docview',\r\n mixins: [WidgetAbs, ViewAbs],\r\n provide() {\r\n return {\r\n providePubParent: null,\r\n provideBoxParent: null,\r\n provideRangeParent: null,\r\n provideCompatGap: null,\r\n provideMenu_w: null,\r\n }\r\n },\r\n beforeCreate() {\r\n $.docView = this\r\n $.q(document.body).prepend('<div id=w-dfish-pops></div>')\r\n },\r\n methods: {\r\n el() {\r\n return document.getElementById('app') || document.body\r\n },\r\n getKey() {\r\n return null\r\n },\r\n previewVideo(src) {\r\n this.pop(TemplatePreviewMedia, {data: {type: 'video', src}})\r\n },\r\n previewImage(imgs, options) {\r\n this.pop(TemplatePreviewMedia, {data: {type: 'image', imgs, options}})\r\n },\r\n //dateOptions: {value, format, minValue, maxValue, success}\r\n dateSheet(dateOptions, dialogOptions) {\r\n this.pop(TemplateDateSheet, {\r\n template: TemplateDateSheet,\r\n width: '100%',\r\n height: '55%',\r\n position: 'b',\r\n cover: true,\r\n autoHide: true,\r\n data: dateOptions,\r\n on: {\r\n 'click:cover': $.close\r\n }\r\n })\r\n },\r\n html() {\r\n return [\r\n this.$slots.default && this.$slots.default(),\r\n this.html_pops(),\r\n h(SVGIcon),\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import WidgetAbs from './WidgetAbs.vue'\r\n \r\n export default {\r\n mixins: [WidgetAbs],\r\n inject: ['provideView']\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n const onScroll = function(e) {\r\n if (this.wScrollPercentX) {\r\n let left = e.target.scrollLeft\r\n this.scrollXPosition = left == 0 ? 'left' : left >= this.wScrollSizeX ? 'right' : 'center'\r\n this.$refs.wScrollBarThumbX.style.transform = `translateX(${left/this.wScrollPercentX}px)`\r\n }\r\n if (this.wScrollPercentY) {\r\n let top = e.target.scrollTop\r\n this.scrollYPosition = top == 0 ? 'top' : top >= this.wScrollSizeY ? 'bottom' : 'middle'\r\n this.$refs.wScrollBarThumbY.style.transform = `translateY(${top/this.wScrollPercentY}px)`\r\n }\r\n this.onScroll(e)\r\n }\r\n\r\n const onMousedown = function(dnEv) {\r\n let dir, dnX, dnY, scrLeft, scrTop;\r\n let ov = this.$refs.wScrollOverflow\r\n let x = this.wScrollPercentX\r\n let y = this.wScrollPercentY\r\n $.moveup((mvEv) => {\r\n if (!dir) {\r\n dir = this.$refs.wScrollBarThumbX === dnEv.target ? 'X' : 'Y'\r\n dnX = dnEv.clientX\r\n dnY = dnEv.clientY\r\n scrLeft = ov.scrollLeft\r\n scrTop = ov.scrollTop\r\n dnEv.target.parentNode.classList.add('z-drag')\r\n }\r\n if (dir === 'X') {\r\n ov.scrollLeft = scrLeft + ((mvEv.clientX - dnX) * x)\r\n } else {\r\n ov.scrollTop = scrTop + ((mvEv.clientY - dnY) * y)\r\n }\r\n }, (upEv, moved) => {\r\n if (moved)\r\n dnEv.target.parentNode.classList.remove('z-drag')\r\n }, dnEv)\r\n }\r\n\r\n export default {\r\n mixins: [WidgetBase],\r\n props: ['scrollX', 'scrollY', 'scrollView', 'scrollFlex'],\r\n data() {\r\n return {\r\n wScrollPercentX: false,\r\n wScrollPercentY: false,\r\n wScrollSizeX: false,\r\n wScrollSizeY: false,\r\n scrollXPosition: 'left',\r\n scrollYPosition: 'top',\r\n isDeactivated: false,\r\n }\r\n },\r\n watch: {\r\n scrollXPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n scrollYPosition(v) {\r\n this.onScrollPosition(v)\r\n },\r\n wScrollPercentX(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-x', '') : el.removeAttribute('w-scroll-show-x')\r\n }\r\n },\r\n wScrollPercentY(v) {\r\n let el = this.el()\r\n if (el) {\r\n v ? el.setAttribute('w-scroll-show-y', '') : el.removeAttribute('w-scroll-show-y')\r\n }\r\n }\r\n },\r\n methods: {\r\n onScroll(e) {\r\n //implement\r\n },\r\n onScrollPosition() {\r\n //implement\r\n },\r\n onScrollAttributeChange(e) {\r\n //implement\r\n },\r\n\t\t\tonScrollResize() {\r\n\t\t\t\t//implement\r\n\t\t\t},\r\n // 让元素滚动到可见区域。支持下面两种调用方式 /e -> el|wg, y -> (top,bottom,middle,auto,top+n,bottom+n,n), x -> (left,right,center,auto), p -> ease?, q -> divide(整除数字,让滚动的距离是这个数字的整数倍), r -> callback\r\n scrollTo(e, y, x, p, q, r) {\r\n let a = this.ovf()\r\n if (!a) return r && r()\r\n let b = this.$refs.wScrollCont || a\r\n let c = $.bcr(a)\r\n let d = $.bcr(b)\r\n let f = e ? $.bcr(e) : d\r\n let t, l\r\n if (y != null) {\r\n if (!isNaN(y)) {\r\n t = $.number(y)\r\n if (e) t = f.top - d.top - t\r\n } else if (~y.indexOf('top')) {\r\n\t\t\t\t\t\tt = 0\r\n\t\t\t\t\t\tlet add = x.slice(3)\r\n if (add) t = a.scrollTop + (+add)\r\n } else if (~y.indexOf('bottom')) {\r\n t = f.bottom - d.top - c.height + (+y.slice(6))\r\n } else if (y === 'middle') {\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n } else if (y === 'nearest') {\r\n\t\t\t\t\t\tlet add = x.slice(7)\r\n\t\t\t\t\t\tadd = add ? add.split(',') : [0, 0]\r\n if (f.top - add[0] < c.top) {\r\n t = a.scrollTop - c.top + f.top -add[0]\r\n } else if (f.bottom > c.bottom - add[1]) {\r\n t = a.scrollTop + f.bottom - c.bottom + (+add[1])\r\n\t\t\t\t\t\t}\r\n } else {\r\n if (f.top < c.top || f.bottom > c.bottom)\r\n t = f.top - d.top - ((c.height / 2) - (f.height / 2))\r\n }\r\n }\r\n if (x != null) {\r\n if (!isNaN(x)) {\r\n l = $.number(x)\r\n if (e) l = f.left - d.left - l\r\n } else if (~x.indexOf('left')) {\r\n\t\t\t\t\t\tl = 0\r\n\t\t\t\t\t\tlet add = x.slice(4)\r\n\t\t\t\t\t\tif (add) l = a.scrollLeft + (+add)\r\n } else if (~x.indexOf('right')) {\r\n l = f.right - d.left - c.width + (+x.slice(5))\r\n } else if (x === 'center') {\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n } else if (~x.indexOf('nearest')) {\r\n\t\t\t\t\t\tlet add = x.slice(7)\r\n\t\t\t\t\t\tadd = add ? add.split(',') : [0, 0]\r\n if (f.left - add[0] < c.left) {\r\n\t\t\t\t\t\t\tl = a.scrollLeft - c.left + f.left - add[0]\r\n\t\t\t\t\t\t} else if (f.right > c.right - add[1]) {\r\n\t\t\t\t\t\t\tl = a.scrollLeft + f.right - c.right + (+add[1])\r\n\t\t\t\t\t\t}\r\n } else {\r\n if (f.left < c.left || f.right > c.right)\r\n l = f.left - d.left - ((c.width / 2) - (f.width / 2))\r\n }\r\n }\r\n if (q != null) {\r\n t != null && (t = t - (t % q))\r\n l != null && (l = l - (l % q))\r\n }\r\n if (p && (t != null || l != null)) {\r\n let g = a.scrollTop\r\n let h = a.scrollLeft\r\n $.ease((i) => {\r\n if (t != null) a.scrollTop = g + (t - g) * i\r\n if (l != null) a.scrollLeft = h + (l - h) * i\r\n i === 1 && r && r()\r\n }, p)\r\n } else {\r\n if (t != null) a.scrollTop = t\r\n if (l != null) a.scrollLeft = l\r\n r && r()\r\n }\r\n },\r\n //@public /@ e -> el, y -> (top,bottom,middle), p -> ease?, q -> divide, r -> callback\r\n scrollToY(e, y, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollTop\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = y, y = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, y, null, p, q, r)\r\n },\r\n //@public /@ e -> el, x -> (left,right,center), p -> ease?, q -> divide, r -> callback\r\n scrollToX(e, x, p, q, r) {\r\n if (arguments.length === 0)\r\n return this.ovf().scrollLeft\r\n if (typeof e !== 'object') {\r\n r = q, q = p, p = x, x = e, e = null\r\n }\r\n if (typeof q === 'function') {\r\n r = q, q = null\r\n }\r\n this.scrollTo(e, null, x, p, q, r)\r\n },\r\n ovf() {\r\n return $.br.mobile ? this.el() : this.$refs.wScrollOverflow || this.$refs.wScrollCont\r\n },\r\n html_scroll_slots(s) {\r\n return this.hasScrollX || this.hasScrollY ? [h('div', {\r\n ref: \"wScrollOverflow\",\r\n class: \"w-scroll-overflow\",\r\n onscroll: onScroll.bind(this),\r\n onmouseenter: this.initScroll\r\n }, h('div', {\r\n class: 'w-scroll-cont',\r\n style: this.html_scroll_cont_style,\r\n ref: \"wScrollCont\"\r\n }, s || (this.$slots.default && this.$slots.default()))),\r\n !$.br.mobile && this.hasScrollX && [h('div', {\r\n class: \"w-scrollbar-x\",\r\n ref: \"wScrollBarX\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbX\"\r\n }))],\r\n !$.br.mobile && this.hasScrollY && [h('div', {\r\n class: \"w-scrollbar-y\",\r\n ref: \"wScrollBarY\",\r\n onmousedown: onMousedown.bind(this)\r\n }, h('div', {\r\n class: \"w-scrollbar-thumb\",\r\n ref: \"wScrollBarThumbY\"\r\n }))]\r\n ] : (s || (this.$slots.default && this.$slots.default()))\r\n\r\n },\r\n scrollState() {\r\n if ($.br.mobile || !this.$refs.wScrollCont || !this.el()) return\r\n const flow = this.$refs.wScrollOverflow.getBoundingClientRect()\r\n const cont = this.$refs.wScrollCont.getBoundingClientRect()\r\n let x, y;\r\n if (this.hasScrollX) {\r\n let size = cont.width > flow.width && cont.width - flow.width\r\n if (size && size <= 1) size = false //@fixme 横向滚动时,width:fit-content的设置会让有小数点的宽度变成整数。目前先加一个像素容错\r\n if (size) {\r\n x = {\r\n size,\r\n percent: flow.width / cont.width\r\n }\r\n }\r\n }\r\n if (this.hasScrollY) {\r\n let size = cont.height > flow.height && cont.height - flow.height\r\n if (size) {\r\n y = {\r\n size,\r\n percent: flow.height / cont.height\r\n }\r\n }\r\n }\r\n return {x, y}\r\n },\r\n initScroll() {\r\n const state = this.scrollState()\r\n if (!state) return\r\n const wrap = this.el().getBoundingClientRect()\r\n const {x, y} = state\r\n if (x) {\r\n let thbX = x.percent * wrap.width\r\n this.$refs.wScrollBarThumbX.style.width = Math.max(20, thbX) + 'px'\r\n this.wScrollSizeX = x.size\r\n this.wScrollPercentX = x.size && (x.size / ((1 - x.percent) * (wrap.width - (thbX < 20 ? 20 - thbX : 0))))\r\n } else {\r\n this.wScrollSizeX = this.wScrollPercentX = false\r\n }\r\n if (y) {\r\n let thbY = y.percent * wrap.height\r\n this.$refs.wScrollBarThumbY.style.height = Math.max(20, thbY) + 'px'\r\n this.wScrollSizeY = y.size\r\n this.wScrollPercentY = y.size && (y.size / ((1 - y.percent) * (wrap.height - (thbY < 20 ? 20 - thbY : 0))))\r\n } else {\r\n this.wScrollSizeY = this.wScrollPercentY = false\r\n }\r\n },\r\n scroll_observe(ob) {\r\n if (this.isDeactivated) return \r\n this.initScroll()\r\n\t\t\t\tthis.onScrollResize(ob)\r\n this.$refs.wScrollOverflow && this.$refs.wScrollOverflow.dispatchEvent(new Event('scroll'))\r\n }\r\n },\r\n computed: {\r\n\t\t\thasScrollX() {\r\n\t\t\t\treturn this.x.scrollX\r\n\t\t\t},\r\n\t\t\thasScrollY() {\r\n\t\t\t\treturn this.x.scrollY\r\n\t\t\t},\r\n html_scroll_cont_style() {\r\n // implement\r\n },\r\n html_scroll_class() {\r\n let sx = this.hasScrollX\r\n let sy = this.hasScrollY\r\n return {\r\n 'w-scroll': sx || sy,\r\n 'w-scroll-x': sx,\r\n 'w-scroll-y': sy,\r\n 'w-scroll-flex': this.x.scrollFlex,\r\n }\r\n },\r\n\r\n },\r\n mounted() {\r\n if (this.x.scrollView && this.el()) {\r\n setTimeout(() => {\r\n let el = this.el().querySelector(this.x.scrollView)\r\n el && this.scrollToY(el, 'middle')\r\n })\r\n }\r\n //在PC端生成滚动条。移动端不生成\r\n if ($.br.mobile || !(this.hasScrollX || this.hasScrollY)) return\r\n this.$refs.wScrollOverflow && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollOverflow)\r\n this.$refs.wScrollCont && new ResizeObserver(this.scroll_observe).observe(this.$refs.wScrollCont)\r\n this.el() && new MutationObserver(this.onScrollAttributeChange).observe(this.el(), {attributes: true})\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n //router切回来时,让滚动条滚动到切出去之前的位置\r\n if (this.hasScrollY && this.$refs.wScrollBarThumbY) {\r\n this.scrollToY($.number(this.$refs.wScrollBarThumbY.style.transform) * this.wScrollPercentY)\r\n }\r\n if (this.hasScrollX && this.$refs.wScrollBarThumbX) {\r\n this.scrollToX($.number(this.$refs.wScrollBarThumbX.style.transform) * this.wScrollPercentX)\r\n }\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-scroll {\r\n position: relative;\r\n display: flex;\r\n }\r\n\r\n .w-scroll-overflow {\r\n flex: 1;\r\n box-sizing: border-box;\r\n scrollbar-width: none;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow {\r\n overflow-x: auto;\r\n }\r\n\r\n .w-scroll-y>.w-scroll-overflow {\r\n overflow-y: auto;\r\n }\r\n\r\n .w-scroll-flex>.w-scroll-overflow {\r\n display: flex;\r\n }\r\n\r\n .w-scroll-cont {\r\n min-width: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-scroll-x>.w-scroll-overflow>.w-scroll-cont {\r\n width: fit-content;\r\n }\r\n\r\n .w-scroll-overflow::-webkit-scrollbar {\r\n width: 0;\r\n height: 0;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n background-color: rgba(200, 200, 200, .9);\r\n }\r\n\r\n .w-scrollbar-thumb:hover {\r\n background-color: rgba(180, 180, 180, 1);\r\n }\r\n\r\n .w-scroll-x:hover>.w-scrollbar-x,\r\n .w-scroll-x.z-hv>.w-scrollbar-x,\r\n .w-scroll-y:hover>.w-scrollbar-y,\r\n .w-scroll-y.z-hv>.w-scrollbar-y,\r\n .w-scrollbar-x.z-drag,\r\n .w-scrollbar-y.z-drag {\r\n visibility: visible;\r\n }\r\n\r\n .w-scroll[w-scroll-show-x]>.w-scrollbar-x,\r\n .w-scroll[w-scroll-show-y]>.w-scrollbar-y {\r\n display: block;\r\n }\r\n\r\n .w-scrollbar-x {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n height: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-y {\r\n display: none;\r\n visibility: hidden;\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n right: 0;\r\n width: 12px;\r\n z-index: 10;\r\n user-select: none;\r\n }\r\n\r\n .w-scrollbar-thumb {\r\n position: absolute;\r\n transition-property: top, left;\r\n transition-duration: .1s;\r\n }\r\n\r\n .w-scrollbar-x>.w-scrollbar-thumb {\r\n top: 4px;\r\n bottom: 0;\r\n min-width: 20px;\r\n }\r\n\r\n\r\n .w-scrollbar-y>.w-scrollbar-thumb {\r\n left: 4px;\r\n right: 0;\r\n min-height: 20px;\r\n }\r\n\r\n .w-scrollbar-x:hover>.w-scrollbar-thumb {\r\n top: 0;\r\n }\r\n\r\n .w-scrollbar-y:hover>.w-scrollbar-thumb {\r\n left: 0;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['align', 'valign', 'gap'],\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n html_align_class() {\r\n return [\r\n this.x.align && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-align-' + this.x.align,\r\n this.x.valign && 'z-' + (this.x.vertical ? 'v' : this.dir) + '-valign-' + this.x.valign\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import Scroll from './Scroll.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-horizontal',\r\n mixins: [Scroll, AlignParent],\r\n props: ['br', 'reverse'],\r\n provide() {\r\n return {\r\n provideLayout: this.$options.name,\r\n provideCompatGap: this.compatGap\r\n }\r\n },\r\n inject: ['provideCompatGap'],\r\n methods: {\r\n html_slots() {\r\n return this.html_scroll_slots()\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return 'h'\r\n },\r\n compatGap() {\r\n return $.br.compat.gap ? (this.x ? this.x.gap : this.gap) : null\r\n },\r\n\t\t\thtml_props_on() {\r\n\t\t\t\t//implement\r\n\t\t\t},\r\n html_props() {\r\n let gap = this.x.gap\r\n return {\r\n class: [this.html_scroll_class, this.html_align_class, {'z-br': this.x.br, [`f-${this.dir}-gap${this.x.reverse?'-reverse':''}`]: gap != null && gap !== '' && ($.br.compat.gap || gap < 0)}],\r\n style: !this.x.scrollX && !this.x.scrollY && this.html_scroll_cont_style,\r\n\t\t\t\t\t...this.html_props_on,\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let gap = this.x.gap\r\n let st = {}\r\n if (gap != null) {\r\n st['gap'] = $.unitSize(gap, true)\r\n }\r\n if ($.br.compat.gap || gap < 0) {\r\n st['--w-gap'] = $.unitSize(gap, true)\r\n }\r\n if ($.br.compat.gap && this.provideCompatGap != null) {\r\n st['--w-compat-gap'] = $.unitSize(this.provideCompatGap, true)\r\n }\r\n if (this.x.reverse) {\r\n st['flex-direction'] = `${this.dir=='h'?'row':'column'}-reverse`\r\n }\r\n return st\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-vertical',\r\n mixins: [Horizontal],\r\n computed: {\r\n dir() {\r\n return 'v'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import ViewAbs from './ViewAbs.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-view',\r\n mixins: [Vertical, ViewAbs],\r\n inject: ['provideView'],\r\n methods: {\r\n\t\t\thtml_slots() {\r\n\t\t\t\treturn [\r\n\t\t\t\t\tthis.html_scroll_slots(),\r\n\t\t\t\t\tthis.html_pops()\r\n\t\t\t\t]\r\n\t\t\t}\r\n },\r\n computed: {\r\n html_class() {\r\n return ['w-vertical f-rel', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <slot></slot>\n</template>\n\n<script setup>\r\n import {ref, provide, inject} from 'vue'\r\n const dialogView = inject('provideView', null)\r\n const provideView = dialogView && dialogView.provideView\r\n provide('provideView', provideView)\n</script>\n\n<style>\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps,\r\n Teleport\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n import View from './View.vue'\r\n import DialogTarget from './DialogTarget.vue'\r\n\r\n const O = {},\r\n T = true,\r\n F = false,\r\n N = null\r\n\t\t\r\n\tconst zIndex = 100\r\n\r\n const positionCodes = {\r\n t: 'tt', r: 'rr', b: 'bb', l: 'll', c: 'cc', lt: '11', tl: '11', tr: '22', rt: '22', rb: '33', br: '33', bl: '44', lb: '44',\r\n '-t': 'tb', '-r': 'rl', '-b': 'bt', '-l': 'lr', '-c': 'cc', '-tl': '14', '-tr': '23', '-rt': '21', '-rb': '34', '-bl': '41', '-br': '32', '-lt': '12', '-lb': '43',\r\n }\r\n\r\n const positionNames = {\r\n 'tt': 't', 'rr': 'r', 'bb': 'b', 'll': 'l', 'cc': 'c', '11': 'tl', '22': 'tr', '33': 'br', '44': 'bl',\r\n 'tb': '-t', 'rl': '-r', 'bt': '-b', 'lr': '-l', 'cc': '-c', '14': '-tl', '23': '-tr', '21': '-rt', '34': '-rb', '41': '-bl', '32': '-br', '12': '-lt', '43': '-lb',\r\n }\r\n\t\r\n\tconst boundary = ['minWidth', 'maxWidth', 'minHeight', 'maxHeight']\r\n\r\n\tconst dialogPosition = (a) => {\r\n\t return typeof a === 'string' && a.split(',').map(v => positionCodes[v] || v).join()\r\n\t}\r\n\r\n export default {\r\n name: 'w-dialog',\r\n mixins: [View],\r\n props: ['title', 'autoHide', 'context', 'prong', 'independent', 'timeout', 'cover', 'coverProps',\r\n 'position', 'snap', 'indent', 'offsetRange', 'local', 'fullScreen', 'hoverShowDrop', 'visible',\r\n\t\t\t...boundary\r\n ],\r\n emits: ['show', 'close', 'update:visible'],\r\n data() {\r\n return {\r\n isDialog: true,\r\n keepHover: false,\r\n hoverTimer: null,\r\n hoverMove: null,\r\n animateState: null,\r\n isDeactivated: false,\r\n _pos: null,\r\n snapStyle: null\r\n }\r\n },\r\n activated() {\r\n this.isDeactivated = false\r\n },\r\n deactivated() {\r\n this.isDeactivated = true\r\n },\r\n methods: {\r\n getKey() {\r\n return null\r\n },\r\n getLocalElem() {\r\n let c = this.getCommander()\r\n return c && $.el(c)\r\n },\r\n snapTargetElem() {\r\n let d = this.x.snap\r\n if (typeof d === 'function') {\r\n return d()\r\n } else if (d) {\r\n return d.isWidget ? d.snapElem() : d\r\n } else {\r\n return this.x.local ? this.getLocalElem() : this.defaultSnapTargetElem\r\n }\r\n },\r\n fixSnapStyle() {\r\n let r = this._pos\r\n let s = {}\r\n if (r.type) {\r\n if (r.pix_r) {\r\n s.right = r.right\r\n } else {\r\n s.left = r.left\r\n }\r\n if (r.pix_b) {\r\n s.pix_b = true\r\n s.bottom = r.bottom\r\n } else {\r\n s.top = r.top\r\n }\r\n s.type = r.type\r\n } else {\r\n s = r\r\n }\r\n this.snapStyle = s\r\n },\r\n axis() {\r\n let f = this.x.position || this.defaultSnapPosition\r\n let r = f\r\n if (typeof f === 'string' || !f) {\r\n\t\t\t\t\tlet el = this.el()\r\n\t\t\t\t\tif (!el || this.x.fullScreen) return;\r\n\t\t\t\t\tlet c = this.x.local\r\n\t\t\t\t\tlet g = this.snapTargetElem()\r\n\t\t\t\t\t// 如果有指定 snap,采用 snap 模式\r\n\t\t\t\t\tlet w = el.offsetWidth\r\n\t\t\t\t\tlet h = el.offsetHeight\r\n\t\t\t\t\tlet indent = this.x.indent != null ? this.x.indent : (this.x.prong && -9)\r\n r = $.snap(w, h, g, dialogPosition(f), this._fitpos, indent, c && g)\r\n\t\t\t\t\tif (!this.x.snap) { // 没有设置snap,则默认snap对象是body,加上动画效果\r\n\t\t\t\t\t\tlet lp = $.q(`[w-dialog-position=\"${r.type}\"]:not([id=\"${this.uid}\"]):last`)[0]\r\n\t\t\t\t\t\tif (lp) { // 同一浮动位置出现的对话框,实现排队效果\r\n\t\t\t\t\t\t let lc = $(lp)._pos\r\n\t\t\t\t\t\t\tif (f == 'tl' || f == 'tr' || f == 't') {\r\n\t\t\t\t\t\t\t\tr.top = lc.top + lc.height + 5\r\n\t\t\t\t\t\t\t\tr.bottom = lc.bottom - lc.height - 5\r\n\t\t\t\t\t\t\t} else if (f == 'br' || f == 'bl' || f == 'b') {\r\n\t\t\t\t\t\t\t\tr.top = lc.top - lc.height - 5\r\n\t\t\t\t\t\t\t\tr.bottom = lc.bottom + lc.height + 5\r\n\t\t\t\t\t\t\t} else if (f == 'lb' || f == 'lt' || f == 'l') {\r\n\t\t\t\t\t\t\t\tr.left = lc.left + lc.width + 5\r\n\t\t\t\t\t\t\t\tr.right = lc.right - lc.width - 5\r\n\t\t\t\t\t\t\t} else if (f == 'rb' || f == 'rt' || f == 'r') {\r\n\t\t\t\t\t\t\t\tr.left = lc.left - lc.width - 5\r\n\t\t\t\t\t\t\t\tr.right = lc.right + lc.width + 5\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.animateState = 'animating'\r\n\t\t\t\t\t}\r\n }\r\n this._pos = r\r\n this.fixSnapStyle()\r\n if (typeof this.x.position === 'string' && this.x.snap) {\r\n this.checkOutScreen()\r\n }\r\n },\r\n setPosition(s) {\r\n this.x.position = s\r\n },\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.bottom < 0) {\r\n this.autoSetMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.autoSetMaxHeight(c.height + c.top)\r\n }\r\n },\r\n close() {\r\n if (this.x.visible === false) return\r\n this.closeRelease()\r\n this.trigger('close')\r\n this.ownerView.removePop(this.uid)\r\n this.setVisible(false)\r\n },\r\n closeRelease() {\r\n this.x.autoHide && this.listenHide(F)\r\n let f = this.x.position\r\n if (f && typeof f === 'string' && this.el()) { // 当前窗口关闭后,有相同position的dialog依次移动补空位\r\n\t\t\t\t\tlet lc = this._pos\r\n let ps = $.q(`~[w-dialog-position=\"${lc.type}\"]`, this.el())\r\n ps.each((i, el) => {\r\n\t\t\t\t\t\tconst g = $(el)\r\n const s = g._pos\r\n\t\t\t\t\t\tif (f == 'tl' || f == 'tr' || f == 't') {\r\n\t\t\t\t\t\t\ts.top -= lc.height + 5\r\n\t\t\t\t\t\t\ts.bottom += lc.height + 5\r\n\t\t\t\t\t\t} else if (f == 'br' || f == 'bl' || f == 'b') {\r\n\t\t\t\t\t\t\ts.top += lc.height + 5\r\n\t\t\t\t\t\t\ts.bottom -= lc.height + 5\r\n\t\t\t\t\t\t} else if (f == 'lb' || f == 'lt' || f == 'l') {\r\n\t\t\t\t\t\t\ts.left -= lc.width + 5\r\n\t\t\t\t\t\t\ts.right += lc.width + 5\r\n\t\t\t\t\t\t} else if (f == 'rb' || f == 'rt' || f == 'r') {\r\n\t\t\t\t\t\t\ts.left += lc.width + 5\r\n\t\t\t\t\t\t\ts.right -= lc.width + 5\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tg.fixSnapStyle()\r\n })\r\n }\r\n },\r\n // 绑定鼠标监听 /@a -> 为 false 时解除监听\r\n listenHide(a) {\r\n if (a === F) {\r\n this.setListenHide(a)\r\n } else {\r\n setTimeout(() => {\r\n if (this.x.visible !== false) {\r\n this.setListenHide(a)\r\n }\r\n }, 100) // 延时处理,避免出现后立即消失的情况\r\n }\r\n },\r\n setListenHide(a) {\r\n let d = this.x.hoverShowDrop\r\n let n = a ? 'addEventListener' : 'removeEventListener'\r\n let evs = $.br.mobile ? ['touchend'] : ['mousedown', $.br.firefox ? 'DOMMouseScroll' : 'mousewheel']\r\n evs.forEach(v => document[n](v, this.bind('listenHideClose', (e) => {\r\n let c\r\n if (this.x.visible !== false && (e.target.classList.contains('w-dialog-cover') || !(this.hasBubble(e.target) || (!this.x.independent && ((c = this.getCommander()).isWidget ? c.hasBubble(e.target) : c.contains(e.target)))))) {\r\n if (e.target.id == this.id + 'cvr') e.stopPropagation()\r\n this.close()\r\n }\r\n }), T))\r\n window.plus && plus.key[n]('backbutton', this.bind('close'), F)\r\n if (d) {\r\n let o = d === T ? (this.x.snap ? this.snapTargetElem() : $.el(this.getCommander())) : $.el(d)\r\n let hvOver = this.bind('listenHideHoverOver', e => {\r\n clearTimeout(this.hoverTimer), this.hoverTimer = null\r\n });\r\n let hvMove = this.bind('listenHideHoverMove', e => {\r\n if (!o.contains(e.target) && !this.hasBubble(e.target) && !this.keepHover) {\r\n if (!this.hoverTimer)\r\n this.hoverTimer = setTimeout(() => {this.close(); hvOver() }, 200)\r\n } else\r\n hvOver()\r\n });\r\n [o, this.el()].forEach(v => v && v[n]('mouseenter', hvOver))\r\n document[n]('mousemove', hvMove)\r\n }\r\n },\r\n autoSetMaxHeight(h) {\r\n\t\t\t\tif (this.maxHeight == null) {\r\n\t\t\t\t\tthis.x.maxHeight = h\r\n\t\t\t\t}\r\n },\r\n setVisible(a) {\r\n a = a == null ? true : a\r\n this.x.visible = a\r\n this.$emit('update:visible', a)\r\n if (this.slotTarget) {\r\n if (a) {\r\n this.getTargetElem().setAttribute('w-pop-visible', '')\r\n } else {\r\n this.getTargetElem().removeAttribute('w-pop-visible')\r\n }\r\n }\r\n this.setVisibleSub(a)\r\n },\r\n setVisibleSub(a) {\r\n // implement\r\n },\r\n getTargetElem() {\r\n return !this.$el ? null : this.$el.nodeType === 3 ? this.$el.nextElementSibling : this.$el\r\n },\r\n getPop() {\r\n return this.ownerView.getPopById(this.uid)\r\n },\r\n getCommander() {\r\n\t\t\t\tif (this.context) return this.context\r\n let o = this.getPop()\r\n if (o) return o.commander\r\n if (this.slotTarget) {\r\n return this.getTargetElem()\r\n }\r\n return this.ownerView\r\n },\r\n resolve(v) {\r\n let o = this.getPop()\r\n o && o.resolve && o.resolve(v)\r\n },\r\n reject(v) {\r\n let o = this.getPop()\r\n o && o.reject && o.reject(v)\r\n },\r\n html_slots_default() {\r\n return null\r\n },\r\n html_slots() {\r\n let prong\r\n let r = this._pos\r\n if (this.x.prong && r) {\r\n let m = r.inner ? (r.mag_b ? 'b' : r.mag_t ? 't' : r.mag_l ? 'l' : 'r') : (r.mag_b ? 't' : r.mag_t ? 'b' : r.mag_l ? 'r' : 'l')\r\n prong = h('div', {\r\n class: 'w-dialog-prong z-' + m,\r\n }, [\r\n h('i', {\r\n class: 'w-dialog-prong-out f-arw f-arw-' + m + '5'\r\n }),\r\n h('i', {\r\n class: 'w-dialog-prong-in f-arw f-arw-' + m + '4'\r\n }),\r\n ])\r\n }\r\n return [prong || [], this.html_scroll_slots(this.html_slots_default()), this.html_pops()]\r\n },\r\n html() {\r\n let to = this.x.local ? this.getLocalElem() : '#w-dfish-pops'\r\n let cover = null\r\n if (this.x.cover && this.x.visible !== false && !this.isDeactivated) {\r\n let coverProps = {\r\n ref: 'cover',\r\n class: 'w-dialog-cover f-abs-full',\r\n ...this.scope_props\r\n }\r\n if (this.x.coverProps) {\r\n coverProps = mergeProps(coverProps, this.x.coverProps)\r\n }\r\n cover = h('div', coverProps)\r\n }\r\n let s = [cover, this.html_self(true)]\r\n let r = to ? h(Teleport, {to}, s) : s\r\n return this.slotTarget ? [r, h(DialogTarget, null, {default: () => [this.slotTarget()]})] : r\r\n }\r\n },\r\n computed: {\r\n commander() {\r\n return this.getCommander()\r\n },\r\n defaultSnapTargetElem() {\r\n //implement\r\n },\r\n defaultSnapPosition() {\r\n return 'cc'\r\n },\r\n slotTarget() {\r\n return this.$slots.target\r\n },\r\n\t\t\tscope_props() { // 手动获取 data-v-xxxxx 数据,因为Teleport会丢失这部分数据\r\n\t\t\t\tlet scopeId = this.$.vnode.scopeId || this.$.parent.vnode.scopeId\r\n\t\t\t\tif (scopeId) {\r\n\t\t\t\t\treturn {[`${scopeId}`]: ''}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\thtml_props() {\r\n\t\t\t\tconst r = this._pos || O\r\n\t\t\t\treturn {\r\n\t\t\t\t\tref: 'dialog',\r\n\t\t\t\t\tclass: 'w-dialog',\r\n\t\t\t\t\t'w-dialog-position': r.type,\r\n\t\t\t\t\t...this.scope_props\r\n\t\t\t\t}\r\n\t\t\t},\r\n html_class() {\r\n\t\t\t\tconst r = this._pos || O\r\n\t\t\t\tconst p = this.x.position\r\n return ['w-vertical', this.html_align_class, this.html_scroll_class, {\r\n 'z-hide': this.isDeactivated || (this.x.visible != null ? !this.x.visible : !!this.slotTarget),\r\n 'z-full': this.x.fullScreen,\r\n ['z-face-' + this.x.face]: this.x.face,\r\n\t\t\t\t ['z-mag-' + (r.mag_t ? 't' : r.mag_l ? 'l' : r.mag_b ? 'b' : 'r')]: r.type,\r\n\t\t\t\t ['z-snap z-snap-' + r.type]: r.type,\r\n\t\t\t\t\t[`w-dialog-animate-${p}`]: positionCodes[p] && typeof p === 'string' && this.animateState != 'animating'\r\n\t\t\t\t}]\r\n },\r\n html_style() {\r\n if (this.x.fullScreen) {\r\n return {\r\n width: '100%',\r\n height: '100%',\r\n top: 0,\r\n left: 0,\r\n }\r\n } else {\r\n let f = this.x.position\r\n let n = this.snapStyle\r\n let s = {}\r\n if (f && typeof f === 'object') {\r\n $.extend(s, f)\r\n if (n) {\r\n if (s.top == null && s.bottom == null) $.extend(s, $.lodash.pick(n, 'top', 'bottom'))\r\n if (s.left == null && s.right == null) $.extend(s, $.lodash.pick(n, 'left', 'right'))\r\n }\r\n } else {\r\n if (n) $.extend(s, n)\r\n }\r\n for (let k in s) {\r\n s[k] = $.unitSize(s[k])\r\n }\r\n\t\t\t\t\tboundary.forEach(k => {\r\n\t\t\t\t\t\tif (this.x[k] != null) s[k] = $.unitSize(this.x[k])\r\n\t\t\t\t\t})\r\n return s\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.x.local) {\r\n $.q(this.getLocalElem()).addClass('f-dialog-local-wrap')\r\n }\r\n this.$nextTick(() => {\r\n\t\t\t\tthis.$watch(() => this.x.position, this.axis)\r\n\t\t\t\tthis.$watch(() => this.x.visible, (vis) => {\r\n if (vis !== false) {\r\n this.x.autoHide && this.listenHide(T)\r\n this.axis()\r\n }\r\n }, {immediate: true})\r\n setTimeout(() => {\r\n this.axis()\r\n this.$nextTick(() => this.trigger('show'))\r\n })\r\n if (this.slotTarget) {\r\n let el = this.getTargetElem()\r\n if (el) {\r\n if (this.hoverShowDrop) {\r\n el.addEventListener('mouseenter', () => this.visible == null && this.setVisible(), false)\r\n } else {\r\n el.addEventListener('click', (e) => {e.stopPropagation(); this.visible == null && this.setVisible()}, false)\r\n }\r\n }\r\n }\r\n const observe = (o) => {\r\n if (this.x.visible === false || this.animateState == 'animating' || !this.el()) return\r\n this.axis()\r\n }\r\n new ResizeObserver(observe).observe(this.el())\r\n if (this.x.timeout) {\r\n setTimeout(this.close, this.x.timeout)\r\n }\r\n })\r\n },\r\n unmounted() {\r\n if (this.x.visible !== false) {\r\n this.closeRelease()\r\n }\r\n }\r\n }\r\n\t\r\n</script>\r\n\r\n<style>\r\n .w-dialog {\r\n display: inline-flex;\r\n position: absolute;\r\n box-shadow: 0px 0px 8px #bbb;\r\n z-index: 100;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-dialog.z-hide {\r\n visibility: hidden;\r\n pointer-events: none;\r\n z-index: -1;\r\n }\r\n\r\n .w-dialog.z-full {\r\n transform: none;\r\n transition: none;\r\n }\r\n\r\n .w-dialog-cover {\r\n background: rgba(0, 0, 0);\r\n opacity: .35;\r\n z-index: 100;\r\n animation: w-dialog-cover-ani 200ms;\r\n }\r\n \r\n @keyframes w-dialog-cover-ani {\r\n 0% {\r\n opacity: 0;\r\n }\r\n 100% {\r\n opacity: .35;\r\n }\r\n }\r\n\r\n .w-dialog-prong {\r\n position: absolute;\r\n }\r\n\r\n .w-dialog-prong .f-arw {\r\n position: absolute;\r\n margin: 0\r\n }\r\n\r\n .w-dialog-prong.z-b {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n bottom: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-in {\r\n top: 0;\r\n left: 1px;\r\n border-top-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-b .w-dialog-prong-out {\r\n top: 0;\r\n left: 0;\r\n border-top-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-t {\r\n width: 9px;\r\n height: 8px;\r\n left: 50%;\r\n margin-left: -9px;\r\n top: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-in {\r\n bottom: 0;\r\n left: 1px;\r\n border-bottom-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-t .w-dialog-prong-out {\r\n bottom: 0;\r\n left: 0;\r\n border-bottom-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-l {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n left: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-in {\r\n right: 0;\r\n top: 1px;\r\n border-right-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-l .w-dialog-prong-out {\r\n right: 0;\r\n top: 0;\r\n border-right-color: #d5d5d5\r\n }\r\n\r\n .w-dialog-prong.z-r {\r\n width: 8px;\r\n height: 9px;\r\n top: 50%;\r\n margin-top: -9px;\r\n right: -8px;\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-in {\r\n left: 0;\r\n top: 1px;\r\n border-left-color: #fff\r\n }\r\n\r\n .w-dialog-prong.z-r .w-dialog-prong-out {\r\n left: 0;\r\n top: 0;\r\n border-left-color: #d5d5d5\r\n }\r\n \r\n .w-dialog-teleport {\r\n display: none;\r\n }\r\n\r\n .w-dialog-animate-br,\r\n .w-dialog-animate-bl,\r\n .w-dialog-animate-b {\r\n transform: translateY(100%);\r\n }\r\n\r\n .w-dialog-animate-tr,\r\n .w-dialog-animate-tl,\r\n .w-dialog-animate-t {\r\n transform: translateY(-100%);\r\n }\r\n\r\n .w-dialog-animate-lt,\r\n .w-dialog-animate-lb,\r\n .w-dialog-animate-l {\r\n transform: translateX(-100%);\r\n }\r\n\r\n .w-dialog-animate-rt,\r\n .w-dialog-animate-rb,\r\n .w-dialog-animate-r {\r\n transform: translateX(100%);\r\n }\r\n \r\n .w-dialog-move-helper {\r\n position: fixed;\r\n background: #fff;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n opacity: 0;\r\n z-index: 101;\r\n }\r\n</style>\r\n","<template>\r\n <w-vertical class=\"w-alert-wrap\">\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-vertical v-dialog-move=\"true\" class=\"w-alert-move\" w-width=\"*\">\r\n <w-html class=\"w-alert-title\" valign=\"middle\" height=\"*\" v-html=\"title\"></w-html>\r\n </w-vertical>\r\n \t<w-html class=\"w-alert-close\" align=\"center\" valign=\"middle\" @click=\"close\">\r\n \t\t<i class=\"w-alert-close-icon f-i f-i-close\"></i>\r\n \t</w-html>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot width=\"*\">\r\n <w-html width=\"*\" class=\"w-alert-text\" v-if=\"escape\">{{text}}</w-html>\r\n <w-html width=\"*\" class=\"w-alert-text\" v-else v-html=\"text\"></w-html>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar v-if=\"showButton!==false\" class=\"w-alert-buttonbar\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\" :ownproperty=\"true\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-vertical>\r\n</template>\r\n\r\n<script setup>\r\n import {computed} from 'vue'\r\n \r\n const {icon} = defineProps(['text', 'escape', 'title', 'icon', 'showButton'])\r\n \r\n const emit = defineEmits(['save', 'close'])\r\n \r\n const icons = {\r\n info: '.f-i .f-i-alert-info',\r\n warning: '.f-i .f-i-alert-warning',\r\n success: '.f-i .f-i-alert-success',\r\n question: '.f-i .f-i-alert-question',\r\n error: '.f-i .f-i-alert-error'\r\n }\r\n \r\n const save = (e) => {\r\n emit('save', e)\r\n }\r\n \r\n const close = (e) => {\r\n emit('close', e)\r\n }\r\n \r\n const typeIcon = computed(() => {\r\n return icons[icon] || icon || icons['info']\r\n })\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n import TemplateAlert from '../template/TemplateAlert.vue'\r\n\r\n export default {\r\n name: 'w-alert',\r\n mixins: [Dialog],\r\n props: ['text', 'title', 'escape', 'yes', 'no', 'showButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n title: $.loc.opertip\r\n }\r\n },\r\n async onSave(e) {\r\n let r\r\n if (this.x.yes) {\r\n try {\r\n r = await this.x.yes(e)\r\n } catch(e) {\r\n console.error(e)\r\n }\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n async onClose(e) {\r\n let r\r\n if (this.x.no) {\r\n r = await this.x.no(e)\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n html_slots_default() {\r\n return h(\r\n TemplateAlert,\r\n {\r\n text: this.x.text,\r\n title: this.x.title,\r\n icon: this.x.icon,\r\n escape: this.x.escape,\r\n showButton: this.x.showButton,\r\n onSave: this.onSave,\r\n onClose: this.onClose,\r\n },\r\n this.$slots\r\n )\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <w-vertical class=\"w-alert-wrap\">\r\n <w-horizontal class=\"w-alert-head\">\r\n <w-vertical v-dialog-move=\"true\" class=\"w-alert-move\" w-width=\"*\">\r\n <w-html class=\"w-alert-title\" valign=\"middle\" height=\"*\" v-html=\"title\"></w-html>\r\n </w-vertical>\r\n\t\t\t<w-html class=\"w-alert-close\" align=\"center\" valign=\"middle\" @click=\"close\">\r\n\t\t\t\t<i class=\"w-alert-close-icon f-i f-i-close\"></i>\r\n\t\t\t</w-html>\r\n </w-horizontal>\r\n <w-vertical class=\"w-alert-body\">\r\n <w-horizontal class=\"w-alert-main\" valign=\"middle\">\r\n <w-img class=\"w-alert-icon\" :src=\"typeIcon\"></w-img>\r\n <slot width=\"*\">\r\n <w-html width=\"*\" class=\"w-alert-text\" v-if=\"escape\">{{text}}</w-html>\r\n <w-html width=\"*\" class=\"w-alert-text\" v-else v-html=\"text\"></w-html>\r\n </slot>\r\n </w-horizontal>\r\n <w-buttonbar gap=\"10\" class=\"w-alert-buttonbar\">\r\n <w-button face=\"primary\" class=\"w-alert-button\" text=\"确定\" @click=\"save\" :ownproperty=\"true\"/>\r\n <w-button class=\"w-alert-button\" text=\"取消\" @click=\"close\" :ownproperty=\"true\"/>\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-vertical>\r\n</template>\r\n\r\n<script setup>\r\n import {computed} from 'vue'\r\n \r\n const {icon} = defineProps(['text', 'escape', 'title', 'icon', 'showButton'])\r\n \r\n const emit = defineEmits(['save', 'close'])\r\n \r\n const icons = {\r\n info: '.f-i .f-i-alert-info',\r\n warning: '.f-i .f-i-alert-warning',\r\n success: '.f-i .f-i-alert-success',\r\n question: '.f-i .f-i-alert-question',\r\n error: '.f-i .f-i-alert-error'\r\n }\r\n \r\n const save = (e) => {\r\n emit('save', e)\r\n }\r\n \r\n const close = (e) => {\r\n emit('close', e)\r\n }\r\n \r\n const typeIcon = computed(() => {\r\n return icons[icon] || icon || icons['question']\r\n })\r\n</script>","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n import TemplateConfirm from '../template/TemplateConfirm.vue'\r\n\r\n export default {\r\n name: 'w-confirm',\r\n mixins: [Dialog],\r\n props: ['text', 'title', 'escape', 'yes', 'no', 'showButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n title: $.loc.opertip\r\n }\r\n },\r\n async onSave(e) {\r\n let r\r\n if (this.x.yes) {\r\n try {\r\n r = await this.x.yes(e)\r\n } catch(e) {\r\n console.error(e)\r\n }\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n async onClose(e) {\r\n let r\r\n if (this.x.no) {\r\n r = await this.x.no(e)\r\n }\r\n this.resolve(r)\r\n this.close()\r\n },\r\n html_slots_default() {\r\n return h(\r\n TemplateConfirm,\r\n {\r\n text: this.x.text,\r\n title: this.x.title,\r\n icon: this.x.icon,\r\n escape: this.x.escape,\r\n showButton: this.x.showButton,\r\n onSave: this.onSave,\r\n onClose: this.onClose,\r\n },\r\n this.$slots\r\n )\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <div class=\"w-tip-body\">\r\n <slot name=\"text\">\r\n <div class=\"w-tip-text\" v-if=\"escape\">{{text}}</div>\r\n <div class=\"w-tip-text\" v-else v-html=\"text\"></div>\r\n </slot>\r\n </div>\r\n</template>\r\n<script setup>\r\n defineProps(['text', 'escape'])\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Dialog from './Dialog.vue'\r\n import TemplateTip from '../template/TemplateTip.vue'\r\n \r\n let inst = null\r\n let tipCache = {\r\n time: new Date().getTime()\r\n }\r\n export {tipCache}\r\n \r\n export default {\r\n name: 'w-tip',\r\n mixins: [Dialog],\r\n props: ['face', 'text', 'escape'],\r\n provide() {\r\n return {\r\n provideView: this.provideView\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n prong: true,\r\n autoHide: true,\r\n face: 'normal',\r\n escape: true,\r\n }\r\n },\r\n html_slots_default() {\r\n return h(TemplateTip, {text: this.x.text, escape: this.x.escape}, this.$slots)\r\n }\r\n },\r\n computed: {\r\n slotTarget() {\r\n return this.$slots.default\r\n },\r\n defaultSnapTargetElem() {\r\n const c = this.commander\r\n return c.snapElem ? c.snapElem() : c\r\n },\r\n defaultSnapPosition() {\r\n return '-t,-r,-b,-l,-tl,-tr,-rt,-tb,-bl,-br,-lt,-lb,c'\r\n }\r\n },\r\n mounted() {\r\n tipCache.time = new Date().getTime()\r\n inst && $.close(inst)\r\n inst = this.uid\r\n },\r\n unmounted() {\r\n inst = null\r\n }\r\n }\r\n \r\n</script>\r\n\r\n<style>\r\n .w-tip.w-dialog {\r\n border: 1px solid #2498ff;\r\n background: #f5faff;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip .w-tip-x {\r\n position: absolute;\r\n right: 3px;\r\n top: 3px;\r\n padding: 0 3px;\r\n cursor: pointer\r\n }\r\n\r\n .w-tip .f-i-close {\r\n font-size: 12px;\r\n color: #999\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #2498ff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #f5faff\r\n }\r\n\r\n .w-tip .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #2498ff\r\n }\r\n\r\n .w-tip.w-dialog.z-face-warn {\r\n border: 1px solid #f3e041;\r\n background: #faf0cd;\r\n box-shadow: 0 0 4px #d9d9d9\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-in {\r\n border-top-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-b .w-dialog-prong-out {\r\n border-top-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-in {\r\n border-bottom-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-t .w-dialog-prong-out {\r\n border-bottom-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-in {\r\n border-right-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-l .w-dialog-prong-out {\r\n border-right-color: #f3e041\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-in {\r\n border-left-color: #faf0cd\r\n }\r\n\r\n .w-tip.z-face-warn .w-dialog-prong.z-r .w-dialog-prong-out {\r\n border-left-color: #f3e041\r\n }\r\n\r\n .w-tip-body {\r\n padding: 5px 10px;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-img',\r\n pubParentName: 'w-album',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['src', 'text', 'square', 'imgWidth', 'imgHeight', 'dataUrl', 'vertical', 'disabled'],\r\n data() {\r\n return {\r\n hover: false\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n vertical: true,\r\n }\r\n },\r\n onerror(e) {\r\n if (this.dataUrl) e.target.src = this.dataUrl\r\n },\r\n html_slots() {\r\n let src = this.x.src\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n let svg = src && src.startsWith('#')\r\n let cont = this.$slots.default || (this.x.text ? {\r\n default: () => this.x.text\r\n } : null)\r\n src = src || this.dataUrl\r\n return [\r\n src && h('div', {\r\n class: 'w-img-gut',\r\n }, [font ? h('i', {\r\n class: 'w-img-icon ' + src.replace(/\\./g, '')\r\n }) :\r\n svg ? h('svg', {\r\n class: 'f-svg ' + src.slice(1)\r\n }, h('use', {\r\n 'xlink:href': src,\r\n })) :\r\n h('img', {\r\n ref: 'img',\r\n src: src,\r\n class: 'w-img-icon',\r\n onerror: this.onerror,\r\n }),\r\n this.$slots.cover && h('div', {\r\n class: 'w-img-cover f-abs-full'\r\n }, this.$slots.cover())\r\n ]),\r\n cont && h(Vertical, {\r\n class: 'w-img-description'\r\n }, cont)\r\n ]\r\n }\r\n },\r\n computed: {\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let w = $.unitSize(this.x.imgWidth ? this.x.imgWidth : this.x.width)\r\n let h = $.unitSize(this.x.imgHeight ? this.x.imgHeight : this.x.height)\r\n return {\r\n class: {\r\n 'z-hv': this.hover,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': this.x.disabled,\r\n 'z-square': this.x.square,\r\n 'z-canplay': this.x.canPlay,\r\n 'z-vertical': this.x.vertical,\r\n [`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap,\r\n },\r\n style: {\r\n '--w-img-icon-width': w,\r\n '--w-img-icon-height': h,\r\n },\r\n onmouseenter: e => !this.x.disabled && (this.hover = true),\r\n onmouseleave: e => !this.x.disabled && (this.hover = false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-img {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-img.z-vertical {\r\n flex-direction: column;\r\n --w-compat-gap: 7px;\r\n }\r\n\r\n .w-img-gut {\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-img-gut img {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--w-img-icon-width, 100%);\r\n height: var(--w-img-icon-height);\r\n }\r\n \r\n .w-img .f-svg {\r\n width: var(--w-img-icon-width, 18px);\r\n height: var(--w-img-icon-height, 18px) ;\r\n }\r\n\r\n .w-img.z-square .w-img-gut {\r\n position: relative;\r\n overflow: hidden;\r\n width: 100%;\r\n height: 0;\r\n padding-bottom: 100%;\r\n }\r\n\r\n .w-img.z-square .w-img-icon {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-img-icon {\r\n display: block;\r\n object-fit: cover;\r\n line-height: 1;\r\n }\r\n\r\n .w-img-cover {}\r\n\r\n .w-img-description {}\r\n\r\n .w-img.z-vertical>.w-img-description {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps, resolveComponent\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Img from './Img.vue'\r\n\timport {menuRelate, closeMenu} from './Menu.vue'\r\n\r\n export default {\r\n pubParentName: 'w-buttonbar',\r\n mixins: [WidgetBase],\r\n props: ['text', 'icon', 'focusIcon', 'dropIcon', 'focusDropIcon', 'arrowIcon', 'face', 'target', 'closable', 'dropToggle', 'loading', 'disabled', 'vertical', 'hoverShowDrop', 'dropProps', 'showArrowIcon'],\r\n inject: ['providePubParent', 'provideMenu_w'],\r\n emits: ['click:close', 'dropClose'],\r\n data() {\r\n return {\r\n dropper: null,\r\n showDrop: false,\r\n mouses: {\r\n onmouseenter: e => {\r\n\t\t\t\t\t\tif (!this.showDrop) {\r\n\t\t\t\t\t\t\tif (this.pubParent && menuRelate(this.pubParent) && !menuRelate(this)) closeMenu()\r\n\t\t\t\t\t\t\tif(this.x.hoverShowDrop) {\r\n\t\t\t\t\t\t\t\tthis.drop()\r\n\t\t\t\t\t\t\t\tthis.$nextTick(() => e.currentTarget.classList.add('z-hv'))\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\te.currentTarget.classList.add('z-hv')\r\n\t\t\t\t\t},\r\n onmouseleave: e => e.currentTarget.classList.remove('z-hv'),\r\n onmousedown: e => e.currentTarget.classList.add('z-down'),\r\n onmouseup: e => e.currentTarget.classList.remove('z-down'),\r\n }\r\n }\r\n },\r\n watch: {\r\n disabled(a) {\r\n a && $.q('.z-hv', this.el()).removeClass('z-hv')\r\n }\r\n },\r\n methods: {\r\n ajaxLock(a) {\r\n a = a == null ? true : a\r\n this.x.loading = a\r\n },\r\n drop() {\r\n\t\t\t\tif (this.hasChild) {\r\n\t\t\t\t\tthis.showDrop = true\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcloseMenu()\r\n\t\t\t\t}\r\n },\r\n isShowDrop() {\r\n return this.showDrop\r\n },\r\n\t\t\tcloseDrop() {\r\n this.showDrop = false\r\n\t\t\t},\r\n onclick(e) {\r\n if (this.isMore) {\r\n if (this.showDrop && this.x.dropToggle) {\r\n this.closeDrop()\r\n } else {\r\n this.drop()\r\n }\r\n }\r\n\t\t\t\tif (this.pubParent)\r\n\t\t\t\t\tthis.pubParent.$emit('click:item', e)\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n clickDrop(e) {\r\n if (this.isDisabled) return\r\n e.stopPropagation()\r\n this.drop()\r\n },\r\n html_drop() {\r\n if (this.showDrop && this.hasChild) {\r\n\t\t\t\t\tlet dropProps = {\r\n\t\t\t\t\t context: this,\r\n\t\t\t\t\t ownproperty: true,\r\n\t\t\t\t\t minWidth: $.bcr(this.el()).width,\r\n\t\t\t\t\t autoHide: true,\r\n\t\t\t\t\t hoverShowDrop: this.x.hoverShowDrop,\r\n\t\t\t\t\t snap: () => this.el(),\r\n\t\t\t\t\t position: this.pubParent && this.pubParent.x.vertical ? '-rt,-lt' : 'v',\r\n\t\t\t\t\t indent: 1,\r\n\t\t\t\t\t onClose: () => {\r\n\t\t\t\t\t\t\tthis.showDrop = false\r\n\t\t\t\t\t\t\tthis.$emit('dropClose')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.x.dropProps) dropProps = mergeProps(dropProps, this.x.dropProps)\r\n\t\t\t\t\treturn h(resolveComponent('w-menu'), dropProps, this.$slots)\r\n\t\t\t\t} else\r\n\t\t\t\t\treturn []\r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n if (this.x.loading) {\r\n r.push(h('div', {\r\n class: 'w-button-loading f-abs-full f-flex-center'\r\n }, h(Img, {\r\n src: '#f-svg-loading'\r\n })))\r\n }\r\n if (this.x.icon) {\r\n let icon = this.x.focusDropIcon && this.isCurrent && this.showDrop ? this.x.focusDropIcon :\r\n this.x.focusIcon && this.isCurrent ? this.x.focusIcon :\r\n this.x.dropIcon && this.showDrop ? this.x.dropIcon :\r\n this.x.icon\r\n r.push(this.html_icon(icon, 'w-button-icon f-flex-center' + (this.x.vertical ? '' : ' f-height')))\r\n }\r\n if (t) {\r\n\t\t\t\t\tconst title = this.pubParent && this.pubParent.x.flexSize && t\r\n r.push(h('div', {\r\n class: 'w-button-text'\r\n }, h('span', {class: 'w-button-text-line f-line-1', title}, t)))\r\n }\r\n if (this.isMore && this.x.showArrowIcon) {\r\n r.push(h(Img, {\r\n class: 'w-button-more f-flex-center f-height',\r\n src: this.x.arrowIcon || '.f-i .f-i-caret-down'\r\n }))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-button-close f-flex-center'\r\n }, h('i', {\r\n class: 'w-button-close-icon f-i f-i-close',\r\n onclick: this.clickClose,\r\n })))\r\n }\r\n return [\r\n h('div', {\r\n class: 'w-button-main f-oh f-height',\r\n ...(this.isCombo && !this.isDisabled && this.mouses),\r\n }, r),\r\n this.isCombo && h(Img, {\r\n class: 'w-button-drop f-flex-center f-height',\r\n src: '.f-i .f-i-caret-down',\r\n ...(!this.isDisabled && this.mouses),\r\n onclick: this.clickDrop\r\n }),\r\n\t\t\t\t\tthis.html_drop()\r\n ]\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'button'\r\n },\r\n hasChild() {\r\n const c = this.slots_children()\r\n return c && c.length\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n isMore() {\r\n return this.hasChild && !this.getOn('click')\r\n },\r\n isCombo() {\r\n return !!(this.hasChild && this.x.showArrowIcon && this.getOn('click'))\r\n },\r\n isDisabled() {\r\n return !!this.x.disabled || !!this.x.loading\r\n },\r\n html_props() {\r\n return {\r\n disabled: this.isDisabled,\r\n class: {\r\n [`z-face-${this.x.face}`]: this.x.face,\r\n 'z-combo': this.isCombo,\r\n 'z-more': this.isMore,\r\n 'z-on': this.isCurrent,\r\n 'z-ds': !!this.x.disabled,\r\n 'z-loading': !!this.x.loading,\r\n 'z-vertical': !!this.x.vertical,\r\n 'z-closable': !!this.x.closable,\r\n\t\t\t\t\t\t'z-drop': this.showDrop\r\n },\r\n onclick: this.onclick,\r\n ...(!this.isCombo && !this.isDisabled && this.mouses),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps, resolveComponent\r\n } from 'vue'\r\n import ButtonAbs from './ButtonAbs.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-menubutton',\r\n mixins: [ButtonAbs],\r\n methods: {\r\n\t\t\tajax(...args) {\r\n\t\t\t return this.parentMenu.rootCommander.ajax(...args)\r\n\t\t\t},\r\n\t\t\tsubmit(...args) {\r\n\t\t\t return this.parentMenu.rootCommander.submit(...args)\r\n\t\t\t},\r\n drop() {\r\n if (this.showDrop) return\r\n this.closeSub()\r\n this.showDrop = true\r\n this.parentMenu.currentMenuButton = this\r\n },\r\n onclick(e) {\r\n if (this.isMore) return\r\n //this.trigger(e)\r\n setTimeout(() => this.parentMenu.root.close(), 10)\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && e.currentTarget.classList.add('z-hv')\r\n if (this.isMore) {\r\n this.drop()\r\n } else {\r\n this.closeSub()\r\n }\r\n },\r\n closeSub() {\r\n if (this.parentMenu.currentMenuButton) {\r\n this.parentMenu.currentMenuButton.showDrop = false\r\n this.parentMenu.currentMenuButton = null\r\n }\r\n },\r\n clickClose(e) {\r\n e.stopPropagation()\r\n e.runType = 'click:close'\r\n this.trigger(e)\r\n },\r\n html_slots() {\r\n let t = this.x.text\r\n let r = []\r\n let src = this.x.icon\r\n let font = src && src.startsWith('.') && !src.includes('/')\r\n r.push(!src || font ? h('i', {\r\n class: 'w-menubutton-icon f-flex-center f-height ' + (src ? src.replace(/\\./g, '') : '')\r\n }) : h('img', {\r\n src: src,\r\n class: 'w-menubutton-icon f-flex-center f-height'\r\n }))\r\n\r\n if (t) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-text f-line-1'\r\n }, t))\r\n }\r\n if (this.x.closable) {\r\n r.push(h('div', {\r\n class: 'w-menubutton-close'\r\n }, h('i', {\r\n class: 'w-menubutton-close-icon f-i f-i-close',\r\n onclick: this.clickClose\r\n })))\r\n }\r\n r.push(h(Img, {\r\n class: 'w-menubutton-drop f-flex-center f-height',\r\n src: this.isMore ? (this.x.arrowIcon || '.f-i .f-i-caret-right') : ''\r\n }))\r\n if (this.showDrop) {\r\n\t\t\t\t\tlet dropProps = {\r\n autoHide: true,\r\n context: this,\r\n ownproperty: true,\r\n snap: () => this.el(),\r\n position: '21,12',\r\n indent: {top: 1, bottom: 1},\r\n onClose: () => this.showDrop = null\r\n }\r\n\t\t\t\t\tif (this.x.dropProps) dropProps = mergeProps(dropProps, this.x.dropProps)\r\n r.push(h(resolveComponent('w-menu'), dropProps, this.$slots))\r\n }\r\n return r\r\n }\r\n },\r\n computed: {\r\n tagName() {\r\n return 'button'\r\n },\r\n isMore() {\r\n return !!this.hasChild\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n ownerView() { // 因为业务会调用 $.vm(event), 所以返回commander的view\r\n const cmd = this.parentMenu.rootCommander\r\n return cmd ? cmd.ownerView : this.parentMenu.root.provideView\r\n },\r\n html_props() {\r\n return {\r\n disabled: !!this.x.disabled,\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': !!this.x.disabled,\r\n 'z-drop': this.showDrop,\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: !this.x.disabled && (e => e.currentTarget.classList.remove('z-hv')),\r\n onclick: this.onclick\r\n }\r\n }\r\n },\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menubutton {\r\n display: inline-flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n margin: 0;\r\n height: 32px;\r\n background: #fff;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-menubutton .f-i {\r\n color: #999;\r\n }\r\n\r\n .w-menubutton-icon {\r\n width: 30px;\r\n }\r\n\r\n .w-menubutton-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n }\r\n\r\n .w-menubutton-drop {\r\n width: 30px;\r\n margin-left: 5px;\r\n }\r\n\r\n .w-menubutton>.w-menubutton-close {\r\n margin-right: -5px;\r\n flex-shrink: 0;\r\n color: #aaa;\r\n }\r\n\r\n .w-menubutton-close-icon:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-menubutton.z-hv,\r\n .w-menubutton.z-drop {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-menubutton.z-ds {\r\n background-color: #eee;\r\n color: #b9b9b9;\r\n cursor: default;\r\n }\r\n\r\n .w-menubutton.z-ds .w-menubutton-icon {\r\n color: #bbb;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import ButtonAbs from './ButtonAbs.vue'\r\n import MenuButton from './MenuButton.vue'\r\n\r\n export default {\r\n name: 'w-button',\r\n mixins: [ButtonAbs],\r\n props: ['autoMenuButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n showArrowIcon: true,\r\n autoMenuButton: true,\r\n }\r\n },\r\n },\r\n render() {\r\n if (this.provideMenu_w && this.x.autoMenuButton) {\r\n return h(MenuButton, this.$props, this.$slots)\r\n } else {\r\n return this.html()\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h, resolveComponent} from 'vue'\r\n\r\n import Dialog from './Dialog.vue'\r\n import Button from './Button.vue'\r\n import MenuButton from './MenuButton.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n let inst = null\r\n\t\r\n\texport function closeMenu() {\r\n\t\tif (inst) {\r\n\t\t\t$.close(inst)\r\n\t\t\tinst = null\r\n\t\t}\r\n\t}\r\n\t\r\n\texport function menuRelate(ctx) {\r\n\t\treturn inst && (ctx.hasBubble(inst.context) || inst.hasBubble(ctx))\r\n\t}\r\n\r\n export default {\r\n name: 'w-menu',\r\n mixins: [Dialog],\r\n provide() {\r\n return {\r\n provideMenu_w: this\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n autoHide: true,\r\n independent: false,\r\n }\r\n },\r\n hasBubble(a, b) {\r\n if (this.contains(a, b)) return true\r\n let p = $(a).closest('w-menu,w-menubutton')\r\n if (p && (p = p.parentMenu) && p.rootCommander == this.rootCommander) return true\r\n },\r\n arrow(a) {\r\n let b = this.$refs.bbr.el()\r\n let c = $.bcr(b)\r\n b.scrollTop += c.height * a\r\n },\r\n mousewheel(e) {\r\n this.arrow(e.deltaY < 0 ? 1 : -1)\r\n },\r\n getRoot() {\r\n let c = this\r\n while (c.getCommander() && c.getCommander().isWidget && c.getCommander().$options.name === 'w-menubutton') c = c.getCommander().parentMenu\r\n return c\r\n },\r\n // implement\r\n setVisibleSub(a) {\r\n if (a === false && this.currentMenuButton) {\r\n this.currentMenuButton.showDrop = false\r\n // this.subMenu.setVisibleSub(a)\r\n }\r\n },\r\n // implement\r\n checkOutScreen() {\r\n let c = this._pos\r\n if (c.mag_l || c.mag_r) {\r\n if (c.bottom < 0) {\r\n c.top += c.bottom\r\n if (c.top < 0) {\r\n this.autoSetMaxHeight(c.height + c.top)\r\n c.top = 0\r\n }\r\n this.fixSnapStyle()\r\n } else if (c.top < 0) {\r\n c.bottom += c.top\r\n if (c.bottom < 0) {\r\n this.autoSetMaxHeight(c.height + c.bottom)\r\n c.bottom = 0\r\n }\r\n this.fixSnapStyle()\r\n }\r\n } else {\r\n if (c.bottom < 0) {\r\n this.autoSetMaxHeight(c.height + c.bottom)\r\n } else if (c.top < 0) {\r\n this.autoSetMaxHeight(c.height + c.top)\r\n }\r\n }\r\n },\r\n html_buttons() {\r\n return this.slots_children()\r\n },\r\n html_slots() {\r\n return [\r\n this.x.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-up'\r\n })),\r\n h(Vertical, {\r\n class: 'w-menu-bbr',\r\n height: '*',\r\n ref: 'bbr',\r\n onwheel: this.mousewheel\r\n }, this.$slots),\r\n this.x.maxHeight && h('div', {\r\n class: 'w-menu-arr f-oh',\r\n onclick: e => this.arrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-caret-down'\r\n })),\r\n ]\r\n }\r\n },\r\n computed: {\r\n root() {\r\n return this.getRoot()\r\n },\r\n rootCommander() {\r\n return this.root.commander\r\n },\r\n parentMenu() {\r\n let p = this.provideView\r\n while (p && !p.isView) p = p.provideView\r\n return p\r\n },\r\n\t\t\tdefaultSnapTargetElem() {\r\n let c = this.getCommander()\r\n if (c)\r\n return c.isWidget ? c.snapElem() : c\r\n\t\t\t},\r\n\t\t\tdefaultSnapPosition() {\r\n\t\t\t return '-bl,-br,-tl,-tr'\r\n\t\t\t},\r\n\t\t\tscope_props() { // implement Dialog.scope_props\r\n if (this.rootCommander) {\r\n const cmd = $(this.rootCommander)\r\n let scopeId = cmd.$.vnode.scopeId || this.$.vnode.scopeId || this.$.parent.vnode.scopeId\r\n if (scopeId) {\r\n \treturn {[`${scopeId}`]: ''}\r\n }\r\n }\r\n\t\t\t}\r\n },\r\n mounted() {\r\n if (!this.context || (this.context.$options && this.context.$options.name !== 'w-menubutton')) {\r\n if (inst && inst.context !== this.context) {\r\n $.close(inst)\r\n }\r\n inst = this\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-menu {\r\n box-shadow: none;\r\n border: 1px solid #ccc;\r\n background: #fff;\r\n }\r\n\r\n .w-menu .w-split {\r\n height: 1px;\r\n background: #ddd;\r\n margin: 2px 0;\r\n }\r\n\r\n .w-menu-arr {\r\n height: 18px;\r\n line-height: 1;\r\n text-align: center;\r\n cursor: pointer;\r\n }\r\n\r\n .w-menu-arr:hover {\r\n background: #f5f5f5;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Dialog from './Dialog.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-loading',\r\n mixins: [Dialog],\r\n props: ['text', 'icon'],\r\n methods: {\r\n x_default() {\r\n return {\r\n //local: true,\r\n }\r\n },\r\n html_slots() {\r\n return h(Img, {\r\n src: this.x.icon !== undefined ? this.x.icon : '#f-svg-loading',\r\n text: this.x.text !== undefined ? this.x.text : $.loc.loading\r\n })\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-dialog'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-loading {\r\n padding: 10px;\r\n border-radius: 10px;\r\n background: rgba(0, 0, 0, .6);\r\n color: #fff;\r\n box-shadow: none;\r\n }\r\n\r\n .w-loading .f-svg {\r\n width: 30px;\r\n height: 30px;\r\n fill: #fff;\r\n }\r\n .w-loading .f-svg>use {\r\n stroke: #fff;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n h\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-table',\r\n mixins: [WidgetBase],\r\n props: ['face', 'scroll-x', 'scroll-y'],\r\n provide() {\r\n return {\r\n _provideTable: this,\r\n provideLevel: -1,\r\n provideParentTR: null,\r\n }\r\n },\r\n data() {\r\n return {\r\n sticky: {left: null, right: null, observers: []},\r\n }\r\n },\r\n mounted() {\r\n this.$watch('hasSticky', (v) => {\r\n this.$nextTick(() => this.observeSticky())\r\n }, {immediate: true})\r\n this.$el.setAttribute('w-scroll-x', 'left')\r\n if ($.br.chrome && $.br.chrome <= 60) { //低版本谷歌表格宽度有变化时,sticky的td内容会不可见。因此执行一个强制重新渲染的步骤\r\n new ResizeObserver(() => {\r\n this.$el.setAttribute('w-compact-resize-sticky', '')\r\n requestAnimationFrame(() => this.$el.removeAttribute('w-compact-resize-sticky'))\r\n }).observe(this.$el)\r\n }\r\n },\r\n methods: {\r\n observeSticky() {\r\n const observe = (e) => this.initFixedCells('left').concat(this.initFixedCells('right'))\r\n for (let ob of this.sticky.observers) {\r\n ob.disconnect()\r\n }\r\n let observers = []\r\n $.lodash.each(observe(), cell => {\r\n let ob = new ResizeObserver(observe)\r\n ob.observe(cell)\r\n observers.push(ob)\r\n })\r\n this.sticky.observers = observers\r\n },\r\n initFixedCells(dir) {\r\n let sticky = null\r\n let offset = 0\r\n let fixedCells = $.lodash.map(this.$el.querySelector(`thead`).querySelectorAll(`td[w-fixed=\"${dir}\"]`))\r\n if (dir === 'right') fixedCells.reverse()\r\n fixedCells.forEach(td => {\r\n (sticky || (sticky = [])).push({colIndex: td.cellIndex, offset})\r\n offset += td.offsetWidth\r\n })\r\n this.sticky[dir] = sticky\r\n return fixedCells\r\n },\r\n html_slots() {\r\n return [\r\n this.slotHooks.thead, this.slotHooks.tbody, this.slotHooks.hiddens || [],\r\n ]\r\n },\r\n },\r\n computed: {\r\n slotHooks() {\r\n const a = {}\r\n this.slots_children().forEach(o => {\r\n let n = o.type.name && o.type.name.slice(2)\r\n if (n) {\r\n if (n === 'hidden') {\r\n (a.hiddens || (a.hiddens = [])).push(o)\r\n } else\r\n a[n] = o\r\n }\r\n })\r\n return a\r\n },\r\n colgroup() {\r\n return $.slotsChildren(this.slotHooks.columns.children).map(v => v.props)\r\n },\r\n hasSticky() {\r\n let s = ''\r\n for (let col of this.colgroup) {\r\n if (col.fixed) s += col.fixed\r\n }\r\n return s\r\n },\r\n html_class() {\r\n return ['f-flex-column', this.x.face && 'z-face-' + this.x.face]\r\n },\r\n html_style() {\r\n let r = {}\r\n if (this.sticky.left) {\r\n this.sticky.left.forEach(v => r[`--w-td-fixed-left-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n if (this.sticky.right) {\r\n this.sticky.right.forEach(v => r[`--w-td-fixed-right-${v.colIndex}`] = `${v.offset}px`)\r\n }\r\n return r\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-table {\r\n position: relative;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n }\r\n\r\n .w-table-tbl {\r\n table-layout: fixed;\r\n border-collapse: separate;\r\n width: 100%;\r\n }\r\n\r\n .w-thead {\r\n overflow: hidden;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-tr {\r\n height: 40px;\r\n }\r\n\r\n .w-td,\r\n .w-th {\r\n background: #fff;\r\n }\r\n\r\n .w-thead .w-td,\r\n .w-th {\r\n background: var(--w-thead-background-color);\r\n }\r\n\r\n .w-tbody .w-td {\r\n border-bottom: 1px solid var(--w-td-border-color);\r\n }\r\n\r\n .w-tr.z-on .w-td {\r\n background: var(--w--vice-color);\r\n }\r\n\r\n .w-th {\r\n font-weight: normal;\r\n }\r\n\r\n .w-th.z-sortable {\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort {\r\n height: 28px;\r\n line-height: 1;\r\n color: #aaa;\r\n cursor: pointer;\r\n }\r\n\r\n .w-th-sort-up:before {\r\n position: relative;\r\n top: 1px;\r\n }\r\n\r\n .w-th-sort-down:before {\r\n position: relative;\r\n top: -4px;\r\n }\r\n\r\n .w-th.z-asc .w-th-sort-up {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-th.z-desc .w-th-sort-down {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-td {\r\n padding: 5px;\r\n }\r\n\r\n .w-td.z-align-left {\r\n text-align: left;\r\n }\r\n\r\n .w-td.z-align-center {\r\n text-align: center;\r\n }\r\n\r\n .w-td.z-align-right {\r\n text-align: right;\r\n }\r\n\r\n .w-td.z-valign-top {\r\n vertical-align: top;\r\n }\r\n\r\n .w-td.z-valign-middle {\r\n vertical-align: middle;\r\n }\r\n\r\n .w-td.z-valign-bottom {\r\n vertical-align: bottom;\r\n }\r\n\r\n .w-td>.w-triplebox>.w-formbase-main>.w-input,\r\n .w-td>.w-radio>.w-formbase-main>.w-input {\r\n min-height: auto;\r\n }\r\n\r\n .w-table.z-face-cell {\r\n border: 1px solid var(--w-table-border-color);\r\n }\r\n\r\n .w-table.z-face-cell .w-td {\r\n border: 0 solid var(--w-td-border-color, var(--w-table-border-color));\r\n border-right-width: 1px;\r\n border-bottom-width: 1px;\r\n }\r\n\r\n .w-table.z-face-cell .w-td-lastborder {\r\n border-right: 0;\r\n }\r\n\r\n .w-table.z-face-cell .w-tbody {\r\n margin-bottom: -1px;\r\n }\r\n\r\n .w-td-fixed-left,\r\n .w-td-fixed-right {\r\n position: sticky;\r\n z-index: 1;\r\n }\r\n\r\n .w-td-fixed-left-last:after {\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-td-fixed-right-first:after {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: -1px;\r\n width: 30px;\r\n transform: translateX(-100%);\r\n content: '';\r\n pointer-events: none;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-left-last:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=right] .w-td-fixed-left-last:after {\r\n box-shadow: inset 10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-scroll-show-x][w-scroll-x=left] .w-td-fixed-right-first:after,\r\n .w-table[w-scroll-show-x][w-scroll-x=center] .w-td-fixed-right-first:after {\r\n box-shadow: inset -10px 0 8px -8px #ddd;\r\n }\r\n \r\n .w-table[w-compact-resize-sticky] .w-td-fixed-left,\r\n .w-table[w-compact-resize-sticky] .w-td-fixed-right {\r\n position: static;\r\n }\r\n \r\n</style>\r\n","<script>\r\n export default {\r\n name: 'w-columns'\r\n }\r\n</script>\r\n\r\n","<script>\r\n export default {\r\n name: 'w-column',\r\n props: ['width', 'minWidth'],\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['pub', 'current'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n methods: {\r\n inCurrent(target) {\r\n let c = this.x.current\r\n if (c == null) return\r\n if (Array.isArray(c)) {\r\n return -1 < c.findIndex(v => this.isCurrentChild(v, target))\r\n } else {\r\n return this.isCurrentChild(c, target)\r\n }\r\n },\r\n isCurrentChild(current, target) {\r\n if (typeof current === 'object') {\r\n let d = target.isWidget ? (target.x || target).data : (target.props && target.props.data)\r\n if (d) {\r\n for (let i in current)\r\n if ($.lodash.get(d, i) == current[i]) return true\r\n }\r\n } else if (current == (target.isWidget ? target.getKey() : target.key)) {\r\n return true\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","<template>\r\n <slot></slot>\n</template>","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import Scroll from './Scroll.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n\r\n export default {\r\n name: 'w-thead',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['br', 'sort'],\r\n inject: ['_provideTable'],\r\n provide() {\r\n return {\r\n provideLeafLevel: -2,\r\n provideParentLeaf: null,\r\n provideInBody: false,\r\n _provideThead: this,\r\n _provideTBody: false,\r\n }\r\n },\r\n data() {\r\n return {\r\n rows: null,\r\n sortUID: null,\r\n }\r\n },\r\n methods: {\r\n isExpanded() {\r\n return true\r\n },\r\n slot_rows() {\r\n if (this.$slots.row) {\r\n let r\r\n let chd = this.x.children\r\n if (Array.isArray(chd)) {\r\n let i = 0\r\n r = chd.map((item, index) => {\r\n let key\r\n const row = this.$slots.row({item, index}).map(t => {\r\n if (!t.props) t.props = {}\r\n t.props.rowIndex = i++\r\n if (!key) key = t.key\r\n return t\r\n })\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => row})\r\n } else {\r\n return row\r\n }\r\n })\r\n }\r\n return r || []\r\n } else {\r\n return this.slots_children().map((vr, vi) => $.lodash.set(vr, 'props.rowIndex', vi))\r\n }\r\n },\r\n html_tbody() {\r\n let cg = this._provideTable.colgroup\r\n let rows = this.slot_rows()\r\n let style = {}\r\n if (!this._provideTable.fixed) {\r\n let mw = 0\r\n cg.forEach(c => {\r\n mw += $.number(c.width) || $.number(c['min-width'])\r\n })\r\n if (mw) {\r\n style.minWidth = $.unitSize(mw)\r\n }\r\n }\r\n this.rows = {}\r\n return h('div', {\r\n class: 'w-table-tbl-wrap'\r\n }, h('table', {\r\n ref: 'table',\r\n cellpadding: 0,\r\n cellspacing: 0,\r\n class: 'w-table-tbl',\r\n style,\r\n }, [\r\n //h('colgroup', null, cg.map(v => h('col', {style: {width: v.width == '*' ? null : $.unitSize(v.width)}}))),\r\n h('thead', null, h('tr', null, cg.map(v => h('td', {\r\n style: {\r\n width: v.width == '*' ? null : $.unitSize(v.width),\r\n minWidth: $.unitSize(v['min-width']),\r\n },\r\n 'w-fixed': v.fixed\r\n })))),\r\n h('tbody', rows)\r\n ]))\r\n },\r\n html_slots() {\r\n return this.html_tbody()\r\n }\r\n },\r\n computed: {\r\n isEscape() {\r\n return this.x.escape\r\n },\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import THead from './TableTHead.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-tbody',\r\n mixins: [THead, Scroll],\r\n inject: ['_provideTable'],\r\n props: ['children'],\r\n provide() {\r\n return {\r\n _provideThead: null,\r\n provideInBody: true,\r\n _provideTBody: this,\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this._provideTable.x, (x) => {\r\n this.x.scrollX = x.scrollX\r\n this.x.scrollY = this._provideTable.fixed ? true : x.scrollY\r\n }, {\r\n immediate: true\r\n })\r\n this.$watch('current', () => this.viewCurrent())\r\n },\r\n methods: {\r\n\t\t\tgetCurrent() {\r\n\t\t\t const tr = $.q('.w-tr.z-on', this.el())[0]\r\n\t\t\t return tr && $(tr)\r\n\t\t\t},\r\n viewCurrent(f) {\r\n this.$nextTick(() => {\r\n f = f || this.getCurrent()\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView())\r\n }\r\n })\r\n },\r\n onScroll(e) {\r\n let hd = this._provideTable.slotHooks.thead\r\n if (hd) {\r\n hd.el.scrollLeft = e.target.scrollLeft\r\n }\r\n },\r\n onScrollPosition(v) {\r\n let el = this._provideTable.el()\r\n if (el && v == 'left' || v == 'center' || v == 'right') {\r\n el.setAttribute('w-scroll-x', v)\r\n }\r\n },\r\n onScrollAttributeChange(e) {\r\n let el = this._provideTable.el()\r\n if (el) {\r\n e.forEach(m => {\r\n let n = m.attributeName\r\n m.target.hasAttribute(n) ? el.setAttribute(n, '') : el.removeAttribute(n)\r\n })\r\n }\r\n },\r\n html_slots() {\r\n return this.html_scroll_slots(this.html_tbody())\r\n }\r\n },\r\n computed: {\r\n inBody() {\r\n return true\r\n },\r\n html_class() {\r\n return ['w-vertical f-flex-1 f-oh', this.html_scroll_class]\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n\r\n export default {\r\n name: 'w-tr',\r\n pubParentName: 'w-tbody,w-thead',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['rowIndex', 'expanded', 'children'],\r\n inject: ['_provideTable', 'providePubParent', 'provideInBody', '_provideTBody', 'provideLevel', 'provideParentTR'],\r\n provide() {\r\n return {\r\n provideParentTR: this,\r\n provideLevel: this.provideLevel + 1,\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n return $.hasChild(this.$slots, 'rows')\r\n },\r\n isDisplay() {\r\n if (!this.provideParentTR) return true\r\n let p = this\r\n while (p = p.provideParentTR) {\r\n if (!p.isExpanded()) return false\r\n }\r\n return true\r\n },\r\n isExpanded() {\r\n return this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentTR) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n toggle(exp, fn) {\r\n\t\t\t\tconst o = this.el('.w-leaf')\r\n\t\t\t\tlet leaf = o && $(o)\r\n if (leaf) {\r\n leaf.toggle(exp, fn)\r\n } else {\r\n this.setExpanded(exp)\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n html_slots() {\r\n let ri = this.rowIndex\r\n let rs = this.pubParent.rows\r\n let ci = 0\r\n return this.slots_children().map(td => {\r\n if (rs[ri] && rs[ri][ci]) {\r\n ci += rs[ri][ci]\r\n }\r\n td.dfishColIndex = ci\r\n if (td.props) {\r\n if (td.props.rowspan > 1) {\r\n for (let j = 1, r; j < td.props.rowspan; j++) {\r\n r = rs[ri + j] || (rs[ri + j] = {})\r\n r[ci] = $.number(td.props.colspan) || 1\r\n }\r\n }\r\n if (td.props.colspan > 1) ci += td.props.colspan - 1\r\n }\r\n ci++;\r\n return td\r\n })\r\n },\r\n html() {\r\n if (this.x.children && Array.isArray(this.x.children) && this._provideTBody && this._provideTBody.$slots.row) {\r\n return [\r\n this.html_self(true),\r\n this.x.children.map((item, index) => {\r\n let key\r\n const row = this._provideTBody.$slots.row({item, index})\r\n for (let r of row) {\r\n if (!key) {\r\n key = r.key\r\n }\r\n }\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => row})\r\n } else {\r\n return row\r\n }\r\n })\r\n ]\r\n }\r\n return this.$slots.row ? [this.html_self(true), this.$slots.row()] : this.html_self()\r\n },\r\n },\r\n computed: {\r\n tagName() {\r\n return 'tr'\r\n },\r\n level() {\r\n return this.provideLevel + 1\r\n },\r\n isEscape() {\r\n return this.pubParent.x.escape\r\n },\r\n inCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n if (this.provideInBody) {\r\n return {\r\n class: {\r\n 'z-on': this.inCurrent,\r\n 'z-expanded': this.isExpanded(),\r\n 'f-hide': !this.isDisplay()\r\n },\r\n onmouseenter: this.onmouseenter,\r\n onmouseleave: this.onmouseleave\r\n }\r\n }\r\n \r\n }\r\n },\r\n mounted() {\r\n if (this.inCurrent) this.pubParent.viewCurrent(this)\r\n }\r\n\r\n }\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n \r\n export default {\r\n name: 'w-td',\r\n props: ['colspan', 'rowspan', 'align', 'valign', 'data'],\r\n inject: ['_provideTable', 'provideInBody'],\r\n methods: {\r\n td_props() {\r\n let ci = this.$.vnode.dfishColIndex\r\n let col = this._provideTable.colgroup[ci] || false\r\n let len = this._provideTable.colgroup.length\r\n let colspan = this.colspan\r\n if (colspan == -1) {\r\n colspan = len\r\n }\r\n let last = ci + (colspan || 1) == len\r\n return {\r\n class: ['w-td',\r\n last && 'w-td-lastborder',\r\n this.provideInBody && col.class, \r\n col.fixed && {\r\n [`w-td-fixed-${col.fixed}`]: true, \r\n [`w-td-fixed-left-last`]: col.fixed === 'left' && (this._provideTable.colgroup[ci + 1] && this._provideTable.colgroup[ci + 1].fixed != col.fixed),\r\n [`w-td-fixed-right-first`]: col.fixed === 'right' && (this._provideTable.colgroup[ci - 1] && this._provideTable.colgroup[ci - 1].fixed != col.fixed),\r\n }\r\n ],\r\n style: [this.provideInBody && col.style, col.fixed && {[`${col.fixed}`]: `var(--w-td-fixed-${col.fixed}-${ci})`}],\r\n colspan,\r\n rowspan: this.rowspan,\r\n align: this.align || col.align,\r\n valign: this.valign || col.valign,\r\n }\r\n }\r\n },\r\n render() {\r\n return h('td', this.td_props(), this.$slots)\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import TD from './TableTD.vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-th',\r\n mixins: [TD, WidgetBase],\r\n props: ['sortable', 'sortOrders', 'sortOrderDefault'],\r\n inject: ['_provideThead'],\r\n emits: ['click:sort'],\r\n data() {\r\n return {\r\n sortType: null,\r\n sortOrder: null,\r\n }\r\n },\r\n methods: {\r\n onClick(e) {\r\n if (this.x.sortable) {\r\n this.clickSort(e, 'toggle')\r\n }\r\n },\r\n clickSort(e, order) {\r\n e.stopPropagation()\r\n let o = this.sortOrder\r\n if(this._provideThead.sortUID != this.uid) {\r\n o = null\r\n }\r\n let orders = this.x.sortOrders || ['asc', 'desc', null]\r\n if (order === 'toggle') {\r\n let i = orders.indexOf(o)\r\n o = orders[i < 0 || i == 2 ? 0 : i + 1]\r\n } else {\r\n o = o == order ? null : order\r\n }\r\n this.sortOrder = o\r\n this._provideThead.sortUID = this.uid\r\n e.value = o\r\n this.$emit('click:sort', e, o)\r\n },\r\n html_slots() {\r\n return h(Horizontal, {class: 'w-th-wrap', valign: 'middle', align: this.align || this.col.align}, {default: () => [\r\n h('div', {class: 'w-th-title'}, this.$slots),\r\n this.x.sortable ? h('div', {class: 'w-th-sort f-flex-column f-flex-center f-oh'}, [\r\n h('i', {class: 'f-i f-i-caret-up f-oh w-th-sort-up', onClick: e => this.clickSort(e, 'asc')}),\r\n h('i', {class: 'f-i f-i-caret-down f-oh w-th-sort-down', onClick: e => this.clickSort(e, 'desc')}),\r\n ]) : []\r\n ]})\r\n }\r\n },\r\n computed: {\r\n col() {\r\n return this._provideTable.colgroup[this.$.vnode.dfishColIndex] || false\r\n },\r\n tagName() {\r\n return 'th'\r\n },\r\n html_props() {\r\n return mergeProps(this.td_props(), {\r\n class: {'z-sortable': this.x.sortable, [`z-${this.sortOrder}`]: this.sortOrder && this._provideThead.sortUID == this.uid},\r\n onClick: this.onClick,\r\n }) \r\n },\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n mixins: [Vertical],\r\n emits: ['scroll'],\r\n methods: {\r\n onScroll(e) {\r\n this.$emit('scroll', e)\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n","<template>\r\n <w-vertical ref=\"root\" class=\"w-table-v2\">\r\n <w-horizontal class=\"w-table-v2-thead\" :style=\"{height:`${itemHeight}px`}\">\r\n <div :class=\"['w-table-v2-th', {[`z-align-${col.align}`]: col.align}]\" :style=\"tdStyle(col,index)\" v-for=\"(col,index) in columns\" :key=\"index\">\r\n <div class=\"'w-table-v2-th-text f-line-1\">{{col.text}}</div>\r\n </div>\r\n </w-horizontal>\r\n <TreeV2Wrap ref=\"wrap\" height=\"*\" class=\"w-table-v2-tbody\" :scroll-y=\"true\" @scroll=\"onScroll\">\r\n <slot v-if=\"loading\" name=\"loading\">\r\n <div class=\"w-tree-loading w-table-v2-loading\">\r\n <w-img src=\"#f-svg-loading-1\" width=\"28\" height=\"28\"></w-img>\r\n </div>\r\n </slot>\r\n <div v-else class=\"w-table-v2-wrap\" :style=\"wrapStyle\">\r\n <div v-for=\"(item,index) in showList\" :key=\"index\" :class=\"['w-table-v2-tr', itemClass(item, index), {'z-on': isCurrent(item)}]\" :style=\"itemStyle(item)\" @click=\"clickItem($event, item)\">\r\n <div v-for=\"(col,j) in columns\" :key=\"j\" :class=\"['w-table-v2-td', {[`z-align-${col.align}`]: col.align}]\" :style=\"tdStyle(col,j)\">\r\n <div v-if=\"col.type=='leaf'\" :class=\"['w-leaf', {'z-folder': isFolder(item)}]\" :style=\"leafStyle(item)\">\r\n <w-img v-if=\"isItemLoading(item)\" src=\"#f-svg-loading\" class=\"w-leaf-loading\"></w-img>\r\n <div v-else :class=\"['w-leaf-toggle f-i', item.expanded ? 'f-i-caret-down' : 'f-i-caret-right']\" @click=\"clickToggle($event, item)\">\r\n </div>\r\n <w-img v-if=\"itemIcon(item)\" :src=\"itemIcon(item)\" class=\"w-leaf-icon\"></w-img>\r\n <div class=\"w-leaf-text f-line-1\" :title=\"item[col.field]\">{{item[col.field]}}</div>\r\n </div>\r\n <slot v-else :name=\"col.field\" :item=\"item\" :rowIndex=\"index\" :column=\"col\" :colIndex=\"j\">\r\n <div class=\"'w-table-v2-td-text f-line-1\">{{item[col.field]}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </div>\r\n </TreeV2Wrap>\r\n </w-vertical>\r\n\r\n</template>\r\n<script>\r\n export default {\r\n name: 'w-table-v2'\r\n }\r\n</script>\r\n<script setup>\r\n import $ from '../dfish.js'\r\n import { ref, computed, watch, onMounted, nextTick } from 'vue';\r\n import TreeV2Wrap from './TreeV2Wrap.vue';\r\n \r\n const emits = defineEmits(['click:item'])\r\n\r\n const props = defineProps({\r\n alias: {\r\n type: Object,\r\n default() {\r\n return {}\r\n }\r\n },\r\n children: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n current: {\r\n type: [String, Number, Array]\r\n },\r\n itemHeight: {\r\n type: [String, Number],\r\n default: 40\r\n },\r\n src: {\r\n type: Function\r\n },\r\n columns: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n loading: {\r\n type: Boolean\r\n }\r\n })\r\n \r\n let {alias, itemHeight, current} = props\r\n \r\n const propValue = alias.value || 'id'\r\n const propText = alias.text || 'text'\r\n const propChildren = alias.children || 'children'\r\n const propClass = alias.class || 'class'\r\n \r\n const leafSymbol = Symbol('leaf')\r\n const showCount = ref(0)\r\n const scrollTop = ref(0)\r\n const flatList = ref([])\r\n const root = ref()\r\n const wrap = ref()\r\n const flow = ref()\r\n const xLoading = ref(false)\r\n const loading = computed(() => props.loading || xLoading.value)\r\n \r\n const wrapStyle = computed(() => {\r\n return {\r\n height: `${flatList.value.length * itemHeight}px`\r\n }\r\n })\r\n \r\n const tdStyle = (col, index) => {\r\n const s = {}\r\n if (!col.width || col.width == '*') {\r\n s.flex = 1\r\n } else {\r\n s.width = $.unitSize(col.width)\r\n }\r\n if (col.minWidth) s.minWidth = $.unitSize(col.minWidth)\r\n return s\r\n }\r\n \r\n const itemClass = (item) => {\r\n return typeof propClass === 'function' ? propClass(item) : item[propClass]\r\n }\r\n \r\n const itemStyle = (item) => {\r\n return {\r\n height: `${itemHeight}px`,\r\n top: `${item[leafSymbol].showIndex * itemHeight}px`,\r\n }\r\n }\r\n \r\n const leafStyle = (item) => {\r\n return {\r\n paddingLeft: `${item[leafSymbol].level * 16}px`\r\n }\r\n }\r\n \r\n const itemIcon = (item) => {\r\n return isFolder(item) ? (item.expanded ? item.expandedIcon : item.collapsedIcon) : item.icon\r\n }\r\n\r\n const isItemLoading = (item) => {\r\n return item[leafSymbol].loading\r\n }\r\n \r\n const isFolder = (item) => {\r\n return (item[propChildren] && item[propChildren].length) || (item[leafSymbol].src && !item[leafSymbol].loaded)\r\n }\r\n \r\n const isCurrent = (item) => {\r\n return Array.isArray(props.current) ? props.current.includes(item[propValue]) : (props.current === item[propValue])\r\n }\r\n \r\n let autoFocus = true\r\n let autoFocusTimer\r\n const clickItem = (e, item) => {\r\n autoFocus = false\r\n clearTimeout(autoFocusTimer)\r\n autoFocusTimer = setTimeout(() => autoFocus = true, 500)\r\n emits('click:item', e, item)\r\n }\r\n \r\n const clickToggle = (e, item) => {\r\n e.stopPropagation()\r\n toggle(item)\r\n }\r\n \r\n const toggle = async (item, expanded) => {\r\n if (typeof item === 'string') {\r\n item = find(item)\r\n }\r\n if (!item) return\r\n const leaf = item[leafSymbol]\r\n if (leaf.loading) return\r\n item.expanded = expanded != null ? expanded : !item.expanded\r\n if (item.expanded) {\r\n if (item[propChildren]) {\r\n const i = flatList.value.indexOf(item)\r\n const cs = toFlat(item[propChildren], item)\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1)\r\n flatList.value = prev.concat(cs, next)\r\n } else if (leaf.src && !leaf.loaded) {\r\n leaf.loading = true\r\n await leaf.src().catch(() => {})\r\n leaf.loading = false\r\n leaf.loaded = true\r\n toggle(item, item.expanded)\r\n }\r\n } else {\r\n const i = flatList.value.indexOf(item)\r\n const count = desCount(item[propChildren])\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1 + count)\r\n flatList.value = prev.concat(next)\r\n }\r\n }\r\n\r\n const onScroll = (e) => {\r\n if (scrollTop.value !== e.target.scrollTop)\r\n scrollTop.value = e.target.scrollTop\r\n }\r\n\r\n // 树形数据扁平化\r\n const toFlat = (children, parent) => {\r\n let r = []\r\n if (children) {\r\n children.forEach(item => {\r\n r.push(item)\r\n const leaf = item[leafSymbol]\r\n if (!leaf) {\r\n item[leafSymbol] = {level: parent ? parent[leafSymbol].level + 1 : 0, parent, src: props.src && props.src(item)}\r\n }\r\n if (item[propChildren] && item[propChildren].length) {\r\n if (item.expanded) {\r\n r = r.concat(toFlat(item[propChildren], item))\r\n } else if (!leaf) { // 没有leaf的话也要做初始化\r\n toFlat(item[propChildren], item)\r\n }\r\n } else if (item.expanded && item[leafSymbol].src) {\r\n nextTick(() => toggle(item, true))\r\n }\r\n })\r\n }\r\n return r\r\n }\r\n \r\n const desCount = (children) => {\r\n let count = 0\r\n for (let item of children) {\r\n count ++\r\n if (item[propChildren] && item.expanded) {\r\n count += desCount(item[propChildren])\r\n }\r\n } \r\n return count\r\n }\r\n \r\n const find = (id, children) => {\r\n if (!children) children = props.children\r\n for (let item of children) {\r\n if (item[propValue] === id) return item\r\n if (item[propChildren] && item[propChildren].length) {\r\n const r = find(id, item[propChildren])\r\n if (r) return r\r\n }\r\n } \r\n }\r\n \r\n // 展开到指定ID的数据\r\n const expandTo = (id) => {\r\n const item = find(id)\r\n if (item) {\r\n let p = item\r\n let a = p\r\n while (p = p[leafSymbol].parent) {\r\n if (!p.expanded) {\r\n p.expanded = true\r\n a = p\r\n }\r\n }\r\n a && a != item && toggle(a, true)\r\n }\r\n return item\r\n }\r\n \r\n const merge = (newList) => {\r\n if (!Array.isArray(newList)) return []\r\n const oldList = JSON.parse(JSON.stringify(props.children))\r\n mergeChildren(newList, oldList)\r\n props.children.length = 0\r\n props.children.push.apply(props.children, newList)\r\n flatList.value = toFlat(newList)\r\n }\r\n \r\n const mergeChildren = (newList, oldList) => {\r\n for (let n of newList) {\r\n let o = oldList.find(v => v[propValue] === n[propValue])\r\n if (o) {\r\n if (o[propChildren]) {\r\n if (n[propChildren]) mergeChildren(n[propChildren], o[propChildren])\r\n else n[propChildren] = o[propChildren]\r\n }\r\n if (o.expanded != null) {\r\n n.expanded = o.expanded\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 界面可见的数据\r\n const showList = computed(() => {\r\n const topCount = Math.floor(scrollTop.value / itemHeight)\r\n const r = flatList.value.slice(topCount, topCount + showCount.value).map((item, index) => {\r\n item[leafSymbol].showIndex = index + topCount\r\n return item\r\n })\r\n return r\r\n })\r\n \r\n const initShowCount = () => {\r\n flow.value = wrap.value.$refs.wScrollOverflow.getBoundingClientRect()\r\n showCount.value = Math.ceil(flow.value.height / itemHeight) + 1\r\n }\r\n \r\n const focus = async (id) => {\r\n if (!showList.value.find(n => id === n[propValue])) {\r\n expandTo(id)\r\n }\r\n const showIndex = showList.value.findIndex(n => id === n[propValue])\r\n if (showIndex === -1 || showIndex === showList.value.length - 1) {\r\n const item = find(id)\r\n const i = flatList.value.indexOf(item)\r\n if (i > -1) {\r\n await nextTick()\r\n root.value.scrollToY(((i + 1) * itemHeight) - (flow.value.height / 2))\r\n }\r\n }\r\n }\r\n \r\n const watchCurrent = async (val) => {\r\n await nextTick()\r\n current = val\r\n val = val && $.arrayID(val)\r\n if (!val || !val.length) return\r\n for (let v of val) {\r\n if (!showList.value.find(n => v === n[propValue])) {\r\n expandTo(v)\r\n }\r\n }\r\n if (autoFocus) {\r\n focus(val[0])\r\n }\r\n }\r\n \r\n onMounted(async () => {\r\n watch(() => wrap.value.wScrollSizeY, (ssy) => {\r\n initShowCount()\r\n }, {immediate: true})\r\n watch(() => props.children, (children) => {\r\n flatList.value = toFlat(children)\r\n if (current && current == props.current) { // 此判断避免重复聚焦\r\n watchCurrent(props.current)\r\n }\r\n }, {immediate: true})\r\n watch(() => props.current, watchCurrent, {deep: true})\r\n if (!props.children || props.children.length == 0) {\r\n const src = props.src && props.src()\r\n if (src) {\r\n xLoading.value = true\r\n await src().catch(() => {})\r\n xLoading.value = false\r\n }\r\n }\r\n })\r\n \r\n defineExpose({toggle, focus, find, merge})\r\n \r\n</script>\r\n<style>\r\n .w-table-v2-thead {\r\n display: flex;\r\n height: 40px;\r\n }\r\n .w-table-v2-th,\r\n .w-table-v2-td {\r\n display: flex;\r\n align-items: center;\r\n padding: 0 10px;\r\n min-width: 0;\r\n }\r\n .w-table-v2-th {\r\n background: var(--w-thead-background-color);\r\n }\r\n .w-table-v2-wrap {\r\n position: relative;\r\n }\r\n .w-table-v2-tr {\r\n position: absolute;\r\n display: flex;\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 40px;\r\n }\r\n .w-table-v2-td {\r\n border-bottom: 1px solid var(--w-td-border-color);\r\n }\r\n .w-table-v2-th.z-align-center,\r\n .w-table-v2-td.z-align-center {\r\n justify-content: center;\r\n }\r\n .w-table-v2-th.z-align-right,\r\n .w-table-v2-td.z-align-right {\r\n justify-content: flex-end;\r\n }\r\n .w-table-v2-td .w-leaf {\r\n flex: 1;\r\n min-width: 0;\r\n min-height: auto;\r\n }\r\n .w-table-v2-td .w-leaf:hover {\r\n background: transparent;\r\n }\r\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n\r\n export default {\r\n name: 'w-grid',\r\n mixins: [Scroll],\r\n props: ['columns', 'rows', 'gap', 'defaultColspan', 'face', 'labelWidth'],\r\n methods: {\r\n x_default() {\r\n return {\r\n columns: 12,\r\n gap: 0,\r\n\t\t\t\t\tface: 'normal',\r\n }\r\n },\r\n html_slots() {\r\n return this.x.scrollX || this.x.scrollY ? this.html_scroll_slots() : h('div', {\r\n class: 'w-grid-cont',\r\n style: this.html_scroll_cont_style,\r\n }, this.$slots)\r\n },\r\n },\r\n computed: {\r\n html_props() {\r\n return {\r\n class: [this.x.rows ? 'z-full' : 'z-auto', this.x.face && 'z-face-' + this.x.face, this.html_scroll_class],\r\n\t\t\t\t\tstyle: {\r\n\t\t\t\t\t\t'--important-label-width': $.unitSize(this.x.labelWidth)\r\n\t\t\t\t\t}\r\n }\r\n },\r\n html_scroll_cont_style() {\r\n let cols = this.x.columns\r\n if ($.isNumber(cols)) cols = `repeat(${cols}, 1fr)`\r\n let rows = this.x.rows\r\n if ($.isNumber(rows)) rows = `repeat(${rows}, 1fr)`\r\n let dc = this.x.defaultColspan\r\n return {\r\n 'grid-template-columns': cols,\r\n 'grid-template-rows': rows,\r\n 'grid-gap': this.x.gap ? $.unitSize(this.x.gap) : '',\r\n '--w-grid-colspan': (dc == -1 || !dc ? '' : `span ${dc}`),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-grid {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont {\r\n display: grid;\r\n grid-auto-flow: row;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-grid-cont>*,\r\n .w-grid.w-scroll>.w-scroll-overflow>.w-scroll-cont>* {\r\n grid-column: var(--w-grid-colspan, 1 / -1);\r\n grid-row: var(--w-grid-rowspan);\r\n }\r\n\r\n .w-grid.z-full>.w-grid-cont {\r\n height: 100%;\r\n }\r\n\r\n .w-grid.w-scroll.z-auto>.w-scroll-overflow>.w-scroll-cont {\r\n min-height: auto;\r\n }\r\n\r\n .w-grid.z-face-cell {\r\n border-top: 1px solid var(--w-grid-cell-border-color);\r\n border-left: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-formbase {\r\n align-items: stretch;\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n border-bottom: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n \r\n .w-grid.z-face-cell .w-td > .w-formbase {\r\n border-right: 0;\r\n border-bottom: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-label {\r\n background: var(--w-grid-cell-label-background-color);\r\n border-right: 1px solid var(--w-grid-cell-border-color);\r\n }\r\n\r\n .w-grid.z-face-cell .w-input-border,\r\n .w-grid.z-face-cell .w-input .w-formbase {\r\n border: 0;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload {\r\n align-items: stretch;\r\n }\r\n\r\n .w-grid.z-face-cell .w-fileupload>.w-formbase-main>.w-input {\r\n padding: 10px;\r\n justify-content: center;\r\n }\r\n\r\n .w-grid.z-face-cell .w-imageupload>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-mediaupload>.w-formbase-main>.w-input {\r\n padding: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-form>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-switch>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-radiogroup>.w-formbase-main>.w-input,\r\n .w-grid.z-face-cell .w-checkboxgroup>.w-formbase-main>.w-input {\r\n padding-left: 10px;\r\n padding-right: 10px;\r\n }\r\n\r\n .w-grid.z-face-cell .w-boxgroup-grid {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-grid.z-face-cell .w-combobox-list {\r\n padding-left: 5px;\r\n }\r\n\t\r\n\t.w-td[align=center] > .w-formbase>.w-formbase-main>.w-input {\r\n\t\tjustify-content: center;\r\n\t}\r\n\t\r\n\t.w-td[align=right] > .w-formbase>.w-formbase-main>.w-input {\r\n\t\tjustify-content: flex-end;\r\n\t}\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-swiper-item',\r\n pubParentName: 'w-swiper',\r\n inject: ['providePubParent'],\r\n mixins: [WidgetBase],\r\n props: ['lazy'],\r\n data() {\r\n return {\r\n loaded: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n lazy: true\r\n }\r\n },\r\n html_slots() {\r\n if (this.loaded || !this.lazy) {\r\n return this.$slots\r\n }\r\n if (this.isCurrent) {\r\n this.loaded = true\r\n return this.$slots\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {'z-on': this.isCurrent}\r\n },\r\n isCurrent() {\r\n return this.pubParent.inCurrent(this)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import PubParent from './PubParent.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-swiper',\r\n mixins: [WidgetBase, PubParent],\r\n props: ['arrow', 'indicatorDots', 'duration'],\r\n data() {\r\n return {\r\n focusIndex: null,\r\n }\r\n },\r\n watch: {\r\n current(v) {\r\n this.setFocus(v)\r\n },\r\n },\r\n methods: {\r\n //@a -> key, index\r\n setFocus(a) {\r\n let s = this.slots_children()\r\n let c = s.findIndex(v => this.isCurrentChild(a, v))\r\n this.focusIndex = c\r\n },\r\n getCurrentItem() {\r\n if (this.el()) {\r\n let dom = $.q('>.w-swiper-cont>.w-swiper-item', this.el())[this.focusIndex]\r\n return dom && $(dom)\r\n }\r\n },\r\n clickArrow(a) {\r\n this.focusIndex += a\r\n },\r\n clickIndicator(a) {\r\n this.focusIndex = a\r\n },\r\n html_slots() {\r\n if (this.focusIndex == null) {\r\n this.setFocus(this.x.current)\r\n }\r\n let v = this.x.vertical\r\n let a = v ? 'up' : 'left'\r\n let b = v ? 'down' : 'right'\r\n return [\r\n h('div', {\r\n class: 'w-swiper-cont',\r\n ref: 'cont',\r\n }, this.$slots),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + a,\r\n onclick: e => this.clickArrow(-1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + a\r\n })),\r\n this.x.arrow && h('div', {\r\n class: 'w-swiper-arrow z-' + b,\r\n onclick: e => this.clickArrow(1)\r\n }, h('i', {\r\n class: 'f-i f-i-angle-' + b\r\n })),\r\n this.x.indicatorDots && h('div', {\r\n class: 'w-swiper-indicator f-flex-center',\r\n }, this.slots_children().map((v, i) => h('div', {\r\n class: 'w-swiper-indicator-dot' + (i == this.focusIndex ? ' z-on' : ''),\r\n onclick: e => this.clickIndicator(i)\r\n })))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n let i = this.focusIndex\r\n return {\r\n 'z-at-first': i == 0,\r\n 'z-at-last': i > -1 && i == this.slots_children().length - 1\r\n }\r\n },\r\n html_style() {\r\n let i = this.focusIndex\r\n return {\r\n '--w-swiper-translate-x': (-i * 100) + '%',\r\n '--w-swiper-transition': this.x.duration ? `left ${this.x.duration}ms` : 0,\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.cont) {\r\n new MutationObserver(() => {\r\n this.setFocus(this.x.current)\r\n }).observe(this.$refs.cont, {\r\n childList: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-swiper {\r\n position: relative;\r\n box-sizing: border-box;\r\n display: flex;\r\n }\r\n\r\n .w-swiper-cont {\r\n display: flex;\r\n box-sizing: border-box;\r\n width: 100%;\r\n flex: 1;\r\n overflow: hidden;\r\n }\r\n\r\n .w-swiper-item {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n flex-shrink: 0;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n left: var(--w-swiper-translate-x);\r\n transition: var(--w-swiper-transition);\r\n }\r\n\r\n .w-swiper-item>* {\r\n width: 100%;\r\n height: 100%;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-left,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-right,\r\n .w-swiper.z-at-first>.w-swiper-arrow.z-up,\r\n .w-swiper.z-at-last>.w-swiper-arrow.z-down {\r\n display: none\r\n }\r\n\r\n .w-swiper-arrow {\r\n position: absolute;\r\n margin: auto;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: 1;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-arrow.z-left {\r\n width: 40px;\r\n right: auto\r\n }\r\n\r\n .w-swiper-arrow.z-right {\r\n width: 40px;\r\n left: auto\r\n }\r\n\r\n .w-swiper-arrow.z-up {\r\n height: 40px;\r\n bottom: auto\r\n }\r\n\r\n .w-swiper-arrow.z-down {\r\n height: 40px;\r\n top: auto\r\n }\r\n\r\n .w-swiper-arrow .f-i {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n font-size: 36px;\r\n color: #ccc\r\n }\r\n\r\n .w-swiper-arrow:hover {\r\n background: rgba(0, 0, 0, .1)\r\n }\r\n\r\n .w-swiper-arrow:hover .f-i {\r\n color: #fff\r\n }\r\n\r\n .w-swiper-indicator {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n bottom: 10px;\r\n text-align: center\r\n }\r\n\r\n .w-swiper-indicator-dot {\r\n width: 9px;\r\n height: 9px;\r\n margin: 0 4px;\r\n background-color: #bbb;\r\n border-radius: 10px;\r\n vertical-align: middle;\r\n cursor: pointer\r\n }\r\n\r\n .w-swiper-indicator-dot.z-on {\r\n background-color: #333\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Horizontal from './Horizontal.vue'\r\n import Vertical from './Vertical.vue'\r\n import PubParent from './PubParent.vue'\r\n import Button from './Button.vue'\r\n\r\n export default {\r\n name: 'w-buttonbar',\r\n mixins: [Horizontal, PubParent],\r\n props: ['vertical'],\r\n\t\temits: ['click:item'],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n valign: this.vertical ? null : 'middle'\r\n }\r\n },\r\n html_slots() {\r\n\t\t\t\tlet slots = this.slots_children()\r\n\t\t\t\tlet children = slots.concat()\r\n\t\t\t\tlet split = this.$slots.split\r\n\t\t\t\tif (split) {\r\n\t\t\t\t\tfor (let i = s.length - 1; i > 0; i--) {\r\n\t\t\t\t\t\tchildren.splice(i, 0, split)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n return this.html_scroll_slots(children)\r\n }\r\n },\r\n computed: {\r\n dir() {\r\n return this.x.vertical ? 'v' : 'h'\r\n },\r\n html_class() {\r\n return [this.x.vertical ? 'w-vertical' : 'w-horizontal']\r\n },\r\n\t\t}\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n\r\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {h, TransitionGroup} from 'vue'\r\n import Vertical from './Vertical.vue'\r\n import Horizontal from './Horizontal.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n\r\n export default {\r\n name: 'w-tabbar',\r\n mixins: [ButtonBar],\r\n props: ['vertical', 'arrow', 'quickCloseButton', 'flexSize', 'buttons'],\r\n\t\temits: ['click:item', 'click:quickCloseButton'],\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\tresizeObserver: 1,\r\n\t\t\t\tisMouseEnter: false,\r\n\t\t\t\trunButtonFlexWidth: null,\r\n\t\t\t\trunArrow: false,\r\n\t\t\t\tisClickCloseLastChild: false,\r\n\t\t\t}\r\n\t\t},\r\n methods: {\r\n\t\t\t// implement\r\n\t\t\tonScrollResize(ob) {\r\n\t\t\t\tthis.resizeObserver++\r\n\t\t\t},\r\n\t\t\tclickArrow(dir) {\r\n\t\t\t\tthis.scrollToX(`left${dir * 240}`, 240)\r\n\t\t\t},\r\n\t\t\tcloseAll(e) {\r\n\t\t\t\tthis.$emit('click:quickCloseButton', 'closeAll')\r\n\t\t\t},\r\n\t\t\tonMouseenter(e) {\r\n\t\t\t\tthis.isMouseEnter = true\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tthis.runButtonFlexWidth = this.buttonFlexWidth\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonMouseleave(e) {\r\n\t\t\t\tif (e && this.hasBubble(e.relatedTarget)) return\r\n\t\t\t\tthis.isMouseEnter = false\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tthis.runButtonFlexWidth = null\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonBeforeEnter(e) {\r\n\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\tthis.el().setAttribute('w-tabbar-fixed-quickclosebutton', '')\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonAfterEnter(e) {\r\n\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\tthis.el().removeAttribute('w-tabbar-fixed-quickclosebutton')\r\n\t\t\t\t\tthis.resizeObserver++\r\n\t\t\t\t}\r\n const b = $(e)\r\n\t\t\t\tb && b.vis && b.vis()\r\n\t\t\t},\r\n\t\t\tonBeforeLeave(e) {\r\n\t\t\t\tif (!e.nextElementSibling) {\r\n\t\t\t\t\tthis.isClickCloseLastChild = true\r\n\t\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\t\tthis.el().setAttribute('w-tabbar-fixed-quickclosebutton', '')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.isMouseEnter) {\r\n\t\t\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\t\t\tthis.runButtonFlexWidth = null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tonAfterLeave(e) {\r\n\t\t\t\tif (this.isClickCloseLastChild) {\r\n\t\t\t\t\tthis.isClickCloseLastChild = false\r\n\t\t\t\t\tif (this.fixQuickCloseButton) {\r\n\t\t\t\t\t\tthis.el().removeAttribute('w-tabbar-fixed-quickclosebutton')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.isMouseEnter) {\r\n\t\t\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\t\t\tthis.runButtonFlexWidth = this.buttonFlexWidth\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n html_slots() {\r\n\t\t\t\tlet group = h(TransitionGroup, {name: 'w-tabbar', onBeforeEnter: this.onBeforeEnter, onAfterEnter: this.onAfterEnter, onBeforeLeave: this.onBeforeLeave, onAfterLeave: this.onAfterLeave}, {default: () => this.buttons})\r\n\t\t\t\tlet gut = [h(this.x.vertical ? Vertical : Horizontal, {ref: 'gut', width: '*', class: 'w-tabbar-gut', gap: this.x.gap, align: this.x.align, valign: this.x.valign}, {default: () => group})]\r\n\t\t\t\tif (this.$slots.append) {\r\n gut.push(h('div', {ref: 'append', class: 'w-tabbar-append'}, this.slot('append')))\r\n }\r\n if (this.x.arrow) {\r\n\t\t\t\t\tgut.unshift(h('div', {class: 'w-tabbar-arrow-start', onClick: () => this.clickArrow(-1)}, h('i', {class: 'f-i f-i-caret-left'})))\r\n\t\t\t\t\tgut.push(h('div', {class: 'w-tabbar-arrow-end', onClick: () => this.clickArrow(1)}, h('i', {class: 'f-i f-i-caret-right'})))\r\n\t\t\t\t}\r\n\t\t\t\tif (this.x.quickCloseButton) {\r\n\t\t\t\t\tlet closeAllDisabled = !this.buttons.find(c => c.props.closable)\r\n\t\t\t\t\tif (this.buttons.length) {\r\n\t\t\t\t\t\tgut.push(h(Button, {\r\n\t\t\t\t\t\t\tref: 'quickCloseButton',\r\n\t\t\t\t\t\t\tdata: {isQuickCloseButton: true},\r\n\t\t\t\t\t\t\tshowArrowIcon: false,\r\n\t\t\t\t\t\t\ticon: '.f-i .f-i-close',\r\n\t\t\t\t\t\t\tclass: 'w-tabbar-quickclosebutton',\r\n onClick: this.closeAll,\r\n disabled: closeAllDisabled,\r\n title: '关闭全部标签'\r\n\t\t\t\t\t\t}))\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n return this.html_scroll_slots(gut)\r\n }\r\n },\r\n computed: {\r\n\t\t\t// implement\r\n\t\t\thasScrollX() {\r\n\t\t\t\treturn (this.x.arrow && this.dir === 'h') || this.x.scrollX\r\n\t\t\t},\r\n\t\t\tshowArrow() {\r\n\t\t\t\tif (!this.x.arrow) return\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet cw = this.buttonCalcWidth\r\n\t\t\t\t\treturn cw && cw < this.x.flexSize[0]\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn this.wScrollPercentX\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tfixQuickCloseButton() {\r\n\t\t\t\tif (!this.x.quickCloseButton) return\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet cw = this.buttonCalcWidth\r\n\t\t\t\t\treturn cw && cw < this.x.flexSize[1]\r\n\t\t\t\t} \r\n\t\t\t},\r\n\t\t\tgutWidth() {\r\n\t\t\t\tconst sp = this.x.arrow && this.wScrollPercentX\r\n\t\t\t\tconst rw = this.resizeObserver\r\n\t\t\t\tif (rw && this.el()) {\r\n\t\t\t\t\tlet w = this.el().clientWidth\r\n\t\t\t\t\tif (sp) {\r\n\t\t\t\t\t\tw -= 40\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.x.quickCloseButton) {\r\n\t\t\t\t\t\tw -= 20\r\n\t\t\t\t\t}\r\n if (this.$refs.append) {\r\n w -= this.$refs.append.offsetWidth\r\n }\r\n\t\t\t\t\treturn w\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbuttonCalcWidth() {\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet w\r\n\t\t\t\t\tlet len = this.buttons.length\r\n\t\t\t\t\tlet vw = this.gutWidth\r\n\t\t\t\t\tif (vw && len) {\r\n\t\t\t\t\t\tw = vw / len\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn w\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tbuttonFlexWidth() {\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tlet nw = this.x.flexSize[0]\r\n\t\t\t\t\tlet mw = this.x.flexSize[1]\r\n\t\t\t\t\tlet w = mw\r\n\t\t\t\t\tif (this.buttonCalcWidth) {\r\n\t\t\t\t\t\tw = $.numRange(this.buttonCalcWidth, nw, mw)\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn w + 1\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\thtml_props_on() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonMouseenter: this.onMouseenter,\r\n\t\t\t\t\tonMouseleave: this.onMouseleave,\r\n\t\t\t\t}\r\n\t\t\t},\r\n html_class() {\r\n return [this.x.vertical ? 'w-vertical' : 'w-horizontal', {\r\n\t\t\t\t\t'z-arrow': this.x.arrow,\r\n\t\t\t\t\t'z-quickclosebutton': this.x.quickCloseButton,\r\n\t\t\t\t\t'z-flexsize': this.x.flexSize,\r\n\t\t\t\t\t'z-show-arrow': this.showArrow\r\n\t\t\t\t}]\r\n },\r\n\t\t\thtml_style() {\r\n\t\t\t\tconst style = {}\r\n\t\t\t\tif (this.x.flexSize) {\r\n\t\t\t\t\tstyle['--w-tabbar-flex-width'] = `${this.runButtonFlexWidth || this.buttonFlexWidth}px`\r\n\t\t\t\t}\r\n\t\t\t\treturn style\r\n\t\t\t}\r\n },\r\n\t\tmounted() {\r\n\t\t\tif (this.x.flexSize && this.$refs.gut) {\r\n\t\t\t\tnew ResizeObserver(() => this.resizeObserver++).observe(this.$refs.gut.el())\r\n\t\t\t\tlet unwatch = this.$watch(() => this.buttons.length, (len) => {\r\n\t\t\t\t\tif (len) {\r\n\t\t\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\t\t\tunwatch()\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n const el = this.el()\r\n el && el.setAttribute('w-tabbar-flex-all', '')\r\n }, 150)\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t}\r\n\t\t\t\t}, {immediate: true})\r\n\t\t\t}\r\n\t\t}\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n\t.w-tabbar {\r\n .w-tabbar-append {\r\n display: flex;\r\n }\r\n\t\t&.z-arrow {\r\n\t\t\t&.z-show-arrow {\r\n\t\t\t\t.w-tabbar-arrow-start,\r\n\t\t\t\t.w-tabbar-arrow-end {\r\n\t\t\t\t\tdisplay: flex;\r\n\t\t\t\t}\r\n .w-tabbar-append {\r\n right: 20px;\r\n }\r\n &.z-quickclosebutton {\r\n .w-tabbar-append {\r\n right: 40px;\r\n }\r\n }\r\n\t\t\t}\r\n\t\t\t>.w-scrollbar-x {\r\n\t\t\t\tdisplay: none;\r\n\t\t\t}\r\n\t\t}\r\n\t\t&.z-quickclosebutton {\r\n .w-tabbar-append {\r\n \tright: 20px;\r\n }\r\n\t\t\t.w-tabbar-arrow-end {\r\n\t\t\t\tright: 20px;\r\n\t\t\t}\r\n\t\t\t.w-tabbar-quickclosebutton {\r\n\t\t\t\t.w-button-main {\r\n\t\t\t\t\tpadding: 0;\r\n\t\t\t\t\tjustify-content: center;\r\n\t\t\t\t}\r\n\t\t\t}\r\n .w-tabbar-quickclosebutton.z-hv {\r\n background: #f5f5f5;\r\n }\r\n\t\t\t&[w-tabbar-fixed-quickclosebutton] {\r\n\t\t\t\t.w-tabbar-quickclosebutton {\r\n\t\t\t\t\tposition: absolute;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\t&.z-flexsize {\r\n\t\t\t&[w-tabbar-flex-all] {\r\n\t\t\t\t.w-tabbar-gut {\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\ttransition: width .15s ease;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t.w-tabbar-gut {\r\n\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\twidth: var(--w-tabbar-flex-width);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t.w-button-main {\r\n\t\t\t\tjustify-content: space-between;\r\n\t\t\t\tpadding-left: 10px;\r\n\t\t\t\t.w-button-close {\r\n\t\t\t\t\tmargin-left: 3px;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t.w-tabbar-quickclosebutton,\r\n\t.w-tabbar-arrow-start,\r\n\t.w-tabbar-arrow-end {\r\n\t\tposition: sticky;\r\n\t\tdisplay: none;\r\n\t\twidth: 20px;\r\n\t\theight: 100%;\r\n\t\tjustify-content: center;\r\n\t\talign-items: center;\r\n\t\tz-index: 2;\r\n\t\tborder-top: 0;\r\n\t\tbox-sizing: border-box;\r\n\t\tbackground: #fff;\r\n\t\tcolor: #909309;\r\n\t\tcursor: pointer;\r\n\t}\r\n\t\r\n\t.w-tabbar-quickclosebutton {\r\n\t\tdisplay: flex;\r\n\t\tright: 0;\r\n\t\toverflow: hidden;\r\n\t\t.f-i {\r\n\t\t\ttransform: rotate(90deg);\r\n\t\t}\r\n\t}\r\n\t\r\n\t.w-tabbar-arrow-start {\r\n\t\tleft: 0;\r\n\t\tborder-right: 1px solid #ddd;\r\n\t}\r\n\t\r\n\t.w-tabbar-arrow-end {\r\n\t\tright: 0;\r\n\t\tborder-left: 1px solid #ddd;\r\n\t}\r\n\t\r\n\t.w-tabbar-enter-from,\r\n\t.w-tabbar-leave-to {\r\n\t\twidth: 0!important;\r\n\t}\r\n\t\r\n\t.w-tabbar-gut {\r\n\t\twidth: max-content;\r\n\t}\r\n\t\r\n</style>","<script>\r\n import Button from './Button.vue'\r\n export default {\r\n\t\tname: 'w-tabbutton',\r\n pubParentName: 'w-tabbar',\r\n mixins: [Button],\r\n\t\tmethods: {\r\n\t\t\tvis() {\r\n\t\t\t\tlet add = [20, 20]\r\n\t\t\t\tif (this.pubParent.x.quickCloseButton) {\r\n\t\t\t\t\tadd[1] += 20\r\n\t\t\t\t}\r\n\t\t\t\tthis.scrollIntoView({x: `nearest${add}`, y: null})\r\n\t\t\t}\r\n\t\t},\r\n computed: {\r\n html_class() {\r\n return 'w-button'\r\n }\r\n },\r\n\t\tmounted() {\r\n\t\t\tthis.$watch('isCurrent', (v) => v && this.vis(), {immediate: true})\r\n\t\t}\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-tabbutton {\r\n background: #f8f8f8;\r\n\t\t&.z-on {\r\n\t\t background: #fff;\r\n\t\t}\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h, TransitionGroup} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import TabBar from './TabBar.vue'\r\n import TabButton from './TabButton.vue'\r\n import Swiper from './Swiper.vue'\r\n import SwiperItem from './SwiperItem.vue'\r\n\r\n export default {\r\n name: 'w-tabs',\r\n mixins: [WidgetBase],\r\n props: ['current', 'position', 'gap', 'face', 'quickCloseButton', 'flexSize'],\r\n\t\temits: ['click:quickCloseButton'],\r\n methods: {\r\n x_default() {\r\n return {\r\n position: 'top',\r\n\t\t\t\t\tface: 'line',\r\n gap: -1\r\n }\r\n },\r\n clickTab(e) {\r\n\t\t\t\tconst tab = $(e)\r\n\t\t\t\tif (!(tab.data && tab.data.isQuickCloseButton)) {\r\n\t\t\t\t\t// this.x.current = tab.getKey()\r\n\t\t\t\t}\r\n },\r\n\t\t\tclickQuickCloseButton(e) {\r\n\t\t\t\tthis.$emit('click:quickCloseButton', e)\r\n\t\t\t},\r\n html_slots() {\r\n let buttons = []\r\n let pages = []\r\n let pos = this.x.position\r\n this.slots_children().forEach((v, i) => {\r\n if (!v.props || v.props.key == null) {\r\n $.lodash.set(v, 'props.key', i)\r\n }\r\n buttons.push(h(TabButton, v.props))\r\n pages.push(h(SwiperItem, {lazy: v.props.lazy == null ? true : v.props.lazy, key: v.props.key}, v.children))\r\n })\r\n return [\r\n h(TabBar, {\r\n\t\t\t\t\t\tref: 'tabBar',\r\n class: 'w-tabs-buttonbar',\r\n current: this.x.current,\r\n gap: this.x.gap,\r\n vertical: pos == 'left' || pos == 'right',\r\n arrow: true,\r\n\t\t\t\t\t\tflexSize: this.x.flexSize,\r\n\t\t\t\t\t\tquickCloseButton: this.x.quickCloseButton,\r\n 'onClick:item': this.clickTab,\r\n 'onClick:quickCloseButton': this.clickQuickCloseButton,\r\n\t\t\t\t\t\tbuttons,\r\n }, this.$slots),\r\n h(Swiper, {class: 'w-tabs-swiper f-flex-1 f-oh', current: this.x.current}, {default: () => pages}),\r\n ]\r\n }\r\n },\r\n computed: {\r\n tabBar() {\r\n return this.$refs.tabBar\r\n },\r\n html_class() {\r\n let pos = this.x.position\r\n return 'f-oh f-flex' + (pos == 'top' || pos == 'bottom' ? '-column' : '') + ' z-pos-' + pos + ' z-face-' + this.x.face\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n\t.w-tabs-buttonbar {\r\n\t\tposition: relative;\r\n\t\t&:after {\r\n\t\t\tcontent: '';\r\n\t\t\tposition: absolute;\r\n\t\t\tbackground: #ddd;\r\n\t\t}\r\n\t}\r\n\t.w-tabbutton {\r\n\t\tborder-radius: 0;\r\n\t\t&.z-on {\r\n\t\t\tposition: relative;\r\n\t\t\tz-index: 1;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.w-tabs {\r\n\t\t&.z-face-line {\r\n\t\t\t&.z-pos-top {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\tborder-bottom: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\tborder-bottom: 2px solid transparent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\t\tborder-bottom: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-quickclosebutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-bottom {\r\n\t\t\t\t>.w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t\tborder-top: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0 15px;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\tborder-top: 2px solid transparent;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\t.w-button-text {\r\n\t\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\t\tborder-top: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-left {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\tborder-right: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\tborder-right: 2px solid transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0 15px;\r\n\t\t\t\t\t\t\tjustify-content: flex-start;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\tborder-right: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-right {\r\n\t\t\t\t> .w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t\tborder-left: 1px solid #E1E1E1;\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder: 0;\r\n\t\t\t\t\t\tbackground: transparent;\r\n\t\t\t\t\t\tborder-left: 2px solid transparent;\r\n\t\t\t\t\t\t.w-button-main {\r\n\t\t\t\t\t\t\tpadding: 0 15px;\r\n\t\t\t\t\t\t\tjustify-content: flex-start;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\t\tcolor: var(--w--primary-color);\r\n\t\t\t\t\t\t\t\tborder-left: 2px solid var(--w--primary-color);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\t&.z-face-cell {\r\n\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t background: #f5f5f5;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-top {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\t&:after {\r\n\t\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\t\theight: 1px;\r\n\t\t\t\t\t\tbottom: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-bottom-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-quickclosebutton {\r\n\t\t\t\t\t\tbackground: #f8f8f8;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-bottom {\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t>.w-tabs-buttonbar {\r\n\t\t\t\t\t:after {\r\n\t\t\t\t\t\twidth: 100%;\r\n\t\t\t\t\t\theight: 1px;\r\n\t\t\t\t\t\ttop: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-bottom: 0;\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-top-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-left {\r\n\t\t\t\t> .w-tabs-buttonbar {\r\n\t\t\t\t\t&:after {\r\n\t\t\t\t\t\twidth: 1px;\r\n\t\t\t\t\t\theight: 100%;\r\n\t\t\t\t\t\tright: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-left: 0;\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-right-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t\t}\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t&.z-pos-right {\r\n\t\t\t\t> .w-tabs-buttonbar {\r\n\t\t\t\t\torder: 1;\r\n\t\t\t\t}\r\n\t\t\t\t> .w-tabs-swiper {\r\n\t\t\t\t\torder: 0;\r\n\t\t\t\t}\r\n\t\t\t\t> .w-tabs-buttonbar {\r\n\t\t\t\t\t&:after {\r\n\t\t\t\t\t\twidth: 1px;\r\n\t\t\t\t\t\theight: 100%;\r\n\t\t\t\t\t\tleft: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-tabbutton {\r\n\t\t\t\t\t\tborder-right: 0;\r\n\t\t\t\t\t\t&.z-on {\r\n\t\t\t\t\t\t\tborder-left-color: #fff;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t&:first-child {\r\n\t\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t.w-buttonbar-arrow-start + .w-tabbutton {\r\n\t\t\t\t\t\tborder-top: 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n \r\n</style>\r\n","<script>\r\n export default {\r\n name: 'w-tab',\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import Horizontal from './Horizontal.vue'\r\n import PubParent from './PubParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-album',\r\n mixins: [Horizontal, PubParent],\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 0,\r\n br: true,\r\n valign: 'top',\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-horizontal'\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-html',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['line'],\r\n computed: {\r\n html_props() {\r\n let line = this.x.line\r\n return {\r\n class: [\r\n (this.x.align || this.x.valign) && 'w-horizontal',\r\n line != null && 'f-line',\r\n this.html_align_class\r\n ],\r\n style: line != null && {\r\n '-webkit-line-clamp': line\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-html {\r\n box-sizing: border-box;\r\n flex-wrap: wrap;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import Img from './Img.vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n\r\n export default {\r\n name: 'w-tree',\r\n mixins: [Scroll, PubParent, SrcParent],\r\n emits: ['click:item'],\r\n provide() {\r\n return {\r\n provideLevel: -1,\r\n provideParentLeaf: null,\r\n provideParentTR: null,\r\n }\r\n },\r\n methods: {\r\n load() {\r\n return this.request()\r\n },\r\n getCurrent() {\r\n const leaf = $.q('.w-leaf.z-on', this.el())[0]\r\n return leaf && $(leaf)\r\n },\r\n viewCurrent(f) {\r\n this.$nextTick(() => {\r\n f = f || this.getCurrent()\r\n if (f) {\r\n f.expandToView()\r\n this.$nextTick(() => f.scrollIntoView())\r\n }\r\n })\r\n },\r\n html_slots() {\r\n let r\r\n if (this.loading) {\r\n const sl = this.slot('loading')\r\n r = sl && sl.length ? sl : h('div', {\r\n class: 'w-tree-loading'\r\n }, h(Img, {src: '#f-svg-loading-1', width: 28, height: 28}))\r\n } else {\r\n let chd = this.x.children\r\n if (this.$slots.default) {\r\n if (Array.isArray(chd)) {\r\n r = chd.map((item, index) => {\r\n let key\r\n const leaf = this.$slots.default({item, index})\r\n for (let f of leaf) {\r\n if (!key) {\r\n key = f.key\r\n }\r\n }\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => leaf})\r\n } else {\r\n return leaf\r\n }\r\n })\r\n } else {\r\n r = []\r\n }\r\n }\r\n }\r\n return this.html_scroll_slots(r)\r\n }\r\n },\r\n computed: {\r\n level() {\r\n return -1\r\n },\r\n html_props() {\r\n return {\r\n class: this.html_scroll_class\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.children || !this.x.children.length) this.request()\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-tree {\r\n text-align: left;\r\n box-sizing: border-box;\r\n }\r\n \r\n .w-tree-loading {\r\n display: flex;\r\n justify-content: center;\r\n padding: 10px 0;\r\n color: #aaa;\r\n }\r\n\r\n</style>\r\n","<template>\r\n <TreeV2Wrap ref=\"root\" class=\"w-tree w-tree-v2\" :scroll-y=\"true\" @scroll=\"onScroll\">\r\n <slot v-if=\"loading\" name=\"loading\">\r\n <div class=\"w-tree-loading w-tree-v2-loading\">\r\n <w-img src=\"#f-svg-loading-1\" width=\"28\" height=\"28\"></w-img>\r\n </div>\r\n </slot>\r\n <div v-else class=\"w-tree-v2-wrap\" :style=\"wrapStyle\">\r\n <div v-for=\"(item,index) in showList\" :key=\"index\" :class=\"['w-leaf w-leaf-v2', itemClass(item, index), {'z-folder': isFolder(item), 'z-on': isCurrent(item), 'z-ds': isDisabled(item, index)}]\" :style=\"itemStyle(item)\" @click=\"clickItem($event, item)\">\r\n <w-img v-if=\"isItemLoading(item)\" src=\"#f-svg-loading\" class=\"w-leaf-loading\"></w-img>\r\n <div v-else :class=\"['w-leaf-toggle f-i', item.expanded ? 'f-i-caret-down' : 'f-i-caret-right']\" @click=\"clickToggle($event, item)\"></div>\r\n <slot name=\"box\" :item=\"item\"></slot>\r\n <w-img v-if=\"itemIcon(item)\" :src=\"itemIcon(item)\" class=\"w-leaf-icon\"></w-img>\r\n <div class=\"w-leaf-text f-line-1\">\r\n <slot name=\"text\" :item=\"item\">\r\n <span :title=\"item[propText]\">{{item[propText]}}</span>\r\n </slot>\r\n </div>\r\n </div>\r\n </div>\r\n </TreeV2Wrap>\r\n</template>\r\n<script>\r\n export default {\r\n name: 'w-tree-v2'\r\n }\r\n</script>\r\n<script setup>\r\n import $ from '../dfish.js'\r\n import { ref, computed, watch, onMounted, nextTick } from 'vue';\r\n import TreeV2Wrap from './TreeV2Wrap.vue';\r\n \r\n const emits = defineEmits(['click:item'])\r\n\r\n const props = defineProps({\r\n alias: {\r\n type: Object,\r\n default() {\r\n return {}\r\n }\r\n },\r\n children: {\r\n type: Array,\r\n default() {\r\n return []\r\n }\r\n },\r\n current: {\r\n type: [String, Number, Array]\r\n },\r\n itemHeight: {\r\n type: [String, Number],\r\n default: 32\r\n },\r\n src: {\r\n type: Function\r\n },\r\n loading: {\r\n type: Boolean\r\n }\r\n })\r\n \r\n let {alias, itemHeight, current} = props\r\n \r\n const propValue = alias.value || 'id'\r\n const propText = alias.text || 'text'\r\n const propChildren = alias.children || 'children'\r\n const propClass = alias.class || 'class'\r\n const propDisabled = alias.disabled || 'disabled'\r\n \r\n const leafSymbol = Symbol('leaf')\r\n const showCount = ref(0)\r\n const scrollTop = ref(0)\r\n const flatList = ref([])\r\n const root = ref()\r\n const flow = ref()\r\n const xLoading = ref(false)\r\n const loading = computed(() => props.loading || xLoading.value)\r\n \r\n const wrapStyle = computed(() => {\r\n return {\r\n height: `${flatList.value.length * itemHeight}px`\r\n }\r\n })\r\n \r\n const itemClass = (item, index) => {\r\n return typeof propClass === 'function' ? propClass(item, index) : item[propClass]\r\n }\r\n \r\n const itemStyle = (item) => {\r\n return {\r\n height: `${itemHeight}px`,\r\n top: `${item[leafSymbol].showIndex * itemHeight}px`,\r\n paddingLeft: `${item[leafSymbol].level * 16}px`\r\n }\r\n }\r\n \r\n const itemIcon = (item) => {\r\n return isFolder(item) ? (item.expanded ? item.expandedIcon : item.collapsedIcon) : item.icon\r\n }\r\n\r\n const isItemLoading = (item) => {\r\n return item[leafSymbol].loading\r\n }\r\n \r\n const isFolder = (item) => {\r\n return (item[propChildren] && item[propChildren].length) || (item[leafSymbol].src && !item[leafSymbol].loaded)\r\n }\r\n \r\n const isCurrent = (item) => {\r\n return Array.isArray(props.current) ? props.current.includes(item[propValue]) : (props.current === item[propValue])\r\n }\r\n \r\n const isDisabled = (item, index) => {\r\n return typeof propDisabled === 'function' ? propDisabled(item, index) : item[propDisabled]\r\n }\r\n \r\n let autoFocus = true\r\n let autoFocusTimer\r\n const clickItem = (e, item) => {\r\n if (!isDisabled(item)) {\r\n autoFocus = false\r\n clearTimeout(autoFocusTimer)\r\n autoFocusTimer = setTimeout(() => autoFocus = true, 500)\r\n emits('click:item', e, item)\r\n }\r\n }\r\n \r\n const clickToggle = (e, item) => {\r\n e.stopPropagation()\r\n toggle(item)\r\n }\r\n \r\n const toggle = async (item, expanded) => {\r\n if (typeof item === 'string') {\r\n item = find(item)\r\n }\r\n if (!item) return\r\n const leaf = item[leafSymbol]\r\n if (leaf.loading) return\r\n item.expanded = expanded != null ? expanded : !item.expanded\r\n if (item.expanded) {\r\n if (item[propChildren]) {\r\n const i = flatList.value.indexOf(item)\r\n const cs = toFlat(item[propChildren], item)\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1)\r\n flatList.value = prev.concat(cs, next)\r\n } else if (leaf.src && !leaf.loaded) {\r\n leaf.loading = true\r\n await leaf.src().catch(() => {})\r\n leaf.loading = false\r\n leaf.loaded = true\r\n toggle(item, item.expanded)\r\n }\r\n } else {\r\n const i = flatList.value.indexOf(item)\r\n const count = desCount(item[propChildren])\r\n const prev = flatList.value.slice(0, i + 1)\r\n const next = flatList.value.slice(i + 1 + count)\r\n flatList.value = prev.concat(next)\r\n }\r\n }\r\n\r\n const onScroll = (e) => {\r\n if (scrollTop.value !== e.target.scrollTop)\r\n scrollTop.value = e.target.scrollTop\r\n }\r\n\r\n // 树形数据扁平化\r\n const toFlat = (children, parent) => {\r\n let r = []\r\n if (children) {\r\n children.forEach(item => {\r\n r.push(item)\r\n const leaf = item[leafSymbol]\r\n if (!leaf) {\r\n item[leafSymbol] = {level: parent ? parent[leafSymbol].level + 1 : 0, parent, src: props.src && props.src(item)}\r\n }\r\n if (item[propChildren] && item[propChildren].length) {\r\n if (item.expanded) {\r\n r = r.concat(toFlat(item[propChildren], item))\r\n } else if (!leaf) { // 没有leaf的话也要做初始化\r\n toFlat(item[propChildren], item)\r\n }\r\n } else if (item.expanded && item[leafSymbol].src) {\r\n nextTick(() => toggle(item, true))\r\n }\r\n })\r\n }\r\n return r\r\n }\r\n \r\n const desCount = (children) => {\r\n let count = 0\r\n for (let item of children) {\r\n count ++\r\n if (item[propChildren] && item.expanded) {\r\n count += desCount(item[propChildren])\r\n }\r\n } \r\n return count\r\n }\r\n \r\n const find = (id, children) => {\r\n if (id && id[leafSymbol]) return id\r\n if (!children) children = props.children\r\n for (let item of children) {\r\n if (item[propValue] === id) return item\r\n if (item[propChildren] && item[propChildren].length) {\r\n const r = find(id, item[propChildren])\r\n if (r) return r\r\n }\r\n } \r\n }\r\n \r\n // 展开到指定ID的数据\r\n const expandTo = (id) => {\r\n const item = find(id)\r\n if (item) {\r\n let p = item\r\n let a = p\r\n while (p = p[leafSymbol].parent) {\r\n if (!p.expanded) {\r\n p.expanded = true\r\n a = p\r\n }\r\n }\r\n a && a != item && toggle(a, true)\r\n }\r\n return item\r\n }\r\n \r\n const merge = (newList) => {\r\n if (!Array.isArray(newList)) return []\r\n const oldList = JSON.parse(JSON.stringify(props.children))\r\n mergeChildren(newList, oldList)\r\n props.children.length = 0\r\n props.children.push.apply(props.children, newList)\r\n flatList.value = toFlat(newList)\r\n }\r\n \r\n const mergeChildren = (newList, oldList) => {\r\n for (let n of newList) {\r\n let o = oldList.find(v => v[propValue] === n[propValue])\r\n if (o) {\r\n if (o[propChildren]) {\r\n if (n[propChildren]) mergeChildren(n[propChildren], o[propChildren])\r\n else n[propChildren] = o[propChildren]\r\n }\r\n if (o.expanded != null) {\r\n n.expanded = o.expanded\r\n }\r\n }\r\n }\r\n }\r\n \r\n // 界面可见的数据\r\n const showList = computed(() => {\r\n const topCount = Math.floor(scrollTop.value / itemHeight)\r\n const r = flatList.value.slice(topCount, topCount + showCount.value).map((item, index) => {\r\n item[leafSymbol].showIndex = index + topCount\r\n return item\r\n })\r\n return r\r\n })\r\n \r\n const initShowCount = () => {\r\n flow.value = root.value.$refs.wScrollOverflow.getBoundingClientRect()\r\n showCount.value = Math.ceil(flow.value.height / itemHeight) + 1\r\n }\r\n \r\n const focus = async (id) => {\r\n await nextTick()\r\n if (!showList.value.find(n => id === n[propValue])) {\r\n expandTo(id)\r\n }\r\n const showIndex = showList.value.findIndex(n => id === n[propValue])\r\n if (showIndex === -1 || showIndex === showList.value.length - 1) {\r\n const item = find(id)\r\n const i = flatList.value.indexOf(item)\r\n if (i > -1) {\r\n await nextTick()\r\n root.value.scrollToY(((i + 1) * itemHeight) - (flow.value.height / 2))\r\n }\r\n }\r\n }\r\n \r\n const watchCurrent = async (val) => {\r\n await nextTick()\r\n current = val\r\n val = val && $.arrayID(val)\r\n if (!val || !val.length) return\r\n for (let v of val) {\r\n if (!showList.value.find(n => v === n[propValue])) {\r\n expandTo(v)\r\n }\r\n }\r\n if (autoFocus) {\r\n focus(val[0])\r\n }\r\n }\r\n \r\n onMounted(async () => {\r\n watch(() => root.value.wScrollSizeY, (ssy) => {\r\n initShowCount()\r\n }, {immediate: true})\r\n watch(() => props.children, (children) => {\r\n flatList.value = toFlat(children)\r\n if (current && current == props.current) { // 此判断避免重复聚焦\r\n watchCurrent(props.current)\r\n }\r\n }, {immediate: true})\r\n watch(() => props.current, watchCurrent, {deep: true})\r\n if (!props.children || props.children.length == 0) {\r\n const src = props.src && props.src()\r\n if (src) {\r\n xLoading.value = true\r\n await src().catch(() => {})\r\n xLoading.value = false\r\n }\r\n }\r\n })\r\n \r\n defineExpose({toggle, focus, find, merge})\r\n \r\n</script>\r\n<style>\r\n .w-tree-v2-wrap {\r\n position: relative;\r\n }\r\n .w-leaf-v2 {\r\n display: flex;\r\n align-items: center;\r\n position: absolute;\r\n box-sizing: border-box;\r\n width: 100%;\r\n height: 32px;\r\n }\r\n</style>","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n\r\n export default {\r\n name: 'w-label',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['text', 'suffix', 'vertical'],\r\n methods: {\r\n html_slots() {\r\n return h('label', {class: 'w-label-text'}, \r\n h('span', this.$slots.default ? this.$slots.default() : this.x.text + (this.x.suffix == null ? '' : this.x.suffix)))\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n this.x.vertical && (this.$parent.labelVertical = true)\r\n return ['f-oh f-br' + (this.x.vertical ? ' z-vertical' : ''), this.html_align_class]\r\n },\r\n html_style() {\r\n return {\r\n width: null,\r\n '--label-width': this.x.width && $.unitSize(this.x.width)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h,\r\n mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Label from './Label.vue'\r\n import {tipCache} from './Tip.vue'\r\n\r\n const _validate_dft_value = {\r\n required: true,\r\n beforeNow: true,\r\n afterNow: true\r\n }\r\n\r\n\r\n export default {\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['name', 'value', 'modelValue', 'placeholder', 'label', 'readonly', 'readonlyValidate', 'disabled', 'required',\r\n 'validateDefault', 'validateHandler', 'inputWidth', 'inputHeight' ],\r\n emits: ['update:modelValue', 'change', 'blur', 'focus'],\r\n data() {\r\n let mv = this.modelValue\r\n return {\r\n isFormWidget: true,\r\n isFocus: false,\r\n hasBorder: false,\r\n isPlural: false,\r\n isEdit: false,\r\n loading: false,\r\n warnClass: '',\r\n labelVertical: false,\r\n modifiedValue: mv,\r\n defaultValue: mv,\r\n placeholder_type: '',\r\n validIndex: 0,\r\n }\r\n },\r\n watch: {\r\n \tmodelValue(v, ov) {\r\n if (this.isEdit) {\r\n this.isEdit = false\r\n } else {\r\n if (v == null) v = ''\r\n if (ov == null) ov = ''\r\n this.watchModelValue(v, ov)\r\n }\r\n \t}\r\n },\r\n \r\n methods: {\r\n val(v) {\r\n if (arguments.length == 0)\r\n return this.x.modelValue\r\n let ov = this.x.modelValue\r\n this.x.modelValue = v\r\n if (ov == null) {\r\n ov = ''\r\n }\r\n if (v == null) {\r\n v = ''\r\n }\r\n let changed = ov !== v\r\n if (typeof ov === 'object') {\r\n changed = JSON.stringify(ov) != JSON.stringify(v)\r\n }\r\n if (changed) {\r\n this.warnClass && this.warn(false)\r\n if (this.isUsableVal(v)) {\r\n this.isEdit = true\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n }\r\n }\r\n return v\r\n },\r\n formVal() {\r\n return this.input_value\r\n },\r\n isUsableVal(v) { //implement\r\n return true \r\n },\r\n defaultRuleValue(name) {\r\n let r = this.rules[name]\r\n if (r != null) {\r\n if (Array.isArray(r)) {\r\n r = r[0]\r\n }\r\n return r && r.value ? r.value : r\r\n }\r\n },\r\n watchModelValue(v, ov) {\r\n if (ov != v) {\r\n this.trigger('change', v)\r\n }\r\n },\r\n async valid(trigger) {\r\n let error = await this.getValidError(trigger)\r\n if (error) {\r\n this.warn()\r\n this.showErrorTip(error.text)\r\n }\r\n return !error\r\n },\r\n async getValidError(trigger, val) {\r\n let ques = trigger ? this.validTriggers[trigger] : this.validQueues\r\n if (ques && (this.isNormal || (this.isReadonly && this.x.readonlyValidate))) {\r\n let v = val !== undefined ? val : this.isPlural ? this.groupFormVal() : this.formVal()\r\n if (typeof v !== 'string')\r\n v = Array.isArray(v) ? v.join(',') : v == null ? '' : ('' + v);\r\n v = v.trim()\r\n let hs = this.validHooks\r\n for (let q of ques) {\r\n let rv = typeof q.rule !== 'object' ? q.rule : q.rule.value !== undefined ? q.rule.value : q.rule\r\n let e = await hs[q.type](v, rv, q)\r\n if (e) return e\r\n }\r\n }\r\n },\r\n getValidErrorSync(trigger, val) {\r\n let ques = trigger ? this.validTriggers[trigger] : this.validQueues\r\n if (ques && (this.isNormal || (this.isReadonly && this.x.readonlyValidate))) {\r\n let v = val !== undefined ? val : this.isPlural ? this.groupFormVal() : this.formVal()\r\n if (typeof v !== 'string')\r\n v = Array.isArray(v) ? v.join(',') : v == null ? '' : ('' + v);\r\n v = v.trim()\r\n let hs = this.validHooks\r\n for (let q of ques) {\r\n let rv = typeof q.rule !== 'object' ? q.rule : q.rule.value !== undefined ? q.rule.value : q.rule\r\n let e = hs[q.type](v, rv, q)\r\n if (e) return e\r\n }\r\n }\r\n },\r\n formErr(que, arg) {\r\n let label = this.getLabelText()\r\n let type = que.type\r\n let text = que.rule && que.rule.text\r\n if (!text) {\r\n text = $.loc.ps.apply(null, [$.loc.form[type], label || ''].concat(arg != null && arg !== '' ? arg : [])) || ''\r\n }\r\n return {\r\n wid: this.uid,\r\n name: this.x.name,\r\n type,\r\n label,\r\n text,\r\n }\r\n },\r\n warn(a) {\r\n let w = typeof a === 'string' ? a : a !== false ? 'z-err' : ''\r\n this.warnClass = w\r\n if (!w && this._tip) {\r\n\t\t\t\t\tthis._tip.close()\r\n }\r\n },\r\n showErrorTip(text) {\r\n this.scrollIntoView({\r\n ease: 200,\r\n success: () => {\r\n this.pop('w-tip', {\r\n text,\r\n face: 'warn',\r\n independent: true,\r\n snap: this.errorTipTarget,\r\n\t\t\t\t\t\t\tonClose: () => this._tip = null\r\n }, (tip) => {\r\n this._tip = tip\r\n })\r\n }\r\n })\r\n },\r\n focus() {\r\n this.$refs.v.focus()\r\n return this\r\n },\r\n formText() {\r\n let t = this.val()\r\n return t == null ? '' : t\r\n },\r\n getLabelText() {\r\n let t = this.x.label || (this.pubParent && this.pubParent.x.label)\r\n return t ? (t.text || t) : ''\r\n },\r\n onCloseDrop() {\r\n this.showDrop = false\r\n },\r\n mergeDropProps(dropProps) {\r\n if (this.x.dropProps) dropProps = mergeProps(dropProps, this.x.dropProps)\r\n dropProps.onClose = () => {\r\n this.onCloseDrop()\r\n if (this.x.dropProps && this.x.dropProps.onClose) {\r\n this.x.dropProps.onClose()\r\n }\r\n }\r\n return dropProps\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n this.baseValid('change')\r\n },\r\n baseFocus(e) {\r\n this.isFocus = true\r\n this.warn(false)\r\n this.trigger(e)\r\n this.baseValid('focus')\r\n },\r\n baseBlur(e) {\r\n if (!this.isFocusTarget(e.relatedTarget)) this.isFocus = false\r\n this.trigger(e)\r\n this.baseValid('blur')\r\n },\r\n baseValid(trigger) {\r\n if (this.validTriggers[trigger]) {\r\n clearTimeout(this._baseValidTimer)\r\n this._baseValidTimer = setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) {\r\n let time = new Date().getTime()\r\n if (time - tipCache.time > 100) this.valid(trigger)\r\n }\r\n }, 100)\r\n }\r\n },\r\n snapElem() {\r\n return this.el('form')\r\n },\r\n hasBubble(a) {\r\n return this.snapElem().contains(a.isWidget ? a.el() : a)\r\n },\r\n isFocusTarget(el) {\r\n // dao\r\n },\r\n getInputValue(mv) {\r\n return mv\r\n },\r\n // @original: 检测表单是否有修改,对照参考的值为初始值\r\n isModified(original) {\r\n let dv = original ? this.defaultValue : this.modifiedValue\r\n let mv = this.x.modelValue\r\n if (dv == null) dv = ''\r\n if (mv == null) mv = ''\r\n if (dv == mv)\r\n return false\r\n return this.getInputValue(dv) != this.getInputValue(mv)\r\n },\r\n // @original: 设置为true,修改初始值\r\n saveModified(original) {\r\n this.modifiedValue = $.lodash.clone(this.x.modelValue)\r\n if (original) {\r\n this.defaultValue = this.modifiedValue\r\n }\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n this.warn(false)\r\n this.val(empty || this.defaultValue == null ? '' : this.defaultValue)\r\n },\r\n html_label() {\r\n\t\t\t\tif (this.$slots.label) return this.$slots.label()\r\n\t\t\t\tif (this.x.label && typeof this.x.label === 'object') {\r\n\t\t\t\t\tconst label = $.cloneDeep(this.x.label)\r\n\t\t\t\t\tif (label.width == null) delete label.width\r\n\t\t\t\t\tif (label.width != 0) return h(Label, label)\r\n\t\t\t\t}\r\n },\r\n html_input() {\r\n return h(this.input_tag, {\r\n class: 'w-input-value',\r\n ref: 'v',\r\n id: this.uid + 'v',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n readonly: this.isReadonly,\r\n disabled: this.isDisabled,\r\n placeholder: this.input_placeholder,\r\n autocomplete: 'off', //off, nope, new-password\r\n //list: 'autocompleteOff',\r\n //role: 'presentation',\r\n oninput: this.oninput,\r\n onfocus: this.baseFocus,\r\n onblur: this.baseBlur,\r\n ...this.input_prop,\r\n })\r\n },\r\n html_input_hidden() {\r\n return this.x.name ? h('input', {\r\n type: 'hidden',\r\n ref: 'v',\r\n name: this.input_name,\r\n value: this.input_value,\r\n disabled: this.isDisabled,\r\n class: 'f-hide'\r\n }) : []\r\n },\r\n html_button() {\r\n return []\r\n },\r\n html_form_slot() {\r\n return [\r\n this.slot('prepend'),\r\n this.html_input(),\r\n this.html_button(),\r\n this.slot('append'),\r\n ]\r\n },\r\n html_slot_down() {\r\n return this.slot('down')\r\n },\r\n html_main() {\r\n return h('div', {class: 'w-formbase-main'}, [this.html_form(), this.html_slot_down()])\r\n },\r\n html_form() {\r\n let fh = this.x.inputHeight && $.unitSize(this.x.inputHeight)\r\n return h('div', mergeProps({\r\n ref: 'form',\r\n id: this.uid + 'form',\r\n class: ['w-input', {\r\n 'w-input-border': this.hasBorder,\r\n [`f-${this.dir}-gap`]: $.br.compat.gap && this.x.gap,\r\n }],\r\n style: {\r\n 'height': fh\r\n },\r\n title: this.input_title\r\n }, this.form_prop), this.html_form_slot())\r\n },\r\n html_slots() {\r\n return [this.html_label(), this.html_main(), this.slot('right')]\r\n }\r\n },\r\n computed: {\r\n rules() {\r\n return this.x\r\n },\r\n pubValidHooks() {\r\n return {\r\n required: (v, rule, que) => {\r\n if (rule && !v) return this.formErr(que)\r\n },\r\n pattern: (v, rule, que) => {\r\n if (v && rule && (typeof rule === 'string' ? !$.eval(`${rule}.test(v)`, {rule, v}) : (rule.test && !rule.test(v))))\r\n return this.formErr(que)\r\n },\r\n validateHandler: async(v, rule, que) => {\r\n let rs = rule && rule(v)\r\n if (rs) {\r\n let text = await rs\r\n if (text) {\r\n return this.formErr({type: 'validateHandler', rule: {text}})\r\n }\r\n }\r\n }\r\n }\r\n },\r\n validHooks() {\r\n return this.pubValidHooks\r\n },\r\n validQueues() {\r\n let r = []\r\n let type = 'validateDefault'\r\n if (this.validHooks[type]) r.push({type})\r\n for(let k in this.validHooks) {\r\n if (!r.includes(k)) {\r\n let rule = this.rules[k]\r\n if (rule != null) {\r\n if (Array.isArray(rule)) {\r\n rule.forEach(item => r.push({type: k, rule: item}))\r\n } else {\r\n r.push({type: k, rule})\r\n }\r\n }\r\n }\r\n }\r\n return r\r\n },\r\n validTriggers() {\r\n let r = {}\r\n Object.keys(this.validHooks).forEach(k => {\r\n let d = this.rules[k]\r\n if (d) {\r\n if (Array.isArray(d)) {\r\n for (let e of d) {\r\n if (e.trigger) {\r\n (r[e.trigger] || (r[e.trigger] = [])).push({type: k, rule: e})\r\n }\r\n }\r\n } else if (d.trigger) {\r\n (r[d.trigger] || (r[d.trigger] = [])).push({type: k, rule: d})\r\n }\r\n }\r\n })\r\n return r\r\n },\r\n input_value() {\r\n return this.getInputValue(this.x.modelValue)\r\n },\r\n input_name() {\r\n return this.x.name\r\n },\r\n input_tag() {\r\n return 'input'\r\n },\r\n input_type() {\r\n return 'text'\r\n },\r\n input_title() {\r\n // implement\r\n },\r\n input_prop() {\r\n // implement\r\n },\r\n input_placeholder() {\r\n if (!this.isNormal) return;\r\n let s = this.x.placeholder\r\n if (s == null && $.x.autoPlaceholder && this.x.label) {\r\n s = $.loc.ps($.loc[this.placeholder_type || 'placeholder_input'], (this.x.label.text || this.x.label))\r\n }\r\n return s\r\n },\r\n form_prop() {\r\n // implement\r\n },\r\n hasVal() {\r\n return this.x.modelValue != null && this.x.modelValue !== ''\r\n },\r\n isNormal() {\r\n return !this.isReadonly && !this.isDisabled\r\n },\r\n isDisabled() {\r\n return !!this.x.disabled\r\n },\r\n isReadonly() {\r\n return !!this.x.readonly\r\n },\r\n errorTipTarget() {\r\n return this\r\n },\r\n // implement\r\n hasClassSlotDown() {\r\n return !!this.$slots.down\r\n },\r\n html_on() {\r\n // implement\r\n },\r\n html_props() {\r\n let fw = this.x.inputWidth && $.unitSize(this.x.inputWidth)\r\n return {\r\n class: ['w-formbase', this.warnClass, this.html_align_class, {\r\n 'z-on': this.isFocus,\r\n 'z-ds': !this.isNormal,\r\n 'z-req': this.rules.required,\r\n 'z-label-vertical': this.labelVertical,\r\n // 'z-fixed': !!fw,\r\n // 'z-full': this.x.inputWidth === '*',\r\n 'z-slot-down': this.hasClassSlotDown\r\n }],\r\n // style: fw && {\r\n // '--w-input-width': fw\r\n // },\r\n //'w-input-width': this.x.inputWidth,\r\n ...this.html_on\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-label {\r\n display: flex;\r\n align-items: center;\r\n padding-right: 10px;\r\n flex-shrink: 0;\r\n justify-content: flex-end;\r\n box-sizing: border-box;\r\n min-height: 32px;\r\n width: var(--important-label-width, var(--label-width));\r\n }\r\n\r\n .w-label.z-vertical {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-label-text {\r\n text-align: right;\r\n }\r\n\r\n .w-formbase {\r\n display: flex;\r\n box-sizing: border-box;\r\n align-items: center;\r\n }\r\n .w-formbase.z-slot-down {\r\n align-items: flex-start;\r\n }\r\n \r\n .w-formbase-main {\r\n flex: 1;\r\n min-width: 0;\r\n }\r\n\r\n .w-input {\r\n display: flex;\r\n box-sizing: border-box;\r\n min-height: 32px;\r\n overflow: hidden;\r\n align-items: center;\r\n flex: 1;\r\n flex-shrink: 1;\r\n flex-basis: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-label-vertical {\r\n display: block;\r\n }\r\n\r\n .w-formbase.z-label-vertical>.w-formbase-main>.w-input {\r\n max-width: var(--w-input-width);\r\n }\r\n\r\n .w-formbase.z-fixed>.w-formbase-main>.w-input {\r\n flex-grow: 0;\r\n }\r\n \r\n .w-input-border {\r\n border: 1px solid #ddd;\r\n box-sizing: border-box;\r\n background: #fff;\r\n }\r\n \r\n .w-input-buttonbar {\r\n position: relative;\r\n }\r\n \r\n .w-input-buttonbar,\r\n .w-input-button {\r\n display: flex;\r\n flex-shrink: 0;\r\n width: 26px;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 16px;\r\n cursor: pointer;\r\n }\r\n\r\n .w-input-button.f-i-caret-down {\r\n font-size: 18px;\r\n }\r\n\r\n .w-input-button button {\r\n width: 100%;\r\n }\r\n\r\n .w-input-main button:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-input-button,\r\n .w-input-button button,\r\n .w-input-main button:disabled {\r\n color: #a3a3a3;\r\n }\r\n\r\n .w-formbase.z-on>.w-formbase-main>.w-input-border,\r\n\t.w-formbase.z-drop>.w-formbase-main>.w-input-border {\r\n border-color: var(--w--primary-color);\r\n }\r\n\r\n .w-input-value {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-input-border>.w-input-value {\r\n width: 100%;\r\n border: 0;\r\n padding: 1px 0 1px 10px;\r\n background: transparent;\r\n }\r\n\r\n input::placeholder,\r\n textarea::placeholder,\r\n .w-input-placeholder {\r\n color: #a6a6a6;\r\n }\r\n \r\n .w-input-button-clear {\r\n visibility: hidden;\r\n }\r\n \r\n .w-input-button-clear:before {\r\n width: 18px;\r\n height: 18px;\r\n font-size: 12px;\r\n background-color: #eee;\r\n border-radius: 10px;\r\n content: '\\e636';\r\n transform: scale(0.9);\r\n }\r\n \r\n .w-input-buttonbar .w-input-button-clear {\r\n position: absolute;\r\n }\r\n \r\n .w-label,\r\n .w-form,\r\n .w-fileupload-nofile {\r\n line-height: 1.22;\r\n }\r\n \r\n .w-formbase:not(.z-ds) {\r\n &.z-val.z-clearable .w-input:hover {\r\n .w-input-button-drop {\r\n visibility: hidden;\r\n }\r\n .w-input-button-clear {\r\n visibility: visible;\r\n }\r\n }\r\n }\r\n\r\n .w-dropbox-text {\r\n box-sizing: border-box;\r\n width: 100%;\r\n padding-left: 10px;\r\n text-align: left;\r\n }\r\n \r\n .w-dropbox-dialog.z-mob {\r\n max-width: calc(100% - 40px);\r\n max-height: calc(100% - 100px);\r\n }\r\n\r\n .w-textarea .w-input-border>.w-input-value {\r\n height: 100%;\r\n padding: 5px 10px;\r\n box-sizing: border-box;\r\n font-family: inherit;\r\n resize: none;\r\n }\r\n\r\n .w-textarea .w-input-border {\r\n height: 100%;\r\n }\r\n \r\n .w-textarea-down {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n \r\n .w-textarea-show-count {\r\n color: rgba(0, 0, 0, 0.45);\r\n }\r\n \r\n .w-textarea-show-count-exceed {\r\n font-style: normal;\r\n color: #f00;\r\n }\r\n\r\n .w-checkbox,\r\n .w-triplebox,\r\n .w-radio {\r\n margin: 0;\r\n }\r\n \r\n .w-checkbox>.w-input,\r\n .w-triplebox>.w-input,\r\n .w-radio>.w-input {\r\n min-height: 30px;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-triplebox {\r\n display: inline-flex;\r\n justify-content: center;\r\n }\r\n \r\n .w-checkboxgroup .w-checkbox>.w-input,\r\n .w-radiogroup .w-radio>.w-input {\r\n min-height: 20px;\r\n }\r\n \r\n .w-checkboxgroup,\r\n .w-radiogroup {\r\n &.z-br {\r\n &>.w-formbase-main>.w-input {\r\n flex-wrap: wrap;\r\n }\r\n }\r\n &>.w-formbase-main>.w-input {\r\n padding-top: 3px;\r\n padding-bottom: 3px;\r\n gap: var(--w-boxgroup-gap, 10px);\r\n --w-compat-gap: var(--w-boxgroup-gap, 10px);\r\n }\r\n }\r\n\r\n .w-boxgroup-grid {\r\n flex: 1;\r\n display: grid;\r\n grid-template-columns: auto 1fr;\r\n align-items: center;\r\n grid-gap: var(--w-boxgroup-gap);\r\n }\r\n \r\n .w-boxgroup-grid>.w-checkbox,\r\n .w-boxgroup-grid>.w-radio,\r\n .w-boxgroup-grid>.w-triplebox {\r\n grid-column: 1 / span 2;\r\n }\r\n \r\n \r\n .w-boxgroup-grid>.w-checkbox.z-target,\r\n .w-boxgroup-grid>.w-triplebox.z-target,\r\n .w-boxgroup-grid>.w-radio.z-target {\r\n grid-column: 1;\r\n }\r\n\r\n .w-checkbox-target>*,\r\n .w-radio-target>* {\r\n width: 100%;\r\n }\r\n\r\n .w-checkbox-text,\r\n .w-radio-text,\r\n .w-triplebox-text {\r\n padding-left: 5px;\r\n padding-bottom: 1px;\r\n }\r\n\r\n .w-checkbox-appear,\r\n .w-radio-appear,\r\n .w-triplebox-appear {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n width: 18px;\r\n height: 18px;\r\n border: 1px solid #ccc;\r\n box-sizing: border-box;\r\n line-height: 0;\r\n color: var(--w--primary-color);\r\n background-color: #fff;\r\n box-shadow: 0 1px 2px rgba(0, 0, 0, 5%), inset 0px -15px 10px -12px rgba(0, 0, 0, 5%);\r\n }\r\n\r\n .w-radio-appear {\r\n border-radius: 20px;\r\n }\r\n\r\n .w-checkbox .w-input-value,\r\n .w-radio .w-input-value,\r\n .w-triplebox .w-input-value {\r\n display: none;\r\n }\r\n\r\n .w-checkbox-appear .f-i,\r\n .w-radio-appear .f-i,\r\n .w-triplebox-appear .f-i {\r\n visibility: hidden;\r\n font-size: 14px;\r\n }\r\n\r\n .w-radio-appear .f-i {\r\n width: 10px;\r\n height: 10px;\r\n background: var(--w--primary-color);\r\n border-radius: 20px;\r\n }\r\n\r\n .w-radio-text,\r\n .w-checkbox-text,\r\n .w-triplebox-text {\r\n word-break: keep-all;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear,\r\n .w-input-value:checked+.w-triplebox-appear,\r\n .w-input-value:checked+.w-radio-appear {\r\n border-color: var(--w--primary-color);\r\n box-shadow: none;\r\n }\r\n\r\n .w-input-value:checked+.w-checkbox-appear .f-i,\r\n .w-input-value:checked+.w-triplebox-appear .f-i,\r\n .w-input-value:checked+.w-radio-appear .f-i {\r\n visibility: visible;\r\n }\r\n\r\n .w-triplebox.z-half .w-triplebox-appear:before {\r\n content: '';\r\n position: absolute;\r\n background: var(--w--primary-color);\r\n flex-shrink: 0;\r\n width: 10px;\r\n height: 3px;\r\n }\r\n\r\n .w-formbase.z-ds .w-input-border,\r\n .w-formbase.z-ds .w-checkbox-appear,\r\n .w-formbase.z-ds .w-triplebox-appear,\r\n .w-formbase.z-ds .w-radio-appear {\r\n border-color: #ccc;\r\n background-color: #e6e6e6;\r\n }\r\n\r\n .w-formbase.z-err .w-input-border,\r\n .w-formbase.z-err .w-radio-appear,\r\n .w-formbase.z-err .w-triplebox-appear,\r\n .w-formbase.z-err .w-checkbox-appear,\r\n .w-form.z-err>.w-formbase-main>.w-input{\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text {\r\n position: relative;\r\n }\r\n\r\n .w-formbase.z-req>.w-label>.w-label-text>span:before {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-right: 3px;\r\n line-height: 0;\r\n }\r\n\r\n .w-label.z-h-align-left {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-label.z-h-align-left>.w-label-text {\r\n text-align: left;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:before {\r\n content: '';\r\n display: none;\r\n }\r\n\r\n .w-formbase.z-req>.w-label.z-h-align-left>.w-label-text>span:after {\r\n content: '*';\r\n color: #f00;\r\n font-size: 16px;\r\n font-family: tahoma;\r\n position: relative;\r\n top: 3px;\r\n margin-left: 3px;\r\n }\r\n\r\n .w-form>.w-formbase-main {\r\n display: flex;\r\n }\r\n\r\n .w-form.z-vertical>.w-formbase-main {\r\n flex-direction: column;\r\n }\r\n\r\n .w-form>.w-formbase-main>.w-input {\r\n word-break: break-word;\r\n gap: var(--w-form-gap);\r\n }\r\n \r\n .w-form.z-vertical>.w-formbase-main>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-v-align-left>.w-formbase-main>.w-input,\r\n .w-form.z-h-valign-top>.w-formbase-main>.w-input {\r\n align-items: flex-start;\r\n }\r\n\r\n .w-form.z-v-align-center>.w-formbase-main>.w-input,\r\n .w-form.z-h-valign-middle>.w-formbase-main>.w-input {\r\n align-items: center;\r\n }\r\n\r\n .w-form.z-v-align-right>.w-formbase-main>.w-input,\r\n .w-form.z-h-valign-bottom>.w-formbase-main>.w-input {\r\n align-items: flex-end;\r\n }\r\n\r\n .w-form.z-h-align-left>.w-formbase-main>.w-input,\r\n .w-form.z-v-valign-top>.w-formbase-main>.w-input {\r\n justify-content: flex-start;\r\n }\r\n\r\n .w-form.z-h-align-center>.w-formbase-main>.w-input,\r\n .w-form.z-v-valign-middle>.w-formbase-main>.w-input {\r\n justify-content: center;\r\n }\r\n\r\n .w-form.z-h-align-right>.w-formbase-main>.w-input,\r\n .w-form.z-v-valign-bottom>.w-formbase-main>.w-input {\r\n justify-content: flex-end;\r\n }\r\n \r\n .w-text>.w-formbase-main>.w-input,\r\n .w-spinner>.w-formbase-main>.w-input,\r\n .w-datepicker>.w-formbase-main>.w-input {\r\n align-items: stretch;\r\n }\r\n \r\n .w-input-value:checked+.w-radio-appear:after {\r\n content: 'a';\r\n position: absolute;\r\n }\r\n \r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, ref\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n \r\n const {leafSymbol} = $.symbol\r\n\r\n export default {\r\n name: 'w-checkbox',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['text', 'checked', 'partialSubmit', 'minSize', 'maxSize'],\r\n inject: ['providePubParent', 'provideBoxParent'],\r\n emits: ['change', 'update:checked', 'click'],\r\n data() {\r\n return {\r\n isPlural: true,\r\n indeterminate: false,\r\n modifiedChecked: false,\r\n defaultChecked: false,\r\n }\r\n },\r\n created() {\r\n if (this.provideBoxParent) {\r\n this.provideBoxParent.boxProxy = this\r\n }\r\n this.defaultChecked = this.isChecked\r\n this.modifiedChecked = this.isChecked\r\n },\r\n methods: {\r\n val(a) {\r\n if (arguments.length == 0) {\r\n return this.getVal()\r\n }\r\n this.setVal(a, {\r\n type: 'change',\r\n target: this.$refs.v\r\n })\r\n },\r\n getVal() {\r\n return this.isChecked ? this.value : ''\r\n },\r\n setVal(checked, event) {\r\n let p = this.pubParent\r\n let v = this.checkValue\r\n let rdo = this.input_type === 'radio'\r\n let mv = this.x.modelValue\r\n if (rdo) {\r\n mv = checked ? $.string(v) : ''\r\n } else {\r\n mv = checked ? $.idsAdd(mv, v) : $.idsRemove(mv, v)\r\n }\r\n this.x.modelValue = mv\r\n if (rdo) {\r\n this.siblings().forEach(sb => sb.x.modelValue = mv)\r\n }\r\n this.$emit('update:modelValue', mv)\r\n this.trigger(event, mv)\r\n this.parentTrigger('change', mv)\r\n },\r\n formVal() {\r\n return !this.isDisabled && this.isChecked ? this.x.value : ''\r\n },\r\n groupFormVal(a) {\r\n if (a == null) {\r\n let r = []\r\n $.lodash.each(this.siblings(null, true), f => {\r\n let g = f.formVal()\r\n if (g != null && g !== '') r.push(g)\r\n })\r\n return r.join(',')\r\n }\r\n $.lodash.each(this.siblings(), f => f.val($.idsAny(a, f.checkValue)))\r\n },\r\n watchModelValue(v, ov) {\r\n if (ov != v) {\r\n this.trigger('change', v)\r\n this.parentTrigger('change', v)\r\n }\r\n },\r\n getInputValue(v) {\r\n // 如果没有定义value,必须返回空字符串。因为当<input type=\"checkbox\">没有value属性时,它的表单值会变成\"on\"\r\n return v == null ? '' : v\r\n },\r\n parentTrigger(e, v) {\r\n if (this.pubParent && this.pubParent.watchValue != v) {\r\n this.pubParent.watchValue = v\r\n this.pubParent.trigger(e, v)\r\n }\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n this.val(a)\r\n },\r\n // @a -> T/F 是否只获取所有选中项, b -> 是否只选择可用的\r\n siblings(a, b) {\r\n return $.lodash.map($.q(':input[name=\"' + this.input_name + '\"]:not([w-form-ignore] :input)' + (b ? ':not(:disabled)' : '') +\r\n (a === true ? ':checked' : a === false ? ':not(:checked)' : (a || '')), this.ownerView.el()), e => $(e))\r\n },\r\n relate() {\r\n // implement\r\n },\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n if (this.pubParent) {\r\n this.pubParent.reset(empty)\r\n } else {\r\n this.val(empty || !this.defaultChecked ? false : true)\r\n }\r\n },\r\n onclick(e) {\r\n //implement\r\n e.stopPropagation()\r\n },\r\n onbasechange(e) {\r\n if (this.warnClass) {\r\n this.siblings().forEach(v => v.warn && v.warn(false))\r\n }\r\n this.setVal(e.target.checked, e)\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n },\r\n isModified(original) {\r\n let c = original ? this.defaultChecked : this.modifiedChecked\r\n return c != this.isChecked\r\n },\r\n saveModified(original) {\r\n this.modifiedChecked = this.isChecked\r\n if (original) {\r\n this.defaultChecked = this.modifiedChecked\r\n }\r\n },\r\n snapElem() {\r\n return this.el()\r\n },\r\n html_input() {\r\n return [h(this.input_tag, {\r\n ref: 'v',\r\n class: 'w-input-value',\r\n type: this.input_type,\r\n name: this.input_name,\r\n value: this.input_value,\r\n checked: this.isChecked,\r\n disabled: this.isDisabled,\r\n onclick: e => {\r\n if (this.isNormal) {\r\n this.indeterminate = false\r\n if (this.x.cancelable && this.isChecked) {\r\n e.preventDefault()\r\n this.val(false)\r\n setTimeout(() => {\r\n this.$refs.v.checked = false\r\n })\r\n }\r\n } else {\r\n e.preventDefault()\r\n }\r\n },\r\n onchange: this.onchange,\r\n ...this.input_prop,\r\n }), h('em', {\r\n ref: 'appear',\r\n class: this.$options.name + '-appear'\r\n }, h('i', {\r\n class: this.input_icon\r\n })),\r\n this.$slots.text || this.x.text ?\r\n h('span', {\r\n class: this.$options.name + '-text',\r\n }, this.$slots.text ? this.$slots.text() : this.x.text) : null\r\n ]\r\n },\r\n html_main() {\r\n return h('label', {\r\n class: 'w-input',\r\n onclick: this.onclick,\r\n }, this.html_input())\r\n },\r\n html_target() {\r\n return this.$slots.default ? h(Horizontal, {\r\n class: this.$options.name + '-target',\r\n width: '*',\r\n ref: 'target'\r\n }, this.$slots) : []\r\n },\r\n html() {\r\n return this.$slots.default ? [this.html_self(true), this.html_target()] : this.html_self()\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length < $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n maxSize: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && v.split(',').length > $.number(r))\r\n return this.formErr(q, [r])\r\n },\r\n }\r\n },\r\n rules() {\r\n return {\r\n required: this.x.required != null ? !!this.x.required : !!(this.pubParent && this.pubParent.x.required),\r\n minSize: this.x.minSize != null ? this.x.minSize : (this.pubParent && this.pubParent.x.minSize),\r\n maxSize: this.x.maxSize != null ? this.x.maxSize : (this.pubParent && this.pubParent.x.maxSize),\r\n }\r\n },\r\n input_type() {\r\n return 'checkbox'\r\n },\r\n input_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_value() {\r\n // 如果没有定义value,必须返回空字符串。因为当<input type=\"checkbox\">没有value属性时,它的表单值会变成\"on\"\r\n return this.x.value == null ? '' : this.x.value\r\n },\r\n isIndeterminate() {\r\n return this.data && this.data[leafSymbol] ? this.data[leafSymbol].indeterminate : this.indeterminate\r\n },\r\n input_prop() {\r\n return {\r\n indeterminate: this.isIndeterminate,\r\n 'w-partialsubmit': this.x.partialSubmit ? 1 : null,\r\n 'w-all': this.x.all ? '' : null,\r\n }\r\n },\r\n input_icon() {\r\n return 'f-i f-i-check'\r\n },\r\n checkValue() {\r\n return this.x.value\r\n },\r\n isChecked() {\r\n return $.idsAny(this.x.modelValue, this.checkValue)\r\n },\r\n isDisabled() {\r\n return this.x.disabled != null ? !!this.x.disabled : (this.pubParent && this.pubParent.disabled)\r\n },\r\n isReadonly() {\r\n return this.x.readonly != null ? !!this.x.readonly : (this.pubParent && this.pubParent.readonly)\r\n },\r\n html_class() {\r\n return {\r\n 'z-half': this.isIndeterminate,\r\n 'z-target': !!this.$slots.default,\r\n 'z-checked': this.isChecked,\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.target) {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n this.siblings().forEach((sb) => {\r\n let t = sb.$refs.target\r\n if (t) this.ownerView.fAll(null, t.$el).forEach(n => n.x.disabled = !sb.isChecked)\r\n })\r\n }, {immediate: true})\r\n }\r\n },\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {computed, h} from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n \r\n const {leafSymbol} = $.symbol\r\n\r\n export default {\r\n name: 'w-triplebox',\r\n mixins: [CheckBox],\r\n props: ['all'],\r\n created() {\r\n if (this.provideBoxParent) {\r\n if (this.data && !this.data[leafSymbol]) {\r\n const parentLeaf = this.provideBoxParent.provideParentLeaf\r\n const parent = parentLeaf && parentLeaf.boxProxy && parentLeaf.boxProxy.data\r\n const indeterminate = computed(() => {\r\n if (this.data.children && this.data.children.length) {\r\n let hasAny, hasNot\r\n const mv = this.x.modelValue\r\n for (let item of this.data.children) {\r\n if (!item[leafSymbol]) return false\r\n if (item[leafSymbol].indeterminate) return true\r\n if ($.idsAny(mv, item[leafSymbol].checkValue)) hasAny = true\r\n else hasNot = true\r\n }\r\n return !!(hasAny && hasNot)\r\n }\r\n return false\r\n })\r\n this.data[leafSymbol] = {parent, checkValue: this.value, indeterminate}\r\n }\r\n } else {\r\n this.$watch(() => this.x.modelValue, (v, ov) => {\r\n if ((v == null || v === '') && (ov == null || ov === '')) return\r\n if (!this.x.all) this.relate()\r\n })\r\n }\r\n },\r\n methods: {\r\n getVal() {\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.value : ''\r\n },\r\n checkDescendant(data, mv, checked) {\r\n if (data.children) {\r\n for (let item of data.children) {\r\n const leaf = item[leafSymbol]\r\n mv = checked ? $.idsAdd(mv, leaf.checkValue) : $.idsRemove(mv, leaf.checkValue)\r\n mv = this.checkDescendant(item, mv, checked)\r\n }\r\n }\r\n return mv\r\n },\r\n checkAncestor(item, mv) {\r\n const hasNot = item.children.find(n => !$.idsAny(mv, n[leafSymbol].checkValue))\r\n mv = hasNot ? $.idsRemove(mv, item[leafSymbol].checkValue) : $.idsAdd(mv, item[leafSymbol].checkValue)\r\n if (item[leafSymbol].parent) {\r\n mv = this.checkAncestor(item[leafSymbol].parent, mv)\r\n }\r\n return mv\r\n },\r\n setVal(checked, event) {\r\n let p = this.pubParent\r\n let v = this.checkValue\r\n let mv = this.x.modelValue\r\n mv = checked ? $.idsAdd(mv, v) : $.idsRemove(mv, v)\r\n if (this.data) {\r\n if (this.data.children) {\r\n mv = this.checkDescendant(this.data, mv, checked)\r\n }\r\n const leaf = this.data[leafSymbol]\r\n if (leaf.parent) {\r\n mv = this.checkAncestor(leaf.parent, mv, checked)\r\n }\r\n }\r\n this.x.modelValue = mv\r\n this.$emit('update:modelValue', mv)\r\n this.trigger(event, mv)\r\n this.parentTrigger('change', mv)\r\n },\r\n formVal() {\r\n if (this.isDisabled) return ''\r\n let s = this.checkstate()\r\n return s == 1 || (this.x.partialSubmit && s == 2) ? this.$refs.v.value : ''\r\n },\r\n onchange(e) {\r\n this.onbasechange(e)\r\n this.relate()\r\n },\r\n checkstate(a) {\r\n let b = this.indeterminate ? 2 : this.isChecked ? 1 : 0\r\n if (a == null) {\r\n return b\r\n }\r\n this.val(a == 1)\r\n this.indeterminate = a == 2\r\n },\r\n isPartial() {\r\n return this.checkstate() == 2\r\n },\r\n relate() {\r\n const allbox = this.x.name && $.q(`[name=\"${this.x.name}\"][w-all]`, $.el(this.ownerView))[0]\r\n if (allbox) {\r\n const b = this.ownerView.fAll(this.x.name)\r\n for (var i = 0, c = this.isPartial(), l = b.length, n = l, c0 = 0, c1 = 0, c2 = 0,\r\n d; i < l; i++) {\r\n if (!b[i].isNormal) {\r\n n--\r\n continue\r\n }\r\n if (this.x.all) {\r\n if (this != b[i]) {\r\n if (c) {\r\n this.checkstate(b[i].checkstate())\r\n break;\r\n } else {\r\n b[i].checkstate(this.isChecked ? 1 : 0)\r\n }\r\n } else if (l == 1)\r\n d = this\r\n } else if (b[i].x.all) {\r\n d = b[i]\r\n } else {\r\n b[i].isChecked ? (c1++) : b[i].isPartial() ? (c2++) : (c0++)\r\n }\r\n }\r\n if (d && ((c0 + c1 + c2) || l == 1)) {\r\n d.checkstate(c0 == n - 1 ? 0 : c1 == n - 1 ? 1 : 2)\r\n }\r\n }\r\n },\r\n check(a) {\r\n if (!this.isNormal) return\r\n let s = this.checkstate()\r\n if (s != a) {\r\n this.checkstate(a)\r\n this.relate()\r\n }\r\n },\r\n },\r\n computed: {\r\n checkValue() {\r\n return this.x.all ? 'checked' : this.x.value\r\n }\r\n },\r\n mounted() {\r\n //if (!this.x.all && this.isChecked)\r\n }\r\n\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import SrcParent from './SrcParent.vue'\r\n import TripleBox from './TripleBox.vue'\r\n import Img from './Img.vue'\r\n import SlotDefault from './SlotDefault.vue'\r\n \r\n const leafSymbol = Symbol('leaf')\r\n\r\n export default {\r\n name: 'w-leaf',\r\n pubParentName: 'w-tree',\r\n mixins: [WidgetBase, SrcParent],\r\n props: ['text', 'expanded', 'expandedIcon', 'collapsedIcon', 'icon', 'boxSync', 'src', 'disabled'],\r\n inject: ['providePubParent', 'provideLevel', 'provideParentLeaf', 'provideParentTR'],\r\n emits: ['click'],\r\n provide() {\r\n return {\r\n provideParentLeaf: this,\r\n provideLevel: this.provideLevel + 1,\r\n provideBoxParent: this,\r\n }\r\n },\r\n data() {\r\n return {\r\n hover: false,\r\n loading: false,\r\n loaded: this.getInitLoaded()\r\n }\r\n },\r\n methods: {\r\n hasChild() {\r\n let chd = (this.x || this.$props).children\r\n if (chd === true || (Array.isArray(chd) && chd.length)) return true\r\n },\r\n childrenList() {\r\n return $.lodash.map(this.$refs.cont.querySelectorAll(':scope > .w-leaf'), v => $(v))\r\n },\r\n getInitLoaded() {\r\n return this.hasChild() || !this.getSrc() ? true : false\r\n },\r\n isExpanded() {\r\n return this.provideParentTR ? this.provideParentTR.isExpanded() : this.x.expanded\r\n },\r\n setExpanded(exp) {\r\n this.x.expanded = exp != null ? exp : !this.x.expanded\r\n },\r\n isFolder() {\r\n return this.hasChild() ? true : !!(this.getSrc() && !this.loaded)\r\n },\r\n toggle(exp, fn) {\r\n (this.provideParentTR || this).setExpanded(exp)\r\n if (this.isExpanded() && !this.loaded) {\r\n this.request(fn)\r\n } else {\r\n fn && this.$nextTick(fn)\r\n }\r\n },\r\n onmouseenter(e) {\r\n !this.x.disabled && this.el().classList.add('z-hv')\r\n },\r\n onmouseleave(e) {\r\n this.el().classList.remove('z-hv')\r\n },\r\n onclick(e) {\r\n if (this.x.disabled) {\r\n return\r\n }\r\n if (this.boxProxy && this.x.boxSync) {\r\n this.boxProxy.check(!this.boxProxy.isChecked)\r\n }\r\n this.$emit('click', e)\r\n },\r\n // triplebox 级联勾选\r\n triple() {\r\n if (!this.boxProxy || this.boxProxy.$options.name !== 'w-triplebox') return\r\n let p = this\r\n while ((p = p.provideParentLeaf) && p.$options.name === 'w-leaf') {\r\n if (p.boxProxy) {\r\n let c = p.childrenList()\r\n let m = [0, 0, 0]\r\n let l = c.length\r\n c.forEach(v => {\r\n let b = v.boxProxy\r\n if (b) m[b.checkstate()]++\r\n })\r\n p.boxProxy.check(m[0] === l ? 0 : m[1] === l ? 1 : 2)\r\n }\r\n }\r\n let c = this.boxProxy.checkstate()\r\n c != 2 && this.tripleAll(c)\r\n },\r\n tripleAll(a) {\r\n this.childrenList().forEach(v => {\r\n if (v.boxProxy) {\r\n v.boxProxy.check(a)\r\n v.tripleAll(a)\r\n }\r\n })\r\n },\r\n expandToView() {\r\n let p = this\r\n while ((p = p.provideParentLeaf) && (p.$options.name === this.$options.name)) {\r\n p.toggle(true)\r\n }\r\n },\r\n html_self() {\r\n let exp = this.isExpanded()\r\n let ico = this.isFolder() ? (exp ? this.x.expandedIcon : this.x.collapsedIcon) : this.x.icon\r\n return h('div', mergeProps(this.html_attrs, this.html_props, this.$attrs), [\r\n this.loading ?\r\n h(Img, {\r\n src: '#f-svg-loading',\r\n class: 'w-leaf-loading'\r\n }) :\r\n h('div', {\r\n ref: 'toggle',\r\n class: ['w-leaf-toggle f-i', exp ? 'f-i-caret-down' : 'f-i-caret-right'],\r\n onclick: (e) => {\r\n e.stopPropagation(), this.toggle()\r\n }\r\n }),\r\n this.$slots.box && this.$slots.box(),\r\n ico && h(Img, {\r\n src: ico,\r\n class: 'w-leaf-icon'\r\n }),\r\n h('div', {\r\n class: 'w-leaf-text f-line-1',\r\n title: this.x.text,\r\n }, this.$slots.text ? this.$slots.text() : this.x.text)\r\n ])\r\n },\r\n html_cont() {\r\n let r\r\n let chd = this.x.children\r\n let tree = this.pubParent\r\n if (Array.isArray(chd) && tree) {\r\n r = chd.map((item, index) => {\r\n let key\r\n const leaf = tree.$slots.default({item, index})\r\n for (let f of leaf) {\r\n if (!key) {\r\n key = f.key\r\n }\r\n }\r\n if (key) {\r\n return h(SlotDefault, {key}, {default: () => leaf})\r\n } else {\r\n return leaf\r\n }\r\n })\r\n }\r\n return h('div', {\r\n id: this.uid + 'cont',\r\n ref: 'cont',\r\n class: 'w-leaf-cont',\r\n style: {\r\n display: this.x.expanded ? '' : 'none'\r\n },\r\n }, r)\r\n },\r\n html() {\r\n return [this.html_self(), this.html_cont()]\r\n }\r\n },\r\n computed: {\r\n tree() {\r\n return this.pubParent\r\n },\r\n level() {\r\n return this.provideParentTR ? this.provideParentTR.level : this.provideLevel + 1\r\n },\r\n isCurrent() {\r\n return this.pubParent && this.pubParent.inCurrent(this)\r\n },\r\n html_props() {\r\n let exp = this.isExpanded()\r\n let fd = this.isFolder()\r\n let ds = !!this.x.disabled\r\n let prop = {\r\n class: {\r\n 'z-on': this.isCurrent,\r\n 'z-ds': ds,\r\n 'z-folder': fd,\r\n 'z-expanded': fd && exp,\r\n 'z-collapse': fd && !exp\r\n },\r\n style: 'padding-left:' + $.unitSize(this.level * 16),\r\n }\r\n if (this.pubParent) {\r\n prop.onmouseenter = this.onmouseenter\r\n prop.onmouseleave = this.onmouseleave\r\n prop.onclick = this.onclick\r\n // prop[`onClick${ds?'Capture':''}`] = this.onclick\r\n }\r\n return prop\r\n }\r\n },\r\n mounted() {\r\n if (this.x.expanded) this.toggle(true)\r\n if (this.isCurrent) this.pubParent.viewCurrent(this)\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-leaf {\r\n display: flex;\r\n align-items: center;\r\n box-sizing: border-box;\r\n min-height: 30px;\r\n width: 100%;\r\n text-align: left;\r\n }\r\n\r\n .w-leaf-text {\r\n flex: 1;\r\n }\r\n\r\n .w-leaf-toggle {\r\n visibility: hidden;\r\n padding: 0 1px;\r\n margin-left: 1px;\r\n color: #777;\r\n opacity: #777;\r\n }\r\n \r\n .w-leaf.z-on .w-leaf-toggle,\r\n .w-leaf.z-on .f-svg {\r\n color: currentcolor;\r\n fill: currentcolor;\r\n }\r\n\r\n .w-leaf-loading {\r\n width: 20px;\r\n margin-left: 1px;\r\n }\r\n\r\n .w-leaf-icon {\r\n margin-right: 6px;\r\n }\r\n\r\n .w-leaf.z-folder .w-leaf-toggle {\r\n visibility: visible;\r\n }\r\n\r\n .w-leaf .w-triplebox,\r\n .w-leaf .w-checkbox, \r\n .w-leaf .w-radio {\r\n margin-right: 6px;\r\n }\r\n \r\n .w-leaf.z-hv {\r\n background: #f5faff;\r\n }\r\n \r\n .w-leaf.z-on {\r\n background: var(--w--primary-color);\r\n color: #fff\r\n }\r\n \r\n .w-leaf.z-ds {\r\n color: #999;\r\n }\r\n \r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n\r\n export default {\r\n name: 'w-pagebar',\r\n mixins: [ButtonBar],\r\n emits: ['click:item'],\r\n props: ['limit', 'size', 'offset', 'buttonCount', 'noFirstLast', 'face', 'jump'],\r\n data() {\r\n return {\r\n isJumpFocus: false,\r\n showDrop: false,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n limit: 1,\r\n size: 0,\r\n offset: 0,\r\n buttonCount: 5,\r\n face: 'normal',\r\n gap: 0,\r\n valign: 'middle',\r\n }\r\n },\r\n inCurrent(a) {\r\n return this.currentPage == a.text\r\n },\r\n clickItem(e, i) {\r\n let b = (i - 1) * this.x.limit\r\n if (b != this.x.offset) {\r\n e.runType = 'click:item'\r\n e.value = b\r\n this.trigger(e, b)\r\n }\r\n },\r\n clickDrop(e) {\r\n this.showDrop = true\r\n },\r\n onJumpClick(e) {\r\n let v = Math.max(0, $.number(this.$refs.jumpInput.value))\r\n this.clickItem(e, v)\r\n },\r\n html_button(i, t, ic, ds) {\r\n return h('button', {\r\n class: ['w-pagebar-button w-pagebar-num', {'z-on': !t && !ic && i == this.currentPage, 'z-ds': ds, [ic]: ic}],\r\n disabled: ds,\r\n onclick: e => this.clickItem(e, i)\r\n }, t || (ic ? '' : i))\r\n },\r\n html_slots() {\r\n return this.x.face === 'button' ? this.html_face_button() :\r\n this.x.face === 'simple' ? this.html_face_simple() : \r\n this.html_face_normal()\r\n },\r\n html_buttons() {\r\n return [h(Button, {\r\n class: 'w-pagebar-button w-pagebar-prev',\r\n icon: '.f-i .f-i-angle-left',\r\n disabled: this.currentPage == 1,\r\n title: $.loc.page_text.prev,\r\n onclick: e => this.clickItem(e, this.currentPage - 1)\r\n }), h(Button, {\r\n class: 'w-pagebar-button w-pagebar-next',\r\n icon: '.f-i .f-i-angle-right',\r\n disabled: this.currentPage == this.sumPage,\r\n title: $.loc.page_text.next,\r\n onclick: e => this.clickItem(e, this.currentPage + 1)\r\n })]\r\n },\r\n html_drop() {\r\n let s = []\r\n if (this.x.buttonCount) {\r\n s.push(h(Button, {\r\n class: 'w-pagebar-button w-pagebar-button-count w-pagebar-prev',\r\n ref: 'drop',\r\n text: this.currentPage + '/' + this.sumPage,\r\n onclick: e => this.clickDrop(e)\r\n }))\r\n }\r\n if (this.showDrop) {\r\n let b = []\r\n for (let i = 1, sp = this.sumPage; i <= sp; i ++) b.push(h(Button, {text: i, onClick: e => this.clickItem(e, i)}))\r\n s.push(h(Menu, {snap: () => this.$refs.drop, position: 'v', indent: 1, onClose: () => this.showDrop = false}, {default: () => b}))\r\n }\r\n return s\r\n },\r\n html_face_simple() {\r\n return this.html_drop().concat(this.html_buttons())\r\n },\r\n html_face_button() {\r\n let b = this.html_buttons()\r\n b.splice(1, 0, ...this.html_drop())\r\n return b\r\n },\r\n html_face_normal() {\r\n const s = []\r\n let sp = this.sumPage\r\n let cp = this.currentPage\r\n let n = $.number(this.x.buttonCount)\r\n let f = Math.max(1, cp - Math.ceil(n / 2) + 1)\r\n let l = Math.min(sp + 1, f + n)\r\n let d = l - f < n ? Math.max(1, l - n) : f\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(1, this.labelFirst, this.iconFirst, cp == 1))\r\n }\r\n s.push(this.html_button(cp - 1, this.labelPrev, this.iconPrev, cp == 1))\r\n for (let i = d; i < l; i++) {\r\n s.push(this.html_button(i))\r\n }\r\n s.push(this.html_button(cp + 1, this.labelNext, this.iconNext, cp >= this.sumPage))\r\n if (!this.x.noFirstLast) {\r\n s.push(this.html_button(sp, this.labelLast, this.iconLast, cp >= this.sumPage))\r\n }\r\n if (this.x.jump) {\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-to'\r\n }, $.loc.to))\r\n s.push(h('input', {\r\n class: 'w-pagebar-jump-input',\r\n ref: 'jumpInput',\r\n onfocus: e => this.isJumpFocus = true,\r\n onblur: e => this.isJumpFocus = false,\r\n onkeydown: e => e.keyCode == 13 && this.onJumpClick(e)\r\n }))\r\n s.push(h('button', {\r\n class: 'w-pagebar-button w-pagebar-jump-button',\r\n onclick: this.onJumpClick\r\n }, 'GO'))\r\n s.push(h('span', {\r\n class: 'w-pagebar-jump-page'\r\n }, $.loc.page))\r\n }\r\n return s\r\n },\r\n html_face_mini() {\r\n return this.html_face_normal()\r\n },\r\n },\r\n computed: {\r\n currentPage() {\r\n return (Math.ceil(this.x.offset / this.x.limit) || 0) + 1\r\n },\r\n sumPage() {\r\n return Math.ceil(this.x.size / this.x.limit) || 1\r\n },\r\n labelFirst() {\r\n return this.x.face === 'normal' ? $.loc.page_text.first : ''\r\n },\r\n labelLast() {\r\n return this.x.face === 'normal' ? $.loc.page_text.last : ''\r\n },\r\n labelNext() {\r\n return this.x.face === 'normal' ? $.loc.page_text.next : ''\r\n },\r\n labelPrev() {\r\n return this.x.face === 'normal' ? $.loc.page_text.prev : ''\r\n },\r\n iconFirst() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-first' : ''\r\n },\r\n iconLast() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-last' : ''\r\n },\r\n iconNext() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-right' : ''\r\n },\r\n iconPrev() {\r\n return this.x.face === 'mini' ? 'f-i f-i-angle-left' : ''\r\n },\r\n html_class() {\r\n return [\r\n 'w-buttonbar w-horizontal',\r\n 'z-face-' + this.x.face,\r\n this.html_align_class,\r\n this.isJumpFocus && 'z-jump-on',\r\n ]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-pagebar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-num {\r\n display: flex;\r\n position: relative;\r\n flex-shrink: 0;\r\n align-items: center;\r\n justify-content: center;\r\n box-sizing: border-box;\r\n border: 1px solid #ddd;\r\n background: #fff;\r\n cursor: pointer;\r\n }\r\n\r\n .w-pagebar-num .w-button-text {\r\n padding: 0\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num {\r\n min-width: 30px;\r\n padding: 0 10px;\r\n height: 32px;\r\n flex-shrink: 0;\r\n margin-right: -1px;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num:last-child,\r\n .w-pagebar.z-face-mini .w-pagebar-num:last-child{\r\n margin-right: 0;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on {\r\n font-weight: 700;\r\n background: var(--w--primary-color);\r\n border-color: var(--w--primary-color);\r\n color: #fff;\r\n z-index: 1;\r\n cursor: default;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-hv {\r\n color: #3e89fa;\r\n border-color: var(--w--primary-color);\r\n z-index: 1;\r\n }\r\n\r\n .w-pagebar.z-face-normal .w-pagebar-num.z-on.z-hv {\r\n color: #fff;\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num {\r\n min-width: 23px;\r\n padding: 0 3px;\r\n height: 23px;\r\n flex-shrink: 0;\r\n margin-right: 3px;\r\n }\r\n \r\n .w-pagebar.z-face-mini .f-i {\r\n color: #999;\r\n font-size: 14px;\r\n }\r\n\r\n .w-pagebar.z-face-mini .f-i.z-ds,\r\n .w-pagebar.z-face-mini .f-i.z-ds:hover {\r\n color: #ccc;\r\n background: #f9f9f9;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-pagebar.z-face-mini .w-pagebar-num:hover {\r\n border-color: var(--w--primary-color);\r\n color: var(--w--primary-color);\r\n }\r\n \r\n .w-pagebar.z-face-mini .w-pagebar-num.z-on {\r\n background: var(--w--primary-color);\r\n border-color: var(--w--primary-color);\r\n color: #fff;\r\n cursor: default;\r\n }\r\n \r\n \r\n .w-pagebar.z-face-button .w-button {\r\n margin-right: -1px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button:last-child {\r\n margin-right: 0;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-button-main {\r\n padding: 0 6px;\r\n }\r\n \r\n .w-pagebar.z-face-button .w-pagebar-button-count {\r\n padding: 0 8px;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button.z-ds {\r\n background: transparent;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button,\r\n .w-pagebar.z-face-simple .w-button-main {\r\n border: 0;\r\n padding: 3px;\r\n }\r\n\r\n .w-pagebar.z-face-simple .w-button .w-button-icon {\r\n color: #555;\r\n }\r\n \r\n .w-pagebar.z-face-simple .w-button.z-ds .w-button-icon {\r\n color: #bbb;\r\n }\r\n \r\n \r\n .w-pagebar-num.z-ds {\r\n color: #999;\r\n cursor: default;\r\n background-color: #fff;\r\n }\r\n\r\n .w-pagebar-jump-to {\r\n padding: 0 5px 0 10px;\r\n }\r\n\r\n .w-pagebar-jump-input {\r\n width: 30px;\r\n height: 32px;\r\n border: 1px solid #ddd;\r\n background-color: #fff;\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-pagebar-jump-button {\r\n width: 30px;\r\n height: 30px;\r\n padding: 0;\r\n border: 1px solid #ddd;\r\n background-color: #fafafa;\r\n margin-left: -1px;\r\n color: #888;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-pagebar-jump-page {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-input {\r\n border-color: var(--w--primary-color);\r\n }\r\n\r\n .w-pagebar.z-jump-on .w-pagebar-jump-button {\r\n border-color: var(--w--primary-color);;\r\n background-color: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-split',\r\n mixins: [WidgetBase],\r\n props: ['collapsedIcon', 'expandedIcon', 'movable', 'range', 'toNext', 'expanded'],\r\n inject: ['provideLayout'],\r\n created() {\r\n this.$watch('expanded', (v) => {\r\n if (typeof v === 'boolean') this.x.expanded = v\r\n else if (this.x.expanded == null) this.x.expanded = true\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n toggle(exp) {\r\n this.x.expanded = exp == null ? !this.x.expanded : exp\r\n let minorElem = this.x.toNext ? this.el().nextElementSibling : this.el().previousElementSibling\r\n if (minorElem) {\r\n $.q(minorElem).toggleClass('f-split-collapsed', !this.x.expanded)\r\n //$.q(minorElem).css(this.expanded ? {visibility: '', position: '', zIndex: ''} : {visibility: 'hidden', position: 'absolute', zIndex: -1})\r\n }\r\n },\r\n dragstart(e) {\r\n let prevElem = this.el().previousElementSibling\r\n let nextElem = this.el().nextElementSibling\r\n if (prevElem && nextElem) {\r\n let vert = this.inVertical\r\n let minorElem = this.x.toNext ? nextElem : prevElem\r\n let downX = $.eventX(e)\r\n let downY = $.eventY(e)\r\n let posName = vert ? 'top' : 'left'\r\n let sizeName = vert ? 'height' : 'width'\r\n let clientName = vert ? 'clientY' : 'clientX'\r\n let downPos = vert ? downY : downX\r\n let minPos = $.bcr(prevElem)[posName]\r\n let maxPos = $.bcr(nextElem)[vert ? 'bottom' : 'right'] - 5\r\n let movRect = $.lodash.pick($.bcr(this.$refs.movable), ['width', 'height', 'top', 'left'])\r\n let pos\r\n let help\r\n $.moveup((e) => {\r\n if (!help) {\r\n help = $.q(`<div style=\"position:absolute;background:rgba(0,0,0,.3);z-index:101;\"></div>`).css(\r\n movRect).appendTo(document.body)\r\n }\r\n pos = $.numRange(movRect[posName] + e[clientName] - downPos, minPos, maxPos)\r\n help.css({\r\n [posName]: pos\r\n })\r\n }, (e, moved) => {\r\n if (moved && help) {\r\n help.remove()\r\n let size = (this.x.expanded ? $.bcr(minorElem)[sizeName] : 0) + (this.x.toNext ? 1 : -1) * (downPos -\r\n pos)\r\n if (size <= 0) {\r\n this.toggle(false)\r\n } else {\r\n if (!this.x.expanded) this.toggle(true)\r\n $.q(minorElem).css({\r\n [sizeName]: size\r\n })\r\n }\r\n }\r\n }, e)\r\n }\r\n },\r\n html_slots() {\r\n let r = []\r\n let expandedIcon = this.x.expandedIcon || this.x.collapsedIcon\r\n let collapsedIcon = this.x.collapsedIcon || expandedIcon\r\n if (expandedIcon) {\r\n r.push(this.html_icon(this.x.expanded ? expandedIcon : collapsedIcon, 'w-split-icon', () => this.toggle()))\r\n }\r\n if (this.x.movable) {\r\n r.push(h('div', {\r\n ref: 'movable',\r\n class: 'w-split-movable',\r\n onmousedown: this.dragstart\r\n }))\r\n }\r\n return r\r\n }\r\n },\r\n computed: {\r\n inVertical() {\r\n return this.provideLayout === 'w-vertical'\r\n },\r\n html_props() {\r\n return {\r\n class: ['f-rel z-' + (this.inVertical ? 'vertical' : 'horizontal'), {\r\n 'z-tonext': this.x.toNext\r\n }]\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .f-split-collapsed {\r\n position: absolute !important;\r\n visibility: hidden !important;\r\n z-index: -1;\r\n opacity: 0;\r\n }\r\n\r\n .w-split-icon {\r\n position: absolute;\r\n cursor: pointer;\r\n line-height: 1;\r\n z-index: 1;\r\n }\r\n\r\n .w-split.z-vertical .w-split-icon {\r\n left: 50%;\r\n top: 0;\r\n transform: translateX(-50%);\r\n }\r\n\r\n .w-split.z-vertical.z-tonext .w-split-icon {\r\n top: auto;\r\n bottom: 0;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-icon {\r\n top: 50%;\r\n left: 0;\r\n transform: translateY(-50%);\r\n }\r\n\r\n .w-split.z-horizontal.z-tonext .w-split-icon {\r\n left: auto;\r\n right: 0;\r\n }\r\n\r\n .w-split-movable {\r\n position: absolute;\r\n }\r\n\r\n .w-split.z-vertical .w-split-movable {\r\n height: 100%;\r\n min-height: 5px;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n cursor: row-resize;\r\n }\r\n\r\n .w-split.z-horizontal .w-split-movable {\r\n width: 100%;\r\n min-width: 5px;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n cursor: col-resize;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import AlignParent from './AlignParent.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-toggle',\r\n mixins: [WidgetBase, AlignParent],\r\n props: ['collapsedIcon', 'expandedIcon', 'expanded', 'align', 'valign'],\r\n methods: {\r\n x_default() {\r\n return {\r\n expanded: true,\r\n valign: 'middle',\r\n }\r\n },\r\n toggle(e = true) {\r\n let exp = typeof e === 'boolean' ? e : !this.x.expanded\r\n this.x.expanded = exp\r\n $.q(this.el()).nextUntil('.w-toggle').toggle(exp)\r\n },\r\n html_slots() {\r\n let exp = this.x.expanded\r\n let ico = exp ? this.x.expandedIcon : this.x.collapsedIcon\r\n return [ico && h(Img, {\r\n src: ico,\r\n class: 'w-toggle-icon',\r\n }), h('div', {class: 'w-toggle-main'}, this.$slots.default())]\r\n }\r\n },\r\n computed: {\r\n html_props() {\r\n let exp = this.x.expanded\r\n return {\r\n class: ['w-horizontal f-pointer',\r\n {\r\n 'z-expanded': exp,\r\n 'z-collapse': !exp,\r\n },\r\n this.html_align_class],\r\n onclick: this.toggle\r\n }\r\n }\r\n },\r\n mounted() {\r\n if (!this.x.expanded) {\r\n this.toggle(false)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-toggle-icon {\r\n margin-right: 5px;\r\n flex-shrink: 0;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-video',\r\n mixins: [WidgetBase],\r\n props: ['src', 'poster'],\r\n data() {\r\n return {\r\n playing: false,\r\n }\r\n },\r\n methods: {\r\n getMimeType() {\r\n let filePath = $.strTo(this.x.src, '?') || this.x.src\r\n let fileName = $.strFrom(filePath, '/', true) || filePath\r\n let suffix = $.strFrom(fileName, '.', true)\r\n return suffix ? mimeType(fileName) : 'video/mp4'\r\n },\r\n html_slots() {\r\n return [h('video', {\r\n class: 'w-video-vd f-width f-height',\r\n ref: 'vd',\r\n src: this.x.src,\r\n poster: this.x.poster,\r\n onplay: e => this.playing = true,\r\n onpause: e => this.playing = false,\r\n controls: true,\r\n 'webkit-playsinline': true,\r\n 'playsinline': true,\r\n 'x-webkit-airplay': true,\r\n 'x5-playsinline': true,\r\n 'x5-video-player-type': 'h5',\r\n 'x5-video-orientation': 'h5',\r\n 'x5-video-player-fullscreen': true,\r\n }), h('div', {\r\n class: 'w-video-play f-abs-center f-flex-center',\r\n innerHTML: '<i class=\"f-i f-i-play\"></i>',\r\n onclick: e => {\r\n let o = this.$refs.vd\r\n o.paused ? o.play() : o.pause()\r\n }\r\n })]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return ['f-rel f-flex-center', {'z-play': this.playing}]\r\n }\r\n }\r\n\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-video {\r\n box-sizing: border-box;\r\n background: #000;\r\n }\r\n\r\n .w-video.z-play .w-video-play {\r\n display: none\r\n }\r\n\r\n .w-video-play {\r\n display: flex;\r\n width: 62px;\r\n height: 62px;\r\n background: rgba(0, 0, 0, .5);\r\n border-radius: 50%;\r\n z-index: 1;\r\n }\r\n\r\n .w-video-play .f-i {\r\n color: #fff;\r\n font-size: 36px;\r\n transform: translate(4px, 0px);\r\n cursor: default\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-progress',\r\n mixins: [WidgetBase],\r\n props: ['percent', 'range', 'text'],\r\n methods: {\r\n html_slots() {\r\n let w = $.number(this.x.percent)\r\n\t\t\t\tlet text = this.x.text\r\n\t\t\t\tif (text == null) {\r\n\t\t\t\t\ttext = w + '%'\r\n\t\t\t\t}\r\n return [\r\n h('span', {\r\n class: 'w-progress-text'\r\n }, text),\r\n h('div', {\r\n class: 'w-progress-gut',\r\n style: {\r\n width: `${w}%`\r\n }\r\n }, h('div', {\r\n class: 'w-progress-bar f-flex f-flex-center',\r\n style: {\r\n width: `${w==0?w:(100*100/w)}%`\r\n }\r\n }, h('span', {\r\n class: 'w-progress-text'\r\n }, text)))\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n if (this.x.range) {\r\n let a = this.x.range.split(',')\r\n for (let i = a.length - 1; i >= 0; i--) {\r\n if ($.number(this.x.percent) >= $.number(a[i])) return 'z-' + a[i]\r\n }\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-progress {\r\n display: flex;\r\n position: relative;\r\n height: 18px;\r\n border-radius: 20px;\r\n background: #e6e6e6;\r\n align-items: center;\r\n justify-content: center;\r\n overflow: hidden;\r\n font-size: 14px;\r\n line-height: 1;\r\n }\r\n\r\n .w-progress-gut {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n background: var(--w--primary-color);\r\n border-radius: 20px;\r\n overflow: hidden;\r\n transition: width, background .1s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-progress-bar {\r\n color: #fff;\r\n height: 100%;\r\n }\r\n</style>\r\n","<template>\r\n <w-vertical v-bind=\"html_binds\" :class=\"['f-rel', 'w-calendar-' + this.x.face]\">\r\n <w-vertical class=\"w-calendar-main\" v-if=\"!onlyTime\">\r\n <w-horizontal :class=\"['w-calendar-head', {'f-h-gap': dfish.br.compat.gap}]\" valign=\"middle\" align=\"center\">\r\n <i class=\"w-calendar-head-prev-year f-i f-i-angle-double-left f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(-12)\"></i>\r\n <i class=\"w-calendar-head-prev f-i f-i-angle-single-left f-pointer\" @click=\"clickStep(-1)\"></i>\r\n <w-horizontal :class=\"['w-calendar-head-pop', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <div class=\"w-calendar-head-year f-link\" ref=\"popYear\" @click=\"clickPopYear()\" v-html=\"headYear\"></div>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopYear\" :context=\"$refs.popYear\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popYear\" @close=\"headPopYear=null\">\r\n <div class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(-1)\"><i class=\"f-i f-i-minus\"></i></div>\r\n <w-html height=\"*\" @wheel.passive=\"mousewheelPopYear\">\r\n <div v-for=\"item in headPopYear\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getFullYear()}]\"\r\n @click=\"clickPopYearItem(item)\">{{item}}</div>\r\n </w-html>\r\n <w-html class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(1)\"><i class=\"f-i f-i-plus\"></i>\r\n </w-html>\r\n </w-dialog>\r\n <w-html v-if=\"x.face == 'date'\" class=\"w-calendar-head-month f-link\" ref=\"popMonth\" @click=\"clickPopMonth\">\r\n {{headMonth}}\r\n </w-html>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopMonth\" :context=\"$refs.popMonth\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popMonth\" @close=\"headPopMonth=null\">\r\n <w-html height=\"*\">\r\n <div v-for=\"item in headPopMonth\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getMonth() + 1}]\"\r\n @click=\"clickPopMonthItem(item)\">{{item}}</div>\r\n </w-html>\r\n </w-dialog>\r\n </w-horizontal>\r\n <i class=\"w-calendar-head-next f-i f-i-angle-single-right f-pointer\" @click=\"clickStep(1)\"></i>\r\n <i class=\"w-calendar-head-next-year f-i f-i-angle-double-right f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(12)\"></i>\r\n <div class=\"w-calendar-head-blank\"></div>\r\n </w-horizontal>\r\n <slot name=\"head\"></slot>\r\n <div class=\"w-calendar-body\">\r\n <template v-if=\"x.face == 'date'\">\r\n <div v-for=\"item in loc.calendar.day_title_1\" class=\"w-calendar-daytitle\">{{item}}</div>\r\n </template>\r\n <div v-for=\"item,index in bodyList\" :title=\"item.title\"\r\n :class=\"['w-calendar-item', {'z-on': item.focus && !item.disabled, 'z-pad': item.pad, 'z-ds': item.disabled}]\"\r\n @click=\"clickItem($event,item)\">\r\n <slot :item=\"item\" :index=\"index\">\r\n <div class=\"w-calendar-item-text\">{{item.text}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </w-vertical>\r\n <w-horizontal v-if=\"hasTime\" class=\"w-calendar-time\">\r\n <w-vertical v-if=\"focusHour!==false\" class=\"w-calendar-time-col w-calendar-time-hour\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.hour}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"hour\" :current=\"focusHour\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"h in bodyListHour\" :key=\"h\" :text=\"dfish.strPad(h)\"\r\n :disabled=\"isHourDisabled(h)\" @click=\"clickHour($event,h)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusMinute!==false\" class=\"w-calendar-time-col w-calendar-time-minute\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.minute}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"minute\" :current=\"focusMinute\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"m in bodyListMinute\" :key=\"m\" :text=\"dfish.strPad(m)\"\r\n :disabled=\"isMinuteDisabled(m)\" @click=\"clickMinute($event,m)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusSecond!==false\" class=\"w-calendar-time-col w-calendar-time-second\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.second}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"second\" :current=\"focusSecond\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"s in bodyListSecond\" :key=\"s\" :text=\"dfish.strPad(s)\"\r\n :disabled=\"isSecondDisabled(s)\" @click=\"clickSecond($event,s)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-horizontal>\r\n <w-horizontal v-if=\"success\" :class=\"['w-calendar-foot', {'f-h-gap': dfish.br.compat.gap}]\" align=\"between\"\r\n valign=\"middle\">\r\n <div class=\"w-calendar-button-now f-link\" @click=\"clickNow\">{{loc.calendar.now}}</div>\r\n <div class=\"w-calendar-button-confirm f-link\" @click=\"clickConfirm\">{{loc.confirm}}</div>\r\n </w-horizontal>\r\n </w-vertical>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-calendar',\r\n mixins: [WidgetBase],\r\n emits: ['click:item', 'change'],\r\n props: ['value', 'minValue', 'maxValue', 'current', 'pad', 'face', 'format', 'success', 'cg', 'start',\r\n 'enableHour', 'enableMinute', 'enableSecond', 'defaultHour', 'defaultMinute', 'defaultSecond'\r\n ],\r\n data() {\r\n let dt = this.value2date()\r\n return {\r\n dt,\r\n currentDate: null,\r\n headPopYear: null,\r\n headPopMonth: null,\r\n }\r\n },\r\n watch: {\r\n value(v) {\r\n this.dt = this.value2date()\r\n },\r\n dt(nv, ov) {\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.trigger('change', nv)\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.trigger('change', nv)\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.trigger('change', nv)\r\n }\r\n },\r\n current(nc) {\r\n if (!nc) return\r\n let nv = typeof nc === 'string' ? $.dateParse(nc, this.formatter) : nc\r\n let ov = this.dt\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.dt = nv\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.dt = nv\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.dt = nv\r\n }\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n let b = this.format || ''\r\n return {\r\n face: b === 'yyyy' ? 'year' : b.includes('MM') && !b.includes('dd') ? 'month' :\r\n b.includes('ww') ? 'week' : b.includes('qq') ? 'quarter' : 'date'\r\n }\r\n },\r\n value2date() {\r\n let dt = this.value\r\n let bd = this.minValue\r\n let ed = this.maxValue\r\n let f = this.format || ''\r\n if (bd && (!dt || dt < bd)) {\r\n dt = bd\r\n }\r\n if (ed && (!dt || dt > ed)) {\r\n dt = ed\r\n }\r\n dt = dt ? $.dateParse(dt, f) : new Date()\r\n if (!this.value) this.setDefaultTime(dt)\r\n return dt\r\n },\r\n weekday(d) {\r\n let w = d.getDay()\r\n return w == 0 ? 6 : w - 1\r\n },\r\n setDefaultTime(d) {\r\n let dh = this.defaultHour == null ? d.getHours() : parseFloat(this.defaultHour)\r\n if (this.enableHour) {\r\n let eh = $.arrayNumber(this.enableHour)\r\n if (!eh.includes(dh)) dh = eh[0]\r\n }\r\n d.setHours(dh)\r\n let dm = this.defaultMinute == null ? d.getMinutes() : parseFloat(this.defaultMinute)\r\n if (this.enableMinute) {\r\n let em = $.arrayNumber(this.enableMinute)\r\n if (!em.includes(dm)) dm = em[0]\r\n }\r\n d.setMinutes(dm)\r\n let ds = this.defaultSecond == null ? d.getSeconds() : parseFloat(this.defaultSecond)\r\n if (this.enableSecond) {\r\n let es = $.arrayNumber(this.enableSecond)\r\n if (!es.includes(ds)) ds = es[0]\r\n }\r\n d.setSeconds(ds)\r\n return d\r\n },\r\n fixDate(d) {\r\n if (this.beginDate && d < this.beginDate) d = this.beginDate\r\n if (this.endDate && d > this.endDate) d = this.endDate\r\n return this.setDefaultTime(new Date(d.getTime()))\r\n },\r\n clickStep(a) {\r\n console.log(a)\r\n let d = new Date(this.dt.getTime())\r\n if (this.x.face == 'year') {\r\n d = $.dateAdd(d, 'y', 10 * a)\r\n } else if (this.x.face == 'quarter') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'month') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'date') {\r\n d = $.dateAdd(d, 'M', a)\r\n } else if (this.x.face == 'week') {\r\n d = $.dateAdd(d, 'y', a)\r\n }\r\n this.dt = d\r\n },\r\n clickPopYear(y) {\r\n y = y || (this.dt.getFullYear() - 4)\r\n if (y < 1000) y = 1000\r\n this.headPopYear = Array.from(Array(10)).map((v, i) => y + i)\r\n },\r\n clickPopYearItem(year) {\r\n let d = new Date(this.dt.getTime())\r\n d.setFullYear(year)\r\n this.dt = d\r\n this.headPopYear = null\r\n },\r\n clickPopYearStep(a) {\r\n let r = this.headPopYear\r\n let y = a < 0 ? r[0] - 10 : r[r.length - 1] + 1\r\n this.clickPopYear(y)\r\n },\r\n mousewheelPopYear(e) {\r\n this.clickPopYearStep(e.deltaY > 0 ? -1 : 1)\r\n },\r\n clickPopMonth() {\r\n this.headPopMonth = Array.from(Array(12)).map((v, i) => i + 1)\r\n },\r\n clickPopMonthItem(month) {\r\n let m = this.dt.getMonth()\r\n this.dt = $.dateAdd(this.dt, 'M', month - 1 - this.dt.getMonth())\r\n this.headPopMonth = null\r\n },\r\n clickItem(e, item) {\r\n if (item.disabled) return\r\n if (this.x.current !== undefined) {\r\n this.dt = this.fixDate(item.date)\r\n }\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n if (!this.hasTime)\r\n this.callback(item.value)\r\n },\r\n clickNow() {\r\n this.callback(this.fixDate(new Date()))\r\n },\r\n clickConfirm(s) {\r\n let d = this.dt\r\n let f = this.focusDate\r\n this.callback(this.fixDate(new Date(f.getFullYear(), f.getMonth(), f.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())))\r\n },\r\n callback(v) {\r\n if (typeof v === 'object') {\r\n v = this.fm(v)\r\n }\r\n this.x.success && this.x.success(v)\r\n },\r\n clickHour(e, v) {\r\n this.dt.setHours(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.hour.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickMinute(e, v) {\r\n this.dt.setMinutes(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.minute.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickSecond(e, v) {\r\n this.dt.setSeconds(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.second.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n fm(a) {\r\n return $.dateFormat(typeof a === 'string' ? $.dateParse(a, this.formatter) : a, this.formatter)\r\n },\r\n isHourDisabled(v) {\r\n let n = this.minHour\r\n let m = this.maxHour\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isMinuteDisabled(v) {\r\n let n = this.minMinute\r\n let m = this.maxMinute\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isSecondDisabled(v) {\r\n let n = this.minSecond\r\n let m = this.maxSecond\r\n return (n && n > v) || (m && m < v)\r\n },\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n formatter() {\r\n return this.x.format || 'yyyy-MM-dd'\r\n },\r\n hasTime() {\r\n return /[Hms]/.test(this.formatter)\r\n },\r\n onlyTime() {\r\n return this.hasTime && !/[yMd]/.test(this.formatter)\r\n },\r\n focusValue() {\r\n let d = this.focusDate\r\n return d && this.fm(d)\r\n },\r\n focusDate() {\r\n let c = this.x.current\r\n if (c) {\r\n return $.dateParse(c, this.x.format)\r\n } else if (!this.x.value && this.x.success) {\r\n return this.x.format && this.dt\r\n }\r\n },\r\n beginDate() {\r\n return this.x.minValue && $.dateParse(this.x.minValue, this.formatter)\r\n },\r\n endDate() {\r\n return this.x.maxValue && $.dateParse(this.x.maxValue, this.formatter)\r\n },\r\n focusHour() {\r\n return this.x.format.includes('H') && this.dt.getHours()\r\n },\r\n focusMinute() {\r\n return this.x.format.includes('m') && this.dt.getMinutes()\r\n },\r\n focusSecond() {\r\n return this.x.format.includes('s') && this.dt.getSeconds()\r\n },\r\n minHour() {\r\n if (this.beginDate) {\r\n let d = this.beginDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n maxHour() {\r\n if (this.endDate) {\r\n let d = this.endDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n minMinute() {\r\n if (this.minHour === this.dt.getHours()) {\r\n return this.beginDate.getMinutes()\r\n }\r\n },\r\n maxMinute() {\r\n if (this.maxHour === this.dt.getHours()) {\r\n return this.endDate.getMinutes()\r\n }\r\n },\r\n minSecond() {\r\n if (this.minMinute === this.dt.getMinutes()) {\r\n return this.beginDate.getSeconds()\r\n }\r\n },\r\n maxSecond() {\r\n if (this.maxMinute === this.dt.getMinutes()) {\r\n return this.endDate.getSeconds()\r\n }\r\n },\r\n headYear() {\r\n let y = this.dt.getFullYear()\r\n if (this.x.face === 'year') {\r\n y = this.dt.getFullYear() - (this.dt.getFullYear() % 10)\r\n y += ' - ' + (y + 9)\r\n }\r\n return $.loc.ps($.loc.calendar.y, y)\r\n },\r\n headMonth() {\r\n return $.loc.calendar.monthname[this.dt.getMonth()]\r\n },\r\n bodyList() {\r\n return this.x.face === 'year' ? this.bodyListYear : this.x.face === 'quarter' ? this.bodyListQuarter :\r\n this.x.face === 'month' ? this.bodyListMonth : this.x.face === 'week' ? this.bodyListWeek : this.bodyListDate\r\n },\r\n bodyListYear() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear() - (this.dt.getFullYear() % 10) - 1\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setFullYear(y)\r\n for (let i = 0; i < 12; i++) {\r\n let v = y + i\r\n let g = {\r\n value: v,\r\n text: v,\r\n date: new Date(b.getTime()),\r\n pad: i == 0 || i == 11,\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n r.push(g)\r\n b.setFullYear(b.getFullYear() + 1)\r\n }\r\n return r\r\n },\r\n bodyListQuarter() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 1; i <= 4; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: `Q${i}`,\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 3)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListMonth() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 0; i < 12; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: $.loc.calendar.monthname[i],\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 1)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListWeek() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let w = $.dateWeek(this.dt)\r\n let y = w[0]\r\n let b = $.dateWeekLast(y)\r\n let c = $.dateWeekFirst(y)\r\n let d = c[2]\r\n for (let i = 1, l = b[1]; i <= l; i++) {\r\n let v = this.fm(d)\r\n let g = {\r\n text: i,\r\n value: y + '-' + $.strPad(i),\r\n date: new Date(d.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v,\r\n title: $.loc.ps($.loc.calendar.from_to, $.dateFormat(d, 'yyyy-MM-dd'), $.dateFormat($.dateAdd(d, 'd', 6),\r\n 'yyyy-MM-dd'))\r\n }\r\n d.setDate(d.getDate() + 7)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListDate() {\r\n let b = new Date(this.dt.getTime())\r\n let c = b.getMonth()\r\n let d = new Date(b.getTime())\r\n let f = this.focusValue\r\n let fd = f && $.dateFormat($.dateParse(f, this.x.format), 'yyyy-MM-dd')\r\n let fn = this.beginDate && $.dateFormat(this.beginDate, 'yyyy-MM-dd')\r\n let fm = this.endDate && $.dateFormat(this.endDate, 'yyyy-MM-dd')\r\n let cell = []\r\n b.setDate(1)\r\n d.setDate(new Date(b.getFullYear(), c + 1, 0).getDate())\r\n let g = 7 - (this.weekday(b) + d.getDate()) % 7\r\n if (g && g < 7)\r\n d.setDate(d.getDate() + g)\r\n if (this.weekday(b) > 0)\r\n b.setDate(1 - this.weekday(b))\r\n if (this.x.pad) {\r\n g = 1 + (d.getTime() - b.getTime()) / 86400000\r\n g < 42 && d.setDate(d.getDate() + 42 - g)\r\n }\r\n while (b <= d) {\r\n let v = this.fm(b)\r\n let fv = $.dateFormat(b, 'yyyy-MM-dd')\r\n let t = {\r\n text: b.getDate(),\r\n value: v,\r\n date: new Date(b.getTime()),\r\n pad: b.getMonth() !== c,\r\n disabled: (fn && fn > fv) || (fm && fm < fv) ? true : false,\r\n focus: fd === fv,\r\n }\r\n cell.push(t)\r\n b.setDate(b.getDate() + 1)\r\n }\r\n return cell\r\n },\r\n bodyListHour() {\r\n return this.enableHour ? $.arrayNumber(this.enableHour) : Array.from(Array(24).keys())\r\n },\r\n bodyListMinute() {\r\n return this.enableMinute ? $.arrayNumber(this.enableMinute) : Array.from(Array(60).keys())\r\n },\r\n bodyListSecond() {\r\n return this.enableSecond ? $.arrayNumber(this.enableSecond) : Array.from(Array(60).keys())\r\n },\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-calendar-dialog {\r\n line-height: 1.5;\r\n --w-datepicker-dialog-width: 260px;\r\n --w-datepicker-dialog-time-width: 66px;\r\n width: calc(var(--w-datepicker-dialog-width) + calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0)));\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime {\r\n --w-datepicker-dialog-width: 2px;\r\n --w-datepicker-dialog-time-height: 254px;\r\n }\r\n\r\n .w-calendar-dialog.z-hastime .w-calendar-head,\r\n .w-calendar-dialog.z-hastime .w-calendar-body {\r\n box-sizing: border-box;\r\n width: calc(var(--w-datepicker-dialog-width) - 2px);\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-head {\r\n box-sizing: border-box;\r\n width: var(--w-datepicker-dialog-width);\r\n }\r\n\r\n .w-calendar-dialog .w-calendar-body {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-calendar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-calendar-head,\r\n .w-calendar-foot {\r\n height: 36px;\r\n padding: 0 5px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-pop {\r\n padding: 0 10px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-blank {\r\n display: none;\r\n flex: 1;\r\n }\r\n\r\n .w-calendar-head-month {\r\n margin-left: 3px;\r\n }\r\n\r\n .w-calendar-body {\r\n display: grid;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-body {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-item {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-calendar-date .w-calendar-body,\r\n .w-calendar-week .w-calendar-body {\r\n grid-template-columns: repeat(7, 1fr);\r\n }\r\n\r\n .w-calendar-body {\r\n grid-template-columns: repeat(4, 1fr);\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n\r\n .w-calendar-dialog .w-calendar-month .w-calendar-body,\r\n .w-calendar-dialog .w-calendar-year .w-calendar-body {\r\n min-height: 120px;\r\n }\r\n\r\n .w-calendar-item {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .w-calendar-item,\r\n .w-calendar-daytitle {\r\n text-align: center;\r\n padding: 5px;\r\n cursor: default;\r\n }\r\n\r\n .w-calendar-item:not(.z-ds):not(.z-on):hover,\r\n .w-calendar-head-year-item:hover {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-calendar-item.z-on {\r\n background: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n \r\n .w-calendar-item.z-ds {\r\n background: #f9f9f9;\r\n }\r\n\r\n .w-calendar-item.z-ds,\r\n .w-calendar-item.z-pad {\r\n color: #999;\r\n }\r\n\r\n .w-calendar-item-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-calendar-foot {\r\n position: relative;\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n position: static;\r\n height: var(--w-datepicker-dialog-time-height);\r\n }\r\n\r\n .w-calendar-time {\r\n position: absolute;\r\n top: 0;\r\n bottom: 35px;\r\n right: 0;\r\n width: calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0));\r\n border-left: 1px solid #ddd;\r\n }\r\n \r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n border-left: 0;\r\n }\r\n\r\n .w-calendar-time-th,\r\n .w-calendar-time-item {\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-time-th {\r\n line-height: 36px;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-time-item {\r\n height: 30px;\r\n border: 0;\r\n }\r\n\r\n .w-calendar-time-item.z-on,\r\n .w-calendar-head-year-item.z-on {\r\n background: var(--w--vice-color);\r\n }\r\n\r\n .w-calendar-head-year-item {\r\n height: 24px;\r\n line-height: 24px;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-head .f-i {\r\n font-size: 20px;\r\n color: #aaa;\r\n }\r\n\r\n .w-calendar-head .f-i:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-calendar-time-body .w-scroll-cont {\r\n padding: 94px 0;\r\n }\r\n \r\n .w-calendar-time-body .w-button.z-ds {\r\n background: #fff;\r\n color: #aaa;\r\n }\r\n \r\n .w-calendar-button-now,\r\n .w-calendar-button-confirm {\r\n padding: 2px 10px;\r\n cursor: pointer;\r\n }\r\n</style>\r\n","<template>\r\n <w-vertical v-bind=\"html_binds\" :class=\"['f-rel', 'w-calendar-' + this.x.face]\">\r\n <w-vertical class=\"w-calendar-main\" v-if=\"!onlyTime\">\r\n <w-horizontal :class=\"['w-calendar-head', {'f-h-gap': dfish.br.compat.gap}]\" valign=\"middle\" align=\"center\">\r\n <i class=\"w-calendar-head-prev-year f-i f-i-angle-double-left f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(-12)\"></i>\r\n <i class=\"w-calendar-head-prev f-i f-i-angle-single-left f-pointer\" @click=\"clickStep(-1)\"></i>\r\n <w-horizontal :class=\"['w-calendar-head-pop', {'f-h-gap': dfish.br.compat.gap}]\">\r\n <div class=\"w-calendar-head-year f-link\" ref=\"popYear\" @click=\"clickPopYear()\" v-html=\"headYear\"></div>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopYear\" :context=\"$refs.popYear\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popYear\" @close=\"headPopYear=null\">\r\n <div class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(-1)\"><i class=\"f-i f-i-minus\"></i></div>\r\n <w-html height=\"*\" @wheel.passive=\"mousewheelPopYear\">\r\n <div v-for=\"item in headPopYear\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getFullYear()}]\"\r\n @click=\"clickPopYearItem(item)\">{{item}}</div>\r\n </w-html>\r\n <w-html class=\"w-calendar-head-year-item\" @click=\"clickPopYearStep(1)\"><i class=\"f-i f-i-plus\"></i>\r\n </w-html>\r\n </w-dialog>\r\n <w-html v-if=\"x.face == 'date'\" class=\"w-calendar-head-month f-link\" ref=\"popMonth\" @click=\"clickPopMonth\">\r\n {{headMonth}}\r\n </w-html>\r\n <w-dialog class=\"f-dfish-dialog\" width=\"72\" v-if=\"headPopMonth\" :context=\"$refs.popMonth\" :auto-hide=\"true\"\r\n :ownproperty=\"true\" :snap=\"$refs.popMonth\" @close=\"headPopMonth=null\">\r\n <w-html height=\"*\">\r\n <div v-for=\"item in headPopMonth\"\r\n :class=\"['w-calendar-head-year-item', {'z-on': item == dt.getMonth() + 1}]\"\r\n @click=\"clickPopMonthItem(item)\">{{item}}</div>\r\n </w-html>\r\n </w-dialog>\r\n </w-horizontal>\r\n <i class=\"w-calendar-head-next f-i f-i-angle-single-right f-pointer\" @click=\"clickStep(1)\"></i>\r\n <i class=\"w-calendar-head-next-year f-i f-i-angle-double-right f-pointer\" v-if=\"x.face == 'date'\"\r\n @click=\"clickStep(12)\"></i>\r\n <div class=\"w-calendar-head-blank\"></div>\r\n </w-horizontal>\r\n <slot name=\"head\"></slot>\r\n <div class=\"w-calendar-body\">\r\n <template v-if=\"x.face == 'date'\">\r\n <div v-for=\"item in loc.calendar.day_title_1\" class=\"w-calendar-daytitle\">{{item}}</div>\r\n </template>\r\n <div v-for=\"item,index in bodyList\" :title=\"item.title\"\r\n :class=\"['w-calendar-item', {'z-on': item.focus && !item.disabled, 'z-pad': item.pad, 'z-ds': item.disabled}]\"\r\n @click=\"clickItem($event,item)\">\r\n <slot :item=\"item\" :index=\"index\">\r\n <div class=\"w-calendar-item-text\">{{item.text}}</div>\r\n </slot>\r\n </div>\r\n </div>\r\n </w-vertical>\r\n <w-horizontal v-if=\"hasTime\" class=\"w-calendar-time\">\r\n <w-vertical v-if=\"focusHour!==false\" class=\"w-calendar-time-col w-calendar-time-hour\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.hour}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"hour\" :current=\"focusHour\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"h in bodyListHour\" :key=\"h\" :text=\"dfish.strPad(h)\"\r\n :disabled=\"isHourDisabled(h)\" @click=\"clickHour($event,h)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusMinute!==false\" class=\"w-calendar-time-col w-calendar-time-minute\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.minute}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"minute\" :current=\"focusMinute\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"m in bodyListMinute\" :key=\"m\" :text=\"dfish.strPad(m)\"\r\n :disabled=\"isMinuteDisabled(m)\" @click=\"clickMinute($event,m)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n <w-vertical v-if=\"focusSecond!==false\" class=\"w-calendar-time-col w-calendar-time-second\" width=\"*\">\r\n <div class=\"w-calendar-time-th\">{{loc.second}}</div>\r\n <w-buttonbar class=\"w-calendar-time-body\" ref=\"second\" :current=\"focusSecond\" :vertical=\"true\" :scroll-y=\"true\"\r\n scroll-view=\".z-on\" height=\"*\">\r\n <w-button class=\"w-calendar-time-item\" v-for=\"s in bodyListSecond\" :key=\"s\" :text=\"dfish.strPad(s)\"\r\n :disabled=\"isSecondDisabled(s)\" @click=\"clickSecond($event,s)\" />\r\n </w-buttonbar>\r\n </w-vertical>\r\n </w-horizontal>\r\n <w-horizontal v-if=\"success\" :class=\"['w-calendar-foot', {'f-h-gap': dfish.br.compat.gap}]\" align=\"between\"\r\n valign=\"middle\">\r\n <div class=\"w-calendar-button-now f-link\" @click=\"clickNow\">{{loc.calendar.now}}</div>\r\n <div class=\"w-calendar-button-confirm f-link\" @click=\"clickConfirm\">{{loc.confirm}}</div>\r\n </w-horizontal>\r\n </w-vertical>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Horizontal from './Horizontal.vue'\r\n\r\n export default {\r\n name: 'w-calendar',\r\n mixins: [WidgetBase],\r\n emits: ['click:item', 'change'],\r\n props: ['value', 'minValue', 'maxValue', 'current', 'pad', 'face', 'format', 'success', 'cg', 'start',\r\n 'enableHour', 'enableMinute', 'enableSecond', 'defaultHour', 'defaultMinute', 'defaultSecond'\r\n ],\r\n data() {\r\n let dt = this.value2date()\r\n return {\r\n dt,\r\n currentDate: null,\r\n headPopYear: null,\r\n headPopMonth: null,\r\n }\r\n },\r\n watch: {\r\n value(v) {\r\n this.dt = this.value2date()\r\n },\r\n dt(nv, ov) {\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.trigger('change', nv)\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.trigger('change', nv)\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.trigger('change', nv)\r\n }\r\n },\r\n current(nc) {\r\n if (!nc) return\r\n let nv = typeof nc === 'string' ? $.dateParse(nc, this.formatter) : nc\r\n let ov = this.dt\r\n let ny = nv.getFullYear()\r\n let oy = ov.getFullYear()\r\n if (this.x.face === 'year') {\r\n let n = ('' + ny).slice(-2, -1)\r\n let o = ('' + oy).slice(-2, -1)\r\n if (n != o) this.dt = nv\r\n } else if (this.x.face === 'quarter' || this.x.face === 'month' || this.x.face === 'week') {\r\n if (ny != oy) this.dt = nv\r\n } else if (this.x.face === 'date') {\r\n if ((ny != oy) || (nv.getMonth() != ov.getMonth())) this.dt = nv\r\n }\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n let b = this.format || ''\r\n return {\r\n face: b === 'yyyy' ? 'year' : b.includes('MM') && !b.includes('dd') ? 'month' :\r\n b.includes('ww') ? 'week' : b.includes('qq') ? 'quarter' : 'date'\r\n }\r\n },\r\n value2date() {\r\n let dt = this.value\r\n let bd = this.minValue\r\n let ed = this.maxValue\r\n let f = this.format || ''\r\n if (bd && (!dt || dt < bd)) {\r\n dt = bd\r\n }\r\n if (ed && (!dt || dt > ed)) {\r\n dt = ed\r\n }\r\n dt = dt ? $.dateParse(dt, f) : new Date()\r\n if (!this.value) this.setDefaultTime(dt)\r\n return dt\r\n },\r\n weekday(d) {\r\n let w = d.getDay()\r\n return w == 0 ? 6 : w - 1\r\n },\r\n setDefaultTime(d) {\r\n let dh = this.defaultHour == null ? d.getHours() : parseFloat(this.defaultHour)\r\n if (this.enableHour) {\r\n let eh = $.arrayNumber(this.enableHour)\r\n if (!eh.includes(dh)) dh = eh[0]\r\n }\r\n d.setHours(dh)\r\n let dm = this.defaultMinute == null ? d.getMinutes() : parseFloat(this.defaultMinute)\r\n if (this.enableMinute) {\r\n let em = $.arrayNumber(this.enableMinute)\r\n if (!em.includes(dm)) dm = em[0]\r\n }\r\n d.setMinutes(dm)\r\n let ds = this.defaultSecond == null ? d.getSeconds() : parseFloat(this.defaultSecond)\r\n if (this.enableSecond) {\r\n let es = $.arrayNumber(this.enableSecond)\r\n if (!es.includes(ds)) ds = es[0]\r\n }\r\n d.setSeconds(ds)\r\n return d\r\n },\r\n fixDate(d) {\r\n if (this.beginDate && d < this.beginDate) d = this.beginDate\r\n if (this.endDate && d > this.endDate) d = this.endDate\r\n return this.setDefaultTime(new Date(d.getTime()))\r\n },\r\n clickStep(a) {\r\n console.log(a)\r\n let d = new Date(this.dt.getTime())\r\n if (this.x.face == 'year') {\r\n d = $.dateAdd(d, 'y', 10 * a)\r\n } else if (this.x.face == 'quarter') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'month') {\r\n d = $.dateAdd(d, 'y', a)\r\n } else if (this.x.face == 'date') {\r\n d = $.dateAdd(d, 'M', a)\r\n } else if (this.x.face == 'week') {\r\n d = $.dateAdd(d, 'y', a)\r\n }\r\n this.dt = d\r\n },\r\n clickPopYear(y) {\r\n y = y || (this.dt.getFullYear() - 4)\r\n if (y < 1000) y = 1000\r\n this.headPopYear = Array.from(Array(10)).map((v, i) => y + i)\r\n },\r\n clickPopYearItem(year) {\r\n let d = new Date(this.dt.getTime())\r\n d.setFullYear(year)\r\n this.dt = d\r\n this.headPopYear = null\r\n },\r\n clickPopYearStep(a) {\r\n let r = this.headPopYear\r\n let y = a < 0 ? r[0] - 10 : r[r.length - 1] + 1\r\n this.clickPopYear(y)\r\n },\r\n mousewheelPopYear(e) {\r\n this.clickPopYearStep(e.deltaY > 0 ? -1 : 1)\r\n },\r\n clickPopMonth() {\r\n this.headPopMonth = Array.from(Array(12)).map((v, i) => i + 1)\r\n },\r\n clickPopMonthItem(month) {\r\n let m = this.dt.getMonth()\r\n this.dt = $.dateAdd(this.dt, 'M', month - 1 - this.dt.getMonth())\r\n this.headPopMonth = null\r\n },\r\n clickItem(e, item) {\r\n if (item.disabled) return\r\n if (this.x.current !== undefined) {\r\n this.dt = this.fixDate(item.date)\r\n }\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n if (!this.hasTime)\r\n this.callback(item.value)\r\n },\r\n clickNow() {\r\n this.callback(this.fixDate(new Date()))\r\n },\r\n clickConfirm(s) {\r\n let d = this.dt\r\n let f = this.focusDate\r\n this.callback(this.fixDate(new Date(f.getFullYear(), f.getMonth(), f.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())))\r\n },\r\n callback(v) {\r\n if (typeof v === 'object') {\r\n v = this.fm(v)\r\n }\r\n this.x.success && this.x.success(v)\r\n },\r\n clickHour(e, v) {\r\n this.dt.setHours(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.hour.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickMinute(e, v) {\r\n this.dt.setMinutes(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.minute.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n clickSecond(e, v) {\r\n this.dt.setSeconds(v)\r\n this.dt = this.fixDate(this.dt)\r\n this.$refs.second.scrollToY(e.currentTarget, 'middle', 150)\r\n },\r\n fm(a) {\r\n return $.dateFormat(typeof a === 'string' ? $.dateParse(a, this.formatter) : a, this.formatter)\r\n },\r\n isHourDisabled(v) {\r\n let n = this.minHour\r\n let m = this.maxHour\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isMinuteDisabled(v) {\r\n let n = this.minMinute\r\n let m = this.maxMinute\r\n return (n && n > v) || (m && m < v)\r\n },\r\n isSecondDisabled(v) {\r\n let n = this.minSecond\r\n let m = this.maxSecond\r\n return (n && n > v) || (m && m < v)\r\n },\r\n },\r\n computed: {\r\n loc() {\r\n return $.loc\r\n },\r\n formatter() {\r\n return this.x.format || 'yyyy-MM-dd'\r\n },\r\n hasTime() {\r\n return /[Hms]/.test(this.formatter)\r\n },\r\n onlyTime() {\r\n return this.hasTime && !/[yMd]/.test(this.formatter)\r\n },\r\n focusValue() {\r\n let d = this.focusDate\r\n return d && this.fm(d)\r\n },\r\n focusDate() {\r\n let c = this.x.current\r\n if (c) {\r\n return $.dateParse(c, this.x.format)\r\n } else if (!this.x.value && this.x.success) {\r\n return this.x.format && this.dt\r\n }\r\n },\r\n beginDate() {\r\n return this.x.minValue && $.dateParse(this.x.minValue, this.formatter)\r\n },\r\n endDate() {\r\n return this.x.maxValue && $.dateParse(this.x.maxValue, this.formatter)\r\n },\r\n focusHour() {\r\n return this.x.format.includes('H') && this.dt.getHours()\r\n },\r\n focusMinute() {\r\n return this.x.format.includes('m') && this.dt.getMinutes()\r\n },\r\n focusSecond() {\r\n return this.x.format.includes('s') && this.dt.getSeconds()\r\n },\r\n minHour() {\r\n if (this.beginDate) {\r\n let d = this.beginDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n maxHour() {\r\n if (this.endDate) {\r\n let d = this.endDate\r\n let f = this.dt\r\n if (d.getFullYear() == f.getFullYear() && d.getMonth() == f.getMonth() && d.getDate() == f.getDate()) {\r\n return d.getHours()\r\n }\r\n }\r\n },\r\n minMinute() {\r\n if (this.minHour === this.dt.getHours()) {\r\n return this.beginDate.getMinutes()\r\n }\r\n },\r\n maxMinute() {\r\n if (this.maxHour === this.dt.getHours()) {\r\n return this.endDate.getMinutes()\r\n }\r\n },\r\n minSecond() {\r\n if (this.minMinute === this.dt.getMinutes()) {\r\n return this.beginDate.getSeconds()\r\n }\r\n },\r\n maxSecond() {\r\n if (this.maxMinute === this.dt.getMinutes()) {\r\n return this.endDate.getSeconds()\r\n }\r\n },\r\n headYear() {\r\n let y = this.dt.getFullYear()\r\n if (this.x.face === 'year') {\r\n y = this.dt.getFullYear() - (this.dt.getFullYear() % 10)\r\n y += ' - ' + (y + 9)\r\n }\r\n return $.loc.ps($.loc.calendar.y, y)\r\n },\r\n headMonth() {\r\n return $.loc.calendar.monthname[this.dt.getMonth()]\r\n },\r\n bodyList() {\r\n return this.x.face === 'year' ? this.bodyListYear : this.x.face === 'quarter' ? this.bodyListQuarter :\r\n this.x.face === 'month' ? this.bodyListMonth : this.x.face === 'week' ? this.bodyListWeek : this.bodyListDate\r\n },\r\n bodyListYear() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear() - (this.dt.getFullYear() % 10) - 1\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setFullYear(y)\r\n for (let i = 0; i < 12; i++) {\r\n let v = y + i\r\n let g = {\r\n value: v,\r\n text: v,\r\n date: new Date(b.getTime()),\r\n pad: i == 0 || i == 11,\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n r.push(g)\r\n b.setFullYear(b.getFullYear() + 1)\r\n }\r\n return r\r\n },\r\n bodyListQuarter() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 1; i <= 4; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: `Q${i}`,\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 3)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListMonth() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let y = this.dt.getFullYear()\r\n let b = new Date(this.dt.getTime())\r\n b.setDate(1)\r\n b.setMonth(0)\r\n for (let i = 0; i < 12; i++) {\r\n let v = this.fm(b)\r\n let g = {\r\n text: $.loc.calendar.monthname[i],\r\n value: v,\r\n date: new Date(b.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v\r\n }\r\n b.setMonth(b.getMonth() + 1)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListWeek() {\r\n let r = []\r\n let n = this.x.minValue\r\n let m = this.x.maxValue\r\n let f = this.focusValue\r\n let w = $.dateWeek(this.dt)\r\n let y = w[0]\r\n let b = $.dateWeekLast(y)\r\n let c = $.dateWeekFirst(y)\r\n let d = c[2]\r\n for (let i = 1, l = b[1]; i <= l; i++) {\r\n let v = this.fm(d)\r\n let g = {\r\n text: i,\r\n value: y + '-' + $.strPad(i),\r\n date: new Date(d.getTime()),\r\n disabled: (n && n > v) || (m && m < v) ? true : false,\r\n focus: f == v,\r\n title: $.loc.ps($.loc.calendar.from_to, $.dateFormat(d, 'yyyy-MM-dd'), $.dateFormat($.dateAdd(d, 'd', 6),\r\n 'yyyy-MM-dd'))\r\n }\r\n d.setDate(d.getDate() + 7)\r\n r.push(g)\r\n }\r\n return r\r\n },\r\n bodyListDate() {\r\n let b = new Date(this.dt.getTime())\r\n let c = b.getMonth()\r\n let d = new Date(b.getTime())\r\n let f = this.focusValue\r\n let fd = f && $.dateFormat($.dateParse(f, this.x.format), 'yyyy-MM-dd')\r\n let fn = this.beginDate && $.dateFormat(this.beginDate, 'yyyy-MM-dd')\r\n let fm = this.endDate && $.dateFormat(this.endDate, 'yyyy-MM-dd')\r\n let cell = []\r\n b.setDate(1)\r\n d.setDate(new Date(b.getFullYear(), c + 1, 0).getDate())\r\n let g = 7 - (this.weekday(b) + d.getDate()) % 7\r\n if (g && g < 7)\r\n d.setDate(d.getDate() + g)\r\n if (this.weekday(b) > 0)\r\n b.setDate(1 - this.weekday(b))\r\n if (this.x.pad) {\r\n g = 1 + (d.getTime() - b.getTime()) / 86400000\r\n g < 42 && d.setDate(d.getDate() + 42 - g)\r\n }\r\n while (b <= d) {\r\n let v = this.fm(b)\r\n let fv = $.dateFormat(b, 'yyyy-MM-dd')\r\n let t = {\r\n text: b.getDate(),\r\n value: v,\r\n date: new Date(b.getTime()),\r\n pad: b.getMonth() !== c,\r\n disabled: (fn && fn > fv) || (fm && fm < fv) ? true : false,\r\n focus: fd === fv,\r\n }\r\n cell.push(t)\r\n b.setDate(b.getDate() + 1)\r\n }\r\n return cell\r\n },\r\n bodyListHour() {\r\n return this.enableHour ? $.arrayNumber(this.enableHour) : Array.from(Array(24).keys())\r\n },\r\n bodyListMinute() {\r\n return this.enableMinute ? $.arrayNumber(this.enableMinute) : Array.from(Array(60).keys())\r\n },\r\n bodyListSecond() {\r\n return this.enableSecond ? $.arrayNumber(this.enableSecond) : Array.from(Array(60).keys())\r\n },\r\n\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-calendar-dialog {\r\n line-height: 1.5;\r\n --w-datepicker-dialog-width: 260px;\r\n --w-datepicker-dialog-time-width: 66px;\r\n width: calc(var(--w-datepicker-dialog-width) + calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0)));\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime {\r\n --w-datepicker-dialog-width: 2px;\r\n --w-datepicker-dialog-time-height: 254px;\r\n }\r\n\r\n .w-calendar-dialog.z-hastime .w-calendar-head,\r\n .w-calendar-dialog.z-hastime .w-calendar-body {\r\n box-sizing: border-box;\r\n width: calc(var(--w-datepicker-dialog-width) - 2px);\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-head {\r\n box-sizing: border-box;\r\n width: var(--w-datepicker-dialog-width);\r\n }\r\n\r\n .w-calendar-dialog .w-calendar-body {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-calendar {\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-calendar-head,\r\n .w-calendar-foot {\r\n height: 36px;\r\n padding: 0 5px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-pop {\r\n padding: 0 10px;\r\n --w-compat-gap: 8px;\r\n gap: var(--w-compat-gap);\r\n }\r\n\r\n .w-calendar-head-blank {\r\n display: none;\r\n flex: 1;\r\n }\r\n\r\n .w-calendar-head-month {\r\n margin-left: 3px;\r\n }\r\n\r\n .w-calendar-body {\r\n display: grid;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-body {\r\n padding: 10px 0;\r\n }\r\n \r\n .w-calendar-quarter .w-calendar-item {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-calendar-date .w-calendar-body,\r\n .w-calendar-week .w-calendar-body {\r\n grid-template-columns: repeat(7, 1fr);\r\n }\r\n\r\n .w-calendar-body {\r\n grid-template-columns: repeat(4, 1fr);\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n\r\n .w-calendar-dialog .w-calendar-month .w-calendar-body,\r\n .w-calendar-dialog .w-calendar-year .w-calendar-body {\r\n min-height: 120px;\r\n }\r\n\r\n .w-calendar-item {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n .w-calendar-item,\r\n .w-calendar-daytitle {\r\n text-align: center;\r\n padding: 5px;\r\n cursor: default;\r\n }\r\n\r\n .w-calendar-item:not(.z-ds):not(.z-on):hover,\r\n .w-calendar-head-year-item:hover {\r\n background: #f5f5f5;\r\n }\r\n\r\n .w-calendar-item.z-on {\r\n background: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n \r\n .w-calendar-item.z-ds {\r\n background: #f9f9f9;\r\n }\r\n\r\n .w-calendar-item.z-ds,\r\n .w-calendar-item.z-pad {\r\n color: #999;\r\n }\r\n\r\n .w-calendar-item-text {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n .w-calendar-foot {\r\n position: relative;\r\n border-top: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n position: static;\r\n height: var(--w-datepicker-dialog-time-height);\r\n }\r\n\r\n .w-calendar-time {\r\n position: absolute;\r\n top: 0;\r\n bottom: 35px;\r\n right: 0;\r\n width: calc(var(--w-datepicker-dialog-time-width) * var(--w-datepicker-time-cols, 0));\r\n border-left: 1px solid #ddd;\r\n }\r\n \r\n .w-calendar-dialog.z-onlytime .w-calendar-time {\r\n border-left: 0;\r\n }\r\n\r\n .w-calendar-time-th,\r\n .w-calendar-time-item {\r\n box-sizing: border-box;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-time-th {\r\n line-height: 36px;\r\n border-bottom: 1px solid #ddd;\r\n }\r\n\r\n .w-calendar-time-item {\r\n height: 30px;\r\n border: 0;\r\n }\r\n\r\n .w-calendar-time-item.z-on,\r\n .w-calendar-head-year-item.z-on {\r\n background: var(--w--vice-color);\r\n }\r\n\r\n .w-calendar-head-year-item {\r\n height: 24px;\r\n line-height: 24px;\r\n text-align: center;\r\n }\r\n\r\n .w-calendar-head .f-i {\r\n font-size: 20px;\r\n color: #aaa;\r\n }\r\n\r\n .w-calendar-head .f-i:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-calendar-time-body .w-scroll-cont {\r\n padding: 94px 0;\r\n }\r\n \r\n .w-calendar-time-body .w-button.z-ds {\r\n background: #fff;\r\n color: #aaa;\r\n }\r\n \r\n .w-calendar-button-now,\r\n .w-calendar-button-confirm {\r\n padding: 2px 10px;\r\n cursor: pointer;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Scroll from './Scroll.vue'\r\n import PubParent from './PubParent.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n\r\n export default {\r\n name: 'w-timeline',\r\n mixins: [Scroll, PubParent],\r\n props: ['face', 'vertical'],\r\n methods: {\r\n indent() {\r\n let len = this.$refs.wrap.querySelectorAll('.w-timeline-item').length\r\n if (len <= 1) return\r\n let vt = this.x.vertical\r\n let size = vt ? 'width' : 'height'\r\n let prevWidth = 0\r\n let nextWidth = 0\r\n for (let i = 0; i < len; i++) {\r\n let prev = this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i}\"]`)\r\n let next = i < len - 1 && this.$refs.wrap.querySelector(`.w-timeline-item[w-index=\"${i+1}\"]`)\r\n let prevBcr = $.bcr(prev.querySelector('.w-timeline-item-icon-img'))\r\n if (prev.parentNode == this.$refs.prev) {\r\n prevWidth = Math.max(prevWidth, prevBcr[size])\r\n } else {\r\n nextWidth = Math.max(nextWidth, prevBcr[size])\r\n }\r\n if (next && prev.parentNode != next.parentNode) {\r\n let nextBcr = $.bcr(next.querySelector('.w-timeline-item-icon-img'))\r\n if (vt && prevBcr.bottom + 25 > nextBcr.top) {\r\n $.q(next).css({\r\n marginTop: prevBcr.bottom + 25 - nextBcr.top\r\n })\r\n } else if (!vt && prevBcr.right + 50 > nextBcr.left) {\r\n $.q(next).css({\r\n marginLeft: prevBcr.right + 50 - nextBcr.left\r\n })\r\n }\r\n }\r\n }\r\n let prevItems = $.q('.w-timeline-item', this.$refs.prev)\r\n prevItems.each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginRight' : 'marginBottom']: (prevWidth - bcr[size]) / 2\r\n })\r\n })\r\n $.q('.w-timeline-item', this.$refs.next).each((i, v) => {\r\n let icon = $.q('.w-timeline-item-icon', v)\r\n let bcr = $.bcr(icon[0])\r\n icon.css({\r\n [vt ? 'marginLeft' : 'marginTop']: (nextWidth - bcr[size]) / 2\r\n })\r\n })\r\n prevItems.length && $.q(this.$refs.next).css({\r\n [vt ? 'marginLeft' : 'marginTop']: `-${nextWidth/2 + prevWidth/2}px`\r\n })\r\n \r\n const wrapBcr = $.bcr(this.$refs.wrap)\r\n const center = []\r\n let bg = []\r\n let linePos = 0\r\n let lineColor = '#ddd'\r\n for (let i = 0; i < len; i++) {\r\n let el = $.q(`.w-timeline-item[w-index=\"${i}\"]`, this.$refs.wrap)\r\n let b = $.bcr(el.find('.w-timeline-item-icon-img')[0])\r\n let c = {x: b.left + (b.width / 2), y: b.top + (b.height / 2), color: el.attr('w-line-color')}\r\n center.push(c)\r\n }\r\n center.sort((n, m) => this.x.vertical ? (n.y < m.y ? -1 : 0) : (n.x < m.x ? -1 : 0))\r\n for (let i = 0; i < len; i++) {\r\n const c = center[i]\r\n if (i > 0) {\r\n const prev = center[0]\r\n linePos = this.x.vertical ? c.y - prev.y : c.x - prev.x\r\n bg.push(`${lineColor} ${linePos}px`)\r\n }\r\n if (c.color) lineColor = c.color\r\n if (i > 0) {\r\n bg.push(`${lineColor} ${linePos}px`)\r\n }\r\n }\r\n if (this.x.vertical) {\r\n $.q(this.$refs.line).css({\r\n width: 2,\r\n height: center[len-1].y - center[0].y,\r\n top: center[0].y - wrapBcr.top,\r\n left: center[0].x - wrapBcr.left - 1,\r\n })\r\n } else {\r\n $.q(this.$refs.line).css({\r\n width: center[len-1].x - center[0].x,\r\n height: 2,\r\n top: center[0].y - wrapBcr.top - 1,\r\n left: center[0].x - wrapBcr.left,\r\n background: `linear-gradient(to right, ${bg.join()})`\r\n })\r\n }\r\n\r\n },\r\n html_slots() {\r\n let prevSlots = []\r\n let nextSlots = []\r\n let vt = this.x.vertical\r\n this.slots_children().forEach((c, i) => {\r\n $.lodash.set(c, 'props.index', i)\r\n if (vt) {\r\n (c.props.position == 'right' ? prevSlots : nextSlots).push(c)\r\n } else {\r\n (c.props.position == 'bottom' ? nextSlots : prevSlots).push(c)\r\n }\r\n })\r\n return this.html_scroll_slots(\r\n h('div', {\r\n ref: 'wrap',\r\n class: 'w-timeline-wrap'\r\n }, [\r\n h('div', {\r\n ref: 'line',\r\n class: 'w-timeline-line'\r\n }),\r\n h('div', {\r\n ref: 'prev',\r\n class: ['w-timeline-prev', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, prevSlots),\r\n h('div', {\r\n ref: 'next',\r\n class: ['w-timeline-next', {[`f-${this.x.vertical?'v':'h'}-gap`]: $.br.compat.gap}]\r\n }, nextSlots),\r\n ])\r\n )\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return [this.html_scroll_class,\r\n {\r\n ['z-face-' + this.x.face]: this.x.face,\r\n 'z-horizontal': !this.x.vertical,\r\n 'z-vertical': this.x.vertical\r\n }\r\n ]\r\n }\r\n },\r\n mounted() {\r\n this.indent()\r\n const observe = $.lodash.debounce(() => {\r\n if (this.$refs.wrap && this.$refs.next) {\r\n $.q('.w-timeline-item', this.$refs.wrap).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n $.q(this.$refs.next).css({[this.x.vertical ? 'marginTop' : 'marginLeft']: 0})\r\n this.indent()\r\n }\r\n })\r\n new MutationObserver(observe).observe(this.$refs.wrap, {childList: true, attributes:true, subtree: true})\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-timeline-wrap {\r\n flex-shrink: 0;\r\n display: flex;\r\n position: relative;\r\n width: max-content;\r\n min-width: 100%;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-wrap {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-prev .w-timeline-item {\r\n flex-direction: column-reverse;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-wrap,\r\n .w-timeline.z-vertical .w-timeline-item {\r\n flex-direction: row;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev,\r\n .w-timeline.z-vertical .w-timeline-next {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-prev .w-timeline-item {\r\n flex-direction: row-reverse;\r\n }\r\n\r\n .w-timeline-prev,\r\n .w-timeline-next {\r\n position: relative;\r\n display: flex;\r\n flex: 1;\r\n flex-shrink: 0;\r\n --w-compat-gap: 25px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-timeline-prev:empty,\r\n .w-timeline-next:empty {\r\n display: none;\r\n }\r\n\r\n .w-timeline-item {\r\n position: relative;\r\n display: flex;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item {\r\n flex-direction: column;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-icon {\r\n align-items: center;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-center .w-timeline-item-icon {\r\n justify-content: center;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-center .w-timeline-item-main-text {\r\n text-align: center;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-right .w-timeline-item-icon {\r\n justify-content: flex-end;\r\n }\r\n \r\n .w-timeline.z-horizontal .w-timeline-item.z-align-right .w-timeline-item-main-text {\r\n text-align: right;\r\n }\r\n\r\n .w-timeline.z-horizontal .w-timeline-item-main {\r\n padding: 10px 0;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item-main {\r\n padding: 0 10px;\r\n }\r\n\r\n .w-timeline.z-vertical .w-timeline-item.z-position-right {\r\n text-align: right;\r\n }\r\n\r\n .w-timeline-item-icon {\r\n display: flex;\r\n flex-shrink: 0;\r\n position: relative;\r\n line-height: 1;\r\n }\r\n\r\n .w-timeline-item-icon-img.z-default {\r\n display: inline-block;\r\n width: 18px;\r\n height: 18px;\r\n border: 2px solid #1890ff;\r\n border-radius: 100px;\r\n background: #fff;\r\n color: #1890ff;\r\n }\r\n\r\n .w-timeline-line {\r\n position: absolute;\r\n background: #ddd;\r\n }\r\n \r\n</style>\r\n","<!-- <template>\r\n <div v-bind=\"html_binds\">\r\n <div class=\"_t\">\r\n <div class=\"_s\"></div>\r\n <i v-if=\"pubParent.x.face === 'bubble'\"\r\n :class=\"'_caret f-i f-i-caret-' + (leftIndex != null ? 'right' : rightIndex != null ? 'left' : topIndex != null ? 'down' : 'up')\"></i>\r\n </div>\r\n \r\n </div>\r\n</template> -->\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import WidgetBase from './WidgetBase.vue'\r\n import Vertical from './Vertical.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-timeline-item',\r\n pubParentName: 'w-timeline',\r\n mixins: [WidgetBase],\r\n inject: ['providePubParent'],\r\n props: ['position', 'index', 'align', 'lineColor'],\r\n watch: {\r\n lineColor(v) {\r\n this.$nextTick(() => this.providePubParent.indent())\r\n }\r\n },\r\n methods: {\r\n html_slots() {\r\n let text = h('div', {\r\n class: 'w-timeline-item-main f-br'\r\n }, h('div', {\r\n class: 'w-timeline-item-main-text'\r\n }, this.$slots))\r\n let icon = h('div', {\r\n ref: 'icon',\r\n class: 'w-timeline-item-icon'\r\n }, this.$slots.icon ? h('div', {\r\n class: 'w-timeline-item-icon-img'\r\n }, this.$slots.icon()) : h('i', {\r\n class: 'w-timeline-item-icon-img z-default'\r\n }))\r\n return [icon, text]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'z-position-' + (this.x.position || (this.pubParent.x.vertical ? 'left' : 'bottom')) + ' z-align-' + (this.x.align || 'left')\r\n },\r\n html_props() {\r\n return {\r\n 'w-index': this.x.index,\r\n 'w-line-color': this.x.lineColor\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n\r\n</style>\r\n","<template>\r\n <div ref=\"root\" v-bind=\"html_binds\">\r\n <div ref=\"options\" class=\"w-slidepicker-options\">\r\n <slot />\r\n </div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-top\"></div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-bottom\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n getCurrentInstance,\r\n onMounted,\r\n watch,\r\n computed,\r\n ref,\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-slidepicker',\r\n mixins: [WidgetBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['optionHeight', 'modelValue', 'minValue', 'maxValue', 'keepIndex', 'cover'],\r\n emits: ['update:modelValue', 'change'],\r\n setup(props, context) {\r\n const self = getCurrentInstance().ctx\r\n const root = ref()\r\n const options = ref()\r\n let startY, endY, minY, maxY, optY, optH, roll\r\n\r\n const onmousedown = function(downEv) {\r\n let downY = $.eventY(downEv)\r\n let moveY, lastY, lastTime\r\n let speed = 0\r\n let lastSpeed = null\r\n options.value.style.transition = ''\r\n $.moveup(e => {\r\n let nowY = $.eventY(e)\r\n let nowTime = e.timeStamp\r\n moveY = optY + nowY - downY\r\n if (lastY && lastTime && nowTime > lastTime) {\r\n lastSpeed = speed\r\n speed = (nowY - lastY) / (nowTime - lastTime)\r\n }\r\n lastY = nowY\r\n lastTime = nowTime\r\n moveY = $.numRange(moveY, minY - optH, maxY + optH)\r\n options.value.style.transform = `translateY(${moveY}px)`\r\n }, (e, moved) => {\r\n if (!moved) {\r\n return onclick(downEv)\r\n }\r\n if (moveY == null) return\r\n let minSpeed = 0.15 //speed大于这个值时,做惯性滚动\r\n if (Math.abs(speed) < minSpeed || (lastSpeed && Math.abs(lastSpeed) < minSpeed)) {\r\n speed = 0\r\n } else if (lastSpeed && Math.abs(lastSpeed) > Math.abs(speed)) {\r\n speed = lastSpeed //记录最后两个speed,选择其中一个最大的,此步骤可优化体验\r\n }\r\n let y = moveY + (speed * 200)\r\n let s = Math.abs(speed / 2)\r\n let yuH = (maxY - y) % optH\r\n y += yuH\r\n if (yuH > (optH / 2)) {\r\n y -= optH\r\n }\r\n optY = $.numRange(y, minY, maxY)\r\n if (optY != moveY) {\r\n if (moveY < minY || moveY > minY || s < minSpeed) {\r\n s = minSpeed\r\n }\r\n if (Math.abs(optY - moveY) < 10) {\r\n s = 0.05 // 移动范围很小时,过渡时间也相应缩短\r\n }\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform ${s}s ease-out`\r\n }\r\n }, downEv)\r\n }\r\n const onwheel = function(e) {\r\n optY += (e.deltaY < 0 ? -1 : 1) * optH\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform .12s ease-out`\r\n }\r\n const onclick = function(e) {\r\n let g = $(e)\r\n if (g.$options.name == 'w-option') {\r\n update(g.$props.value)\r\n focus(true)\r\n }\r\n }\r\n const focus = function(ease) {\r\n if (!root.value || !options.value) return\r\n let sc = self.slots_children()\r\n if (!sc.length) return\r\n let v = self.x.modelValue\r\n let nv = self.x.minValue\r\n let xv = self.x.maxValue\r\n if (nv || nv === 0 || xv || xv === 0) {\r\n v = $.numRange(v, nv, xv)\r\n if (v != self.x.modelValue) {\r\n update(v)\r\n }\r\n }\r\n let bcrRoot = $.bcr(root.value)\r\n let bcrOpt = $.bcr(options.value)\r\n let ni = -1\r\n let xi = -1\r\n let asc = true\r\n optH = self.x.optionHeight\r\n startY = maxY = (bcrRoot.height - optH) / 2\r\n endY = minY = startY - bcrOpt.height + optH\r\n if (nv || nv === 0) {\r\n ni = sc.findIndex(s => s.props.value == nv)\r\n }\r\n if (xv || xv === 0) {\r\n xi = sc.findIndex(s => s.props.value == xv)\r\n }\r\n if ((ni > -1 || xi > -1) && sc[0].props.value > sc[sc.length - 1].props.value) { // 判断是不是倒序\r\n asc = false\r\n }\r\n if (ni > -1) {\r\n if (asc) {\r\n maxY -= ni * optH\r\n } else {\r\n minY += ni * optH\r\n }\r\n }\r\n if (xi > -1) {\r\n if (asc) {\r\n minY += (sc.length - 1 - xi) * optH\r\n } else {\r\n maxY -= (sc.length - 1 - xi) * optH\r\n }\r\n }\r\n if (v != null) {\r\n let index = sc.findIndex(s => s.props.value == v)\r\n if (index === -1) {\r\n update(optY != null && optY < endY && self.keepIndex ? sc[sc.length - 1].props.value : sc[0].props.value)\r\n } else {\r\n optY = startY - (optH * index)\r\n }\r\n } else {\r\n optY = startY\r\n }\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transition = ''\r\n options.value.style.transform = `translateY(${optY}px)`\r\n if (ease) {\r\n options.value.style.transition = `transform .15s ease-out`\r\n }\r\n }\r\n\r\n const update = function(v) {\r\n roll = true\r\n self.x.modelValue = v\r\n }\r\n \r\n const getIndex = function() {\r\n return (startY - optY) / optH\r\n }\r\n \r\n const transEnd = function() {\r\n let ret = self.slots_children()[getIndex()]\r\n ret && update(ret.props.value)\r\n }\r\n \r\n const x_default = function() {\r\n return {\r\n optionHeight: 32,\r\n cover: true\r\n }\r\n }\r\n\r\n const html_props = computed(() => {\r\n return {\r\n style: {\r\n '--w-option-height': $.unitSize(self.x.optionHeight)\r\n },\r\n ...($.br.mobile ? {\r\n ontouchstart: onmousedown\r\n } : {\r\n onmousedown,\r\n onwheel,\r\n })\r\n }\r\n })\r\n\r\n onMounted(() => {\r\n watch(() => self.x.modelValue, v => {\r\n context.emit('update:modelValue', v)\r\n context.emit('change', v)\r\n })\r\n watch(() => self.x.minValue, focus)\r\n watch(() => self.x.maxValue, focus)\r\n new ResizeObserver(() => {\r\n if (options.value) {\r\n focus()\r\n transEnd()\r\n }\r\n }).observe(options.value)\r\n options.value.addEventListener('transitionend', transEnd)\r\n })\r\n\r\n return {\r\n root,\r\n options,\r\n x_default,\r\n onmousedown,\r\n onwheel,\r\n html_props,\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-slidepicker {\r\n position: relative;\r\n overflow: hidden;\r\n background: #fff;\r\n }\r\n\r\n .w-slidepicker-bg-top {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.9), rgba(245, 245, 245, 0.4));\r\n border-bottom: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker-bg-bottom {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.4), rgba(245, 245, 245, 0.9));\r\n border-top: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker .w-option {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n\r\n .w-slidepicker .w-option-checked {\r\n display: none;\r\n }\r\n\r\n .w-slidepicker-options {\r\n user-select: none;\r\n /* pointer-events: none; */\r\n }\r\n</style>\r\n","<template>\r\n <div ref=\"root\" v-bind=\"html_binds\">\r\n <div ref=\"options\" class=\"w-slidepicker-options\">\r\n <slot />\r\n </div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-top\"></div>\r\n <div v-if=\"x.cover\" class=\"w-slidepicker-bg-bottom\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n import {\r\n getCurrentInstance,\r\n onMounted,\r\n watch,\r\n computed,\r\n ref,\r\n h,\r\n } from 'vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n\r\n export default {\r\n name: 'w-slidepicker',\r\n mixins: [WidgetBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['optionHeight', 'modelValue', 'minValue', 'maxValue', 'keepIndex', 'cover'],\r\n emits: ['update:modelValue', 'change'],\r\n setup(props, context) {\r\n const self = getCurrentInstance().ctx\r\n const root = ref()\r\n const options = ref()\r\n let startY, endY, minY, maxY, optY, optH, roll\r\n\r\n const onmousedown = function(downEv) {\r\n let downY = $.eventY(downEv)\r\n let moveY, lastY, lastTime\r\n let speed = 0\r\n let lastSpeed = null\r\n options.value.style.transition = ''\r\n $.moveup(e => {\r\n let nowY = $.eventY(e)\r\n let nowTime = e.timeStamp\r\n moveY = optY + nowY - downY\r\n if (lastY && lastTime && nowTime > lastTime) {\r\n lastSpeed = speed\r\n speed = (nowY - lastY) / (nowTime - lastTime)\r\n }\r\n lastY = nowY\r\n lastTime = nowTime\r\n moveY = $.numRange(moveY, minY - optH, maxY + optH)\r\n options.value.style.transform = `translateY(${moveY}px)`\r\n }, (e, moved) => {\r\n if (!moved) {\r\n return onclick(downEv)\r\n }\r\n if (moveY == null) return\r\n let minSpeed = 0.15 //speed大于这个值时,做惯性滚动\r\n if (Math.abs(speed) < minSpeed || (lastSpeed && Math.abs(lastSpeed) < minSpeed)) {\r\n speed = 0\r\n } else if (lastSpeed && Math.abs(lastSpeed) > Math.abs(speed)) {\r\n speed = lastSpeed //记录最后两个speed,选择其中一个最大的,此步骤可优化体验\r\n }\r\n let y = moveY + (speed * 200)\r\n let s = Math.abs(speed / 2)\r\n let yuH = (maxY - y) % optH\r\n y += yuH\r\n if (yuH > (optH / 2)) {\r\n y -= optH\r\n }\r\n optY = $.numRange(y, minY, maxY)\r\n if (optY != moveY) {\r\n if (moveY < minY || moveY > minY || s < minSpeed) {\r\n s = minSpeed\r\n }\r\n if (Math.abs(optY - moveY) < 10) {\r\n s = 0.05 // 移动范围很小时,过渡时间也相应缩短\r\n }\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform ${s}s ease-out`\r\n }\r\n }, downEv)\r\n }\r\n const onwheel = function(e) {\r\n optY += (e.deltaY < 0 ? -1 : 1) * optH\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transform = `translateY(${optY}px)`\r\n options.value.style.transition = `transform .12s ease-out`\r\n }\r\n const onclick = function(e) {\r\n let g = $(e)\r\n if (g.$options.name == 'w-option') {\r\n update(g.$props.value)\r\n focus(true)\r\n }\r\n }\r\n const focus = function(ease) {\r\n if (!root.value || !options.value) return\r\n let sc = self.slots_children()\r\n if (!sc.length) return\r\n let v = self.x.modelValue\r\n let nv = self.x.minValue\r\n let xv = self.x.maxValue\r\n if (nv || nv === 0 || xv || xv === 0) {\r\n v = $.numRange(v, nv, xv)\r\n if (v != self.x.modelValue) {\r\n update(v)\r\n }\r\n }\r\n let bcrRoot = $.bcr(root.value)\r\n let bcrOpt = $.bcr(options.value)\r\n let ni = -1\r\n let xi = -1\r\n let asc = true\r\n optH = self.x.optionHeight\r\n startY = maxY = (bcrRoot.height - optH) / 2\r\n endY = minY = startY - bcrOpt.height + optH\r\n if (nv || nv === 0) {\r\n ni = sc.findIndex(s => s.props.value == nv)\r\n }\r\n if (xv || xv === 0) {\r\n xi = sc.findIndex(s => s.props.value == xv)\r\n }\r\n if ((ni > -1 || xi > -1) && sc[0].props.value > sc[sc.length - 1].props.value) { // 判断是不是倒序\r\n asc = false\r\n }\r\n if (ni > -1) {\r\n if (asc) {\r\n maxY -= ni * optH\r\n } else {\r\n minY += ni * optH\r\n }\r\n }\r\n if (xi > -1) {\r\n if (asc) {\r\n minY += (sc.length - 1 - xi) * optH\r\n } else {\r\n maxY -= (sc.length - 1 - xi) * optH\r\n }\r\n }\r\n if (v != null) {\r\n let index = sc.findIndex(s => s.props.value == v)\r\n if (index === -1) {\r\n update(optY != null && optY < endY && self.keepIndex ? sc[sc.length - 1].props.value : sc[0].props.value)\r\n } else {\r\n optY = startY - (optH * index)\r\n }\r\n } else {\r\n optY = startY\r\n }\r\n optY = $.numRange(optY, minY, maxY)\r\n options.value.style.transition = ''\r\n options.value.style.transform = `translateY(${optY}px)`\r\n if (ease) {\r\n options.value.style.transition = `transform .15s ease-out`\r\n }\r\n }\r\n\r\n const update = function(v) {\r\n roll = true\r\n self.x.modelValue = v\r\n }\r\n \r\n const getIndex = function() {\r\n return (startY - optY) / optH\r\n }\r\n \r\n const transEnd = function() {\r\n let ret = self.slots_children()[getIndex()]\r\n ret && update(ret.props.value)\r\n }\r\n \r\n const x_default = function() {\r\n return {\r\n optionHeight: 32,\r\n cover: true\r\n }\r\n }\r\n\r\n const html_props = computed(() => {\r\n return {\r\n style: {\r\n '--w-option-height': $.unitSize(self.x.optionHeight)\r\n },\r\n ...($.br.mobile ? {\r\n ontouchstart: onmousedown\r\n } : {\r\n onmousedown,\r\n onwheel,\r\n })\r\n }\r\n })\r\n\r\n onMounted(() => {\r\n watch(() => self.x.modelValue, v => {\r\n context.emit('update:modelValue', v)\r\n context.emit('change', v)\r\n })\r\n watch(() => self.x.minValue, focus)\r\n watch(() => self.x.maxValue, focus)\r\n new ResizeObserver(() => {\r\n if (options.value) {\r\n focus()\r\n transEnd()\r\n }\r\n }).observe(options.value)\r\n options.value.addEventListener('transitionend', transEnd)\r\n })\r\n\r\n return {\r\n root,\r\n options,\r\n x_default,\r\n onmousedown,\r\n onwheel,\r\n html_props,\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-slidepicker {\r\n position: relative;\r\n overflow: hidden;\r\n background: #fff;\r\n }\r\n\r\n .w-slidepicker-bg-top {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.9), rgba(245, 245, 245, 0.4));\r\n border-bottom: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker-bg-bottom {\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n width: 100%;\r\n height: calc(50% - var(--w-option-height, 32px)/2);\r\n background: linear-gradient(rgba(245, 245, 245, 0.4), rgba(245, 245, 245, 0.9));\r\n border-top: 1px solid #ddd;\r\n pointer-events: none;\r\n box-sizing: border-box;\r\n }\r\n\r\n .w-slidepicker .w-option {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n\r\n .w-slidepicker .w-option-checked {\r\n display: none;\r\n }\r\n\r\n .w-slidepicker-options {\r\n user-select: none;\r\n /* pointer-events: none; */\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-hidden',\r\n mixins: [FormBase],\r\n methods: {\r\n isModified() {\r\n return false\r\n },\r\n html() {\r\n return h('input', {\r\n type: 'hidden',\r\n id: this.uid,\r\n class: 'w-hidden',\r\n name: this.x.name,\r\n value: this.x.modelValue,\r\n ref: 'v'\r\n })\r\n }\r\n },\r\n \r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-text',\r\n mixins: [FormBase],\r\n props: ['minLength', 'maxLength', 'pattern', 'clearable', 'showCount'],\r\n\t\temits: ['clear'],\r\n data() {\r\n return {\r\n hasBorder: true\r\n }\r\n },\r\n methods: {\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n if (this.hasVal) {\r\n this.val('')\r\n this.focus()\r\n this.$emit('clear', e)\r\n }\r\n },\r\n html_button() {\r\n return this.isNormal && this.x.clearable && h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-close',\r\n onclick: this.clickButtonClear\r\n })\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minLength: (v, r, q) => {\r\n if (v && r != null && r !== '' && r > 0 && $.strLen(v) < r)\r\n return this.formErr(q, [r])\r\n },\r\n maxLength: (v, r, q) => {\r\n let d\r\n if (v && r != null && r !== '' && r > 0 && v && (d = $.strLen(v)) > r)\r\n return this.formErr(q, [$.strExceed(v, r)])\r\n }\r\n }\r\n },\r\n input_prop() {\r\n if (this.x.maxLength) {\r\n return {maxlength: this.x.maxLength}\r\n }\r\n },\r\n html_class() {\r\n \treturn {\r\n \t\t'z-val': this.hasVal,\r\n 'z-clearable': this.x.clearable,\r\n \t}\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import {h} from 'vue'\r\n import $ from '../dfish.js'\r\n import Text from './Text.vue'\r\n \r\n export default {\r\n name: 'w-textarea',\r\n mixins: [Text],\r\n methods: {\r\n html_slot_down() {\r\n const down = this.slot('down')\r\n if (this.x.showCount || (down && down.length)) {\r\n let counter = ''\r\n if (this.x.showCount && this.x.maxLength) {\r\n let v = this.x.modelValue || ''\r\n let cnt = $.strLen(v)\r\n if (cnt > this.x.maxLength) {\r\n const exc = $.strExceed(v, this.x.maxLength)\r\n cnt = `<em class=w-textarea-show-count-exceed>超出${exc}个字</em>`\r\n }\r\n counter = `${cnt} / ${this.x.maxLength}`\r\n }\r\n return h('div', {class: 'w-textarea-down'}, [\r\n h('div', {class: 'w-textarea-down-left'}, down),\r\n h('div', {class: 'w-textarea-down-right w-textarea-show-count', innerHTML: counter})\r\n ])\r\n }\r\n return down\r\n },\r\n },\r\n computed: {\r\n input_tag() {\r\n return 'textarea'\r\n },\r\n hasClassSlotDown() {\r\n return (this.x.showCount && this.x.maxLength) || !!this.$slots.down\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['modelValue', 'required', 'vertical', 'gap', 'minSize', 'maxSize', 'br'],\r\n provide() {\r\n return {\r\n providePubParent: this\r\n }\r\n },\r\n data() {\r\n return {\r\n watchValue: null\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n br: true,\r\n gap: 15\r\n }\r\n },\r\n watchModelValue(v, ov) {\r\n // not do\r\n },\r\n html_form_slot() {\r\n return this.x.vertical ? h('div', {class: 'w-boxgroup-grid'}, this.$slots) : this.$slots\r\n },\r\n },\r\n computed: {\r\n html_class() {\r\n return {'z-br': this.x.br}\r\n },\r\n html_style() {\r\n return this.x.gap && {\r\n '--w-boxgroup-gap': $.unitSize(this.x.gap)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import CheckBoxGroup from './CheckBoxGroup.vue'\r\n\r\n export default {\r\n name: 'w-radiogroup',\r\n mixins: [CheckBoxGroup]\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import CheckBox from './CheckBox.vue'\r\n\r\n export default {\r\n name: 'w-radio',\r\n pubParentName: 'w-radiogroup',\r\n mixins: [CheckBox],\r\n props: ['cancelable'],\r\n methods: {\r\n\r\n },\r\n computed: {\r\n input_type() {\r\n return 'radio'\r\n },\r\n input_icon() {\r\n return 'f-i'\r\n },\r\n input_name() {\r\n return this.w_name && (this.w_name + '@' + this.ownerView.uid)\r\n },\r\n w_name() {\r\n return this.x.name || (this.pubParent && this.pubParent.x.name)\r\n },\r\n input_prop() {\r\n return {'w-name': this.w_name}\r\n }\r\n },\r\n mounted() {\r\n\r\n\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-switch',\r\n pubParentName: 'w-checkboxgroup',\r\n mixins: [FormBase],\r\n props: ['checkedText', 'uncheckedText', 'checkedValue', 'uncheckedValue'],\r\n inject: ['providePubParent'],\r\n methods: {\r\n x_default() {\r\n return {\r\n checkedValue: 1,\r\n uncheckedValue: 0,\r\n }\r\n },\r\n onclick(e) {\r\n let c = !this.isChecked\r\n let v = c ? this.x.checkedValue : this.x.uncheckedValue\r\n this.val(v)\r\n },\r\n formText() {\r\n return this.isChecked ? this.x.checkedText : this.x.uncheckedText\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-switch-box',\r\n onclick: this.isNormal && this.onclick\r\n }, [\r\n h('i', {\r\n class: 'w-switch-icon'\r\n }),\r\n h('span', {\r\n class: 'w-switch-text'\r\n }, this.isChecked ? this.x.checkedText : this.x.uncheckedText),\r\n ])\r\n ]\r\n }\r\n },\r\n computed: {\r\n input_value() {\r\n return this.isChecked ? this.x.checkedValue : this.x.uncheckedValue\r\n },\r\n html_class() {\r\n return this.isChecked ? 'z-checked' : 'z-unchecked'\r\n },\r\n isChecked() {\r\n return this.x.modelValue == this.x.checkedValue\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-switch>.w-formbase-main>.w-input {\r\n flex: none;\r\n display: inline-flex;\r\n }\r\n\r\n .w-switch-box {\r\n flex: 1;\r\n position: relative;\r\n height: 22px;\r\n background: #c0c0c0;\r\n background: rgba(0, 0, 0, 0.25);\r\n border: 1px solid #c1caca;\r\n border-radius: 20px;\r\n color: #fff;\r\n vertical-align: middle;\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-appearance: none;\r\n }\r\n\r\n .w-switch-icon {\r\n position: absolute;\r\n top: 1px;\r\n left: 1px;\r\n background: #fff;\r\n padding: 10px;\r\n border-radius: 20px;\r\n box-shadow: 0 2px 4px 0 rgba(0, 35, 11, 0.2);\r\n transition: all .15s cubic-bezier(.78, .14, .15, .86);\r\n }\r\n\r\n .w-switch-text {\r\n float: right;\r\n min-width: 2px;\r\n margin-left: 26px;\r\n margin-right: 8px;\r\n line-height: 22px;\r\n font-style: normal;\r\n min-width: 10px;\r\n }\r\n\r\n .w-switch.z-checked .w-switch-box {\r\n background: #1890ff;\r\n border-color: #1890ff\r\n }\r\n\r\n .w-switch.z-checked .w-switch-icon {\r\n left: 100%;\r\n border-color: #1890ff;\r\n transform: translateX(calc(-100% - 1px));\r\n }\r\n\r\n .w-switch.z-checked .w-switch-text {\r\n float: left;\r\n margin-left: 8px;\r\n margin-right: 26px;\r\n }\r\n\r\n .w-switch.z-ds .w-switch-box {\r\n background: #e6e6e6;\r\n border-color: #e6e6e6;\r\n cursor: default\r\n }\r\n\r\n .w-switch.z-ds .w-switch-icon {\r\n border-color: #e6e6e6\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-box {\r\n background: #a2d2ff;\r\n border-color: #a2d2ff\r\n }\r\n\r\n .w-switch.z-checked.z-ds .w-switch-icon {\r\n border-color: #a2d2ff\r\n }\r\n</style>\r\n","import {strFrom} from './str.js'\r\n\r\nconst mimes = {\r\n \".323\": \"text/h323\",\r\n \".3gp\": \"video/3gpp\",\r\n \".aab\": \"application/x-authoware-bin\",\r\n \".aam\": \"application/x-authoware-map\",\r\n \".aas\": \"application/x-authoware-seg\",\r\n \".acx\": \"application/internet-property-stream\",\r\n \".ai\": \"application/postscript\",\r\n \".aif\": \"audio/x-aiff\",\r\n \".aifc\": \"audio/x-aiff\",\r\n \".aiff\": \"audio/x-aiff\",\r\n \".als\": \"audio/X-Alpha5\",\r\n \".amc\": \"application/x-mpeg\",\r\n \".apk\": \"application/vnd.android.package-archive\",\r\n \".asc\": \"text/plain\",\r\n \".asd\": \"application/astound\",\r\n \".asf\": \"video/x-ms-asf\",\r\n \".asn\": \"application/astound\",\r\n \".asp\": \"application/x-asap\",\r\n \".asr\": \"video/x-ms-asf\",\r\n \".asx\": \"video/x-ms-asf\",\r\n \".au\": \"audio/basic\",\r\n \".avi\": \"video/x-msvideo\",\r\n \".awb\": \"audio/amr-wb\",\r\n \".axs\": \"application/olescript\",\r\n \".bas\": \"text/plain\",\r\n \".bcpio\": \"application/x-bcpio\",\r\n \".bld\": \"application/bld\",\r\n \".bld2\": \"application/bld2\",\r\n \".bmp\": \"image/bmp\",\r\n \".bz2\": \"application/x-bzip2\",\r\n \".c\": \"text/plain\",\r\n \".cal\": \"image/x-cals\",\r\n \".cat\": \"application/vnd.ms-pkiseccat\",\r\n \".ccn\": \"application/x-cnc\",\r\n \".cco\": \"application/x-cocoa\",\r\n \".cdf\": \"application/x-cdf\",\r\n \".cer\": \"application/x-x509-ca-cert\",\r\n \".cgi\": \"magnus-internal/cgi\",\r\n \".chat\": \"application/x-chat\",\r\n \".clp\": \"application/x-msclip\",\r\n \".cmx\": \"image/x-cmx\",\r\n \".co\": \"application/x-cult3d-object\",\r\n \".cod\": \"image/cis-cod\",\r\n \".conf\": \"text/plain\",\r\n \".cpio\": \"application/x-cpio\",\r\n \".cpp\": \"text/plain\",\r\n \".cpt\": \"application/mac-compactpro\",\r\n \".crd\": \"application/x-mscardfile\",\r\n \".crl\": \"application/pkix-crl\",\r\n \".crt\": \"application/x-x509-ca-cert\",\r\n \".csh\": \"application/x-csh\",\r\n \".csm\": \"chemical/x-csml\",\r\n \".csml\": \"chemical/x-csml\",\r\n \".css\": \"text/css\",\r\n \".dcm\": \"x-lml/x-evm\",\r\n \".dcr\": \"application/x-director\",\r\n \".dcx\": \"image/x-dcx\",\r\n \".der\": \"application/x-x509-ca-cert\",\r\n \".dhtml\": \"text/html\",\r\n \".dir\": \"application/x-director\",\r\n \".dll\": \"application/x-msdownload\",\r\n \".doc\": \"application/msword\",\r\n \".docx\": \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\r\n \".dot\": \"application/msword\",\r\n \".dvi\": \"application/x-dvi\",\r\n \".dwf\": \"drawing/x-dwf\",\r\n \".dwg\": \"application/x-autocad\",\r\n \".dxf\": \"application/x-autocad\",\r\n \".dxr\": \"application/x-director\",\r\n \".ebk\": \"application/x-expandedbook\",\r\n \".emb\": \"chemical/x-embl-dl-nucleotide\",\r\n \".embl\": \"chemical/x-embl-dl-nucleotide\",\r\n \".eps\": \"application/postscript\",\r\n \".epub\": \"application/epub+zip\",\r\n \".eri\": \"image/x-eri\",\r\n \".es\": \"audio/echospeech\",\r\n \".esl\": \"audio/echospeech\",\r\n \".etc\": \"application/x-earthtime\",\r\n \".etx\": \"text/x-setext\",\r\n \".evm\": \"x-lml/x-evm\",\r\n \".evy\": \"application/envoy\",\r\n \".fh4\": \"image/x-freehand\",\r\n \".fh5\": \"image/x-freehand\",\r\n \".fhc\": \"image/x-freehand\",\r\n \".fif\": \"application/fractals\",\r\n \".flr\": \"x-world/x-vrml\",\r\n \".flv\": \"flv-application/octet-stream\",\r\n \".fm\": \"application/x-maker\",\r\n \".fpx\": \"image/x-fpx\",\r\n \".fvi\": \"video/isivideo\",\r\n \".gau\": \"chemical/x-gaussian-input\",\r\n \".gca\": \"application/x-gca-compressed\",\r\n \".gdb\": \"x-lml/x-gdb\",\r\n \".gif\": \"image/gif\",\r\n \".gps\": \"application/x-gps\",\r\n \".gtar\": \"application/x-gtar\",\r\n \".gz\": \"application/x-gzip\",\r\n \".h\": \"text/plain\",\r\n \".hdf\": \"application/x-hdf\",\r\n \".hdm\": \"text/x-hdml\",\r\n \".hdml\": \"text/x-hdml\",\r\n \".hlp\": \"application/winhlp\",\r\n \".hqx\": \"application/mac-binhex40\",\r\n \".hta\": \"application/hta\",\r\n \".htc\": \"text/x-component\",\r\n \".htm\": \"text/html\",\r\n \".html\": \"text/html\",\r\n \".hts\": \"text/html\",\r\n \".htt\": \"text/webviewhtml\",\r\n \".ice\": \"x-conference/x-cooltalk\",\r\n \".ico\": \"image/x-icon\",\r\n \".ief\": \"image/ief\",\r\n \".ifm\": \"image/gif\",\r\n \".ifs\": \"image/ifs\",\r\n \".iii\": \"application/x-iphone\",\r\n \".imy\": \"audio/melody\",\r\n \".ins\": \"application/x-internet-signup\",\r\n \".ips\": \"application/x-ipscript\",\r\n \".ipx\": \"application/x-ipix\",\r\n \".isp\": \"application/x-internet-signup\",\r\n \".it\": \"audio/x-mod\",\r\n \".itz\": \"audio/x-mod\",\r\n \".ivr\": \"i-world/i-vrml\",\r\n \".j2k\": \"image/j2k\",\r\n \".jad\": \"text/vnd.sun.j2me.app-descriptor\",\r\n \".jam\": \"application/x-jam\",\r\n \".jar\": \"application/java-archive\",\r\n \".java\": \"text/plain\",\r\n \".jfif\": \"image/pipeg\",\r\n \".jnlp\": \"application/x-java-jnlp-file\",\r\n \".jpe\": \"image/jpeg\",\r\n \".jpeg\": \"image/jpeg\",\r\n \".jpg\": \"image/jpeg\",\r\n \".jpz\": \"image/jpeg\",\r\n \".js\": \"application/x-javascript\",\r\n \".jwc\": \"application/jwc\",\r\n \".kjx\": \"application/x-kjx\",\r\n \".lak\": \"x-lml/x-lak\",\r\n \".latex\": \"application/x-latex\",\r\n \".lcc\": \"application/fastman\",\r\n \".lcl\": \"application/x-digitalloca\",\r\n \".lcr\": \"application/x-digitalloca\",\r\n \".lgh\": \"application/lgh\",\r\n \".lml\": \"x-lml/x-lml\",\r\n \".lmlpack\": \"x-lml/x-lmlpack\",\r\n \".log\": \"text/plain\",\r\n \".lsf\": \"video/x-la-asf\",\r\n \".lsx\": \"video/x-la-asf\",\r\n \".m13\": \"application/x-msmediaview\",\r\n \".m14\": \"application/x-msmediaview\",\r\n \".m15\": \"audio/x-mod\",\r\n \".m3u\": \"audio/x-mpegurl\",\r\n \".m3url\": \"audio/x-mpegurl\",\r\n \".m4a\": \"audio/mp4a-latm\",\r\n \".m4b\": \"audio/mp4a-latm\",\r\n \".m4p\": \"audio/mp4a-latm\",\r\n \".m4u\": \"video/vnd.mpegurl\",\r\n \".m4v\": \"video/x-m4v\",\r\n \".ma1\": \"audio/ma1\",\r\n \".ma2\": \"audio/ma2\",\r\n \".ma3\": \"audio/ma3\",\r\n \".ma5\": \"audio/ma5\",\r\n \".man\": \"application/x-troff-man\",\r\n \".map\": \"magnus-internal/imagemap\",\r\n \".mbd\": \"application/mbedlet\",\r\n \".mct\": \"application/x-mascot\",\r\n \".mdb\": \"application/x-msaccess\",\r\n \".mdz\": \"audio/x-mod\",\r\n \".me\": \"application/x-troff-me\",\r\n \".mel\": \"text/x-vmel\",\r\n \".mht\": \"message/rfc822\",\r\n \".mhtml\": \"message/rfc822\",\r\n \".mi\": \"application/x-mif\",\r\n \".mid\": \"audio/mid\",\r\n \".midi\": \"audio/midi\",\r\n \".mif\": \"application/x-mif\",\r\n \".mil\": \"image/x-cals\",\r\n \".mio\": \"audio/x-mio\",\r\n \".mmf\": \"application/x-skt-lbs\",\r\n \".mng\": \"video/x-mng\",\r\n \".mny\": \"application/x-msmoney\",\r\n \".moc\": \"application/x-mocha\",\r\n \".mocha\": \"application/x-mocha\",\r\n \".mod\": \"audio/x-mod\",\r\n \".mof\": \"application/x-yumekara\",\r\n \".mol\": \"chemical/x-mdl-molfile\",\r\n \".mop\": \"chemical/x-mopac-input\",\r\n \".mov\": \"video/quicktime\",\r\n \".movie\": \"video/x-sgi-movie\",\r\n \".mp2\": \"video/mpeg\",\r\n \".mp3\": \"audio/mpeg\",\r\n \".mp4\": \"video/mp4\",\r\n \".mpa\": \"video/mpeg\",\r\n \".mpc\": \"application/vnd.mpohun.certificate\",\r\n \".mpe\": \"video/mpeg\",\r\n \".mpeg\": \"video/mpeg\",\r\n \".mpg\": \"video/mpeg\",\r\n \".mpg4\": \"video/mp4\",\r\n \".mpga\": \"audio/mpeg\",\r\n \".mpn\": \"application/vnd.mophun.application\",\r\n \".mpp\": \"application/vnd.ms-project\",\r\n \".mps\": \"application/x-mapserver\",\r\n \".mpv2\": \"video/mpeg\",\r\n \".mrl\": \"text/x-mrml\",\r\n \".mrm\": \"application/x-mrm\",\r\n \".ms\": \"application/x-troff-ms\",\r\n \".msg\": \"application/vnd.ms-outlook\",\r\n \".mts\": \"application/metastream\",\r\n \".mtx\": \"application/metastream\",\r\n \".mtz\": \"application/metastream\",\r\n \".mvb\": \"application/x-msmediaview\",\r\n \".mzv\": \"application/metastream\",\r\n \".nar\": \"application/zip\",\r\n \".nbmp\": \"image/nbmp\",\r\n \".nc\": \"application/x-netcdf\",\r\n \".ndb\": \"x-lml/x-ndb\",\r\n \".ndwn\": \"application/ndwn\",\r\n \".nif\": \"application/x-nif\",\r\n \".nmz\": \"application/x-scream\",\r\n \".nokia-op-logo\": \"image/vnd.nok-oplogo-color\",\r\n \".npx\": \"application/x-netfpx\",\r\n \".nsnd\": \"audio/nsnd\",\r\n \".nva\": \"application/x-neva1\",\r\n \".nws\": \"message/rfc822\",\r\n \".oda\": \"application/oda\",\r\n \".ogg\": \"audio/ogg\",\r\n \".oom\": \"application/x-AtlasMate-Plugin\",\r\n \".p10\": \"application/pkcs10\",\r\n \".p12\": \"application/x-pkcs12\",\r\n \".p7b\": \"application/x-pkcs7-certificates\",\r\n \".p7c\": \"application/x-pkcs7-mime\",\r\n \".p7m\": \"application/x-pkcs7-mime\",\r\n \".p7r\": \"application/x-pkcs7-certreqresp\",\r\n \".p7s\": \"application/x-pkcs7-signature\",\r\n \".pac\": \"audio/x-pac\",\r\n \".pae\": \"audio/x-epac\",\r\n \".pan\": \"application/x-pan\",\r\n \".pbm\": \"image/x-portable-bitmap\",\r\n \".pcx\": \"image/x-pcx\",\r\n \".pda\": \"image/x-pda\",\r\n \".pdb\": \"chemical/x-pdb\",\r\n \".pdf\": \"application/pdf\",\r\n \".pfr\": \"application/font-tdpfr\",\r\n \".pfx\": \"application/x-pkcs12\",\r\n \".pgm\": \"image/x-portable-graymap\",\r\n \".pict\": \"image/x-pict\",\r\n \".pko\": \"application/ynd.ms-pkipko\",\r\n \".pm\": \"application/x-perl\",\r\n \".pma\": \"application/x-perfmon\",\r\n \".pmc\": \"application/x-perfmon\",\r\n \".pmd\": \"application/x-pmd\",\r\n \".pml\": \"application/x-perfmon\",\r\n \".pmr\": \"application/x-perfmon\",\r\n \".pmw\": \"application/x-perfmon\",\r\n \".png\": \"image/png\",\r\n \".pnm\": \"image/x-portable-anymap\",\r\n \".pnz\": \"image/png\",\r\n \".pot\": \"application/vnd.ms-powerpoint\",\r\n \".ppm\": \"image/x-portable-pixmap\",\r\n \".pps\": \"application/vnd.ms-powerpoint\",\r\n \".ppt\": \"application/vnd.ms-powerpoint\",\r\n \".pptx\": \"application/vnd.openxmlformats-officedocument.presentationml.presentation\",\r\n \".pqf\": \"application/x-cprplayer\",\r\n \".pqi\": \"application/cprplayer\",\r\n \".prc\": \"application/x-prc\",\r\n \".prf\": \"application/pics-rules\",\r\n \".prop\": \"text/plain\",\r\n \".proxy\": \"application/x-ns-proxy-autoconfig\",\r\n \".ps\": \"application/postscript\",\r\n \".ptlk\": \"application/listenup\",\r\n \".pub\": \"application/x-mspublisher\",\r\n \".pvx\": \"video/x-pv-pvx\",\r\n \".qcp\": \"audio/vnd.qcelp\",\r\n \".qt\": \"video/quicktime\",\r\n \".qti\": \"image/x-quicktime\",\r\n \".qtif\": \"image/x-quicktime\",\r\n \".r3t\": \"text/vnd.rn-realtext3d\",\r\n \".ra\": \"audio/x-pn-realaudio\",\r\n \".ram\": \"audio/x-pn-realaudio\",\r\n \".ras\": \"image/x-cmu-raster\",\r\n \".rc\": \"text/plain\",\r\n \".rdf\": \"application/rdf+xml\",\r\n \".rf\": \"image/vnd.rn-realflash\",\r\n \".rgb\": \"image/x-rgb\",\r\n \".rlf\": \"application/x-richlink\",\r\n \".rm\": \"audio/x-pn-realaudio\",\r\n \".rmf\": \"audio/x-rmf\",\r\n \".rmi\": \"audio/mid\",\r\n \".rmm\": \"audio/x-pn-realaudio\",\r\n \".rmvb\": \"audio/x-pn-realaudio\",\r\n \".rnx\": \"application/vnd.rn-realplayer\",\r\n \".roff\": \"application/x-troff\",\r\n \".rp\": \"image/vnd.rn-realpix\",\r\n \".rpm\": \"audio/x-pn-realaudio-plugin\",\r\n \".rt\": \"text/vnd.rn-realtext\",\r\n \".rte\": \"x-lml/x-gps\",\r\n \".rtf\": \"application/rtf\",\r\n \".rtg\": \"application/metastream\",\r\n \".rtx\": \"text/richtext\",\r\n \".rv\": \"video/vnd.rn-realvideo\",\r\n \".rwc\": \"application/x-rogerwilco\",\r\n \".s3m\": \"audio/x-mod\",\r\n \".s3z\": \"audio/x-mod\",\r\n \".sca\": \"application/x-supercard\",\r\n \".scd\": \"application/x-msschedule\",\r\n \".sct\": \"text/scriptlet\",\r\n \".sdf\": \"application/e-score\",\r\n \".sea\": \"application/x-stuffit\",\r\n \".setpay\": \"application/set-payment-initiation\",\r\n \".setreg\": \"application/set-registration-initiation\",\r\n \".sgm\": \"text/x-sgml\",\r\n \".sgml\": \"text/x-sgml\",\r\n \".sh\": \"application/x-sh\",\r\n \".shar\": \"application/x-shar\",\r\n \".shtml\": \"magnus-internal/parsed-html\",\r\n \".shw\": \"application/presentations\",\r\n \".si6\": \"image/si6\",\r\n \".si7\": \"image/vnd.stiwap.sis\",\r\n \".si9\": \"image/vnd.lgtwap.sis\",\r\n \".sis\": \"application/vnd.symbian.install\",\r\n \".sit\": \"application/x-stuffit\",\r\n \".skd\": \"application/x-Koan\",\r\n \".skm\": \"application/x-Koan\",\r\n \".skp\": \"application/x-Koan\",\r\n \".skt\": \"application/x-Koan\",\r\n \".slc\": \"application/x-salsa\",\r\n \".smd\": \"audio/x-smd\",\r\n \".smi\": \"application/smil\",\r\n \".smil\": \"application/smil\",\r\n \".smp\": \"application/studiom\",\r\n \".smz\": \"audio/x-smd\",\r\n \".snd\": \"audio/basic\",\r\n \".spc\": \"application/x-pkcs7-certificates\",\r\n \".spl\": \"application/futuresplash\",\r\n \".spr\": \"application/x-sprite\",\r\n \".sprite\": \"application/x-sprite\",\r\n \".sdp\": \"application/sdp\",\r\n \".spt\": \"application/x-spt\",\r\n \".src\": \"application/x-wais-source\",\r\n \".sst\": \"application/vnd.ms-pkicertstore\",\r\n \".stk\": \"application/hyperstudio\",\r\n \".stl\": \"application/vnd.ms-pkistl\",\r\n \".stm\": \"text/html\",\r\n \".svg\": \"image/svg+xml\",\r\n \".sv4cpio\": \"application/x-sv4cpio\",\r\n \".sv4crc\": \"application/x-sv4crc\",\r\n \".svf\": \"image/vnd\",\r\n \".svh\": \"image/svh\",\r\n \".svr\": \"x-world/x-svr\",\r\n \".swf\": \"application/x-shockwave-flash\",\r\n \".swfl\": \"application/x-shockwave-flash\",\r\n \".t\": \"application/x-troff\",\r\n \".talk\": \"text/x-speech\",\r\n \".tar\": \"application/x-tar\",\r\n \".taz\": \"application/x-tar\",\r\n \".tbp\": \"application/x-timbuktu\",\r\n \".tbt\": \"application/x-timbuktu\",\r\n \".tcl\": \"application/x-tcl\",\r\n \".tex\": \"application/x-tex\",\r\n \".texi\": \"application/x-texinfo\",\r\n \".texinfo\": \"application/x-texinfo\",\r\n \".tgz\": \"application/x-compressed\",\r\n \".thm\": \"application/vnd.eri.thm\",\r\n \".tif\": \"image/tiff\",\r\n \".tiff\": \"image/tiff\",\r\n \".tki\": \"application/x-tkined\",\r\n \".tkined\": \"application/x-tkined\",\r\n \".toc\": \"application/toc\",\r\n \".toy\": \"image/toy\",\r\n \".tr\": \"application/x-troff\",\r\n \".trk\": \"x-lml/x-gps\",\r\n \".trm\": \"application/x-msterminal\",\r\n \".tsi\": \"audio/tsplayer\",\r\n \".tsp\": \"application/dsptype\",\r\n \".tsv\": \"text/tab-separated-values\",\r\n \".ttz\": \"application/t-time\",\r\n \".txt\": \"text/plain\",\r\n \".uls\": \"text/iuls\",\r\n \".ult\": \"audio/x-mod\",\r\n \".ustar\": \"application/x-ustar\",\r\n \".uu\": \"application/x-uuencode\",\r\n \".uue\": \"application/x-uuencode\",\r\n \".vcd\": \"application/x-cdlink\",\r\n \".vcf\": \"text/x-vcard\",\r\n \".vdo\": \"video/vdo\",\r\n \".vib\": \"audio/vib\",\r\n \".viv\": \"video/vivo\",\r\n \".vivo\": \"video/vivo\",\r\n \".vmd\": \"application/vocaltec-media-desc\",\r\n \".vmf\": \"application/vocaltec-media-file\",\r\n \".vmi\": \"application/x-dreamcast-vms-info\",\r\n \".vms\": \"application/x-dreamcast-vms\",\r\n \".vox\": \"audio/voxware\",\r\n \".vqe\": \"audio/x-twinvq-plugin\",\r\n \".vqf\": \"audio/x-twinvq\",\r\n \".vql\": \"audio/x-twinvq\",\r\n \".vre\": \"x-world/x-vream\",\r\n \".vrml\": \"x-world/x-vrml\",\r\n \".vrt\": \"x-world/x-vrt\",\r\n \".vrw\": \"x-world/x-vream\",\r\n \".vts\": \"workbook/formulaone\",\r\n \".wav\": \"audio/x-wav\",\r\n \".wax\": \"audio/x-ms-wax\",\r\n \".wbmp\": \"image/vnd.wap.wbmp\",\r\n \".wcm\": \"application/vnd.ms-works\",\r\n \".wdb\": \"application/vnd.ms-works\",\r\n \".web\": \"application/vnd.xara\",\r\n \".webm\": \"video/webm\",\r\n \".wi\": \"image/wavelet\",\r\n \".wis\": \"application/x-InstallShield\",\r\n \".wks\": \"application/vnd.ms-works\",\r\n \".wm\": \"video/x-ms-wm\",\r\n \".wma\": \"audio/x-ms-wma\",\r\n \".wmd\": \"application/x-ms-wmd\",\r\n \".wmf\": \"application/x-msmetafile\",\r\n \".wml\": \"text/vnd.wap.wml\",\r\n \".wmlc\": \"application/vnd.wap.wmlc\",\r\n \".wmls\": \"text/vnd.wap.wmlscript\",\r\n \".wmlsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wmlscript\": \"text/vnd.wap.wmlscript\",\r\n \".wmv\": \"audio/x-ms-wmv\",\r\n \".wmx\": \"video/x-ms-wmx\",\r\n \".wmz\": \"application/x-ms-wmz\",\r\n \".wpng\": \"image/x-up-wpng\",\r\n \".wpt\": \"x-lml/x-gps\",\r\n \".wri\": \"application/x-mswrite\",\r\n \".wrl\": \"x-world/x-vrml\",\r\n \".wrz\": \"x-world/x-vrml\",\r\n \".ws\": \"text/vnd.wap.wmlscript\",\r\n \".wsc\": \"application/vnd.wap.wmlscriptc\",\r\n \".wv\": \"video/wavelet\",\r\n \".wvx\": \"video/x-ms-wvx\",\r\n \".wxl\": \"application/x-wxl\",\r\n \".x-gzip\": \"application/x-gzip\",\r\n \".xaf\": \"x-world/x-vrml\",\r\n \".xar\": \"application/vnd.xara\",\r\n \".xbm\": \"image/x-xbitmap\",\r\n \".xdm\": \"application/x-xdma\",\r\n \".xdma\": \"application/x-xdma\",\r\n \".xdw\": \"application/vnd.fujixerox.docuworks\",\r\n \".xht\": \"application/xhtml+xml\",\r\n \".xhtm\": \"application/xhtml+xml\",\r\n \".xhtml\": \"application/xhtml+xml\",\r\n \".xla\": \"application/vnd.ms-excel\",\r\n \".xlc\": \"application/vnd.ms-excel\",\r\n \".xll\": \"application/x-excel\",\r\n \".xlm\": \"application/vnd.ms-excel\",\r\n \".xls\": \"application/vnd.ms-excel\",\r\n \".xlsx\": \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n \".xlt\": \"application/vnd.ms-excel\",\r\n \".xlw\": \"application/vnd.ms-excel\",\r\n \".xm\": \"audio/x-mod\",\r\n \".xml\": \"application/xml\",\r\n \".xmz\": \"audio/x-mod\",\r\n \".xof\": \"x-world/x-vrml\",\r\n \".xpi\": \"application/x-xpinstall\",\r\n \".xpm\": \"image/x-xpixmap\",\r\n \".xsit\": \"text/xml\",\r\n \".xsl\": \"text/xml\",\r\n \".xul\": \"text/xul\",\r\n \".xwd\": \"image/x-xwindowdump\",\r\n \".xyz\": \"chemical/x-pdb\",\r\n \".yz1\": \"application/x-yz1\",\r\n \".z\": \"application/x-compress\",\r\n \".zac\": \"application/x-zaurus-zac\",\r\n \".json\": \"application/json\",\r\n \".vsd\": \"application/vnd.visio\",\r\n \".et\": \"application/kset\",\r\n \".wps\": \"application/kswps\",\r\n \".dps\": \"application/ksdps\"\r\n}\r\n\r\nexport default function(a) {\r\n let b = strFrom(a, '.', true) || a\r\n return mimes['.' + b]\r\n}\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Menu from './Menu.vue'\r\n import mimeType from '../util/mime.js'\r\n\r\n const suffixHooks = {\r\n '0': 'js.css.pdf.psd.ai.txt.eps.txt',\r\n xls: 'xls.xlsx',\r\n doc: 'doc.docx.rtf',\r\n ppt: 'ppt.pptx',\r\n htm: 'htm.html',\r\n zip: 'rar.zip.tar.jar.z.7z.ace.lzh.arj.gzip.bz2.cab.uue',\r\n fla: 'fla.swf',\r\n fon: 'eot.otf.fon.font.ttf.ttc.woff.woff2',\r\n iso: 'iso.nrg.mds.mdf.bin.cue.img.fcd.lcd.dmg',\r\n vid: 'avi.asf.wmv.avs.flv.mkv.mov.3gp.mp4.webm.mpa.mpe.mpg.mpeg.dat.dsm.ogm.vob.rm.rmvb.ts.tp.ifo.nsv.m4u.m4v.asx.asr.movie.fvi.pvx.rv.vdo.viv.vivo.wm.wmx.wv.wvx.mpv2.mpg4',\r\n aud: 'aif.aifc.aiff.als.awb.mp3.aac.au.wav.wma.cda.flac.m4a.mid.mka.mp2.mpc.ape.ofr.ogg.ra.wv.tta.ac3.dts.wv.shn.vqf.spc.nsf.adx.psf.minipsf.psf2.minipsf2.rsn.zst',\r\n img: 'jpg.jpeg.gif.png.bmp.tif.tiff.ico'\r\n }\r\n \r\n const suffix = {}\r\n \r\n for (let k in suffixHooks) {\r\n suffixHooks[k].split('.').forEach(v => {\r\n suffix[v] = k == '0' ? v : k\r\n })\r\n }\r\n \r\n const fileTypesAlias = {\r\n video: suffixHooks.vid,\r\n audio: suffixHooks.aud,\r\n image: suffixHooks.img\r\n }\r\n \r\n for (let k in fileTypesAlias) {\r\n fileTypesAlias[k] = fileTypesAlias[k].split('.').map(v => `*.${v};`).join('')\r\n }\r\n\r\n const getSuffix = function(url) {\r\n let a = $.strFrom(url || '', '.', true).toLowerCase()\r\n return suffix[a] || 'file'\r\n }\r\n\r\n // 把 \"1MB\" 转为字节\r\n const fileByte = function(val) {\r\n let unit\r\n if (val != null && !isNaN(val))\r\n val += 'K'\r\n val = $.number(val.replace(/[a-z]+$/i, function($0) {\r\n unit = $0.charAt(0).toUpperCase();\r\n return ''\r\n }))\r\n return val * (unit === 'K' ? 1024 : unit === 'M' ? 1024 * 1024 : unit === 'G' ? 1024 * 1024 * 1024 : unit ===\r\n 'T' ? 1024 * 1024 * 1024 * 1024 : 1)\r\n }\r\n\r\n export default {\r\n name: 'w-fileupload',\r\n mixins: [FormBase],\r\n props: ['uploadSrc', 'thumbnailSrc', 'downloadSrc', 'uploadLimit', 'sizeLimit', 'maxFileSize', 'minFileSize',\r\n 'fileTypes', 'filter', 'success', 'error', 'itemWidth', 'align', 'vertical', 'gap', 'checkFile'\r\n ],\r\n data() {\r\n return {\r\n list: [],\r\n emiting: false,\r\n }\r\n },\r\n created() {\r\n this.$watch(() => this.x.modelValue, v => {\r\n if (this.emiting) return this.emiting = false\r\n if (v && typeof v === 'string') v = JSON.parse(v)\r\n this.list = Array.isArray(v) ? v.map(value => {return {value}}) : v ? [{value: v}] : []\r\n }, {immediate: true})\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n gap: 10,\r\n vertical: true,\r\n }\r\n },\r\n val(v) {\r\n if (arguments.length == 0) {\r\n let r = []\r\n this.list.forEach(item => item.value && r.push(item.value))\r\n return r\r\n }\r\n this.x.modelValue = v\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n getInputValue(v) {\r\n return v.length == 0 ? '' : JSON.stringify(v)\r\n },\r\n getFileTypes() {\r\n let t = this.x.fileTypes\r\n if (fileTypesAlias[t]) {\r\n t = fileTypesAlias[t]\r\n }\r\n return t && t !== '*.*' ? t.replace(/\\*/g, '').replace(/;/g, ',').toLowerCase() : ''\r\n },\r\n getAccept() {\r\n let r = []\r\n let t = this.getFileTypes()\r\n if (!t) return\r\n let n = []\r\n t.toLowerCase().split(',').forEach(b => {\r\n b && n.push(b)\r\n })\r\n n.forEach(b => {\r\n b && r.push(mimeType(b) || b)\r\n })\r\n return r.join(',')\r\n },\r\n isImage(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'img'\r\n },\r\n isVideo(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'vid'\r\n },\r\n isAudio(item) {\r\n let s = getSuffix(item.value ? item.value.name : item.file.name)\r\n return s == 'aud'\r\n },\r\n fileSelected(e) {\r\n if (this.x.uploadLimit > 1 && e.target.files.length + this.list.length > this.x.uploadLimit) {\r\n e.target.value = ''\r\n return $.alert($.loc.ps($.loc.form.upload_limit, this.x.uploadLimit))\r\n }\r\n let xfs = this.x.maxFileSize && fileByte(this.x.maxFileSize)\r\n let nfs = this.x.minFileSize && fileByte(this.x.minFileSize)\r\n let ft = this.getFileTypes()\r\n let cf = this.x.checkFile\r\n let xfs_names\r\n let nfs_names\r\n let ft_names\r\n let cf_errors\r\n let fileList = cf && this.list.filter(item => item.file).map(item => item.file)\r\n let valueList = cf && this.list.filter(item => item.value).map(item => item.value)\r\n $.lodash.each(e.target.files, file => {\r\n let sfx = '.' + $.strFrom(file.name, '.', true).toLowerCase()\r\n if (xfs && file.size > xfs) {\r\n (xfs_names || (xfs_names = [])).push(file.name)\r\n } else if (nfs && file.size < nfs) {\r\n (nfs_names || (nfs_names = [])).push(file.name)\r\n } else if (ft && !$.idsAny(ft, sfx, ',')) {\r\n (ft_names || (ft_names = [])).push(file.name)\r\n } else {\r\n let err = cf && cf(file, e.target.files, fileList, valueList)\r\n if (err) {\r\n (cf_errors || (cf_errors = [])).push(err)\r\n } else {\r\n this.list.push({file})\r\n }\r\n }\r\n })\r\n if (xfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_maxfilesize, xfs_names.join('<br>'), this.x.maxFileSize))\r\n } else if (nfs_names) {\r\n $.alert($.loc.ps($.loc.form.upload_minfilesize, nfs_names.join('<br>'), this.x.minFileSize))\r\n } else if (ft_names) {\r\n $.alert($.loc.ps($.loc.form.upload_invalid_file_type, ft_names.join('<br>'), ft))\r\n } else if (cf_errors) {\r\n $.alert(cf_errors.join('<br>'))\r\n }\r\n e.target.value = '' // 获取文件后要设value为空,否则下一次选择同一个文件不会触发onchange\r\n this.nextUpload()\r\n },\r\n upload(item) {\r\n if (this.x.uploadSrc && !item.loading) {\r\n let src = $.urlFormat(this.x.uploadSrc, this.x.data, this.x)\r\n let fd = new FormData()\r\n fd.append('Filedata', item.file)\r\n item.loading = true\r\n item.source = $.http.CancelToken.source()\r\n $.http.post(src, fd, {\r\n onUploadProgress: e => item.progress = Math.floor(e.loaded / e.total * 100),\r\n cancelToken: item.source.token\r\n }).then(res => {\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n let d = this.x.filter ? this.x.filter(res, this) : res.data\r\n if (!d) {\r\n item.error = {\r\n message: $.loc.form.upload_no_data\r\n }\r\n } else if (d.error) {\r\n item.error = d.error\r\n } else if (!d.id) {\r\n item.error = {\r\n message: $.loc.ps($.loc.form.upload_invalid_data, JSON.stringify(d))\r\n }\r\n } else {\r\n item.value = d\r\n this.x.success && this.x.success(item.value, this, res)\r\n }\r\n if (item.error && item.error.message) $.alert(item.error.message)\r\n this.nextUpload()\r\n }).catch(error => {\r\n item.error = error\r\n item.loading = false\r\n item.loaded = true\r\n item.source = null\r\n this.nextUpload()\r\n if (error.response && error.response.status) $.alert(error.response.status + ': ' + error)\r\n })\r\n } else if (!this.x.uploadSrc) {\r\n let message = '请给上传组件配置uploadSrc'\r\n item.error = {message}\r\n console.error(message)\r\n this.nextUpload()\r\n }\r\n },\r\n nextUpload() {\r\n for (let item of this.list) {\r\n if (item.loading) return\r\n if (item.error) continue\r\n if (item.file && !item.loaded) {\r\n return this.upload(item)\r\n }\r\n }\r\n this.emiting = true\r\n let v = this.val()\r\n this.$emit('update:modelValue', v)\r\n this.trigger('change', v)\r\n },\r\n clickItem(e, item) {\r\n if (!item.value) return\r\n if (this.getOn('click:item')) {\r\n e.runType = 'click:item'\r\n this.trigger(e, item.value, this.val())\r\n } else if (this.x.downloadSrc) {\r\n $.download($.urlServer(this.x.downloadSrc, item.value, this.x.data))\r\n }\r\n },\r\n remove(item) {\r\n item.source && item.source.cancel()\r\n let i = this.list.findIndex(v => v == item)\r\n this.list.splice(i, 1)\r\n this.nextUpload()\r\n },\r\n formText() {\r\n let v = this.val()\r\n return v.map(m => m.name).join(', ')\r\n },\r\n chooseFile() {\r\n this.$refs.file.click()\r\n },\r\n html_list() {\r\n return this.list.map(item => {\r\n\t\t\t\t\tlet value = item.value\r\n let name = value ? value.name : item.file.name\r\n\t\t\t\t\tlet button = [h('div', {\r\n class: 'w-fileupload-value-close f-i f-i-trash',\r\n title: $.loc.remove,\r\n onclick: e => this.remove(item)\r\n })]\r\n\t\t\t\t\tif (value && this.$slots.menu) {\r\n\t\t\t\t\t\tbutton.push(h(Menu, null, {\r\n\t\t\t\t\t\t\ttarget: () => h('div', {\r\n\t\t\t\t\t\t\t\tclass: 'w-fileupload-value-menu f-i f-i-ellipsis',\r\n\t\t\t\t\t\t\t\ttitle: $.loc.more,\r\n\t\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\tdefault: () => this.$slots.menu({item: value})\r\n\t\t\t\t\t\t}))\r\n\t\t\t\t\t}\r\n let key = value ? value.id : item.key\r\n if (!key) {item.key = key = $.uid()}\r\n return h('div', {\r\n key,\r\n class: ['w-fileupload-value', {\r\n 'z-loading': !item.error && (item.loading || (item.file && !item.loaded)),\r\n 'z-err': item.error\r\n }],\r\n style: {\r\n '--w-upload-progress': item.file ? `${item.progress || 0}%` : '',\r\n width: $.unitSize(this.x.itemWidth)\r\n },\r\n title: item.error ? item.error.message : name,\r\n }, [\r\n h('i', {\r\n class: ['w-fileupload-value-icon f-i', 'f-i-file-' + getSuffix(name)],\r\n\t\t\t\t\t\t\tonclick: e => this.clickItem(e, item)\r\n }),\r\n item.error && h('div', {\r\n class: 'w-fileupload-value-error'\r\n }, $.loc.form.upload_error),\r\n h('div', {\r\n class: 'w-fileupload-value-text f-line-1',\r\n\t\t\t\t\t\t\tonclick: e => this.clickItem(e, item)\r\n }, name),\r\n\t\t\t\t\t\tbutton\r\n ])\r\n })\r\n },\r\n html_input_form() {\r\n return [\r\n this.html_input_hidden(),\r\n h('input', {\r\n type: 'file',\r\n ref: 'file',\r\n multiple: this.x.uploadLimit != 1,\r\n accept: this.getAccept(),\r\n onchange: this.fileSelected,\r\n class: 'f-hide'\r\n })\r\n ]\r\n },\r\n html_input_button() {\r\n return h('div', {}, [\r\n h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr',\r\n gap: 10,\r\n }, {\r\n default: () => [\r\n this.$slots.button ? this.$slots.button(this) :\r\n h(Button, {\r\n text: '选择文件',\r\n icon: '.f-i .f-i-upload',\r\n class: 'w-fileupload-button',\r\n onclick: this.chooseFile\r\n }),\r\n this.slot('right')\r\n ]\r\n }),\r\n this.slot('down')\r\n ])\r\n },\r\n html_input_list() {\r\n return this.list.length ? h('div', {\r\n ref: 'list',\r\n class: ['w-fileupload-list', {'f-clearfix': this.x.vertical}]\r\n }, this.html_list()) : !this.isNormal ? h('div', {\r\n class: 'w-fileupload-nofile f-flex-align'\r\n }, $.loc.form.no_files) : null\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(this.canUpload && this.html_input_button(), this.html_input_list())\r\n },\r\n html_main() {\r\n return h('div', {class: 'w-formbase-main'}, this.html_form())\r\n },\r\n html_slots() {\r\n return [this.html_label(), this.html_main()]\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n for (let item of this.list) {\r\n if (item.loading) {\r\n return this.formErr({type: 'upload_loading'})\r\n }\r\n if (item.error) {\r\n return this.formErr({type: 'upload_invalid_file'})\r\n }\r\n }\r\n }\r\n }\r\n },\r\n input_value() {\r\n return this.getInputValue(this.val())\r\n },\r\n errorTipTarget() {\r\n return this.$refs.uploadbbr || this\r\n },\r\n canUpload() {\r\n if (!this.isNormal) return false\r\n if (this.x.uploadLimit > 0 && this.list.length >= this.x.uploadLimit) return false\r\n return true\r\n },\r\n\t\t\tdir() {\r\n\t\t\t return 'v'\r\n\t\t\t},\r\n html_class() {\r\n return {'z-vertical': this.x.vertical, 'z-horizontal': !this.x.vertical, 'z-compat': $.br.compat.gap}\r\n },\r\n html_style() {\r\n return {\r\n '--w-label-min-height': '32px',\r\n }\r\n },\r\n html_on() {\r\n return {\r\n onclick: () => this.warn(false)\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-fileupload {\r\n align-items: flex-start;\r\n \r\n &>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n \r\n &>.w-formbase-main>.w-input {\r\n flex-direction: column;\r\n align-items: flex-start;\r\n --w-compat-gap: 10px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n input[type=\"file\"] {\r\n display: none;\r\n }\r\n \r\n .w-fileupload-list {\r\n display: flex;\r\n flex-wrap: wrap;\r\n width: 100%;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n &.z-vertical {\r\n .w-fileupload-list {\r\n display: block;\r\n flex-direction: column;\r\n line-height: 0;\r\n }\r\n \r\n .w-fileupload-value {\r\n line-height: 1.5;\r\n \r\n + .w-fileupload-value {\r\n margin-top: 10px;\r\n }\r\n }\r\n }\r\n \r\n &.z-horizontal {\r\n &.z-compat {\r\n .w-fileupload-value {\r\n margin-right: 10px;\r\n margin-bottom: 10px;\r\n }\r\n }\r\n }\r\n }\r\n\r\n .w-fileupload-button {\r\n background: #f8f8f8;\r\n }\r\n\r\n .w-fileupload-value {\r\n display: inline-flex;\r\n float: left;\r\n clear: both;\r\n align-items: center;\r\n max-width: 100%;\r\n height: 32px;\r\n line-height: 1.5;\r\n border: 1px solid #ddd;\r\n background: #f8f8f8;\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n cursor: pointer;\r\n }\r\n\r\n .w-fileupload-value.z-loading {\r\n background-image: linear-gradient(to right, #e5f3ff var(--w-upload-progress), #fff var(--w-upload-progress));\r\n background-size: calc(100% - 30px) 100%;\r\n background-position: 30px 0;\r\n }\r\n\r\n .w-fileupload-value.z-err {\r\n border-color: #f00;\r\n }\r\n\r\n .w-fileupload-value-icon {\r\n width: 30px;\r\n height: 30px;\r\n margin-right: 10px;\r\n flex-shrink: 0;\r\n }\r\n\r\n .w-fileupload-value-error {\r\n margin-right: 10px;\r\n color: #f00;\r\n }\r\n\r\n .w-fileupload-value-text {\r\n flex: 1;\r\n margin-right: 15px;\r\n max-width: 100%;\r\n }\r\n\r\n .w-fileupload-value-text:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n .w-fileupload.z-ds .w-fileupload-value-close {\r\n display: none;\r\n }\r\n\r\n .w-fileupload-value-close,\r\n .w-fileupload-value-menu {\r\n padding-right: 8px;\r\n color: #999;\r\n }\r\n\r\n .w-fileupload-value-close:hover,\r\n .w-fileupload-value-menu:hover {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-fileupload-nofile {\r\n color: #999;\r\n height: 32px;\r\n }\r\n\r\n .w-fileupload.z-err .w-fileupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\r\n","<template>\r\n <w-img :class=\"['w-mediaupload-value', {'z-loading': item.loading, 'z-canplay': canPlay, 'z-err': item.error}]\" ref=\"thumbnail\" :src=\"src\" :data-url=\"dataURL\"\r\n :width=\"upload.x.thumbnailWidth\" :img-width=\"upload.x.thumbnailWidth-2\" :img-height=\"upload.x.thumbnailHeight-2\" :tip=\"tip\" @click=\"click\">\r\n <template v-if=\"upload.x.showFileName\" #default>\r\n <div class=\"f-line-1\">{{name}}</div>\r\n </template>\r\n <template #cover>\r\n <canvas v-if=\"item.loading\" ref=\"loading\" width=\"34\" height=\"34\" class=\"w-mediaupload-progress-loading f-abs-center\"></canvas>\r\n <i v-else-if=\"canPlay\" class=\"w-mediaupload-cover-play f-abs-center f-flex-center f-i f-i-play\"></i>\r\n <div class=\"w-mediaupload-value-oper\">\r\n <i v-if=\"upload.isNormal\" class=\"w-mediaupload-value-close f-flex-center f-i f-i-trash\" :title=\"titleRemove\" @click=\"remove\"></i>\r\n <w-menu v-if=\"item.value && upload.$slots.menu\">\r\n <component v-for=\"menu in menus\" :is=\"menu\"></component>\r\n <template #target>\r\n <i class=\"w-mediaupload-value-menu f-flex-center f-i f-i-ellipsis\" :title=\"titleMore\"></i>\r\n </template>\r\n </w-menu>\r\n </div>\r\n </template>\r\n </w-img>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['item'],\r\n inject: ['provideUpload'],\r\n data() {\r\n return {\r\n dataURL: null,\r\n }\r\n },\r\n methods: {\r\n click(e) {\r\n this.provideUpload.clickItem(e, this.item, this.provideUpload)\r\n },\r\n createImageThumbnail() {\r\n let r = new FileReader()\r\n r.onload = (e) => {\r\n if (this.item.loaded) return\r\n this.dataURL = e.target.result\r\n }\r\n r.readAsDataURL(this.item.file)\r\n },\r\n createVideoThumbnail() {\r\n let video = document.createElement('video')\r\n video.addEventListener('loadeddata', () => {\r\n setTimeout(() => {\r\n if (this.item.loaded) return\r\n let cvs = document.createElement('canvas')\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = video.videoWidth\r\n cvs.height = video.videoHeight\r\n ctx.drawImage(video, 0, 0)\r\n this.dataURL = cvs.toDataURL('image/png') \r\n video.pause()\r\n $.q(video).remove()\r\n }, 150)\r\n });\r\n video.src = URL.createObjectURL(this.item.file)\r\n video.muted = true\r\n video.play()\r\n },\r\n setProgress(a) {\r\n let cvs = this.$refs.loading\r\n if (!this.item.loading || !cvs) return\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = cvs.width\r\n ctx.beginPath()\r\n ctx.translate(17, 17)\r\n ctx.moveTo(0, 0)\r\n ctx.arc(0, 0, 15, -Math.PI * .5, Math.PI * ((2 * a / 100) - .5))\r\n ctx.closePath()\r\n ctx.fillStyle = 'rgba(255,255,255,.7)'\r\n ctx.fill()\r\n ctx.beginPath()\r\n ctx.arc(0, 0, 16, 0, Math.PI * 2)\r\n ctx.strokeStyle = '#fff'\r\n ctx.stroke()\r\n },\r\n remove(e) {\r\n this.upload.remove(this.item)\r\n e.stopPropagation()\r\n }, \r\n },\r\n computed: {\r\n upload() {\r\n return this.provideUpload\r\n },\r\n img() {\r\n return this.$refs.thumbnail.$refs.img\r\n },\r\n src() {\r\n return this.item.value ? $.urlServer(this.item.value.thumbnail || this.upload.x.thumbnailSrc, this.item.value,\r\n this.upload.x.data) : ''\r\n },\r\n name() {\r\n return this.item.value ? this.item.value.name : this.item.file.name\r\n },\r\n tip() {\r\n return this.item.error ? this.item.error.message : this.name\r\n },\r\n titleRemove() {\r\n return $.loc.remove\r\n },\r\n titleMore() {\r\n return $.loc.more\r\n },\r\n canPlay() {\r\n return this.item.value && (this.upload.isVideo(this.item) || this.upload.isAudio(this.item))\r\n },\r\n menus() {\r\n return this.upload.$slots.menu({item: this.item.value})\r\n }\r\n },\r\n mounted() {\r\n if (!this.item.loaded && this.item.file) {\r\n this.upload.isVideo(this.item) ? this.createVideoThumbnail() : this.upload.isImage(this.item) ? this.createImageThumbnail() : null\r\n this.$watch(() => this.item.progress, v => this.setProgress(v), {\r\n immediate: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload-value.z-loading .w-img-cover {\r\n background: rgba(0, 0, 0, .25);\r\n }\r\n\r\n .w-mediaupload-progress {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload-progress-img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: right top;\r\n }\r\n</style>\r\n","<template>\r\n <w-img :class=\"['w-mediaupload-value', {'z-loading': item.loading, 'z-canplay': canPlay, 'z-err': item.error}]\" ref=\"thumbnail\" :src=\"src\" :data-url=\"dataURL\"\r\n :width=\"upload.x.thumbnailWidth\" :img-width=\"upload.x.thumbnailWidth-2\" :img-height=\"upload.x.thumbnailHeight-2\" :tip=\"tip\" @click=\"click\">\r\n <template v-if=\"upload.x.showFileName\" #default>\r\n <div class=\"f-line-1\">{{name}}</div>\r\n </template>\r\n <template #cover>\r\n <canvas v-if=\"item.loading\" ref=\"loading\" width=\"34\" height=\"34\" class=\"w-mediaupload-progress-loading f-abs-center\"></canvas>\r\n <i v-else-if=\"canPlay\" class=\"w-mediaupload-cover-play f-abs-center f-flex-center f-i f-i-play\"></i>\r\n <div class=\"w-mediaupload-value-oper\">\r\n <i v-if=\"upload.isNormal\" class=\"w-mediaupload-value-close f-flex-center f-i f-i-trash\" :title=\"titleRemove\" @click=\"remove\"></i>\r\n <w-menu v-if=\"item.value && upload.$slots.menu\">\r\n <component v-for=\"menu in menus\" :is=\"menu\"></component>\r\n <template #target>\r\n <i class=\"w-mediaupload-value-menu f-flex-center f-i f-i-ellipsis\" :title=\"titleMore\"></i>\r\n </template>\r\n </w-menu>\r\n </div>\r\n </template>\r\n </w-img>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n props: ['item'],\r\n inject: ['provideUpload'],\r\n data() {\r\n return {\r\n dataURL: null,\r\n }\r\n },\r\n methods: {\r\n click(e) {\r\n this.provideUpload.clickItem(e, this.item, this.provideUpload)\r\n },\r\n createImageThumbnail() {\r\n let r = new FileReader()\r\n r.onload = (e) => {\r\n if (this.item.loaded) return\r\n this.dataURL = e.target.result\r\n }\r\n r.readAsDataURL(this.item.file)\r\n },\r\n createVideoThumbnail() {\r\n let video = document.createElement('video')\r\n video.addEventListener('loadeddata', () => {\r\n setTimeout(() => {\r\n if (this.item.loaded) return\r\n let cvs = document.createElement('canvas')\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = video.videoWidth\r\n cvs.height = video.videoHeight\r\n ctx.drawImage(video, 0, 0)\r\n this.dataURL = cvs.toDataURL('image/png') \r\n video.pause()\r\n $.q(video).remove()\r\n }, 150)\r\n });\r\n video.src = URL.createObjectURL(this.item.file)\r\n video.muted = true\r\n video.play()\r\n },\r\n setProgress(a) {\r\n let cvs = this.$refs.loading\r\n if (!this.item.loading || !cvs) return\r\n let ctx = cvs.getContext('2d')\r\n cvs.width = cvs.width\r\n ctx.beginPath()\r\n ctx.translate(17, 17)\r\n ctx.moveTo(0, 0)\r\n ctx.arc(0, 0, 15, -Math.PI * .5, Math.PI * ((2 * a / 100) - .5))\r\n ctx.closePath()\r\n ctx.fillStyle = 'rgba(255,255,255,.7)'\r\n ctx.fill()\r\n ctx.beginPath()\r\n ctx.arc(0, 0, 16, 0, Math.PI * 2)\r\n ctx.strokeStyle = '#fff'\r\n ctx.stroke()\r\n },\r\n remove(e) {\r\n this.upload.remove(this.item)\r\n e.stopPropagation()\r\n }, \r\n },\r\n computed: {\r\n upload() {\r\n return this.provideUpload\r\n },\r\n img() {\r\n return this.$refs.thumbnail.$refs.img\r\n },\r\n src() {\r\n return this.item.value ? $.urlServer(this.item.value.thumbnail || this.upload.x.thumbnailSrc, this.item.value,\r\n this.upload.x.data) : ''\r\n },\r\n name() {\r\n return this.item.value ? this.item.value.name : this.item.file.name\r\n },\r\n tip() {\r\n return this.item.error ? this.item.error.message : this.name\r\n },\r\n titleRemove() {\r\n return $.loc.remove\r\n },\r\n titleMore() {\r\n return $.loc.more\r\n },\r\n canPlay() {\r\n return this.item.value && (this.upload.isVideo(this.item) || this.upload.isAudio(this.item))\r\n },\r\n menus() {\r\n return this.upload.$slots.menu({item: this.item.value})\r\n }\r\n },\r\n mounted() {\r\n if (!this.item.loaded && this.item.file) {\r\n this.upload.isVideo(this.item) ? this.createVideoThumbnail() : this.upload.isImage(this.item) ? this.createImageThumbnail() : null\r\n this.$watch(() => this.item.progress, v => this.setProgress(v), {\r\n immediate: true\r\n })\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-mediaupload-value.z-loading .w-img-cover {\r\n background: rgba(0, 0, 0, .25);\r\n }\r\n\r\n .w-mediaupload-progress {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-mediaupload-progress-img {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: right top;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FileUpload from './FileUpload.vue'\r\n import MediaUploadItem from './MediaUploadItem.vue'\r\n import Horizontal from './Horizontal.vue'\r\n import ButtonBar from './ButtonBar.vue'\r\n import Button from './Button.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-mediaupload',\r\n mixins: [FileUpload],\r\n props: ['thumbnailWidth', 'thumbnailHeight', 'showFileName'],\r\n provide() {\r\n return {\r\n provideUpload: this\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'video',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n gap: 10,\r\n }\r\n },\r\n html_list() {\r\n return this.list.map((item, index) => {\r\n let key = item.value ? item.value.id : item.key\r\n if (!key) {item.key = key = $.uid()}\r\n return h(MediaUploadItem, {item, index, key})\r\n })\r\n },\r\n html_input_button() {\r\n return h('div', {}, [\r\n h(ButtonBar, {\r\n ref: 'uploadbbr',\r\n class: 'w-fileupload-bbr'\r\n }, {\r\n default: () => [\r\n this.$slots.button ? this.$slots.button(this) : h(Button, {\r\n ref: 'uploadbutton',\r\n title: $.loc.form.choose_image,\r\n icon: '.f-i .f-i-plus',\r\n class: 'w-mediaupload-button',\r\n style: {\r\n width: $.unitSize(this.x.thumbnailWidth),\r\n height: $.unitSize(this.x.thumbnailHeight),\r\n },\r\n onclick: this.chooseFile\r\n }),\r\n this.slot('right')\r\n ]\r\n }),\r\n this.slot('down')\r\n ])\r\n },\r\n html_input() {\r\n return this.html_input_form().concat(h(Horizontal, {\r\n width: '*',\r\n class: 'w-mediaupload-list',\r\n align: this.x.align,\r\n gap: this.x.gap,\r\n }, {default: () => [this.html_list(), this.canUpload && this.html_input_button()]}))\r\n },\r\n },\r\n computed: {\r\n html_style() {\r\n return {\r\n '--w-thumbnail-width': $.unitSize(this.x.thumbnailWidth),\r\n '--w-label-min-height': $.unitSize(this.x.thumbnailHeight),\r\n '--w-gap': $.unitSize(this.x.gap),\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-mediaupload {\r\n &.z-h-valign-top,\r\n &.z-h-valign-top>.w-formbase-main>.w-input {\r\n align-items: flex-start;\r\n }\r\n \r\n &.z-h-valign-bottom,\r\n &.z-h-valign-bottom>.w-formbase-main>.w-input {\r\n align-items: flex-end;\r\n }\r\n \r\n &.z-h-align-center>.w-formbase-main>.w-input {\r\n justify-content: center;\r\n }\r\n \r\n &.z-h-align-right>.w-formbase-main>.w-input {\r\n justify-content: flex-end;\r\n }\r\n \r\n &>.w-label {\r\n min-height: var(--w-label-min-height);\r\n }\r\n \r\n &>.w-formbase-main>.w-input {\r\n height: 100%;\r\n }\r\n \r\n input[type=\"file\"] {\r\n display: none;\r\n }\r\n }\r\n\r\n .w-mediaupload-list {\r\n\r\n }\r\n\r\n .w-mediaupload-value,\r\n .w-mediaupload-button {\r\n position: relative;\r\n }\r\n\r\n .w-mediaupload-button {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value {\r\n box-sizing: border-box;\r\n overflow: hidden;\r\n }\r\n\r\n .w-mediaupload-value.z-loading .w-mediaupload-progress:before,\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '';\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n right: 0;\r\n background: rgba(0, 0, 0, .2);\r\n }\r\n\r\n .w-mediaupload-button .w-button-icon {\r\n font-size: 36px;\r\n color: #bbb;\r\n }\r\n\r\n .w-mediaupload-value-oper {\r\n position: absolute;\r\n display: flex;\r\n cursor: pointer;\r\n top: 0;\r\n right: 0;\r\n }\r\n \r\n .w-mediaupload-value-close,\r\n .w-mediaupload-value-menu {\r\n visibility: hidden;\r\n width: 24px;\r\n height: 24px;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .6);\r\n }\r\n\r\n .w-mediaupload-value-close:hover {\r\n color: #f33;\r\n }\r\n\r\n .w-mediaupload-value:hover .w-mediaupload-value-oper > *,\r\n .w-mediaupload-value-menu[w-pop-visible] {\r\n visibility: visible;\r\n }\r\n\r\n .w-mediaupload-value .w-img-gut {\r\n border: 1px solid #ddd;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-img-gut {\r\n border: 1px solid #f00;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress-loading {\r\n display: none;\r\n }\r\n\r\n .w-mediaupload-value.z-err .w-mediaupload-progress:before {\r\n content: '上传失败';\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: #fff;\r\n background: rgba(0, 0, 0, .5);\r\n }\r\n\r\n .w-mediaupload-cover-play {\r\n width: 30px;\r\n height: 30px;\r\n border-radius: 30px;\r\n background: rgba(0, 0, 0, .5);\r\n color: #fff;\r\n cursor: pointer;\r\n }\r\n\r\n .w-mediaupload-cover-play:before {\r\n transform: translateX(2px);\r\n }\r\n\r\n .w-mediaupload.z-err .w-mediaupload-button {\r\n border-color: #f00;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import MediaUpload from './MediaUpload.vue'\r\n\r\n export default {\r\n name: 'w-imageupload',\r\n mixins: [MediaUpload],\r\n methods: {\r\n x_default() {\r\n return {\r\n fileTypes: 'image',\r\n //valign: 'top',\r\n thumbnailWidth: 80,\r\n thumbnailHeight: 80,\r\n gap: 10\r\n }\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return 'w-mediaupload'\r\n },\r\n },\r\n }\r\n</script>\r\n","<template>\r\n <button v-bind=\"html_attrs\" :class=\"['f-flex-align', provideOptionParent.$options.name + '-option', {'z-on': isFocus, 'z-ds': disabled, 'z-mul': isMul}]\"\r\n @click=\"click\" :disabled=\"disabled\" :title=\"text\">\r\n <div class=\"f-flex-1 f-line-1\">\r\n <slot>{{text}}</slot>\r\n </div>\r\n <div v-if=\"isMul\" :class=\"['w-option-checked', {'f-i f-i-check': isFocus}]\"></div>\r\n </button>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-option',\r\n mixins: [WidgetBase],\r\n props: ['value', 'text', 'disabled'],\r\n inject: ['provideOptionParent'],\r\n methods: {\r\n click(e) {\r\n if (this.provideOptionParent.clickOption)\r\n this.provideOptionParent.clickOption(this)\r\n }\r\n },\r\n\r\n computed: {\r\n isFocus() {\r\n let m = this.provideOptionParent.x.modelValue\r\n return Array.isArray(m) ? m.includes(this.value) : $.idsAny(m, this.value)\r\n },\r\n isMul() {\r\n return this.provideOptionParent.x.multiple\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-option {\r\n height: var(--w-option-height, 32px);\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n text-align: left;\r\n }\r\n\r\n .w-dropbox-option.z-ds,\r\n .w-dropbox-option.z-ds:hover {\r\n background-color: #f9f9f9;\r\n color: #999;\r\n }\r\n\r\n .w-dropbox-option:hover {\r\n background-color: #f5faff;\r\n }\r\n\r\n .w-dropbox-option.z-on:not(.z-mul) {\r\n background-color: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n\r\n .w-dropbox-option.z-on.z-mul {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-option-checked {\r\n width: 18px;\r\n height: 18px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .w-option.z-mul {\r\n padding-left: 13px;\r\n }\r\n\r\n .w-option-checked.f-i {\r\n border-color: var(--w--primary-color);\r\n }\r\n</style>\r\n","<template>\r\n <button v-bind=\"html_attrs\" :class=\"['f-flex-align', provideOptionParent.$options.name + '-option', {'z-on': isFocus, 'z-ds': disabled, 'z-mul': isMul}]\"\r\n @click=\"click\" :disabled=\"disabled\" :title=\"text\">\r\n <div class=\"f-flex-1 f-line-1\">\r\n <slot>{{text}}</slot>\r\n </div>\r\n <div v-if=\"isMul\" :class=\"['w-option-checked', {'f-i f-i-check': isFocus}]\"></div>\r\n </button>\r\n</template>\r\n<script>\r\n import $ from '../dfish.js'\r\n import WidgetBase from './WidgetBase.vue'\r\n\r\n export default {\r\n name: 'w-option',\r\n mixins: [WidgetBase],\r\n props: ['value', 'text', 'disabled'],\r\n inject: ['provideOptionParent'],\r\n methods: {\r\n click(e) {\r\n if (this.provideOptionParent.clickOption)\r\n this.provideOptionParent.clickOption(this)\r\n }\r\n },\r\n\r\n computed: {\r\n isFocus() {\r\n let m = this.provideOptionParent.x.modelValue\r\n return Array.isArray(m) ? m.includes(this.value) : $.idsAny(m, this.value)\r\n },\r\n isMul() {\r\n return this.provideOptionParent.x.multiple\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-option {\r\n height: var(--w-option-height, 32px);\r\n padding: 0 10px;\r\n box-sizing: border-box;\r\n text-align: left;\r\n }\r\n\r\n .w-dropbox-option.z-ds,\r\n .w-dropbox-option.z-ds:hover {\r\n background-color: #f9f9f9;\r\n color: #999;\r\n }\r\n\r\n .w-dropbox-option:hover {\r\n background-color: #f5faff;\r\n }\r\n\r\n .w-dropbox-option.z-on:not(.z-mul) {\r\n background-color: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n\r\n .w-dropbox-option.z-on.z-mul {\r\n color: var(--w--primary-color);\r\n }\r\n\r\n .w-option-checked {\r\n width: 18px;\r\n height: 18px;\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n }\r\n\r\n .w-option.z-mul {\r\n padding-left: 13px;\r\n }\r\n\r\n .w-option-checked.f-i {\r\n border-color: var(--w--primary-color);\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n\r\n export default {\r\n name: 'w-spinner',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['decimal', 'format', 'showButton', 'buttonPosition', 'step', 'autoFix', 'compare', 'minValue', 'maxValue'],\r\n mounted() {\r\n this.x.format && this.doFormat()\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n step: 1,\r\n autoFix: true,\r\n showButton: true,\r\n buttonPosition: 'right',\r\n // inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 140\r\n }\r\n },\r\n doFormat() {\r\n let v = '' + this.x.modelValue\r\n let s = this.x.format.separator || ','\r\n let r = RegExp(s.replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&'), 'g')\r\n let t = $.numFormat(v, this.x.format.length, s, this.x.format.rightward)\r\n if (v !== t) {\r\n let n = this.$refs.v.selectionStart\r\n let b = v.slice(0, n).replace(r, '')\r\n this.val(t)\r\n if (document.activeElement === this.$refs.v) {\r\n let a = t.slice(0, n).replace(r, '')\r\n this.$nextTick(() => $.rngCursor(this.$refs.v, n + (b.length - a.length)))\r\n }\r\n }\r\n },\r\n stepBy(a) {\r\n if (!this.isNormal) return\r\n let m = this.defaultRuleValue('maxValue')\r\n let n = this.defaultRuleValue('minValue')\r\n let u = this.val()\r\n let v = $.numAdd($.number(u), a * this.x.step)\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n let r = v\r\n m != null && (r = Math.min(m, r))\r\n n != null && (r = Math.max(n, r))\r\n if (p) {\r\n if (p[0] == this) {\r\n let endValue = p[1].val()\r\n if (endValue != null) r = Math.min(endValue, r)\r\n } else if (p[1] == this) {\r\n let beginValue = p[0].val()\r\n if (beginValue != null) r = Math.max(beginValue, r)\r\n }\r\n }\r\n this.warn(false)\r\n this.focus()\r\n this.val(r)\r\n if (r == v) {\r\n if (this.tip_uid) {\r\n $.close(this.tip_uid)\r\n this.tip_uid = null\r\n }\r\n }\r\n this.x.format && this.doFormat()\r\n },\r\n // #fixme: 暂时用getValidErrorSync\r\n isUsableVal(v) {\r\n return !this.getValidErrorSync(null, v)\r\n },\r\n isFocusTarget(el) { // implement\r\n return (this.$refs.buttonMinus && this.$refs.buttonMinus.contains(el)) || (this.$refs.buttonPlus && this.$refs.buttonPlus.contains(el))\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.isNumber(v) && $.isNumber(tv)) {\r\n let d = $.number(v)\r\n let td = $.number(tv)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n oninput(e) {\r\n this.val(e.target.value)\r\n this.x.format && this.doFormat()\r\n },\r\n onfocus(e) {\r\n this.baseFocus(e)\r\n },\r\n onblur(e) {\r\n let v = this.x.modelValue\r\n if (v && !this.isUsableVal(v) && this.x.autoFix) {\r\n let nv = $.numDecimal(v, this.x.decimal)\r\n nv = $.numRange(nv, this.x.minValue, this.x.maxValue)\r\n this.val(nv)\r\n }\r\n this.baseBlur(e)\r\n },\r\n html_button() {\r\n let r = []\r\n let clearButton\r\n if (this.x.clearable && this.isNormal) {\r\n clearButton = h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n })\r\n }\r\n if (this.x.showButton) {\r\n if (clearButton) r.push(clearButton)\r\n if (this.x.buttonPosition === 'right') {\r\n r.push(h('div', {\r\n class: 'w-spinner-step w-input-button f-flex-column f-oh',\r\n }, [\r\n h('button', {\r\n\t\t\t\t\t\t\t\tref: 'buttonPlus',\r\n class: 'w-spinner-step-up f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-up\"></i>'\r\n }),\r\n h('button', {\r\n\t\t\t\t\t\t\t\tref: 'buttonMinus',\r\n class: 'w-spinner-step-down f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(-1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-caret-down\"></i>'\r\n }),\r\n ]))\r\n } else if (this.x.buttonPosition === 'between') {\r\n r.push(h('button', {\r\n\t\t\t\t\t\t\tref: 'buttonMinus',\r\n class: 'w-spinner-step-minus f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(-1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-minus\"></i>'\r\n }),\r\n h('button', {\r\n\t\t\t\t\t\t\tref: 'buttonPlus',\r\n class: 'w-spinner-step-plus f-rel',\r\n disabled: !!this.x.disabled,\r\n onclick: e => this.stepBy(1),\r\n innerHTML: '<i class=\"f-abs-center f-i f-i-plus\"></i>'\r\n }))\r\n }\r\n } else {\r\n if (clearButton) r.push(clearButton)\r\n }\r\n return r\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) < $.number(r)) : (v < r)))\r\n return this.formErr(q, [r])\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && r != null && r !== '' && ($.isNumber(r) ? ($.number(v) > $.number(r)) : (v > r)))\r\n return this.formErr(q, [r])\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v) => {\r\n this.x.format && (v = v.replace(RegExp(this.x.format.separator || ',', 'g'), ''))\r\n if (v != null) {\r\n if (!$.isNumber(v))\r\n return this.formErr({\r\n type: 'number_invalid'\r\n })\r\n let d = this.x.decimal\r\n v = '' + v\r\n if (!d && v.includes('.'))\r\n return this.formErr({\r\n type: 'number_integer'\r\n })\r\n if (d && d > 0 && $.strFrom(v, '.').length > d)\r\n return this.formErr({\r\n type: 'number_decimal_digit'\r\n }, [d])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({\r\n type: 'compare'\r\n }, e)\r\n }\r\n }\r\n }\r\n },\r\n isReadonly() {\r\n if (this.x.readonly == null) {\r\n let p = this.provideRangeParent\r\n if (p && p.x.readonly) return true\r\n }\r\n return !!this.x.readonly\r\n },\r\n isDisabled() {\r\n if (this.x.disabled == null) {\r\n let p = this.provideRangeParent\r\n if (p && p.x.disabled) return true\r\n }\r\n return !!this.x.disabled\r\n },\r\n input_prop() {\r\n return {\r\n 'w-valuetype': 'number',\r\n oninput: this.oninput,\r\n onfocus: this.onfocus,\r\n onblur: this.onblur,\r\n }\r\n },\r\n html_class() {\r\n return ['z-buttonposition-' + this.x.buttonPosition, {\r\n 'z-val': this.hasVal,\r\n 'z-clearable': !!this.x.clearable,\r\n }]\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-spinner-step-up,\r\n .w-spinner-step-down {\r\n height: 15px;\r\n overflow: hidden;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .f-i {\r\n font-size: 14px;\r\n color: #777;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-minus {\r\n order: -1;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-right: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n .w-spinner.z-buttonposition-between .w-spinner-step-plus {\r\n order: 1;\r\n width: 30px;\r\n background: #f2f2f2;\r\n border-left: 1px solid #ddd;\r\n flex-shrink: 0;\r\n cursor: pointer;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import Text from './Text.vue'\r\n import Dialog from './Dialog.vue'\r\n import Calendar from './Calendar.vue'\r\n\r\n export default {\r\n name: 'w-datepicker',\r\n mixins: [Text],\r\n inject: ['provideRangeParent'],\r\n props: ['showButton', 'multiple', 'format', 'autoFix', 'compare', 'minValue', 'maxValue', 'dropProps', 'enableHour', 'enableMinute', 'enableSecond',\r\n 'defaultHour', 'defaultMinute', 'defaultSecond'],\r\n data() {\r\n return {\r\n showDrop: false,\r\n currentDate: null,\r\n lastValue: null,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n format: 'yyyy-MM-dd',\r\n autoFix: true,\r\n showButton: true,\r\n // inputWidth: (this.provideRangeParent && this.provideRangeParent.x.inputWidth) || 180\r\n }\r\n },\r\n isUsableVal(v) {\r\n if (!v) return true\r\n if (!$.dateValid(v, this.x.format)) return false\r\n let eh = this.x.enableHour && $.arrayNumber(this.x.enableHour)\r\n let em = this.x.enableMinute && $.arrayNumber(this.x.enableMinute)\r\n let es = this.x.enableSecond && $.arrayNumber(this.x.enableSecond)\r\n if (eh || em || es) {\r\n let d = $.dateParse(v, this.x.format)\r\n if ((eh && !eh.includes(d.getHours())) || (em && !em.includes(d.getMinutes())) || (es && !es.includes(d.getSeconds()))) return false\r\n }\r\n return true\r\n },\r\n onfocus(e) {\r\n this.lastValue = this.x.modelValue\r\n this.baseFocus(e)\r\n },\r\n onkeyup() {\r\n if (this.isNormal)\r\n this.showDrop = true\r\n },\r\n // implement\r\n onCloseDrop() {\r\n this.showDrop = false\r\n this.currentDate = null\r\n this.doAutoFix()\r\n },\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n if (this.hasVal) {\r\n this.val('')\r\n this.$emit('clear', e)\r\n }\r\n },\r\n doAutoFix() {\r\n let v = this.x.modelValue\r\n if (v) {\r\n if (!this.isUsableVal(v)) {\r\n this.x.autoFix && this.val(this.lastValue)\r\n } else {\r\n let re = /\\b(\\d)\\b/g\r\n if (re.test(v)) {\r\n this.val(v.replace(re, '0$1'))\r\n }\r\n }\r\n }\r\n },\r\n drop() {\r\n if ($.br.mobile) {\r\n $.dateSheet({\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n success: this.calendarCallback,\r\n })\r\n } else {\r\n this.showDrop = true\r\n }\r\n },\r\n calendarCallback(val) {\r\n this.val(val)\r\n this.showDrop = false\r\n this.currentDate = null\r\n if (!$.br.mobile)\r\n this.focus()\r\n },\r\n getPeriod() {\r\n let minValue = this.x.minValue\r\n let maxValue = this.x.maxValue\r\n let p = this.provideRangeParent && this.provideRangeParent.forms()\r\n if (p) {\r\n if (p[0] == this) {\r\n let end = p[1].formVal()\r\n if (end != null && (maxValue == null || maxValue > end)) maxValue = end\r\n } else if (p[1] == this) {\r\n let begin = p[0].formVal()\r\n if (begin != null && (minValue == null || minValue < begin)) minValue = begin\r\n }\r\n }\r\n return {\r\n minValue,\r\n maxValue\r\n }\r\n },\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let f = this.x.format\r\n let m = r.mode || '<='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && $.dateValid(v, f) && $.dateValid(tv, f)) {\r\n let d = $.dateParse(v, f)\r\n let td = $.dateParse(tv, f)\r\n if (!$.eval('d' + m + 'td', {d, td}))\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n },\r\n html_button() {\r\n let r = []\r\n let f = this.x.format || ''\r\n let timeCols = 0\r\n if (f.includes('H')) timeCols ++\r\n if (f.includes('m')) timeCols ++\r\n if (f.includes('s')) timeCols ++\r\n let onlyTime = /[Hms]/.test(f) && !/[yMd]/.test(f)\r\n \r\n let s = []\r\n let clearButton\r\n if (this.x.clearable && this.isNormal) {\r\n clearButton = h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n })\r\n }\r\n if (this.x.showButton) {\r\n let b = [h('button', {class: 'w-input-button-drop w-input-button f-i f-i-date'})]\r\n if (clearButton) b.push(clearButton)\r\n r.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n } else if (clearButton) {\r\n r.push(clearButton)\r\n }\r\n if (this.showDrop) {\r\n\t\t\t\t\tlet dropProps = {\r\n ownproperty: true,\r\n class: ['f-dfish-dialog w-calendar-dialog', {'z-hastime': timeCols, 'z-onlytime': onlyTime}],\r\n style: {'--w-datepicker-time-cols': (timeCols || '')},\r\n context: this,\r\n autoHide: true,\r\n snap: () => this.snapElem(),\r\n position: 'v',\r\n\t\t\t\t\t\tindent: 1\r\n }\r\n\t\t\t\t\tdropProps = this.mergeDropProps(dropProps)\r\n r.push(h(Dialog, dropProps, {\r\n default: () => h(Calendar, {\r\n height: '*',\r\n pad: true,\r\n current: this.currentDate || this.x.modelValue || '',\r\n value: this.x.modelValue,\r\n format: this.x.format,\r\n ...this.getPeriod(),\r\n enableHour: this.x.enableHour,\r\n enableMinute: this.x.enableMinute,\r\n enableSecond: this.x.enableSecond,\r\n defaultHour: this.x.defaultHour,\r\n defaultMinute: this.x.defaultMinute,\r\n defaultSecond: this.x.defaultSecond,\r\n success: this.calendarCallback,\r\n 'onClick:item': (e, item) => {this.currentDate = item.value},\r\n })\r\n }))\r\n }\r\n return r\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n minValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) < $.dateParse(r, this.x.format))\r\n return this.formErr(q, [r])\r\n },\r\n maxValue: (v, r, q) => {\r\n if (v && $.dateParse(v, this.x.format) > $.dateParse(r, this.x.format))\r\n return this.formErr(q, [r])\r\n },\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n },\r\n validateDefault: (v, r, q) => {\r\n if (this.x.multiple)\r\n return;\r\n if (v) {\r\n let c = v\r\n let d = $.dateParse(c, this.x.format)\r\n let y = d.getFullYear()\r\n let m = 9999\r\n let n = 1000\r\n if (y > m || y < n)\r\n return this.formErr({type: 'time_exceed'}, [n, m])\r\n if (c != $.dateFormat(d, this.x.format)) {\r\n return this.formErr({type: 'time_format'}, [$.dateFormat(new Date, this.x.format)]);\r\n }\r\n }\r\n if (this.defaultRuleValue('beforeNow') && v && v > $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'beforeNow'}, [this.x.beforeNow])\r\n if (this.defaultRuleValue('afterNow') && v && v < $.dateFormat(new Date(), this.x.format))\r\n return this.formErr({type: 'afterNow'}, [this.x.afterNow])\r\n let e = this.provideRangeParent && this.provideRangeParent.getRangeError()\r\n if (e) return this.formErr({type: 'compare'}, e)\r\n }\r\n }\r\n },\r\n isReadonly() {\r\n if (this.x.readonly == null) {\r\n let p = this.provideRangeParent\r\n if (p && p.x.readonly) return true\r\n }\r\n return !!this.x.readonly\r\n },\r\n isDisabled() {\r\n if (this.x.disabled == null) {\r\n let p = this.provideRangeParent\r\n if (p && p.x.disabled) return true\r\n }\r\n return !!this.x.disabled\r\n },\r\n input_prop() {\r\n return $.br.mobile ? {\r\n readonly: true,\r\n } : {\r\n onfocus: this.onfocus,\r\n onkeyup: this.onkeyup,\r\n }\r\n },\r\n form_prop() {\r\n return {\r\n onclick: this.isNormal && this.drop\r\n }\r\n },\r\n\t\t\thtml_class() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t'z-drop': this.showDrop,\r\n 'z-val': this.hasVal,\r\n 'z-droppable': true,\r\n 'z-clearable': this.x.clearable,\r\n\t\t\t\t}\r\n\t\t\t}\r\n },\r\n mounted() {\r\n this.$watch('modelValue', (v) => {\r\n if (this.x.autoFix && v && (v = $.strTrim(v))) {\r\n if (!$.dateValid(v, this.x.format)) {\r\n let d = $.dateParse(v, this.x.format)\r\n v = $.dateFormat(d, this.x.format)\r\n this.val(v)\r\n }\r\n this.lastValue = v\r\n }\r\n }, {immediate: true})\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n export default {\r\n name: 'w-dropbox',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideOptionParent: this,\r\n }\r\n },\r\n props: ['multiple', 'cancelable', 'clearable', 'dropProps'],\r\n\t\temits: ['clear'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n dropper: null,\r\n showDrop: false,\r\n placeholder_type: 'placeholder_select',\r\n }\r\n },\r\n methods: {\r\n click() {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n }\r\n },\r\n clickOption(opt) {\r\n if (this.x.multiple) {\r\n let cv = $.arrayID(this.val()).concat()\r\n if (opt.isFocus) $.lodash.pull(cv, opt.value)\r\n else cv.push(opt.value)\r\n this.val(cv)\r\n } else {\r\n let cv = this.x.cancelable && opt.isFocus ? '' : opt.value\r\n this.val(cv)\r\n this.showDrop = false\r\n }\r\n },\r\n clickButtonClear(e) {\r\n if (this.x.clearable && this.hasVal) {\r\n e.stopPropagation()\r\n this.val('')\r\n this.$emit('clear', e)\r\n }\r\n },\r\n formText() {\r\n return this.input_text\r\n },\r\n html_input() {\r\n let t = $.string(this.input_text)\r\n let p = this.input_placeholder\r\n let m = !!$.br.mobile\r\n\t\t\t\tlet r = [\r\n this.html_input_hidden(),\r\n h('div', {\r\n class: 'w-dropbox-text f-line-1',\r\n title: t || p,\r\n }, t || (p && h('div', {class: 'w-input-placeholder'}, p))),\r\n ]\r\n\t\t\t\tif (this.showDrop) {\r\n\t\t\t\t\tlet dropProps = {\r\n\t\t\t\t\t context: this,\r\n\t\t\t\t\t ownproperty: true,\r\n\t\t\t\t\t class: 'f-dfish-dialog w-dropbox-dialog' + (m ? ' z-mob' : ''),\r\n\t\t\t\t\t width: m ? '100%' : $.bcr(this.el('form')).width,\r\n\t\t\t\t\t autoHide: true,\r\n\t\t\t\t\t cover: m,\r\n\t\t\t\t\t snap: m ? null : () => this.el('form'),\r\n\t\t\t\t\t position: m ? null : 'v',\r\n\t\t\t\t\t indent: 1,\r\n scrollY: true,\r\n scrollView: '.z-on'\r\n\t\t\t\t\t}\r\n dropProps = this.mergeDropProps(dropProps)\r\n\t\t\t\t\tr.push(h(Dialog, dropProps, this.$slots))\r\n\t\t\t\t}\r\n\t\t\t\treturn r\r\n },\r\n html_button() {\r\n let b = [h('button', {class: 'w-input-button-drop w-input-button f-i f-i-caret-down'})]\r\n if (this.x.clearable && this.isNormal) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n return h('div', {class: 'w-input-buttonbar'}, b)\r\n }\r\n },\r\n computed: {\r\n input_text() {\r\n let r = []\r\n let s = this.slots_children()\r\n let m = $.arrayID(this.x.modelValue)\r\n $.lodash.each(m, v => {\r\n let i = s.findIndex(n => n.props.value == v)\r\n if (i > -1) r.push(i)\r\n if (!this.x.multiple) return false\r\n })\r\n return r.sort().map(v => s[v].props.text).join(', ')\r\n },\r\n form_prop() {\r\n return {\r\n onclick: this.isNormal && this.click\r\n }\r\n },\r\n\t\t\thtml_class() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t'z-val': this.hasVal,\r\n\t\t\t\t\t'z-drop': this.showDrop,\r\n\t\t\t\t\t'z-droppable': true,\r\n 'z-clearable': this.x.clearable,\r\n\t\t\t\t}\r\n\t\t\t}\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import DropBox from './DropBox.vue'\r\n\r\n export default {\r\n name: 'w-pickbox',\r\n mixins: [DropBox],\r\n props: ['picker'],\r\n methods: {\r\n // implement\r\n getInputValue(mv) {\r\n \t// return mv && typeof mv === 'object' ? JSON.stringify(mv) : mv == null ? '' : mv\r\n return typeof mv === 'string' ? mv : $.array(mv).map(v => v.value).join(',')\r\n },\r\n click(e) {\r\n if (this.$slots.default) {\r\n this.showDrop = !this.showDrop\r\n this.warn(false)\r\n } else if (this.x.picker) {\r\n this.clickButtonPicker(e)\r\n }\r\n },\r\n clickButtonPicker(e) {\r\n e && e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n closeDrop() {\r\n this.showDrop = false\r\n return this\r\n },\r\n html_button() {\r\n\t\t\t\tlet s = []\r\n if (this.$slots.default || (this.x.clearable && this.isNormal)) {\r\n let b = []\r\n if (this.$slots.default) {\r\n b.push(h('button', {\r\n class: 'w-input-button-drop w-input-button f-i f-i-caret-down'\r\n }))\r\n }\r\n if (this.x.clearable && this.isNormal) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n s.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-button-picker w-input-button f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickButtonPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n hasVal() {\r\n return this.input_text\r\n },\r\n input_text() {\r\n let v = this.x.modelValue\r\n\t\t\t\tif (v && typeof v === 'string') {\r\n\t\t\t\t\tv = JSON.parse(v)\r\n\t\t\t\t}\r\n if (Array.isArray(v)) {\r\n return v.map(item => item.text).join(', ')\r\n } else {\r\n return (v && v.text) || ''\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import Text from './Text.vue'\r\n\r\n export default {\r\n name: 'w-password',\r\n mixins: [Text],\r\n props: ['compare'],\r\n methods: {\r\n getCompareError(v, r) {\r\n if (v && r && r.target && this.ownerView) {\r\n let m = r.mode || '=='\r\n let t = r.target.isWidget ? r.target : this.ownerView.f(r.target)\r\n let tv = t && t.formVal()\r\n if (v && tv && !$.eval('v' + m + 'tv', {v, tv})) {\r\n return [this.getLabelText(), m, t.getLabelText()]\r\n }\r\n }\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n compare: (v, r, q) => {\r\n let e = this.getCompareError(v, r)\r\n if (e) return this.formErr(q, e)\r\n }\r\n }\r\n },\r\n input_type() {\r\n return 'password'\r\n }\r\n }\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-range',\r\n mixins: [FormBase],\r\n provide() {\r\n return {\r\n provideRangeParent: this\r\n }\r\n },\r\n props: ['mode'],\r\n methods: {\r\n getRangeError() {\r\n let f = this.forms()\r\n if (f && f.length) {\r\n return f[0].getCompareError(f[0].formVal(), {target: f[1], mode: this.x.mode})\r\n }\r\n },\r\n forms() {\r\n const to = this.$refs.to\r\n return to && this.ownerView.fAll(null, to.parentNode)\r\n },\r\n snapElem() {\r\n return this.forms()[0] || this.el('form')\r\n },\r\n html_form() {\r\n let c = this.slots_children()\r\n c.splice(1, 0, h('div', {ref: 'to', class: 'w-range-to'}, $.loc.to))\r\n return c\r\n },\r\n },\r\n computed: {\r\n html_on() {\r\n return {\r\n onclick: e => this.warnClass = ''\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-range.z-full>.w-formbase-main>.w-input>.w-formbase:not(.z-fixed) {\r\n flex: 1;\r\n }\r\n .w-range>.w-formbase-main {\r\n display: flex;\r\n align-items: center;\r\n &>.w-formbase {\r\n width: 100%;\r\n min-width: 0;\r\n }\r\n } \r\n .w-range-to {\r\n width: 28px;\r\n min-width: 24px;\r\n text-align: center;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import Vertical from './Vertical.vue'\r\n import ResizeObserver from 'resize-observer-polyfill'\r\n \r\n export default {\r\n name: 'w-combobox',\r\n mixins: [FormBase],\r\n props: ['multiple', 'strict', 'dropper', 'picker', 'dropProps', 'br', 'clearable'],\r\n emits: ['input', 'click:item', 'blur', 'focus', 'clear'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n showSuggest: false,\r\n sug_timer: null,\r\n sensor_text: this.getInputText(this.modelValue),\r\n sensor_width: null,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n strict: true\r\n }\r\n },\r\n // implement\r\n watchModelValue(v, ov) {\r\n this.clear()\r\n if (!this.x.strict) {\r\n this.sensor_text = this.getInputText(v)\r\n }\r\n const or = ov && ov.map ? ov.map(n => n.value).join(',') : ''\r\n const r = v && v.map ? v.map(n => n.value).join(',') : ''\r\n if (or != r) {\r\n this.trigger('change', v)\r\n }\r\n },\r\n getInputValue(mv) {\r\n if (typeof mv === 'string') {\r\n return mv\r\n }\r\n let r = $.array(mv).filter(v => v.value).map(v => v.value)\r\n if (!this.x.strict && this.sensor_text) {\r\n r.push(this.sensor_text)\r\n }\r\n return r.join(',')\r\n },\r\n getInputText(mv) {\r\n const n = $.array(mv).find(v => !v.value && v.text)\r\n return n ? n.text : ''\r\n },\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n $.lodash.remove(mv, m => !m || !m.text)\r\n this.val(mv)\r\n },\r\n complete(v) {\r\n this.addVal(v)\r\n this.clear()\r\n this.$nextTick(this.focus)\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n clear() {\r\n this.sensor_text = ''\r\n if (this.isNormal) {\r\n this.$refs.input.value = ''\r\n }\r\n },\r\n // implement\r\n // @empty -> 是否强制清空\r\n reset(empty) {\r\n this.warn(false)\r\n this.clear()\r\n this.val(empty || this.defaultValue == null ? '' : this.defaultValue)\r\n },\r\n focus(toEnd) {\r\n\t\t\t\tif (this.isNormal) {\r\n\t\t\t\t\tthis.$refs.input.focus()\r\n if (toEnd && this.$refs.input.value) $.rngCursor(this.$refs.input)\r\n\t\t\t\t\tthis.warn(false)\r\n\t\t\t\t}\r\n },\r\n\t\t\tonclick(e) {\r\n\t\t\t\tif (!this.sensor_text && typeof this.x.dropper === 'function') {\r\n\t\t\t\t\tthis.suggest()\r\n\t\t\t\t\tthis.x.dropper(this)\r\n\t\t\t\t}\r\n const toEnd = e && e.target == this.$refs.list\r\n\t\t\t\tthis.focus(toEnd)\r\n\t\t\t},\r\n oninput(e) {\r\n let v = e.target.value\r\n this.sensor_text = v\r\n clearTimeout(this.sug_timer)\r\n if (v === '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n e.value = v\r\n this.trigger(e, v)\r\n }, 500)\r\n }\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 8) { // 8:backspace\r\n if (e.target.selectionStart === 0 && e.target.selectionEnd === 0) {\r\n let mv = $.array(this.x.modelValue).concat()\r\n if (mv.length) {\r\n mv.splice(mv.length - 1, 1)\r\n this.val(mv)\r\n }\r\n }\r\n }\r\n //38: up, 40:down\r\n //if (this.showSuggest && (k == 38 || k == 40)) e.preventDefault()\r\n },\r\n onblur(e) {\r\n this.isFocus = false\r\n this.trigger('blur')\r\n setTimeout(() => {\r\n if (!this.$.isUnmounted && !this.$.isDeactivated) this.valid('blur')\r\n }, 100)\r\n }, \r\n onfocus(e) {\r\n this.isFocus = true\r\n !this.showSuggest && e.target.value && e.target.dispatchEvent(new Event('input'))\r\n this.trigger('focus')\r\n },\r\n onwheel(e) {\r\n if (this.$refs.list.scrollWidth > this.$refs.list.clientWidth) {\r\n this.$refs.list.scrollLeft += (e.deltaY > 0 ? 1 : -1) * 50\r\n e.preventDefault()\r\n }\r\n },\r\n // implement\r\n onCloseDrop() {\r\n this.showSuggest = false\r\n },\r\n clickItem(e, item) {\r\n e.runType = 'click:item'\r\n e.value = item\r\n this.trigger(e, item)\r\n },\r\n clickClose(e, item) {\r\n e.stopPropagation()\r\n let mv = $.array(this.x.modelValue).concat()\r\n let i = mv.findIndex(v => v.value == item.value)\r\n if (i > -1) {\r\n mv.splice(i, 1)\r\n this.val(mv)\r\n }\r\n },\r\n clickButtonPicker(e) {\r\n e.stopPropagation()\r\n this.warn(false)\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n this.val('')\r\n this.clear()\r\n this.suggest(false)\r\n this.focus()\r\n this.$emit('clear', e)\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options() {\r\n let m = this.x.modelValue\r\n if (m && typeof m !== 'string') {\r\n return $.array(m).filter(v => v.value).map(v => h('div', {\r\n class: ['w-combobox-option f-flex-center', {\r\n 'z-forbid': v.forbid\r\n }],\r\n onclick: e => this.clickItem(e, v)\r\n }, [h('div', {\r\n class: 'w-combobox-option-text f-line-1',\r\n title: v.text\r\n }, v.text),\r\n this.isNormal && h('div', {\r\n class: 'w-combobox-option-close f-i f-i-close',\r\n onclick: e => this.clickClose(e, v)\r\n })\r\n ]))\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-combobox-input-wrap'\r\n }, [\r\n h('div', {\r\n class: 'w-combobox-sensor',\r\n ref: 'sensor',\r\n }, this.sensor_text || (this.input_value ? null : this.input_placeholder)),\r\n h('input', {\r\n\t\t\t\t\t\ttype: 'text',\r\n ref: 'input',\r\n\t\t\t\t\t\tvalue: this.sensor_text,\r\n class: 'w-combobox-input',\r\n style: {\r\n width: this.sensor_width,\r\n },\r\n readonly: !this.isNormal,\r\n placeholder: this.input_value ? null : this.input_placeholder,\r\n oninput: this.oninput,\r\n onkeydown: this.onkeydown,\r\n onblur: this.isNormal && this.onblur,\r\n onfocus: this.isNormal && this.onfocus,\r\n })\r\n ])\r\n },\r\n html_input() {\r\n\t\t\t\tconst r = [\r\n\t\t\t\t\tthis.html_options()\r\n\t\t\t\t]\r\n\t\t\t\t//if (this.isNormal) {\r\n\t\t\t\t\tr.push(this.html_var())\r\n\t\t\t\t//}\r\n\t\t\t\tif (this.showSuggest) {\r\n\t\t\t\t\tlet dropProps = {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: $.bcr(this.el('form')).width,\r\n autoHide: true,\r\n snap:() => this.el('form'),\r\n position: 'v',\r\n indent: 1,\r\n scrollY: true\r\n }\r\n\t\t\t\t\tdropProps = this.mergeDropProps(dropProps)\r\n\t\t\t\t\tr.push(h(Dialog, dropProps, this.$slots))\r\n\t\t\t\t}\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n ref: 'list',\r\n class: ['w-combobox-list f-flex-1 f-flex f-oh f-height', {'f-h-gap': $.br.compat.gap}],\r\n onWheel: !this.x.br && this.onwheel\r\n }, r)\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper || (this.x.clearable && this.isNormal)) {\r\n let b = []\r\n if (this.x.dropper) {\r\n b.push(h('button', {class: 'w-input-button-drop w-input-button f-i f-i-caret-down'}))\r\n }\r\n if (this.x.clearable) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n s.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-button-picker w-input-button f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickButtonPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n validateDefault: (v) => {\r\n if (this.sensor_text) {\r\n if (this.x.strict) {\r\n return this.formErr({type: 'invalid_option'})\r\n }\r\n if (!this.x.multiple) {\r\n const n = $.array(this.x.modelValue).find(v => v.value)\r\n if (n) {\r\n return this.formErr({type: 'maxSize'}, 1)\r\n }\r\n }\r\n }\r\n },\r\n ...this.pubValidHooks,\r\n }\r\n },\r\n hasVal() {\r\n return this.input_value\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text).join(', ')\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br,\r\n\t\t\t\t\t'z-drop': this.showSuggest,\r\n 'z-val': this.hasVal || this.sensor_text,\r\n 'z-droppable': this.x.dropper,\r\n 'z-clearable': this.x.clearable,\r\n }\r\n },\r\n form_prop() {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tonclick: this.isNormal && this.onclick\r\n\t\t\t\t}\r\n }\r\n },\r\n mounted() {\r\n if (this.$refs.sensor) {\r\n new ResizeObserver(() => {\r\n if (this.$refs.sensor) {\r\n this.sensor_width = this.$refs.sensor.offsetWidth + 'px'\r\n }\r\n }).observe(this.$refs.sensor)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-combobox-list {\r\n padding: 2px 3px;\r\n box-sizing: border-box;\r\n align-items: center;\r\n --w-compat-gap: 3px;\r\n gap: var(--w-compat-gap);\r\n }\r\n \r\n .w-combobox-list.f-h-gap {\r\n padding: 1px 3px;\r\n }\r\n \r\n .w-combobox-list.f-h-gap>* {\r\n margin-top: 1px;\r\n margin-bottom: 1px;\r\n }\r\n\r\n .w-combobox-list>.w-combobox-input-wrap:first-child {\r\n padding-left: 5px;\r\n }\r\n\r\n .w-combobox-input-wrap {\r\n display: flex;\r\n }\r\n\r\n .w-combobox-sensor {\r\n position: absolute;\r\n visibility: hidden;\r\n z-index: -1;\r\n white-space: pre-wrap; \r\n }\r\n\r\n .w-combobox-input {\r\n min-width: 14px;\r\n width: 14px;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-combobox-option {\r\n position: relative;\r\n height: 26px;\r\n border: 1px solid #e6e6e6;\r\n background: #f8f8f8;\r\n padding: 0 5px;\r\n background: #f8f8f8;\r\n box-sizing: border-box;\r\n max-width: calc(100% - 21px);\r\n }\r\n\r\n .w-combobox-option.z-forbid .w-combobox-option-text {\r\n text-decoration: line-through;\r\n }\r\n\r\n .w-combobox-option-close {\r\n color: #aaa;\r\n font-size: 12px;\r\n line-height: 0;\r\n margin-left: 5px;\r\n transform: translateY(1px);\r\n cursor: pointer;\r\n }\r\n\r\n .w-combobox-option-close:hover {\r\n color: #f00;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option {\r\n border-color: #d0d0d0;\r\n background: transparent;\r\n }\r\n\r\n .w-combobox.z-ds .w-combobox-option ._s {\r\n padding-right: 7px\r\n }\r\n\r\n .w-combobox.z-br .w-combobox-list {\r\n flex-wrap: wrap;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h, mergeProps\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Dialog from './Dialog.vue'\r\n import Vertical from './Vertical.vue'\r\n\r\n\r\n export default {\r\n name: 'w-linkbox',\r\n mixins: [FormBase],\r\n props: ['multiple', 'picker', 'dropProps', 'separator', 'strict', 'br', 'clearable'],\r\n emits: ['input', 'dblclick:item', 'clear'],\r\n created() {\r\n this.$watch(() => this.x.modelValue, (v) => {\r\n if (!this.isFocus) {\r\n this.initOptions(v)\r\n }\r\n })\r\n },\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: '',\r\n sugger: null,\r\n showSuggest: false,\r\n sug_timer: null,\r\n _KC: null,\r\n imeMode: false,\r\n paste_rng: null,\r\n currOpt: null,\r\n store: [],\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n strict: true\r\n }\r\n },\r\n getInputValue(mv) {\r\n return typeof mv === 'string' ? mv : $.array(mv).map(v => v.value).join(',')\r\n },\r\n initOptions(v) {\r\n if (v == null) v = this.x.modelValue\r\n if (v && typeof v !== 'string') {\r\n v = $.array(v)\r\n if (this.store.length) this.store = []\r\n this.addStore(v)\r\n this.inp().innerHTML = this.html_options(v)\r\n }\r\n },\r\n addVal(v) {\r\n let mv\r\n if (this.x.multiple) {\r\n mv = $.lodash.unionBy($.array(this.x.modelValue), $.array(v), 'value')\r\n } else {\r\n mv = [v]\r\n }\r\n this.val(mv)\r\n },\r\n complete(a) {\r\n this.addStore(a)\r\n this.focus()\r\n let u = this.currOpt || $.rngElement()\r\n let p = this.x.separator || ','\r\n if (u) {\r\n if (u.tagName === 'U') {\r\n this.rng_text(u, 0, a.text)\r\n } else {\r\n if (u.tagName === 'I') {\r\n if (u.nextSibling && u.nextSibling.tagName === 'U') {\r\n u = u.nextSibling\r\n } else {\r\n u = $.after(u, '<u></u>')\r\n this.x.multiple && $.after(u, '<i>' + p + '</i>')\r\n }\r\n } else\r\n u = (!this.x.multiple && this.inp().querySelector('u')) || $.append(this.inp(), '<u></u>')\r\n this.rng_text(u, 0, a.text)\r\n }\r\n $.classAdd(u, '_o')\r\n u.setAttribute('data-value', a.value)\r\n a.forbid && u.setAttribute('data-forbid', '')\r\n let n = u.nextSibling\r\n $.rngCursor(n && !n.nextSibling ? n : u)\r\n this.x.multiple && !n && $.rngCursor($.after(u, '<i>' + p + '</i>')) // 光标在末尾则自动添加逗号分隔符\r\n let m = $.q(`u[data-value=\"${a.value}\"]`, this.inp())\r\n if (m.length > 1) m.eq(0).next('i').addBack().remove()\r\n this.save()\r\n }\r\n return this\r\n },\r\n closeDrop() {\r\n this.suggest(false)\r\n return this\r\n },\r\n suggest(a) {\r\n a = a == null ? true : a\r\n if (a === false) {\r\n clearTimeout(this.sug_timer)\r\n }\r\n this.showSuggest = a\r\n this.warn(false)\r\n },\r\n input(a) {\r\n this.currOpt = a\r\n let v = a.innerText.replace(/^[\\s,]+|[\\s,]+$/g, '')\r\n clearTimeout(this.sug_timer)\r\n if (v === '') {\r\n this.suggest(false)\r\n } else {\r\n this.sug_timer = setTimeout(() => {\r\n this.suggest(true)\r\n this.trigger(this.createEvent('input', v), v)\r\n }, 500)\r\n }\r\n },\r\n focus() {\r\n this.$refs.inp.focus()\r\n this.warn(false)\r\n return this\r\n },\r\n inp() {\r\n return this.$refs.inp\r\n },\r\n fixStyle() {\r\n let c = $.rngElement()\r\n let g = false\r\n let t\r\n let uid = this.uid\r\n let inp = this.inp()\r\n if (!inp.contains(c))\r\n c = inp\r\n t = c.innerText\r\n if (this.paste_rng)\r\n c = this.paste_rng.parentElement()\r\n if (c.id === uid)\r\n c = inp\r\n if (c.id === uid + 't') {\r\n if (t) {\r\n if (c.firstChild.nodeType === 3) {\r\n let r = $.rngCursor(c)\r\n let u = document.createElement('u')\r\n r.extractContents()\r\n u.appendChild(document.createTextNode(t))\r\n r.insertNode(u)\r\n $.rngCursor(u)\r\n c = u\r\n } else {\r\n $.q('br', inp).remove()\r\n if (c.firstChild)\r\n c = c.firstChild\r\n else\r\n $.rngCursor(c)\r\n }\r\n } else\r\n return this.closeDrop()\r\n }\r\n $.q('br', inp).remove()\r\n // 输入框内之只允许存在U和I两种标签。输入过程中浏览器可能会自动生成 <font> 标签,需要去除它\r\n if (c.tagName === 'FONT') {\r\n if (c.parentNode.tagName === 'U') {\r\n let d = c.previousSibling.nodeValue\r\n let c = c.parentNode\r\n let t = c.innerText\r\n this.rng_text(c, t.indexOf(d) + d.length + 1, t)\r\n } else if (c.parentNode.id === uid + 't') {\r\n t = c.parentNode.innerText\r\n c = $.replaceWith(c, '<u></u>')\r\n c.innerText = t\r\n }\r\n }\r\n\r\n // 如果U标签后面跟的标签不是 <i>,</i> 就要合并\r\n if (c !== inp && c.tagName !== 'I' && c.nextSibling && c.nextSibling.tagName !== 'I') {\r\n if (c.nextSibling.nodeType === 3) {\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n } else {\r\n t = c.innerText\r\n this.rng_text(c, t.length, t + c.nextSibling.innerText)\r\n c.nextSibling.parentNode.removeChild(c.nextSibling)\r\n g = true // 有更新\r\n }\r\n }\r\n $.q('u:has(br)', inp).remove()\r\n t = c.innerText\r\n // match text\r\n let n = []\r\n let p = this.x.separator || ','\r\n\r\n // 文本中如果包含分隔符 , 则分成若干选项\r\n if (this.x.multiple && t.length > 1 && t.indexOf(p) > -1) {\r\n let d = [],\r\n f = t.length - $.rngCursorOffset(),\r\n h, m = []\r\n t.split(p).forEach(s => {\r\n if (h = $.strTrim(s)) {\r\n g = this.param(h)\r\n d.push('<u' + (g ? ' class=_o data-value=\"' + g.value + '\"' + (g.forbid ? ' data-forbid' : '') : '') +\r\n '>' + h + '</u>')\r\n g ? m.push('u[data-value=\"' + g.value + '\"]') : n.push(h)\r\n } else\r\n d.push('')\r\n })\r\n m.length && (m = $.q(m.join(','), inp).next('i').addBack()) // 收集重复数据,以备删除\r\n let o = $.replaceWith(c, d.join('<i>' + p + '</i>'))\r\n let k = 0\r\n if (!this.paste_rng || this._KC === 188) { // 保留原有光标位置\r\n do {\r\n if ((k += o.innerText.length) >= f) {\r\n this.rng_text(o, k - f)\r\n break\r\n }\r\n } while (o = o.previousSibling)\r\n }\r\n m.length && (m.remove(), $.q('i + i, i:first-child', inp).remove()) // 删除重复数据\r\n g = true\r\n if ((c = $.rngElement()) && c.tagName === 'U' && !c.getAttribute('data-value'))\r\n this.input(c)\r\n else\r\n this.closeDrop()\r\n } else {\r\n if (t) {\r\n if ($.classAny(c, '_o') && !this.param(t)) {\r\n $.classRemove(c, '_o')\r\n c.removeAttribute('data-value')\r\n g = true\r\n } else if (!this.x.strict)\r\n g = true\r\n this.input(c)\r\n } else {\r\n g = true\r\n this.closeDrop()\r\n }\r\n }\r\n if (g) {\r\n this.save()\r\n //this._online && n.length > 1 && this.match({text: n.join(p)})\r\n }\r\n this.paste_rng = null\r\n },\r\n // 选项上的光标移动到指定位置 /@a -> elem, b -> cursor point, c -> text?\r\n rng_text(a, b, c) {\r\n let n = $.rngSelection()\r\n c != null && (a.innerText = c)\r\n n.selectNodeContents(a)\r\n $.rngCursor(n, b)\r\n },\r\n clickPicker(e) {\r\n e.stopPropagation()\r\n let c = this.x.picker\r\n if (typeof c === 'function') c(this)\r\n },\r\n clickButtonClear(e) {\r\n e.stopPropagation()\r\n if (this.x.clearable && this.hasVal) {\r\n this.val([])\r\n this.$nextTick(this.focus)\r\n this.$emit('clear', e)\r\n }\r\n },\r\n addStore(m) {\r\n if (m && typeof m !== 'string') {\r\n let r = $.array(m).filter(v => !this.store.find(s => s.value == v.value))\r\n if (r.length) this.store = this.store.concat(r)\r\n }\r\n },\r\n param(t) {\r\n return this.store.find(v => v.text == t)\r\n },\r\n save() {\r\n let strict = this.x.strict\r\n let r = []\r\n let m = []\r\n $.q('> u', this.inp()).each((i, u) => {\r\n let value = u.getAttribute('data-value')\r\n let text = u.innerText\r\n if (value) {\r\n r.push(value)\r\n m.push({\r\n value,\r\n text\r\n })\r\n } else if (!strict) {\r\n r.push(text)\r\n m.push({\r\n value: text\r\n })\r\n }\r\n })\r\n //this.$refs.v.value = r.join(',')\r\n this.val(m)\r\n },\r\n onkeydown(e) {\r\n let k = e.keyCode\r\n if (k === 13) {\r\n e.preventDefault()\r\n }\r\n },\r\n onkeyup(e) {\r\n if (!this.imeMode) {\r\n let k = this._KC = e.keyCode\r\n let m\r\n if (k === 13 || k === 38 || k === 40 || k === 17) { // 38:up, 40:down, 17:ctrl\r\n e.stopPropagation()\r\n } else {\r\n this.fixStyle()\r\n }\r\n this._KC = null\r\n }\r\n },\r\n onclick(e) {\r\n if (this.isNormal) {\r\n if (e.target && e.target.tagName === 'U' && !e.target.getAttribute('data-value')) {\r\n this.input(e.target)\r\n } else {\r\n let c = $.rngElement()\r\n if (c.tagName === 'U') {\r\n this.input(c)\r\n } else if (typeof this.x.dropper === 'function') {\r\n this.x.dropper(this)\r\n } else {\r\n this.closeDrop()\r\n }\r\n }\r\n }\r\n },\r\n ondblclick(e) {\r\n if (e.target.tagName === 'U' && e.target.getAttribute('data-value')) {\r\n let v = $.array(this.x.modelValue).find(o => o.value == e.target.getAttribute('data-value'))\r\n if (v) {\r\n e.runType = 'dblclick:item'\r\n e.value = v\r\n this.trigger(e, v)\r\n window.getSelection().removeAllRanges()\r\n }\r\n }\r\n },\r\n // implement\r\n onCloseDrop() {\r\n this.showSuggest = false\r\n },\r\n formText() {\r\n return this.input_title\r\n },\r\n html_options(v) {\r\n let p = this.x.separator || ','\r\n if (v == null) v = this.x.modelValue\r\n if (v !== 'string') {\r\n let b = $.array(v)\r\n let r = []\r\n $.lodash.each(b, (o, i) => {\r\n r.push('<u' + (o.value ? ' class=_o data-value=\"' + o.value + '\"' : '') + (o.forbid ? ' data-forbid' :\r\n '') + '>' + o.text + '</u>')\r\n if (!this.x.multiple) return false\r\n r.push('<i>' + p + '</i>')\r\n })\r\n return r.join('')\r\n }\r\n },\r\n html_var() {\r\n return h('div', {\r\n class: 'w-linkbox-input f-flex-1',\r\n ref: 'inp',\r\n id: this.uid + 't',\r\n contentEditable: this.isNormal,\r\n onkeyup: this.onkeyup,\r\n onkeydown: this.onkeydown,\r\n onclick: this.onclick,\r\n ondblclick: this.ondblclick,\r\n onfocus: e => {\r\n this.isFocus = true\r\n },\r\n onblur: e => {\r\n this.isFocus = false\r\n },\r\n })\r\n },\r\n html_input() {\r\n\t\t\t\tlet r = []\r\n\t\t\t\tif (this.showSuggest) {\r\n\t\t\t\t\tlet dropProps = {\r\n context: this,\r\n ownproperty: true,\r\n class: 'f-dfish-dialog',\r\n width: $.bcr(this.el('form')).width,\r\n scrollY: true,\r\n autoHide: true,\r\n snap: () => this.el('form'),\r\n position: 'v',\r\n indent: 1,\r\n scrollY: true\r\n }\r\n\t\t\t\t\tdropProps = this.mergeDropProps(dropProps)\r\n\t\t\t\t\tr.push(h(Dialog, dropProps, this.$slots))\r\n\t\t\t\t}\r\n return [\r\n this.html_input_hidden(),\r\n this.html_var(),\r\n h('div', {\r\n class: 'w-input-placeholder'\r\n }, this.input_value ? null : this.input_placeholder),\r\n r\r\n ]\r\n },\r\n html_button() {\r\n let s = []\r\n if (this.x.dropper || (this.x.clearable && this.isNormal)) {\r\n let b = []\r\n if (this.x.dropper) {\r\n b.push(h('button', {class: 'w-input-button-drop w-input-button f-i f-i-caret-down'}))\r\n }\r\n if (this.x.clearable) {\r\n b.push(h('button', {\r\n class: 'w-input-button-clear w-input-button f-i f-i-caret-down',\r\n onclick: this.clickButtonClear\r\n }))\r\n }\r\n s.push(h('div', {class: 'w-input-buttonbar'}, b))\r\n }\r\n if (this.x.picker) {\r\n s.push(h('button', {\r\n class: 'w-input-button f-i f-i-ellipsis',\r\n disabled: !this.isNormal,\r\n onclick: this.clickPicker\r\n }))\r\n }\r\n return s\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (this.x.strict && $.q('u:not([data-value])').length > 0) {\r\n return this.formErr({\r\n type: 'invalid_option'\r\n })\r\n }\r\n }\r\n }\r\n },\r\n hasVal() {\r\n return this.input_value\r\n },\r\n input_title() {\r\n return typeof this.x.modelValue === 'string' ? '' : $.array(this.x.modelValue).map(v => v.text || v.value).join(', ')\r\n },\r\n html_class() {\r\n return {\r\n 'z-br': this.x.br,\r\n 'z-dc': this.getOn('dblclick:item'),\r\n\t\t\t\t\t'z-drop': this.showSuggest,\r\n 'z-val': this.hasVal,\r\n 'z-droppable': this.x.dropper,\r\n 'z-clearable': this.x.clearable,\r\n }\r\n }\r\n },\r\n mounted() {\r\n this.initOptions()\r\n this.inp().addEventListener('compositionstart', () => {\r\n this.imeMode = true\r\n })\r\n this.inp().addEventListener('compositionend', () => {\r\n this.imeMode = false\r\n })\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-linkbox-input {\r\n height: 100%;\r\n background: transparent;\r\n border: 0;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input {\r\n padding-left: 10px;\r\n min-height: 30px;\r\n line-height: 30px;\r\n font-family: verdana;\r\n font-style: normal;\r\n outline: none;\r\n overflow: hidden;\r\n word-break: keep-all;\r\n word-wrap: normal;\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u {\r\n padding-right: 1px;\r\n color: #999;\r\n text-decoration: none\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o {\r\n color: #333\r\n }\r\n\r\n .w-linkbox .w-linkbox-input u._o[data-forbid] {\r\n text-decoration: line-through !important;\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u {\r\n color: #333\r\n }\r\n\r\n .w-linkbox.z-dc .w-linkbox-input u._o {\r\n color: #275696;\r\n text-decoration: underline\r\n }\r\n\r\n .w-linkbox .w-linkbox-input i {\r\n font-style: normal;\r\n padding: 0 3px 0 1px;\r\n color: #999;\r\n }\r\n\r\n .w-linkbox ._v {\r\n display: inline-block;\r\n height: 22px;\r\n line-height: 22px;\r\n vertical-align: middle\r\n }\r\n\r\n .w-linkbox.z-loading {\r\n color: gray;\r\n }\r\n\r\n .w-linkbox.z-loading .w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox.z-br .w-linkbox-input {\r\n overflow: visible;\r\n word-break: break-all;\r\n word-wrap: break-word;\r\n }\r\n\r\n .w-linkbox .w-input {\r\n position: relative;\r\n }\r\n\r\n .w-linkbox-input:not(:empty)~.w-input-placeholder {\r\n display: none;\r\n }\r\n\r\n .w-linkbox .w-input-placeholder {\r\n position: absolute;\r\n left: 0;\r\n padding-left: 10px;\r\n pointer-events: none;\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog ref=\"dialog\" class=\"w-jigsaw-dialog\" :width=\"width\" :height=\"height\" :context=\"context\">\r\n <img class=\"w-jigsaw-big\" :src=\"bigSrc\">\r\n <img class=\"w-jigsaw-small\" :src=\"smallSrc\" :width=\"smallWidth\" :style=\"{left: smallLeft + 'px'}\" @dragstart.prevent=\"dragstart\" @mousedown=\"mousedown\">\r\n <span @click=\"refresh\" class=\"w-jigsaw-refresh\">刷新</span>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n\t\tprops: ['width', 'height', 'context'],\r\n data() {\r\n return {\r\n smallLeft: 0\r\n }\r\n },\r\n watch: {\r\n 'context.x.modelValue': {\r\n handler(v) {\r\n let m = this.context.max()\r\n let n = this.context.min()\r\n this.smallLeft = (this.width - this.smallWidth) * (v / (m - n))\r\n }\r\n }\r\n },\r\n\t\tmounted() {\r\n\r\n\t\t},\r\n methods: {\r\n refresh(e) {\r\n this.context.refresh(e)\r\n },\r\n dragstart(e) {\r\n //\r\n },\r\n mousedown(e) {\r\n this.context.dragstart(e)\r\n }\r\n },\r\n computed: {\r\n bigSrc() {\r\n return this.context.x.big.src\r\n },\r\n smallSrc() {\r\n return this.context.x.small.src\r\n },\r\n smallWidth() {\r\n return this.height * (this.context.x.small.width / this.context.x.small.height)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw-big {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-jigsaw-small {\r\n position: absolute;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-jigsaw-refresh {\r\n position: absolute;\r\n top: 5px;\r\n right: 5px;\r\n color: #fff;\r\n cursor: pointer;\r\n text-shadow: 0 0 3px #000;\r\n }\r\n</style>\r\n","<template>\r\n <w-dialog ref=\"dialog\" class=\"w-jigsaw-dialog\" :width=\"width\" :height=\"height\" :context=\"context\">\r\n <img class=\"w-jigsaw-big\" :src=\"bigSrc\">\r\n <img class=\"w-jigsaw-small\" :src=\"smallSrc\" :width=\"smallWidth\" :style=\"{left: smallLeft + 'px'}\" @dragstart.prevent=\"dragstart\" @mousedown=\"mousedown\">\r\n <span @click=\"refresh\" class=\"w-jigsaw-refresh\">刷新</span>\r\n </w-dialog>\r\n</template>\r\n\r\n<script>\r\n import $ from '../dfish.js'\r\n\r\n export default {\r\n\t\tprops: ['width', 'height', 'context'],\r\n data() {\r\n return {\r\n smallLeft: 0\r\n }\r\n },\r\n watch: {\r\n 'context.x.modelValue': {\r\n handler(v) {\r\n let m = this.context.max()\r\n let n = this.context.min()\r\n this.smallLeft = (this.width - this.smallWidth) * (v / (m - n))\r\n }\r\n }\r\n },\r\n\t\tmounted() {\r\n\r\n\t\t},\r\n methods: {\r\n refresh(e) {\r\n this.context.refresh(e)\r\n },\r\n dragstart(e) {\r\n //\r\n },\r\n mousedown(e) {\r\n this.context.dragstart(e)\r\n }\r\n },\r\n computed: {\r\n bigSrc() {\r\n return this.context.x.big.src\r\n },\r\n smallSrc() {\r\n return this.context.x.small.src\r\n },\r\n smallWidth() {\r\n return this.height * (this.context.x.small.width / this.context.x.small.height)\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw-big {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .w-jigsaw-small {\r\n position: absolute;\r\n height: 100%;\r\n top: 0;\r\n left: 0;\r\n }\r\n\r\n .w-jigsaw-refresh {\r\n position: absolute;\r\n top: 5px;\r\n right: 5px;\r\n color: #fff;\r\n cursor: pointer;\r\n text-shadow: 0 0 3px #000;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import TemplateJigsaw from '../template/TemplateJigsaw.vue'\r\n\r\n\r\n const init_text = $.loc.form.jigsaw_drag_right\r\n\r\n export default {\r\n name: 'w-jigsaw',\r\n mixins: [FormBase],\r\n emits: ['drop', 'click:refresh'],\r\n props: ['big', 'small', 'dropWidth'],\r\n data() {\r\n return {\r\n hasBorder: true,\r\n text: init_text,\r\n locked: false,\r\n isSuccess: false,\r\n isError: false,\r\n\t\t\t\tshowDrop: false,\r\n }\r\n },\r\n methods: {\r\n success(text) {\r\n this.text = text\r\n this.locked = true\r\n this.isSuccess = true\r\n\t\t\t\tthis.showDrop = false\r\n this.setThumbLeft()\r\n },\r\n error(text, timeout, fn) {\r\n if (!text) text = ''\r\n\t\t\t\tthis.text = text\r\n this.isError = true\r\n\t\t\t\tthis.showDrop = false\r\n this.warn(true)\r\n this.setThumbLeft(0)\r\n if (timeout) {\r\n this.locked = true\r\n this.text = text + `(${timeout/1000})`\r\n let timer = setInterval(() => {\r\n timeout -= 1000\r\n this.text = text + `(${timeout/1000})`\r\n if (timeout <= 0) {\r\n clearInterval(timer)\r\n this.reset()\r\n fn && fn()\r\n }\r\n }, 1000)\r\n } else {\r\n fn && fn()\r\n }\r\n },\r\n reset() {\r\n this.locked = false\r\n this.isError = false\r\n this.isSuccess = false\r\n this.text = init_text\r\n this.setThumbLeft(0)\r\n this.warn(false)\r\n },\r\n refresh(e) {\r\n e.runType = 'click:refresh'\r\n this.trigger(e)\r\n },\r\n setThumbLeft(left) {\r\n if (left == null) {\r\n left = $.number(this.$refs.thumb.style.left)\r\n } else {\r\n this.$refs.thumb.style.left = left + 'px'\r\n }\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n let hf = (left + (g / 2)) > (w / 2)\r\n this.$refs.text.style.left = hf ? 0 : (left + g) + 'px'\r\n this.$refs.text.style.right = hf ? (w - left) + 'px' : 0\r\n this.el().classList.remove('z-drag')\r\n },\r\n dragstart(e) {\r\n if (!this.isNormal || this.locked) return\r\n this.warn(false)\r\n let a = this.$refs.thumb\r\n let x = $.eventX(e)\r\n let m = this.max()\r\n let n = this.min()\r\n let f = $.number(a.style.left)\r\n let g = this.thumbWidth()\r\n let w = this.mainWidth()\r\n $.moveup((e) => {\r\n let c = $.eventX(e)\r\n let l = $.numRange(f + c - x, 0, w - g)\r\n a.style.left = l + 'px'\r\n this.$refs.track.style.width = (l + g) + 'px'\r\n this.x.modelValue = (m - n) * l / (w - g)\r\n this.el().classList.add('z-drag')\r\n }, (e, moved) => {\r\n if (moved) a.dispatchEvent(new Event('drop'))\r\n }, e)\r\n },\r\n mouseenter(e) {\r\n if (!this.x.big || this.isSuccess || this.locked) return\r\n this.warn(false)\r\n\t\t\t\tthis.showDrop = true\r\n },\r\n drop(e) {\r\n this.trigger(e, this.x.modelValue)\r\n },\r\n max() {\r\n let v = this.x.maxValue\r\n return v == null ? 100 : v\r\n },\r\n min() {\r\n let v = this.x.minValue\r\n return v == null ? 0 : v\r\n },\r\n thumbWidth() {\r\n return $.bcr(this.$refs.thumb).width\r\n },\r\n mainWidth() {\r\n return $.bcr(this.$refs.form).width\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n [\r\n h('div', {\r\n ref: 'track',\r\n class: 'w-jigsaw-track',\r\n }),\r\n h('div', {\r\n ref: 'text',\r\n class: 'w-jigsaw-text f-flex-center f-line-1',\r\n }, this.text),\r\n ]\r\n ]\r\n },\r\n html_button() {\r\n\t\t\t\tlet r = [\r\n\t\t\t\t\th('button', {\r\n\t\t\t\t\t ref: 'thumb',\r\n\t\t\t\t\t class: ['w-jigsaw-thumb w-input-button f-i', this.isSuccess ? 'f-i-check' :\r\n\t\t\t\t\t 'f-i-long-arrow-right'\r\n\t\t\t\t\t ],\r\n\t\t\t\t\t disabled: !!this.x.disabled,\r\n\t\t\t\t\t onmousedown: this.dragstart,\r\n\t\t\t\t\t\tonmouseenter: this.mouseenter,\r\n\t\t\t\t\t ondrop: this.drop,\r\n\t\t\t\t\t})\r\n\t\t\t\t]\r\n\t\t\t\tif (this.showDrop) {\r\n\t\t\t\t\tlet width = Math.max($.number(this.x.dropWidth), $.bcr(this.el('form')).width)\r\n\t\t\t\t\tlet height = Math.ceil(width * (this.x.big.height / this.x.big.width))\r\n\t\t\t\t\tr.push(h(TemplateJigsaw, {\r\n\t\t\t\t\t ownproperty: true,\r\n\t\t\t\t\t width,\r\n\t\t\t\t\t height,\r\n\t\t\t\t\t autoHide: true,\r\n\t\t\t\t\t context: this,\r\n\t\t\t\t\t snap: () => this.el('form'),\r\n\t\t\t\t\t position: 'v',\r\n\t\t\t\t\t onClose: () => this.showDrop = null\r\n\t\t\t\t\t}))\r\n\t\t\t\t}\r\n return r\r\n }\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n validateDefault: (v) => {\r\n if (!this.isSuccess) {\r\n\t return this.formErr({type: 'jigsaw_required'})\r\n }\r\n }\r\n }\r\n },\r\n html_class() {\r\n return {\r\n 'z-success': this.isSuccess,\r\n }\r\n },\r\n form_prop() {\r\n return {\r\n onmouseenter: this.mouseenter\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-jigsaw .w-input {\r\n position: relative;\r\n background: #f8f8f8;\r\n overflow: visible;\r\n border-color: #ddd;\r\n }\r\n\r\n .w-jigsaw-thumb {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n width: 30px;\r\n background: #fff;\r\n box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.3);\r\n }\r\n\r\n .w-jigsaw-thumb:hover,\r\n .w-jigsaw.z-drag .w-jigsaw-thumb {\r\n background: var(--w--primary-color);\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw-text {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n left: 30px;\r\n right: 0;\r\n color: #a9a9a9;\r\n }\r\n\r\n .w-jigsaw-track {\r\n display: none;\r\n position: absolute;\r\n left: -1px;\r\n top: -1px;\r\n bottom: -1px;\r\n background: #e5f3ff;\r\n border: 1px solid transparent;\r\n }\r\n\r\n\t.w-grid.z-face-cell .w-jigsaw-track {\r\n\t\ttop: 0;\r\n\t\tbottom: 0;\r\n\t}\r\n\t\r\n .w-jigsaw.z-drag .w-jigsaw-text {\r\n display: none;\r\n }\r\n\r\n .w-jigsaw.z-drag .w-jigsaw-track {\r\n display: block;\r\n border-color: var(--w--primary-color);\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-track {\r\n display: block;\r\n background: #eaffe5;\r\n border-color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-thumb {\r\n background: #24c301;\r\n color: #fff;\r\n }\r\n\r\n .w-jigsaw.z-success .w-jigsaw-text {\r\n color: #24c301;\r\n }\r\n\r\n .w-jigsaw.z-err .w-jigsaw-text {\r\n color: #f00;\r\n }\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {\r\n h\r\n } from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-form',\r\n mixins: [FormBase],\r\n props: ['vertical'],\r\n methods: {\r\n getInputValue(mv) {\r\n return mv == null ? '' : typeof mv === 'object' ? JSON.stringify(mv) : mv\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n this.$slots.default && this.$slots.default()\r\n ]\r\n },\r\n },\r\n computed: {\r\n validHooks() {\r\n return {\r\n ...this.pubValidHooks,\r\n required: (v, r, q) => {\r\n if (r && (!v || v === '[]' || v === '{}')) {\r\n return this.formErr(q)\r\n }\r\n }\r\n }\r\n },\r\n html_class() {\r\n return [{\r\n 'z-vertical': this.x.vertical,\r\n }]\r\n },\r\n html_style() {\r\n return {\r\n '--w-form-gap': $.unitSize(this.x.gap)\r\n }\r\n },\r\n form_prop() {\r\n return this.name && {\r\n onclick: e => this.warn(false)\r\n }\r\n }\r\n },\r\n }\r\n</script>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n import Img from './Img.vue'\r\n\r\n export default {\r\n name: 'w-rate',\r\n mixins: [FormBase],\r\n props: ['allowHalf', 'cancelable', 'sum', 'count', 'text'],\r\n data() {\r\n return {\r\n hoverWrap: false,\r\n hoverIndex: -1,\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n sum: 5,\r\n count: 5,\r\n }\r\n },\r\n hoverItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.hoverIndex = i\r\n },\r\n clickItem(e, i) {\r\n if (!this.isNormal) return;\r\n this.x.modelValue = this.x.cancelable && this.x.modelValue == i ? '' : i\r\n },\r\n html_star(i) {\r\n return h(Img, {\r\n class: ['w-rate-star-icon', {'z-hv': this.hoverWrap && i <= this.hoverIndex, 'z-on': !this.hoverWrap && i <= this.x.modelValue}],\r\n src: '.f-i .f-i-star-full', \r\n onMouseenter: e => this.hoverItem(e, i),\r\n onClick: e => this.clickItem(e, i),\r\n disabled: !this.isNormal\r\n })\r\n },\r\n html_input() {\r\n let half = this.x.allowHalf ? .5 : 1\r\n let sum = this.x.sum || 5\r\n let count = this.x.count || 5\r\n let step = sum * half / count \r\n let stars = []\r\n for (let i = step; i <= this.x.sum; i += step / half) {\r\n let icons = [this.html_star(i)]\r\n if (this.x.allowHalf) icons.push(this.html_star(i + step))\r\n stars.push(h('li', {class: 'w-rate-star'}, icons))\r\n }\r\n return [\r\n this.html_input_hidden(),\r\n h('ul', {\r\n class: 'w-rate-wrap',\r\n onMouseenter: e => this.isNormal && (this.hoverWrap = true),\r\n onMouseleave: e => this.isNormal && (this.hoverWrap = false),\r\n },\r\n stars\r\n ),\r\n this.x.text && this.x.modelValue && h('span', {class: 'w-rate-text'}, this.x.text[(this.x.modelValue - step) / half])\r\n ]\r\n }\r\n },\r\n computed: {\r\n html_class() {\r\n return {\r\n 'z-allow-half': this.x.allowHalf\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style>\r\n .w-rate-wrap {\r\n padding: 0 0 0 10px;\r\n margin: 0;\r\n display: flex;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star:last-child {\r\n margin-right: 0;\r\n }\r\n .w-rate-star {\r\n margin: 0 10px 0 0;\r\n padding: 0;\r\n list-style: none;\r\n }\r\n .w-rate-star-icon {\r\n position: relative;\r\n overflow: hidden;\r\n align-items: flex-start;\r\n color: #bbb;\r\n }\r\n .w-rate-star-icon:nth-child(2) {\r\n align-items: flex-end;\r\n margin-top: -100%;\r\n margin-left: 50%;\r\n }\r\n .w-rate-star-icon.z-hv,\r\n .w-rate-star-icon.z-on {\r\n color: gold;\r\n }\r\n \r\n .w-rate.z-allow-half .w-rate-star-icon {\r\n width: 50%;\r\n }\r\n \r\n .w-rate-text {\r\n margin-left: 10px;\r\n }\r\n\r\n</style>\r\n","<script>\r\n import $ from '../dfish.js'\r\n import {h} from 'vue'\r\n import FormBase from './FormBase.vue'\r\n\r\n export default {\r\n name: 'w-slider',\r\n mixins: [FormBase],\r\n props: ['minValue', 'maxValue'],\r\n\t\temits: ['drop'],\r\n data() {\r\n return {\r\n grabbing: false\r\n }\r\n },\r\n methods: {\r\n x_default() {\r\n return {\r\n minValue: 0,\r\n maxValue: 100\r\n }\r\n },\r\n onmousedown(e) {\r\n const bar = $.bcr(this.$refs.form)\r\n let mv = $.number(this.x.modelValue)\r\n let dn_x = e.clientX\r\n this.grabbing = true\r\n $.moveup((e) => {\r\n let dist = e.clientX - dn_x\r\n let v = mv + (dist / bar.width) * (this.x.maxValue - this.x.minValue)\r\n v = $.numRange(v, this.x.minValue, this.x.maxValue)\r\n this.val(v)\r\n }, (e) => {\r\n this.grabbing = false\r\n this.trigger('drop', this.x.modelValue)\r\n }, e)\r\n },\r\n onclick(e) {\r\n if (e.target !== this.$refs.button) {\r\n const bar = $.bcr(this.$refs.form)\r\n let dist = e.clientX - bar.left\r\n let v = (dist / (bar.width)) * (this.x.maxValue - this.x.minValue)\r\n v = $.numRange(v, this.x.minValue, this.x.maxValue)\r\n this.val(v)\r\n this.trigger('drop', v)\r\n }\r\n },\r\n html_input() {\r\n return [\r\n this.html_input_hidden(),\r\n h('div', {\r\n onClick: this.onclick,\r\n class: ['w-slider-wrap'],\r\n },\r\n [\r\n h('div', {\r\n class: ['w-slider-progress'],\r\n }),\r\n h('div', {\r\n ref: 'button',\r\n onMousedown: this.onmousedown,\r\n class: ['w-slider-button', {'z-grabbing': this.grabbing}],\r\n })\r\n ]\r\n )\r\n ]\r\n },\r\n },\r\n computed: {\r\n percent() {\r\n let v = this.x.modelValue\r\n if (!v) return 0\r\n return v\r\n },\r\n html_style() {\r\n return {\r\n '--w-slider-left': `${this.percent}%`\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style lang=\"less\">\r\n .w-slider {\r\n &> .w-formbase-main {\r\n &> .w-input {\r\n margin: 0 10px;\r\n overflow: visible;\r\n }\r\n }\r\n &-wrap {\r\n display: flex;\r\n flex: 1;\r\n align-items: center;\r\n position: relative;\r\n height: 6px;\r\n min-height: 6px;\r\n background-color: #eee;\r\n border-radius: 3px;\r\n cursor: pointer;\r\n }\r\n &-progress {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: var(--w-slider-left);\r\n box-sizing: border-box;\r\n border-radius: 10px;\r\n background-color: #409eff;\r\n }\r\n &-button {\r\n position: relative;\r\n width: 20px;\r\n height: 20px;\r\n box-sizing: border-box;\r\n border: 2px solid #409eff;\r\n border-radius: 10px;\r\n background-color: #fff;\r\n margin-left: -10px;\r\n left: var(--w-slider-left);\r\n cursor: grab;\r\n &.z-grabbing {\r\n cursor: grabbing;\r\n }\r\n }\r\n } \r\n</style>","import $ from '../dfish.js'\r\nimport '../assets/dfish.css'\r\n\r\nimport directive from '../directive/index.js'\r\n\r\nimport DocView from './DocView.vue'\r\nimport View from './View.vue'\r\nimport Dialog from './Dialog.vue'\r\nimport Alert from './Alert.vue'\r\nimport Confirm from './Confirm.vue'\r\nimport Tip from './Tip.vue'\r\nimport Menu from './Menu.vue'\r\nimport Loading from './Loading.vue'\r\n\r\nimport Vertical from './Vertical.vue'\r\nimport Horizontal from './Horizontal.vue'\r\nimport Table from './Table.vue'\r\nimport TableColumns from './TableColumns.vue'\r\nimport TableColumn from './TableColumn.vue'\r\nimport TableTBody from './TableTBody.vue'\r\nimport TableTHead from './TableTHead.vue'\r\nimport TableTR from './TableTR.vue'\r\nimport TableTD from './TableTD.vue'\r\nimport TableTH from './TableTH.vue'\r\nimport TableV2 from './TableV2.vue'\r\nimport Grid from './Grid.vue'\r\nimport Swiper from './Swiper.vue'\r\nimport SwiperItem from './SwiperItem.vue'\r\nimport Tabs from './Tabs.vue'\r\nimport Tab from './Tab.vue'\r\n\r\nimport Album from './Album.vue'\r\nimport Img from './Img.vue'\r\nimport ButtonBar from './ButtonBar.vue'\r\nimport Button from './Button.vue'\r\nimport MenuButton from './MenuButton.vue'\r\nimport Html from './Html.vue'\r\nimport Tree from './Tree.vue'\r\nimport TreeV2 from './TreeV2.vue'\r\nimport Leaf from './Leaf.vue'\r\nimport PageBar from './PageBar.vue'\r\nimport Split from './Split.vue'\r\nimport Toggle from './Toggle.vue'\r\nimport Video from './Video.vue'\r\nimport Progress from './Progress.vue'\r\nimport Calendar from './Calendar.vue'\r\nimport Timeline from './Timeline.vue'\r\nimport TimelineItem from './TimelineItem.vue'\r\nimport SlidePicker from './SlidePicker.vue'\r\n\r\nimport Label from './Label.vue'\r\nimport Hidden from './Hidden.vue'\r\nimport Text from './Text.vue'\r\nimport Textarea from './Textarea.vue'\r\nimport CheckBoxGroup from './CheckBoxGroup.vue'\r\nimport CheckBox from './CheckBox.vue'\r\nimport RadioGroup from './RadioGroup.vue'\r\nimport Radio from './Radio.vue'\r\nimport TripleBox from './TripleBox.vue'\r\nimport Switch from './Switch.vue'\r\nimport FileUpload from './FileUpload.vue'\r\nimport MediaUpload from './MediaUpload.vue'\r\nimport ImageUpload from './ImageUpload.vue'\r\nimport Option from './Option.vue'\r\nimport Spinner from './Spinner.vue'\r\nimport DatePicker from './DatePicker.vue'\r\nimport DropBox from './DropBox.vue'\r\nimport PickBox from './PickBox.vue'\r\nimport Password from './Password.vue'\r\nimport Range from './Range.vue'\r\nimport ComboBox from './ComboBox.vue'\r\nimport LinkBox from './LinkBox.vue'\r\nimport Jigsaw from './Jigsaw.vue'\r\nimport Form from './Form.vue'\r\nimport Rate from './Rate.vue'\r\nimport Slider from './Slider.vue'\r\n\r\n\r\nconst components = [\r\n DocView, View, Dialog, Alert, Confirm, Tip, Menu, Loading, \r\n Grid, Vertical, Horizontal, Table, TableColumns, TableColumn, TableTBody, TableTHead, TableTR, TableTD, TableTH, TableV2, Swiper, SwiperItem, Tabs, Tab,\r\n Album, Img, ButtonBar, Button, MenuButton, Html, Tree, Leaf, TreeV2, PageBar, Split, Toggle, Video, Progress, Calendar, Timeline, TimelineItem, SlidePicker,\r\n Label, Hidden, Text, Textarea, CheckBoxGroup, CheckBox, RadioGroup, Radio, TripleBox, Switch, FileUpload, MediaUpload, ImageUpload, Option,\r\n Spinner, DatePicker, DropBox, PickBox, Password, Range, ComboBox, LinkBox, Jigsaw, Form, Rate, Slider\r\n]\r\n\r\n//每个组件从这里曝露,以便在某些特殊需求情境下,业务可以修改源码\r\nconst WIDGET = {}\r\n$.WIDGET = WIDGET\r\n\r\n//按Vue要求提供install接口\r\n$.install = (Vue) => {\r\n //注册组件\r\n\tcomponents.forEach(com => {\r\n\t\tVue.component(com.name, com)\r\n\t\tWIDGET[com.name] = com\r\n\t})\r\n //注册指令\r\n Vue.use(directive)\r\n}\r\n\r\nexport default $\r\n"],"names":["N","T","br","$","formIgnore","labelWidth","SrcParent","_createElementVNode","_hoisted_2","_hoisted_5","_createElementBlock","_hoisted_1","_createBlock","_createVNode","_hoisted_3","_hoisted_4","WidgetAbs","ViewAbs","TemplatePreviewMedia","TemplateDateSheet","SVGIcon","WidgetBase","ResizeObserver","Scroll","AlignParent","Horizontal","Vertical","View","DialogTarget","Dialog","TemplateAlert","TemplateConfirm","inst","TemplateTip","Img","ButtonAbs","MenuButton","_renderSlot","PubParent","SlotDefault","THead","TD","ButtonBar","Button","TabButton","SwiperItem","TabBar","Swiper","Label","leafSymbol","FormBase","CheckBox","Menu","_mergeProps","Text","CheckBoxGroup","mimeType","FileUpload","MediaUploadItem","MediaUpload","Calendar","DropBox","TemplateJigsaw","DocView","Alert","Confirm","Tip","Loading","Grid","Table","TableColumns","TableColumn","TableTBody","TableTHead","TableTR","TableTD","TableTH","TableV2","Tabs","Tab","Album","Html","Tree","Leaf","TreeV2","PageBar","Split","Toggle","Video","Progress","Timeline","TimelineItem","SlidePicker","Hidden","Textarea","RadioGroup","Radio","TripleBox","Switch","ImageUpload","Option","Spinner","DatePicker","PickBox","Password","Range","ComboBox","LinkBox","Jigsaw","Form","Rate","Slider"],"mappings":"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"}
|