Commit 796c3d5e by 刘泽奇

123

parent 0af37616
...@@ -71,13 +71,13 @@ ...@@ -71,13 +71,13 @@
<span>{{channelMessage}}工商、商标注册平台</span> <span>{{channelMessage}}工商、商标注册平台</span>
</div> </div>
<div v-if="user_Name"> <div v-if="user_Name">
<el-dropdown> <el-dropdown @command="headerMenu">
<span class="el-dropdown-link"> <span class="el-dropdown-link">
{{user_Name}}<i class="el-icon-arrow-down el-icon--right"></i> {{user_Name}}<i class="el-icon-arrow-down el-icon--right"></i>
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-plus">我的订单</el-dropdown-item> <el-dropdown-item icon="el-icon-s-order">我的订单</el-dropdown-item>
<el-dropdown-item icon="el-icon-circle-plus">退出登录</el-dropdown-item> <el-dropdown-item icon="el-icon-bicycle" command="loginOut">退出登录</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
<!-- <span @click="loginOut" v-if="user_Name">退出</span> --> <!-- <span @click="loginOut" v-if="user_Name">退出</span> -->
......
basecomp.forEach(function (comp) { basecomp.forEach(function (comp) {
try{ try {
var obj = eval("(" + comp + ")"); var obj = eval("(" + comp + ")");
Vue.component(obj.vname, obj); Vue.component(obj.vname, obj);
}catch(e){ } catch (e) {
console.log(e); console.log(e);
} }
}); });
console.log("load base component finished..."); console.log("load base component finished...");
function buildPromise(compath){ function buildPromise(compath) {
return Promise.resolve(new Promise(function(resolve,reject){ return Promise.resolve(new Promise(function (resolve, reject) {
//异步加载组件 //异步加载组件
axios.get(compath).then(function(res){ axios.get(compath).then(function (res) {
console.log(compath); console.log(compath);
// var obj=eval("("+res.data+")"); // var obj=eval("("+res.data+")");
var obj = eval("(" + unescape(res.data) + ")"); var obj = eval("(" + unescape(res.data) + ")");
resolve(obj); resolve(obj);
}).catch(function(reason){ }).catch(function (reason) {
console.log(reason) console.log(reason)
}) })
})); }));
}
function componentFactory(comname) {
var compath = "/vue/comp/" + comname;
var tmpFunc = function () {
return buildPromise(compath);
} }
function componentFactory(comname){ return tmpFunc;
var compath="/vue/comp/"+comname; }
var tmpFunc=function(){ window.componentFactory = componentFactory;
return buildPromise(compath); const store = new Vuex.Store({
} state: {
return tmpFunc; currentCodePath: "",
} currentUser: null,
window.componentFactory=componentFactory; curSelRow: {},
const store = new Vuex.Store({ },
state: { });
currentCodePath:"", Vue.mixin({
currentUser:null, props: ["groupName", "modelName"],
curSelRow:{}, computed: Vuex.mapState({
currentUser: state => {
return state.currentUser;
},
codePath: state => {
return state.currentCodePath;
},
ctlName: function () {
return this.groupName + "/" + this.modelName + "Ctl";
},
}),
methods: {
getUrl(md) {
return "web/" + this.ctlName + "/" + md;
}, },
}
});
var routes = [];
var codepaths = {};
axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
Object.keys(d.data.data.bizs).map((k) => {
//path是路由,静态的路由
var pathTmp = d.data.data.bizs[k].path;
var codepath = d.data.data.bizs[k].codepath;
var tmp = {
"path": pathTmp, "components": {
"default": componentFactory(d.data.data.bizs[k].comname)
},
};
routes.push(tmp);
codepaths[pathTmp] = codepath;//暂存每个叶子节点对应的codepath
});
console.log(routes);
var router = new VueRouter({
routes: routes,
});
router.beforeEach((to, from, next) => {
store.state.currentCodePath = codepaths[to.path];
next();
}); });
Vue.mixin({ var app = new Vue({
props:["groupName","modelName"], el: "#app",
computed:Vuex.mapState({ router: router,
currentUser:state=>{ store: store,
return state.currentUser; data: function () {
return {
loading: true,
logins: [
],
};
},
created() {
$(window).resize(() => {
this.initWindowShow();
});
this.initWindowShow();
this.loading = false;
},
updated() {
},
mounted() {
var self = this;
if (!this.currentUser) {
this.logins.push({ "icon": "el-icon-location-outline", "title": "登录", "type": "text", key: "login", "isOnGrid": true });
this.logins.push({ "icon": "el-icon-edit-outline", "title": "注册", "type": "text", key: "register", "isOnGrid": true });
} else {
this.logins.push({ "icon": "el-icon-arrow-right", "title": "退出", "type": "text", key: "exit", "isOnGrid": true });
}
},
methods: {
initWindowShow() {
var h = $(window).height();
var m = h - 90;
$("#app").css("min-height", h + "px");
$("#app-stage").css("min-height", m + "px");
$("#app").css("visibility", 'visible');
},
localdata(key, item) {
if (item) {
localStorage.setItem(key, JSON.stringify(item));
} else {
var strobj = localStorage.getItem(key);
if (strobj) {
return JSON.parse(strobj);
} else {
return null;
}
}
}, },
codePath:state=>{ showMask() {
return state.currentCodePath; this.loading = true;
}, },
ctlName:function(){ hideMask() {
return this.groupName +"/"+this.modelName+"Ctl"; this.loading = false;
}, },
}), onMenuSelect: function (index, keyIndex) {
methods:{ console.log(index);
getUrl(md){ this.$router.push(index);
return "web/"+this.ctlName+"/"+md;
}, },
} formatItem: function (t, label) {
}); if (t) {
var routes=[]; if (!label && t.src) {//表示当前是image元素
var codepaths={}; if (this.currentUser) {
axios.get("/web/common/metaCtl/getRouteConfig").then(d=>{ return this.currentUser.imgUrl;
Object.keys(d.data.data.bizs).map((k)=>{ }
//path是路由,静态的路由 return t.src;
var pathTmp=d.data.data.bizs[k].path; } else {
var codepath=d.data.data.bizs[k].codepath; return label;
var tmp={"path":pathTmp,"components":{ }
"default":componentFactory(d.data.data.bizs[k].comname) }
},};
routes.push(tmp);
codepaths[pathTmp]=codepath;//暂存每个叶子节点对应的codepath
});
console.log(routes);
var router=new VueRouter({
routes:routes,
});
router.beforeEach((to, from,next) => {
store.state.currentCodePath = codepaths[to.path];
next();
});
var app = new Vue({
el:"#app",
router:router,
store:store,
data:function(){
return {
loading:true,
logins:[
],
};
}, },
created(){ clkapp() {
$(window).resize(()=>{ location.href = appinfo.homePage;
this.initWindowShow();
});
this.initWindowShow();
this.loading=false;
}, },
updated(){ async exitclick() {
var d = await this.$root.postReq("/web/auth/userCtl/exit", {});
location.href = appinfo.homePage;
}, },
mounted(){ async checkLogin(cbk) {
var self=this; var d = await this.$root.postReq("/web/auth/userCtl/checkLogin", {});
if(!this.currentUser){ if (d && d.status == 0 && d.data) {
this.logins.push({"icon":"el-icon-location-outline","title":"登录","type":"text",key:"login","isOnGrid":true}); this.$store.state.currentUser = d.data;
this.logins.push({"icon":"el-icon-edit-outline","title":"注册","type":"text",key:"register","isOnGrid":true}); cbk();
}else{ } else {
this.logins.push({"icon":"el-icon-arrow-right","title":"退出","type":"text",key:"exit","isOnGrid":true}); //alert("no login");
location.href = appinfo.homePage;
} }
}, },
methods:{ getReq(path, data) {
initWindowShow(){ var self = this;
var h=$(window).height(); return axios.get(path, { params: data, "headers": { "codepath": this.codePath } }).then(function (r) {
var m=h-90; if (r && r.data && r.data.status == -99) {
$("#app").css("min-height",h+"px"); self.$store.state.currentUser = null;
$("#app-stage").css("min-height",m+"px"); self.hideMask();
$("#app").css("visibility",'visible'); self.$router.push("/");
}, self.$message({
localdata(key,item){ message: '扫码成为合伙人',
if(item){ type: 'warning'
localStorage.setItem(key,JSON.stringify(item)); });
}else{ self.showLogin();
var strobj=localStorage.getItem(key); return null;
if(strobj){ } else {
return JSON.parse(strobj); if (r.data && r.data.bizmsg && r.data.bizmsg != "empty") {
}else{
return null;
}
}
},
showMask(){
this.loading=true;
},
hideMask(){
this.loading=false;
},
onMenuSelect: function (index,keyIndex) {
console.log(index);
this.$router.push(index);
},
formatItem: function (t, label) {
if (t) {
if (!label && t.src) {//表示当前是image元素
if (this.currentUser) {
return this.currentUser.imgUrl;
}
return t.src;
} else {
return label;
}
}
},
clkapp(){
location.href=appinfo.homePage;
},
async exitclick(){
var d= await this.$root.postReq("/web/auth/userCtl/exit",{});
location.href=appinfo.homePage;
},
async checkLogin(cbk){
var d= await this.$root.postReq("/web/auth/userCtl/checkLogin",{});
if(d && d.status==0 && d.data){
this.$store.state.currentUser=d.data;
cbk();
}else{
//alert("no login");
location.href=appinfo.homePage;
}
},
getReq(path,data){
var self=this;
return axios.get(path,{params:data,"headers":{"codepath":this.codePath}}).then(function(r){
if(r && r.data && r.data.status==-99){
self.$store.state.currentUser=null;
self.hideMask();
self.$router.push("/");
self.$message({
message: '扫码成为合伙人',
type: 'warning'
});
self.showLogin();
return null;
}else{
if(r.data && r.data.bizmsg && r.data.bizmsg!="empty"){
self.$message({
message: r.data.bizmsg,
type: 'warning'
});
}
return r.data?r.data:null;;
}
});
},
postReq(path,data){
return axios.post(path,data,{"headers":{'codepath': this.codePath}}).then(function(r){
if(r && r.data && r.data.status==-99){
self.$store.state.currentUser=null;
self.hideMask();
self.$router.push("/");
self.$message({ self.$message({
message: '扫码成为合伙人', message: r.data.bizmsg,
type: 'warning' type: 'warning'
}); });
self.showLogin();
return null;
}else{
return r.data?r.data:null;
} }
}); return r.data ? r.data : null;;
}, }
});
},
postReq(path, data) {
return axios.post(path, data, { "headers": { 'codepath': this.codePath } }).then(function (r) {
if (r && r.data && r.data.status == -99) {
self.$store.state.currentUser = null;
self.hideMask();
self.$router.push("/");
self.$message({
message: '扫码成为合伙人',
type: 'warning'
});
self.showLogin();
return null;
} else {
return r.data ? r.data : null;
}
});
}, },
}); },
}); });
});
//}); //});
...@@ -34,6 +34,7 @@ const store = new Vuex.Store({ ...@@ -34,6 +34,7 @@ const store = new Vuex.Store({
currentCodePath: "", currentCodePath: "",
currentUser: null, currentUser: null,
curSelRow: {}, curSelRow: {},
reqUrl: ""
}, },
}); });
Vue.mixin({ Vue.mixin({
...@@ -75,8 +76,11 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => { ...@@ -75,8 +76,11 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
if (to.path == "/" && location.hostname == "tm.plus.jdcloud.com") { if (to.path == "/" && location.hostname == "tm.plus.jdcloud.com") {
router.replace({ path: '/jd/jdtrademark' }); router.replace({ path: '/jd/jdtrademark' });
} }
if (to.path.includes('login')) {
console.log(to, from); store.state.reqUrl = from.path;
console.log(to, from, store.state.reqUrl);
}
next(); next();
}); });
Vue.use(window['vue-cropper']); Vue.use(window['vue-cropper']);
...@@ -86,6 +90,8 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => { ...@@ -86,6 +90,8 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
store: store, store: store,
data: function () { data: function () {
return { return {
// 回调地址
reqUrl: "",
// 请求地址 // 请求地址
host: ``, host: ``,
// 请求头携带参数 // 请求头携带参数
...@@ -165,7 +171,6 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => { ...@@ -165,7 +171,6 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
commonFooter: true, commonFooter: true,
user_Name: "", user_Name: "",
channelMessage: "", channelMessage: "",
}; };
}, },
created() { created() {
...@@ -176,6 +181,7 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => { ...@@ -176,6 +181,7 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
this.loading = false; this.loading = false;
this.channelName = location.hash.split('/')[1]; this.channelName = location.hash.split('/')[1];
this.accessTitle(); this.accessTitle();
}, },
updated() { updated() {
...@@ -189,6 +195,10 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => { ...@@ -189,6 +195,10 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
this.logins.push({ "icon": "el-icon-edit-outline", "title": "注册", "type": "text", key: "register", "isOnGrid": true }); this.logins.push({ "icon": "el-icon-edit-outline", "title": "注册", "type": "text", key: "register", "isOnGrid": true });
} else { } else {
this.logins.push({ "icon": "el-icon-arrow-right", "title": "退出", "type": "text", key: "exit", "isOnGrid": true }); this.logins.push({ "icon": "el-icon-arrow-right", "title": "退出", "type": "text", key: "exit", "isOnGrid": true });
};
if ($.cookie('userpin')) {
this.user_Name = $.cookie('userName');
this.channelUserId = $.cookie('channelUserId');
} }
}, },
watch: { watch: {
...@@ -227,7 +237,20 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => { ...@@ -227,7 +237,20 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
break; break;
} }
}, },
headerMenu(key) {
console.log(key);
switch (key) {
case 'loginOut':
this.loginOut();
break;
default:
break;
}
},
loginOut() { loginOut() {
let _this = this;
console.log(this.channelName);
/* /*
var url = encodeURIComponent("http://tm.plus.jdcloud.com/#/jd/jdtrademark") ; var url = encodeURIComponent("http://tm.plus.jdcloud.com/#/jd/jdtrademark") ;
...@@ -235,26 +258,40 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => { ...@@ -235,26 +258,40 @@ axios.get("/web/common/metaCtl/getRouteConfig").then(d => {
/* /*
location.href = `http://login.jdcloud.com/logout?callback=http://tm.plus.jdcloud.com/#/jd/jdtrademark`; location.href = `http://login.jdcloud.com/logout?callback=http://tm.plus.jdcloud.com/#/jd/jdtrademark`;
*/ */
switch (this.channelName) {
case "jd":
$.ajax({
async: true,
url: "https://login.jdcloud.com/logout",
type: "GET",
dataType: "jsonp",
jsonp: 'callback',
jsonpCallback: 'handleResponse',
data: {
},
success: function (response, status, xhr) {
console.log('状态为:' + status + ',状态是:' + xhr.statusText);
console.log(response);
if (response.code == 0) {
console.log(response);
_this.$router.push({ path: `/${_this.$root.channelName}/jdtrademark` });
}
}
});
break;
case "bw":
$.removeCookie("userpin");
$.removeCookie("userName");
$.removeCookie("channelUserId");
this.user_Name = "";
this.channelUserId = '';
break;
default:
break;
}
let _this = this;
$.ajax({
async: true,
url: "https://login.jdcloud.com/logout",
type: "GET",
dataType: "jsonp",
jsonp: 'callback',
jsonpCallback: 'handleResponse',
data: {
},
success: function (response, status, xhr) {
console.log('状态为:' + status + ',状态是:' + xhr.statusText);
console.log(response);
if (response.code == 0) {
console.log(response);
_this.$router.push({ path: `/${_this.$root.channelName}/jdtrademark` });
}
}
});
}, },
......
...@@ -155,9 +155,32 @@ ...@@ -155,9 +155,32 @@
}, },
methods: { methods: {
/*全选 */
goIndentList(){ goIndentList(){
location.href = "https://oauth2.jdcloud.com/authorize?response_type=token&redirect_uri=https://tm.plus.jdcloud.com/jdtm/getUser&state=jdindentlist&client_id=9491577327154697"; switch (this.$root.channelName) {
case "jd":
location.href = "https://oauth2.jdcloud.com/authorize?response_type=token&redirect_uri=https://tm.plus.jdcloud.com/jdtm/getUser&state=jdindentlist&client_id=9491577327154697";
break;
case "bw":
console.log($.cookie("channelUserId"), `llllllllllllllllllllllll`);
if ($.cookie("channelUserId")) {
this.$router.push({
path: `/${this.$root.channelName}/jdindentlist`,
query: { channelUserId: $.cookie("channelUserId") }
});
} else {
this.$router.push({
path: `/${this.$root.channelName}/login`,
query: { reqUrl: location.href }
});
}
break;
default:
break;
}
}, },
handleCheckAllChange(val) { handleCheckAllChange(val) {
if (val) { if (val) {
...@@ -198,7 +221,7 @@ ...@@ -198,7 +221,7 @@
jumpJdProductDetails(code){ jumpJdProductDetails(code){
console.log(this.$root.channelName); console.log(this.$root.channelName);
switch (this.$root.channelName) { switch (this.$root.channelName) {
case "jd": case "jd":
if (code.channelItemCode) { if (code.channelItemCode) {
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
} }
} }
if (rule.field == "code") { if (rule.field == "code") {
if (that.rcode != value) { if (that.form1.code.length != 6) {
return callback(new Error("输入验证码有误,请重新输入")); return callback(new Error("输入验证码有误,请重新输入"));
} }
} }
...@@ -94,9 +94,13 @@ ...@@ -94,9 +94,13 @@
{ min: 6, max: 18, message: '长度在 6 到 18 个字符', trigger: 'blur' } { min: 6, max: 18, message: '长度在 6 到 18 个字符', trigger: 'blur' }
], ],
}, },
reqUrl: "",
} }
}, },
mounted: function() { mounted: function() {
if (this.$route.query.reqUrl != "") {
this.reqUrl = this.$route.query.reqUrl;
}
}, },
created: function() { created: function() {
...@@ -106,6 +110,7 @@ ...@@ -106,6 +110,7 @@
} else { } else {
this.loginUrl = "https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_41110157500594182420192913391824zhuce_background.png"; this.loginUrl = "https://gsb-zc.oss-cn-beijing.aliyuncs.com//zc_41110157500594182420192913391824zhuce_background.png";
} }
}, },
methods: { methods: {
handleSelect(key, keyPath) { handleSelect(key, keyPath) {
...@@ -140,7 +145,6 @@ ...@@ -140,7 +145,6 @@
this.resetall(); this.resetall();
}, },
register(){ register(){
console.log(this.$root.channelName, "bbbbbbbbbbbb");
switch (this.$root.channelName) { switch (this.$root.channelName) {
case "bw": case "bw":
this.$router.push({ path: `/bw/register` }); this.$router.push({ path: `/bw/register` });
...@@ -156,7 +160,14 @@ ...@@ -156,7 +160,14 @@
this.resetall(); this.resetall();
}, },
obtaincode1(){ obtaincode1(){
this.fetchVcode(this.form1.mobile) let obj = this.$root.copyParams({ mobile: this.form1.mobile }, "getVerifyCode", "/auth/accessAuth/springBoard");
this.$root.postReq("/web/trademark/tmqueryCtl/doPost", obj).then((d) => {
if (d.status == 0) {
console.log("返回信息", d);
} else {
console.log(d.msg);
}
});
}, },
obtaincode2(){ obtaincode2(){
var that = this; var that = this;
...@@ -245,32 +256,58 @@ ...@@ -245,32 +256,58 @@
}, },
checklogin1(){ checklogin1(){
var that = this; var that = this;
var obj = { var userInfo = {
mobile: that.form1.mobile, mobile: that.form1.mobile,
vcode: that.form1.code,
}; };
that.$refs.form1.validate(valid => { that.$refs.form1.validate(valid => {
if (valid) { if (valid) {
that.$root.postReq("/web/userCtl/loginByMobile", { u: obj }).then(function (d) { let obj = this.$root.copyParams(userInfo, "userPinByLgoinVcode", "/auth/accessAuth/springBoard");
this.$root.loading = true;
this.$root.postReq("/web/trademark/tmqueryCtl/doPost", obj).then((d) => {
this.$root.loading = false;
if (d.status == 0) { if (d.status == 0) {
console.log("..................................................helllo.................................."); $.cookie('channelUserId', d.data.channelUserId);
$.cookie('userName', d.data.userName);
$.cookie('userpin', d.data.userpin);
this.$root.user_Name = d.data.userName;
this.$root.channelUserId = d.data.channelUserId;
that.$root.refreshLoginState(() => {
console.log("....................................................................................innner");
var afto = localStorage.getItem("afterLogin"); if (!this.$store.state.reqUrl) {
if (afto) { this.$router.push({
that.$root.pushx(JSON.parse(afto)); path: `/${this.$root.channelName}/jdtrademark`,
localStorage.removeItem("afterLogin"); query: { channelUserId: d.data.channelUserId }
that.$root.removetab("/login"); })
} else { } else {
location.reload(); this.$router.push({
} path: `${this.$store.state.reqUrl}`,
query: { channelUserId: d.data.channelUserId }
})
}
console.log("返回信息", d)
} else if (d.status == 2030) {
this.$message({
message: d.msg,
type: 'warning'
});
} else if (d.status == 2060) {
this.$message({
message: d.msg,
type: 'warning'
});
} else {
this.$message({
message: "请求失败",
type: 'warning'
}); });
} }
}) });
} }
}) })
}, },
/**密码登录2222222222 */
checklogin2(){ checklogin2(){
var that = this; var that = this;
var obj = { var obj = {
...@@ -281,19 +318,42 @@ ...@@ -281,19 +318,42 @@
if (valid) { if (valid) {
var userInfo = that.$root.copyParams(obj, "userPinByLgoin", "/auth/accessAuth/springBoard"); var userInfo = that.$root.copyParams(obj, "userPinByLgoin", "/auth/accessAuth/springBoard");
console.log(userInfo, 'mmmmmmmmmmmmmmmmmmmmmm'); console.log(userInfo, 'mmmmmmmmmmmmmmmmmmmmmm');
this.$root.loading = true;
this.$root.postReq("/web/trademark/tmqueryCtl/doPost", userInfo).then((d) => { this.$root.postReq("/web/trademark/tmqueryCtl/doPost", userInfo).then((d) => {
this.$root.loading = false;
if (d.status == 0) { if (d.status == 0) {
$.cookie('channelUserId', this.$root.channelUserId);
this.$root.channelUserId = decodeURIComponent(d.data.channelUserId);
$.cookie('channelUserId', d.data.channelUserId); $.cookie('channelUserId', d.data.channelUserId);
$.cookie('userName', d.data.userName); $.cookie('userName', d.data.userName);
$.cookie('userpin', d.data.userpin);
this.$root.user_Name = d.data.userName;
this.$root.channelUserId = d.data.channelUserId;
if (!this.$store.state.reqUrl) {
this.$router.push({
path: `/${this.$root.channelName}/jdtrademark`,
query: { channelUserId: d.data.channelUserId }
})
} else {
this.$router.push({
path: `${this.$store.state.reqUrl}`,
query: { channelUserId: d.data.channelUserId }
})
}
console.log("返回信息", d) console.log("返回信息", d)
} else if (d.status == 2010) { } else if (d.status == 2010) {
console.log(d.msg); this.$message({
message: d.msg,
type: 'warning'
});
} else if (d.status == 2060) { } else if (d.status == 2060) {
console.log(d.msg); this.$message({
message: d.msg,
type: 'warning'
});
} else { } else {
console.log(d.msg); this.$message({
message: "请求失败",
type: 'warning'
});
} }
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment