199 lines
8.5 KiB
Vue
199 lines
8.5 KiB
Vue
|
<template>
|
|||
|
<div>
|
|||
|
<el-card class="!border-none" shadow="never">
|
|||
|
<el-alert
|
|||
|
type="warning"
|
|||
|
title="温馨提示:填写微信小程序开发配置,请前往微信公众平台申请小程序并完成认证"
|
|||
|
:closable="false"
|
|||
|
show-icon
|
|||
|
/>
|
|||
|
</el-card>
|
|||
|
<el-form
|
|||
|
ref="formRef"
|
|||
|
:model="formData"
|
|||
|
:rules="formRules"
|
|||
|
:label-width="appStore.isMobile ? '80px' : '160px'"
|
|||
|
>
|
|||
|
<el-card class="!border-none mt-4" shadow="never">
|
|||
|
<div class="font-medium mb-7">微信小程序</div>
|
|||
|
<el-form-item label="小程序名称" prop="name">
|
|||
|
<div class="w-80">
|
|||
|
<el-input v-model="formData.name" placeholder="请输入小程序名称" />
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item label="原始ID" prop="original_id">
|
|||
|
<div class="w-80">
|
|||
|
<el-input v-model="formData.original_id" placeholder="请输入原始ID" />
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item label="小程序码" prop="qr_code">
|
|||
|
<div class="flex-1">
|
|||
|
<div>
|
|||
|
<material-picker v-model="formData.qr_code" :limit="1" />
|
|||
|
</div>
|
|||
|
<div class="form-tips">建议尺寸:宽400px*高400px。jpg,jpeg,png格式</div>
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
</el-card>
|
|||
|
<el-card class="!border-none mt-4" shadow="never">
|
|||
|
<div class="font-medium mb-7">开发者ID</div>
|
|||
|
<el-form-item label="AppID" prop="app_id">
|
|||
|
<div class="w-80">
|
|||
|
<el-input v-model="formData.app_id" placeholder="请输入AppID" />
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item label="AppSecret" prop="app_secret">
|
|||
|
<div class="w-80">
|
|||
|
<el-input v-model="formData.app_secret" placeholder="请输入AppSecret" />
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item>
|
|||
|
<div class="form-tips">
|
|||
|
小程序账号登录微信公众平台,点击开发>开发设置->开发者ID,设置AppID和AppSecret
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
</el-card>
|
|||
|
<el-card class="!border-none mt-4" shadow="never">
|
|||
|
<div class="font-medium mb-7">服务器域名</div>
|
|||
|
<el-form-item label="request合法域名" prop="appId">
|
|||
|
<div class="flex-1 min-w-0">
|
|||
|
<div class="sm:flex">
|
|||
|
<div class="mr-4 sm:w-80 flex">
|
|||
|
<el-input v-model="formData.request_domain" disabled />
|
|||
|
</div>
|
|||
|
<el-button v-copy="formData.request_domain">复制</el-button>
|
|||
|
</div>
|
|||
|
<div class="form-tips">
|
|||
|
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item label="socket合法域名">
|
|||
|
<div class="flex-1 min-w-0">
|
|||
|
<div class="sm:flex">
|
|||
|
<div class="mr-4 sm:w-80 flex">
|
|||
|
<el-input v-model="formData.socket_domain" disabled />
|
|||
|
</div>
|
|||
|
<el-button v-copy="formData.socket_domain">复制</el-button>
|
|||
|
</div>
|
|||
|
<div class="form-tips">
|
|||
|
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写wss协议域名
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item label="uploadFile合法域名">
|
|||
|
<div class="flex-1 min-w-0">
|
|||
|
<div class="sm:flex">
|
|||
|
<div class="mr-4 sm:w-80 flex">
|
|||
|
<el-input v-model="formData.upload_file_domain" disabled />
|
|||
|
</div>
|
|||
|
<el-button v-copy="formData.upload_file_domain">复制</el-button>
|
|||
|
</div>
|
|||
|
<div class="form-tips">
|
|||
|
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item label="downloadFile合法域名">
|
|||
|
<div class="flex-1 min-w-0">
|
|||
|
<div class="sm:flex">
|
|||
|
<div class="mr-4 sm:w-80 flex">
|
|||
|
<el-input v-model="formData.download_file_domain" disabled />
|
|||
|
</div>
|
|||
|
<el-button v-copy="formData.download_file_domain">复制</el-button>
|
|||
|
</div>
|
|||
|
<div class="form-tips">
|
|||
|
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写https协议域名
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
<el-form-item label="udp合法域名">
|
|||
|
<div class="flex-1 min-w-0">
|
|||
|
<div class="sm:flex">
|
|||
|
<div class="mr-4 sm:w-80 flex">
|
|||
|
<el-input v-model="formData.udp_domain" disabled />
|
|||
|
</div>
|
|||
|
<el-button v-copy="formData.udp_domain">复制</el-button>
|
|||
|
</div>
|
|||
|
<div class="form-tips">
|
|||
|
小程序账号登录微信公众平台,点击开发>开发设置->服务器域名,填写udp协议域名
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
</el-card>
|
|||
|
<el-card class="!border-none mt-4" shadow="never">
|
|||
|
<div class="font-medium mb-7">业务域名</div>
|
|||
|
<el-form-item label="业务域名">
|
|||
|
<div class="flex-1 min-w-0">
|
|||
|
<div class="sm:flex">
|
|||
|
<div class="mr-4 sm:w-80 flex">
|
|||
|
<el-input v-model="formData.business_domain" disabled />
|
|||
|
</div>
|
|||
|
<el-button v-copy="formData.business_domain">复制</el-button>
|
|||
|
</div>
|
|||
|
<div class="form-tips">
|
|||
|
小程序账号登录微信公众平台,点击开发>开发设置->业务域名,填写业务域名
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</el-form-item>
|
|||
|
</el-card>
|
|||
|
</el-form>
|
|||
|
<footer-btns v-perms="['channel.mnp_settings/setConfig']">
|
|||
|
<el-button type="primary" @click="handelSave">保存</el-button>
|
|||
|
</footer-btns>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
<script lang="ts" setup name="weappConfig">
|
|||
|
import { getWeappConfig, setWeappConfig } from '@/api/channel/weapp'
|
|||
|
import useAppStore from '@/stores/modules/app'
|
|||
|
import type { FormInstance } from 'element-plus'
|
|||
|
|
|||
|
const appStore = useAppStore()
|
|||
|
const formData = reactive({
|
|||
|
name: '',
|
|||
|
original_id: '',
|
|||
|
qr_code: '',
|
|||
|
app_id: '',
|
|||
|
app_secret: '',
|
|||
|
business_domain: '',
|
|||
|
download_file_domain: '',
|
|||
|
request_domain: '',
|
|||
|
socket_domain: '',
|
|||
|
tcpDomain: '',
|
|||
|
udp_domain: '',
|
|||
|
upload_file_domain: ''
|
|||
|
})
|
|||
|
const formRef = shallowRef<FormInstance>()
|
|||
|
const formRules = {
|
|||
|
app_id: [
|
|||
|
{
|
|||
|
required: true,
|
|||
|
message: '请输入AppID',
|
|||
|
trigger: ['blur', 'change']
|
|||
|
}
|
|||
|
],
|
|||
|
app_secret: [
|
|||
|
{
|
|||
|
required: true,
|
|||
|
message: '请输入AppSecret',
|
|||
|
trigger: ['blur', 'change']
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
const getDetail = async () => {
|
|||
|
const data = await getWeappConfig()
|
|||
|
for (const key in formData) {
|
|||
|
//@ts-ignore
|
|||
|
formData[key] = data[key]
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
const handelSave = async () => {
|
|||
|
await formRef.value?.validate()
|
|||
|
await setWeappConfig(formData)
|
|||
|
getDetail()
|
|||
|
}
|
|||
|
|
|||
|
getDetail()
|
|||
|
</script>
|