Commit de64c07ce292073ea70e9cc2f73cc5953235b045
Merge branch 'znh' of http://39.108.227.113:8001/zhusen/canrd-erp-front into znh
# Conflicts: # src/pages/Order/index.tsx
Showing
4 changed files
with
212 additions
and
166 deletions
src/pages/Order/components/DeliverModal.tsx
... | ... | @@ -208,7 +208,6 @@ const DeliverModal = ({ |
208 | 208 | footer={[ |
209 | 209 | <Button |
210 | 210 | key="back" |
211 | - size="large" | |
212 | 211 | onClick={() => { |
213 | 212 | setVisible(false); |
214 | 213 | }} |
... | ... | @@ -218,7 +217,6 @@ const DeliverModal = ({ |
218 | 217 | <Button |
219 | 218 | key="selfDeliver" |
220 | 219 | type="primary" |
221 | - size="large" | |
222 | 220 | onClick={async () => { |
223 | 221 | //请求体封装 |
224 | 222 | let list = data.map((item) => { |
... | ... | @@ -253,7 +251,6 @@ const DeliverModal = ({ |
253 | 251 | <Button |
254 | 252 | key="submit" |
255 | 253 | type="primary" |
256 | - size="large" | |
257 | 254 | onClick={async () => { |
258 | 255 | //请求体封装 |
259 | 256 | let list = data.map((item) => { | ... | ... |
src/pages/Order/constant.ts
... | ... | @@ -51,20 +51,20 @@ export const INVOCING_STATUS_OPTIONS_OLD = { |
51 | 51 | }; |
52 | 52 | |
53 | 53 | export const PAYEE_OPTIONS = { |
54 | - ZHUGUANG_PUBLIC_ACCOUNT: '烛光公账', | |
55 | - EXPERIMENT_PUBLIC_ACCOUNT: '实验公账', | |
56 | - NEW_ENERGY_PUBLIC_ACCOUNT: '新能源公账', | |
57 | - INNOVATION_PUBLIC_ACCOUNT: '创新公账', | |
58 | - JIANTU_PUBLIC_ACCOUNT: '坚途公账', | |
59 | - KNOWLEDGE_PUBLIC_ACCOUNT: '知识公账', | |
60 | - ZHUGUANG_ACCEPTANCE_DRAFT: '烛光承兑汇票', | |
54 | + ZHUGUANG_PUBLIC_ACCOUNT: '广东烛光新能源科技有限公司', | |
55 | + EXPERIMENT_PUBLIC_ACCOUNT: '东莞市科路得实验器材科技有限公司', | |
56 | + NEW_ENERGY_PUBLIC_ACCOUNT: '东莞市科路得新能源科技有限公司', | |
57 | + INNOVATION_PUBLIC_ACCOUNT: '东莞科路得创新科技有限公司', | |
58 | + JIANTU_PUBLIC_ACCOUNT: '东莞市坚途新材料科技有限公司', | |
59 | + KNOWLEDGE_PUBLIC_ACCOUNT: '东莞市科路得知识产权代理有限公司', | |
60 | + // ZHUGUANG_ACCEPTANCE_DRAFT: '烛光承兑汇票', | |
61 | 61 | LIUPING_ACCOUNT: '刘平账户', |
62 | 62 | INNOVATION_ALIPAY: '创新支付宝', |
63 | 63 | ZHUGUANG_ALIPAY: '烛光支付宝', |
64 | - ZHUGUANG_WISE_COLLECTION: '烛光慧收款', | |
65 | - EXPERIMENT_QR_CODE: '实验二维码', | |
66 | - INNOVATION_QR_CODE: '创新二维码', | |
67 | - NEW_ENERGY_QR_CODE: '新能源二维码', | |
64 | + // ZHUGUANG_WISE_COLLECTION: '烛光慧收款', | |
65 | + // EXPERIMENT_QR_CODE: '实验二维码', | |
66 | + // INNOVATION_QR_CODE: '创新二维码', | |
67 | + // NEW_ENERGY_QR_CODE: '新能源二维码', | |
68 | 68 | }; |
69 | 69 | |
70 | 70 | export const PROCURE_ORDER_STATUS = { | ... | ... |
src/pages/Order/index.tsx
... | ... | @@ -26,8 +26,13 @@ import { |
26 | 26 | } from '@/utils'; |
27 | 27 | import { |
28 | 28 | getReceivingCompanyOptions, |
29 | + isAdmin, | |
29 | 30 | isExaminer, |
31 | + isFinance, | |
32 | + isProcure, | |
33 | + isSales, | |
30 | 34 | isSupplier, |
35 | + isWarehousekeeper, | |
31 | 36 | } from '@/utils/order'; |
32 | 37 | import { getUserInfo } from '@/utils/user'; |
33 | 38 | import { |
... | ... | @@ -882,110 +887,6 @@ const OrderPage = () => { |
882 | 887 | 参数:{optRecord.parameters} |
883 | 888 | </span> |
884 | 889 | </div> |
885 | - | |
886 | - <Flex title={optRecord.notes}> | |
887 | - <div | |
888 | - className="max-w-[375px] whitespace-no-wrap overflow-hidden overflow-ellipsis hover:cursor-pointer" | |
889 | - onClick={() => { | |
890 | - copyToClipboard(optRecord.notes); | |
891 | - message.info('备注复制成功:' + optRecord.notes); | |
892 | - }} | |
893 | - > | |
894 | - <span className="text-[#8C8C8C]"> | |
895 | - 备注: | |
896 | - {optRecord.notes === null ? '暂无备注' : optRecord.notes} | |
897 | - </span> | |
898 | - </div> | |
899 | - {!isSupplier() ? ( | |
900 | - <EditTwoTone | |
901 | - className="pl-1 hover:curcor-pointer" | |
902 | - onClick={() => { | |
903 | - setNotesEditVisible(true); | |
904 | - setSelectedRows([optRecord.id]); | |
905 | - setNotes(optRecord.notes); | |
906 | - setNotesType(1); | |
907 | - }} | |
908 | - /> | |
909 | - ) : ( | |
910 | - '' | |
911 | - )} | |
912 | - </Flex> | |
913 | - | |
914 | - {(roleCode === 'procure' || | |
915 | - roleCode === 'warehouseKeeper' || | |
916 | - roleCode === 'admin') && | |
917 | - !isSupplier() ? ( | |
918 | - <> | |
919 | - <Flex title={optRecord.supplierName}> | |
920 | - <div className="max-w-[90%] whitespace-no-wrap overflow-hidden overflow-ellipsis"> | |
921 | - <span className="text-[#8C8C8C]"> | |
922 | - 所属采购: | |
923 | - {optRecord.supplierName === null | |
924 | - ? '暂无' | |
925 | - : optRecord.supplierName} | |
926 | - </span> | |
927 | - </div> | |
928 | - | |
929 | - <Divider type="vertical" /> | |
930 | - | |
931 | - <div className="max-w-[90%] whitespace-no-wrap overflow-hidden overflow-ellipsis"> | |
932 | - <span className="text-[#8C8C8C]"> | |
933 | - 采购备注: | |
934 | - {optRecord.procureNotes === null | |
935 | - ? '暂无备注' | |
936 | - : optRecord.procureNotes} | |
937 | - </span> | |
938 | - </div> | |
939 | - {/* 编辑备注按钮 */} | |
940 | - <EditTwoTone | |
941 | - className="pl-1 hover:curcor-pointer" | |
942 | - onClick={() => { | |
943 | - setSelectedRows([optRecord.id]); | |
944 | - setNotes(optRecord.procureNotes); | |
945 | - setNotesEditVisible(true); | |
946 | - setNotesType(2); | |
947 | - }} | |
948 | - /> | |
949 | - </Flex> | |
950 | - | |
951 | - <Flex title={optRecord.supplierNotes}> | |
952 | - <div className="max-w-[90%] whitespace-no-wrap overflow-hidden overflow-ellipsis"> | |
953 | - <span className="text-[#8C8C8C]"> | |
954 | - 供应商备注: | |
955 | - {optRecord.supplierNotes === null | |
956 | - ? '暂无备注' | |
957 | - : optRecord.supplierNotes} | |
958 | - </span> | |
959 | - </div> | |
960 | - {/* 编辑备注按钮 */} | |
961 | - <EditTwoTone | |
962 | - className="pl-1 hover:curcor-pointer" | |
963 | - onClick={() => { | |
964 | - setSelectedRows([optRecord.id]); | |
965 | - setNotes(optRecord.supplierNotes); | |
966 | - setNotesEditVisible(true); | |
967 | - setNotesType(3); | |
968 | - }} | |
969 | - /> | |
970 | - </Flex> | |
971 | - </> | |
972 | - ) : ( | |
973 | - '' | |
974 | - )} | |
975 | - | |
976 | - {/* {optRecord.applyInvoicingNotes !== undefined && | |
977 | - optRecord.applyInvoicingNotes !== null ? ( | |
978 | - <Flex title={optRecord.notes}> | |
979 | - <div className="max-w-[90%] whitespace-no-wrap overflow-hidden overflow-ellipsis"> | |
980 | - <span className="text-[#8C8C8C]"> | |
981 | - 开票备注: | |
982 | - {optRecord.applyInvoicingNotes} | |
983 | - </span> | |
984 | - </div> | |
985 | - </Flex> | |
986 | - ) : ( | |
987 | - '' | |
988 | - )} */} | |
989 | 890 | </Flex> |
990 | 891 | <Flex className="w-[13%]" vertical gap="small"> |
991 | 892 | {!isSupplier() ? ( |
... | ... | @@ -2002,11 +1903,98 @@ const OrderPage = () => { |
2002 | 1903 | </Flex> |
2003 | 1904 | </Flex> |
2004 | 1905 | |
2005 | - {roleCode === 'admin' || | |
2006 | - roleCode === 'salesManager' || | |
2007 | - roleCode === 'salesRepresentative' || | |
2008 | - roleCode === 'finance' ? ( | |
2009 | - <Flex title={optRecord.notes}> | |
1906 | + <Flex title={optRecord.notes}> | |
1907 | + <div | |
1908 | + className="overflow-hidden whitespace-normal overflow-ellipsis hover:cursor-pointer" | |
1909 | + onClick={() => { | |
1910 | + copyToClipboard(optRecord.notes); | |
1911 | + message.info('备注复制成功:' + optRecord.notes); | |
1912 | + }} | |
1913 | + > | |
1914 | + <span className="text-[#8C8C8C]"> | |
1915 | + 备注: | |
1916 | + {optRecord.notes === null ? '暂无备注' : optRecord.notes} | |
1917 | + </span> | |
1918 | + </div> | |
1919 | + {!isSupplier() && (isSales() || isWarehousekeeper() || isAdmin()) && ( | |
1920 | + <EditTwoTone | |
1921 | + className="pl-1 pr-1 hover:curcor-pointer" | |
1922 | + onClick={() => { | |
1923 | + setNotesEditVisible(true); | |
1924 | + setSelectedRows([optRecord.id]); | |
1925 | + setNotes(optRecord.notes); | |
1926 | + setNotesType(1); | |
1927 | + }} | |
1928 | + /> | |
1929 | + )} | |
1930 | + </Flex> | |
1931 | + | |
1932 | + {(isProcure() || isWarehousekeeper() || isSales() || isAdmin()) && | |
1933 | + !isSupplier() ? ( | |
1934 | + <div className="pt-2"> | |
1935 | + <Flex title={optRecord.supplierName}> | |
1936 | + <div> | |
1937 | + <span className="text-[#8C8C8C]"> | |
1938 | + 所属采购: | |
1939 | + {optRecord.supplierName === null | |
1940 | + ? '暂无' | |
1941 | + : optRecord.supplierName} | |
1942 | + </span> | |
1943 | + </div> | |
1944 | + | |
1945 | + <Divider type="vertical" /> | |
1946 | + | |
1947 | + <div className="overflow-hidden whitespace-normal overflow-ellipsis hover:cursor-pointer"> | |
1948 | + <span className="text-[#8C8C8C]"> | |
1949 | + 采购备注: | |
1950 | + {optRecord.procureNotes === null | |
1951 | + ? '暂无备注' | |
1952 | + : optRecord.procureNotes} | |
1953 | + </span> | |
1954 | + </div> | |
1955 | + {/* 编辑备注按钮 */} | |
1956 | + {(isProcure() || isAdmin()) && ( | |
1957 | + <EditTwoTone | |
1958 | + className="pl-1 pr-1 hover:curcor-pointer" | |
1959 | + onClick={() => { | |
1960 | + setSelectedRows([optRecord.id]); | |
1961 | + setNotes(optRecord.procureNotes); | |
1962 | + setNotesEditVisible(true); | |
1963 | + setNotesType(2); | |
1964 | + }} | |
1965 | + /> | |
1966 | + )} | |
1967 | + </Flex> | |
1968 | + | |
1969 | + {(isAdmin() || isProcure()) && ( | |
1970 | + <Flex title={optRecord.supplierNotes}> | |
1971 | + <div className="max-w-[90%] whitespace-no-wrap overflow-hidden overflow-ellipsis"> | |
1972 | + <span className="text-[#8C8C8C]"> | |
1973 | + 供应商备注: | |
1974 | + {optRecord.supplierNotes === null | |
1975 | + ? '暂无备注' | |
1976 | + : optRecord.supplierNotes} | |
1977 | + </span> | |
1978 | + </div> | |
1979 | + {/* 编辑备注按钮 */} | |
1980 | + <EditTwoTone | |
1981 | + className="pl-1 hover:curcor-pointer" | |
1982 | + onClick={() => { | |
1983 | + setSelectedRows([optRecord.id]); | |
1984 | + setNotes(optRecord.supplierNotes); | |
1985 | + setNotesEditVisible(true); | |
1986 | + setNotesType(3); | |
1987 | + }} | |
1988 | + /> | |
1989 | + </Flex> | |
1990 | + )} | |
1991 | + </div> | |
1992 | + ) : ( | |
1993 | + '' | |
1994 | + )} | |
1995 | + | |
1996 | + {isAdmin() || isSales() || isFinance() ? ( | |
1997 | + <Flex title={optRecord.notes} className="pt-2"> | |
2010 | 1998 | <div className="flex items-center"> |
2011 | 1999 | <div className="flex items-center max-w-[500px]"> |
2012 | 2000 | <div className="max-w-md overflow-hidden whitespace-no-wrap overflow-ellipsis"> |
... | ... | @@ -2267,22 +2255,19 @@ const OrderPage = () => { |
2267 | 2255 | }} |
2268 | 2256 | > |
2269 | 2257 | <span className="text-[#8C8C8C]">收货人:</span> |
2258 | + {!isSupplier() && ( | |
2259 | + <Tooltip className="order-tooltip" title="详情"> | |
2260 | + <ContainerTwoTone | |
2261 | + className="px-1 hover:curcor-pointer" | |
2262 | + onClick={() => { | |
2263 | + createOptObject(null, record.id); | |
2264 | + setDeliverInfoDrawerVisible(true); | |
2265 | + }} | |
2266 | + /> | |
2267 | + </Tooltip> | |
2268 | + )} | |
2270 | 2269 | <span className="text-slate-700"> |
2271 | 2270 | {record.customerName + ' '} |
2272 | - | |
2273 | - {!isSupplier() ? ( | |
2274 | - <Tooltip className="order-tooltip" title="详情"> | |
2275 | - <ContainerTwoTone | |
2276 | - className="hover:curcor-pointer" | |
2277 | - onClick={() => { | |
2278 | - createOptObject(null, record.id); | |
2279 | - setDeliverInfoDrawerVisible(true); | |
2280 | - }} | |
2281 | - /> | |
2282 | - </Tooltip> | |
2283 | - ) : ( | |
2284 | - '' | |
2285 | - )} | |
2286 | 2271 | </span> |
2287 | 2272 | </span> |
2288 | 2273 | </div> |
... | ... | @@ -2356,34 +2341,33 @@ const OrderPage = () => { |
2356 | 2341 | |
2357 | 2342 | {roleCode === 'finance' ? <Divider type="vertical" /> : ''} |
2358 | 2343 | |
2344 | + <div title={record.notes}> | |
2345 | + <div | |
2346 | + className="max-w-[850px] whitespace-normal overflow-hidden overflow-ellipsis hover:cursor-pointer" | |
2347 | + onClick={() => { | |
2348 | + copyToClipboard(record.notes); | |
2349 | + message.info('备注复制成功:' + record.notes); | |
2350 | + }} | |
2351 | + > | |
2352 | + <span className="text-[#8C8C8C]">备注:</span> | |
2353 | + <span className="ml-2"> | |
2354 | + {record.notes === null ? '暂无备注' : record.notes} | |
2355 | + </span> | |
2356 | + </div> | |
2357 | + </div> | |
2358 | + | |
2359 | 2359 | {!isSupplier() ? ( |
2360 | - <> | |
2361 | - <div title={record.notes}> | |
2362 | - <div | |
2363 | - className="max-w-md overflow-hidden whitespace-no-wrap overflow-ellipsis hover:cursor-pointer" | |
2364 | - onClick={() => { | |
2365 | - copyToClipboard(record.notes); | |
2366 | - message.info('备注复制成功:' + record.notes); | |
2367 | - }} | |
2368 | - > | |
2369 | - <span className="text-[#8C8C8C]">备注:</span> | |
2370 | - <span className="ml-2"> | |
2371 | - {record.notes === null ? '暂无备注' : record.notes} | |
2372 | - </span> | |
2373 | - </div> | |
2374 | - </div> | |
2375 | - <Tooltip title="编辑"> | |
2376 | - <EditTwoTone | |
2377 | - className="pl-1 hover:curcor-pointer" | |
2378 | - onClick={() => { | |
2379 | - setNotesEditVisible(true); | |
2380 | - setSelectedRows([record.id]); | |
2381 | - setNotes(record.notes); | |
2382 | - setNotesType(0); | |
2383 | - }} | |
2384 | - /> | |
2385 | - </Tooltip> | |
2386 | - </> | |
2360 | + <Tooltip title="编辑"> | |
2361 | + <EditTwoTone | |
2362 | + className="pl-1 hover:curcor-pointer" | |
2363 | + onClick={() => { | |
2364 | + setNotesEditVisible(true); | |
2365 | + setSelectedRows([record.id]); | |
2366 | + setNotes(record.notes); | |
2367 | + setNotesType(0); | |
2368 | + }} | |
2369 | + /> | |
2370 | + </Tooltip> | |
2387 | 2371 | ) : ( |
2388 | 2372 | '' |
2389 | 2373 | )} |
... | ... | @@ -3666,6 +3650,29 @@ const OrderPage = () => { |
3666 | 3650 | } |
3667 | 3651 | |
3668 | 3652 | /** |
3653 | + * 排除采购 | |
3654 | + */ | |
3655 | + if ((roleCode === 'procure' || roleCode === 'admin') && !isSupplier()) { | |
3656 | + mainOrdersColumns.push({ | |
3657 | + title: '采购排除', | |
3658 | + width: 120, | |
3659 | + dataIndex: 'excludeProcureNames', | |
3660 | + fieldProps: { | |
3661 | + mode: 'multiple', | |
3662 | + }, | |
3663 | + valueType: 'select', | |
3664 | + request: async () => { | |
3665 | + const res = await postServiceOrderProvideProcurementRoles(); | |
3666 | + let options = res.data?.map((item) => { | |
3667 | + return { label: item, value: item }; | |
3668 | + }); | |
3669 | + return options; | |
3670 | + }, | |
3671 | + hideInTable: true, | |
3672 | + }); | |
3673 | + } | |
3674 | + | |
3675 | + /** | |
3669 | 3676 | * 仓库可以筛选发货仓库 |
3670 | 3677 | */ |
3671 | 3678 | if (roleCode === 'warehouseKeeper' || roleCode === 'admin') { | ... | ... |
src/utils/order.ts
... | ... | @@ -9,7 +9,7 @@ export function getReceivingCompanyOptions(PAYEE_OPTIONS: any) { |
9 | 9 | export function isSupplier() { |
10 | 10 | let userInfo = getUserInfo(); |
11 | 11 | if (userInfo) { |
12 | - return ['首能', '枭源'].includes(userInfo.username); | |
12 | + return ['首能', '枭源'].includes(userInfo?.username); | |
13 | 13 | } |
14 | 14 | return false; |
15 | 15 | } |
... | ... | @@ -17,7 +17,49 @@ export function isSupplier() { |
17 | 17 | export function isExaminer() { |
18 | 18 | let userInfo = getUserInfo(); |
19 | 19 | if (userInfo) { |
20 | - return userInfo.roleSmallVO?.code === 'examiner'; | |
20 | + return ['examiner'].includes(userInfo?.roleSmallVO?.code); | |
21 | + } | |
22 | + return false; | |
23 | +} | |
24 | + | |
25 | +export function isSales() { | |
26 | + let userInfo = getUserInfo(); | |
27 | + if (userInfo) { | |
28 | + return ['salesRepresentative', 'salesManager'].includes( | |
29 | + userInfo?.roleSmallVO?.code, | |
30 | + ); | |
31 | + } | |
32 | + return false; | |
33 | +} | |
34 | + | |
35 | +export function isProcure() { | |
36 | + let userInfo = getUserInfo(); | |
37 | + if (userInfo) { | |
38 | + return ['procure'].includes(userInfo?.roleSmallVO?.code); | |
39 | + } | |
40 | + return false; | |
41 | +} | |
42 | + | |
43 | +export function isWarehousekeeper() { | |
44 | + let userInfo = getUserInfo(); | |
45 | + if (userInfo) { | |
46 | + return ['warehouseKeeper'].includes(userInfo?.roleSmallVO?.code); | |
47 | + } | |
48 | + return false; | |
49 | +} | |
50 | + | |
51 | +export function isAdmin() { | |
52 | + let userInfo = getUserInfo(); | |
53 | + if (userInfo) { | |
54 | + return ['admin'].includes(userInfo?.roleSmallVO?.code); | |
55 | + } | |
56 | + return false; | |
57 | +} | |
58 | + | |
59 | +export function isFinance() { | |
60 | + let userInfo = getUserInfo(); | |
61 | + if (userInfo) { | |
62 | + return ['finance'].includes(userInfo?.roleSmallVO?.code); | |
21 | 63 | } |
22 | 64 | return false; |
23 | 65 | } | ... | ... |