Ver Fonte

fix: 线索接口联调逻辑修改

liyang há 4 meses atrás
pai
commit
e0f86db4c0

+ 9 - 1
src/api/market-manage/clue-management/index.js

@@ -6,7 +6,15 @@ export const clientManageApi = {
      * 查询委托方表头数据 @author wzs
      */
     getQueryList: (id) => {
-        return getRequest(`/supports/clue/query/${id}`);
+        return getRequest(`/supports/project/${id}`);
+        //
+    },
+    getQueryHeaderList: (id) => {
+        return getRequest(`/supports/project/header${id}`);
+    },
+    // 项目列表
+    inteListAdd: (params) => {
+        return postRequest(`/supports/project/create`, params);
     },
 
     // 上传附件

+ 22 - 1
src/views/market-manage/external-manage/clue-management/clue-list/index.vue

@@ -19,17 +19,22 @@ import {onMounted, ref} from 'vue';
 import AddOrEditDrawer from '/@/views/table-demo/components/AddOrEditDrawer.vue';
 import {useRouter} from 'vue-router';
 import {pick} from "lodash";
+import useBsDict from "/@/utils/dict.js";
 import {DISPLAY_STATE} from "/@/components/BsUi/constant.js";
 
 const addOrEditDrawerRef = ref(null);
 const router = useRouter();
+onMounted(() => {
+  refreshTable();
+});
 const {
       tableOptions,
       setTablePropsValue: setValue,
       getTablePropsValue: getValue,
+      refreshTable
     } = useBsTable({
       tableOptions: {
-        url: '/supports/clue/queryPage',
+        url: '/supports/project/queryPage',
         gridOptions: {
           // data:[],
           loading: false,
@@ -37,66 +42,82 @@ const {
             {
               field: 'projectName',
               title: '项目名称',
+              width: 150
             },
             {
               field: 'projectId',
               title: '项目ID',
+              width: 150
             },
             {
               field: 'projectAddress',
               title: '项目地址',
+              width: 150
             },
             {
               field: 'projectStatus',
               title: '项目状态',
+              width: 150
             },
             {
               field: 'lessor',
               title: '甲方',
+              width: 150
             },
             {
               field: 'tenderDate',
               title: '预计招标日期',
+              width: 150
             },
             {
               field: 'projectBudgets',
               title: '概算金额(万)',
+              width: 150
             },
             {
               field: 'factory',
               title: '分厂/几期/机组',
+              width: 150
             },
             {
               field: 'projectSource',
               title: '项目来源',
+              width: 150
             },
             {
               field: 'projectType',
               title: '项目类型',
+              width: 150
             },
             {
               field: 'engineeringAttribute',
               title: '工程属性',
+              width: 150
             },
             {
               field: 'businessType',
               title: '业务类型',
+              width: 150
             },
             {
               field: 'belongMarketer',
               title: '归属营销经理',
+              width: 150
             },
             {
               field: 'belongMarketingDepartment',
               title: '归属营销部门',
+              width: 150
             },
             {
               field: 'name',
               title: '创建人',
+              width: 150
             },
             {
               field: 'name',
               title: '创建时间',
+              width: 150
             },
             {
               field: 'opt',

+ 127 - 120
src/views/market-manage/external-manage/clue-management/clue-registration/index.vue

@@ -10,7 +10,7 @@
               <span class="basic-title-text">线索登记</span>
             </div>
             <div class="basic-title-right">
-              <a-button type="primary" @click="reset">重置</a-button>
+              <!--              <a-button type="primary" @click="reset">重置</a-button>-->
               <a-button type="primary" @click="submit">提交</a-button>
             </div>
           </div>
@@ -25,27 +25,14 @@
                   />
                 </a-form-item>
               </a-col>
-              <a-col :span="16">
-                <a-form-item label="线索名称">
+              <a-col :span="8">
+                <a-form-item label="线索名称" name="clueName">
                   <a-input
                       v-model:value="formState.clueName"
                       placeholder="请输入线索名称"
                   />
                 </a-form-item>
               </a-col>
-
-            </a-row>
-            <a-row :gutter="16">
-              <a-col :span="24">
-                <a-form-item label="项目名称" name="projectName">
-                  <a-input
-                      v-model:value="formState.projectName"
-                      placeholder="自动生成(甲方-分厂-几期-机组-工程属性)"
-                  />
-                </a-form-item>
-              </a-col>
-            </a-row>
-            <a-row :gutter="16">
               <a-col :span="8">
                 <a-form-item label="线索来源" name="clueSource">
                   <a-select
@@ -56,6 +43,8 @@
                   />
                 </a-form-item>
               </a-col>
+            </a-row>
+            <a-row :gutter="16">
               <a-col :span="8">
                 <a-form-item :label="dynamicField.label" :name="dynamicField.name">
                   <a-select
@@ -85,6 +74,14 @@
                   />
                 </a-form-item>
               </a-col>
+              <a-col :span="8">
+                <a-form-item label="项目名称" name="projectName">
+                  <a-input
+                      v-model:value="formState.projectName"
+                      placeholder="自动生成(甲方-分厂-几期-机组-工程属性)"
+                  />
+                </a-form-item>
+              </a-col>
               <a-col :span="8">
                 <a-form-item label="工程属性" name="engineeringAttribute">
                   <a-select
@@ -97,7 +94,7 @@
             </a-row>
             <a-row :gutter="16">
               <a-col :span="8">
-                <a-form-item label="地区" name="countryRegion">
+                <a-form-item label="地区">
                   <a-cascader
                       v-model:value="formState.countryRegion"
                       :options="regionOptions"
@@ -106,11 +103,13 @@
                 </a-form-item>
               </a-col>
               <a-col :span="8">
-                <a-form-item label="省市区" name="province">
-                  <a-cascader
+                <a-form-item label="省市区">
+                  <AreaCascader
+                      type="province_city_district"
+                      style="width: 100%"
                       v-model:value="formState.province"
-                      :options="regionOptions"
-                      placeholder="请选择"
+                      placeholder="请选择省市区"
+                      @change="changeArea"
                   />
                 </a-form-item>
               </a-col>
@@ -124,7 +123,7 @@
               </a-col>
             </a-row>
             <a-row :gutter="16">
-              <a-col :span="12">
+              <a-col :span="6">
                 <a-form-item label="业主单位">
                   <div class="flex-container">
                     <a-select
@@ -145,7 +144,7 @@
                   </div>
                 </a-form-item>
               </a-col>
-              <a-col :span="12">
+              <a-col :span="6">
                 <a-form-item label="设计单位">
                   <div class="flex-container">
                     <a-select
@@ -165,9 +164,7 @@
                   </div>
                 </a-form-item>
               </a-col>
-            </a-row>
-            <a-row :gutter="16">
-              <a-col :span="12">
+              <a-col :span="6">
                 <a-form-item label="总承包单位">
                   <div class="flex-container">
                     <a-select
@@ -187,7 +184,7 @@
                   </div>
                 </a-form-item>
               </a-col>
-              <a-col :span="12">
+              <a-col :span="6">
                 <a-form-item label="招标代理单位">
                   <div class="flex-container">
                     <a-select
@@ -209,9 +206,13 @@
                 </a-form-item>
               </a-col>
             </a-row>
+            <!--            <a-row :gutter="16">-->
+            <!--          -->
+            <!--      -->
+            <!--            </a-row>-->
             <a-row :gutter="16">
               <a-col :span="8">
-                <a-form-item label="是否联合体" name="complex">
+                <a-form-item label="是否联合体">
                   <a-select
                       v-model:value="formState.complex"
                       placeholder="请选择"
@@ -219,18 +220,16 @@
                   />
                 </a-form-item>
               </a-col>
-              <a-col :span="16">
-                <a-form-item label="联合体情况" name="complexDescription">
+              <a-col :span="8">
+                <a-form-item label="联合体情况">
                   <a-input
                       v-model:value="formState.complexDescription"
                       placeholder="请输入"
                   />
                 </a-form-item>
               </a-col>
-            </a-row>
-            <a-row :gutter="16">
               <a-col :span="8">
-                <a-form-item label="项目所属行业" name="projectBelongIndustry">
+                <a-form-item label="项目所属行业">
                   <a-select
                       v-model:value="formState.projectBelongIndustry"
                       placeholder="请选择"
@@ -238,29 +237,25 @@
                   />
                 </a-form-item>
               </a-col>
-              <a-col :span="8">
-                <a-form-item label="业务类型" name="businessType">
+            </a-row>
+            <a-row :gutter="16">
+
+              <a-col :span="6">
+                <a-form-item label="业务类型">
                   <a-select
                       v-model:value="formState.businessType"
                       placeholder="请选择"
-                      :options="ownerUnitOptions4"
+                      :optinos="ownerUnitOptions4"
                   />
                 </a-form-item>
               </a-col>
-              <a-col :span="8">
-                <a-form-item label="招标平台" name="tenderPlatform">
+              <a-col :span="6">
+                <a-form-item label="招标平台">
                   <a-input v-model:value="formState.tenderPlatform" placeholder="请输入"/>
                 </a-form-item>
               </a-col>
-            </a-row>
-            <a-row :gutter="16">
-              <a-col :span="8">
-                <a-form-item label="项目总概算" name="projectBudget">
-                  <a-input v-model:value="formState.projectBudget" placeholder="自动生成(各标段概算之和)"/>
-                </a-form-item>
-              </a-col>
-              <a-col :span="8">
-                <a-form-item label="项目资金来源" name="projectMoneySource">
+              <a-col :span="6">
+                <a-form-item label="项目资金来源">
                   <a-select
                       v-model:value="formState.projectMoneySource"
                       placeholder="请选择"
@@ -268,29 +263,36 @@
                   />
                 </a-form-item>
               </a-col>
-              <a-col :span="8">
+              <a-col :span="6">
                 <a-form-item label="分厂/几期/机组" name="factory">
                   <a-input v-model:value="formState.factory" placeholder="请输入"/>
                 </a-form-item>
               </a-col>
             </a-row>
+            <!--            <a-row :gutter="16">-->
+            <!--              <a-col :span="8">-->
+            <!--                <a-form-item label="项目总概算">-->
+            <!--                  <a-input v-model:value="formState.projectBudget" placeholder="自动生成(各标段概算之和)"/>-->
+            <!--                </a-form-item>-->
+            <!--              </a-col>-->
+            <!--       -->
+            <!--         -->
+            <!--            </a-row>-->
             <a-row :gutter="16">
               <a-col :span="24">
-                <a-form-item label="项目背景" name="projectBackground" class="smart-query-form-item">
+                <a-form-item label="项目背景" class="smart-query-form-item">
                   <a-input v-model:value="formState.projectBackground" placeholder="请输入"/>
                 </a-form-item>
               </a-col>
             </a-row>
             <a-row :gutter="16">
-              <a-col :span="24">
-                <a-form-item label="项目阶段" name="projectStage" class="smart-query-form-item">
+              <a-col :span="16">
+                <a-form-item label="项目阶段" class="smart-query-form-item">
                   <a-input v-model:value="formState.projectStage" placeholder="请输入"/>
                 </a-form-item>
               </a-col>
-            </a-row>
-            <a-row :gutter="16">
               <a-col :span="8">
-                <a-form-item label="归属营销人员" class="smart-query-form-item">
+                <a-form-item label="归属营销人员" name="belongMarketer" class="smart-query-form-item">
                   <a-select
                       v-model:value="formState.belongMarketer"
                       placeholder="请选择"
@@ -324,29 +326,16 @@
             >
               <a-form layout="vertical">
                 <a-form-item label="营销经理">
-                  <a-input v-model:value="formStates.manager" />
+                  <a-input v-model:value="formStates.manager"/>
                 </a-form-item>
                 <a-form-item label="营销团队">
-                  <a-input v-model:value="formStates.team" />
+                  <a-input v-model:value="formStates.team"/>
                 </a-form-item>
                 <a-form-item label="支持说明">
-                  <a-textarea v-model:value="formStates.description" />
+                  <a-textarea v-model:value="formStates.description"/>
                 </a-form-item>
               </a-form>
             </a-modal>
-            <!--            <bs-table></bs-table>-->
-            <!--            <a-table-->
-            <!--                :columns="teamColumns"-->
-            <!--                :data-source="teamData"-->
-            <!--                :pagination="false"-->
-            <!--                bordered-->
-            <!--            >-->
-            <!--              <template #bodyCell="{ column, record }">-->
-            <!--                <template v-if="column.key === 'action'">-->
-            <!--                  <a-button type="link" danger @click="removeTeam(record.key)">删除</a-button>-->
-            <!--                </template>-->
-            <!--              </template>-->
-            <!--            </a-table>-->
           </div>
         </div>
         <div>
@@ -385,15 +374,19 @@
 </template>
 <script setup lang="jsx">
 import {reactive, ref, computed} from 'vue';
+
 const visible = ref(false);
 import {
   PlusOutlined,
   InboxOutlined,
 } from '@ant-design/icons-vue';
 import {useRouter} from 'vue-router';
-import {message} from 'ant-design-vue';
+import {message, Modal} from 'ant-design-vue';
 import _ from 'lodash';
 import BsTable, {useBsTable} from '/@/components/BsUi/Table/index.js';
+import useBsDict from "/@/utils/dict.js";
+import {clientManageApi} from '/@/api/market-manage/clue-management/index.js';
+import AreaCascader from "/@/components/framework/area-cascader/index.vue";
 
 const stepFormRef = ref(null);
 const router = useRouter();
@@ -435,13 +428,19 @@ const formState = reactive({
   isBiddingAgentPartyA: undefined,
   serviceProvider: undefined,
   region: undefined,
-  teamDTOList: []
+  teams: []
 
 });
 
 // --------------------- 校验规则 ---------------------
 const formRules = {
-  // customerName: [{ required: true, message: '请输入客户名称', trigger: 'change' }],
+  projectType: [{required: true, message: '请选择项目类型', trigger: 'change'}],
+  clueName: [{required: true, message: '请输入线索名称', trigger: 'change'}],
+  clueSource: [{required: true, message: '请选择线索来源', trigger: 'change'}],
+  projectName: [{required: true, message: '请输入项目名称', trigger: 'change'}],
+  engineeringAttribute: [{required: true, message: '请选择工程属性', trigger: 'change'}],
+  belongMarketer: [{required: true, message: '请选择归属营销人员', trigger: 'change'}],
+  factory: [{required: true, message: '请输入分厂/几期/机组', trigger: 'change'}],
 };
 const {
   tableOptions,
@@ -452,7 +451,7 @@ const {
     // url:''
     gridOptions: {
       loading: false,
-      displayToolbar:'123',
+      displayToolbar: '123',
       data: [],
       columns: [
         {
@@ -514,6 +513,10 @@ const showModal = () => {
   visible.value = true;
 };
 
+function changeArea(value, selectedOptions) {
+  formState.province = value;
+}
+
 // 确认添加
 const handleOk = () => {
   const currentData = getValue('gridOptions.data') || [];
@@ -526,7 +529,6 @@ const handleOk = () => {
   };
 
   setValue('gridOptions.data', [...currentData, newRow]);
-  console.log(setValue('gridOptions.data', [...currentData, newRow]))
   resetForm();
   visible.value = false;
 };
@@ -648,34 +650,54 @@ function changeAttachment(fileList) {
 // ----------------------- 步骤相关 ---------------------------
 
 const submit = () => {
-  router.push('/market-manage/external-manage/clue-management/clue-list');
-  // stepFormRef.value
-  //     .validateFields()
-  //     .then((values) => {
-  //       Modal.confirm({
-  //         title: '提示',
-  //         content: '确定要提交吗?',
-  //         okText: '确认',
-  //         onOk() {
-  //           postFormData();
-  //         },
-  //         cancelText: '取消',
-  //         onCancel() {
-  //         },
-  //       });
-  //     })
-  //     .catch((error) => {
-  //       console.log('step1_error', error);
-  //     });
+  stepFormRef.value
+      .validateFields()
+      .then((values) => {
+        Modal.confirm({
+          title: '提示',
+          content: '确定要提交吗?',
+          okText: '确认',
+          onOk() {
+            // console.log('form', form);
+            postFileData();
+
+          },
+          cancelText: '取消',
+          onCancel() {
+          },
+        });
+      })
+      .catch((error) => {
+        console.log('step1_error', error);
+      });
 };
 
-const postFormData = () => {
-  // customerApi.CustomerAddition(formModel).then((res) => {
-  //   message.success('提交成功');
-  //   router.push({path: '/teamwork/customer-manage/customer-list'});
-  // });
+// 提交
+const postFileData = () => {
+  let params = {
+    ...formState,
+    teams: getValue('gridOptions.data')
+  }
+  clientManageApi.inteListAdd(params).then((res) => {
+    message.success('提交成功');
+    // router.push({
+    //   path: '', query: {
+    //     refresh: true,  // 触发刷新的标记
+    //     projectName: '新建项目',  // 实际查询参数
+    //     status: 2
+    //   }
+    // });
+    router.push({
+      path: '/market-manage/external-manage/clue-management/clue-list',
+      query: {
+        refresh: true,
+        status: 2
+      }
+    });
+
+
+  })
 };
-//------------------------地区-------------------------------------
 
 
 // 文件上传
@@ -700,10 +722,7 @@ const clueSourceOptions = ref([
   {value: 'marketActivity', label: '市场活动'},
   {value: 'referral', label: '转介绍'}
 ]);
-const serviceProviderOptions = ref([
-  {value: 'provider1', label: '项目类'},
-  {value: 'provider2', label: '贸易类'},
-]);
+const serviceProviderOptions = useBsDict.getDictList('BLINK_MARKET_PROJECT_TYPE');
 
 // 活动选项
 const activityOptions = ref([
@@ -714,22 +733,10 @@ const ownerUnitOptions = ref([
   {value: 'owner1', label: '国内客户'},
   {value: 'owner2', label: '国外客户'},
 ]);
-const ownerUnitOptions1 = ref([
-  {value: 'owner1', label: '新建'},
-  {value: 'owner2', label: '旧改'},
-]);
-const ownerUnitOptions3 = ref([
-  {value: 'owner1', label: '客户提供'},
-]);
-const ownerUnitOptions4 = ref([
-  {value: 'owner1', label: '业务一部'},
-  {value: 'owner2', label: '业务二部'},
-  {value: 'owner3', label: '业务三部'},
-]);
-const ownerUnitOptions5 = ref([
-  {value: 'owner1', label: '政府机构'},
-  {value: 'owner2', label: '民营企业'},
-]);
+const ownerUnitOptions1 = useBsDict.getDictList('BLINK_MARKET_PROJECT_ENGINEERING_TYPE');
+const ownerUnitOptions3 = useBsDict.getDictList('BLINK_MARKET_PROJECT_FINANCE_SOURCE');
+const ownerUnitOptions4 = useBsDict.getDictList('BLINK_CUSTOMER_FILE_TYPE');
+const ownerUnitOptions5 = useBsDict.getDictList('BLINK_MARKET_PROJECT_INDUSTRY');
 
 const regionOptions = ref([
   {

+ 3 - 0
src/views/market-manage/external-manage/clue-management/view-details/index.vue

@@ -97,6 +97,9 @@ const fetchData = (id) => {
       {label: '分厂/几期/机组', value: customerData.shortDescription || '--'},
     ];
   })
+  clientManageApi.getQueryHeaderList(id).then((res)=>{
+    console.log(res,8885555)
+  })
 }
 const getImgUrl = (name) => {
   return new URL('/src/assets/images/page-detail-layout/customer/' + name + '.svg', import.meta.url).href;