* Custom Products take 5-7 weeks to manufacture
`; $(".bodyconfig-box").append(dom); } } const initCustomConfig = () => { let addIconSvg = `
`; for (let i = 0; i < cdata.customConfig.length; i++) { let fontDom = ""; let colorDom = ""; let fontDom2 = ""; let colorDom2 = ""; let greekDom = ""; let flagDom = ""; let title1 = (typeof cdata.customConfig[i].title1 != "undefined") ? cdata.customConfig[i].title1 : "Add text"; let title2 = (typeof cdata.customConfig[i].title2 != "undefined") ? cdata.customConfig[i].title2 : "Add greek"; let title3 = (typeof cdata.customConfig[i].title3 != "undefined") ? cdata.customConfig[i].title3 : "Add image"; let title4 = (typeof cdata.customConfig[i].title4 != "undefined") ? cdata.customConfig[i].title4 : "Add flag"; fontlist.forEach((v, oi) => { fontDom += ` `; }) fontcolorlist.forEach((v, oi) => { colorDom += ` `; }) fontlist.forEach((v, oi) => { fontDom2 += ` `; }) fontcolorlist.forEach((v, oi) => { colorDom2 += ` `; }) greekList.forEach(v => { greekDom += `
`; }) imageList.forEach(v => { flagDom += `
`; }) let dom = `
`; $(".customconfig-box").append(dom); } } const initNewConfig = () => { let dom = ""; for (let i = 0; i < cdata.newConfig.length; i++) { if (cdata.newConfig[i].type == 1) { // 纯开关 dom += `
`; } else if (cdata.newConfig[i].type == 2) { // 开关+选择器 let selectDom = ""; let options = `
`; for (let j = 0; j < cdata.newConfig[i].options.length; j++) { options += `
`; } dom += `
`; } else if (cdata.newConfig[i].type == 3) { // 开关+输入框 dom += `
`; } else if (cdata.newConfig[i].type == 4) { // 开关+选择器+上传文件 let selectDom = ""; if (cdata.newConfig[i].title1) { let options = `
`; for (let j = 0; j < cdata.newConfig[i].options.length; j++) { options += `
`; } selectDom = `
`; } dom += `
${selectDom}
`; } else if (cdata.newConfig[i].type == 5) { // 开关+选择器 let options = `
`; for (let j = 0; j < cdata.newConfig[i].options.length; j++) { options += `
`; } dom += `
`; } else if (cdata.newConfig[i].type == 6) { dom += `
${cdata.newConfig[i].title}
`; } else if (cdata.newConfig[i].type == 7) { // 纯文本输入 dom += `
`; } } $(".gpo-app").append(dom); } const getItemDom = (index, type, key, text, fee) => { let edit = ""; if (type == "text" || type == "greek") { edit = 'Edit'; } let dom = `
`; return dom; } const setTextCustom = (divDom, index, type = "text") => { let text = $(divDom).find(".custom-text-input").val(); // if (!text) return; let isAdd = true; let param = { key: Date.now(), text: text, color: $(divDom).find(".custom-text-color").attr("data-color"), size: $(divDom).find(".custom-text-size").val(), font: $(divDom).find(".custom-text-font").attr("data-selected"), direction: $(divDom).find(".custom-text-direction").attr("data-selected"), }; if ($(divDom).attr("data-key")) { param.key = $(divDom).attr("data-key"); isAdd = false; } else { param.key = `custom-${index}-${type}-${param.key}`; } addText(index, param); customData.customConfig[param.key] = { type: type, index: index, fee: type == "text" ? config.textFee : config.wordFee, text: text, color: param.color, size: param.size, font: param.font, direction: param.direction, colorId: $(`input[name="customconfig-${index}-${type}-color"]:checked`).attr("id"), fontId: $(`input[name="customconfig-${index}-${type}-font"]:checked`).attr("id"), directioId: $(`input[name="customconfig-${index}-${type}-direction"]:checked`).attr("id"), }; if (isAdd) { let dom = getItemDom(index, type, param.key, text, type == "text" ? config.textFee : config.wordFee); $(divDom).parent().find(".custom-item-list").append(dom); } else { $(".custom-item-item[data-key='" + param.key + "'] .pd__text").text(text.substr(0, 10)); } if ($(divDom).parents("fieldset.product-option__field-group").find(".custom-item-item").length > 0) { $(divDom).parents("fieldset.product-option__field-group").find("fieldset.pd-product-form__field").css({ display: "block" }); } return param.key; } const setImageCustom = (divDom, index, imglink, type = "upload") => { let param = { key: Date.now(), image: imglink, }; param.key = `custom-${index}-${type}-${param.key}`; addImage(index, param); customData.customConfig[param.key] = { type: type, index: index, fee: type == "upload" ? config.uploadFee : config.imageFee, image: imglink, imgname: imglink }; let dom = getItemDom(index, type, param.key, "Image", type == "upload" ? config.uploadFee : config.imageFee); $(divDom).parent().find(".custom-item-list").append(dom); if ($(divDom).parents("fieldset.product-option__field-group").find(".custom-item-item").length > 0) { $(divDom).parents("fieldset.product-option__field-group").find("fieldset.pd-product-form__field").css({ display: "block" }); } } const setFlagCustom = (divDom, index, imglink, name, type = "image") => { let param = { key: Date.now(), image: imglink, }; param.key = `custom-${index}-${type}-${param.key}`; addImage(index, param); customData.customConfig[param.key] = { type: type, index: index, fee: config.imageFee, image: imglink, imgname: name }; let dom = getItemDom(index, type, param.key, "Image", config.imageFee); $(divDom).parent().find(".custom-item-list").append(dom); if ($(divDom).parents("fieldset.product-option__field-group").find(".custom-item-item").length > 0) { $(divDom).parents("fieldset.product-option__field-group").find("fieldset.pd-product-form__field").css({ display: "block" }); } } const initEvent = () => { $(document).on("change", ".bodyconfig-input", function (e) { let value = e.currentTarget.value; let color = $(e.currentTarget).data("color"); let cindex = $(e.currentTarget).data("cindex"); let img = $(e.currentTarget).data("img"); let fee = $(e.currentTarget).data("fee"); let vid = $(e.currentTarget).data("vid"); $(this).parents(".pd-product-form__dropdown").find("summary .s-text").text(value) $(this).parents(".pd-product-form__dropdown").find("summary").attr("data-selected", value).attr("style", `--before-background: ${color};`).attr("data-color", color); $(this).parents(".pd-product-form__dropdown").removeAttr("open"); if (img) { bodyChangeImg(cindex, img); } $(".p-box-item").eq(1).click(); if (parseFloat(fee) > 0 && vid) { customData.bodyConfig["_" + cindex] = { fee: fee, vid: vid, value: value } } else if (typeof customData.bodyConfig["_" + cindex] == "object") { delete customData.bodyConfig["_" + cindex]; } // e.stopPropagation(); }); $(document).on("click", ".customcofig-add-btn", function (e) { e.stopPropagation(); let dom = $(this).parent().parent().find(".pd-product-form__object-options"); let type = $(this).data("type"); $(dom).attr("data-key", ""); if (type == "text") { $(dom).find(".custom-text-input").val(""); let key = setTextCustom($(dom), $(dom).find(".popup-done-button").attr("data-index")); $(dom).attr("data-key", key); } else if (type == "greek") { $(dom).find(".custom-text-input").val(""); let key = setTextCustom($(dom), $(dom).find(".popup-done-button").attr("data-index")); $(dom).attr("data-key", key); } else if (type == "upload") { $(dom).find(".custom-upload").val(""); } $(dom).slideDown(); }); $(document).on("click", function (e) { if (!$('.pd-product-form__object-options').is(e.target) && $('.pd-product-form__object-options').has(e.target).length === 0 && !$(".pd-product-form__options").is(e.target) && $(".pd-product-form__options").has(e.target).length === 0 && !$(".custom-box").is(e.target) && $(".custom-box").has(e.target).length === 0) { for (let i = 0; i <= $(".pd-product-form__object-options:visible").length; i++) { if ($(".pd-product-form__object-options:visible").eq(i).find(".custom-text-input").length > 0 && !$(".pd-product-form__object-options:visible").eq(i).find(".custom-text-input").val()) { $(".custom-item-item[data-key='" + $(".pd-product-form__object-options:visible").eq(i).attr("data-key") + "'] .custom-btn-delete").click(); } } $(".pd-product-form__object-options:visible").slideUp(); } $(".pd-product-form__dropdown").removeAttr("open"); }); $(document).on("change", ".pd-product-form__object-options .custom-text-input, .pd-product-form__object-options .custom-text-size, .pd-product-form__input", function () { let dom = $(this).parents(".pd-product-form__object-options"); let index = $(dom).find(".popup-done-button").data("index"); let type = $(dom).find(".popup-done-button").data("type"); if (type == "text") { setTextCustom(dom, index); } else if (type == "greek") { setTextCustom(dom, index, "greek"); } return false; }); $(".p-box-item").on("click", function () { let index = $(this).index(".p-box-item") if (!$(this).hasClass("active")) { $(".p-box-item").removeClass("active").css({ borderColor: config.review_color2, backgroundColor: config.review_color1, color: config.review_color2 }); $(this).addClass("active").css({ borderColor: config.review_color1, backgroundColor: config.review_color2, color: config.review_color1 }); if (index == 1) { $("product-gallery").hide(); $(".custom-box").show(); } else { $("product-gallery").show(); $(".custom-box").hide(); } } return false; }); $(document).on("click", ".popup-done-button", function () { // let index = $(this).data("index"); // let type = $(this).data("type"); // let dom = null; // if (type == "text") { // setTextCustom($(this).parent(), index); // } else if (type == "greek") { // setTextCustom($(this).parent(), index, "greek"); // } if ($(this).parent().find(".custom-text-input").length > 0 && !$(this).parent().find(".custom-text-input").val()) { $(".custom-item-item[data-key='" + $(this).parent().attr("data-key") + "'] .custom-btn-delete").click(); } $(this).parent().slideUp(); }); $(document).on("input", ".pd-product-form__object-options .custom-text-input", function () { let dom = $(this).parents(".pd-product-form__object-options"); let index = $(dom).find(".popup-done-button").data("index"); let type = $(dom).find(".popup-done-button").data("type"); if (type == "text") { setTextCustom(dom, index); } else if (type == "greek") { setTextCustom(dom, index, "greek"); } }); $(document).on("click", ".custom-btn-edit", function () { console.log($(this)); let index = $(this).parents(".custom-item-item").data("index"); let type = $(this).parents(".custom-item-item").data("type"); let key = $(this).parents(".custom-item-item").data("key"); let divDom = $(this).parents(".custom-product-form").find(".pd-product-form__object-options"); if (type == "text" || type == "greek") { $(divDom).attr("data-key", key); $(divDom).find(".custom-text-input").val(customData.customConfig[key].text); $(divDom).find(".custom-text-size").val(customData.customConfig[key].size); $(divDom).find("[for='" + customData.customConfig[key].colorId + "']")?.click(); $(divDom).find("[for='" + customData.customConfig[key].fontId + "']")?.click(); $(divDom).find("[for='" + customData.customConfig[key].directioId + "']")?.click(); } $(divDom).slideDown(); return false; }); $(document).on("click", ".custom-btn-delete", function () { let index = $(this).parents(".custom-item-item").data("index"); let type = $(this).parents(".custom-item-item").data("type"); let key = $(this).parents(".custom-item-item").data("key"); delItem(index, key); let parentDom = $(this).parents("fieldset.product-option__field-group"); $(this).parents(".custom-item-item").remove(); if ($(parentDom).find(".custom-item-item").length == 0) { $(parentDom).find("fieldset.pd-product-form__field").css({ display: "inline-block" }); } return false; }); $(document).on("click", ".pd-product-form__dropdown summary", function () { if ($(this).parent()[0].open == true) { $(this).parent()[0].removeAttribute("open"); return false; } }); $(document).on("click", ".greek-link", function () { let v = $(this).text(); let cv = $(this).parents(".pd-product-form__object-options").find(".custom-text-input").val(); $(this).parents(".pd-product-form__object-options").find(".custom-text-input").val(cv + v) let dom = $(this).parents(".pd-product-form__object-options"); let index = $(dom).find(".popup-done-button").data("index"); let type = $(dom).find(".popup-done-button").data("type"); if (type == "text") { setTextCustom(dom, index); } else if (type == "greek") { setTextCustom(dom, index, "greek"); } }); $(document).on("change", ".custom-upload", function () { let index = $(this).data("index"); let formdata = new FormData(); let that = this; formdata.append("file", this.files[0]); $.ajax({ url: apilink + "api/data/upload", method: "post", processData: false, contentType: false, data: formdata, async: false, success: function (res) { if (res.code == 1) { setImageCustom($(that).parents(".pd-product-form__object-options"), index, res.data.url, "upload"); $(".pd-product-form__object-options").slideUp(); } } }); }); $(document).on("click", ".icon-link", function () { let index = $(this).data("index"); let image = $(this).find("img").attr("src"); let name = $(this).attr("title"); setFlagCustom($(this).parents(".pd-product-form__object-options"), index, image, name, "image"); $(".pd-product-form__object-options").slideUp(); }); $(window).on("scroll", function () { if (document.body.clientWidth > 1000) { return; } if (window.scrollY > $(".product-info").offset().top && !$(".fabric-box").hasClass("custom_box_fixed")) { $(".custom-box").css({ height: $(".custom-box").outerHeight() }); $(".fabric-box").addClass("custom_box_fixed"); } else if (window.scrollY <= $(".product-info").offset().top && $(".fabric-box").hasClass("custom_box_fixed")) { $(".custom-box").css({ height: "auto" }); $(".fabric-box").removeClass("custom_box_fixed"); } }); $(document).on("change", ".new-config-item .gpo-switch input", function () { let isChecked = $(this).is(":checked"); let pdom = $(this).parents(".new-config-item"); let forclassDom = $(pdom).find(".gpo-element[data-forclass]"); let type = $(pdom).attr("data-type"); let index = $(pdom).attr("data-index"); if (isChecked && $(forclassDom).length > 0) { $(pdom).find("." + $(forclassDom).attr("data-forclass")).show(); } else if (!isChecked && $(forclassDom).length > 0) { $(pdom).find("." + $(forclassDom).attr("data-forclass")).hide(); } if ((type == 1 || type == 3) && isChecked) { let fee = cdata.newConfig[parseInt(index)].fee; let vid = cdata.newConfig[parseInt(index)].vid; if (parseFloat(fee) > 0 && vid) { customData.newConfig["_" + index] = { fee: fee, vid: vid } } $(pdom).find(".switch-price").show(); } else if (isChecked) { let option = $(pdom).find(".gpo-select option:checked"); if ($(option).length > 0) { let fee = $(option).attr("data-fee"); let vid = $(option).attr("data-vid"); if (parseFloat(fee) > 0 && vid) { customData.newConfig["_" + index] = { fee: fee, vid: vid } } } } else if (!isChecked && typeof customData.newConfig["_" + index] == "object") { $(pdom).find(".switch-price").hide(); delete customData.newConfig["_" + index]; } if (type == 4 && !isChecked && canvasList.newConfig[index].img != null) { canvas.remove(canvasList.newConfig[index].img); $(pdom).find(".gpo-dropzone").css({ backgroundImage: `` }); $(pdom).find(".gpo-dropzone").attr("data-img", ""); } }); $(document).on("change", ".new-config-item .gpo-select", function () { let option = $(this).find("option:checked"); let pdom = $(this).parents(".new-config-item"); let type = $(pdom).attr("data-type"); let index = $(pdom).attr("data-index"); let fee = $(option).attr("data-fee"); let vid = $(option).attr("data-vid"); if (parseFloat(fee) > 0 && vid) { customData.newConfig["_" + index] = { fee: fee, vid: vid } } else { delete customData.newConfig["_" + index]; } if ($(pdom).find(".gpo-select-require").length > 0) { $(pdom).find(".gpo-select-require").hide(); } }); $(document).on("drop", ".new-config-item .gpo-dropzone__input", function (e) { console.log(e); }); $(document).on("change", ".new-config-item .gpo-dropzone__input", function () { let pdom = $(this).parents(".new-config-item"); $(pdom).find(".gpo-uploading").show(); let index = $(pdom).attr("data-index"); let formdata = new FormData(); let that = this; formdata.append("file", this.files[0]); $.ajax({ url: apilink + "api/data/upload", method: "post", processData: false, contentType: false, data: formdata, async: false, success: function (res) { if (res.code == 1) { // $(that).parents(".gpo-dropzone").css({ // backgroundImage: `url(${res.data.url})` // }); $(that).parents(".gpo-dropzone").attr("data-img", res.data.url); addImageNewConfig(index, res.data.url); $(pdom).find(".gpo-f-link").attr("href", res.data.url); $(pdom).find(".gpo-f-link img").attr("src", res.data.url); $(pdom).addClass("gpo-upload-success"); } setTimeout(function () { $(pdom).find(".gpo-uploading").hide(); }, 2000); }, fail: function () { setTimeout(function () { $(pdom).find(".gpo-uploading").hide(); }, 2000); } }); }); $(document).on("click", ".gpo-f-rm", function () { let pdom = $(this).parents(".new-config-item"); let index = $(pdom).attr("data-index"); $(pdom).find(".gpo-dropzone").attr("data-img", ""); $(pdom).find(".gpo-f-link").attr("href", ""); $(pdom).find(".gpo-f-link img").attr("src", ""); $(pdom).find(".gpo-dropzone__input").val(""); addImageNewConfig(index, ""); $(pdom).removeClass("gpo-upload-success"); }); $(document).on("click", ".new-config-item .gpo-modal__title", function () { let pdom = $(this).parents(".new-config-item"); let index = $(pdom).attr("data-index"); $(".cc-model-window").css({ width: cdata.newConfig[index].windowwidth + "px", height: cdata.newConfig[index].windowheight + "px", }); $(".cc-model-body").html(cdata.newConfig[index].content.replace(/\\/g, "")); $(".cc-model").fadeIn(); }); $(document).on("click", ".cc-model-close", function () { $(".cc-model").fadeOut(); }); } $(function () { // 获取数据 $.ajax({ url: apilink + "api/data/getProductByPid", method: "get", dataType: "json", data: { product_id: id }, async: false, success: function (res) { if (res.code == 1 && res.data.config) { let tempData = JSON.parse(res.data.config); // 最小购买数量 if (tempData && tempData.minCount > 1) { $("input[name='quantity'").val(tempData.minCount); $("input[name='quantity'").attr("mincount", tempData.minCount); // $("input[name='quantity'").attr("min", tempData.minCount); config.minBuyCount = tempData.minCount; // $("input[name='quantity'").on("change", function() { // if (parseInt($("input[name='quantity'").val()) < tempData.minCount) { // $("input[name='quantity'").val(tempData.minCount); // } // }); } if (res.data.status == 1) { cdata = tempData; isCustom = true; customInit(); } } } }); })

Custom Doctoral Regalia for Universities in the United States
${fontlist[0].name} Font style
${fontDom}
Horizontal Direction
${selectDom}
${cdata.newConfig[i].title}
Custom Doctoral Regalia for Universities in the United States
Description
Customized doctoral academic gown made of high-quality plain woven polyester fabric with the finest workmanship features full fluting around shoulder and back, bell sleeves with cuffs and full-length velvet pleats. We offer a variety of options to meet your requirements. The colors of the shell fabric, velvet and piping can be fully customized. All chest emblems are handmade by experienced technicians. Every gown is individually tailored to give you excellent quality and the comfortable fit. Shop online at GraduationMall and order Deluxe Custom Doctoral Gown at the affordable price. Our tam is adjustable sizes XS-XL (hat sizes 19"-23.5") by Velcro Enclosure.
Key Features
• Multiple color options made of highest quality material • Featuring a fully fulted along shoulders and yoke • Hidden zipper closure • Traditional Bell gathered sleeves with cuffs • 4'' wide velvet front and back yoke panels,2'' wide triple chevron velvet sleeve panels • Each robe is individually tailored giving you unparalleled quality, comfort, and fit • Tam: Adjustable Sizes XS-XL (hat sizes 19"-23.5") by Velcro Enclosure
Shipping Cost (US Only)
Customized doctoral academic gown made of high-quality plain woven polyester fabric with the finest workmanship features full fluting around shoulder and back, bell sleeves with cuffs and full-length velvet pleats. We offer a variety of options to meet your requirements. The colors of the shell fabric, velvet and piping can be fully customized. All chest emblems are handmade by experienced technicians. Every gown is individually tailored to give you excellent quality and the comfortable fit. Shop online at GraduationMall and order Deluxe Custom Doctoral Gown at the affordable price. Our tam is adjustable sizes XS-XL (hat sizes 19"-23.5") by Velcro Enclosure.
Like GraduationMall
Offer 100% Satisfaction for Your Purchase
Customer Service
Any Demand Tell us, Answer Within 12 Hours
Money-Back Guaranteed
30 Days Money Back Guaranteed
Secure payment
A Variety of Payment Methods are Available