From c444770dec37d6fae75bdf222990d8d7d5f3a5a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= <790604007@qq.com> Date: Fri, 31 Mar 2023 11:54:08 +0000 Subject: [PATCH 1/6] =?UTF-8?q?=E6=96=B0=E5=BB=BA=20=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "\344\275\234\344\270\232/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "\344\275\234\344\270\232/.keep" diff --git "a/\344\275\234\344\270\232/.keep" "b/\344\275\234\344\270\232/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From ec90c2a613aab78dd3331ac1243674614151c07e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= <790604007@qq.com> Date: Fri, 31 Mar 2023 11:57:22 +0000 Subject: [PATCH 2/6] =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 韦绍严 <790604007@qq.com> --- .../1.jpg" | Bin 0 -> 19825 bytes .../goods.html" | 145 ++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 "\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\232/1.jpg" create mode 100644 "\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\232/goods.html" diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\232/1.jpg" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\232/1.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..bcf49b75dbe79f28ccc77e0ea0731790e7ddef37 GIT binary patch literal 19825 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 fa#((5{olB!aZlJiO4F-8s + + + + + + + + vue商品页 + + + + + +
+
商品列表
+
+
+
+ {{description}} +
+ {{price}} + +
+
+
+ +
+
+
+ {{description}} +
+ {{price}} + +
+
+
+ +
+
+
+ {{description}} +
+ {{price}} + +
+
+
+
+ + + + + \ No newline at end of file -- Gitee From 643cbf86b941cb4dcc80bc8b037bbfbebf150b23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= <790604007@qq.com> Date: Fri, 31 Mar 2023 11:58:18 +0000 Subject: [PATCH 3/6] =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 韦绍严 <790604007@qq.com> --- .../goods.css" | 85 +++++++++++++++++++ .../goods.html" | 52 ++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 "\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.css" create mode 100644 "\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.html" diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.css" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.css" new file mode 100644 index 0000000..97f8cd0 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.css" @@ -0,0 +1,85 @@ +* { + list-style: none; +} + +body { + margin: 0; + padding: 0; +} + +.main { + width: 400px; + height: 200px; + margin: auto; + display: flex; + flex-direction: column; + +} + +.title { + width: 400px; + height: 50px; + display: flex; + justify-content: center; + align-items: center; + font-size: 20px; + +} + +.goods { + width: 400px; + height: 120px; + display: flex; + justify-content: space-around; + align-items: center; + align-content: center; + margin-top: 5px; + background-color: rgb(238, 238, 238); +} + +.left { + display: flex; + width: 100px; + height: 100px; +} + +.right { + width: 240px; + height: 100px; + display: flex; + flex-direction: column; + justify-content: space-between; +} + + +.price { + color: red; + font-size: 20px; + font-weight: 1000; +} + +.bottom { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.buy { + width: 50px; + color: white; + background-color: gray; + border: none; +} + +.buy:hover { + background-color: cadetblue; +} + +.input{ + margin: auto; +} + +input{ + width: 40px; + height: 20px; +} \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.html" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.html" new file mode 100644 index 0000000..bfa0e62 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2322/goods.html" @@ -0,0 +1,52 @@ + + + + + + + + + + vue商品页 + + + + +
+
刷怪笼
+ +
+
+
+ {{item.description}} + 剩余 {{item.totalNum-item.buyNum}} 只 +
+ {{item.price}} + + +
+
+
+ +
+ + + + + \ No newline at end of file -- Gitee From 692d114dd165b4eda7e2f82ad46ffe0eade48b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= <790604007@qq.com> Date: Mon, 3 Apr 2023 15:30:39 +0000 Subject: [PATCH 4/6] =?UTF-8?q?=E9=9F=A6=E7=BB=8D=E4=B8=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 韦绍严 <790604007@qq.com> --- .../goods.css" | 66 + .../goods.html" | 63 + .../vue.global.js" | 16159 ++++++++++++++++ 3 files changed, 16288 insertions(+) create mode 100644 "\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.css" create mode 100644 "\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.html" create mode 100644 "\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/vue.global.js" diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.css" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.css" new file mode 100644 index 0000000..037d054 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.css" @@ -0,0 +1,66 @@ +* { + list-style: none; +} + +body { + margin: 0; + padding: 0; +} + +.main { + width: 300px; + margin: auto; + display: flex; +} + +.bigBox{ + width: 300px; + border: 1px gray solid; + display: flex; + flex-direction: column; +} + +.title{ + width: 300px; + height: 50px; + text-align: center; + font-size: 20px; + color: black; + line-height: 50px; +} + +.goodsList{ + width: 300px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + align-content: center; + margin-bottom: 10px; +} + +.img img{ + width: 150px; + height: 150px; +} + +#inp{ + width: 40px; + margin: 5px; +} + +.description{ + font-size: 16px; + color: black; +} + +.price{ + font-size: 16px; + color: orange; +} + +.remainder{ + font-size: 10px; + color: gray; +} + diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.html" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.html" new file mode 100644 index 0000000..c17f2c0 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/goods.html" @@ -0,0 +1,63 @@ + + + + + + + + + + vue商品页 + + + + +
+
+
商品列表
+
+
+
+
{{item.goodsName}}
+
{{item.description}}
+
价格:{{item.price}} ¥
+
剩余:{{item.totalNum-item.buyNum}}
+ +
+ | + | + +
+
+ +
+
+
+ + + + + + \ No newline at end of file diff --git "a/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/vue.global.js" "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/vue.global.js" new file mode 100644 index 0000000..db18856 --- /dev/null +++ "b/\344\275\234\344\270\232/\345\225\206\345\223\201\351\241\265\344\275\234\344\270\2323/vue.global.js" @@ -0,0 +1,16159 @@ +var Vue = (function (exports) { + 'use strict'; + + /** + * Make a map and return a function for checking if a key + * is in that map. + * IMPORTANT: all calls of this function must be prefixed with + * \/\*#\_\_PURE\_\_\*\/ + * So that rollup can tree-shake them if necessary. + */ + function makeMap(str, expectsLowerCase) { + const map = Object.create(null); + const list = str.split(','); + for (let i = 0; i < list.length; i++) { + map[list[i]] = true; + } + return expectsLowerCase ? val => !!map[val.toLowerCase()] : val => !!map[val]; + } + + /** + * dev only flag -> name mapping + */ + const PatchFlagNames = { + [1 /* PatchFlags.TEXT */]: `TEXT`, + [2 /* PatchFlags.CLASS */]: `CLASS`, + [4 /* PatchFlags.STYLE */]: `STYLE`, + [8 /* PatchFlags.PROPS */]: `PROPS`, + [16 /* PatchFlags.FULL_PROPS */]: `FULL_PROPS`, + [32 /* PatchFlags.HYDRATE_EVENTS */]: `HYDRATE_EVENTS`, + [64 /* PatchFlags.STABLE_FRAGMENT */]: `STABLE_FRAGMENT`, + [128 /* PatchFlags.KEYED_FRAGMENT */]: `KEYED_FRAGMENT`, + [256 /* PatchFlags.UNKEYED_FRAGMENT */]: `UNKEYED_FRAGMENT`, + [512 /* PatchFlags.NEED_PATCH */]: `NEED_PATCH`, + [1024 /* PatchFlags.DYNAMIC_SLOTS */]: `DYNAMIC_SLOTS`, + [2048 /* PatchFlags.DEV_ROOT_FRAGMENT */]: `DEV_ROOT_FRAGMENT`, + [-1 /* PatchFlags.HOISTED */]: `HOISTED`, + [-2 /* PatchFlags.BAIL */]: `BAIL` + }; + + /** + * Dev only + */ + const slotFlagsText = { + [1 /* SlotFlags.STABLE */]: 'STABLE', + [2 /* SlotFlags.DYNAMIC */]: 'DYNAMIC', + [3 /* SlotFlags.FORWARDED */]: 'FORWARDED' + }; + + const GLOBALS_WHITE_LISTED = 'Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,' + + 'decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,' + + 'Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt'; + const isGloballyWhitelisted = /*#__PURE__*/ makeMap(GLOBALS_WHITE_LISTED); + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + // Split the content into individual lines but capture the newline sequence + // that separated each line. This is important because the actual sequence is + // needed to properly take into account the full line length for offset + // comparison + let lines = source.split(/(\r?\n)/); + // Separate the lines and newline sequences into separate arrays for easier referencing + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += + lines[i].length + + ((newlineSequences[i] && newlineSequences[i].length) || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) + continue; + const line = j + 1; + res.push(`${line}${' '.repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`); + const lineLength = lines[j].length; + const newLineSeqLength = (newlineSequences[j] && newlineSequences[j].length) || 0; + if (j === i) { + // push underline + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max(1, end > count ? lineLength - pad : end - start); + res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length)); + } + else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + '^'.repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join('\n'); + } + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) + ? parseStringStyle(item) + : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } + else if (isString(value)) { + return value; + } + else if (isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*.*?\*\//gs; + function parseStringStyle(cssText) { + const ret = {}; + cssText + .replace(styleCommentRE, '') + .split(listDelimiterRE) + .forEach(item => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function normalizeClass(value) { + let res = ''; + if (isString(value)) { + res = value; + } + else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + ' '; + } + } + } + else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + ' '; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) + return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + // These tag configs are shared between compiler-dom and runtime-dom, so they + // https://developer.mozilla.org/en-US/docs/Web/HTML/Element + const HTML_TAGS = 'html,body,base,head,link,meta,style,title,address,article,aside,footer,' + + 'header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,' + + 'figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,' + + 'data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,' + + 'time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,' + + 'canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,' + + 'th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,' + + 'option,output,progress,select,textarea,details,dialog,menu,' + + 'summary,template,blockquote,iframe,tfoot'; + // https://developer.mozilla.org/en-US/docs/Web/SVG/Element + const SVG_TAGS = 'svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,' + + 'defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,' + + 'feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,' + + 'feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,' + + 'feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,' + + 'fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,' + + 'foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,' + + 'mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,' + + 'polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,' + + 'text,textPath,title,tspan,unknown,use,view'; + const VOID_TAGS = 'area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr'; + /** + * Compiler only. + * Do NOT use in runtime code paths unless behind `true` flag. + */ + const isHTMLTag = /*#__PURE__*/ makeMap(HTML_TAGS); + /** + * Compiler only. + * Do NOT use in runtime code paths unless behind `true` flag. + */ + const isSVGTag = /*#__PURE__*/ makeMap(SVG_TAGS); + /** + * Compiler only. + * Do NOT use in runtime code paths unless behind `true` flag. + */ + const isVoidTag = /*#__PURE__*/ makeMap(VOID_TAGS); + + /** + * On the client we only need to offer special cases for boolean attributes that + * have different names from their corresponding dom properties: + * - itemscope -> N/A + * - allowfullscreen -> allowFullscreen + * - formnovalidate -> formNoValidate + * - ismap -> isMap + * - nomodule -> noModule + * - novalidate -> noValidate + * - readonly -> readOnly + */ + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /*#__PURE__*/ makeMap(specialBooleanAttrs); + /** + * Boolean attributes should be included if the value is truthy or ''. + * e.g. `