whx il y a 5 jours
Parent
commit
a30b4596f9

+ 57 - 0
virgo.wzfrontend/workark/src/api/ai.js

@@ -115,4 +115,61 @@ export function getAIFlowDataStatus(simpleUUID) {
 		url: `/api/ai/workflow/${simpleUUID}`,
 		method: 'get'
 	})
+}
+/* 
+ * 获取层级
+ * 
+ * 
+ */
+export function getAITree() {
+	return request({
+		url: `/api/treeData`,
+		method: 'get'
+	})
+}
+/* 
+ * 获取通过id设备层级
+ * 
+ * 
+ */
+export function getAITreeById(id) {
+	return request({
+		url: `/api/treeData/${id}`,
+		method: 'get'
+	})
+}
+/* 
+ * 新增设备层级
+ * 
+ * 
+ */
+export function insertAITree(data) {
+	return request({
+		url: `/api/treeData`,
+		method: 'post',
+		data: data
+	})
+}
+/* 
+ * 编辑设备层级
+ * 
+ * 
+ */
+export function updateAITree(data) {
+	return request({
+		url: `/api/treeData`,
+		method: 'put',
+		data: data
+	})
+}
+/* 
+ * 删除设备层级
+ * 
+ * 
+ */
+export function deleteAITree(id) {
+	return request({
+		url: `/api/treeData/${id}`,
+		method: 'delete'
+	})
 }

+ 141 - 0
virgo.wzfrontend/workark/src/components/work/common/aiFile.vue

@@ -0,0 +1,141 @@
+<template>
+	<div class="device-level hui-flex">
+		<div class="hui-chart-title">
+			<el-button type="primary" size="mini">新增文件</el-button>
+		</div>
+		<div class="hui-flex-box">
+			<el-tree :data="list" :props="defaultProps" default-expand-all>
+				<div class="tree-node" slot-scope="{ node, data }">
+					<span class="tree-node-label">{{ data.name }}-{{ data.sign }}</span>
+					<div class="tree-node-operation">
+						<i class="iconfont huifont-moxingguanli" v-if="data.children.length === 0"
+							@click.stop="model(data.id)">
+						</i>
+						<i class="iconfont huifont-xinzeng" @click.stop="insert(data.id)"></i>
+						<i class="iconfont huifont-bianji" @click.stop="update(data)"></i>
+						<i class="iconfont huifont-shanchu" @click.stop="deleteModel(data.id)"></i>
+					</div>
+				</div>
+			</el-tree>
+			<el-dialog :close-on-click-modal="false" :title="form.id?'编辑':'新增'" :visible.sync="dialogVisible"
+				width="900px" :append-to-body="true">
+				<div class="hui-flex hui-dialog">
+					<div class="hui-flex-box hui-dialog-content">
+						<el-form ref="form" :model="form" label-position="top">
+							<el-form-item label="层级名称">
+								<el-input v-model="form.name"></el-input>
+							</el-form-item>
+							<el-form-item label="层级标识">
+								<el-input v-model="form.sign"></el-input>
+							</el-form-item>
+							<el-form-item label="层级描述" class="hui-textarea">
+								<el-input type="textarea" v-model="form.remark" placeholder="请输入层级描述" resize="none">
+								</el-input>
+							</el-form-item>
+						</el-form>
+					</div>
+					<div class="hui-dialog-submit">
+						<el-button size="medium" @click="dialogVisible = false">取 消</el-button>
+						<el-button size="medium" type="primary" @click="submit">保 存</el-button>
+					</div>
+				</div>
+			</el-dialog>
+		</div>
+	</div>
+</template>
+
+<script>
+	import {
+		getAITree,
+		getAITreeById,
+		insertAITree,
+		updateAITree,
+		deleteAITree
+	} from '@/api/ai'
+	export default {
+		data() {
+			return {
+				list: [],
+				defaultProps: {
+					label: 'name'
+				},
+				dialogVisible: false,
+				form: {
+					parentId: '',
+					name: '',
+					sign: '',
+					remark: '',
+					isp: 1
+				},
+				modelVisible: false,
+				modelLevelId: ''
+			}
+		},
+		mounted() {
+			this.init();
+		},
+		methods: {
+			init() {
+				getAITree().then(res => {
+					if (res.state) {
+						this.list = res.data;
+					}
+				})
+			},
+			insert(id) {
+				this.form = {
+					name: '',
+					sign: '',
+					remark: '',
+					parentId: id,
+					isp: 1
+				}
+				this.dialogVisible = true;
+			},
+			model(id) {
+				this.modelLevelId = id;
+				this.modelVisible = true;
+			},
+			update(data) {
+				this.form = JSON.parse(JSON.stringify(data));
+				this.dialogVisible = true;
+			},
+			submit() {
+				this.form.id ? updateAITree(this.form).then(this.successFunc) : insertAITree(this.form).then(this
+					.successFunc);
+			},
+			successFunc(res) {
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.init();
+					this.dialogVisible = false;
+				}
+			},
+			deleteModel(id) {
+				this.$confirm('确定要删除该层级?', () => {
+					deleteAITree(id).then(res => {
+						if (res.state) {
+							this.init();
+							this.$message.success('操作成功');
+						}
+					})
+				});
+			},
+		},
+	}
+</script>
+
+<style lang="scss">
+	.device-level {
+		padding: 10px;
+
+		.tree-node-operation {
+			display: flex;
+			align-items: center;
+		}
+
+		.huifont-xinzeng {
+			font-size: 14px;
+		}
+	}
+</style>

+ 37 - 17
virgo.wzfrontend/workark/src/components/work/common/aiFlowChat.vue

@@ -11,9 +11,9 @@
 					<div class="message-header-label">AI网站生成助手</div>
 				</div>
 				<div class="message-content">
-					<p>您好!我是AI网站生成助手,请点击按钮生成企业官网。</p>
+					<p>您好!我是AI网站生成助手,请点击按钮生成网。</p>
 					<el-button size="mini" @click="visible = true" style="margin-top: 10px;">
-						点击生成企业官
+						点击生成网
 					</el-button>
 				</div>
 				<div class="message-time">
@@ -28,7 +28,7 @@
 						</div>
 						<div class="message-header-label">{{user.userName}}</div>
 					</div>
-					<div class="message-content" v-html="message.userInput"></div>
+					<div class="message-content" v-if="message.userInput" v-html="message.userInput"></div>
 					<div class="message-time">
 						{{ formatTime(message.date) }}
 					</div>
@@ -78,6 +78,9 @@
 				:autosize="{ minRows: 2, maxRows: 6 }" :disabled="!htmlCode">
 			</el-input>
 			<div class="input-button">
+				<el-button size="mini" @click="visible = true">
+					生成网站
+				</el-button>
 				<el-button size="mini" @click="selectProduct" :disabled="loading || !htmlCode">
 					添加商品
 				</el-button>
@@ -169,17 +172,16 @@
 			this.clearTimer();
 		},
 		methods: {
-			init() {
+			init(data) {
 				getAIFlowDataList({
 					userId: this.$store.getters.user.userId
 				}).then(res => {
 					if (res.state) {
 						this.messageList = res.data.map(node => {
-							node['userInput'] = this.returnUserInputs(node);
+							node['userInput'] = this.returnUserInputs(node.inputs);
 							let AIInput = ''
 							if (node.outputs) AIInput = this.extractContentBetween(JSON.parse(node.outputs)
-								.text,
-								node.simpleUUID)
+								.text, node.simpleUUID)
 							node['AIInput'] = AIInput;
 							return node;
 						});
@@ -199,14 +201,16 @@
 						if (res.state) {
 							let data = res.data;
 							if (!data) return;
+							if (data.inputs) data['userInput'] = this.returnUserInputs(data.inputs);
+							if (!this.messageList[this.messageList.length - 1].userInput) {
+								this.messageList[this.messageList.length - 1] = data;
+								this.$forceUpdate();
+							}
 							if (data.status === 'succeeded' || data.status === 'failed') {
 								this.clearTimer();
 								this.loading = false;
-								data['userInput'] = this.returnUserInputs(data);
-								let AIInput = ''
-								if (data.outputs) AIInput = this.extractContentBetween(JSON.parse(data
-									.outputs).text, data.simpleUUID)
-								node['AIInput'] = AIInput;
+								if (data.outputs) data['AIInput'] = this.extractContentBetween(JSON.parse(
+									data.outputs).text, data.simpleUUID);
 								this.messageList[this.messageList.length - 1] = data;
 								if (data.status === 'succeeded') this.$emit('previewWebSite', this
 									.htmlCode, this.simpleUUID);
@@ -218,11 +222,25 @@
 				}, 20000)
 			},
 			returnUserInputs(data) {
-				let obj = data.inputs;
-				if (!obj) return '';
+				if (!data) return '';
 				let html = '';
-				let objs = JSON.parse(obj);
-				return objs.query;
+				let objs = JSON.parse(data);
+				if (objs.insertType === 1) {
+					let query = JSON.parse(objs.query)
+					for (let key in query) {
+						if (query[key].indexOf('https://file-node.oss-cn-shanghai.aliyuncs.com/youji/') > -1) {
+							html += this.formData[key] + ':<img class="message-image" src="' + query[key] +
+								'" alt="aa"/><br />';
+						} else if (this.formData[key]) {
+							html += this.formData[key] + ':' + query[key] + "<br />";
+						}
+					}
+				} else if (objs.insertType === 2 || objs.insertType === 4) {
+					html = objs.query;
+				} else if (objs.insertType === 3) {
+					html = objs.query;
+				}
+				return html;
 			},
 			clearTimer() {
 				if (!this.timer) return;
@@ -248,6 +266,7 @@
 			sendMessage() {
 				createAIFlowData(5, {
 					type: 1,
+					insertType: 2,
 					query: this.newMessage,
 					html_code: this.htmlCode
 				}).then(this.successFunc);
@@ -257,7 +276,8 @@
 				createAIFlowData(message.difyTypeId, {
 					type: data.type,
 					query: data.query,
-					html_code: data.html_code
+					html_code: data.html_code,
+					insertType: data.insertType,
 				}).then(this.successFunc);
 			},
 			successFunc(res) {

+ 65 - 0
virgo.wzfrontend/workark/src/components/work/common/aiFlowPage.vue

@@ -0,0 +1,65 @@
+<template>
+	<div class="ai-flow-page" element-loading-text="网站生成中,需15-30分钟" element-loading-spinner="el-icon-loading"
+		v-loading="loading">
+
+	</div>
+</template>
+
+<script>
+	import {
+		getAIFlowDataList,
+		createAIFlowData,
+		getAIFlowDataStatus
+	} from '@/api/ai'
+	export default {
+		props: ['messageList'],
+		data() {
+			return {
+				nowData: {},
+				loading: false,
+				timer: null
+			}
+		},
+		mounted() {
+			this.init();
+		},
+		beforeDestroy() {
+			this.clearTimer();
+		},
+		methods: {
+			init() {
+				this.nowData = this.messageList[this.messageList.length - 1];
+				if (this.nowData.status === 'running') this.initStaus(this.nowData.simpleUUID);
+			},
+			initStaus(simpleUUlD) {
+				this.loading = true;
+				this.timer = setInterval(() => {
+					getAIFlowDataStatus(simpleUUlD).then(res => {
+						if (res.state) {
+							let data = res.data;
+							if (!data) return;
+							if (data.status === 'succeeded' || data.status === 'failed') {
+								this.clearTimer();
+								this.loading = false;
+							}
+						} else {
+							this.clearTimer();
+						}
+					})
+				}, 20000)
+			},
+			clearTimer() {
+				if (!this.timer) return;
+				clearInterval(this.timer);
+				this.timer = null;
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.ai-flow-page {
+		width: 100%;
+		height: 100%;
+	}
+</style>

+ 81 - 63
virgo.wzfrontend/workark/src/components/work/common/websiteForm.vue

@@ -2,61 +2,73 @@
 	<div class="hui-flex hui-dialog">
 		<div class="hui-flex-box hui-dialog-content">
 			<el-form :model="form" label-position="top">
-				<el-form-item label="企业名称">
-					<el-input type="text" v-model="form.company_name" placeholder="请输入企业名称"></el-input>
-				</el-form-item>
-				<el-form-item label="企业简称">
-					<el-input type="text" v-model="form.company_sub_name" placeholder="请输入企业简称"></el-input>
-				</el-form-item>
-				<el-form-item label="行业领域">
-					<el-select v-model="form.industry_sector" placeholder="请选择行业领域">
-						<el-option :label="item" :value="item" v-for="(item,index) in industryType" :key="index">
-						</el-option>
-					</el-select>
-				</el-form-item>
-				<el-form-item label="核心业务">
-					<el-input type="text" v-model="form.business_scope" placeholder="请输入核心业务"></el-input>
-				</el-form-item>
-				<el-form-item label="成立时间">
-					<el-input type="text" v-model="form.create_time" placeholder="请输入成立时间"></el-input>
-				</el-form-item>
-				<el-form-item label="成立地点">
-					<el-input type="text" v-model="form.create_place" placeholder="请输入成立地点"></el-input>
-				</el-form-item>
-				<el-form-item label="主要模块">
-					<el-select v-model="model" placeholder="请选择主要模块" multiple>
-						<el-option :label="item" :value="item" v-for="(item,index) in modelList" :key="index">
-						</el-option>
-					</el-select>
-				</el-form-item>
-				<el-form-item label="主色调">
-					<div style="display: flex;">
-						<el-input type="text" v-model="form.color_scheme" disabled></el-input>
-						<el-color-picker v-model="form.color_scheme" style="margin-left: 10px;"></el-color-picker>
-					</div>
-				</el-form-item>
-				<el-form-item label="整体风格">
-					<el-select v-model="all_style" placeholder="请选择整体风格" multiple>
-						<el-option :label="item" :value="item" v-for="(item,index) in style" :key="index">
-						</el-option>
+				<el-form-item class="hui-textarea" label="网站类型">
+					<el-select v-model="form.websiteType" placeholder="请选择网站类型">
+						<el-option label="企业官网" value="企业官网"></el-option>
+						<el-option label="其它类型" value="其它类型"></el-option>
 					</el-select>
 				</el-form-item>
-				<el-form-item label="参考网站">
-					<el-input type="text" v-model="form.websites_url" placeholder="请输入参考网站"></el-input>
-				</el-form-item>
-				<el-form-item label="LOGO" class="hui-textarea">
-					<upload ref="listDisplayImage" :list="listDisplayImage" type="insert" :maxLen="1"></upload>
-				</el-form-item>
-				<el-form-item label="核心优势" class="hui-textarea">
-					<el-input type="textarea" v-model="form.key_features" placeholder="技术创新、极致性价比、独特服务、行业经验、品牌信誉"
-						resize="none">
-					</el-input>
-				</el-form-item>
-				<el-form-item label="联系方式" class="hui-textarea">
-					<el-input type="textarea" v-model="form.contact_info"
-						placeholder="例如:手机号:137xxxxxxxx,邮箱:xxx@xxx,com" resize="none">
+				<el-form-item label="内容" class="hui-textarea" v-if="form.websiteType === '其它类型'">
+					<el-input type="textarea" v-model="form.websiteContent" placeholder="一句话生成网站" resize="none">
 					</el-input>
 				</el-form-item>
+				<div class="el-form" v-if="form.websiteType === '企业官网'">
+					<el-form-item label="企业名称">
+						<el-input type="text" v-model="form.company_name" placeholder="请输入企业名称"></el-input>
+					</el-form-item>
+					<el-form-item label="企业简称">
+						<el-input type="text" v-model="form.company_sub_name" placeholder="请输入企业简称"></el-input>
+					</el-form-item>
+					<el-form-item label="行业领域">
+						<el-select v-model="form.industry_sector" placeholder="请选择行业领域">
+							<el-option :label="item" :value="item" v-for="(item,index) in industryType" :key="index">
+							</el-option>
+						</el-select>
+					</el-form-item>
+					<el-form-item label="核心业务">
+						<el-input type="text" v-model="form.business_scope" placeholder="请输入核心业务"></el-input>
+					</el-form-item>
+					<el-form-item label="成立时间">
+						<el-input type="text" v-model="form.create_time" placeholder="请输入成立时间"></el-input>
+					</el-form-item>
+					<el-form-item label="成立地点">
+						<el-input type="text" v-model="form.create_place" placeholder="请输入成立地点"></el-input>
+					</el-form-item>
+					<el-form-item label="主要模块">
+						<el-select v-model="model" placeholder="请选择主要模块" multiple>
+							<el-option :label="item" :value="item" v-for="(item,index) in modelList" :key="index">
+							</el-option>
+						</el-select>
+					</el-form-item>
+					<el-form-item label="主色调">
+						<div style="display: flex;">
+							<el-input type="text" v-model="form.color_scheme" disabled></el-input>
+							<el-color-picker v-model="form.color_scheme" style="margin-left: 10px;"></el-color-picker>
+						</div>
+					</el-form-item>
+					<el-form-item label="整体风格">
+						<el-select v-model="all_style" placeholder="请选择整体风格" multiple>
+							<el-option :label="item" :value="item" v-for="(item,index) in style" :key="index">
+							</el-option>
+						</el-select>
+					</el-form-item>
+					<el-form-item label="参考网站">
+						<el-input type="text" v-model="form.websites_url" placeholder="请输入参考网站"></el-input>
+					</el-form-item>
+					<el-form-item label="LOGO" class="hui-textarea">
+						<upload ref="listDisplayImage" :list="listDisplayImage" type="insert" :maxLen="1"></upload>
+					</el-form-item>
+					<el-form-item label="核心优势" class="hui-textarea">
+						<el-input type="textarea" v-model="form.key_features" placeholder="技术创新、极致性价比、独特服务、行业经验、品牌信誉"
+							resize="none">
+						</el-input>
+					</el-form-item>
+					<el-form-item label="联系方式" class="hui-textarea">
+						<el-input type="textarea" v-model="form.contact_info"
+							placeholder="例如:手机号:137xxxxxxxx,邮箱:xxx@xxx,com" resize="none">
+						</el-input>
+					</el-form-item>
+				</div>
 			</el-form>
 		</div>
 		<div class="hui-dialog-submit">
@@ -86,7 +98,9 @@
 					key_features: '',
 					contact_info: '',
 					all_style: '',
-					websites_url: ''
+					websites_url: '',
+					websiteContent: '',
+					websiteType: '企业官网'
 				},
 				loading: false,
 				listDisplayImage: [],
@@ -118,19 +132,23 @@
 		methods: {
 			submit() {
 				this.loading = true;
-				let postData = JSON.parse(JSON.stringify(this.form));
-				let fileBox = this.$refs.listDisplayImage.fileList;
-				if (fileBox && fileBox.length > 0) postData['logo_url'] = fileBox[0].url;
-				postData['all_style'] = this.all_style.join('、');
-				postData['model'] = this.model.join('、');
-				// createAIData(2, postData).then(this.successFunc)
-				let query = '企业名称:有极数据科技有限公司,企业简称:有极,行业领域:医疗,核心业务:健康管理,成立地点:,成立时间:2023,主色调:#006AFF,核心优势:,联系方式:,整体风格:专业严谨、现代简约、创新活力,参考网站:,企业logo:https://file-node.oss-cn-shanghai.aliyuncs.com/youji/de308b124ef54502b68a9fc047283525,主要模块:首页、产品介绍、解决方案、成功案例、关于我们、联系我们';
-				// for (let key in postData) {
-				// 	if (postData[key]) query += this.formData[key] + ':' + postData[key] + ",";
-				// }
-				console.log(query);
+				let query = '';
+				if (this.websiteType === '企业官网') {
+					let postData = JSON.parse(JSON.stringify(this.form));
+					let fileBox = this.$refs.listDisplayImage.fileList;
+					if (fileBox && fileBox.length > 0) postData['logo_url'] = fileBox[0].url;
+					postData['all_style'] = this.all_style.join('、');
+					postData['model'] = this.model.join('、');
+					postData['header'] =
+						'头部导航栏右侧放置登录和注册按钮,跳转链接:https://www.workark.com/workark/index.html#/loginRegister/login';
+					query = JSON.stringify(postData);
+				} else {
+					query = this.form.websiteContent;
+				}
+
 				createAIFlowData(5, {
 					type: 1,
+					insertType: this.websiteType === '企业官网' ? 1 : 4,
 					query: query
 				}).then(this.successFunc)
 			},

+ 73 - 196
virgo.wzfrontend/workark/src/views/work/oa/ai/app.vue

@@ -1,237 +1,114 @@
 <template>
-	<div class="hui-flex border-box ai-website">
-		<div class="website-form hui-flex">
-			<div class="website-form-title">
-				网站信息
-			</div>
-			<div class="hui-flex-box">
-				<ai-flow-chat @previewWebSite="previewWebSite"></ai-flow-chat>
-			</div>
-		</div>
-		<div class="website-show hui-flex">
-			<div class="website-form-title">
-				<span>网站展示</span>
-				<website-upload ref="upload" v-show="false" @reload="successFunc">
-				</website-upload>
-				{{websiteUrl}}
-			</div>
-			<div class="hui-flex-box">
-				<div class="no-empty" v-if="!websiteUrl">
-					<el-empty description="请先预览网站"></el-empty>
-				</div>
-				<div class="html-box" v-else v-loading="loading">
-					<iframe ref="iframeDom" :src="websiteUrl" width="100%" height="100%" frameborder="0"
-						@load="onloadIframe">
-					</iframe>
+	<div class="hui-flex border-box">
+		<div class="no-website-box" v-if="messageList.length === 0">
+			<div class="no-website">
+				<div class="no-title">我是AI网站生成助手</div>
+				<div class="no-sub-title">我可以帮你网站建设,请把你的任务交给我吧~</div>
+				<div class="no-input">
+					<el-input type="textarea" v-model="message" placeholder="生成一个信息科技企业官网" resize="none" rows="5"
+						:autosize="{ minRows: 5, maxRows: 7 }">
+					</el-input>
+					<el-button class="send-btn" type="primary" size="mini" @click="sendMessage"
+						:disabled="!message && !loading">
+						发送
+					</el-button>
 				</div>
 			</div>
-			<div class="hui-drawer-submit">
-				<el-button size="mini" :disabled="!websiteUrl" @click="cancelIframe" v-if="iframeEdit">取消</el-button>
-				<el-button type="primary" size="mini" :disabled="!websiteUrl" @click="saveIframe" v-if="iframeEdit">
-					保存
-				</el-button>
-				<el-button type="primary" size="mini" :disabled="!websiteUrl" @click="editIframe" v-if="!iframeEdit">
-					编辑
-				</el-button>
-				<el-button type="primary" size="mini" :disabled="!websiteUrl" @click="submit" v-if="!iframeEdit">
-					发布
-				</el-button>
-			</div>
+		</div>
+		<div class="ai-website" v-else>
+			<ai-flow-page :messageList="messageList"></ai-flow-page>
 		</div>
 	</div>
 </template>
 
 <script>
 	import {
-		getAIData,
-		saveHtmlData,
-		getHtmlData,
-		updateHtmlData
+		getAIFlowDataList,
+		createAIFlowData
 	} from '@/api/ai'
-	import aiFlowChat from '@/components/work/common/aiFlowChat.vue'
-	import websiteUpload from '@/components/work/common/websiteUpload.vue'
-	import config from '@/config'
+	import aiFlowPage from '@/components/work/common/aiFlowPage.vue'
 	export default {
-		components: {
-			aiFlowChat,
-			websiteUpload
-		},
 		data() {
 			return {
-				websiteUrl: '',
-				loading: false,
-				simpleUUID: '',
-				iframeEdit: false,
-				imageELement: null,
-				htmlData: {}
+				message: '',
+				messageList: [],
+				loading: false
 			}
 		},
-		mounted() {},
+		components: {
+			aiFlowPage
+		},
+		mounted() {
+			this.init();
+		},
 		methods: {
-			async previewWebSite(html, simpleUUID) {
-				if (this.simpleUUID === simpleUUID) return;
-				this.iframeEdit = false;
-				this.loading = true;
-				this.simpleUUID = simpleUUID;
-				let htmlData = await getHtmlData({
-					simpleUUID: simpleUUID
-				})
-				if (!htmlData.state) return this.websiteUrl = '';
-				if (htmlData.data.length > 0) {
-					this.htmlData = htmlData.data[0];
-					return this.websiteUrl = `${config.baseURL}/api/enterprise/${simpleUUID}`
-				}
-				let saveData = await saveHtmlData({
-					data: html,
-					simpleUUID: simpleUUID
-				})
-				if (!saveData.state) return this.websiteUrl = '';
-				this.htmlData = saveData.data;
-				return this.websiteUrl = `${config.baseURL}/api/enterprise/${simpleUUID}`
-			},
-			submit() {
-				this.$confirm('是否发布该官网?', () => {
-					this.$prompt('发布连接', 'WorkArk提示', {
-						confirmButtonText: '打开链接',
-						cancelButtonText: '取消',
-						inputValue: `https://workark.com/api/enterprise/${this.simpleUUID}`
-					}).then(() => {
-						window.open(`https://workark.com/api/enterprise/${this.simpleUUID}`, "_blank");
-					}).catch(() => {});
-				})
-			},
-			onloadIframe() {
-				this.loading = false;
-			},
-			cancelIframe() {
-				const iframe = this.$refs.iframeDom;
-				iframe.contentWindow.location.reload();
-				this.iframeEdit = false;
-			},
-			saveIframe() {
-				const iframe = this.$refs.iframeDom;
-				const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
-				const a = iframeDoc.querySelectorAll('a');
-				a.forEach(element => {
-					element.href = element.oldHref;
-					element.removeAttribute('oldHref');
-				});
-				const allElements = iframeDoc.querySelectorAll('*');
-				allElements.forEach(element => {
-					element.removeAttribute('contentEditable');
-				});
-				const img = iframeDoc.querySelectorAll('img');
-				img.forEach(element => {
-					element.style.cursor = 'pointer';
-					element.onclick = null;
-				});
-				const iframeDocs = iframe.contentDocument || iframe.contentWindow.document;
-				const htmlContent = iframeDocs.documentElement.outerHTML;
-				updateHtmlData({
-					data: htmlContent,
-					id: this.htmlData.id
+			init() {
+				getAIFlowDataList({
+					userId: this.$store.getters.user.userId
 				}).then(res => {
+					this.loading = true;
 					if (res.state) {
-						this.$message.success('操作成功');
-						this.iframeEdit = false;
+						this.messageList = res.data.filter(node => node.status === 'success' || node.status ===
+							'running');
 					}
 				})
 			},
-			editIframe() {
-				let _self = this;
-				const iframe = _self.$refs.iframeDom;
-				if (iframe.contentDocument) {
-					const iframeDoc = iframe.contentDocument || iframe.contentWindow.document;
-					//编辑时a标签不要跳转
-					const a = iframeDoc.querySelectorAll('a');
-					a.forEach(element => {
-						element.oldHref = element.href;
-						element.href = 'javascript:void(0);'
-					});
-					// 获取页面所有元素
-					const allElements = iframeDoc.querySelectorAll('*');
-					// 为每个元素设置contenteditable=true
-					allElements.forEach(element => {
-						if (element.nodeName !== 'IMG') element.contentEditable = 'true';
-					});
-					// 获取页面所有元素
-					const img = iframeDoc.querySelectorAll('img');
-					// 为每个元素设置contenteditable=true
-					img.forEach(element => {
-						element.style.cursor = 'pointer';
-						element.onclick = function() {
-							_self.imageELement = this;
-							_self.$refs.upload.reloadUpload();
-						}
-					});
-					_self.iframeEdit = true;
-				}
-			},
-			successFunc(url) {
-				if (this.imageELement) this.imageELement.src = url;
+			sendMessage() {
+				createAIFlowData(5, {
+					type: 1,
+					insertType: 5,
+					query: this.message
+				}).then(this.successFunc);
 			},
-			handleSend() {
-
+			successFunc(res) {
+				if (res.state) {
+					this.$message.success('操作成功');
+					this.init();
+				}
 			}
 		}
 	}
 </script>
 
 <style lang="scss">
-	.ai-website {
-		flex-direction: row;
+	.no-website-box {
+		width: 100%;
+		height: 100%;
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
 
-		.html-box {
-			width: 100%;
-			overflow: hidden;
-			height: 100%;
-		}
-
-		.iframe-class {
-			width: 100%;
-			height: 100%;
-			border: none;
-			overflow: hidden;
+		.no-title {
+			font-size: 24px;
+			font-weight: 500;
+			text-align: center;
+			margin-bottom: 10px;
 		}
 
-		.website-form-title {
-			height: 44px;
-			line-height: 44px;
-			border-bottom: 1px solid $--border-color-light;
-			padding: 0 10px;
-			font-weight: bold;
+		.no-sub-title {
+			text-align: center;
+			margin-bottom: 30px;
 		}
 
-		.website-form {
-			width: 300px;
-			border-right: 1px solid $--border-color-light;
-		}
-
-		.no-empty {
+		.no-website {
 			width: 100%;
-			height: 100%;
-			display: flex;
-			flex-direction: column;
-			justify-content: center;
+			max-width: 800px;
 		}
 
-		.website-show {
-			flex: 1;
-			width: 0;
-		}
-
-		.website-form-content {
-			padding: 10px;
-
-			.el-form {
-				display: block;
+		.no-input {
+			position: relative;
 
-				.el-form-item {
-					width: 100%;
-					padding: 0 !important;
-					margin-bottom: 15px;
-				}
+			.send-btn {
+				position: absolute;
+				bottom: 10px;
+				right: 10px;
 			}
 		}
 	}
+
+	.ai-website {
+		width: 100%;
+		height: 100%;
+	}
 </style>