提交 955dd3ac authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 d6e9917d
File added
......@@ -38,7 +38,6 @@ const welcomeMessage = computed(() => {
const extendInfo = data.extend_info || {}
const pictureStyle = getNameByValue(extendInfo.picture_style, materialPictureStyleList)
const textPurpose = getNameByValue(extendInfo.text_use, textPurposeList)
console.log(textPurpose, 'textPurpose')
if (data.type == 1) {
return `请帮我创作一个在<b class="bold">“${industry}行业”</b>,使用的“<b class="bold">${textPurpose}”</b>,这个内容的使用人员是“<b class="bold">${personnel}”</b>,通过<b class="bold">“${connection}”</b>渠道进行投放,使用场景是<b class="bold">“${scenario}”</b>,字数控制在“<b class="bold">${extendInfo.text_count}字以内</b>“,关键点需要包含:<b class="bold">${data.key_points}</b>。`
......@@ -174,7 +173,7 @@ async function handleSave(message) {
<el-button size="small" type="primary" @click="handleSendType(2, item.content)"
>AI创作({{ usages.ai_creation_count }}/{{ usages.ai_creation_max_count }})</el-button
>
<el-button size="small" type="primary" @click="handleSendType(3, item.content)"
<!-- <el-button size="small" type="primary" @click="handleSendType(3, item.content)"
>AI改写({{ usages.ai_polish_count }}/{{ usages.ai_polish_max_count }})</el-button
>
<el-button size="small" type="primary" @click="handleSendType(4, item.content)"
......@@ -185,7 +184,7 @@ async function handleSave(message) {
>
<el-button size="small" type="primary" @click="handleSendType(8, item.content)"
>AI总结({{ usages.ai_summary_count }}/{{ usages.ai_summary_max_count }})</el-button
>
> -->
</template>
<!-- 图片 -->
<template v-if="form.type == 2">
......
<script setup>
import { onMounted, onUnmounted } from 'vue'
import CktDesign from '@chuangkit/chuangkit-design'
import md5 from 'blueimp-md5'
import { useUserStore } from '@/stores/user'
import { uploadFileByUrl } from '@/utils/upload'
const model = defineModel()
const emit = defineEmits(['close'])
const userStore = useUserStore()
/**
* 构建签名
* @param obj 参数对象,对象中的所有属性全部参与签名的生成
* @returns {string} 签名
*/
const buildSign = obj => {
let signParameterArray = []
for (let key in obj) {
signParameterArray.push(`${key}=${obj[key]}`)
}
let signPlaintext = signParameterArray.sort().join('&')
return md5(signPlaintext).toUpperCase()
}
/**
* 构建2.0版本签名
* @param appId 第三方企业id
* @param expireTime 时间戳,取当前时间即可
* @param userFlag 用户标记
* @param appSecret 企业密钥
* @returns {string} 签名
*/
const buildVersion2Sign = (appId, expireTime, userFlag, appSecret) => {
let signParameterObj = {
app_id: appId,
expire_time: expireTime,
user_flag: userFlag,
app_secret: appSecret
}
return buildSign(signParameterObj)
}
window.chuangkitComplete = async result => {
if (!result.cktMessage) {
return
}
if (result.kind == 2) {
for (const url of result['source-urls']) {
model.value = url
try {
const uploadedURL = await uploadFileByUrl(url)
model.value = uploadedURL
} catch (error) {
console.log(error)
}
}
}
if ([1, 2, 3].includes(result.kind)) {
emit('close')
}
}
let cktInstance
function openDesignPage() {
const appId = '54d9adec77d0402794018d166110f3dd'
const appSecret = '08097010E0EF4B85EE2B8CE438328249'
const userFlag = userStore.user.id
const expireTime = Date.now()
const sign = buildVersion2Sign(appId, expireTime, userFlag, appSecret)
let params = {
app_id: appId,
expire_time: expireTime,
user_flag: userFlag,
device_type: 1,
kind_id: 447,
version: '2.0',
sign: sign,
enable_authorize: '1',
taxpayer_name: 'chuangkit',
taxpayer_phone: '13820659475',
taxpayer_number: '91120116636067462H'
}
cktInstance = new CktDesign(params)
cktInstance.open()
console.log(cktInstance)
}
function closeDesignPage() {
if (cktInstance) {
cktInstance.close()
}
}
onMounted(() => openDesignPage())
onUnmounted(() => closeDesignPage())
</script>
<template>
<div id="ckt-design-page"></div>
</template>
<script setup>
import { onMounted, onUnmounted } from 'vue'
import CktDesign from '@chuangkit/chuangkit-design'
import md5 from 'blueimp-md5'
import { useUserStore } from '@/stores/user'
import { uploadFileByUrl } from '@/utils/upload'
<script setup></script>
const model = defineModel()
const emit = defineEmits(['close'])
const userStore = useUserStore()
/**
* 构建签名
* @param obj 参数对象,对象中的所有属性全部参与签名的生成
* @returns {string} 签名
*/
const buildSign = obj => {
let signParameterArray = []
for (let key in obj) {
signParameterArray.push(`${key}=${obj[key]}`)
}
<template>
<div id="chuangkit-design-iframe">
<video src="/1.mp4" autoplay style="width: 100%; height: 100%; object-fit: cover"></video>
</div>
<div id="chuangkit-design-pop-black"></div>
<div id="chuangkit-design-header-box">
<div style="font-size: 12px; color: rgb(80, 90, 113); z-index: 10000; display: block"></div>
<div id="chuangkit-design-right-box" class="chuangkit-api-rightbox">
<!-- <div id="chuangkit-design-screen-wraper">
<div id="chuangkit-design-screen-icon"></div>
<div id="chuangkit-design-fullscreen-btn" class="chuangkit-api-screen">全屏化</div>
</div> -->
<div
id="chuangkit-design-close_wraper"
style="display: inline-flex; align-items: center; height: 14px; cursor: pointer; margin-left: 20px">
<div id="chuangkit-design-close-icon"></div>
<div id="chuangkit-design-close-btn" @click="$emit('close')">关闭</div>
</div>
</div>
</div>
</template>
let signPlaintext = signParameterArray.sort().join('&')
return md5(signPlaintext).toUpperCase()
<style lang="scss">
#chuangkit-design-iframe {
position: fixed;
top: 82px;
left: 50px;
width: calc(-100px + 100vw);
height: calc(-132px + 100vh);
z-index: 10000;
display: block;
}
/**
* 构建2.0版本签名
* @param appId 第三方企业id
* @param expireTime 时间戳,取当前时间即可
* @param userFlag 用户标记
* @param appSecret 企业密钥
* @returns {string} 签名
*/
const buildVersion2Sign = (appId, expireTime, userFlag, appSecret) => {
let signParameterObj = {
app_id: appId,
expire_time: expireTime,
user_flag: userFlag,
app_secret: appSecret
}
return buildSign(signParameterObj)
#chuangkit-design-pop-black {
width: 100vw;
height: 100vh;
position: fixed;
top: 0px;
left: 0px;
z-index: 9999;
background-color: rgb(0, 0, 0);
opacity: 0.7;
}
window.chuangkitComplete = async result => {
if (!result.cktMessage) {
return
}
if (result.kind == 2) {
for (const url of result['source-urls']) {
model.value = url
try {
const uploadedURL = await uploadFileByUrl(url)
model.value = uploadedURL
} catch (error) {
console.log(error)
}
}
}
if ([1, 2, 3].includes(result.kind)) {
emit('close')
}
#chuangkit-design-header-box {
width: calc(-132px + 100vw);
height: 32px;
padding: 0px 16px;
position: fixed;
top: 50px;
left: 50px;
background: rgb(235, 238, 245);
display: flex;
justify-content: flex-end;
align-items: center;
box-sizing: content-box;
z-index: 10000;
}
let cktInstance
function openDesignPage() {
const appId = '54d9adec77d0402794018d166110f3dd'
const appSecret = '08097010E0EF4B85EE2B8CE438328249'
const userFlag = userStore.user.id
const expireTime = Date.now()
const sign = buildVersion2Sign(appId, expireTime, userFlag, appSecret)
let params = {
app_id: appId,
expire_time: expireTime,
user_flag: userFlag,
device_type: 1,
kind_id: 447,
version: '2.0',
sign: sign,
enable_authorize: '1',
taxpayer_name: 'chuangkit',
taxpayer_phone: '13820659475',
taxpayer_number: '91120116636067462H'
}
cktInstance = new CktDesign(params)
cktInstance.open()
console.log(cktInstance)
#chuangkit-design-right-box {
width: 200px;
flex-grow: 0;
flex-shrink: 0;
z-index: 10000;
display: flex;
justify-content: flex-end;
align-items: center;
}
function closeDesignPage() {
if (cktInstance) {
cktInstance.close()
}
#chuangkit-design-screen-wraper {
display: inline-flex;
align-items: center;
height: 14px;
cursor: pointer;
}
onMounted(() => openDesignPage())
onUnmounted(() => closeDesignPage())
</script>
<template>
<div id="ckt-design-page"></div>
</template>
#chuangkit-design-screen-icon {
width: 14px;
height: 14px;
display: inline-block;
background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjQ0cHgiIGhlaWdodD0iMjlweCIgdmlld0JveD0iMCAwIDQ0IDI5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgIDx0aXRsZT7pm6rnoqflm77lpIfku708L3RpdGxlPg0KICAgIDxnIGlkPSLpm6rnoqflm77lpIfku70iIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgICAgICA8ZyBpZD0i57yW57uEIiBmaWxsPSIjMUIyMzM3IiBmaWxsLXJ1bGU9Im5vbnplcm8iPg0KICAgICAgICAgICAgPGcgaWQ9IuWFqOWxj+WMluWkh+S7vS01Ij4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMCw1IEwwLDMuNiBMMy42LDMuNiBMMy42LDAgTDUsMCBMNSw1IEwwLDUgWiBNMTQsNSBMMTQsMy42IEwxMC40LDMuNiBMMTAuNCwwIEw5LDAgTDksNSBMMTQsNSBaIiBpZD0i5b2i54q2Ij48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyW5aSH5Lu9LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMS41MDAwMDApIHNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTEuNTAwMDAwKSB0cmFuc2xhdGUoMC4wMDAwMDAsIDkuMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTAsNSBMMCwzLjYgTDMuNiwzLjYgTDMuNiwwIEw1LDAgTDUsNSBMMCw1IFogTTE0LDUgTDE0LDMuNiBMMTAuNCwzLjYgTDEwLjQsMCBMOSwwIEw5LDUgTDE0LDUgWiIgaWQ9IuW9oueKtiI+PC9wYXRoPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnIGlkPSLnvJbnu4TlpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCAxNS4wMDAwMDApIj4NCiAgICAgICAgICAgIDxnIGlkPSLlhajlsY/ljJblpIfku70tNSIgZmlsbD0iIzA3NzNGQyIgZmlsbC1ydWxlPSJub256ZXJvIj4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSw5IEw1LDE0IEwzLjYsMTQgTDMuNiwxMC40IEwwLDEwLjQgTDAsOSBMNSw5IFogTTE0LDkgTDE0LDEwLjQgTDEwLjQsMTAuNCBMMTAuNCwxNCBMOSwxNCBMOSw5IEwxNCw5IFogTTUsMCBMNSw1IEwwLDUgTDAsMy42IEwzLjYsMy42IEwzLjYsMCBMNSwwIFogTTEwLjQsMCBMMTAuNCwzLjYgTDE0LDMuNiBMMTQsNSBMOSw1IEw5LDAgTDEwLjQsMCBaIiBpZD0i5b2i54q257uT5ZCIIj48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyW5aSH5Lu9LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMS41MDAwMDApIHNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTEuNTAwMDAwKSB0cmFuc2xhdGUoMC4wMDAwMDAsIDkuMDAwMDAwKSI+PC9nPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnIGlkPSLnvJbnu4QtMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUuMDAwMDAwLCAwLjAwMDAwMCkiIGZpbGw9IiMxQjIzMzciIGZpbGwtcnVsZT0ibm9uemVybyI+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyWIj4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSwwIEw1LDEuNCBMMS40LDEuNCBMMS40LDUgTDAsNSBMMCwwIEw1LDAgWiBNOSwwIEw5LDEuNCBMMTIuNiwxLjQgTDEyLjYsNSBMMTQsNSBMMTQsMCBMOSwwIFoiIGlkPSLlvaLnirYiPjwvcGF0aD4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSLlhajlsY/ljJblpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMS41MDAwMDApIHNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTEuNTAwMDAwKSB0cmFuc2xhdGUoMC4wMDAwMDAsIDkuMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTUsMCBMNSwxLjQgTDEuNCwxLjQgTDEuNCw1IEwwLDUgTDAsMCBMNSwwIFogTTksMCBMOSwxLjQgTDEyLjYsMS40IEwxMi42LDUgTDE0LDUgTDE0LDAgTDksMCBaIiBpZD0i5b2i54q2Ij48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgIDwvZz4NCiAgICAgICAgPGcgaWQ9Iue8lue7hC0z5aSH5Lu9IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNS4wMDAwMDAsIDE1LjAwMDAwMCkiPg0KICAgICAgICAgICAgPGcgaWQ9IuWFqOWxj+WMliIgZmlsbD0iIzA3NzNGQyIgZmlsbC1ydWxlPSJub256ZXJvIj4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMS40LDkgTDEuNCwxMi42IEw1LDEyLjYgTDUsMTQgTDAsMTQgTDAsOSBMMS40LDkgWiBNMTQsOSBMMTQsMTQgTDksMTQgTDksMTIuNiBMMTIuNiwxMi42IEwxMi42LDkgTDE0LDkgWiBNNSwwIEw1LDEuNCBMMS40LDEuNCBMMS40LDUgTDAsNSBMMCwwIEw1LDAgWiBNMTQsMCBMMTQsNSBMMTIuNiw1IEwxMi42LDEuNCBMOSwxLjQgTDksMCBMMTQsMCBaIiBpZD0i5b2i54q257uT5ZCIIj48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyW5aSH5Lu9IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LjAwMDAwMCwgMTEuNTAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC03LjAwMDAwMCwgLTExLjUwMDAwMCkgdHJhbnNsYXRlKDAuMDAwMDAwLCA5LjAwMDAwMCkiPjwvZz4NCiAgICAgICAgPC9nPg0KICAgICAgICA8ZyBpZD0i57yW57uELTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwLjAwMDAwMCwgMC4wMDAwMDApIiBmaWxsPSIjMUIyMzM3Ij4NCiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4zMjUsMy41IEwxMy42MTMwNDY1LDYuNzg4MDQ2NTMgTDEwLjMyNSwxMC4wNzYwOTMxIEw5LjQwNTc2MTE4LDkuMTU2ODU0MjUgTDExLjA2MjAyNjUsNy40OTkgTDMuNzIxMDI2NDcsNy41IEwzLjcyMTAyNjQ3LDYuMiBMMTEuMTg2MDI2NSw2LjE5OSBMOS40MDU3NjExOCw0LjQxOTIzODgyIEwxMC4zMjUsMy41IFoiIGlkPSLlvaLnirbnu5PlkIgiPjwvcGF0aD4NCiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLot6/lvoQiIGZpbGwtcnVsZT0ibm9uemVybyIgcG9pbnRzPSI4LjUwNTIwMzM1IDAgOC41MDUyMDMzNSAzLjY3NjkyMzA4IDcuMiAzLjY3NjkyMzA4IDcuMiAxLjIgMS40IDEuMiAxLjQgMTIuOCA3LjIgMTIuOCA3LjIgMTAuMzIzMDc2OSA4LjUwNTIwMzM1IDEwLjMyMzA3NjkgOC41MDUyMDMzNSAxNCAwIDE0IDAgMCI+PC9wb2x5Z29uPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnIGlkPSLnvJbnu4QtMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAuMDAwMDAwLCAxNS4wMDAwMDApIiBmaWxsPSIjMDc3M0ZDIj4NCiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4zMjUsMy41IEwxMy42MTMwNDY1LDYuNzg4MDQ2NTMgTDEwLjMyNSwxMC4wNzYwOTMxIEw5LjQwNTc2MTE4LDkuMTU2ODU0MjUgTDExLjA2MjAyNjUsNy40OTkgTDMuNzIxMDI2NDcsNy41IEwzLjcyMTAyNjQ3LDYuMiBMMTEuMTg2MDI2NSw2LjE5OSBMOS40MDU3NjExOCw0LjQxOTIzODgyIEwxMC4zMjUsMy41IFoiIGlkPSLlvaLnirbnu5PlkIgiPjwvcGF0aD4NCiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLot6/lvoQiIGZpbGwtcnVsZT0ibm9uemVybyIgcG9pbnRzPSI4LjUwNTIwMzM1IDAgOC41MDUyMDMzNSAzLjY3NjkyMzA4IDcuMiAzLjY3NjkyMzA4IDcuMiAxLjIgMS40IDEuMiAxLjQgMTIuOCA3LjIgMTIuOCA3LjIgMTAuMzIzMDc2OSA4LjUwNTIwMzM1IDEwLjMyMzA3NjkgOC41MDUyMDMzNSAxNCAwIDE0IDAgMCI+PC9wb2x5Z29uPg0KICAgICAgICA8L2c+DQogICAgPC9nPg0KPC9zdmc+') -15px
0px no-repeat;
margin-right: 6px;
}
#chuangkit-design-fullscreen-btn {
display: inline-block;
font-size: 12px;
line-height: 12px;
color: rgb(27, 35, 55);
cursor: pointer;
}
#chuangkit-design-close-icon {
width: 14px;
height: 14px;
display: inline-block;
background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgd2lkdGg9IjQ0cHgiIGhlaWdodD0iMjlweCIgdmlld0JveD0iMCAwIDQ0IDI5IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPg0KICAgIDx0aXRsZT7pm6rnoqflm77lpIfku708L3RpdGxlPg0KICAgIDxnIGlkPSLpm6rnoqflm77lpIfku70iIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPg0KICAgICAgICA8ZyBpZD0i57yW57uEIiBmaWxsPSIjMUIyMzM3IiBmaWxsLXJ1bGU9Im5vbnplcm8iPg0KICAgICAgICAgICAgPGcgaWQ9IuWFqOWxj+WMluWkh+S7vS01Ij4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMCw1IEwwLDMuNiBMMy42LDMuNiBMMy42LDAgTDUsMCBMNSw1IEwwLDUgWiBNMTQsNSBMMTQsMy42IEwxMC40LDMuNiBMMTAuNCwwIEw5LDAgTDksNSBMMTQsNSBaIiBpZD0i5b2i54q2Ij48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyW5aSH5Lu9LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMS41MDAwMDApIHNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTEuNTAwMDAwKSB0cmFuc2xhdGUoMC4wMDAwMDAsIDkuMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTAsNSBMMCwzLjYgTDMuNiwzLjYgTDMuNiwwIEw1LDAgTDUsNSBMMCw1IFogTTE0LDUgTDE0LDMuNiBMMTAuNCwzLjYgTDEwLjQsMCBMOSwwIEw5LDUgTDE0LDUgWiIgaWQ9IuW9oueKtiI+PC9wYXRoPg0KICAgICAgICAgICAgPC9nPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnIGlkPSLnvJbnu4TlpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLCAxNS4wMDAwMDApIj4NCiAgICAgICAgICAgIDxnIGlkPSLlhajlsY/ljJblpIfku70tNSIgZmlsbD0iIzA3NzNGQyIgZmlsbC1ydWxlPSJub256ZXJvIj4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSw5IEw1LDE0IEwzLjYsMTQgTDMuNiwxMC40IEwwLDEwLjQgTDAsOSBMNSw5IFogTTE0LDkgTDE0LDEwLjQgTDEwLjQsMTAuNCBMMTAuNCwxNCBMOSwxNCBMOSw5IEwxNCw5IFogTTUsMCBMNSw1IEwwLDUgTDAsMy42IEwzLjYsMy42IEwzLjYsMCBMNSwwIFogTTEwLjQsMCBMMTAuNCwzLjYgTDE0LDMuNiBMMTQsNSBMOSw1IEw5LDAgTDEwLjQsMCBaIiBpZD0i5b2i54q257uT5ZCIIj48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyW5aSH5Lu9LTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMS41MDAwMDApIHNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTEuNTAwMDAwKSB0cmFuc2xhdGUoMC4wMDAwMDAsIDkuMDAwMDAwKSI+PC9nPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnIGlkPSLnvJbnu4QtMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTUuMDAwMDAwLCAwLjAwMDAwMCkiIGZpbGw9IiMxQjIzMzciIGZpbGwtcnVsZT0ibm9uemVybyI+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyWIj4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNSwwIEw1LDEuNCBMMS40LDEuNCBMMS40LDUgTDAsNSBMMCwwIEw1LDAgWiBNOSwwIEw5LDEuNCBMMTIuNiwxLjQgTDEyLjYsNSBMMTQsNSBMMTQsMCBMOSwwIFoiIGlkPSLlvaLnirYiPjwvcGF0aD4NCiAgICAgICAgICAgIDwvZz4NCiAgICAgICAgICAgIDxnIGlkPSLlhajlsY/ljJblpIfku70iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDcuMDAwMDAwLCAxMS41MDAwMDApIHNjYWxlKDEsIC0xKSB0cmFuc2xhdGUoLTcuMDAwMDAwLCAtMTEuNTAwMDAwKSB0cmFuc2xhdGUoMC4wMDAwMDAsIDkuMDAwMDAwKSI+DQogICAgICAgICAgICAgICAgPHBhdGggZD0iTTUsMCBMNSwxLjQgTDEuNCwxLjQgTDEuNCw1IEwwLDUgTDAsMCBMNSwwIFogTTksMCBMOSwxLjQgTDEyLjYsMS40IEwxMi42LDUgTDE0LDUgTDE0LDAgTDksMCBaIiBpZD0i5b2i54q2Ij48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgIDwvZz4NCiAgICAgICAgPGcgaWQ9Iue8lue7hC0z5aSH5Lu9IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNS4wMDAwMDAsIDE1LjAwMDAwMCkiPg0KICAgICAgICAgICAgPGcgaWQ9IuWFqOWxj+WMliIgZmlsbD0iIzA3NzNGQyIgZmlsbC1ydWxlPSJub256ZXJvIj4NCiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMS40LDkgTDEuNCwxMi42IEw1LDEyLjYgTDUsMTQgTDAsMTQgTDAsOSBMMS40LDkgWiBNMTQsOSBMMTQsMTQgTDksMTQgTDksMTIuNiBMMTIuNiwxMi42IEwxMi42LDkgTDE0LDkgWiBNNSwwIEw1LDEuNCBMMS40LDEuNCBMMS40LDUgTDAsNSBMMCwwIEw1LDAgWiBNMTQsMCBMMTQsNSBMMTIuNiw1IEwxMi42LDEuNCBMOSwxLjQgTDksMCBMMTQsMCBaIiBpZD0i5b2i54q257uT5ZCIIj48L3BhdGg+DQogICAgICAgICAgICA8L2c+DQogICAgICAgICAgICA8ZyBpZD0i5YWo5bGP5YyW5aSH5Lu9IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3LjAwMDAwMCwgMTEuNTAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC03LjAwMDAwMCwgLTExLjUwMDAwMCkgdHJhbnNsYXRlKDAuMDAwMDAwLCA5LjAwMDAwMCkiPjwvZz4NCiAgICAgICAgPC9nPg0KICAgICAgICA8ZyBpZD0i57yW57uELTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwLjAwMDAwMCwgMC4wMDAwMDApIiBmaWxsPSIjMUIyMzM3Ij4NCiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4zMjUsMy41IEwxMy42MTMwNDY1LDYuNzg4MDQ2NTMgTDEwLjMyNSwxMC4wNzYwOTMxIEw5LjQwNTc2MTE4LDkuMTU2ODU0MjUgTDExLjA2MjAyNjUsNy40OTkgTDMuNzIxMDI2NDcsNy41IEwzLjcyMTAyNjQ3LDYuMiBMMTEuMTg2MDI2NSw2LjE5OSBMOS40MDU3NjExOCw0LjQxOTIzODgyIEwxMC4zMjUsMy41IFoiIGlkPSLlvaLnirbnu5PlkIgiPjwvcGF0aD4NCiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLot6/lvoQiIGZpbGwtcnVsZT0ibm9uemVybyIgcG9pbnRzPSI4LjUwNTIwMzM1IDAgOC41MDUyMDMzNSAzLjY3NjkyMzA4IDcuMiAzLjY3NjkyMzA4IDcuMiAxLjIgMS40IDEuMiAxLjQgMTIuOCA3LjIgMTIuOCA3LjIgMTAuMzIzMDc2OSA4LjUwNTIwMzM1IDEwLjMyMzA3NjkgOC41MDUyMDMzNSAxNCAwIDE0IDAgMCI+PC9wb2x5Z29uPg0KICAgICAgICA8L2c+DQogICAgICAgIDxnIGlkPSLnvJbnu4QtMiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzAuMDAwMDAwLCAxNS4wMDAwMDApIiBmaWxsPSIjMDc3M0ZDIj4NCiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4zMjUsMy41IEwxMy42MTMwNDY1LDYuNzg4MDQ2NTMgTDEwLjMyNSwxMC4wNzYwOTMxIEw5LjQwNTc2MTE4LDkuMTU2ODU0MjUgTDExLjA2MjAyNjUsNy40OTkgTDMuNzIxMDI2NDcsNy41IEwzLjcyMTAyNjQ3LDYuMiBMMTEuMTg2MDI2NSw2LjE5OSBMOS40MDU3NjExOCw0LjQxOTIzODgyIEwxMC4zMjUsMy41IFoiIGlkPSLlvaLnirbnu5PlkIgiPjwvcGF0aD4NCiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSLot6/lvoQiIGZpbGwtcnVsZT0ibm9uemVybyIgcG9pbnRzPSI4LjUwNTIwMzM1IDAgOC41MDUyMDMzNSAzLjY3NjkyMzA4IDcuMiAzLjY3NjkyMzA4IDcuMiAxLjIgMS40IDEuMiAxLjQgMTIuOCA3LjIgMTIuOCA3LjIgMTAuMzIzMDc2OSA4LjUwNTIwMzM1IDEwLjMyMzA3NjkgOC41MDUyMDMzNSAxNCAwIDE0IDAgMCI+PC9wb2x5Z29uPg0KICAgICAgICA8L2c+DQogICAgPC9nPg0KPC9zdmc+') -30px
0px no-repeat;
margin-right: 6px;
}
#chuangkit-design-close-btn {
display: inline-block;
font-size: 12px;
line-height: 12px;
color: rgb(27, 35, 55);
cursor: pointer;
}
</style>
......@@ -28,7 +28,8 @@ async function handleNext() {
function wayDisabled(item, type) {
if (item.value == 1) {
return !['1', '2'].includes(type)
// return !['1', '2'].includes(type)
return !['1'].includes(type)
}
if (item.value == 3) {
return !['2', '8'].includes(type)
......@@ -40,10 +41,22 @@ function wayDisabled(item, type) {
<template>
<el-card shadow="never">
<template #header>基础信息</template>
<el-form label-suffix=":" label-width="130" :model="form" :rules="rules" ref="formRef" :disabled="action === 'view'">
<el-form
label-suffix=":"
label-width="130"
:model="form"
:rules="rules"
ref="formRef"
:disabled="action === 'view'">
<el-form-item label="营销内容类型" prop="type">
<el-radio-group v-model="form.type" :disabled="action === 'update'" @change="form.way = '2'">
<el-radio v-for="item in materialType" :key="item.id" :value="item.value" :disabled="$route.query.type ? item.value !== $route.query.type : false">{{ item.label }}</el-radio>
<el-radio
v-for="item in materialType"
:key="item.id"
:value="item.value"
:disabled="$route.query.type ? item.value !== $route.query.type : false"
>{{ item.label }}</el-radio
>
</el-radio-group>
</el-form-item>
<el-form-item label="内容名称" prop="name">
......@@ -51,9 +64,13 @@ function wayDisabled(item, type) {
</el-form-item>
<el-form-item label="创作方式" prop="way">
<el-radio-group v-model="form.way">
<el-radio v-for="item in materialMethodList" :key="item.value" :value="item.value" :disabled="wayDisabled(item, form.type)">{{
item.label
}}</el-radio>
<el-radio
v-for="item in materialMethodList"
:key="item.value"
:value="item.value"
:disabled="wayDisabled(item, form.type)"
>{{ item.label }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-form>
......
......@@ -2,6 +2,7 @@ import { fetchEventSource } from '@fortaine/fetch-event-source'
import { getAIUsage, postGenerateImage } from '../api'
import type { Message } from '../types'
import { ElMessage } from 'element-plus'
import { useUserStore } from '@/stores/user'
export function useChat(options: any) {
const messages = ref<Message[]>([])
......@@ -84,7 +85,40 @@ export function useChat(options: any) {
// }
// })
// }
const mobile = useUserStore().user?.mobile || ''
async function generateText(data: any) {
/**
* 假数据Start
*/
const customData: any = {
'18810031001': `【慧农贷】低利率,活体抵押,创新金融!11月15日厅堂沙龙,好礼相送,期待您的光临,共享财富盛宴!🚀🎉`,
'18810031002': `【慧农贷·您的融资捷径】
🎉好消息!🎊农民朋友们,融资难题一扫而空!🚀
慧农贷,线上申请超便捷,活体抵押灵活多变!畜牧业资金周转不愁,种植业扩大再生产无忧!🌟
极速审批,放款快如闪电⚡,利率低到您心动!🌱
案例分享:李大叔养猪场资金链紧绷,慧农贷一出手,问题迎刃而解!现在,他的养殖场规模翻倍,利润滚滚来!💰
别错过,成功近在咫尺!立刻点击下方链接,开启您的财富快车道!👉[申请入口]👈
🔥立即行动,把握机遇,共赴丰收盛宴!🔥`
}
const customContent = customData[mobile]
if (customContent) {
isLoading.value = true
setTimeout(() => {
messages.value.push({ conversationId: crypto.randomUUID(), role: 'bot', content: customContent })
isLoading.value = false
}, 3000)
return
}
/**
* 假数据end
*/
isLoading.value = true
let params = {}
if (data.type === '1') {
......@@ -112,7 +146,11 @@ export function useChat(options: any) {
'Content-Type': 'application/json'
},
body: JSON.stringify({
...options, ...data, api_type: parseInt(data.type) === 1 ? 1 : 2, context: data.content, params: params
...options,
...data,
api_type: parseInt(data.type) === 1 ? 1 : 2,
context: data.content,
params: params
}),
async onopen(response) {
if (response.ok) {
......@@ -147,7 +185,12 @@ export function useChat(options: any) {
const requestId = message.request_id
const messageIndex = messages.value.findIndex(session => session.conversationId === requestId)
if (messageIndex === -1) {
messages.value.push({ conversationId: requestId, role: 'bot', content: message.data?.text || '', input: data.context })
messages.value.push({
conversationId: requestId,
role: 'bot',
content: message.data?.text || '',
input: data.context
})
} else {
messages.value[messageIndex].content = message.data?.text
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论