提交 b043941d 编写于 作者: M maguohua

udpata

上级 d8057d57
......@@ -4,7 +4,8 @@ vue2的发布后自己也研究了一段时间,奈何公司的技术栈是以r
首先遇到的问题当然是跨域,我们启动本地服务器是获取不到官网数据的,这是跨域的。当然解决的方法很多,nginx反向代理,webpack-dev-server的proxy。这里我用的是 http-proxy-middleware 其实它们的原理是一样的。
__此项目纯属个人瞎搞,正常下单请选择饿了么官方客户端。__
__注:此项目纯属个人瞎搞,正常下单请选择饿了么官方客户端。__
## 技术栈
......
......@@ -30,6 +30,7 @@ module.exports = merge(baseWebpackConfig, {
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
favicon: 'favicon.ico',
inject: true
})
]
......
webpackJsonp([5,3],{0:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var a=n(64),o=i(a),r=n(143),u=i(r),d=n(71),c=i(d),s=n(73),f=i(s),_=n(24),l=(i(_),n(69)),p=i(l);n(124),n(70),(0,p.default)("get","/v2/index_entry",{geohash:"wtw3630xg5e",group_type:1,"flags[]":"F"}).then(function(e){console.log(e)}).catch(function(e){console.log(e)}),o.default.use(u.default);var v=new u.default({routes:c.default});new o.default({router:v,store:f.default}).$mount("#app")},24:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(80),o=i(a),r=n(75),u=i(r),d=n(47),c=i(d),s=n(48),f=i(s);t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"GET",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return new f.default(function(a,r){e=e.toUpperCase();var d=void 0;if(d=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject,"GET"==e){var s="";(0,c.default)(n).forEach(function(e){s+=e+"="+n[e]+"&"}),s=s.substr(0,s.lastIndexOf("&")),t=t+"?"+s,d.open(e,t,i),d.setRequestHeader("Content-type","application/x-www-form-urlencoded"),d.send()}else"POST"==e?(d.open(e,t,i),d.setRequestHeader("Content-type","application/x-www-form-urlencoded"),d.send((0,u.default)(n))):r("error type");d.onreadystatechange=function(){if(4==d.readyState)if(200==d.status){var e=d.response;"object"!==("undefined"==typeof e?"undefined":(0,o.default)(e))&&(e=JSON.parse(e)),a(e)}else r(d)}})}},65:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={}},69:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(47),o=i(a),r=n(48),u=i(r),d="";t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"GET",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new u.default(function(i,a){e=e.toUpperCase();var r="";(0,o.default)(n).forEach(function(e){r+=e+"="+n[e]+"&"}),r=r.substr(0,r.lastIndexOf("&")),t=""!==r?d+t+"?"+r:d+t,fetch(t,{method:e,headers:{Accept:"application/json","Content-Type":"application/json"},mode:"no-cors"}).then(function(e){return 200===e.status?e.json():a(e)}).then(function(e){i(e)}).catch(function(e){a(e)})})}},70:function(e,t){"use strict";!function(e,t){var n=e.documentElement,i="orientationchange"in window?"orientationchange":"resize",a=function(){var e=n.clientWidth;e&&(n.style.fontSize=20*(e/320)+"px")};e.addEventListener&&(t.addEventListener(i,a,!1),e.addEventListener("DOMContentLoaded",a,!1))}(document,window)},71:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(135),o=i(a);t.default=[{path:"/",component:o.default,children:[{path:"",component:function(e){return n.e(1,function(){return e(n(136))})}},{path:"/item",component:function(e){return n.e(0,function(){return e(n(137))})}},{path:"/score",component:function(e){return n.e(2,function(){return e(n(138))})}}]}]},72:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),o=i(a);t.default={addNum:function(e,t){var n=e.commit,i=e.state;n("REMBER_ANSWER",{id:t}),i.itemNum<i.itemDetail.length&&n("ADD_ITEMNUM",{num:1})},getData:function(e){var t=e.commit;e.state;(0,o.default)("GET","http://operating-activities.putao.com/happyfriday?active_topic_id=4").then(function(e){t("GET_DATA",{res:e})})},initializeData:function(e){var t=e.commit;t("INITIALIZE_DATA")}}},73:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(64),o=i(a),r=n(46),u=i(r),d=n(74),c=i(d),s=n(72),f=i(s),_=n(24);i(_);o.default.use(u.default);var l={level:"第一周",itemNum:1,allTime:0,timer:"",itemDetail:[{topic_id:20,active_topic_id:4,type:"ONE",topic_name:"题目一",active_id:1,active_title:"欢乐星期五标题",active_topic_phase:"第一周",active_start_time:"1479139200",active_end_time:"1482163200",topic_answer:[{topic_answer_id:66,topic_id:20,answer_name:"答案aaaa",is_standard_answer:0},{topic_answer_id:67,topic_id:20,answer_name:"答案bbbb",is_standard_answer:0},{topic_answer_id:68,topic_id:20,answer_name:"答案cccc",is_standard_answer:0},{topic_answer_id:69,topic_id:20,answer_name:"答案dddd",is_standard_answer:1}]},{topic_id:21,active_topic_id:4,type:"MORE",topic_name:"题目二",active_id:1,active_title:"欢乐星期五标题",active_topic_phase:"第一周",active_start_time:"1479139200",active_end_time:"1482163200",topic_answer:[{topic_answer_id:70,topic_id:21,answer_name:"答案A",is_standard_answer:1},{topic_answer_id:71,topic_id:21,answer_name:"答案B",is_standard_answer:0},{topic_answer_id:72,topic_id:21,answer_name:"答案C",is_standard_answer:0},{topic_answer_id:73,topic_id:21,answer_name:"答案D",is_standard_answer:0}]}],answerid:{}};t.default=new u.default.Store({state:l,actions:f.default,mutations:c.default})},74:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a,o=n(79),r=i(o),u="GET_DATA",d="ADD_ITEMNUM",c="REMBER_ANSWER",s="REMBER_TIME",f="INITIALIZE_DATA",_="GET_USER_INFORM";t.default=(a={},(0,r.default)(a,u,function(e,t){200==t.res.httpStatusCode&&(e.itemDetail=t.res.topiclist)}),(0,r.default)(a,_,function(e,t){e.user_id=t.res.users_id}),(0,r.default)(a,d,function(e,t){e.itemNum+=t.num}),(0,r.default)(a,c,function(e,t){e.answerid[e.itemNum]=t.id}),(0,r.default)(a,s,function(e){e.timer=setInterval(function(){e.allTime++},1e3)}),(0,r.default)(a,f,function(e){e.itemNum=1,e.allTime=0}),a)},124:function(e,t){},126:function(e,t){},135:function(e,t,n){var i,a;n(126),i=n(65);var o=n(140);a=i=i||{},"object"!=typeof i.default&&"function"!=typeof i.default||(a=i=i.default),"function"==typeof a&&(a=a.options),a.render=o.render,a.staticRenderFns=o.staticRenderFns,e.exports=i},140:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return t("div",{attrs:{id:"app"}},[t("router-view")])},staticRenderFns:[]}}});
\ No newline at end of file
webpackJsonp([5,3],{0:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var a=n(66),r=i(a),o=n(144),u=i(o),d=n(73),s=i(d),c=n(75),f=i(c),_=n(24),l=i(_),p=n(71),v=i(p);n(125),n(72),n(25),(0,v.default)("GET","/shopping/restaurants",{latitude:31.16407,longitude:121.38876,offset:0,limit:20,"extras[]":"activities"}),(0,l.default)("get","/v2/index_entry",{geohash:"wtw3630xg5e",group_type:1,"flags[]":"F"}),r.default.use(u.default);var m=new u.default({routes:s.default});new r.default({router:m,store:f.default}).$mount("#app")},24:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(81),r=i(a),o=n(48),u=i(o),d=n(49),s=i(d),c=n(50),f=i(c),_=n(25);t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"GET",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return new f.default(function(a,o){e=e.toUpperCase(),t=_.baseUrl+t;var d=void 0;if(d=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject,"GET"==e){var c="";(0,s.default)(n).forEach(function(e){c+=e+"="+n[e]+"&"}),""!==c&&(c=c.substr(0,c.lastIndexOf("&")),t=t+"?"+c),d.open(e,t,i),d.setRequestHeader("Content-type","application/x-www-form-urlencoded"),d.send()}else"POST"==e?(d.open(e,t,i),d.setRequestHeader("Content-type","application/x-www-form-urlencoded"),d.send((0,u.default)(n))):o("error type");d.onreadystatechange=function(){if(4==d.readyState)if(200==d.status){var e=d.response;"object"!==("undefined"==typeof e?"undefined":(0,r.default)(e))&&(e=JSON.parse(e)),a(e)}else o(d)}})}},25:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=void 0;t.baseUrl=i="https://mainsite-restapi.ele.me",t.baseUrl=i},67:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={}},71:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(48),r=i(a),o=n(49),u=i(o),d=n(50),s=i(d),c=n(25);t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"GET",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new s.default(function(i,a){e=e.toUpperCase(),t=c.baseUrl+t;var o={method:e,headers:{Accept:"application/json","Content-Type":"application/json"},mode:"no-cors"};if("GET"==e){var d="";(0,u.default)(n).forEach(function(e){d+=e+"="+n[e]+"&"}),""!==d&&(d=d.substr(0,d.lastIndexOf("&")),t=t+"?"+d)}else"POST"==e?Object.defineProperty(o,"body",{value:(0,r.default)(n)}):a("error type");fetch(t,o).then(function(e){return 200===e.status?e.json():a(e)}).then(function(e){i(e)}).catch(function(e){a(e)})})}},72:function(e,t){"use strict";!function(e,t){var n=e.documentElement,i="orientationchange"in window?"orientationchange":"resize",a=function(){var e=n.clientWidth;e&&(n.style.fontSize=20*(e/320)+"px")};e.addEventListener&&(t.addEventListener(i,a,!1),e.addEventListener("DOMContentLoaded",a,!1))}(document,window)},73:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(136),r=i(a);t.default=[{path:"/",component:r.default,children:[{path:"",component:function(e){return n.e(1,function(){return e(n(137))})}},{path:"/item",component:function(e){return n.e(0,function(){return e(n(138))})}},{path:"/score",component:function(e){return n.e(2,function(){return e(n(139))})}}]}]},74:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(24),r=i(a);t.default={addNum:function(e,t){var n=e.commit,i=e.state;n("REMBER_ANSWER",{id:t}),i.itemNum<i.itemDetail.length&&n("ADD_ITEMNUM",{num:1})},getData:function(e){var t=e.commit;e.state;(0,r.default)("GET","http://operating-activities.putao.com/happyfriday?active_topic_id=4").then(function(e){t("GET_DATA",{res:e})})},initializeData:function(e){var t=e.commit;t("INITIALIZE_DATA")}}},75:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(66),r=i(a),o=n(47),u=i(o),d=n(76),s=i(d),c=n(74),f=i(c),_=n(24);i(_);r.default.use(u.default);var l={level:"第一周",itemNum:1,allTime:0,timer:"",itemDetail:[{topic_id:20,active_topic_id:4,type:"ONE",topic_name:"题目一",active_id:1,active_title:"欢乐星期五标题",active_topic_phase:"第一周",active_start_time:"1479139200",active_end_time:"1482163200",topic_answer:[{topic_answer_id:66,topic_id:20,answer_name:"答案aaaa",is_standard_answer:0},{topic_answer_id:67,topic_id:20,answer_name:"答案bbbb",is_standard_answer:0},{topic_answer_id:68,topic_id:20,answer_name:"答案cccc",is_standard_answer:0},{topic_answer_id:69,topic_id:20,answer_name:"答案dddd",is_standard_answer:1}]},{topic_id:21,active_topic_id:4,type:"MORE",topic_name:"题目二",active_id:1,active_title:"欢乐星期五标题",active_topic_phase:"第一周",active_start_time:"1479139200",active_end_time:"1482163200",topic_answer:[{topic_answer_id:70,topic_id:21,answer_name:"答案A",is_standard_answer:1},{topic_answer_id:71,topic_id:21,answer_name:"答案B",is_standard_answer:0},{topic_answer_id:72,topic_id:21,answer_name:"答案C",is_standard_answer:0},{topic_answer_id:73,topic_id:21,answer_name:"答案D",is_standard_answer:0}]}],answerid:{}};t.default=new u.default.Store({state:l,actions:f.default,mutations:s.default})},76:function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a,r=n(80),o=i(r),u="GET_DATA",d="ADD_ITEMNUM",s="REMBER_ANSWER",c="REMBER_TIME",f="INITIALIZE_DATA",_="GET_USER_INFORM";t.default=(a={},(0,o.default)(a,u,function(e,t){200==t.res.httpStatusCode&&(e.itemDetail=t.res.topiclist)}),(0,o.default)(a,_,function(e,t){e.user_id=t.res.users_id}),(0,o.default)(a,d,function(e,t){e.itemNum+=t.num}),(0,o.default)(a,s,function(e,t){e.answerid[e.itemNum]=t.id}),(0,o.default)(a,c,function(e){e.timer=setInterval(function(){e.allTime++},1e3)}),(0,o.default)(a,f,function(e){e.itemNum=1,e.allTime=0}),a)},125:function(e,t){},127:function(e,t){},136:function(e,t,n){var i,a;n(127),i=n(67);var r=n(141);a=i=i||{},"object"!=typeof i.default&&"function"!=typeof i.default||(a=i=i.default),"function"==typeof a&&(a=a.options),a.render=r.render,a.staticRenderFns=r.staticRenderFns,e.exports=i},141:function(e,t){e.exports={render:function(){var e=this,t=e.$createElement;return t("div",{attrs:{id:"app"}},[t("router-view")])},staticRenderFns:[]}}});
\ No newline at end of file
!function(e){function a(t){if(n[t])return n[t].exports;var r=n[t]={exports:{},id:t,loaded:!1};return e[t].call(r.exports,r,r.exports,a),r.loaded=!0,r.exports}var t=window.webpackJsonp;window.webpackJsonp=function(c,o){for(var p,f,s=0,i=[];s<c.length;s++)f=c[s],r[f]&&i.push.apply(i,r[f]),r[f]=0;for(p in o)e[p]=o[p];for(t&&t(c,o);i.length;)i.shift().call(null,a);if(o[0])return n[0]=0,a(0)};var n={},r={3:0};a.e=function(e,t){if(0===r[e])return t.call(null,a);if(void 0!==r[e])r[e].push(t);else{r[e]=[t];var n=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.src=a.p+"static/js/"+({0:"item",1:"home",2:"score",4:"vendor",5:"app"}[e]||e)+"."+{0:"fb31465b6c6baab204a8",1:"3df2ba210b8842ba636c",2:"a3c49ab604ed4c1bd9bd",4:"57e45fed1af7392f04f4",5:"51423e8986afa67289bf"}[e]+".min.js",n.appendChild(c)}},a.m=e,a.c=n,a.p="/elm/"}([]);
\ No newline at end of file
!function(e){function t(a){if(n[a])return n[a].exports;var r=n[a]={exports:{},id:a,loaded:!1};return e[a].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var a=window.webpackJsonp;window.webpackJsonp=function(c,o){for(var p,s,f=0,i=[];f<c.length;f++)s=c[f],r[s]&&i.push.apply(i,r[s]),r[s]=0;for(p in o)e[p]=o[p];for(a&&a(c,o);i.length;)i.shift().call(null,t);if(o[0])return n[0]=0,t(0)};var n={},r={3:0};t.e=function(e,a){if(0===r[e])return a.call(null,t);if(void 0!==r[e])r[e].push(a);else{r[e]=[a];var n=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.src=t.p+"static/js/"+({0:"item",1:"home",2:"score",4:"vendor",5:"app"}[e]||e)+"."+{0:"fa1726f8a65e442c1f4a",1:"ad2220ea5464c16513d0",2:"76b8282cc8029dd020f1",4:"b76f3e72a52e28452e62",5:"1852ffdc4750c57a5290"}[e]+".min.js",n.appendChild(c)}},t.m=e,t.c=n,t.p="/elm/"}([]);
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -6,11 +6,10 @@
<meta name="screen-orientation" content="portrait" />
<meta content="yes" name="apple-mobile-web-app-capable">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta name="format-detection" content="telephone=no">
<meta name="full-screen" content="yes">
<meta name="x5-fullscreen" content="true">
<title>快乐星期五</title>
<title>饿了么</title>
</head>
<body>
<div id="app">
......
export default (type='GET', url='', data={}, async=true) => {
import {baseUrl} from './env'
export default (type = 'GET', url = '', data = {}, async = true) => {
return new Promise((resolve, reject) => { //定义一个promise
type = type.toUpperCase();
url = baseUrl + url;
let requestObj;
if (window.XMLHttpRequest) {
requestObj = new XMLHttpRequest();
......@@ -14,8 +17,10 @@ export default (type='GET', url='', data={}, async=true) => {
Object.keys(data).forEach(key => {
dataStr += key + '=' + data[key] + '&';
})
dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
url = url + '?' + dataStr;
if (dataStr !== '') {
dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
url = url + '?' + dataStr;
}
requestObj.open(type, url, async);
requestObj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
requestObj.send();
......
/**
* 配置编译环境和线上环境之间的切换
*
* baseUrl : 路由地址域名
*
*/
let baseUrl;
if (process.env.NODE_ENV == 'development') {
baseUrl = '';
}else{
baseUrl = 'https://mainsite-restapi.ele.me';
}
export {baseUrl}
\ No newline at end of file
let baseUrl = ''
import {baseUrl} from './env'
export default (type='GET', url='', data={}) => {
export default (type = 'GET', url = '', data = {}) => {
return new Promise((resolve, reject) => { //定义一个promise
type = type.toUpperCase();
let dataStr = ''; //数据拼接字符串
Object.keys(data).forEach( key => {
dataStr += key + '=' + data[key] + '&';
})
dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
if (dataStr !== '') {
url = baseUrl + url + '?' + dataStr;
}else {
url = baseUrl + url
}
fetch(url, {
url = baseUrl + url
let requestObj = {
method: type,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
mode: "no-cors",
// body: JSON.stringify({
// content: "留言内容"
// })
}).then(res => {
}
if (type == 'GET') {
let dataStr = ''; //数据拼接字符串
Object.keys(data).forEach(key => {
dataStr += key + '=' + data[key] + '&';
})
if (dataStr !== '') {
dataStr = dataStr.substr(0, dataStr.lastIndexOf('&'));
url = url + '?' + dataStr;
}
}else if (type == 'POST') {
Object.defineProperty(requestObj, 'body', {
value: JSON.stringify(data)
})
}else {
reject('error type')
}
fetch(url, requestObj).then(res => {
if (res.status === 200) {
return res.json()
} else {
......
......@@ -6,24 +6,21 @@ import ajax from './config/ajax'
import fetch from './config/fetch'
import './style/common'
import './config/rem'
// ajax('GET', '/shopping/restaurants',{
// latitude: 31.16407,
// longitude: 121.38876,
// offset: 0,
// limit: 20,
// 'extras[]': 'activities',
// })
import './config/env'
fetch('GET', '/shopping/restaurants',{
latitude: 31.16407,
longitude: 121.38876,
offset: 0,
limit: 20,
'extras[]': 'activities',
})
fetch('get', '/v2/index_entry', {
ajax('get', '/v2/index_entry', {
geohash: 'wtw3630xg5e',
group_type: 1,
'flags[]': 'F',
}).then(res => {
console.log(res)
}).catch(error => {
console.log(error)
})
......@@ -33,18 +30,16 @@ fetch('get', '/v2/index_entry', {
// type: 'sms',
// }
// var a = JSON.stringify(obj)
// ajax('POST', '/v4/mobile/verify_code/send', a)
// fetch('POST', '/v4/mobile/verify_code/send', obj)
// var loginObj = {
// code:212128,
// code:567052,
// mobile: '13681711254',
// validate_token: '0af8df2bfd363e37cba0c616498e049777d7b118f13be41664491a05d8ad9da2'
// validate_token: '6a869f38c6d0a0bb5b023b35c5e35ceef8d710c1502369d56709b1632df830f8'
// }
// var b = JSON.stringify(loginObj)
// ajax('POST', '/v1/login/app_mobile', b)
// fetch('POST', '/v1/login/app_mobile', loginObj)
Vue.use(VueRouter)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册