This commit is contained in:
@@ -11,34 +11,19 @@
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>联系电话</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.enterprise_telephone"
|
||||
placeholder="400-000-0000"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.enterprise_telephone" placeholder="400-000-0000"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>联系邮箱</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.enterprise_mailbox"
|
||||
placeholder="support@example.com"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.enterprise_mailbox" placeholder="support@example.com"></t-input>
|
||||
</div>
|
||||
<div class="form-item form-item--full">
|
||||
<label>Logo 地址</label>
|
||||
<div class="upload-row">
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.official_website_logo"
|
||||
placeholder="/upload/logo.png"
|
||||
></t-input>
|
||||
<t-upload
|
||||
theme="custom"
|
||||
:action="uploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse"
|
||||
:show-upload-progress="false"
|
||||
:max="1"
|
||||
@success="(ctx) => handleUpload(['site_config', 'official_website_logo'], ctx)"
|
||||
>
|
||||
<t-input v-model="fullConfig.site_config.official_website_logo" placeholder="/upload/logo.png"></t-input>
|
||||
<t-upload theme="custom" :action="uploadUrl" :headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse" :show-upload-progress="false" :max="1"
|
||||
@success="(ctx) => handleUpload(['site_config', 'official_website_logo'], ctx)">
|
||||
<t-button size="small" class="ml-10">
|
||||
<t-icon name="upload" size="small" /> 上传
|
||||
</t-button>
|
||||
@@ -48,19 +33,10 @@
|
||||
<div class="form-item form-item--full">
|
||||
<label>二维码地址</label>
|
||||
<div class="upload-row">
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.enterprise_qrcode"
|
||||
placeholder="/upload/qrcode.png"
|
||||
></t-input>
|
||||
<t-upload
|
||||
theme="custom"
|
||||
:action="uploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse"
|
||||
:show-upload-progress="false"
|
||||
:max="1"
|
||||
@success="(ctx) => handleUpload(['site_config', 'enterprise_qrcode'], ctx)"
|
||||
>
|
||||
<t-input v-model="fullConfig.site_config.enterprise_qrcode" placeholder="/upload/qrcode.png"></t-input>
|
||||
<t-upload theme="custom" :action="uploadUrl" :headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse" :show-upload-progress="false" :max="1"
|
||||
@success="(ctx) => handleUpload(['site_config', 'enterprise_qrcode'], ctx)">
|
||||
<t-button size="small" class="ml-10">
|
||||
<t-icon name="upload" size="small" /> 上传
|
||||
</t-button>
|
||||
@@ -69,10 +45,8 @@
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>在线客服链接</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.online_customer_service_link"
|
||||
placeholder="http://www.test.com"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.online_customer_service_link"
|
||||
placeholder="http://www.test.com"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>ICP 号</label>
|
||||
@@ -80,66 +54,41 @@
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>ICP 链接</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.icp_info_link"
|
||||
placeholder="https://beian.miit.gov.cn"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.icp_info_link" placeholder="https://beian.miit.gov.cn"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>公安备案号</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.public_security_network_preparation"
|
||||
placeholder="京公网安备XXXX号"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.public_security_network_preparation"
|
||||
placeholder="京公网安备XXXX号"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>公安备案链接</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.public_security_network_preparation_link"
|
||||
placeholder="https://beian.mps.gov.cn"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.public_security_network_preparation_link"
|
||||
placeholder="https://beian.mps.gov.cn"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>电信增值许可证</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.telecom_appreciation"
|
||||
placeholder="增值电信业务经营许可证"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.telecom_appreciation" placeholder="增值电信业务经营许可证"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>用户协议链接</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.terms_service_url"
|
||||
placeholder="/agreement/service.html"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.terms_service_url" placeholder="/agreement/service.html"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>隐私政策链接</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.terms_privacy_url"
|
||||
placeholder="/agreement/privacy.html"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.terms_privacy_url" placeholder="/agreement/privacy.html"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>云产品购买链接</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.cloud_product_link"
|
||||
placeholder="/cart/goods.htm?id=1"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.cloud_product_link" placeholder="/cart/goods.htm?id=1"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>物理机/DCIM 链接</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.dcim_product_link"
|
||||
placeholder="/cart/goods.htm?id=2"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.dcim_product_link" placeholder="/cart/goods.htm?id=2"></t-input>
|
||||
</div>
|
||||
<div class="form-item form-item--full">
|
||||
<label>版权信息</label>
|
||||
<t-input
|
||||
v-model="fullConfig.site_config.copyright_info"
|
||||
placeholder="© 2025 主题云"
|
||||
></t-input>
|
||||
<t-input v-model="fullConfig.site_config.copyright_info" placeholder="© 2025 主题云"></t-input>
|
||||
</div>
|
||||
</div>
|
||||
</t-card>
|
||||
@@ -168,15 +117,9 @@
|
||||
<label>图标地址</label>
|
||||
<div class="upload-row">
|
||||
<t-input v-model="item.icon" placeholder="/upload/side-phone.png"></t-input>
|
||||
<t-upload
|
||||
theme="custom"
|
||||
:action="uploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse"
|
||||
:show-upload-progress="false"
|
||||
:max="1"
|
||||
@success="(ctx) => handleUpload(['side', index, 'icon'], ctx)"
|
||||
>
|
||||
<t-upload theme="custom" :action="uploadUrl" :headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse" :show-upload-progress="false" :max="1"
|
||||
@success="(ctx) => handleUpload(['side', index, 'icon'], ctx)">
|
||||
<t-button size="small" class="ml-10">
|
||||
<t-icon name="upload" size="small" /> 上传
|
||||
</t-button>
|
||||
@@ -185,11 +128,8 @@
|
||||
</div>
|
||||
<div class="form-item form-item--full">
|
||||
<label>内容(支持 HTML)</label>
|
||||
<t-textarea
|
||||
v-model="item.content"
|
||||
:autosize="{ minRows: 2, maxRows: 4 }"
|
||||
placeholder="<p>7x24 小时不间断服务</p>"
|
||||
></t-textarea>
|
||||
<t-textarea v-model="item.content" :autosize="{ minRows: 2, maxRows: 4 }"
|
||||
placeholder="<p>7x24 小时不间断服务</p>"></t-textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -203,11 +143,7 @@
|
||||
<div v-if="!fullConfig.feedback_type.length" class="empty-tip">
|
||||
还没有反馈类型,点击下方按钮添加。
|
||||
</div>
|
||||
<div
|
||||
class="config-item"
|
||||
v-for="(item, index) in fullConfig.feedback_type"
|
||||
:key="'feedback-' + index"
|
||||
>
|
||||
<div class="config-item" v-for="(item, index) in fullConfig.feedback_type" :key="'feedback-' + index">
|
||||
<div class="config-item__header">
|
||||
<h4>类型 {{ index + 1 }}</h4>
|
||||
<t-button size="small" theme="danger" variant="outline" @click="removeFeedbackType(index)">
|
||||
@@ -246,11 +182,8 @@
|
||||
</div>
|
||||
<div class="form-item form-item--full">
|
||||
<label>描述</label>
|
||||
<t-textarea
|
||||
v-model="fullConfig.seo.description"
|
||||
:autosize="{ minRows: 2, maxRows: 4 }"
|
||||
placeholder="站点描述"
|
||||
></t-textarea>
|
||||
<t-textarea v-model="fullConfig.seo.description" :autosize="{ minRows: 2, maxRows: 4 }"
|
||||
placeholder="站点描述"></t-textarea>
|
||||
</div>
|
||||
</div>
|
||||
</t-card>
|
||||
@@ -276,19 +209,10 @@
|
||||
<div class="form-item form-item--full">
|
||||
<label>图片地址</label>
|
||||
<div class="upload-row">
|
||||
<t-input
|
||||
v-model="banner.img"
|
||||
placeholder="/upload/banner-1.png"
|
||||
></t-input>
|
||||
<t-upload
|
||||
theme="custom"
|
||||
:action="uploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse"
|
||||
:show-upload-progress="false"
|
||||
:max="1"
|
||||
@success="(ctx) => handleUpload(['banner', index, 'img'], ctx)"
|
||||
>
|
||||
<t-input v-model="banner.img" placeholder="/upload/banner-1.png"></t-input>
|
||||
<t-upload theme="custom" :action="uploadUrl" :headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse" :show-upload-progress="false" :max="1"
|
||||
@success="(ctx) => handleUpload(['banner', index, 'img'], ctx)">
|
||||
<t-button size="small" class="ml-10">
|
||||
<t-icon name="upload" size="small" /> 上传
|
||||
</t-button>
|
||||
@@ -301,10 +225,7 @@
|
||||
</div>
|
||||
<div class="form-item form-item--full">
|
||||
<label>标签</label>
|
||||
<t-input
|
||||
v-model="banner.tags"
|
||||
placeholder="如:高速,低价,安全(多个标签用逗号分隔)"
|
||||
></t-input>
|
||||
<t-input v-model="banner.tags" placeholder="如:高速,低价,安全(多个标签用逗号分隔)"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>跳转链接</label>
|
||||
@@ -351,15 +272,9 @@
|
||||
<label>图片地址</label>
|
||||
<div class="upload-row">
|
||||
<t-input v-model="item.img" placeholder="/upload/honor.png"></t-input>
|
||||
<t-upload
|
||||
theme="custom"
|
||||
:action="uploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse"
|
||||
:show-upload-progress="false"
|
||||
:max="1"
|
||||
@success="(ctx) => handleUpload(['honor', index, 'img'], ctx)"
|
||||
>
|
||||
<t-upload theme="custom" :action="uploadUrl" :headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse" :show-upload-progress="false" :max="1"
|
||||
@success="(ctx) => handleUpload(['honor', index, 'img'], ctx)">
|
||||
<t-button size="small" class="ml-10">
|
||||
<t-icon name="upload" size="small" /> 上传
|
||||
</t-button>
|
||||
@@ -370,6 +285,44 @@
|
||||
</div>
|
||||
<t-button theme="primary" variant="outline" @click="addHonor">新增荣誉</t-button>
|
||||
</t-card>
|
||||
|
||||
<t-card class="theme-card" title="合作伙伴" bordered>
|
||||
<div v-if="!fullConfig.partner.length" class="empty-tip">
|
||||
用于首页"合作伙伴"模块(partner)。
|
||||
</div>
|
||||
<div class="config-item" v-for="(item, index) in fullConfig.partner" :key="'partner-' + index">
|
||||
<div class="config-item__header">
|
||||
<h4>伙伴 {{ index + 1 }}</h4>
|
||||
<t-button size="small" theme="danger" variant="outline" @click="removePartner(index)">
|
||||
删除
|
||||
</t-button>
|
||||
</div>
|
||||
<div class="form-grid">
|
||||
<div class="form-item">
|
||||
<label>名称</label>
|
||||
<t-input v-model="item.name" placeholder="客户名称"></t-input>
|
||||
</div>
|
||||
<div class="form-item">
|
||||
<label>描述</label>
|
||||
<t-input v-model="item.description" placeholder="典型案例"></t-input>
|
||||
</div>
|
||||
<div class="form-item form-item--full">
|
||||
<label>图片地址</label>
|
||||
<div class="upload-row">
|
||||
<t-input v-model="item.img" placeholder="/upload/case.png"></t-input>
|
||||
<t-upload theme="custom" :action="uploadUrl" :headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse" :show-upload-progress="false" :max="1"
|
||||
@success="(ctx) => handleUpload(['partner', index, 'img'], ctx)">
|
||||
<t-button size="small" class="ml-10">
|
||||
<t-icon name="upload" size="small" /> 上传
|
||||
</t-button>
|
||||
</t-upload>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<t-button theme="primary" variant="outline" @click="addPartner">新增伙伴</t-button>
|
||||
</t-card>
|
||||
</t-tab-panel>
|
||||
|
||||
<t-tab-panel value="nav" label="导航配置">
|
||||
@@ -380,10 +333,7 @@
|
||||
<div class="form-grid">
|
||||
<div class="form-item form-item--full">
|
||||
<label>Logo 点击跳转地址</label>
|
||||
<t-input
|
||||
v-model="homeNav.file_address"
|
||||
placeholder="index.html 或 /index.html"
|
||||
></t-input>
|
||||
<t-input v-model="homeNav.file_address" placeholder="index.html 或 /index.html"></t-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -391,12 +341,7 @@
|
||||
<div v-if="headerNavList.length <= 1" class="empty-tip">
|
||||
还没有自定义导航,请点击下方按钮新增。
|
||||
</div>
|
||||
<div
|
||||
class="config-item"
|
||||
v-for="(item, index) in headerNavList"
|
||||
:key="'nav-' + index"
|
||||
v-if="index > 0"
|
||||
>
|
||||
<div class="config-item" v-for="(item, index) in headerNavList" :key="'nav-' + index" v-if="index > 0">
|
||||
<div class="config-item__header">
|
||||
<h4>导航 {{ index }}</h4>
|
||||
<t-button size="small" theme="danger" variant="outline" @click="removeHeaderNav(index)">
|
||||
@@ -422,19 +367,11 @@
|
||||
<div v-if="!getHeaderChildren(item).length" class="empty-tip">
|
||||
还没有子菜单,点击下方按钮新增。
|
||||
</div>
|
||||
<div
|
||||
class="config-item"
|
||||
v-for="(child, cIndex) in getHeaderChildren(item)"
|
||||
:key="'nav-' + index + '-child-' + cIndex"
|
||||
>
|
||||
<div class="config-item" v-for="(child, cIndex) in getHeaderChildren(item)"
|
||||
:key="'nav-' + index + '-child-' + cIndex">
|
||||
<div class="config-item__header">
|
||||
<h4>子菜单 {{ cIndex + 1 }}</h4>
|
||||
<t-button
|
||||
size="small"
|
||||
theme="danger"
|
||||
variant="outline"
|
||||
@click="removeHeaderNavChild(index, cIndex)"
|
||||
>
|
||||
<t-button size="small" theme="danger" variant="outline" @click="removeHeaderNavChild(index, cIndex)">
|
||||
删除
|
||||
</t-button>
|
||||
</div>
|
||||
@@ -455,17 +392,10 @@
|
||||
<label>图标地址</label>
|
||||
<div class="upload-row">
|
||||
<t-input v-model="child.icon" placeholder="/upload/nav-icon.png"></t-input>
|
||||
<t-upload
|
||||
theme="custom"
|
||||
:action="uploadUrl"
|
||||
:headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse"
|
||||
:show-upload-progress="false"
|
||||
:max="1"
|
||||
@success="
|
||||
<t-upload theme="custom" :action="uploadUrl" :headers="uploadHeaders"
|
||||
:format-response="uploadFormatResponse" :show-upload-progress="false" :max="1" @success="
|
||||
(ctx) => handleUpload(['header_nav', index, 'children', cIndex, 'icon'], ctx)
|
||||
"
|
||||
>
|
||||
">
|
||||
<t-button size="small" class="ml-10">
|
||||
<t-icon name="upload" size="small" /> 上传
|
||||
</t-button>
|
||||
@@ -474,21 +404,12 @@
|
||||
</div>
|
||||
<div class="form-item form-item--full">
|
||||
<label>描述</label>
|
||||
<t-textarea
|
||||
v-model="child.description"
|
||||
:autosize="{ minRows: 2, maxRows: 3 }"
|
||||
placeholder="如:高可用的弹性计算服务"
|
||||
></t-textarea>
|
||||
<t-textarea v-model="child.description" :autosize="{ minRows: 2, maxRows: 3 }"
|
||||
placeholder="如:高可用的弹性计算服务"></t-textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<t-button
|
||||
class="mt-10"
|
||||
theme="primary"
|
||||
size="small"
|
||||
variant="outline"
|
||||
@click="addHeaderNavChild(index)"
|
||||
>
|
||||
<t-button class="mt-10" theme="primary" size="small" variant="outline" @click="addHeaderNavChild(index)">
|
||||
新增子菜单
|
||||
</t-button>
|
||||
</div>
|
||||
@@ -507,11 +428,7 @@
|
||||
<div v-if="!footerNavList.length" class="empty-tip">
|
||||
还没有底部栏目,点击下方按钮新增。
|
||||
</div>
|
||||
<div
|
||||
class="config-item"
|
||||
v-for="(group, index) in footerNavList"
|
||||
:key="'footer-' + index"
|
||||
>
|
||||
<div class="config-item" v-for="(group, index) in footerNavList" :key="'footer-' + index">
|
||||
<div class="config-item__header">
|
||||
<h4>栏目 {{ index + 1 }}</h4>
|
||||
<t-button size="small" theme="danger" variant="outline" @click="removeFooterNav(index)">
|
||||
@@ -528,19 +445,11 @@
|
||||
<div v-if="!getFooterChildren(group).length" class="empty-tip">
|
||||
还没有链接,点击下方按钮新增。
|
||||
</div>
|
||||
<div
|
||||
class="config-item"
|
||||
v-for="(link, cIndex) in getFooterChildren(group)"
|
||||
:key="'footer-' + index + '-child-' + cIndex"
|
||||
>
|
||||
<div class="config-item" v-for="(link, cIndex) in getFooterChildren(group)"
|
||||
:key="'footer-' + index + '-child-' + cIndex">
|
||||
<div class="config-item__header">
|
||||
<h4>链接 {{ cIndex + 1 }}</h4>
|
||||
<t-button
|
||||
size="small"
|
||||
theme="danger"
|
||||
variant="outline"
|
||||
@click="removeFooterNavChild(index, cIndex)"
|
||||
>
|
||||
<t-button size="small" theme="danger" variant="outline" @click="removeFooterNavChild(index, cIndex)">
|
||||
删除
|
||||
</t-button>
|
||||
</div>
|
||||
@@ -559,13 +468,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<t-button
|
||||
class="mt-10"
|
||||
theme="primary"
|
||||
size="small"
|
||||
variant="outline"
|
||||
@click="addFooterNavChild(index)"
|
||||
>
|
||||
<t-button class="mt-10" theme="primary" size="small" variant="outline" @click="addFooterNavChild(index)">
|
||||
新增链接
|
||||
</t-button>
|
||||
</div>
|
||||
@@ -605,11 +508,7 @@
|
||||
<p class="theme-tip">
|
||||
用于暂未在 UI 中开放的配置项(如复杂导航结构 header_nav/footer_nav 等)。如非必要,建议优先使用上方表单编辑。
|
||||
</p>
|
||||
<t-textarea
|
||||
v-model="advancedText"
|
||||
:autosize="{ minRows: 14 }"
|
||||
class="theme-textarea"
|
||||
></t-textarea>
|
||||
<t-textarea v-model="advancedText" :autosize="{ minRows: 14 }" class="theme-textarea"></t-textarea>
|
||||
<div class="mt-10">
|
||||
<t-button variant="outline" @click="syncJson">同步当前配置</t-button>
|
||||
<t-button class="ml-10" @click="applyAdvanced">应用 JSON</t-button>
|
||||
@@ -678,6 +577,7 @@
|
||||
side: [],
|
||||
feedback_type: [],
|
||||
honor: [],
|
||||
partner: [],
|
||||
});
|
||||
|
||||
new Vue({
|
||||
@@ -751,18 +651,23 @@
|
||||
side: Array.isArray(data.side)
|
||||
? data.side
|
||||
: Array.isArray(data.side_floating_window)
|
||||
? data.side_floating_window
|
||||
: [],
|
||||
? data.side_floating_window
|
||||
: [],
|
||||
feedback_type: Array.isArray(data.feedback_type)
|
||||
? data.feedback_type
|
||||
: Array.isArray(data.site_config && data.site_config.feedback_type)
|
||||
? data.site_config.feedback_type
|
||||
: [],
|
||||
? data.site_config.feedback_type
|
||||
: [],
|
||||
honor: Array.isArray(data.honor)
|
||||
? data.honor
|
||||
: Array.isArray(data.site_config && data.site_config.honor)
|
||||
? data.site_config.honor
|
||||
: [],
|
||||
? data.site_config.honor
|
||||
: [],
|
||||
partner: Array.isArray(data.partner)
|
||||
? data.partner
|
||||
: Array.isArray(data.site_config && data.site_config.partner)
|
||||
? data.site_config.partner
|
||||
: [],
|
||||
};
|
||||
|
||||
if (!Array.isArray(merged.header_nav) || merged.header_nav.length === 0) {
|
||||
@@ -903,6 +808,12 @@
|
||||
removeHonor(index) {
|
||||
this.fullConfig.honor.splice(index, 1);
|
||||
},
|
||||
addPartner() {
|
||||
this.fullConfig.partner.push({ name: "", description: "", img: "" });
|
||||
},
|
||||
removePartner(index) {
|
||||
this.fullConfig.partner.splice(index, 1);
|
||||
},
|
||||
addFeedbackType() {
|
||||
if (!Array.isArray(this.fullConfig.feedback_type)) {
|
||||
this.fullConfig.feedback_type = [];
|
||||
@@ -1043,4 +954,4 @@
|
||||
},
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</script>
|
||||
Reference in New Issue
Block a user