Przeglądaj źródła

feat: 客户下添加联系人,自动读取客户的数据并填充

lanjianrong 5 lat temu
rodzic
commit
53b28b3186

+ 2 - 2
src/components/LazyCascader/util.js

@@ -15,8 +15,8 @@ export const validCascaderRule = (_, value) => {
  * @returns {object}
  */
 export function formatValues(value) {
-  const { district = [], ...resetVal } = value
-  const [province = '', city = '', area = ''] = district
+  const { districtIds = [], ...resetVal } = value
+  const [province = '', city = '', area = ''] = districtIds
   return { province, city, area, ...resetVal }
 }
 

+ 9 - 2
src/pages/Customer/Client/components/AddClient/index.jsx

@@ -7,18 +7,25 @@ import ModalDrag from '@/components/DragmModal'
 import { ChangeCompMap } from '@/pages/Customer/Company/components/ChangeCompany'
 
 const AddClient = props => {
-  const { onConfirm, buttonProps, dataId, dataType, btnTitle = '联系人' } = props
+  const { onConfirm, buttonProps, dataId, dataType, btnTitle = '联系人', defaultValues } = props
   const formRef = useRef(null)
   const layout = {
     layout: 'horizontal',
     labelCol: { flex: '100px' }
   }
   const [showDataItem, setShowDataItem] = useState(false)
+
   return (
     <ModalForm
       {...layout}
       formRef={formRef}
       title={<ModalDrag title={'添加联系人'} />}
+      onVisibleChange={visible => {
+        if (visible) {
+          console.log('defaultValues', defaultValues)
+          formRef.current?.setFieldsValue({ ...defaultValues })
+        }
+      }}
       trigger={
         <Button type="primary" {...buttonProps} className="mr-1">
           <Plus className="mr-1" />
@@ -59,7 +66,7 @@ const AddClient = props => {
       />
       <Form.Item
         label="联系人地区"
-        name="district"
+        name="districtIds"
         rules={[{ required: true, message: '请选择地区' }]}>
         <LazyCascader showFooter={true} />
       </Form.Item>

+ 12 - 3
src/pages/Customer/Company/components/CompanyDetail/TabList.jsx

@@ -10,7 +10,7 @@ import { useModal } from '@/components/Modal'
 import { useDispatch } from 'umi'
 import AddRecord from '@/pages/Customer/Client/components/ClientDetail/AddRecord'
 
-const CompanyTabList = ({ initData, customerId, client, software }) => {
+const CompanyTabList = ({ initData, customerId, client, software, customer }) => {
   const dispatch = useDispatch()
   const { toggleDrawer, setDrawerProps } = useModal()
   const { TabPane } = Tabs
@@ -108,7 +108,6 @@ const CompanyTabList = ({ initData, customerId, client, software }) => {
       type: 'refresh/commitAction',
       payload: 'company'
     })
-    // await initData()
   }
 
   const handleAddClient = async values => {
@@ -157,7 +156,17 @@ const CompanyTabList = ({ initData, customerId, client, software }) => {
         </Tabs>
       </div>
       <div className="sheet-btns pl-15px pt-15px">
-        <AddContact onConfirm={handleAddClient} buttonProps={{ size: 'small', ghost: 'true' }} />
+        <AddContact
+          onConfirm={handleAddClient}
+          buttonProps={{ size: 'small', ghost: 'true' }}
+          defaultValues={{
+            districtIds: customer.districtIds,
+            stay: customer.stay,
+            ride: customer.ride,
+            address: customer.address,
+            landmarks: customer.landmarks
+          }}
+        />
         <AddRecord onConfirm={handleAddCustomerService} />
       </div>
     </div>

+ 1 - 0
src/pages/Customer/Company/components/CompanyDetail/index.jsx

@@ -91,6 +91,7 @@ const CompanyDetail = props => {
               customerId={flipConsts.curId}
               software={state.software}
               client={state.client}
+              customer={state.customer}
               // departmentsMap={departmentsMap}
             />
             <CompanyLowerList log={state.log} servicelist={state.serviceLog} />