Commit 052b61de6086a863f5a7f9085d8b2399c2b2fa72

Authored by zhongnanhuang
1 parent e3479f50

feat: update 供应商复制信息功能,申请修改订单

src/pages/Order/components/CheckModal.tsx
@@ -326,20 +326,6 @@ export default ({ @@ -326,20 +326,6 @@ export default ({
326 } 326 }
327 } 327 }
328 328
329 - /**  
330 - *  
331 - * @param body 后置审核  
332 - */  
333 - async function doPostAudit(body: object) {  
334 - const data = await postServiceOrderAudit({  
335 - data: body,  
336 - });  
337 - if (data.result === RESPONSE_CODE.SUCCESS) {  
338 - message.success(data.message);  
339 - onClose();  
340 - }  
341 - }  
342 -  
343 return ( 329 return (
344 <> 330 <>
345 <ModalForm<{ 331 <ModalForm<{
@@ -366,16 +352,6 @@ export default ({ @@ -366,16 +352,6 @@ export default ({
366 <Button 352 <Button
367 key="驳回" 353 key="驳回"
368 onClick={async () => { 354 onClick={async () => {
369 - if (checkType(CHECK_TYPE.WEARHOUSE_KEEPER)) {  
370 - doCheck({  
371 - pass: false,  
372 - subOrderIds: subOrderIds,  
373 - type: 'warehouse_audit',  
374 - notes: form.getFieldValue('name'),  
375 - });  
376 - return;  
377 - }  
378 -  
379 if (checkType(CHECK_TYPE.AFTER_SALES)) { 355 if (checkType(CHECK_TYPE.AFTER_SALES)) {
380 doAfterSalesCheck({ 356 doAfterSalesCheck({
381 applyType: 'after-sales', 357 applyType: 'after-sales',
@@ -411,14 +387,25 @@ export default ({ @@ -411,14 +387,25 @@ export default ({
411 return; 387 return;
412 } 388 }
413 389
  390 + let type = '';
  391 + if (checkType(CHECK_TYPE.WEARHOUSE_KEEPER)) {
  392 + type = 'warehouse_audit';
  393 + }
414 if (checkType(CHECK_TYPE.WAITING_FOR_POST_AUDIT)) { 394 if (checkType(CHECK_TYPE.WAITING_FOR_POST_AUDIT)) {
415 - return doPostAudit({  
416 - pass: false,  
417 - notes: form.getFieldValue('name'),  
418 - type: 'post_audit',  
419 - subOrderIds: subOrderIds,  
420 - }); 395 + type = 'post_audit';
  396 + }
  397 + if (checkType(CHECK_TYPE.NODE_OPERATING_AUDIT)) {
  398 + type = 'node_operating_audit';
421 } 399 }
  400 + if (checkType(CHECK_TYPE.MODIFY_LEADER_AUDIT)) {
  401 + type = 'modify_leader_audit';
  402 + }
  403 + doCheck({
  404 + pass: false,
  405 + subOrderIds: subOrderIds,
  406 + type: type,
  407 + notes: form.getFieldValue('name'),
  408 + });
422 }} 409 }}
423 > 410 >
424 驳回 411 驳回
@@ -455,16 +442,6 @@ export default ({ @@ -455,16 +442,6 @@ export default ({
455 }} 442 }}
456 submitTimeout={2000} 443 submitTimeout={2000}
457 onFinish={async (values) => { 444 onFinish={async (values) => {
458 - if (checkType(CHECK_TYPE.WEARHOUSE_KEEPER)) {  
459 - //审核通过mainOrderId  
460 - return doCheck({  
461 - pass: true,  
462 - subOrderIds: subOrderIds,  
463 - type: 'warehouse_audit',  
464 - notes: form.getFieldValue('name'),  
465 - });  
466 - }  
467 -  
468 if (checkType(CHECK_TYPE.AFTER_SALES)) { 445 if (checkType(CHECK_TYPE.AFTER_SALES)) {
469 //审核通过 446 //审核通过
470 return doAfterSalesCheck({ 447 return doAfterSalesCheck({
@@ -499,14 +476,25 @@ export default ({ @@ -499,14 +476,25 @@ export default ({
499 }); 476 });
500 } 477 }
501 478
  479 + let type = '';
  480 + if (checkType(CHECK_TYPE.WEARHOUSE_KEEPER)) {
  481 + type = 'warehouse_audit';
  482 + }
502 if (checkType(CHECK_TYPE.WAITING_FOR_POST_AUDIT)) { 483 if (checkType(CHECK_TYPE.WAITING_FOR_POST_AUDIT)) {
503 - return doPostAudit({  
504 - pass: true,  
505 - notes: values.name,  
506 - type: 'post_audit',  
507 - subOrderIds: subOrderIds,  
508 - }); 484 + type = 'post_audit';
  485 + }
  486 + if (checkType(CHECK_TYPE.NODE_OPERATING_AUDIT)) {
  487 + type = 'node_operating_audit';
  488 + }
  489 + if (checkType(CHECK_TYPE.MODIFY_LEADER_AUDIT)) {
  490 + type = 'modify_leader_audit';
509 } 491 }
  492 + doCheck({
  493 + pass: true,
  494 + subOrderIds: subOrderIds,
  495 + type: type,
  496 + notes: form.getFieldValue('name'),
  497 + });
510 }} 498 }}
511 onOpenChange={setCheckVisible} 499 onOpenChange={setCheckVisible}
512 > 500 >
src/pages/Order/components/OrderDrawer.tsx
@@ -8,6 +8,7 @@ import { @@ -8,6 +8,7 @@ import {
8 postServiceOrderAddOrder, 8 postServiceOrderAddOrder,
9 postServiceOrderAfterSalesQuerySnapshotOrder, 9 postServiceOrderAfterSalesQuerySnapshotOrder,
10 postServiceOrderApplyAfterSales, 10 postServiceOrderApplyAfterSales,
  11 + postServiceOrderApplyModify,
11 postServiceOrderQuerySalesCode, 12 postServiceOrderQuerySalesCode,
12 postServiceOrderUpdateOrder, 13 postServiceOrderUpdateOrder,
13 } from '@/services'; 14 } from '@/services';
@@ -676,12 +677,19 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; { @@ -676,12 +677,19 @@ export default ({ onClose, data, subOrders, orderOptType }) =&gt; {
676 } 677 }
677 678
678 values.applyType = orderOptType; 679 values.applyType = orderOptType;
679 - if (optType('after-sales') || optType('order-change-normal')) { 680 + if (optType('after-sales')) {
680 values.filePaths = values.filePaths?.map((file) => { 681 values.filePaths = values.filePaths?.map((file) => {
681 return { url: file.response.data[0] }; 682 return { url: file.response.data[0] };
682 }); 683 });
683 res = await postServiceOrderApplyAfterSales({ data: values }); 684 res = await postServiceOrderApplyAfterSales({ data: values });
684 } 685 }
  686 +
  687 + if (optType('order-change-normal')) {
  688 + values.filePaths = values.filePaths?.map((file) => {
  689 + return { url: file.response.data[0] };
  690 + });
  691 + res = await postServiceOrderApplyModify({ data: values });
  692 + }
685 } 693 }
686 694
687 if (res.result === RESPONSE_CODE.SUCCESS) { 695 if (res.result === RESPONSE_CODE.SUCCESS) {
src/pages/Order/constant.ts
@@ -97,6 +97,8 @@ export const CHECK_TYPE = { @@ -97,6 +97,8 @@ export const CHECK_TYPE = {
97 LEADER_AUDIT: 'LEADER_AUDIT', 97 LEADER_AUDIT: 'LEADER_AUDIT',
98 MODIFY_APPLY_WAIT_FOR_AUDIT: 'MODIFY_APPLY_WAIT_FOR_AUDIT', 98 MODIFY_APPLY_WAIT_FOR_AUDIT: 'MODIFY_APPLY_WAIT_FOR_AUDIT',
99 WAITING_FOR_POST_AUDIT: 'WAITING_FOR_POST_AUDIT', 99 WAITING_FOR_POST_AUDIT: 'WAITING_FOR_POST_AUDIT',
  100 + NODE_OPERATING_AUDIT: 'NODE_OPERATING_AUDIT',
  101 + MODIFY_LEADER_AUDIT: 'MODIFY_LEADER_AUDIT',
100 }; 102 };
101 103
102 /** 104 /**
@@ -169,10 +171,10 @@ export const ORDER_STATUS_OPTIONS = { @@ -169,10 +171,10 @@ export const ORDER_STATUS_OPTIONS = {
169 }; 171 };
170 172
171 export const MODIFIED_AUDIT_STATUS_OPTIONS = { 173 export const MODIFIED_AUDIT_STATUS_OPTIONS = {
172 - AUDIT_FAILURE: '审核成功',  
173 - PENDING_AUDIT_FOR_CURRENT_NODE_PERSONNEL: '当前节点人员待审核', 174 + AUDIT_FAILURE: '修改审核失败',
  175 + PENDING_AUDIT_FOR_CURRENT_NODE_PERSONNEL: '节点待审核',
174 LEADER_PENDING_AUDIT: '领导待审核', 176 LEADER_PENDING_AUDIT: '领导待审核',
175 - AUDIT_SUCCESS: '审核成功', 177 + AUDIT_SUCCESS: '修改审核成功',
176 }; 178 };
177 179
178 /** 180 /**
@@ -360,6 +362,7 @@ export const HISTORY_OPT_TYPE = new Map&lt;string, string&gt;([ @@ -360,6 +362,7 @@ export const HISTORY_OPT_TYPE = new Map&lt;string, string&gt;([
360 ['order-change-normal-CHECK', '申请修改审核'], 362 ['order-change-normal-CHECK', '申请修改审核'],
361 ['warehouse_audit', '仓库审核'], 363 ['warehouse_audit', '仓库审核'],
362 ['post_audit', '后置审核'], 364 ['post_audit', '后置审核'],
  365 + ['applyModify', '申请修改订单信息'],
363 ]); 366 ]);
364 367
365 export const MAIN_ORDER_COLUMNS = [ 368 export const MAIN_ORDER_COLUMNS = [
@@ -488,6 +491,13 @@ export const MAIN_ORDER_COLUMNS = [ @@ -488,6 +491,13 @@ export const MAIN_ORDER_COLUMNS = [
488 valueEnum: enumToProTableEnumValue(ORDER_STATUS_OPTIONS), 491 valueEnum: enumToProTableEnumValue(ORDER_STATUS_OPTIONS),
489 }, 492 },
490 { 493 {
  494 + title: '修改审核状态',
  495 + dataIndex: 'modifiedAuditStatus',
  496 + valueType: 'select',
  497 + hideInTable: true,
  498 + valueEnum: enumToProTableEnumValue(MODIFIED_AUDIT_STATUS_OPTIONS),
  499 + },
  500 + {
491 title: '支付方式', 501 title: '支付方式',
492 dataIndex: 'paymentMethod', 502 dataIndex: 'paymentMethod',
493 valueType: 'select', 503 valueType: 'select',
src/pages/Order/index.tsx
@@ -762,7 +762,11 @@ const OrderPage = () =&gt; { @@ -762,7 +762,11 @@ const OrderPage = () =&gt; {
762 {/* 商品名称 */} 762 {/* 商品名称 */}
763 <div> 763 <div>
764 <div 764 <div
765 - className="overflow-hidden whitespace-no-wrap overflow-ellipsis" 765 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis hover:cursor-pointer"
  766 + onClick={() => {
  767 + copyToClipboard(optRecord.productName);
  768 + message.info('商品名称复制成功:' + optRecord.productName);
  769 + }}
766 title={optRecord.productName} 770 title={optRecord.productName}
767 > 771 >
768 <span className="font-medium text-black "> 772 <span className="font-medium text-black ">
@@ -786,6 +790,16 @@ const OrderPage = () =&gt; { @@ -786,6 +790,16 @@ const OrderPage = () =&gt; {
786 ) : ( 790 ) : (
787 '' 791 ''
788 )} 792 )}
  793 + {optRecord.modifiedOptFlag !== null ? (
  794 + <span className="text-[#f44e4e] cursor-pointer">
  795 + {optRecord.modifiedOptFlag === 'MODIFY' ? '(修改中)' : ''}
  796 + {optRecord.modifiedOptFlag === 'DELETE' ? '(删除中)' : ''}
  797 + {optRecord.modifiedOptFlag === 'INSERT' ? '(新增中)' : ''}
  798 + </span>
  799 + ) : (
  800 + ''
  801 + )}
  802 +
789 {optRecord.modified ? ( 803 {optRecord.modified ? (
790 <Tooltip title="点击查看详情"> 804 <Tooltip title="点击查看详情">
791 <span 805 <span
@@ -795,7 +809,7 @@ const OrderPage = () =&gt; { @@ -795,7 +809,7 @@ const OrderPage = () =&gt; {
795 setModifiedDiffModalVisible(true); 809 setModifiedDiffModalVisible(true);
796 }} 810 }}
797 > 811 >
798 - (修改过) 812 + (内容有变化)
799 </span> 813 </span>
800 </Tooltip> 814 </Tooltip>
801 ) : ( 815 ) : (
@@ -810,23 +824,32 @@ const OrderPage = () =&gt; { @@ -810,23 +824,32 @@ const OrderPage = () =&gt; {
810 </div> 824 </div>
811 825
812 <div 826 <div
813 - className="overflow-hidden whitespace-no-wrap overflow-ellipsis" 827 + className="overflow-hidden whitespace-no-wrap overflow-ellipsis hover:cursor-pointer"
814 title={optRecord.parameters} 828 title={optRecord.parameters}
  829 + onClick={() => {
  830 + copyToClipboard(optRecord.parameters);
  831 + message.info('商品名称复制成功:' + optRecord.parameters);
  832 + }}
815 > 833 >
816 <span className="text-[#8C8C8C]"> 834 <span className="text-[#8C8C8C]">
817 参数:{optRecord.parameters} 835 参数:{optRecord.parameters}
818 </span> 836 </span>
819 </div> 837 </div>
820 838
821 - {userInfo.username !== '首能' ? (  
822 - <Flex title={optRecord.notes}>  
823 - <div className="max-w-[375px] whitespace-no-wrap overflow-hidden overflow-ellipsis">  
824 - <span className="text-[#8C8C8C]">  
825 - 备注:  
826 - {optRecord.notes === null ? '暂无备注' : optRecord.notes}  
827 - </span>  
828 - </div>  
829 - {/* 编辑备注按钮 */} 839 + <Flex title={optRecord.notes}>
  840 + <div
  841 + className="max-w-[375px] whitespace-no-wrap overflow-hidden overflow-ellipsis hover:cursor-pointer"
  842 + onClick={() => {
  843 + copyToClipboard(optRecord.notes);
  844 + message.info('备注复制成功:' + optRecord.notes);
  845 + }}
  846 + >
  847 + <span className="text-[#8C8C8C]">
  848 + 备注:
  849 + {optRecord.notes === null ? '暂无备注' : optRecord.notes}
  850 + </span>
  851 + </div>
  852 + {userInfo.username !== '首能' ? (
830 <EditTwoTone 853 <EditTwoTone
831 className="pl-1 hover:curcor-pointer" 854 className="pl-1 hover:curcor-pointer"
832 onClick={() => { 855 onClick={() => {
@@ -836,10 +859,10 @@ const OrderPage = () =&gt; { @@ -836,10 +859,10 @@ const OrderPage = () =&gt; {
836 setNotesType(1); 859 setNotesType(1);
837 }} 860 }}
838 /> 861 />
839 - </Flex>  
840 - ) : (  
841 - ''  
842 - )} 862 + ) : (
  863 + ''
  864 + )}
  865 + </Flex>
843 866
844 {(roleCode === 'procure' || 867 {(roleCode === 'procure' ||
845 roleCode === 'warehouseKeeper' || 868 roleCode === 'warehouseKeeper' ||
@@ -1163,7 +1186,8 @@ const OrderPage = () =&gt; { @@ -1163,7 +1186,8 @@ const OrderPage = () =&gt; {
1163 )} 1186 )}
1164 1187
1165 {/* 修改审核状态 */} 1188 {/* 修改审核状态 */}
1166 - {optRecord.modifiedAuditStatus !== null ? ( 1189 + {optRecord.modifiedAuditStatus !== null &&
  1190 + optRecord.modifiedAuditStatus !== 'AUDIT_FAILURE' ? (
1167 <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis"> 1191 <div className="overflow-hidden whitespace-no-wrap overflow-ellipsis">
1168 <Tooltip 1192 <Tooltip
1169 title={enumValueToLabel( 1193 title={enumValueToLabel(
@@ -1182,6 +1206,29 @@ const OrderPage = () =&gt; { @@ -1182,6 +1206,29 @@ const OrderPage = () =&gt; {
1182 ) : ( 1206 ) : (
1183 '' 1207 ''
1184 )} 1208 )}
  1209 +
  1210 + {optRecord.modifiedAuditStatus === 'AUDIT_FAILURE' ? (
  1211 + <MyToolTip
  1212 + key="key"
  1213 + title={optRecord.modifiedAuditNotes}
  1214 + content={
  1215 + <>
  1216 + <Tag
  1217 + color={TAGS_COLOR.get(optRecord.modifiedAuditNotes)}
  1218 + style={{ marginRight: '4px' }}
  1219 + >
  1220 + {enumValueToLabel(
  1221 + optRecord.modifiedAuditStatus,
  1222 + MODIFIED_AUDIT_STATUS_OPTIONS,
  1223 + )}
  1224 + </Tag>
  1225 + <QuestionCircleOutlined style={{ color: '#C1C1C1' }} />
  1226 + </>
  1227 + }
  1228 + />
  1229 + ) : (
  1230 + ''
  1231 + )}
1185 </div> 1232 </div>
1186 </Flex> 1233 </Flex>
1187 <Flex className="w-[18%]" wrap="wrap" gap="small"> 1234 <Flex className="w-[18%]" wrap="wrap" gap="small">
@@ -1226,10 +1273,42 @@ const OrderPage = () =&gt; { @@ -1226,10 +1273,42 @@ const OrderPage = () =&gt; {
1226 onClick={() => { 1273 onClick={() => {
1227 createOptObject(optRecord.id, record.id); 1274 createOptObject(optRecord.id, record.id);
1228 setCheckVisible(true); 1275 setCheckVisible(true);
1229 - setOrderCheckType(CHECK_TYPE.WAITING_FOR_POST_AUDIT); 1276 + setOrderCheckType(CHECK_TYPE.NODE_OPERATING_AUDIT);
  1277 + }}
  1278 + >
  1279 + 节点修改审核
  1280 + </Button>
  1281 + ) : (
  1282 + ''
  1283 + )}
  1284 +
  1285 + {optRecord.subPath?.includes('applyModify') ? (
  1286 + <Button
  1287 + className="p-0"
  1288 + type="link"
  1289 + onClick={() => {
  1290 + createOptObject(optRecord.id, record.id);
  1291 + setOrderDrawerVisible(true);
  1292 + setOrderOptType('order-change-normal');
1230 }} 1293 }}
1231 > 1294 >
1232 - 修改审核 1295 + 申请修改
  1296 + </Button>
  1297 + ) : (
  1298 + ''
  1299 + )}
  1300 +
  1301 + {optRecord.subPath?.includes('modifiedLeaderAuditRequest') ? (
  1302 + <Button
  1303 + className="p-0"
  1304 + type="link"
  1305 + onClick={() => {
  1306 + createOptObject(optRecord.id, record.id);
  1307 + setCheckVisible(true);
  1308 + setOrderCheckType(CHECK_TYPE.MODIFY_LEADER_AUDIT);
  1309 + }}
  1310 + >
  1311 + 领导修改审核
1233 </Button> 1312 </Button>
1234 ) : ( 1313 ) : (
1235 '' 1314 ''
@@ -1333,7 +1412,7 @@ const OrderPage = () =&gt; { @@ -1333,7 +1412,7 @@ const OrderPage = () =&gt; {
1333 setOrderCheckType(CHECK_TYPE.PROCURE); 1412 setOrderCheckType(CHECK_TYPE.PROCURE);
1334 }} 1413 }}
1335 > 1414 >
1336 - 采购发货 1415 + {userInfo.username === '首能' ? '发货' : '采购发货'}
1337 </Button> 1416 </Button>
1338 ) : ( 1417 ) : (
1339 '' 1418 ''
@@ -1950,14 +2029,18 @@ const OrderPage = () =&gt; { @@ -1950,14 +2029,18 @@ const OrderPage = () =&gt; {
1950 <span>{formatDateTime(record.createTime)}</span> 2029 <span>{formatDateTime(record.createTime)}</span>
1951 <Divider type="vertical" /> 2030 <Divider type="vertical" />
1952 <Space split={<Divider type="vertical" />}> 2031 <Space split={<Divider type="vertical" />}>
  2032 + <div
  2033 + className="hover:cursor-pointer"
  2034 + onClick={() => {
  2035 + copyToClipboard(record.salesCode);
  2036 + message.info('代表复制成功:' + record.salesCode);
  2037 + }}
  2038 + >
  2039 + <span className="text-[#8C8C8C]">代表:</span>
  2040 + <span className="text-slate-700">{record.salesCode}</span>
  2041 + </div>
1953 {userInfo?.username !== '首能' ? ( 2042 {userInfo?.username !== '首能' ? (
1954 <> 2043 <>
1955 - <div>  
1956 - <span className="text-[#8C8C8C]">代表:</span>  
1957 - <span className="text-slate-700">  
1958 - {record.salesCode}  
1959 - </span>  
1960 - </div>  
1961 <div 2044 <div
1962 title={record.institution} 2045 title={record.institution}
1963 className="whitespace-no-wrap overflow-hidden overflow-ellipsis max-w-[150px]" 2046 className="whitespace-no-wrap overflow-hidden overflow-ellipsis max-w-[150px]"
@@ -1977,7 +2060,13 @@ const OrderPage = () =&gt; { @@ -1977,7 +2060,13 @@ const OrderPage = () =&gt; {
1977 ) : ( 2060 ) : (
1978 '' 2061 ''
1979 )} 2062 )}
1980 - <span> 2063 + <span
  2064 + className="hover:cursor-pointer"
  2065 + onClick={() => {
  2066 + copyToClipboard(record.customerName);
  2067 + message.info('收货人复制成功:' + record.customerName);
  2068 + }}
  2069 + >
1981 <span className="text-[#8C8C8C]">收货人:</span> 2070 <span className="text-[#8C8C8C]">收货人:</span>
1982 <span className="text-slate-700"> 2071 <span className="text-slate-700">
1983 {record.customerName + ' '} 2072 {record.customerName + ' '}
@@ -2000,7 +2089,13 @@ const OrderPage = () =&gt; { @@ -2000,7 +2089,13 @@ const OrderPage = () =&gt; {
2000 {userInfo?.username === '首能' ? ( 2089 {userInfo?.username === '首能' ? (
2001 <div 2090 <div
2002 title={record.customerShippingAddress} 2091 title={record.customerShippingAddress}
2003 - className="whitespace-no-wrap overflow-hidden overflow-ellipsis max-w-[500px]" 2092 + className="whitespace-no-wrap overflow-hidden overflow-ellipsis max-w-[500px] hover:cursor-pointer"
  2093 + onClick={() => {
  2094 + copyToClipboard(record.customerShippingAddress);
  2095 + message.info(
  2096 + '收货地址复制成功:' + record.customerShippingAddress,
  2097 + );
  2098 + }}
2004 > 2099 >
2005 <span className="text-[#8C8C8C]">收货地址:</span> 2100 <span className="text-[#8C8C8C]">收货地址:</span>
2006 <span className="text-slate-700"> 2101 <span className="text-slate-700">
@@ -2039,24 +2134,35 @@ const OrderPage = () =&gt; { @@ -2039,24 +2134,35 @@ const OrderPage = () =&gt; {
2039 {roleCode === 'finance' ? <Divider type="vertical" /> : ''} 2134 {roleCode === 'finance' ? <Divider type="vertical" /> : ''}
2040 2135
2041 <div title={record.notes}> 2136 <div title={record.notes}>
2042 - <div className="max-w-md overflow-hidden whitespace-no-wrap overflow-ellipsis"> 2137 + <div
  2138 + className="max-w-md overflow-hidden whitespace-no-wrap overflow-ellipsis hover:cursor-pointer"
  2139 + onClick={() => {
  2140 + copyToClipboard(record.notes);
  2141 + message.info('备注复制成功:' + record.notes);
  2142 + }}
  2143 + >
2043 <span className="text-[#8C8C8C]">备注:</span> 2144 <span className="text-[#8C8C8C]">备注:</span>
2044 <span className="ml-2"> 2145 <span className="ml-2">
2045 {record.notes === null ? '暂无备注' : record.notes} 2146 {record.notes === null ? '暂无备注' : record.notes}
2046 </span> 2147 </span>
2047 </div> 2148 </div>
2048 </div> 2149 </div>
2049 - <Tooltip title="编辑">  
2050 - <EditTwoTone  
2051 - className="pl-1 hover:curcor-pointer"  
2052 - onClick={() => {  
2053 - setNotesEditVisible(true);  
2054 - setSelectedRows([record.id]);  
2055 - setNotes(record.notes);  
2056 - setNotesType(0);  
2057 - }}  
2058 - />  
2059 - </Tooltip> 2150 +
  2151 + {userInfo.username !== '首能' ? (
  2152 + <Tooltip title="编辑">
  2153 + <EditTwoTone
  2154 + className="pl-1 hover:curcor-pointer"
  2155 + onClick={() => {
  2156 + setNotesEditVisible(true);
  2157 + setSelectedRows([record.id]);
  2158 + setNotes(record.notes);
  2159 + setNotesType(0);
  2160 + }}
  2161 + />
  2162 + </Tooltip>
  2163 + ) : (
  2164 + ''
  2165 + )}
2060 </Flex> 2166 </Flex>
2061 </Flex> 2167 </Flex>
2062 <Flex wrap="wrap" gap="middle" vertical> 2168 <Flex wrap="wrap" gap="middle" vertical>
@@ -2115,6 +2221,38 @@ const OrderPage = () =&gt; { @@ -2115,6 +2221,38 @@ const OrderPage = () =&gt; {
2115 <Flex justify="flex-end"> 2221 <Flex justify="flex-end">
2116 <Space.Compact direction="vertical" align="end"> 2222 <Space.Compact direction="vertical" align="end">
2117 <Space wrap> 2223 <Space wrap>
  2224 + {record.mainPath?.includes('modifiedAuditRequest') ? (
  2225 + <Button
  2226 + className="p-0"
  2227 + type="link"
  2228 + onClick={() => {
  2229 + createOptObject(null, record.id);
  2230 + setCheckVisible(true);
  2231 + setOrderCheckType(CHECK_TYPE.NODE_OPERATING_AUDIT);
  2232 + }}
  2233 + >
  2234 + 节点修改审核
  2235 + </Button>
  2236 + ) : (
  2237 + ''
  2238 + )}
  2239 +
  2240 + {record.mainPath?.includes('modifiedLeaderAuditRequest') ? (
  2241 + <Button
  2242 + className="p-0"
  2243 + type="link"
  2244 + onClick={() => {
  2245 + createOptObject(null, record.id);
  2246 + setCheckVisible(true);
  2247 + setOrderCheckType(CHECK_TYPE.MODIFY_LEADER_AUDIT);
  2248 + }}
  2249 + >
  2250 + 领导修改审核
  2251 + </Button>
  2252 + ) : (
  2253 + ''
  2254 + )}
  2255 +
2118 {false ? ( 2256 {false ? (
2119 <Button 2257 <Button
2120 className="p-0" 2258 className="p-0"
@@ -2212,7 +2350,7 @@ const OrderPage = () =&gt; { @@ -2212,7 +2350,7 @@ const OrderPage = () =&gt; {
2212 '' 2350 ''
2213 )} 2351 )}
2214 2352
2215 - {record.mainPath?.includes('orderChangeRequest') ? ( 2353 + {record.mainPath?.includes('applyModify') ? (
2216 <Button 2354 <Button
2217 className="p-0" 2355 className="p-0"
2218 type="link" 2356 type="link"
@@ -2396,7 +2534,7 @@ const OrderPage = () =&gt; { @@ -2396,7 +2534,7 @@ const OrderPage = () =&gt; {
2396 setOrderCheckType(CHECK_TYPE.PROCURE); 2534 setOrderCheckType(CHECK_TYPE.PROCURE);
2397 }} 2535 }}
2398 > 2536 >
2399 - 采购发货 2537 + {userInfo.username === '首能' ? '发货' : '采购发货'}
2400 </Button> 2538 </Button>
2401 ) : ( 2539 ) : (
2402 '' 2540 ''
@@ -3101,6 +3239,14 @@ const OrderPage = () =&gt; { @@ -3101,6 +3239,14 @@ const OrderPage = () =&gt; {
3101 // 主订单列表 3239 // 主订单列表
3102 const mainOrdersColumns: ProColumns<OrderType>[] = MAIN_ORDER_COLUMNS.map( 3240 const mainOrdersColumns: ProColumns<OrderType>[] = MAIN_ORDER_COLUMNS.map(
3103 (item) => { 3241 (item) => {
  3242 + //首能账号只能搜索订单编号
  3243 + let canSearchIndex = ['id', 'salesCode', 'subNotes', 'orderStatus'];
  3244 + if (
  3245 + userInfo.username === '首能' &&
  3246 + !canSearchIndex.includes(item.dataIndex)
  3247 + ) {
  3248 + item.search = false;
  3249 + }
3104 if (item.dataIndex === 'name') { 3250 if (item.dataIndex === 'name') {
3105 return { 3251 return {
3106 ...item, 3252 ...item,
@@ -3126,7 +3272,10 @@ const OrderPage = () =&gt; { @@ -3126,7 +3272,10 @@ const OrderPage = () =&gt; {
3126 /** 3272 /**
3127 * 采购可以筛选供应商备注 3273 * 采购可以筛选供应商备注
3128 */ 3274 */
3129 - if (roleCode === 'procure' || roleCode === 'admin') { 3275 + if (
  3276 + (roleCode === 'procure' || roleCode === 'admin') &&
  3277 + userInfo.username !== '首能'
  3278 + ) {
3130 mainOrdersColumns.push({ 3279 mainOrdersColumns.push({
3131 title: '供应商备注', 3280 title: '供应商备注',
3132 width: 120, 3281 width: 120,
@@ -3139,7 +3288,10 @@ const OrderPage = () =&gt; { @@ -3139,7 +3288,10 @@ const OrderPage = () =&gt; {
3139 /** 3288 /**
3140 * 采购可以筛选其他采购 3289 * 采购可以筛选其他采购
3141 */ 3290 */
3142 - if (roleCode === 'procure' || roleCode === 'admin') { 3291 + if (
  3292 + (roleCode === 'procure' || roleCode === 'admin') &&
  3293 + userInfo.username !== '首能'
  3294 + ) {
3143 mainOrdersColumns.push({ 3295 mainOrdersColumns.push({
3144 title: '采购名称', 3296 title: '采购名称',
3145 width: 120, 3297 width: 120,
@@ -3200,7 +3352,7 @@ const OrderPage = () =&gt; { @@ -3200,7 +3352,7 @@ const OrderPage = () =&gt; {
3200 } 3352 }
3201 3353
3202 //采购可以筛选出需要处理的订单 3354 //采购可以筛选出需要处理的订单
3203 - if (roleCode === 'procure') { 3355 + if (roleCode === 'procure' && userInfo.username !== '首能') {
3204 radios.push(<Radio value={60}>其他采购</Radio>); 3356 radios.push(<Radio value={60}>其他采购</Radio>);
3205 radios.push(<Radio value={10}>待处理</Radio>); 3357 radios.push(<Radio value={10}>待处理</Radio>);
3206 } 3358 }
src/services/definition.ts
@@ -313,8 +313,16 @@ export interface AdminUserVO { @@ -313,8 +313,16 @@ export interface AdminUserVO {
313 313
314 export interface AuditDto { 314 export interface AuditDto {
315 notes?: string; 315 notes?: string;
  316 + /**
  317 + * @description
  318 + * 是否通过
  319 + */
316 pass?: boolean; 320 pass?: boolean;
317 subOrderIds?: Array<number>; 321 subOrderIds?: Array<number>;
  322 + /**
  323 + * @description
  324 + * 审核类型:post_audit 后置审核、node_operating_audit 节点操作人审核、warehouse_audit 仓库审核
  325 + */
318 type?: string; 326 type?: string;
319 } 327 }
320 328
src/services/request.ts
@@ -6398,7 +6398,7 @@ export type PostServiceOrderAfterSalesCheckResponseSuccess = @@ -6398,7 +6398,7 @@ export type PostServiceOrderAfterSalesCheckResponseSuccess =
6398 PostServiceOrderAfterSalesCheckResponse[200]; 6398 PostServiceOrderAfterSalesCheckResponse[200];
6399 /** 6399 /**
6400 * @description 6400 * @description
6401 - * 修改订单审核 6401 + * 修改审核
6402 * @tags 内部订单 6402 * @tags 内部订单
6403 * @produces * 6403 * @produces *
6404 * @consumes application/json 6404 * @consumes application/json
@@ -6636,6 +6636,77 @@ export const postServiceOrderApplyInvoicing = /* #__PURE__ */ (() =&gt; { @@ -6636,6 +6636,77 @@ export const postServiceOrderApplyInvoicing = /* #__PURE__ */ (() =&gt; {
6636 return request; 6636 return request;
6637 })(); 6637 })();
6638 6638
  6639 +/** @description request parameter type for postServiceOrderApplyModify */
  6640 +export interface PostServiceOrderApplyModifyOption {
  6641 + /**
  6642 + * @description
  6643 + * dto
  6644 + */
  6645 + body: {
  6646 + /**
  6647 + @description
  6648 + dto */
  6649 + dto: Dto;
  6650 + };
  6651 +}
  6652 +
  6653 +/** @description response type for postServiceOrderApplyModify */
  6654 +export interface PostServiceOrderApplyModifyResponse {
  6655 + /**
  6656 + * @description
  6657 + * OK
  6658 + */
  6659 + 200: ServerResult;
  6660 + /**
  6661 + * @description
  6662 + * Created
  6663 + */
  6664 + 201: any;
  6665 + /**
  6666 + * @description
  6667 + * Unauthorized
  6668 + */
  6669 + 401: any;
  6670 + /**
  6671 + * @description
  6672 + * Forbidden
  6673 + */
  6674 + 403: any;
  6675 + /**
  6676 + * @description
  6677 + * Not Found
  6678 + */
  6679 + 404: any;
  6680 +}
  6681 +
  6682 +export type PostServiceOrderApplyModifyResponseSuccess =
  6683 + PostServiceOrderApplyModifyResponse[200];
  6684 +/**
  6685 + * @description
  6686 + * 申请修改订单信息
  6687 + * @tags 内部订单
  6688 + * @produces *
  6689 + * @consumes application/json
  6690 + */
  6691 +export const postServiceOrderApplyModify = /* #__PURE__ */ (() => {
  6692 + const method = 'post';
  6693 + const url = '/service/order/applyModify';
  6694 + function request(
  6695 + option: PostServiceOrderApplyModifyOption,
  6696 + ): Promise<PostServiceOrderApplyModifyResponseSuccess> {
  6697 + return requester(request.url, {
  6698 + method: request.method,
  6699 + ...option,
  6700 + }) as unknown as Promise<PostServiceOrderApplyModifyResponseSuccess>;
  6701 + }
  6702 +
  6703 + /** http method */
  6704 + request.method = method;
  6705 + /** request url */
  6706 + request.url = url;
  6707 + return request;
  6708 +})();
  6709 +
6639 /** @description request parameter type for postServiceOrderAudit */ 6710 /** @description request parameter type for postServiceOrderAudit */
6640 export interface PostServiceOrderAuditOption { 6711 export interface PostServiceOrderAuditOption {
6641 /** 6712 /**