From 6e1b1c8653f1732100d6224bffe0601aee94a8fb Mon Sep 17 00:00:00 2001 From: 32503 <325039231@qq.com> Date: Wed, 2 Jul 2025 09:56:11 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=90=88=E5=90=8C=E9=97=AE?= =?UTF-8?q?=E9=A2=98=202.=E9=A1=B9=E7=9B=AE=E5=BB=BA=E6=A1=A3=203.?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=BF=9B=E8=A1=8C=E4=B8=AD=E7=9A=84=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CitySelect.tsx | 208 ++----- src/models/dashboard.js | 12 +- src/pages/Contract/ContractList.tsx | 59 +- src/pages/Contract/Negotiate.tsx | 111 +++- src/pages/Contract/Performance.tsx | 162 ++--- src/pages/Contract/StepOne.tsx | 24 +- src/pages/Contract/StepTwo.tsx | 94 +-- src/pages/MainPage/ProjectManager/data.d.ts | 22 + src/pages/MainPage/ProjectManager/index.tsx | 8 +- .../ProjectManager/purchaseManager.js | 282 +++++---- src/pages/ProjectFiles/data.d.ts | 12 +- src/pages/ProjectFiles/dict.ts | 93 ++- src/pages/ProjectFiles/entrustIndex.tsx | 227 +++++++ src/pages/ProjectFiles/file.tsx | 575 +++++++++++++++--- src/pages/ProjectFiles/index.tsx | 268 +++++++- src/pages/ProjectFiles/service.ts | 136 ++++- src/services/dashboard.js | 13 +- 17 files changed, 1687 insertions(+), 619 deletions(-) create mode 100644 src/pages/MainPage/ProjectManager/data.d.ts create mode 100644 src/pages/ProjectFiles/entrustIndex.tsx diff --git a/src/components/CitySelect.tsx b/src/components/CitySelect.tsx index d661d8c..a376bce 100644 --- a/src/components/CitySelect.tsx +++ b/src/components/CitySelect.tsx @@ -25,124 +25,70 @@ interface Province { // 模拟省市区数据 const provinceData: Province[] = [ { - value: 'beijing', + value: '11', label: '北京市', cities: [ { - value: 'dongcheng', - label: '东城区', + value: '01', + label: '市辖区', districts: [ - { value: 'chaoyangmen', label: '朝阳门街道' }, - { value: 'jianguomennei', label: '建国门内街道' }, - { value: 'donghuamen', label: '东华门街道' }, - ], - }, - { - value: 'xicheng', - label: '西城区', - districts: [ - { value: 'xichang', label: '西长安街街道' }, - { value: 'xinjieku', label: '新街口街道' }, - { value: 'yuetan', label: '月坛街道' }, - ], - }, - { - value: 'chaoyang', - label: '朝阳区', - districts: [ - { value: 'jianwai', label: '建外街道' }, - { value: 'chaowai', label: '朝外街道' }, - { value: 'hujialou', label: '呼家楼街道' }, - ], - }, - ], + { value: '01', label: '东城区' }, + { value: '02', label: '西城区' }, + { value: '05', label: '朝阳区' }, + ] + } + ] }, { - value: 'shanghai', + value: '31', label: '上海市', cities: [ { - value: 'huangpu', - label: '黄浦区', + value: '10', + label: '市辖区', districts: [ - { value: 'nanking', label: '南京东路街道' }, - { value: 'waitan', label: '外滩街道' }, - { value: 'yuyuan', label: '豫园街道' }, + { value: '02', label: '安次区' }, + { value: '03', label: '广阳区' }, + { value: '22', label: '固安县' }, ], - }, - { - value: 'xuhui', - label: '徐汇区', - districts: [ - { value: 'xujiahui', label: '徐家汇街道' }, - { value: 'tianlin', label: '田林街道' }, - { value: 'kangjianlou', label: '康健楼街道' }, - ], - }, - { - value: 'changning', - label: '长宁区', - districts: [ - { value: 'huayang', label: '华阳路街道' }, - { value: 'jiangsu', label: '江苏路街道' }, - { value: 'xinhua', label: '新华路街道' }, - ], - }, + } ], }, { - value: 'guangdong', + value: '44', label: '广东省', cities: [ { - value: 'guangzhou', + value: '10', label: '广州市', districts: [ - { value: 'yuexiu', label: '越秀区' }, - { value: 'liwan', label: '荔湾区' }, - { value: 'haizhu', label: '海珠区' }, - ], - }, - { - value: 'shenzhen', - label: '深圳市', - districts: [ - { value: 'futian', label: '福田区' }, - { value: 'luohu', label: '罗湖区' }, - { value: 'nanshan', label: '南山区' }, - ], - }, - { - value: 'zhuhai', - label: '珠海市', - districts: [ - { value: 'xiangzhou', label: '香洲区' }, - { value: 'doumen', label: '斗门区' }, - { value: 'jinwan', label: '金湾区' }, + { value: '03', label: '荔湾区' }, + { value: '04', label: '越秀区' }, + { value: '05', label: '海珠区' }, ], }, ], }, { - value: 'jiangsu', + value: '32', label: '江苏省', cities: [ { - value: 'nanjing', + value: '01', label: '南京市', districts: [ - { value: 'xuanwu', label: '玄武区' }, - { value: 'qinhuai', label: '秦淮区' }, - { value: 'jianye', label: '建邺区' }, + { value: '02', label: '玄武区' }, + { value: '04', label: '秦淮区' }, + { value: '05', label: '建邺区' }, ], }, { - value: 'suzhou', + value: '05', label: '苏州市', districts: [ - { value: 'gusu', label: '姑苏区' }, - { value: 'wuzhong', label: '吴中区' }, - { value: 'xiangcheng', label: '相城区' }, + { value: '08', label: '姑苏区' }, + { value: '06', label: '吴中区' }, + { value: '07', label: '相城区' }, ], }, ], @@ -171,7 +117,6 @@ export interface CitySelectProps { const CitySelect: React.FC = ({ value = {}, onChange, - form, placeholder = { province: '请选择省份', city: '请选择城市', @@ -180,108 +125,59 @@ const CitySelect: React.FC = ({ disabled = false, size = 'middle', }) => { - const [cities, setCities] = useState([]); - const [districts, setDistricts] = useState([]); - const [selectedProvince, setSelectedProvince] = useState(value.province); - const [selectedCity, setSelectedCity] = useState(value.city); - const [selectedDistrict, setSelectedDistrict] = useState(value.district); - + let cityData = provinceData?.find( item => { + return item.value === value?.province + })?.cities || []; + + let districtData = cityData?.find( item => { + return item.value === value?.city + })?.districts || []; // 处理省份选择变化 const handleProvinceChange = (provinceValue?: string) => { - setSelectedProvince(provinceValue); - setSelectedCity(undefined); - setSelectedDistrict(undefined); - setDistricts([]); - - if (provinceValue) { - const province = provinceData.find(p => p.value === provinceValue); - setCities(province?.cities || []); - } else { - setCities([]); - } - - // 清空城市和区域的表单字段 - if (form) { - form.setFieldsValue({ - city: undefined, - district: undefined, - }); - } - // 触发变化回调 const newValue: CitySelectValue = { province: provinceValue, city: undefined, district: undefined, }; + onChange?.(newValue); }; // 处理城市选择变化 const handleCityChange = (cityValue?: string) => { - setSelectedCity(cityValue); - setSelectedDistrict(undefined); - - if (cityValue && selectedProvince) { - const province = provinceData.find(p => p.value === selectedProvince); - const city = province?.cities.find(c => c.value === cityValue); - setDistricts(city?.districts || []); - } else { - setDistricts([]); - } - - // 清空区域的表单字段 - if (form) { - form.setFieldsValue({ - district: undefined, - }); - } - // 触发变化回调 const newValue: CitySelectValue = { - province: selectedProvince, + province: value?.province, city: cityValue, district: undefined, }; + // @ts-ignore + districtData = cityData.find( item => { + return item.value === cityValue + }).districts onChange?.(newValue); }; // 处理区域选择变化 const handleDistrictChange = (districtValue?: string) => { - setSelectedDistrict(districtValue); - // 触发变化回调 const newValue: CitySelectValue = { - province: selectedProvince, - city: selectedCity, + province: value?.province, + city: value?.city, district: districtValue, }; onChange?.(newValue); }; - // 监听外部值变化 - useEffect(() => { - if (value.province !== selectedProvince) { - setSelectedProvince(value.province); - handleProvinceChange(value.province); - } - if (value.city !== selectedCity) { - setSelectedCity(value.city); - handleCityChange(value.city); - } - if (value.district !== selectedDistrict) { - setSelectedDistrict(value.district); - } - }, [value]); - return ( - {cities.map(city => ( + {cityData.map(city => ( @@ -315,14 +211,14 @@ const CitySelect: React.FC = ({