Sfoglia il codice sorgente

修改bug, 新增发布上线功能

chenlei1231 3 mesi fa
parent
commit
9dcbb0d849

+ 2 - 2
src/views/adweb/site/AdwebSiteList.vue

@@ -66,7 +66,7 @@
     <BasicTable @register="registerTable" :rowSelection="rowSelection">
       <!--插槽:table标题-->
       <template #tableTitle>
-        <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>
+        <!--        <a-button type="primary" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button>-->
         <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
         <!--        <j-upload-button type="primary" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button>-->
         <!--        <a-dropdown v-if="selectedRowKeys.length > 0">-->
@@ -166,7 +166,7 @@
     <seo-process ref="seoProcessRef" :visible="seoProcessVisible" :title="processTitle" @close="closeProcess" @reload="reload" />
     <google-ads-modal ref="googleAdsModalRef" @success="reload" />
     <Sohoeb2bOrder ref="sohoeb2bOrderRef" @reload="reload" />
-    <SiteRelease ref="siteReleaseRef" @success="reload" />
+    <SiteRelease ref="siteReleaseRef" @reload="reload" />
   </div>
 </template>
 

+ 79 - 86
src/views/adweb/site/components/GoogleAdsModal.vue

@@ -1,103 +1,96 @@
 <template>
-  <BasicDrawer
-    v-bind="$attrs"
-    @register="registerDrawer"
-    title="绑定Google Ads帐号"
-    @ok="handleSubmit"
-    width="850"
-    showFooter
-  >
+  <BasicDrawer v-bind="$attrs" @register="registerDrawer" title="绑定Google Ads帐号" @ok="handleSubmit" width="850" showFooter>
     <BasicForm @register="registerForm" />
   </BasicDrawer>
 </template>
 
 <script lang="ts" setup>
-import { ref } from 'vue';
-import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
-import { BasicForm, useForm } from '/@/components/Form';
-import { useMessage } from '/@/hooks/web/useMessage';
-import { getGoogleAdsAccount, bindGoogleAdsAccount } from '../AdwebSite.api';
+  import { ref } from 'vue';
+  import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
+  import { BasicForm, useForm } from '/@/components/Form';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  import { getGoogleAdsAccount, bindGoogleAdsAccount } from '../AdwebSite.api';
 
-const emit = defineEmits(['success', 'register']);
-const { createMessage } = useMessage();
+  const emit = defineEmits(['success', 'register']);
+  const { createMessage } = useMessage();
 
-const formSchema = [
-  {
-    field: 'googleAdsAccount',
-    label: 'Google Ads帐号',
-    component: 'Input',
-    required: true,
-  },
-  {
-    field: 'apiRefreshToken',
-    label: 'API Refresh Token',
-    component: 'Input',
-  },
-  {
-    field: 'siteCode',
-    label: '站点代码',
-    component: 'Input',
-    required: true,
-    show: false,
-  },
-];
+  const formSchema = [
+    {
+      field: 'googleAdsAccount',
+      label: 'Google Ads帐号',
+      component: 'Input',
+      required: true,
+    },
+    {
+      field: 'apiRefreshToken',
+      label: 'API Refresh Token',
+      component: 'Input',
+    },
+    {
+      field: 'siteCode',
+      label: '站点代码',
+      component: 'Input',
+      required: true,
+      show: false,
+    },
+  ];
 
-const [registerForm, { resetFields, validate, setFieldsValue }] = useForm({
-  labelWidth: 120,
-  schemas: formSchema,
-  showActionButtonGroup: false,
-});
+  const [registerForm, { resetFields, validate, setFieldsValue }] = useForm({
+    labelWidth: 120,
+    schemas: formSchema,
+    showActionButtonGroup: false,
+  });
 
-const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner();
+  const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner();
 
-async function handleSubmit() {
-  try {
-    const values = await validate();
-    const params: Record<string, any> = {
-      customerId: values.googleAdsAccount,
-      siteCode: values.siteCode,
-    };
-    if (values.apiRefreshToken) {
-      params.refreshToken = values.apiRefreshToken;
+  async function handleSubmit() {
+    try {
+      const values = await validate();
+      const params: Record<string, any> = {
+        customerId: values.googleAdsAccount,
+        siteCode: values.siteCode,
+      };
+      if (values.apiRefreshToken) {
+        params.refreshToken = values.apiRefreshToken;
+      }
+      await bindGoogleAdsAccount(params);
+      createMessage.success('Google Ads账号绑定成功');
+      emit('success');
+      closeDrawer();
+    } catch (error) {
+      createMessage.error('绑定Google Ads账号失败');
+      console.error(error);
     }
-    await bindGoogleAdsAccount(params);
-    createMessage.success('Google Ads账号绑定成功');
-    emit('success');
-    closeDrawer();
-  } catch (error) {
-    createMessage.error('绑定Google Ads账号失败');
-    console.error(error);
   }
-}
 
-// Add this method to handle initialization
-const init = async (data: { record: Recordable }) => {
-  resetFields();
-  setDrawerProps({ visible: true, confirmLoading: true });
-  
-  try {
-    // 将 siteCode 作为路径参数传递
-    const params = {
-      siteCode: data.record.code
-    };
-    const res = await getGoogleAdsAccount(params);
-    if (res) {
-      setFieldsValue({
-        googleAdsAccount: res.customerId,
-        apiRefreshToken: res.refreshToken,
+  // Add this method to handle initialization
+  const init = async (data: { record: Recordable }) => {
+    resetFields();
+    setDrawerProps({ visible: true, confirmLoading: true });
+
+    try {
+      // 将 siteCode 作为路径参数传递
+      const params = {
         siteCode: data.record.code,
-      });
+      };
+      const res = await getGoogleAdsAccount(params);
+      if (res) {
+        setFieldsValue({
+          googleAdsAccount: res.customerId,
+          apiRefreshToken: res.refreshToken,
+          siteCode: data.record.code,
+        });
+      }
+    } catch (error) {
+      createMessage.error('获取Google Ads账号信息失败');
+      console.error(error);
+    } finally {
+      setDrawerProps({ confirmLoading: false });
     }
-  } catch (error) {
-    createMessage.error('获取Google Ads账号信息失败');
-    console.error(error);
-  } finally {
-    setDrawerProps({ confirmLoading: false });
-  }
-};
+  };
 
-// Expose the init method
-defineExpose({
-  init
-});
-</script> 
+  // Expose the init method
+  defineExpose({
+    init,
+  });
+</script>

+ 77 - 12
src/views/adweb/site/components/SiteRelease.vue

@@ -74,34 +74,38 @@
 
   const wpPublishFormRules = reactive({
     domain: [{ required: true, message: '请输入正确网站域名格式', trigger: 'blur' }],
-    serverIp: [{ required: true, message: '请选择生产服务器', trigger: 'blur' }],
+    serverIp: [{ required: true, message: '请选择生产服务器', trigger: 'submit' }],
   });
   const { createMessage } = useMessage();
   const url = {
     serverListUrl: '/adweb/adwebServer/list',
     checkDomainUrl: '/wpWebSite/check/domain',
+    wpSiteReleaseUrl: '/wpWebSite/releaseWebsite',
   };
 
-  //站点搜索
+  const emit = defineEmits(['ok', 'close', 'reload']);
+
+  //服务器搜索
   const filterOption = (input: string, option: any) => {
     return option.serverName.toLowerCase().indexOf(input.toLowerCase()) >= 0;
   };
 
-  let wpPublishForm = reactive({ cname: '', ip: '', domain: '', siteId: '' });
-  let serverList = reactive([{ serverName: '', serverIp: '', cname: '' }]);
-  let selectServer = reactive({ serverName: '', serverIp: '', cname: '' });
+  let wpPublishForm = reactive({ cname: '', ip: '', domain: '', siteCode: '' });
+  let serverList = reactive([{ id: '', serverName: '', serverIp: '', cname: '' }]);
+  let selectServer = reactive({ id: '', serverName: '', serverIp: '', cname: '' });
 
   function init(record) {
     modalVisible.value = true;
     spinning.value = true;
+
+    console.log(record, 'record');
+    wpPublishForm.siteCode = record.code;
+
     getAction(url.serverListUrl, null)
       .then(function (res) {
         spinning.value = false;
         if (res.code === 200) {
           serverList = res.result.records;
-
-          console.log(res.result.records, ' res.result.records res.result.records');
-          console.log(serverList, 'serverListserverListserverList');
         }
       })
       .catch(function (err) {
@@ -163,13 +167,74 @@
       });
   }
 
-  async function handleOk() {}
+  async function handleOk() {
+    loadingBtn.value = true;
+    if (wpPublishForm.domain == null || wpPublishForm.domain === '') {
+      createMessage.error('域名不能为空!');
+      loadingBtn.value = false;
+      return;
+    }
+
+    if (selectServer.serverIp == null || selectServer.serverIp === '') {
+      createMessage.error('请选择生产服务器之后再次检测!');
+      loadingBtn.value = false;
+      return;
+    }
+
+    let params = {
+      domain: wpPublishForm.domain,
+      cname: selectServer.cname,
+      ip: selectServer.serverIp,
+    };
+    let checkDomainUrl = `${url.checkDomainUrl}`;
+    postActionForm(checkDomainUrl, params, 120000)
+      .then(function (res) {
+        loadingBtn.value = false;
+        if (res.code === 200) {
+          createMessage.success('检测成功,域名可用!');
+          spinning.value = true;
+          tipTitle.value = '正在发布站点';
+          let data = {
+            serverId: selectServer.id,
+            domain: wpPublishForm.domain,
+            siteCode: wpPublishForm.siteCode,
+          };
+          let wpSiteReleaseUrl = `${url.wpSiteReleaseUrl}`;
+          postAction(wpSiteReleaseUrl, data, 120000)
+            .then(function (res) {
+              if (res.code === 200) {
+                createMessage.success('发布成功!');
+
+                spinning.value = false;
+                tipTitle.value = '';
+                modalVisible.value = false;
+                emit('reload');
+              }
+            })
+            .catch(function () {
+              createMessage.error('网络超时,请重试!');
+              emit('reload');
+            });
+        } else if (res.code === 101) {
+          createMessage.error('域名请勿以http://或https://开头');
+        } else if (res.code === 103) {
+          createMessage.error('请确认您的域名已指向CNAME或IP');
+        } else if (res.code === 100) {
+          createMessage.warning('请勿提交我们的CNAME或IP');
+        } else if (res.code === 102) {
+          createMessage.warning('您填写的域名已发布或被他人使用,请勿重复提交!');
+        }
+      })
+      .catch(function (err) {
+        console.log(err);
+      });
+  }
 
   function handleCancel() {
-    wpPublishForm.orderUrlID = '';
-    wpPublishForm.orderUrl = '';
+    wpPublishForm.cname = '';
+    wpPublishForm.ip = '';
     wpPublishForm.domain = '';
-    wpPublishForm.code = '';
+    wpPublishForm.siteCode = '';
     spinning.value = false;
     modalVisible.value = false;
     loadingDrawerBtn.value = false;

+ 5 - 1
src/views/adweb/theme/components/AdwebCreateSite.vue

@@ -34,7 +34,11 @@
           <a-form-item name="planId" label="营销方案">
             <a-row :gutter="8">
               <a-col :span="21">
-                <j-search-select placeholder="请选择营销方案" v-model:value="createSiteForm.planId" dict="subscribe_plan,plan_name,id,status=1" />
+                <j-search-select
+                  placeholder="请选择营销方案"
+                  v-model:value="createSiteForm.planId"
+                  dict="adweb_subscribe_plan,plan_name,id,status=1"
+                />
               </a-col>
               <a-col :span="3">
                 <router-link :to="{ path: '/deliver/serp/seoMarketPlan/list', query: { from: 'themeList' } }">