Просмотр исходного кода

Merge branch 'dev' of http://39.101.143.165:8090/dong_k/tenant-Platform into dev

祁鹏飞 5 месяцев назад
Родитель
Сommit
def8681d2f

+ 9 - 1
src/views/insurancePolicy/order.vue

@@ -222,6 +222,8 @@ import { dictData } from '@/views/localDict/index';
 import { ElMessage } from "element-plus";
 import { useRouter } from 'vue-router';
 import { TableInstance } from 'element-plus';
+import QRCode from 'qrcode'
+
 const router = useRouter()
 const loading = ref(false)
 const formData = ref({})
@@ -545,7 +547,7 @@ const payCode = (scope: any) => {
   payCodeShow.value = true
   api.insurancePolicyApi.getQrCode(scope.row.orderNo).then((res: any) => {
     if (res.code == 200) {
-      payCodeUrl.value = res.data?.qrcode
+      initPayCode(res.data?.qrcode)
     } else {
       payCodeUrl.value = ''
       ElMessage({
@@ -555,6 +557,12 @@ const payCode = (scope: any) => {
     }
   })
 }
+const initPayCode = async (url) => {
+  payCodeUrl.value = await QRCode.toDataURL(url, {
+    width: 150,
+    margin: 2
+  });
+}
 
 const uploadStatus = (row: any) => {
   api.insurancePolicyApi.getOrderStatus({

+ 132 - 291
src/views/quoteConfig/dispatch/components/rule.vue

@@ -1,235 +1,107 @@
 <template>
   <div>
-    <el-drawer
-      v-model="drawer"
-      :title="props.drawerTitle"
-      size="918"
-      @close="handleClose"
-    >
+    <el-drawer v-model="drawer" :title="props.drawerTitle" size="918" @close="handleClose">
       <div class="item-title"><span></span> 当报价信息满足以下条件时</div>
-      <el-form
-        ref="formRef"
-        :model="formData"
-        label-width="auto"
-        class="demo-dynamic"
-        :rules="formRules"
-      >
+      <el-form ref="formRef" :model="formData" label-width="auto" class="demo-dynamic" :rules="formRules">
         <!-- 多组条件容器(组之间是"或者"关系) -->
         <div class="condition-container">
-          <div
-            v-for="(group, groupIndex) in formData.conditionGroups"
-            :key="group.groupKey"
-            class="condition-group"
-          >
+          <div v-for="(group, groupIndex) in formData.conditionGroups" :key="group.groupKey" class="condition-group">
             <!-- 组内条件行(行之间是"并且"关系) -->
-            <el-form-item
-              v-for="(domain, rowIndex) in group.actions"
-              :key="domain.key"
-              :prop="`conditionGroups.${groupIndex}.actions.${rowIndex}`"
-              :error="domain.errorMsg"
-            >
+            <el-form-item v-for="(domain, rowIndex) in group.actions" :key="domain.key"
+              :prop="`conditionGroups.${groupIndex}.actions.${rowIndex}`" :error="domain.errorMsg">
               <div class="condition-row">
                 <!-- 1. 条件类型选择框 -->
-                <el-select
-                  v-model="domain.attrCode"
-                  placeholder="选择条件"
-                  style="width: 341px"
-                  @change="handleConditionChange(domain)"
-                  clearable
-                >
-                  <el-option
-                    v-for="item in dispatchList"
-                    :key="item.attrCode"
-                    :label="item.attrName"
-                    :value="item.attrCode"
-                  />
+                <el-select v-model="domain.attrCode" placeholder="选择条件" style="width: 341px"
+                  @change="handleConditionChange(domain)" clearable>
+                  <el-option v-for="item in dispatchList" :key="item.attrCode" :label="item.attrName"
+                    :value="item.attrCode" />
                 </el-select>
 
                 <!-- 2. 运算符选择框 -->
-                <el-select
-                  v-model="domain.operator"
-                  placeholder="选择运算符"
-                  style="width: 100px"
-                  :disabled="!domain.attrCode"
-                  clearable
-                  @change="handleOperatorChange(domain)"
-                >
-                  <el-option
-                    v-for="item in getOperations(domain.attrCode)"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value"
-                  />
+                <el-select v-model="domain.operator" placeholder="选择运算符" style="width: 100px"
+                  :disabled="!domain.attrCode" clearable @change="handleOperatorChange(domain)">
+                  <el-option v-for="item in getOperations(domain.attrCode)" :key="item.value" :label="item.label"
+                    :value="item.value" />
                 </el-select>
 
                 <!-- 3. 值输入区域(动态切换) -->
                 <!-- 单选按钮组 -->
-                <el-radio-group
-                  v-model="domain.min"
-                  v-if="getConditionType(domain.attrCode) === 'radio'"
-                >
-                  <el-radio
-                    :value="item.id+''"
-                    size="large"
-                    v-for="item in getOptions(domain.attrCode)"
-                    :key="item.id+''"
-                    >{{ item.name }}</el-radio
-                  >
+                <el-radio-group v-model="domain.min" v-if="getConditionType(domain.attrCode) === 'radio'">
+                  <el-radio :value="item.id + ''" size="large" v-for="item in getOptions(domain.attrCode)"
+                    :key="item.id + ''">{{ item.name }}</el-radio>
                 </el-radio-group>
 
                 <!-- 多选下拉 -->
-                <el-select
-                  v-model="domain.minArray"
-                  placeholder="选择值"
-                  multiple
-                  style="width: 341px"
-                  v-if="getConditionType(domain.attrCode) === 'checkbox'"
-                  :disabled="!domain.operator"
-                  clearable
-                >
-                  <el-option
-                    v-for="item in getOptions(domain.attrCode)"
-                    :key="item.id"
-                    :label="item.name"
-                    :value="item.id"
-                  />
+                <el-select v-model="domain.minArray" placeholder="选择值" multiple style="width: 341px"
+                  v-if="getConditionType(domain.attrCode) === 'checkbox'" :disabled="!domain.operator" clearable>
+                  <el-option v-for="item in getOptions(domain.attrCode)" :key="item.id" :label="item.name"
+                    :value="item.id" />
                 </el-select>
 
                 <!-- 单选下拉 -->
-                <el-select
-                  v-model="domain.max"
-                  placeholder="选择值"
-                  style="width: 341px"
-                  v-if="getConditionType(domain.attrCode) === 'select'"
-                  :disabled="!domain.operator"
-                  clearable
-                >
-                  <el-option
-                    v-for="item in getOptions(domain.attrCode)"
-                    :key="item.code"
-                    :label="item.name"
-                    :value="item.code"
-                  />
+                <el-select v-model="domain.max" placeholder="选择值" style="width: 341px" multiple
+                  v-if="getConditionType(domain.attrCode) === 'select'" :disabled="!domain.operator" clearable>
+                  <el-option v-for="item in getOptions(domain.attrCode)" :key="item.code" :label="item.name"
+                    :value="item.code" />
                 </el-select>
 
                 <!-- 数值输入 -->
-                <el-input
-                  v-model="domain.min"
-                  placeholder="输入数值"
-                  type="number"
-                  style="width: 341px"
-                  v-if="
-                    getConditionType(domain.attrCode) === 'inputNumber' &&
-                    domain.operator !== '1'
-                  "
-                  :disabled="!domain.operator"
-                  clearable
-                />
+                <el-input v-model="domain.min" placeholder="输入数值" type="number" style="width: 341px" v-if="
+                  getConditionType(domain.attrCode) === 'inputNumber' &&
+                  domain.operator !== '1'
+                " :disabled="!domain.operator" clearable />
                 <!-- 数值输入范围 -->
-                <div
-                  v-if="
-                    getConditionType(domain.attrCode) === 'inputNumber' &&
-                    domain.operator == '1'
-                  "
-                >
-                  <el-input-number
-                    v-model="domain.min"
-                    :disabled="!domain.operator"
-                    style="width: 160px"
-                  ></el-input-number>
+                <div v-if="
+                  getConditionType(domain.attrCode) === 'inputNumber' &&
+                  domain.operator == '1'
+                ">
+                  <el-input-number v-model="domain.min" :disabled="!domain.operator"
+                    style="width: 160px"></el-input-number>
-                  <el-input-number
-                    v-model="domain.max"
-                    :disabled="!domain.operator"
-                    style="width: 170px"
-                  ></el-input-number>
+                  <el-input-number v-model="domain.max" :disabled="!domain.operator"
+                    style="width: 170px"></el-input-number>
                 </div>
 
                 <!-- 标签输入 -->
-                <el-input-tag
-                  v-model="domain.minArray"
-                  style="width: 341px"
-                  v-if="getConditionType(domain.attrCode) === 'inputTag'"
-                  :disabled="!domain.operator"
-                  placeholder="输入内容后按回车键隔开"
-                />
+                <el-input-tag v-model="domain.minArray" style="width: 341px"
+                  v-if="getConditionType(domain.attrCode) === 'inputTag'" :disabled="!domain.operator"
+                  placeholder="输入内容后按回车键隔开" />
 
                 <!-- 日期选择 -->
-                <el-date-picker
-                  v-model="domain.max"
-                  type="date"
-                  placeholder="选择日期"
-                  style="width: 341px"
-                  v-if="
-                    getConditionType(domain.attrCode) === 'datetime' &&
-                    domain.operator !== '1'
-                  "
-                  :disabled="!domain.operator"
-                  clearable
-                />
+                <el-date-picker v-model="domain.max" type="date" placeholder="选择日期" style="width: 341px" v-if="
+                  getConditionType(domain.attrCode) === 'datetime' &&
+                  domain.operator !== '1'
+                " :disabled="!domain.operator" clearable />
 
                 <!-- 日期范围选择 -->
-                <div
-                  v-if="
-                    getConditionType(domain.attrCode) === 'datetime' &&
-                    domain.operator == '1'
-                  "
-                >
-                  <el-date-picker
-                    v-model="domain.min"
-                    :disabled="!domain.operator"
-                    type="datetime"
-                    format="YYYY-MM-DD HH:mm:ss"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    time-format="HH:mm:ss"
-                    placeholder="选择日期时间"
-                    style="width: 170px"
-                  >
+                <div v-if="
+                  getConditionType(domain.attrCode) === 'datetime' &&
+                  domain.operator == '1'
+                ">
+                  <el-date-picker v-model="domain.min" :disabled="!domain.operator" type="datetime"
+                    format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" time-format="HH:mm:ss"
+                    placeholder="选择日期时间" style="width: 170px">
                   </el-date-picker>
-                  <el-date-picker
-                    v-model="domain.max"
-                    :disabled="!domain.operator"
-                    type="datetime"
-                    format="YYYY-MM-DD HH:mm:ss"
-                    value-format="YYYY-MM-DD HH:mm:ss"
-                    time-format="HH:mm:ss"
-                    placeholder="选择日期时间"
-                    style="width: 170px"
-                  >
+                  <el-date-picker v-model="domain.max" :disabled="!domain.operator" type="datetime"
+                    format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" time-format="HH:mm:ss"
+                    placeholder="选择日期时间" style="width: 170px">
                   </el-date-picker>
                 </div>
 
                 <!-- 车牌级联选择 -->
-                <el-cascader
-                  :options="getOptions(domain.attrCode)"
-                  :props="cascaderProps"
-                  v-model="domain.max"
-                  placeholder="选择车牌"
-                  clearable
-                  v-if="getConditionType(domain.attrCode) === 'plate'"
-                  style="width: 341px"
-                  :disabled="!domain.operator"
-                />
+                <el-cascader :options="getOptions(domain.attrCode)" :props="cascaderProps" v-model="domain.max"
+                  placeholder="选择车牌" clearable v-if="getConditionType(domain.attrCode) === 'plate'" style="width: 341px"
+                  :disabled="!domain.operator" />
 
                 <!-- 4. 删除行按钮 -->
-                <el-button
-                  type="text"
-                  :icon="Delete"
-                  size="small"
-                  style="color: #333333"
-                  @click="handleRemoveRow(groupIndex, rowIndex)"
-                  v-if="group.actions.length > 1"
-                />
+                <el-button type="text" :icon="Delete" size="small" style="color: #333333"
+                  @click="handleRemoveRow(groupIndex, rowIndex)" v-if="group.actions.length > 1" />
               </div>
             </el-form-item>
 
             <!-- 组内添加并且条件按钮 -->
-            <el-button
-              type="text"
-              @click="handleAddRow(groupIndex)"
-              class="add-condition-btn"
-            >
+            <el-button type="text" @click="handleAddRow(groupIndex)" class="add-condition-btn">
               + 并且条件
             </el-button>
           </div>
@@ -246,104 +118,40 @@
       <!-- 执行动作区域 -->
       <!-- 执行动作区域 -->
       <div class="item-title"><span></span> 将执行以下动作</div>
-      <el-form
-        :model="formData"
-        :rules="formRules"
-        ref="formRef"
-        class="action-form"
-      >
+      <el-form :model="formData" :rules="formRules" ref="formRef" class="action-form">
         <!-- 指定报价协议 -->
-        <el-form-item
-          prop="formdata.actionJson[0].agreementId"
-          class="form-item"
-        >
+        <el-form-item prop="formdata.actionJson[0].agreementId" class="form-item">
           <span>指定报价协议:</span>
-          <el-select
-            v-model="formData.actionJson[0].agreementId"
-            placeholder="选择报价协议"
-            style="width: 240px"
-            clearable
-          >
-            <el-option
-              v-for="item in agreementList"
-              :key="item.id"
-              :label="item.agreementName"
-              :value="item.id"
-            />
+          <el-select v-model="formData.actionJson[0].agreementId" placeholder="选择报价协议" style="width: 240px" clearable>
+            <el-option v-for="item in agreementList" :key="item.id" :label="item.agreementName" :value="item.id" />
           </el-select>
         </el-form-item>
 
         <!-- 对接人变更方式选择 -->
         <el-form-item>
-          <el-radio-group
-            v-model="formData.actionJson[1].linkType"
-            @change="handleTypeChange"
-          >
+          <el-radio-group v-model="formData.actionJson[1].linkType" @change="handleTypeChange">
             <!-- 手动输入对接人 -->
-            <el-radio
-              value="manual_input"
-              size="large"
-              style="margin: 20px 0; display: block"
-            >
+            <el-radio value="manual_input" size="large" style="margin: 20px 0; display: block">
               手动输入对接人信息:
-              <el-form-item
-                prop="actionJson.name"
-                style="display: inline-block; margin: 0 20px"
-              >
-                <el-input
-                  v-model="formData.actionJson[1].name"
-                  style="width: 327px"
-                  placeholder="变更后对接人姓名"
-                  :disabled="
-                    formData.actionJson[1].linkType === 'select_account'
-                  "
-                  clearable
-                />
+              <el-form-item prop="actionJson.name" style="display: inline-block; margin: 0 20px">
+                <el-input v-model="formData.actionJson[1].name" style="width: 327px" placeholder="变更后对接人姓名" :disabled="formData.actionJson[1].linkType === 'select_account'
+                  " clearable />
               </el-form-item>
-              <el-form-item
-                prop="actionJson.phone"
-                style="display: inline-block"
-              >
-                <el-input
-                  v-model="formData.actionJson[1].phone"
-                  style="width: 327px"
-                  type="number"
-                  placeholder="变更后对接人手机号"
-                  maxlength="11"
-                  @input="handlePhoneInput"
-                  :disabled="
-                    formData.actionJson[1].linkType === 'select_account'
-                  "
-                  clearable
-                />
+              <el-form-item prop="actionJson.phone" style="display: inline-block">
+                <el-input v-model="formData.actionJson[1].phone" style="width: 327px" type="number"
+                  placeholder="变更后对接人手机号" maxlength="11" @input="handlePhoneInput" :disabled="formData.actionJson[1].linkType === 'select_account'
+                    " clearable />
               </el-form-item>
             </el-radio>
 
             <!-- 选择保司账号 -->
-            <el-radio
-              value="select_account"
-              size="large"
-              style="margin: 20px 0; display: block"
-            >
+            <el-radio value="select_account" size="large" style="margin: 20px 0; display: block">
               选择已有保司账号:
-              <el-form-item
-                prop="actionJson.accountId"
-                style="display: inline-block; margin-left: 20px"
-              >
-                <el-select
-                  v-model="formData.actionJson[1].accountId"
-                  placeholder="选择变更后的保司账号"
-                  style="width: 662px"
-                  :disabled="formData.actionJson[1].linkType === 'manual_input'"
-                  clearable
-                >
+              <el-form-item prop="actionJson.accountId" style="display: inline-block; margin-left: 20px">
+                <el-select v-model="formData.actionJson[1].accountId" placeholder="选择变更后的保司账号" style="width: 662px"
+                  :disabled="formData.actionJson[1].linkType === 'manual_input'" clearable>
                   <!--  -->
-                  <el-option
-                    v-for="item in accountList"
-                    :key="item.id"
-                    :label="item.username"
-                    :value="item.id"
-                  />
+                  <el-option v-for="item in accountList" :key="item.id" :label="item.username" :value="item.id" />
                 </el-select>
               </el-form-item>
             </el-radio>
@@ -511,9 +319,8 @@ const validateConditionGroups = (
       // 3.1 多选/标签类型(依赖minArray)
       if (["checkbox", "inputTag"].includes(attrType)) {
         if (!row.minArray || row.minArray.length === 0) {
-          row.errorMsg = `请选择至少一个条件值(当前为${
-            attrType === "checkbox" ? "多选" : "标签"
-          }类型)`;
+          row.errorMsg = `请选择至少一个条件值(当前为${attrType === "checkbox" ? "多选" : "标签"
+            }类型)`;
           return callback(new Error(row.errorMsg));
         }
       }
@@ -536,11 +343,9 @@ const validateConditionGroups = (
           ? row.max
           : row.min;
         if (targetVal === null || targetVal === "" || targetVal === undefined) {
-          row.errorMsg = `请${
-            attrType === "datetime" ? "选择" : "输入"
-          }条件值(当前为${
-            attrType === "select" ? "下拉选择" : "文本输入"
-          }类型)`;
+          row.errorMsg = `请${attrType === "datetime" ? "选择" : "输入"
+            }条件值(当前为${attrType === "select" ? "下拉选择" : "文本输入"
+            }类型)`;
           return callback(new Error(row.errorMsg));
         }
       }
@@ -728,8 +533,8 @@ const handlePhoneInput = () => {
 const getList = async () => {
   try {
     const res = await api.dispatchApi.listByParam({
-        scopeApplication: 'PROTOCOL_SCHEDULING',
-        companyId: props.companyId
+      scopeApplication: 'PROTOCOL_SCHEDULING',
+      companyId: props.companyId
     });
     dispatchList.value = res.data;
   } catch (error) {
@@ -802,12 +607,12 @@ const submit = async () => {
       },
     },
   ];
-  if(!actionJson[0].agreementId) {
-      ElMessage({
-          message: '请选择指定报价协议!',
-          type: 'error'
-      })
-      return
+  if (!actionJson[0].agreementId) {
+    ElMessage({
+      message: '请选择指定报价协议!',
+      type: 'error'
+    })
+    return
   }
 
   const submitData = {
@@ -816,8 +621,7 @@ const submit = async () => {
     actions,
     ...(dispatchId.value && { dispatchId: dispatchId.value }), // 编辑时携带ID
   };
-
-  const apiFunc = editType==="edit"
+  const apiFunc = editType === "edit"
     ? api.dispatchApi.updateAgreementDispatch
     : api.dispatchApi.addAgreementDispatch;
   // const apiFunc = api.dispatchApi.addAgreementDispatch;
@@ -849,6 +653,7 @@ const handleClose = () => {
 //   console.log(dictionaries.value);
 //   formData.value = props.editData;
 // });
+
 onMounted(async () => {
   // 1. 加载基础数据(条件类型、协议列表等)
   await Promise.all([
@@ -856,6 +661,8 @@ onMounted(async () => {
     getByCompanyId(), // 报价协议列表
     getAccountList(), // 保司账号列表
   ]);
+  regionLicenseNumber('0'),//车牌地区
+    regionLicenseNumber('14')//车牌号
   dictionaries.value = await getDictItems({ dictCode: "dispatch_action" });
 
   // 2. 提取props参数
@@ -883,9 +690,9 @@ onMounted(async () => {
     // 条件组:根据editType动态赋值
     conditionGroups: [] as ConditionGroup[],
   };
- let isDefaultScene = false;
+  let isDefaultScene = false;
   // 4. 新增场景:仅初始化conditionGroups为默认一组条件
-    if (!editType || editType === "add") {
+  if (!editType || editType === "add") {
     isDefaultScene = true;
     console.log("[初始化] 进入场景:无editType或add"); // 新增日志
 
@@ -959,8 +766,8 @@ onMounted(async () => {
     const rawGroups = editData.groupedAttrLinks
       ? editData.groupedAttrLinks
       : editData.attrLinks
-      ? [editData.attrLinks]
-      : [];
+        ? [editData.attrLinks]
+        : [];
 
     baseFormData.conditionGroups = rawGroups.map(
       (rawGroup: any[], groupIdx: number) => {
@@ -1054,6 +861,33 @@ onMounted(async () => {
     formData.value.conditionGroups.length
   );
 });
+const regionLicenseNumber = (value: string) => {
+  api.agreementApi.getAreaLicense(value).then((res: any) => {
+    if (res.code == '200') {
+      let data: any = [];
+      res.data.map((val: any) => {
+        data.push({
+          code: val.areaNumber,
+          name: val.license,
+        })
+        return val;
+      })
+      if(value == '14'){
+        const licenseNoItem = dispatchList.value.find((item: any) => item.attrCode == 'LicenseNo');
+        if (licenseNoItem) {
+          licenseNoItem.dictLabal = data;
+        }
+      }
+      if(value == '0'){
+        const licenseAreaItem = dispatchList.value.find((item: any) => item.attrCode == 'LicenseArea');
+        if (licenseAreaItem) {
+          licenseAreaItem.dictLabal = data;
+        }
+      }
+    } else {
+    }
+  });
+}
 </script>
 
 <style scoped lang="scss">
@@ -1101,6 +935,7 @@ onMounted(async () => {
   display: flex;
   align-items: center;
   margin-bottom: 20px;
+
   span {
     display: inline-block;
     width: 4px;
@@ -1110,14 +945,17 @@ onMounted(async () => {
     margin-right: 8px;
   }
 }
+
 .form-item {
   display: flex;
   align-items: center;
+
   span {
     font-size: 14px;
     margin-right: 10px;
   }
 }
+
 .foot {
   display: flex;
   justify-content: center;
@@ -1130,9 +968,11 @@ onMounted(async () => {
 :deep(.main-container) {
   height: 100%;
 }
+
 :deep(.el-row) {
   height: 100%;
 }
+
 :deep(.el-drawer__header) {
   height: 48px;
   font-size: 20px;
@@ -1141,6 +981,7 @@ onMounted(async () => {
   margin-bottom: 24px;
   padding-bottom: 20px;
 }
+
 :deep(.el-drawer__body) {
   padding: 0 24px;
 }

+ 9 - 2
src/views/quoteConfig/project/index.vue

@@ -86,7 +86,7 @@ import { useRouter, useRoute } from 'vue-router'
 
 const myRouter = useRouter()
 const muRoute = useRoute()
-
+console.log(muRoute.query.id)
 const searchCompany = () => {
   currentPage.value = 1
   pageSize.value = 10
@@ -105,11 +105,17 @@ const search = () => {
 let companyOption = ref([])
 let companyIndex = ref(0)
 let companyId = ref('')
+
 const initCompany = () => {
   api.projectApi.getCompanyList().then(res => {
     if(res.code == 200) {
       companyOption.value = res.data
-      companyId.value = companyOption.value[companyIndex.value].id
+      if(muRoute.query.id){
+        companyIndex.value = companyOption.value.findIndex(a => a.id == muRoute.query.id)
+      }else{
+        companyIndex.value = 0
+      }
+      companyId.value = muRoute.query.id || companyOption.value[companyIndex.value].id
       initData()
     } else {
       ElMessage({
@@ -140,6 +146,7 @@ let tableData = ref([])
 let currentPage = ref(0)
 let pageSize = ref(10)
 let total = ref(0)
+
 const initData = () => {
   api.projectApi.getSchemeList({
     pages: currentPage.value,

+ 8 - 2
src/views/quoteConfig/project/modules/projectAdd.vue

@@ -693,7 +693,10 @@ const initEdit = () => {
 // 取消
 const quit = () => {
   myRouter.push({
-    path: '/quoteConfig/agreement/project'
+    path: '/quoteConfig/agreement/project',
+    query: {
+      id: myRoute.query.companyId
+    }
   })
 }
 // 保存
@@ -739,7 +742,10 @@ const save = async (ProjectAddRef: FormInstance | undefined) => {
             type: 'success'
           })
           myRouter.push({
-            path: '/quoteConfig/agreement/project'
+            path: '/quoteConfig/agreement/project',
+            query: {
+              id: myRoute.query.companyId
+            }
           })
         } else if(res.code != 400) {
           ElMessage({