liyongli 1 жил өмнө
parent
commit
1d6acfd28a

+ 44 - 10
src/api/aleditor.js

@@ -90,16 +90,50 @@ export function advertisement(params) {
 
 /**
  * 文献推荐
- * @param {object} params 
- * @returns 
+ * @param {object} params
+ * @returns
  */
 export function recommendation(params) {
-    return ajax({
-        api: '/html/literature-recommendation?isSampleDocument=false',
-        data: params.data,
-        noload: params.noload,
-        base: 'xzMao',
-        noJY: true,
-        method: 'POST',
-    })
+  return ajax({
+    api: '/html/literature-recommendation?isSampleDocument=false',
+    data: params.data,
+    noload: params.noload,
+    base: 'xzMao',
+    noJY: true,
+    method: 'POST',
+  });
+}
+
+/**
+ * AI绘图
+ * @param {object} params
+ * @returns
+ */
+export function generate(params) {
+  return ajax({
+    api: '/html/drawdraw/internal-generate?isSampleDocument=false',
+    data: params.data,
+    noload: params.noload,
+    base: 'xzMao',
+    noJY: true,
+    method: 'POST',
+  });
+}
+export function imgTask(params) {
+  return ajax({
+    api: '/html/drawdraw/task/' + params.data.id + '?' + Date.now(),
+    noload: params.noload,
+    base: 'xzMao',
+    noJY: true,
+    method: 'POST',
+  });
+}
+export function getBase64(params) {
+  return ajax({
+    api:  `/html/${params.data.docId}/base64/${params.data.id}?isSampleDocument=false`,
+    noload: params.noload,
+    base: 'xzMao',
+    noJY: true,
+    method: 'POST',
+  });
 }

+ 104 - 17
src/view/allMedia/AIeditor/components/draw.vue

@@ -12,24 +12,53 @@
           placeholder="如:原神,甘雨"
         />
       </el-form-item>
-      <el-form-item label="风格">
-        <el-button :type="form.fengge === 'huitu' ? 'primary' : undefined" plain>绘图</el-button>
-        <el-button :type="form.fengge === '3d' ? 'primary' : undefined" plain>3D渲染</el-button>
-        <el-button :type="form.fengge === 'shouhui' ? 'primary' : undefined" plain>手绘</el-button>
-        <el-button :type="form.fengge === 'shuicai' ? 'primary' : undefined" plain>水彩</el-button>
-        <el-button :type="form.fengge === 'chahua' ? 'primary' : undefined" plain>插画</el-button>
-        <el-button :type="form.fengge === 'sumiao' ? 'primary' : undefined" plain>素描</el-button>
-        <el-button :type="form.fengge === 'xieshi' ? 'primary' : undefined" plain>写实</el-button>
+      <el-form-item label="风格" style="text-align: left">
+        <el-button :type="form.fengge === '绘图' ? 'primary' : undefined" plain>
+          绘图
+        </el-button>
+        <el-button
+          :type="form.fengge === '3D渲染' ? 'primary' : undefined"
+          plain
+        >
+          3D渲染
+        </el-button>
+        <el-button :type="form.fengge === '手绘' ? 'primary' : undefined" plain>
+          手绘
+        </el-button>
+        <el-button :type="form.fengge === '水彩' ? 'primary' : undefined" plain>
+          水彩
+        </el-button>
+        <el-button :type="form.fengge === '插画' ? 'primary' : undefined" plain>
+          插画
+        </el-button>
+        <el-button :type="form.fengge === '素描' ? 'primary' : undefined" plain>
+          素描
+        </el-button>
+        <el-button :type="form.fengge === '写实' ? 'primary' : undefined" plain>
+          写实
+        </el-button>
       </el-form-item>
-      <el-form-item label="比例">
-        <el-button :type="form.bili === 'fang' ? 'primary' : undefined" plain>方图</el-button>
-        <el-button :type="form.bili === 'heng' ? 'primary' : undefined" plain>横图</el-button>
-        <el-button :type="form.bili === 'shu' ? 'primary' : undefined" plain>竖图</el-button>
+      <el-form-item label="比例" style="text-align: left">
+        <el-button :type="form.bili === '方图' ? 'primary' : undefined" plain>
+          方图
+        </el-button>
+        <el-button :type="form.bili === '横图' ? 'primary' : undefined" plain>
+          横图
+        </el-button>
+        <el-button :type="form.bili === '竖图' ? 'primary' : undefined" plain>
+          竖图
+        </el-button>
       </el-form-item>
     </el-form>
 
     <div class="btn_group">
-      <el-button type="primary" style="width: 100%">生成内容</el-button>
+      <el-button
+        type="primary"
+        style="width: 100%"
+        :loading="load"
+        @click="create"
+        >生成内容</el-button
+      >
       <div class="bottom-content-safe-tip">
         <img :src="image_base64.tanhao" class="content-safe-tip-icon" />
         <div class="content-safe-tip-text">
@@ -41,14 +70,72 @@
 </template>
 
 <script setup>
-import { ref } from 'vue';
+import { ref, defineEmits } from 'vue';
 import { image_base64 } from './data.js';
-// import {commit} from "@/api/aleditor.js";
+import { generate, imgTask, getBase64 } from '@/api/aleditor.js';
+const emits = defineEmits(['closeType', 'setHtml', 'getImage']);
 const form = ref({
   title: '',
-  fengge: 'huitu',
-  bili: 'fang'
+  fengge: '绘图',
+  bili: '方图',
 });
+const load = ref(false);
+
+const create = () => {
+  const p = {
+    cnt: 1,
+    docId: '8347104926682292224',
+    text: `${form.value.fengge} ${form.value.bili} | ${form.value.title}`,
+  };
+  load.value = true;
+  generate({ data: p, noload: true })
+    .then(r => {
+      if (r.errCode !== 0) return;
+      get(r.data.task_id);
+    })
+    .catch(() => {
+      load.value = false;
+    });
+};
+
+const get = id => {
+  imgTask({
+    data: {
+      id,
+    },
+  })
+    .then(r => {
+      if (r.errCode !== 0) return;
+      if (r.data.ratio !== 1) {
+        let t = setTimeout(() => {
+          clearTimeout(t);
+          get(id);
+        }, 500);
+        return;
+      }
+      getBase64Func(r.data.images[0].id);
+    })
+    .catch(() => {
+      load.value = false;
+    });
+};
+
+const getBase64Func = id => {
+  getBase64({
+    data: {
+      id,
+      docId: '8347104926682292224',
+    },
+  })
+    .then(r => {
+      load.value = false;
+      if (r.data.errCode !== 0) return;
+      emits('getImage', r.data.data);
+    })
+    .catch(() => {
+      load.value = false;
+    });
+};
 </script>
 
 <style scoped>