Răsfoiți Sursa

报价单,销售合同,服务合同. ehsd:外销合同,报价单,样品单 合同模板

lxf 2 ani în urmă
părinte
comite
4ffe6d4753

+ 27 - 48
src/components/process/Contract.vue

@@ -56,44 +56,27 @@
             </el-form-item>
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="6">
-                <el-form-item label="地址" prop="buyCountryId">
-                  <el-select v-model="formData.data.buyCountryId" placeholder="国家" @change="(val) => getCityData(val, '20', true)">
+                <el-form-item label="地址" prop="countryId">
+                  <el-select v-model="formData.data.countryId" placeholder="国家" filterable allow-create @change="(val) => getCityData(val, '20', true)">
                     <el-option v-for="item in countryData" :label="item.chineseName" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="provinceId">
-                  <selectCity 
+                <el-form-item label=" " prop="provinceName">
+                  <selectCity
                     placeholder="省/洲"
                     @change="(val) => getCityData(val, '30', true)"
                     addressId="provinceId"
                     addressName="provinceName"
                     v-model="formData.data"
-                    :data="provinceData"
-                  >
+                    :data="provinceData">
                   </selectCity>
                 </el-form-item>
-                
               </el-col>
-              <!-- <el-col :span="6">
-                <el-form-item label=" " prop="buyProvinceId">
-                  <el-select v-model="formData.data.buyProvinceId" filterable allow-create placeholder="省/洲" @change="(val) => getCityData(val, '30', true)">
-                    <el-option v-for="item in provinceData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col> -->
               <el-col :span="6">
-                <el-form-item label=" " prop="buyCityId">
-                  <selectCity 
-                    placeholder="城市"
-                    @change="(val) => getCityData(val, '30', true)"
-                    addressId="cityId"
-                    addressName="cityName"
-                    v-model="formData.data"
-                    :data="cityData"
-                  >
-                  </selectCity>
+                <el-form-item label=" " prop="cityName">
+                  <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"> </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -471,6 +454,7 @@ import SelectGoods from "@/components/product/SelectGoods";
 import { ElMessage } from "element-plus";
 import Editor from "@/components/Editor/index.vue";
 import selectCity from "@/components/selectCity/index.vue";
+
 const { proxy } = getCurrentInstance();
 const contractType = ref([]);
 const accountCurrency = ref([]);
@@ -567,10 +551,7 @@ const rules = ref({
   contractType: [{ required: true, message: "请选择合同类型", trigger: "change" }],
   contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
   buyCorporationId: [{ required: true, message: "请选择公司", trigger: "change" }],
-  buyCountryId: [{ required: true, message: "请选择国家", trigger: "change" }],
-  buyProvinceId: [{ required: true, message: "请选择省/州", trigger: "change" }],
-  buyCityId: [{ required: true, message: "请选择城市", trigger: "change" }],
-  // buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
+  countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
   productName: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
@@ -656,7 +637,7 @@ const changeTemplate = (val) => {
   if (val) {
     proxy.post("/contractTemplate/detail", { id: val }).then(
       (res) => {
-        proxy.post("/areaInfo/list", { parentId: "0" }).then((resCountry) => {
+        proxy.post("/customizeArea/list", { parentId: "0" }).then((resCountry) => {
           let sellCountryData = resCountry.filter((item) => item.id === res.countryId);
           if (sellCountryData && sellCountryData.length > 0) {
             formData.data.sellCountryId = sellCountryData[0].chineseName;
@@ -665,7 +646,7 @@ const changeTemplate = (val) => {
           }
         });
         if (res.countryId) {
-          proxy.post("/areaInfo/list", { parentId: res.countryId }).then((resProvince) => {
+          proxy.post("/customizeArea/list", { parentId: res.countryId }).then((resProvince) => {
             let sellProvinceData = resProvince.filter((item) => item.id === res.provinceId);
             if (sellProvinceData && sellProvinceData.length > 0) {
               formData.data.sellProvinceId = sellProvinceData[0].name;
@@ -677,7 +658,7 @@ const changeTemplate = (val) => {
           formData.data.sellProvinceId = "";
         }
         if (res.provinceId) {
-          proxy.post("/areaInfo/list", { parentId: res.provinceId }).then((resCity) => {
+          proxy.post("/customizeArea/list", { parentId: res.provinceId }).then((resCity) => {
             let sellCityData = resCity.filter((item) => item.id === res.cityId);
             if (sellCityData && sellCityData.length > 0) {
               formData.data.sellCityId = sellCityData[0].name;
@@ -715,18 +696,17 @@ const changeTemplate = (val) => {
   }
 };
 const getCityData = (id, type, isChange) => {
-  console.log(id)
-  proxy.post("/areaInfo/list", { parentId: id }).then((res) => {
+  proxy.post("/customizeArea/list", { parentId: id }).then((res) => {
     if (type === "20") {
       provinceData.value = res;
       if (isChange) {
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
       }
     } else if (type === "30") {
       cityData.value = res;
       if (isChange) {
-        formData.data.buyCityId = "";
+        formData.data.cityId = "";
       }
     } else {
       countryData.value = res;
@@ -755,27 +735,27 @@ const changeCustomer = (val) => {
             };
           });
         }
-        formData.data.buyCountryId = res.countryId;
-        formData.data.buyProvinceId = res.provinceId;
-        formData.data.buyCityId = res.cityId;
+        formData.data.countryId = res.countryId;
+        formData.data.provinceId = res.provinceId;
+        formData.data.cityId = res.cityId;
         formData.data.buyPostalCode = res.zipCode;
         formData.data.buyAddress = res.address;
-        getCityData(formData.data.buyCountryId, "20");
-        getCityData(formData.data.buyProvinceId, "30");
+        getCityData(formData.data.countryId, "20");
+        getCityData(formData.data.provinceId, "30");
       },
       (err) => {
         console.log(err);
-        formData.data.buyCountryId = "";
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.countryId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
         formData.data.buyPostalCode = "";
         formData.data.buyAddress = "";
       }
     );
   } else {
-    formData.data.buyCountryId = "";
-    formData.data.buyProvinceId = "";
-    formData.data.buyCityId = "";
+    formData.data.countryId = "";
+    formData.data.provinceId = "";
+    formData.data.cityId = "";
     formData.data.buyPostalCode = "";
     formData.data.buyAddress = "";
   }
@@ -1031,7 +1011,6 @@ const clickDelete = (index) => {
 };
 
 const handleSubmit = async () => {
-  console.log(formData.data)
   let status = await submit.value.handleSubmit(() => {});
   if (status) {
     if (!(formData.data.contractProductList && formData.data.contractProductList.length > 0)) {

+ 29 - 32
src/components/process/EHSD/Contract.vue

@@ -56,24 +56,27 @@
             </el-form-item>
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="6">
-                <el-form-item label="地址" prop="buyCountryId">
-                  <el-select v-model="formData.data.buyCountryId" placeholder="国家"  filterable allow-create @change="(val) => getCityData(val, '20', true)">
+                <el-form-item label="地址" prop="countryId">
+                  <el-select v-model="formData.data.countryId" placeholder="国家" filterable allow-create @change="(val) => getCityData(val, '20', true)">
                     <el-option v-for="item in countryData" :label="item.chineseName" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyProvinceId">
-                  <el-select v-model="formData.data.buyProvinceId" placeholder="省/洲"  filterable allow-create @change="(val) => getCityData(val, '30', true)">
-                    <el-option v-for="item in provinceData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="provinceName">
+                  <selectCity
+                    placeholder="省/洲"
+                    @change="(val) => getCityData(val, '30', true)"
+                    addressId="provinceId"
+                    addressName="provinceName"
+                    v-model="formData.data"
+                    :data="provinceData">
+                  </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyCityId">
-                  <el-select v-model="formData.data.buyCityId"  filterable allow-create placeholder="城市">
-                    <el-option v-for="item in cityData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="cityName">
+                  <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"> </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -473,6 +476,7 @@ import byForm from "@/components/byForm/index";
 import CompanyProduct from "@/views/EHSD/productLibrary/companyProduct/index";
 import CustomerProduct from "@/views/EHSD/productLibrary/customerProduct/index";
 import { ElMessage } from "element-plus";
+import selectCity from "@/components/selectCity/index.vue";
 
 const { proxy } = getCurrentInstance();
 const innerMethod = ref([]);
@@ -582,10 +586,7 @@ const formConfig = computed(() => {
 const rules = ref({
   contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
   buyCorporationId: [{ required: true, message: "请选择公司", trigger: "change" }],
-  buyCountryId: [{ required: true, message: "请选择国家", trigger: "change" }],
-  buyProvinceId: [{ required: true, message: "请选择省/州", trigger: "change" }],
-  buyCityId: [{ required: true, message: "请选择城市", trigger: "change" }],
-  // buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
+  countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
   productName: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
@@ -747,13 +748,13 @@ const getCityData = (id, type, isChange) => {
     if (type === "20") {
       provinceData.value = res;
       if (isChange) {
-        formData.data.customerState = "";
-        formData.data.customerCityId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
       }
     } else if (type === "30") {
       cityData.value = res;
       if (isChange) {
-        formData.data.customerCityId = "";
+        formData.data.cityId = "";
       }
     } else {
       countryData.value = res;
@@ -783,27 +784,27 @@ const changeCustomer = (val) => {
             };
           });
         }
-        formData.data.buyCountryId = res.countryId;
-        formData.data.buyProvinceId = res.provinceId;
-        formData.data.buyCityId = res.cityId;
+        formData.data.countryId = res.countryId;
+        formData.data.provinceId = res.provinceId;
+        formData.data.cityId = res.cityId;
         formData.data.buyPostalCode = res.zipCode;
         formData.data.buyAddress = res.address;
-        getCityData(formData.data.buyCountryId, "20");
-        getCityData(formData.data.buyProvinceId, "30");
+        getCityData(formData.data.countryId, "20");
+        getCityData(formData.data.provinceId, "30");
       },
       (err) => {
         console.log(err);
-        formData.data.buyCountryId = "";
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.countryId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
         formData.data.buyPostalCode = "";
         formData.data.buyAddress = "";
       }
     );
   } else {
-    formData.data.buyCountryId = "";
-    formData.data.buyProvinceId = "";
-    formData.data.buyCityId = "";
+    formData.data.countryId = "";
+    formData.data.provinceId = "";
+    formData.data.cityId = "";
     formData.data.buyPostalCode = "";
     formData.data.buyAddress = "";
   }
@@ -966,10 +967,6 @@ const querySearch = (queryString, callback) => {
   });
 };
 const handleSubmit = async () => {
-  //判断buyProvinceId是否为number类型
-  if(isNaN(parseFloat(formData.data.buyProvinceId)) && !isFinite(formData.data.buyProvinceId)){
-    formData.data.provinceName = formData.data.buyProvinceId
-  }
   let status = await submit.value.handleSubmit(() => {});
   if (status) {
     if (!(formData.data.contractProductList && formData.data.contractProductList.length > 0)) {

+ 31 - 30
src/components/process/EHSD/PriceSheet.vue

@@ -56,24 +56,27 @@
             </el-form-item>
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="6">
-                <el-form-item label="地址" prop="buyCountryId">
-                  <el-select v-model="formData.data.buyCountryId" placeholder="国家" @change="(val) => getCityData(val, '20', true)">
+                <el-form-item label="地址" prop="countryId">
+                  <el-select v-model="formData.data.countryId" placeholder="国家" filterable allow-create @change="(val) => getCityData(val, '20', true)">
                     <el-option v-for="item in countryData" :label="item.chineseName" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyProvinceId">
-                  <el-select v-model="formData.data.buyProvinceId"  filterable allow-create placeholder="省/洲" @change="(val) => getCityData(val, '30', true)">
-                    <el-option v-for="item in provinceData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="provinceName">
+                  <selectCity
+                    placeholder="省/洲"
+                    @change="(val) => getCityData(val, '30', true)"
+                    addressId="provinceId"
+                    addressName="provinceName"
+                    v-model="formData.data"
+                    :data="provinceData">
+                  </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyCityId">
-                  <el-select v-model="formData.data.buyCityId"  filterable allow-create placeholder="城市">
-                    <el-option v-for="item in cityData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="cityName">
+                  <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"> </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -355,6 +358,7 @@ import byForm from "@/components/byForm/index";
 import CompanyProduct from "@/views/EHSD/productLibrary/companyProduct/index";
 import CustomerProduct from "@/views/EHSD/productLibrary/customerProduct/index";
 import { ElMessage } from "element-plus";
+import selectCity from "@/components/selectCity/index.vue";
 
 const { proxy } = getCurrentInstance();
 const innerMethod = ref([]);
@@ -442,10 +446,7 @@ const formConfig = computed(() => {
 const rules = ref({
   contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
   buyCorporationId: [{ required: true, message: "请选择公司", trigger: "change" }],
-  buyCountryId: [{ required: true, message: "请选择国家", trigger: "change" }],
-  buyProvinceId: [{ required: true, message: "请选择省/州", trigger: "change" }],
-  buyCityId: [{ required: true, message: "请选择城市", trigger: "change" }],
-  // buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
+  countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
   productName: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
@@ -597,13 +598,13 @@ const getCityData = (id, type, isChange) => {
     if (type === "20") {
       provinceData.value = res;
       if (isChange) {
-        formData.data.customerState = "";
-        formData.data.customerCityId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
       }
     } else if (type === "30") {
       cityData.value = res;
       if (isChange) {
-        formData.data.customerCityId = "";
+        formData.data.cityId = "";
       }
     } else {
       countryData.value = res;
@@ -633,27 +634,27 @@ const changeCustomer = (val) => {
             };
           });
         }
-        formData.data.buyCountryId = res.countryId;
-        formData.data.buyProvinceId = res.provinceId;
-        formData.data.buyCityId = res.cityId;
+        formData.data.countryId = res.countryId;
+        formData.data.provinceId = res.provinceId;
+        formData.data.cityId = res.cityId;
         formData.data.buyPostalCode = res.zipCode;
         formData.data.buyAddress = res.address;
-        getCityData(formData.data.buyCountryId, "20");
-        getCityData(formData.data.buyProvinceId, "30");
+        getCityData(formData.data.countryId, "20");
+        getCityData(formData.data.provinceId, "30");
       },
       (err) => {
         console.log(err);
-        formData.data.buyCountryId = "";
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.countryId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
         formData.data.buyPostalCode = "";
         formData.data.buyAddress = "";
       }
     );
   } else {
-    formData.data.buyCountryId = "";
-    formData.data.buyProvinceId = "";
-    formData.data.buyCityId = "";
+    formData.data.countryId = "";
+    formData.data.provinceId = "";
+    formData.data.cityId = "";
     formData.data.buyPostalCode = "";
     formData.data.buyAddress = "";
   }
@@ -862,8 +863,8 @@ onMounted(() => {
       }
       delete formData.data.id;
       delete formData.data.code;
-      getCityData(formData.data.customerCountryId, "20");
-      getCityData(formData.data.customerState, "30");
+      getCityData(formData.data.countryId, "20");
+      getCityData(formData.data.provinceId, "30");
       if (formData.data.quotationProductList && formData.data.quotationProductList.length > 0) {
         formData.data.quotationProductList = formData.data.quotationProductList.map((item) => {
           delete item.id;

+ 29 - 28
src/components/process/EHSD/Sample.vue

@@ -56,24 +56,27 @@
             </el-form-item>
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="6">
-                <el-form-item label="地址" prop="buyCountryId">
-                  <el-select v-model="formData.data.buyCountryId" placeholder="国家" @change="(val) => getCityData(val, '20', true)">
+                <el-form-item label="地址" prop="countryId">
+                  <el-select v-model="formData.data.countryId" placeholder="国家" filterable allow-create @change="(val) => getCityData(val, '20', true)">
                     <el-option v-for="item in countryData" :label="item.chineseName" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyProvinceId">
-                  <el-select v-model="formData.data.buyProvinceId" filterable allow-create placeholder="省/洲" @change="(val) => getCityData(val, '30', true)">
-                    <el-option v-for="item in provinceData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="provinceName">
+                  <selectCity
+                    placeholder="省/洲"
+                    @change="(val) => getCityData(val, '30', true)"
+                    addressId="provinceId"
+                    addressName="provinceName"
+                    v-model="formData.data"
+                    :data="provinceData">
+                  </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyCityId">
-                  <el-select v-model="formData.data.buyCityId" filterable allow-create placeholder="城市">
-                    <el-option v-for="item in cityData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="cityName">
+                  <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"> </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -469,6 +472,7 @@ import byForm from "@/components/byForm/index";
 import CompanyProduct from "@/views/EHSD/productLibrary/companyProduct/index";
 import CustomerProduct from "@/views/EHSD/productLibrary/customerProduct/index";
 import { ElMessage } from "element-plus";
+import selectCity from "@/components/selectCity/index.vue";
 
 const { proxy } = getCurrentInstance();
 const innerMethod = ref([]);
@@ -586,10 +590,7 @@ const formConfig = computed(() => {
 const rules = ref({
   contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
   buyCorporationId: [{ required: true, message: "请选择公司", trigger: "change" }],
-  buyCountryId: [{ required: true, message: "请选择国家", trigger: "change" }],
-  buyProvinceId: [{ required: true, message: "请选择省/州", trigger: "change" }],
-  buyCityId: [{ required: true, message: "请选择城市", trigger: "change" }],
-  // buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
+  countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
   productName: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
@@ -757,13 +758,13 @@ const getCityData = (id, type, isChange) => {
     if (type === "20") {
       provinceData.value = res;
       if (isChange) {
-        formData.data.customerState = "";
-        formData.data.customerCityId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
       }
     } else if (type === "30") {
       cityData.value = res;
       if (isChange) {
-        formData.data.customerCityId = "";
+        formData.data.cityId = "";
       }
     } else {
       countryData.value = res;
@@ -793,27 +794,27 @@ const changeCustomer = (val) => {
             };
           });
         }
-        formData.data.buyCountryId = res.countryId;
-        formData.data.buyProvinceId = res.provinceId;
-        formData.data.buyCityId = res.cityId;
+        formData.data.countryId = res.countryId;
+        formData.data.provinceId = res.provinceId;
+        formData.data.cityId = res.cityId;
         formData.data.buyPostalCode = res.zipCode;
         formData.data.buyAddress = res.address;
-        getCityData(formData.data.buyCountryId, "20");
-        getCityData(formData.data.buyProvinceId, "30");
+        getCityData(formData.data.countryId, "20");
+        getCityData(formData.data.provinceId, "30");
       },
       (err) => {
         console.log(err);
-        formData.data.buyCountryId = "";
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.countryId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
         formData.data.buyPostalCode = "";
         formData.data.buyAddress = "";
       }
     );
   } else {
-    formData.data.buyCountryId = "";
-    formData.data.buyProvinceId = "";
-    formData.data.buyCityId = "";
+    formData.data.countryId = "";
+    formData.data.provinceId = "";
+    formData.data.cityId = "";
     formData.data.buyPostalCode = "";
     formData.data.buyAddress = "";
   }

+ 35 - 34
src/components/process/PriceSheet.vue

@@ -56,24 +56,27 @@
             </el-form-item>
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="6">
-                <el-form-item label="地址" prop="buyCountryId">
-                  <el-select v-model="formData.data.buyCountryId" placeholder="国家" @change="(val) => getCityData(val, '20', true)">
+                <el-form-item label="地址" prop="countryId">
+                  <el-select v-model="formData.data.countryId" placeholder="国家" filterable allow-create @change="(val) => getCityData(val, '20', true)">
                     <el-option v-for="item in countryData" :label="item.chineseName" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyProvinceId">
-                  <el-select v-model="formData.data.buyProvinceId" filterable allow-create placeholder="省/洲" @change="(val) => getCityData(val, '30', true)">
-                    <el-option v-for="item in provinceData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="provinceName">
+                  <selectCity
+                    placeholder="省/洲"
+                    @change="(val) => getCityData(val, '30', true)"
+                    addressId="provinceId"
+                    addressName="provinceName"
+                    v-model="formData.data"
+                    :data="provinceData">
+                  </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyCityId">
-                  <el-select v-model="formData.data.buyCityId" filterable allow-create placeholder="城市">
-                    <el-option v-for="item in cityData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="cityName">
+                  <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"> </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -327,6 +330,7 @@
 import byForm from "@/components/byForm/index";
 import SelectGoods from "@/components/product/SelectGoods";
 import { ElMessage } from "element-plus";
+import selectCity from "@/components/selectCity/index.vue";
 
 const { proxy } = getCurrentInstance();
 const accountCurrency = ref([]);
@@ -406,10 +410,7 @@ const formConfig = computed(() => {
 const rules = ref({
   contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
   buyCorporationId: [{ required: true, message: "请选择公司", trigger: "change" }],
-  buyCountryId: [{ required: true, message: "请选择国家", trigger: "change" }],
-  buyProvinceId: [{ required: true, message: "请选择省/州", trigger: "change" }],
-  buyCityId: [{ required: true, message: "请选择城市", trigger: "change" }],
-  // buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
+  countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
   productName: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
@@ -480,7 +481,7 @@ const changeTemplate = (val) => {
   if (val) {
     proxy.post("/contractTemplate/detail", { id: val }).then(
       (res) => {
-        proxy.post("/areaInfo/list", { parentId: "0" }).then((resCountry) => {
+        proxy.post("/customizeArea/list", { parentId: "0" }).then((resCountry) => {
           let sellCountryData = resCountry.filter((item) => item.id === res.countryId);
           if (sellCountryData && sellCountryData.length > 0) {
             formData.data.sellCountryId = sellCountryData[0].chineseName;
@@ -489,7 +490,7 @@ const changeTemplate = (val) => {
           }
         });
         if (res.countryId) {
-          proxy.post("/areaInfo/list", { parentId: res.countryId }).then((resProvince) => {
+          proxy.post("/customizeArea/list", { parentId: res.countryId }).then((resProvince) => {
             let sellProvinceData = resProvince.filter((item) => item.id === res.provinceId);
             if (sellProvinceData && sellProvinceData.length > 0) {
               formData.data.sellProvinceId = sellProvinceData[0].name;
@@ -501,7 +502,7 @@ const changeTemplate = (val) => {
           formData.data.sellProvinceId = "";
         }
         if (res.provinceId) {
-          proxy.post("/areaInfo/list", { parentId: res.provinceId }).then((resCity) => {
+          proxy.post("/customizeArea/list", { parentId: res.provinceId }).then((resCity) => {
             let sellCityData = resCity.filter((item) => item.id === res.cityId);
             if (sellCityData && sellCityData.length > 0) {
               formData.data.sellCityId = sellCityData[0].name;
@@ -539,17 +540,17 @@ const changeTemplate = (val) => {
   }
 };
 const getCityData = (id, type, isChange) => {
-  proxy.post("/areaInfo/list", { parentId: id }).then((res) => {
+  proxy.post("/customizeArea/list", { parentId: id }).then((res) => {
     if (type === "20") {
       provinceData.value = res;
       if (isChange) {
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
       }
     } else if (type === "30") {
       cityData.value = res;
       if (isChange) {
-        formData.data.buyCityId = "";
+        formData.data.cityId = "";
       }
     } else {
       countryData.value = res;
@@ -578,27 +579,27 @@ const changeCustomer = (val) => {
             };
           });
         }
-        formData.data.buyCountryId = res.countryId;
-        formData.data.buyProvinceId = res.provinceId;
-        formData.data.buyCityId = res.cityId;
+        formData.data.countryId = res.countryId;
+        formData.data.provinceId = res.provinceId;
+        formData.data.cityId = res.cityId;
         formData.data.buyPostalCode = res.zipCode;
         formData.data.buyAddress = res.address;
-        getCityData(formData.data.buyCountryId, "20");
-        getCityData(formData.data.buyProvinceId, "30");
+        getCityData(formData.data.countryId, "20");
+        getCityData(formData.data.provinceId, "30");
       },
       (err) => {
         console.log(err);
-        formData.data.buyCountryId = "";
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.countryId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
         formData.data.buyPostalCode = "";
         formData.data.buyAddress = "";
       }
     );
   } else {
-    formData.data.buyCountryId = "";
-    formData.data.buyProvinceId = "";
-    formData.data.buyCityId = "";
+    formData.data.countryId = "";
+    formData.data.provinceId = "";
+    formData.data.cityId = "";
     formData.data.buyPostalCode = "";
     formData.data.buyAddress = "";
   }
@@ -760,8 +761,8 @@ onMounted(() => {
       }
       delete formData.data.id;
       delete formData.data.code;
-      getCityData(formData.data.buyCountryId, "20");
-      getCityData(formData.data.buyProvinceId, "30");
+      getCityData(formData.data.countryId, "20");
+      getCityData(formData.data.provinceId, "30");
       if (formData.data.quotationProductList && formData.data.quotationProductList.length > 0) {
         formData.data.quotationProductList = formData.data.quotationProductList.map((item) => {
           delete item.id;

+ 33 - 32
src/components/process/ServiceContract.vue

@@ -56,24 +56,27 @@
             </el-form-item>
             <el-row style="margin-top: 20px; width: 100%">
               <el-col :span="6">
-                <el-form-item label="地址" prop="buyCountryId">
-                  <el-select v-model="formData.data.buyCountryId" placeholder="国家" @change="(val) => getCityData(val, '20', true)">
+                <el-form-item label="地址" prop="countryId">
+                  <el-select v-model="formData.data.countryId" placeholder="国家" filterable allow-create @change="(val) => getCityData(val, '20', true)">
                     <el-option v-for="item in countryData" :label="item.chineseName" :value="item.id"> </el-option>
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyProvinceId">
-                  <el-select v-model="formData.data.buyProvinceId"  filterable allow-create placeholder="省/洲" @change="(val) => getCityData(val, '30', true)">
-                    <el-option v-for="item in provinceData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="provinceName">
+                  <selectCity
+                    placeholder="省/洲"
+                    @change="(val) => getCityData(val, '30', true)"
+                    addressId="provinceId"
+                    addressName="provinceName"
+                    v-model="formData.data"
+                    :data="provinceData">
+                  </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
-                <el-form-item label=" " prop="buyCityId">
-                  <el-select v-model="formData.data.buyCityId"  filterable allow-create placeholder="城市">
-                    <el-option v-for="item in cityData" :label="item.name" :value="item.id"> </el-option>
-                  </el-select>
+                <el-form-item label=" " prop="cityName">
+                  <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"> </selectCity>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -323,6 +326,7 @@ import byForm from "@/components/byForm/index";
 import SelectGoods from "@/components/product/SelectGoods";
 import { ElMessage } from "element-plus";
 import Editor from "@/components/Editor/index.vue";
+import selectCity from "@/components/selectCity/index.vue";
 
 const { proxy } = getCurrentInstance();
 const accountCurrency = ref([]);
@@ -402,10 +406,7 @@ const formConfig = computed(() => {
 const rules = ref({
   contractTemplateId: [{ required: true, message: "请选择合同模板", trigger: "change" }],
   buyCorporationId: [{ required: true, message: "请选择公司", trigger: "change" }],
-  buyCountryId: [{ required: true, message: "请选择国家", trigger: "change" }],
-  buyProvinceId: [{ required: true, message: "请选择省/州", trigger: "change" }],
-  buyCityId: [{ required: true, message: "请选择城市", trigger: "change" }],
-  // buyAddress: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
+  countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
   buyContactName: [{ required: true, message: "请输入联系人", trigger: ["change", "blur"] }],
   buyContactNumber: [{ required: true, message: "请输入联系电话", trigger: "blur" }],
   productName: [{ required: true, message: "请输入商品名称", trigger: "blur" }],
@@ -471,7 +472,7 @@ const changeTemplate = (val) => {
   if (val) {
     proxy.post("/contractTemplate/detail", { id: val }).then(
       (res) => {
-        proxy.post("/areaInfo/list", { parentId: "0" }).then((resCountry) => {
+        proxy.post("/customizeArea/list", { parentId: "0" }).then((resCountry) => {
           let sellCountryData = resCountry.filter((item) => item.id === res.countryId);
           if (sellCountryData && sellCountryData.length > 0) {
             formData.data.sellCountryId = sellCountryData[0].chineseName;
@@ -480,7 +481,7 @@ const changeTemplate = (val) => {
           }
         });
         if (res.countryId) {
-          proxy.post("/areaInfo/list", { parentId: res.countryId }).then((resProvince) => {
+          proxy.post("/customizeArea/list", { parentId: res.countryId }).then((resProvince) => {
             let sellProvinceData = resProvince.filter((item) => item.id === res.provinceId);
             if (sellProvinceData && sellProvinceData.length > 0) {
               formData.data.sellProvinceId = sellProvinceData[0].name;
@@ -492,7 +493,7 @@ const changeTemplate = (val) => {
           formData.data.sellProvinceId = "";
         }
         if (res.provinceId) {
-          proxy.post("/areaInfo/list", { parentId: res.provinceId }).then((resCity) => {
+          proxy.post("/customizeArea/list", { parentId: res.provinceId }).then((resCity) => {
             let sellCityData = resCity.filter((item) => item.id === res.cityId);
             if (sellCityData && sellCityData.length > 0) {
               formData.data.sellCityId = sellCityData[0].name;
@@ -530,17 +531,17 @@ const changeTemplate = (val) => {
   }
 };
 const getCityData = (id, type, isChange) => {
-  proxy.post("/areaInfo/list", { parentId: id }).then((res) => {
+  proxy.post("/customizeArea/list", { parentId: id }).then((res) => {
     if (type === "20") {
       provinceData.value = res;
       if (isChange) {
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
       }
     } else if (type === "30") {
       cityData.value = res;
       if (isChange) {
-        formData.data.buyCityId = "";
+        formData.data.cityId = "";
       }
     } else {
       countryData.value = res;
@@ -569,27 +570,27 @@ const changeCustomer = (val) => {
             };
           });
         }
-        formData.data.buyCountryId = res.countryId;
-        formData.data.buyProvinceId = res.provinceId;
-        formData.data.buyCityId = res.cityId;
+        formData.data.countryId = res.countryId;
+        formData.data.provinceId = res.provinceId;
+        formData.data.cityId = res.cityId;
         formData.data.buyPostalCode = res.zipCode;
         formData.data.buyAddress = res.address;
-        getCityData(formData.data.buyCountryId, "20");
-        getCityData(formData.data.buyProvinceId, "30");
+        getCityData(formData.data.countryId, "20");
+        getCityData(formData.data.provinceId, "30");
       },
       (err) => {
         console.log(err);
-        formData.data.buyCountryId = "";
-        formData.data.buyProvinceId = "";
-        formData.data.buyCityId = "";
+        formData.data.countryId = "";
+        formData.data.provinceId = "";
+        formData.data.cityId = "";
         formData.data.buyPostalCode = "";
         formData.data.buyAddress = "";
       }
     );
   } else {
-    formData.data.buyCountryId = "";
-    formData.data.buyProvinceId = "";
-    formData.data.buyCityId = "";
+    formData.data.countryId = "";
+    formData.data.provinceId = "";
+    formData.data.cityId = "";
     formData.data.buyPostalCode = "";
     formData.data.buyAddress = "";
   }

+ 0 - 1
src/views/publicModule/companyConfig/index.vue

@@ -283,7 +283,6 @@ const formOption = reactive({
   rules: [],
 });
 const byform = ref(null);
-const treeData = ref([]);
 const formConfig = reactive([
   {
     type: "input",

+ 16 - 14
src/views/publicModule/contractTemplate/index.vue

@@ -24,23 +24,26 @@
           <el-row style="width: 100%">
             <el-col :span="8">
               <el-form-item prop="countryId">
-                <el-select v-model="formData.data.countryId" placeholder="国家" @change="(val) => getCityData(val, '20', true)">
+                <el-select v-model="formData.data.countryId" placeholder="国家" filterable allow-create @change="(val) => getCityData(val, '20', true)">
                   <el-option v-for="item in countryData" :label="item.chineseName" :value="item.id"> </el-option>
                 </el-select>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item prop="provinceId">
-                <el-select v-model="formData.data.provinceId" placeholder="省/洲" filterable allow-create @change="(val) => getCityData(val, '30', true)">
-                  <el-option v-for="item in provinceData" :label="item.name" :value="item.id"> </el-option>
-                </el-select>
+              <el-form-item prop="provinceName">
+                <selectCity
+                  placeholder="省/洲"
+                  @change="(val) => getCityData(val, '30', true)"
+                  addressId="provinceId"
+                  addressName="provinceName"
+                  v-model="formData.data"
+                  :data="provinceData">
+                </selectCity>
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item prop="cityId">
-                <el-select v-model="formData.data.cityId" filterable allow-create placeholder="城市">
-                  <el-option v-for="item in cityData" :label="item.name" :value="item.id"> </el-option>
-                </el-select>
+              <el-form-item prop="cityName">
+                <selectCity placeholder="城市" addressId="cityId" addressName="cityName" v-model="formData.data" :data="cityData"></selectCity>
               </el-form-item>
             </el-col>
           </el-row>
@@ -98,6 +101,7 @@ import byTable from "@/components/byTable/index";
 import byForm from "@/components/byForm/index";
 import { computed, ref } from "vue";
 import Editor from "@/components/Editor/index.vue";
+import selectCity from "@/components/selectCity/index.vue";
 
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
@@ -227,7 +231,7 @@ const loadingOperation = ref(false);
 const submit = ref(null);
 const formData = reactive({
   data: {
-    countryId: "China",
+    countryId: "44",
   },
 });
 const formOption = reactive({
@@ -301,16 +305,14 @@ let rules = ref({
   templateName: [{ required: true, message: "请输入模板名称", trigger: "blur" }],
   corporationId: [{ required: true, message: "请选择公司", trigger: "change" }],
   countryId: [{ required: true, message: "请选择国家", trigger: "change" }],
-  provinceId: [{ required: true, message: "请选择省/州", trigger: "change" }],
   countryEnStr: [{ required: true, message: "请输入国家 (英文)", trigger: "blur" }],
   provinceEnStr: [{ required: true, message: "请输入省/洲 (英文)", trigger: "blur" }],
-  //   cityId: [{ required: true, message: "请选择城市", trigger: "change" }],
 });
 const countryData = ref([]);
 const provinceData = ref([]);
 const cityData = ref([]);
 const getCityData = (id, type, isChange) => {
-  proxy.post("/areaInfo/list", { parentId: id }).then((res) => {
+  proxy.post("/customizeArea/list", { parentId: id }).then((res) => {
     if (type === "20") {
       provinceData.value = res;
       if (isChange) {
@@ -332,7 +334,7 @@ const openModal = () => {
   modalType.value = "add";
   formData.data = {
     templateContent: "",
-    countryId: "China",
+    countryId: "44",
   };
   getCityData(formData.data.countryId, "20");
   loadingOperation.value = false;