建工内容整合过的一版
This commit is contained in:
parent
323f2add27
commit
5a7f174613
@ -19,6 +19,8 @@ import session from "@/utils/session";
|
|||||||
import { handleGetCASHWORKERList } from "@/pages/DataVerification/list/service";
|
import { handleGetCASHWORKERList } from "@/pages/DataVerification/list/service";
|
||||||
import { handleNewGetSERVERPARTDetail } from "@/pages/newDataAnalysis/service";
|
import { handleNewGetSERVERPARTDetail } from "@/pages/newDataAnalysis/service";
|
||||||
import { handleGetCASHWORKERDetail, handleGetServerpartShopList, handleSynchroCASHWORKER } from "@/pages/newDataAnalysis/serviceAreaPersonnel/service";
|
import { handleGetCASHWORKERDetail, handleGetServerpartShopList, handleSynchroCASHWORKER } from "@/pages/newDataAnalysis/serviceAreaPersonnel/service";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
|
||||||
|
|
||||||
const servicePartAudit: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const servicePartAudit: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -288,46 +290,79 @@ const servicePartAudit: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
}
|
}
|
||||||
const data = await handleGetCASHWORKERList(req)
|
const data = await handleGetCASHWORKERList(req)
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
console.log('data', data);
|
// console.log('data', data);
|
||||||
let res = JSON.parse(JSON.stringify(data))
|
// let res = JSON.parse(JSON.stringify(data))
|
||||||
let list: any = []
|
// let list: any = []
|
||||||
data.forEach((item: any) => {
|
// data.forEach((item: any) => {
|
||||||
item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
// item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
||||||
item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
// item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
||||||
list.push(item)
|
// list.push(item)
|
||||||
})
|
// })
|
||||||
setReqDetailList(list)
|
// setReqDetailList(list)
|
||||||
return { data: res, success: true }
|
let CASHWORKER_TYPEObj: any = {
|
||||||
|
"1": "收银员",
|
||||||
|
"2": "管理员",
|
||||||
|
"20": "店长",
|
||||||
|
"25": "稽核人员",
|
||||||
|
}
|
||||||
|
|
||||||
|
let WORKER_VALIDObj: any = {
|
||||||
|
'1': "有效",
|
||||||
|
'0': "无效"
|
||||||
|
}
|
||||||
|
|
||||||
|
let fieldData: any = []
|
||||||
|
let enumList: any = [
|
||||||
|
"CASHWORKER_TYPE",
|
||||||
|
"WORKER_VALID",
|
||||||
|
"BUSINESS_STATE"
|
||||||
|
]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data)), fieldData, enumList, [CASHWORKER_TYPEObj, WORKER_VALIDObj], [])
|
||||||
|
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
|
return { data: data, success: true }
|
||||||
}
|
}
|
||||||
setReqDetailList([])
|
setReqDetailList([])
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-servicePartAudit"
|
// table="table-to-xls-servicePartAudit"
|
||||||
filename={`服务区人员管理统计`}
|
// filename={`服务区人员管理统计`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`服务区稽核人员管理统计`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -17,6 +17,8 @@ import session from "@/utils/session";
|
|||||||
import moment from 'moment'
|
import moment from 'moment'
|
||||||
import Detail from "./component/detail";
|
import Detail from "./component/detail";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
|
||||||
|
|
||||||
const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -39,6 +41,7 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
})
|
})
|
||||||
const businessTypeObj = session.get('BUSINESSTYPEObj')
|
const businessTypeObj = session.get('BUSINESSTYPEObj')
|
||||||
const businessStateObj = session.get('businessStateObj')
|
const businessStateObj = session.get('businessStateObj')
|
||||||
|
const SHOPTRADEObj = session.get('SHOPTRADEObj')
|
||||||
// 树相关的属性和方法
|
// 树相关的属性和方法
|
||||||
const [selectedId, setSelectedId] = useState<string>()
|
const [selectedId, setSelectedId] = useState<string>()
|
||||||
// 导出的加载效果
|
// 导出的加载效果
|
||||||
@ -290,6 +293,16 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
const data = await handleGetServerPartShopNewList(req)
|
const data = await handleGetServerPartShopNewList(req)
|
||||||
console.log('data', data);
|
console.log('data', data);
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
|
|
||||||
|
let fieldData: any = []
|
||||||
|
let enumList: any = [
|
||||||
|
"SHOPTRADE",
|
||||||
|
"BUSINESS_TYPE",
|
||||||
|
"BUSINESS_STATE"
|
||||||
|
]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data)), fieldData, enumList, [SHOPTRADEObj, businessTypeObj, businessStateObj], [])
|
||||||
|
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
return { data, success: true }
|
return { data, success: true }
|
||||||
}
|
}
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
@ -297,30 +310,42 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-serviceArea"
|
// table="table-to-xls-serviceArea"
|
||||||
filename={`单品销售排行统计${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
// filename={`单品销售排行统计${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`服务区门店统计表`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -18,6 +18,8 @@ import { handleGetCASHWORKERDetail, handleGetCASHWORKERList, handleGetServerpart
|
|||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
import session from "@/utils/session";
|
import session from "@/utils/session";
|
||||||
import { handleNewGetSERVERPARTDetail } from "../service";
|
import { handleNewGetSERVERPARTDetail } from "../service";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
|
||||||
|
|
||||||
const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -289,46 +291,79 @@ const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
|||||||
}
|
}
|
||||||
const data = await handleGetCASHWORKERList(req)
|
const data = await handleGetCASHWORKERList(req)
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
console.log('data', data);
|
// console.log('data', data);
|
||||||
let res = JSON.parse(JSON.stringify(data))
|
// let res = JSON.parse(JSON.stringify(data))
|
||||||
let list: any = []
|
// let list: any = []
|
||||||
data.forEach((item: any) => {
|
// data.forEach((item: any) => {
|
||||||
item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
// item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
||||||
item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
// item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
||||||
list.push(item)
|
// list.push(item)
|
||||||
})
|
// })
|
||||||
setReqDetailList(list)
|
let CASHWORKER_TYPEObj: any = {
|
||||||
return { data: res, success: true }
|
"1": "收银员",
|
||||||
|
"2": "管理员",
|
||||||
|
"20": "店长",
|
||||||
|
"25": "稽核人员",
|
||||||
|
}
|
||||||
|
|
||||||
|
let WORKER_VALIDObj: any = {
|
||||||
|
'1': "有效",
|
||||||
|
'0': "无效"
|
||||||
|
}
|
||||||
|
|
||||||
|
let fieldData: any = []
|
||||||
|
let enumList: any = [
|
||||||
|
"CASHWORKER_TYPE",
|
||||||
|
"WORKER_VALID",
|
||||||
|
"BUSINESS_STATE"
|
||||||
|
]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data)), fieldData, enumList, [CASHWORKER_TYPEObj, WORKER_VALIDObj], [])
|
||||||
|
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
|
return { data: data, success: true }
|
||||||
}
|
}
|
||||||
setReqDetailList([])
|
setReqDetailList([])
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-serviceAreaPersonnel"
|
// table="table-to-xls-serviceAreaPersonnel"
|
||||||
filename={`服务区人员管理统计`}
|
// filename={`服务区人员管理统计`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`服务区人员管理统计`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -22,6 +22,9 @@ import SubMenu from "antd/lib/menu/SubMenu";
|
|||||||
import moment from "moment/moment";
|
import moment from "moment/moment";
|
||||||
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalAmount/service";
|
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalAmount/service";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
import { handleGetListObj } from "@/utils/utils";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
|
||||||
const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
const { currentUser } = props
|
const { currentUser } = props
|
||||||
@ -50,7 +53,7 @@ const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
const [defaultValue, setDefaultValue] = useState<any>()
|
const [defaultValue, setDefaultValue] = useState<any>()
|
||||||
|
|
||||||
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
||||||
|
const [ABNORMALITY_TYPEObj, setABNORMALITY_TYPEObj] = useState<any>()
|
||||||
|
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
@ -86,8 +89,9 @@ const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
dataIndex: 'ABNORMALITY_TYPE',
|
dataIndex: 'ABNORMALITY_TYPE',
|
||||||
valueType: 'treeSelect',
|
valueType: 'treeSelect',
|
||||||
request: async () => {
|
request: async () => {
|
||||||
console.log('2')
|
|
||||||
const data = await getFieldEnumTreeNoSession({ FieldExplainField: 'EXCEPTION_TYPE', FieldEnumPID: 13854, FieldEnumStatus: true });
|
const data = await getFieldEnumTreeNoSession({ FieldExplainField: 'EXCEPTION_TYPE', FieldEnumPID: 13854, FieldEnumStatus: true });
|
||||||
|
let obj: any = handleGetListObj(data)
|
||||||
|
setABNORMALITY_TYPEObj(obj)
|
||||||
return data
|
return data
|
||||||
},
|
},
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
@ -349,37 +353,59 @@ const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
const data = await handleGetYSABNORMALITYList(req)
|
const data = await handleGetYSABNORMALITYList(req)
|
||||||
console.log('data', data)
|
console.log('data', data)
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
setReqDetailList(data)
|
let fieldData: any = [
|
||||||
|
"COMMOTITY_COUNT",
|
||||||
|
"TOTALAMOUNT"
|
||||||
|
]
|
||||||
|
|
||||||
|
let enumList: any = [
|
||||||
|
"ABNORMALITY_TYPE",
|
||||||
|
]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data)), fieldData, enumList, [ABNORMALITY_TYPEObj], [])
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
|
// setReqDetailList(data)
|
||||||
return { data, success: true }
|
return { data, success: true }
|
||||||
}
|
}
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-abnormalAmount"
|
// table="table-to-xls-abnormalAmount"
|
||||||
filename={`销售金额异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
// filename={`销售金额异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`销售金额异常${searchParams?.Start_Date}-${searchParams?.End_Date}`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -22,6 +22,9 @@ import SubMenu from "antd/lib/menu/SubMenu";
|
|||||||
import moment from "moment/moment";
|
import moment from "moment/moment";
|
||||||
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalExamine/service";
|
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalExamine/service";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
import { handleGetListObj } from "@/utils/utils";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
|
||||||
const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
const { currentUser } = props
|
const { currentUser } = props
|
||||||
@ -47,6 +50,7 @@ const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
// 是否显示打印的表格
|
// 是否显示打印的表格
|
||||||
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
||||||
const [currenMenu, setCurrenMenu] = useState<any>(); // 当前选中左侧菜单的服务区节点
|
const [currenMenu, setCurrenMenu] = useState<any>(); // 当前选中左侧菜单的服务区节点
|
||||||
|
const [ABNORMALITY_TYPEObj, setABNORMALITY_TYPEObj] = useState<any>()
|
||||||
|
|
||||||
|
|
||||||
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
||||||
@ -107,6 +111,8 @@ const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
valueType: 'treeSelect',
|
valueType: 'treeSelect',
|
||||||
request: async () => {
|
request: async () => {
|
||||||
const data: any = await getFieldEnumTreeNoSession({ FieldExplainField: 'ABNORMALITY_TYPE', FieldEnumStatus: true });
|
const data: any = await getFieldEnumTreeNoSession({ FieldExplainField: 'ABNORMALITY_TYPE', FieldEnumStatus: true });
|
||||||
|
let obj: any = handleGetListObj(data)
|
||||||
|
setABNORMALITY_TYPEObj(obj)
|
||||||
return data
|
return data
|
||||||
},
|
},
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
@ -354,37 +360,59 @@ const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
setSearchParams(params)
|
setSearchParams(params)
|
||||||
const data = await handleGetYSABNORMALITYList(req)
|
const data = await handleGetYSABNORMALITYList(req)
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
setReqDetailList(data)
|
let fieldData: any = [
|
||||||
|
"COMMOTITY_COUNT",
|
||||||
|
"TOTALAMOUNT"
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
let enumList: any = [
|
||||||
|
"ABNORMALITY_TYPE",
|
||||||
|
]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data)), fieldData, enumList, [ABNORMALITY_TYPEObj], [])
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
return { data, success: true }
|
return { data, success: true }
|
||||||
}
|
}
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-abnormalExamine"
|
// table="table-to-xls-abnormalExamine"
|
||||||
filename={`稽核联动查询表${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
// filename={`稽核联动查询表${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`稽核联动查询表${searchParams?.Start_Date}-${searchParams?.End_Date}`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -21,6 +21,9 @@ import SubMenu from "antd/lib/menu/SubMenu";
|
|||||||
import moment from "moment/moment";
|
import moment from "moment/moment";
|
||||||
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalSale/service";
|
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalSale/service";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
import { handleGetListObj } from "@/utils/utils";
|
||||||
|
|
||||||
const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
const { currentUser } = props
|
const { currentUser } = props
|
||||||
@ -46,7 +49,7 @@ const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
// 是否显示打印的表格
|
// 是否显示打印的表格
|
||||||
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
||||||
const [currenMenu, setCurrenMenu] = useState<any>(); // 当前选中左侧菜单的服务区节点
|
const [currenMenu, setCurrenMenu] = useState<any>(); // 当前选中左侧菜单的服务区节点
|
||||||
|
const [ABNORMALITY_TYPEObj, setABNORMALITY_TYPEObj] = useState<any>()
|
||||||
|
|
||||||
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
||||||
|
|
||||||
@ -89,6 +92,8 @@ const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
request: async () => {
|
request: async () => {
|
||||||
const data = await getFieldEnumTreeNoSession({ FieldExplainField: 'EXCEPTION_TYPE', FieldEnumPID: 13852, FieldEnumStatus: true });
|
const data = await getFieldEnumTreeNoSession({ FieldExplainField: 'EXCEPTION_TYPE', FieldEnumPID: 13852, FieldEnumStatus: true });
|
||||||
console.log('data', data)
|
console.log('data', data)
|
||||||
|
let obj: any = handleGetListObj(data)
|
||||||
|
setABNORMALITY_TYPEObj(obj)
|
||||||
return data
|
return data
|
||||||
},
|
},
|
||||||
fieldProps: {
|
fieldProps: {
|
||||||
@ -348,37 +353,60 @@ const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
const data = await handleGetYSABNORMALITYList(req)
|
const data = await handleGetYSABNORMALITYList(req)
|
||||||
console.log('data', data)
|
console.log('data', data)
|
||||||
if (data && data.length > 0) {
|
if (data && data.length > 0) {
|
||||||
setReqDetailList(data)
|
|
||||||
|
|
||||||
|
let fieldData: any = [
|
||||||
|
"COMMOTITY_COUNT",
|
||||||
|
"TOTALAMOUNT"
|
||||||
|
]
|
||||||
|
|
||||||
|
let enumList: any = [
|
||||||
|
"ABNORMALITY_TYPE",
|
||||||
|
]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data)), fieldData, enumList, [ABNORMALITY_TYPEObj], [])
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
return { data, success: true }
|
return { data, success: true }
|
||||||
}
|
}
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-abnormalSale"
|
// table="table-to-xls-abnormalSale"
|
||||||
filename={`销售过程异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
// filename={`销售过程异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`销售过程异常${searchParams?.Start_Date}-${searchParams?.End_Date}`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -74,10 +74,6 @@ const AddShopModal = ({ parentRow, onShow, currentShopRow, shopData, handleClose
|
|||||||
onOk={() => {
|
onOk={() => {
|
||||||
modalShopFormRef.current?.validateFields().then(async (res: any) => {
|
modalShopFormRef.current?.validateFields().then(async (res: any) => {
|
||||||
let oldData: any = shopData && shopData.length > 0 ? JSON.parse(JSON.stringify(shopData)) : []
|
let oldData: any = shopData && shopData.length > 0 ? JSON.parse(JSON.stringify(shopData)) : []
|
||||||
|
|
||||||
console.log('oldDataoldDataoldData', oldData);
|
|
||||||
console.log('resresresresresres', res);
|
|
||||||
|
|
||||||
let newList: any = []
|
let newList: any = []
|
||||||
// 判断当前的里面有没有一样的
|
// 判断当前的里面有没有一样的
|
||||||
if (oldData && oldData.length > 0) {
|
if (oldData && oldData.length > 0) {
|
||||||
@ -100,8 +96,6 @@ const AddShopModal = ({ parentRow, onShow, currentShopRow, shopData, handleClose
|
|||||||
} else {
|
} else {
|
||||||
newList.push(res)
|
newList.push(res)
|
||||||
}
|
}
|
||||||
console.log('newList', newList);
|
|
||||||
|
|
||||||
// 如果进入到了添加商品 里面选了服务区 会 带给外面的表单
|
// 如果进入到了添加商品 里面选了服务区 会 带给外面的表单
|
||||||
if (res.SERVERPART_ID) {
|
if (res.SERVERPART_ID) {
|
||||||
modalFormRef.current?.setFieldsValue({
|
modalFormRef.current?.setFieldsValue({
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { connect } from "umi";
|
import { connect } from "umi";
|
||||||
import type { ConnectState } from "@/models/connect";
|
import type { ConnectState } from "@/models/connect";
|
||||||
import { Button, Card, Col, FormInstance, message, Modal, Popconfirm, Row, Space, Steps, Tooltip } from "antd";
|
import { Button, Card, Col, FormInstance, Input, message, Modal, Popconfirm, Row, Space, Steps, Tooltip } from "antd";
|
||||||
import { useRef, useState } from "react";
|
import { useImperativeHandle, useRef, useState } from "react";
|
||||||
import ProForm, { ProFormSelect, ProFormTextArea } from "@ant-design/pro-form";
|
import ProForm, { ProFormSelect, ProFormTextArea } from "@ant-design/pro-form";
|
||||||
import { handleApproveCommodityProInst, handleCreateCommodityProInst, handleDeleteCOMMODITY_RUNNING, handleGetApprovalCommodityList, handleGetBUSINESSAPPROVALDetail, handleGetCOMMODITYRUNNINGList, handleReapplyCommodityProInst, handleRejectCommodityProInst } from "../../ProductApprovalProcess/service";
|
import { handleApproveCommodityProInst, handleCreateCommodityProInst, handleDeleteCOMMODITY_RUNNING, handleGetApprovalCommodityList, handleGetBUSINESSAPPROVALDetail, handleGetCOMMODITYRUNNINGList, handleReapplyCommodityProInst, handleRejectCommodityProInst } from "../../ProductApprovalProcess/service";
|
||||||
import session from "@/utils/session";
|
import session from "@/utils/session";
|
||||||
@ -22,8 +22,15 @@ type DetailProps = {
|
|||||||
ApprovalType: any // 审批还是驳回的判断
|
ApprovalType: any // 审批还是驳回的判断
|
||||||
setCurrentShopRow: any // 当前的商品行
|
setCurrentShopRow: any // 当前的商品行
|
||||||
setShowAddShopModal: any // 新增商品的悬浮框
|
setShowAddShopModal: any // 新增商品的悬浮框
|
||||||
|
setShowEditShopModal?: any // 打开编辑 调价的时候可以出现
|
||||||
|
setSelectRowList?: any // 关于选择行 调价的时候可以出现
|
||||||
|
setSelectedOrderRowKeys?: any// 关于选择行 调价的时候可以出现
|
||||||
|
onRef?: any // 子组件实例
|
||||||
|
setEditSelectRow?: any // 编辑的商品行 修改信息的时候才会有
|
||||||
|
setEditShopModal?: any // 打开编辑商品的悬浮框 修改信息的时候 才会有
|
||||||
}
|
}
|
||||||
const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, currentUser, showDetailType, InitiateApplication, shopData, handleChangeShopData, ApprovalType, setCurrentShopRow, setShowAddShopModal }: DetailProps) => {
|
const NewApplicationModal = ({ modalType, parentRow, tableRef, onShow, handleCencel, currentUser, showDetailType, InitiateApplication, shopData, handleChangeShopData,
|
||||||
|
ApprovalType, setCurrentShopRow, setShowAddShopModal, setShowEditShopModal, setSelectRowList, setSelectedOrderRowKeys, onRef, setEditSelectRow, setEditShopModal }: DetailProps) => {
|
||||||
const { Step } = Steps
|
const { Step } = Steps
|
||||||
|
|
||||||
const modalApproveFormRef = useRef<FormInstance>();
|
const modalApproveFormRef = useRef<FormInstance>();
|
||||||
@ -171,13 +178,320 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
const modalColumnsPrice: any = [
|
||||||
|
{
|
||||||
|
title: "序号",
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "index",
|
||||||
|
valueType: "index",
|
||||||
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "名称",
|
||||||
|
width: 300,
|
||||||
|
dataIndex: "COMMODITY_NAME",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return record?.COMMODITY_NAME ? <a onClick={() => {
|
||||||
|
setCurrentShopRow(record)
|
||||||
|
setShowEditShopModal(true)
|
||||||
|
}}>
|
||||||
|
{record?.COMMODITY_NAME}
|
||||||
|
</a> : "-"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "条码",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "COMMODITY_BARCODE",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "原价",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "COMMODITY_CURRPRICE",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "现价",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "newPrice",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return <Input value={record.newPrice} disabled={parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID)} onChange={(e: any) => {
|
||||||
|
let oldData: any = JSON.parse(JSON.stringify(shopData))
|
||||||
|
let list: any = []
|
||||||
|
oldData.forEach((item: any) => {
|
||||||
|
if (item.COMMODITY_ID === record?.COMMODITY_ID) {
|
||||||
|
item.newPrice = e.target.value
|
||||||
|
}
|
||||||
|
list.push(item)
|
||||||
|
})
|
||||||
|
if (handleChangeShopData) {
|
||||||
|
handleChangeShopData(list)
|
||||||
|
}
|
||||||
|
// setShopData(list)
|
||||||
|
}} />
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "单位",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "COMMODITY_UNIT",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'option',
|
||||||
|
title: '操作',
|
||||||
|
valueType: 'option',
|
||||||
|
align: 'center',
|
||||||
|
hideInSearch: true,
|
||||||
|
width: 180,
|
||||||
|
fixed: "right",
|
||||||
|
ellipsis: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return (
|
||||||
|
<Space>
|
||||||
|
{
|
||||||
|
parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID) ? '' :
|
||||||
|
<>
|
||||||
|
<Popconfirm
|
||||||
|
title="确认删除该商品管理列表信息吗?"
|
||||||
|
onConfirm={async () => {
|
||||||
|
|
||||||
|
if (parentRow?.BusinessApproval_ID) {
|
||||||
|
// 申请回到发起时候的真删
|
||||||
|
const req: any = {
|
||||||
|
COMMODITY_RUNNINGId: record?.COMMODITY_ID
|
||||||
|
}
|
||||||
|
const data = await handleDeleteCOMMODITY_RUNNING(req)
|
||||||
|
console.log('datadatadatadata', data);
|
||||||
|
if (tableRef) {
|
||||||
|
tableRef.current?.reload()
|
||||||
|
}
|
||||||
|
// 实现直接删除的效果
|
||||||
|
console.log('record', record);
|
||||||
|
let oldData: any = JSON.parse(JSON.stringify(shopData))
|
||||||
|
let list: any = []
|
||||||
|
let rowKeyList: number[] = []
|
||||||
|
oldData.forEach((item: any) => {
|
||||||
|
if (item.COMMODITY_ID !== record?.COMMODITY_ID) {
|
||||||
|
list.push(item)
|
||||||
|
rowKeyList.push(item.COMMODITY_ID)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// setShopData(list)
|
||||||
|
if (handleChangeShopData) {
|
||||||
|
handleChangeShopData(list)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (setSelectRowList) {
|
||||||
|
setSelectRowList(list)
|
||||||
|
}
|
||||||
|
if (setSelectedOrderRowKeys) {
|
||||||
|
setSelectedOrderRowKeys(rowKeyList)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log('record', record);
|
||||||
|
let oldData: any = JSON.parse(JSON.stringify(shopData))
|
||||||
|
let list: any = []
|
||||||
|
let rowKeyList: number[] = []
|
||||||
|
oldData.forEach((item: any) => {
|
||||||
|
if (item.COMMODITY_ID !== record?.COMMODITY_ID) {
|
||||||
|
list.push(item)
|
||||||
|
rowKeyList.push(item.COMMODITY_ID)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (handleChangeShopData) {
|
||||||
|
handleChangeShopData(list)
|
||||||
|
}
|
||||||
|
if (setSelectRowList) {
|
||||||
|
setSelectRowList(list)
|
||||||
|
}
|
||||||
|
if (setSelectedOrderRowKeys) {
|
||||||
|
setSelectedOrderRowKeys(rowKeyList)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<a>删除</a>
|
||||||
|
</Popconfirm>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const modalColumnsInfo: any = [
|
||||||
|
{
|
||||||
|
title: "序号",
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "index",
|
||||||
|
valueType: "index",
|
||||||
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "名称",
|
||||||
|
width: 300,
|
||||||
|
dataIndex: "COMMODITY_NAME",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
render: (_, record) => {
|
||||||
|
return record?.COMMODITY_NAME ? <a onClick={() => {
|
||||||
|
let obj: any = {}
|
||||||
|
if (shopData && shopData.length > 0) {
|
||||||
|
obj = shopData.filter((item: any) => item.COMMODITY_ID === record?.COMMODITY_ID)[0]
|
||||||
|
}
|
||||||
|
setEditSelectRow(obj)
|
||||||
|
setEditShopModal(true)
|
||||||
|
}}>
|
||||||
|
{record?.COMMODITY_NAME}
|
||||||
|
</a> : "-"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "条码",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "COMMODITY_BARCODE",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "零售价",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "COMMODITY_RETAILPRICE",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "规格",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "COMMODITY_RULE",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "单位",
|
||||||
|
width: 150,
|
||||||
|
dataIndex: "COMMODITY_UNIT",
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
dataIndex: 'option',
|
||||||
|
title: '操作',
|
||||||
|
valueType: 'option',
|
||||||
|
align: 'center',
|
||||||
|
hideInSearch: true,
|
||||||
|
width: 120,
|
||||||
|
fixed: "right",
|
||||||
|
ellipsis: true,
|
||||||
|
render: (_, record) => {
|
||||||
|
return (
|
||||||
|
<Space>
|
||||||
|
{
|
||||||
|
parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID) ? '' :
|
||||||
|
<>
|
||||||
|
<a
|
||||||
|
onClick={() => {
|
||||||
|
let obj: any = {}
|
||||||
|
if (shopData && shopData.length > 0) {
|
||||||
|
obj = shopData.filter((item: any) => item.COMMODITY_ID === record?.COMMODITY_ID)[0]
|
||||||
|
}
|
||||||
|
setEditSelectRow(obj)
|
||||||
|
setEditShopModal(true)
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
编辑
|
||||||
|
</a>
|
||||||
|
<Popconfirm
|
||||||
|
title="确认删除该商品管理列表信息吗?"
|
||||||
|
onConfirm={async () => {
|
||||||
|
if (parentRow?.BusinessApproval_ID) {
|
||||||
|
// 申请回到发起时候的真删
|
||||||
|
const req: any = {
|
||||||
|
COMMODITY_RUNNINGId: record?.COMMODITY_ID
|
||||||
|
}
|
||||||
|
const data = await handleDeleteCOMMODITY_RUNNING(req)
|
||||||
|
console.log('datadatadatadata', data);
|
||||||
|
parentRow.current?.reload()
|
||||||
|
// 实现直接删除的效果
|
||||||
|
let oldData: any = JSON.parse(JSON.stringify(shopData))
|
||||||
|
let list: any = []
|
||||||
|
oldData.forEach((item: any) => {
|
||||||
|
if (item.COMMODITY_ID !== record?.COMMODITY_ID) {
|
||||||
|
list.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// setShopData(list)
|
||||||
|
if (handleChangeShopData) {
|
||||||
|
handleChangeShopData(list)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 还未发起申请的假删
|
||||||
|
console.log('record', record);
|
||||||
|
let oldData: any = JSON.parse(JSON.stringify(shopData))
|
||||||
|
let list: any = []
|
||||||
|
oldData.forEach((item: any) => {
|
||||||
|
if (item.ADDTIME !== record?.ADDTIME) {
|
||||||
|
list.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
// setShopData(list)
|
||||||
|
if (handleChangeShopData) {
|
||||||
|
handleChangeShopData(list)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<a>删除</a>
|
||||||
|
</Popconfirm>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
parentRow?.BusinessProcess_State === 9000 ?
|
||||||
|
<a onClick={() => {
|
||||||
|
// setCurrentShopRow(record)
|
||||||
|
// setShowAddShopModal(true)
|
||||||
|
setEditSelectRow(record)
|
||||||
|
setEditShopModal(true)
|
||||||
|
}}>详情</a>
|
||||||
|
: ''
|
||||||
|
}
|
||||||
|
</Space>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
useImperativeHandle(onRef, () => ({
|
||||||
|
modalFormRef
|
||||||
|
}));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
{/* 新增申请的悬浮框 */}
|
{/* 新增申请的悬浮框 */}
|
||||||
<Modal
|
<Modal
|
||||||
className="addProductModal"
|
className="addProductModal"
|
||||||
width={"70%"}
|
width={"70%"}
|
||||||
title={parentRow?.BusinessApproval_ID ? "商品申请详情" : "新增商品申请"}
|
title={modalType === 1 ? parentRow?.BusinessApproval_ID ? "商品申请详情" : "新增商品申请" :
|
||||||
|
modalType === 2 ? parentRow?.BusinessApproval_ID ? "商品调价申请详情" : "新增商品调价申请" :
|
||||||
|
modalType === 3 ? parentRow?.BusinessApproval_ID ? "商品信息修改详情" : "新增商品信息修改申请" : ''
|
||||||
|
}
|
||||||
open={onShow}
|
open={onShow}
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
@ -199,14 +513,41 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
modalApproveFormRef?.current?.submit()
|
modalApproveFormRef?.current?.submit()
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
if (shopData && shopData.length > 0) {
|
if (modalType === 1) {
|
||||||
|
if (shopData && shopData.length > 0) {
|
||||||
|
modalFormRef?.current?.validateFields().then(() => {
|
||||||
|
modalFormRef?.current?.submit()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
message.error("请选选择申请的商品!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else if (modalType === 2) {
|
||||||
|
// 判断表格里面的现价 是不是都已经输入了
|
||||||
|
let allRight: boolean = true
|
||||||
|
if (shopData && shopData.length > 0) {
|
||||||
|
shopData.forEach((item: any) => {
|
||||||
|
if (!item.newPrice) {
|
||||||
|
allRight = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
message.error("请选选择申请的商品!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!allRight) {
|
||||||
|
message.error("请先完善表格数据!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// formRef?.current?.validateFields().then(() => {
|
||||||
|
modalFormRef?.current?.submit()
|
||||||
|
// })
|
||||||
|
} else if (modalType === 3) {
|
||||||
modalFormRef?.current?.validateFields().then(() => {
|
modalFormRef?.current?.validateFields().then(() => {
|
||||||
modalFormRef?.current?.submit()
|
modalFormRef?.current?.submit()
|
||||||
})
|
})
|
||||||
} else {
|
|
||||||
message.error("请选选择申请的商品!")
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}}>确认</Button>
|
}}>确认</Button>
|
||||||
</div>}
|
</div>}
|
||||||
@ -216,11 +557,38 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
modalApproveFormRef?.current?.submit()
|
modalApproveFormRef?.current?.submit()
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
modalFormRef?.current?.validateFields().then(() => {
|
if (modalType === 1) {
|
||||||
|
modalFormRef?.current?.validateFields().then(() => {
|
||||||
|
modalFormRef?.current?.submit()
|
||||||
|
})
|
||||||
|
} else if (modalType === 2) {
|
||||||
|
// 判断表格里面的现价 是不是都已经输入了
|
||||||
|
let allRight: boolean = true
|
||||||
|
if (shopData && shopData.length > 0) {
|
||||||
|
shopData.forEach((item: any) => {
|
||||||
|
if (!item.newPrice) {
|
||||||
|
allRight = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (!allRight) {
|
||||||
|
message.error("请先完善表格数据!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// formRef?.current?.validateFields().then(() => {
|
||||||
modalFormRef?.current?.submit()
|
modalFormRef?.current?.submit()
|
||||||
})
|
// })
|
||||||
|
} else if (modalType === 3) {
|
||||||
|
modalFormRef?.current?.validateFields().then(() => {
|
||||||
|
modalFormRef?.current?.submit()
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
bodyStyle={{
|
||||||
|
height: '700px', // 你可以根据需要调整高度
|
||||||
|
overflowY: 'auto',
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<ProForm
|
<ProForm
|
||||||
// layout={'horizontal'}
|
// layout={'horizontal'}
|
||||||
@ -258,10 +626,27 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
|
|
||||||
|
|
||||||
console.log('shopDatashopDatashopDatashopData', shopData);
|
console.log('shopDatashopDatashopDatashopData', shopData);
|
||||||
|
if (modalType === 1 || modalType === 3) {
|
||||||
// setShopData(shopData.Result_Data.List)
|
// setShopData(shopData.Result_Data.List)
|
||||||
if (handleChangeShopData) {
|
if (handleChangeShopData) {
|
||||||
handleChangeShopData(shopData.Result_Data.List)
|
handleChangeShopData(shopData.Result_Data.List)
|
||||||
|
}
|
||||||
|
} else if (modalType === 2) {
|
||||||
|
let shopList: any = shopData.Result_Data.List
|
||||||
|
let list: any = []
|
||||||
|
if (shopList && shopList.length > 0) {
|
||||||
|
shopList.forEach((item: any) => {
|
||||||
|
let obj: any = JSON.parse(JSON.stringify(item))
|
||||||
|
obj.newPrice = item.COMMODITY_CURRPRICE
|
||||||
|
obj.COMMODITY_RETAILPRICE = item.COMMODITY_ORIPRICE
|
||||||
|
obj.COMMODITY_CURRPRICE = item.COMMODITY_ORIPRICE
|
||||||
|
obj.COMMODITY_ORIPRICE = null
|
||||||
|
list.push(obj)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (handleChangeShopData) {
|
||||||
|
handleChangeShopData(list)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@ -276,27 +661,48 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
onFinish={async (res) => {
|
onFinish={async (res) => {
|
||||||
setConfirmLoading(true)
|
setConfirmLoading(true)
|
||||||
let data: any = {}
|
let data: any = {}
|
||||||
|
let list: any = []
|
||||||
|
if (modalType === 2) {
|
||||||
|
if (shopData && shopData.length > 0) {
|
||||||
|
shopData.forEach((item: any) => {
|
||||||
|
let obj: any = JSON.parse(JSON.stringify(item))
|
||||||
|
let oldPrice = JSON.parse(JSON.stringify(obj.COMMODITY_RETAILPRICE))
|
||||||
|
obj.COMMODITY_ORIPRICE = oldPrice
|
||||||
|
obj.COMMODITY_RETAILPRICE = item.newPrice
|
||||||
|
obj.COMMODITY_CURRPRICE = item.newPrice
|
||||||
|
list.push(obj)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
} else if (modalType === 3) {
|
||||||
|
if (shopData && shopData.length > 0) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
message.error('请选择要修改的商品!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (parentRow?.BusinessApproval_ID) {
|
if (parentRow?.BusinessApproval_ID) {
|
||||||
const req: any = {
|
const req: any = {
|
||||||
ProinstId: parentRow?.BusinessApproval_ID,
|
ProinstId: parentRow?.BusinessApproval_ID,
|
||||||
ProinstName: res.reasonForApplication,
|
ProinstName: res.reasonForApplication,
|
||||||
UserId: currentUser?.ID,
|
UserId: currentUser?.ID,
|
||||||
OperateType: "100100",
|
OperateType: modalType === 1 ? "100100" : modalType === 2 ? '100200' : modalType === 3 ? '100210' : '',
|
||||||
ServerpartId: res.ServerpartId,
|
ServerpartId: res.ServerpartId,
|
||||||
NextApproveStaffId: res.NextApproveStaffId,
|
NextApproveStaffId: res.NextApproveStaffId,
|
||||||
NextApproveState: 2000,
|
NextApproveState: 2000,
|
||||||
CommodityRunningList: shopData
|
CommodityRunningList: modalType === 1 ? shopData : modalType === 2 ? list : modalType === 3 ? shopData : '',
|
||||||
}
|
}
|
||||||
data = await handleReapplyCommodityProInst(req)
|
data = await handleReapplyCommodityProInst(req)
|
||||||
} else {
|
} else {
|
||||||
const req: any = {
|
const req: any = {
|
||||||
ProinstName: res.reasonForApplication,
|
ProinstName: res.reasonForApplication,
|
||||||
UserId: currentUser?.ID,
|
UserId: currentUser?.ID,
|
||||||
OperateType: "100100",
|
OperateType: modalType === 1 ? "100100" : modalType === 2 ? '100200' : modalType === 3 ? '100210' : '',
|
||||||
ServerpartId: res.ServerpartId,
|
ServerpartId: res.ServerpartId,
|
||||||
NextApproveStaffId: res.NextApproveStaffId,
|
NextApproveStaffId: res.NextApproveStaffId,
|
||||||
NextApproveState: 2000,
|
NextApproveState: 2000,
|
||||||
CommodityRunningList: shopData
|
CommodityRunningList: modalType === 1 ? shopData : modalType === 2 ? list : modalType === 3 ? shopData : '',
|
||||||
}
|
}
|
||||||
data = await handleCreateCommodityProInst(req)
|
data = await handleCreateCommodityProInst(req)
|
||||||
console.log('dsaidjaskda', data);
|
console.log('dsaidjaskda', data);
|
||||||
@ -369,7 +775,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
PROVINCE_CODE: currentUser?.ProvinceCode,
|
PROVINCE_CODE: currentUser?.ProvinceCode,
|
||||||
APPROVALROUTE_STATES: "",
|
APPROVALROUTE_STATES: "",
|
||||||
APPROVALROUTE_VALID: 1,
|
APPROVALROUTE_VALID: 1,
|
||||||
OPERATION_TYPES: "100100",
|
OPERATION_TYPES: modalType === 1 ? '100100' : modalType === 2 ? '100200' : modalType === 3 ? '100210' : ''
|
||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999
|
PageSize: 999999
|
||||||
@ -380,6 +786,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
// 下面的环节
|
// 下面的环节
|
||||||
let nextList: any = []
|
let nextList: any = []
|
||||||
console.log('dataState', dataState);
|
console.log('dataState', dataState);
|
||||||
|
console.log('parentRowparentRowparentRow', parentRow);
|
||||||
|
|
||||||
dataState.forEach((item: any) => {
|
dataState.forEach((item: any) => {
|
||||||
if (item.APPROVALROUTE_STATE === 2000) {
|
if (item.APPROVALROUTE_STATE === 2000) {
|
||||||
@ -413,6 +820,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
</Row>
|
</Row>
|
||||||
|
|
||||||
</ProForm>
|
</ProForm>
|
||||||
|
|
||||||
{
|
{
|
||||||
parentRow?.BusinessProcess_State > 1000 ?
|
parentRow?.BusinessProcess_State > 1000 ?
|
||||||
<ProForm
|
<ProForm
|
||||||
@ -425,7 +833,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
SearchParameter: {
|
SearchParameter: {
|
||||||
APPROVALROUTE_STATES: "",
|
APPROVALROUTE_STATES: "",
|
||||||
APPROVALROUTE_VALID: 1,
|
APPROVALROUTE_VALID: 1,
|
||||||
OPERATION_TYPES: "100100",
|
OPERATION_TYPES: modalType === 1 ? '100100' : modalType === 2 ? '100200' : modalType === 3 ? '100210' : ''
|
||||||
},
|
},
|
||||||
PageIndex: 1,
|
PageIndex: 1,
|
||||||
PageSize: 999999
|
PageSize: 999999
|
||||||
@ -605,17 +1013,41 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
|||||||
search={false}
|
search={false}
|
||||||
options={false}
|
options={false}
|
||||||
pagination={false}
|
pagination={false}
|
||||||
columns={modalColumns}
|
columns={modalType === 1 ? modalColumns : modalType === 2 ? modalColumnsPrice : modalType === 3 ? modalColumnsInfo : ''}
|
||||||
dataSource={shopData}
|
dataSource={shopData}
|
||||||
bordered
|
bordered
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: modalType === 1 ? [
|
||||||
parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID) ? '' : <Button type={"primary"} onClick={() => {
|
parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID) ? '' : <Button type={"primary"} onClick={() => {
|
||||||
setShowAddShopModal(true)
|
setShowAddShopModal(true)
|
||||||
}}>
|
}}>
|
||||||
新增商品
|
新增商品
|
||||||
</Button>
|
</Button>
|
||||||
]
|
] : modalType === 2 ? [
|
||||||
|
parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID) ? '' : <Button type={"primary"} onClick={() => {
|
||||||
|
// 判断服务区是否已选择
|
||||||
|
const values = modalFormRef.current?.getFieldsValue();
|
||||||
|
if (!values?.ServerpartId) {
|
||||||
|
message.error("请先选择服务区!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setShowAddShopModal(true);
|
||||||
|
}}>
|
||||||
|
选择商品
|
||||||
|
</Button>
|
||||||
|
] : modalType === 3 ? [
|
||||||
|
parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID) ? '' : <Button type={"primary"} onClick={() => {
|
||||||
|
// parentRow
|
||||||
|
const values = modalFormRef.current?.getFieldsValue();
|
||||||
|
if (!values?.ServerpartId) {
|
||||||
|
message.error("请先选择服务区!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setShowAddShopModal(true);
|
||||||
|
}}>
|
||||||
|
选择商品
|
||||||
|
</Button>
|
||||||
|
] : []
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,558 @@
|
|||||||
|
import { connect } from "umi";
|
||||||
|
import type { ConnectState } from "@/models/connect";
|
||||||
|
import { Button, Col, FormInstance, Modal, Row } from "antd";
|
||||||
|
import { useRef, useState } from "react";
|
||||||
|
import ProForm, { ProFormDateTimePicker, ProFormDigit, ProFormSelect, ProFormText, ProFormTextArea, ProFormTreeSelect } from "@ant-design/pro-form";
|
||||||
|
import { handleGetServerpartShopTrade } from "../../commodityInfo/service";
|
||||||
|
import moment from 'moment'
|
||||||
|
import { getServerpartTree } from "@/services/options";
|
||||||
|
import { handleGetUSERDEFINEDTYPEList } from "../../userDefinedType/service";
|
||||||
|
|
||||||
|
|
||||||
|
type DetailProps = {
|
||||||
|
modalType: any // 2 为调价 3 为信息修改
|
||||||
|
onShow: any // 是否显示
|
||||||
|
currentShopRow: any // 当前选中的商品信息
|
||||||
|
handleCencel: any // 关闭触发的方法
|
||||||
|
currentUser: any // 一些公参
|
||||||
|
parentRow: any // 当前最大的数据
|
||||||
|
treeView: any // 商品类别 数据
|
||||||
|
setShopData: any // 改变商品信息
|
||||||
|
shopData: any // 当前的商品信息
|
||||||
|
}
|
||||||
|
const EditShopModal = ({ modalType, onShow, currentShopRow, handleCencel, currentUser, parentRow, treeView, setShopData, shopData }: DetailProps) => {
|
||||||
|
const modalShopFormRef = useRef<FormInstance>();
|
||||||
|
// 商品业态的搜索框内容
|
||||||
|
const [commodityList, setCommodityList] = useState<any>([])
|
||||||
|
const [selectSERVERPARTID, setSelectSERVERPARTID] = useState<any>()
|
||||||
|
const [selectBUSINESSTYPE, setSelectBUSINESSTYPE] = useState<any>()
|
||||||
|
const [customClassList, setCustomClassList] = useState<any>()
|
||||||
|
|
||||||
|
// 请求自定义类的选择列表
|
||||||
|
const handleGetCustomClassList = async (id: any) => {
|
||||||
|
const req: any = {
|
||||||
|
SearchParameter: {
|
||||||
|
USERDEFINEDTYPE_STATE: 1,
|
||||||
|
SERVERPART_ID: id,
|
||||||
|
BUSINESSTYPE: selectBUSINESSTYPE
|
||||||
|
},
|
||||||
|
PageIndex: 1,
|
||||||
|
PageSize: 999999,
|
||||||
|
pageSize: 999999,
|
||||||
|
}
|
||||||
|
const data = await handleGetUSERDEFINEDTYPEList(req)
|
||||||
|
if (data && data.length > 0) {
|
||||||
|
const list: any = []
|
||||||
|
data.forEach((item: any) => {
|
||||||
|
list.push({ label: item.USERDEFINEDTYPE_NAME, value: item.USERDEFINEDTYPE_ID })
|
||||||
|
})
|
||||||
|
setCustomClassList(list)
|
||||||
|
}
|
||||||
|
console.log('data', data)
|
||||||
|
}
|
||||||
|
// 拿到对应的商品业态
|
||||||
|
const handleGetCommodity = async (id: any) => {
|
||||||
|
const req: any = {
|
||||||
|
ProvinceCode: currentUser?.ProvinceCode,
|
||||||
|
ServerpartId: id
|
||||||
|
}
|
||||||
|
const data = await handleGetServerpartShopTrade(req)
|
||||||
|
console.log('data', data)
|
||||||
|
setCommodityList(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<Modal
|
||||||
|
open={onShow}
|
||||||
|
width={1200}
|
||||||
|
wrapClassName={'shopModal'}
|
||||||
|
destroyOnClose
|
||||||
|
title={modalType === 3 ? '编辑商品' : currentShopRow?.COMMODITY_ID ? '编辑商品' : '添加商品'}
|
||||||
|
onOk={() => {
|
||||||
|
modalShopFormRef.current?.validateFields().then(async (res: any) => {
|
||||||
|
if (handleCencel) {
|
||||||
|
handleCencel()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
footer={modalType === 3 ? parentRow?.BusinessProcess_State > 1000 ? '' :
|
||||||
|
<div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'space-between', boxSizing: 'border-box', padding: '0 16px' }}>
|
||||||
|
{/* 审批过程中只能看 所以把底部隐藏 这样即使修改也没用 */}
|
||||||
|
<div></div>
|
||||||
|
<div>
|
||||||
|
<Button onClick={() => {
|
||||||
|
if (handleCencel) {
|
||||||
|
handleCencel()
|
||||||
|
}
|
||||||
|
}}>取消</Button>
|
||||||
|
<Button type={"primary"} onClick={() => {
|
||||||
|
modalShopFormRef.current?.validateFields().then(async (res: any) => {
|
||||||
|
let oldData: any = shopData && shopData.length > 0 ? JSON.parse(JSON.stringify(shopData)) : []
|
||||||
|
let newList: any = []
|
||||||
|
// 判断当前的里面有没有一样的
|
||||||
|
if (oldData && oldData.length > 0) {
|
||||||
|
oldData.forEach((item: any, index: number) => {
|
||||||
|
if (item.ADDTIME === res.ADDTIME) {
|
||||||
|
newList.push({
|
||||||
|
...item,
|
||||||
|
...res
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
newList.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
newList.push(res)
|
||||||
|
}
|
||||||
|
if (setShopData) {
|
||||||
|
setShopData(newList)
|
||||||
|
}
|
||||||
|
if (handleCencel) {
|
||||||
|
handleCencel()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}}>确认</Button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div> : false}
|
||||||
|
onCancel={() => {
|
||||||
|
if (handleCencel) {
|
||||||
|
handleCencel()
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
bodyStyle={{
|
||||||
|
height: '700px', // 你可以根据需要调整高度
|
||||||
|
overflowY: 'auto',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<ProForm
|
||||||
|
formRef={modalShopFormRef}
|
||||||
|
submitter={false}
|
||||||
|
initialValues={currentShopRow}
|
||||||
|
request={async () => {
|
||||||
|
// !currentShopRow?.COMMODITY_ID &&
|
||||||
|
if (currentShopRow?.SERVERPART_ID) {
|
||||||
|
await handleGetCommodity(currentShopRow?.SERVERPART_ID)
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
...currentShopRow,
|
||||||
|
BUSINESSTYPE: currentShopRow?.BUSINESSTYPE.toString(),
|
||||||
|
COMMODITY_GRADE: Number(currentShopRow?.COMMODITY_GRADE),
|
||||||
|
ADDTIME: moment(currentShopRow?.ADDTIME).format('YYYY-MM-DD HH:mm:ss')
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
disabled={parentRow?.BusinessProcess_State === 9000}
|
||||||
|
>
|
||||||
|
<div className={'modalTitle'}>商品基本信息</div>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col span={16}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_NAME"
|
||||||
|
label="商品名称"
|
||||||
|
placeholder="请输入商品名称"
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入商品名称',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
readonly={modalType === 2}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_EN"
|
||||||
|
label="拼音简码"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="SERVERPART_ID"
|
||||||
|
label="服务区名"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
request={async () => {
|
||||||
|
const data = await getServerpartTree(currentUser?.ProvinceCode, currentUser?.CityAuthority, true, true, true)
|
||||||
|
const list: any = []
|
||||||
|
if (data && data.length > 0) {
|
||||||
|
data.forEach((item: any) => {
|
||||||
|
if (item.children && item.children.length > 0) {
|
||||||
|
item.children.forEach((subItem: any) => {
|
||||||
|
list.push({ label: subItem.label, value: subItem.value })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
data.forEach((item: any) => {
|
||||||
|
list.push({ label: item.label, value: item.value })
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return list
|
||||||
|
}}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择服务区',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
fieldProps={{
|
||||||
|
onChange: async (e: any) => {
|
||||||
|
console.log('e', e)
|
||||||
|
if (e) {
|
||||||
|
setSelectSERVERPARTID(e)
|
||||||
|
await handleGetCommodity(e)
|
||||||
|
if (selectBUSINESSTYPE) {
|
||||||
|
await handleGetCustomClassList(e)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setSelectSERVERPARTID(undefined)
|
||||||
|
setCommodityList([])
|
||||||
|
setCustomClassList([])
|
||||||
|
}
|
||||||
|
},
|
||||||
|
showSearch: true, // 启用搜索框
|
||||||
|
filterOption: (inputValue: any, option: any) => {
|
||||||
|
// 通过 label 搜索
|
||||||
|
return option.label.toLowerCase().includes(inputValue.toLowerCase());
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="BUSINESSTYPE"
|
||||||
|
label="商品业态"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择商品业态',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
options={commodityList}
|
||||||
|
fieldProps={{
|
||||||
|
onChange: async (e: any) => {
|
||||||
|
if (e) {
|
||||||
|
setSelectBUSINESSTYPE(e)
|
||||||
|
if (selectSERVERPARTID) {
|
||||||
|
await handleGetCustomClassList(e)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
setSelectBUSINESSTYPE(undefined)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormTreeSelect
|
||||||
|
name="COMMODITY_TYPE"
|
||||||
|
label="商品类别"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择商品类别',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
request={() => {
|
||||||
|
return treeView
|
||||||
|
}}
|
||||||
|
fieldProps={{
|
||||||
|
treeDefaultExpandAll: true
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_BARCODE"
|
||||||
|
label="商品条码"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled={modalType === 2 ? parentRow : true}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_UNIT"
|
||||||
|
label="商品单位"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入商品单位',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_RULE"
|
||||||
|
label="商品规格"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入商品规格',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_HOTKEY"
|
||||||
|
label="快捷键值"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="COMMODITY_GRADE"
|
||||||
|
label="质量等级"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择质量等级',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
initialValue={1000}
|
||||||
|
options={[{ label: '一等品', value: 1000 }, { label: '二等品', value: 2000 }, { label: '三等品', value: 5000 }, { label: '优等品', value: 3000 }, { label: '合格品', value: 4000 },]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_ORI"
|
||||||
|
label="商品产地"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入商品产地',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="USERDEFINEDTYPE_ID"
|
||||||
|
label="自定义类"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
options={customClassList}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="PROVINCE_CODE"
|
||||||
|
label="省份编码"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled
|
||||||
|
// initialValue={currentUser?.ProvinceCode}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="COMMODITY_CODE"
|
||||||
|
label="商品编码"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
|
||||||
|
<Col span={24}>
|
||||||
|
<ProFormTextArea
|
||||||
|
name="COMMODITY_DESC"
|
||||||
|
label="商品说明"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<div className={'modalTitle'}>商品状态信息</div>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="CANSALE"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
label="是否销售"
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择是否销售',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
initialValue={1}
|
||||||
|
options={[{ label: '是', value: 1 }, { label: '否', value: 0 }]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="ISBULK"
|
||||||
|
label="是否散装"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择是否散装',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
initialValue={0}
|
||||||
|
options={[{ label: '是', value: 1 }, { label: '否', value: 0 }]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="METERINGMETHOD"
|
||||||
|
label="称重方式"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择称重方式',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
initialValue={1}
|
||||||
|
options={[{ label: '计价', value: 1 }, { label: '散装称重', value: 0 }]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
|
||||||
|
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="COMMODITY_STATE"
|
||||||
|
label="审核状态"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择审核状态',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
initialValue={1}
|
||||||
|
options={[{ label: '有效', value: 1 }, { label: '审核中', value: 2 }, { label: '无效', value: 0 }]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormText
|
||||||
|
name="ADDTIME"
|
||||||
|
label="添加时间"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled
|
||||||
|
initialValue={moment().format('YYYY-MM-DD HH:mm:ss')}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDateTimePicker
|
||||||
|
name="OPERATE_DATE"
|
||||||
|
label="生效时间"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
initialValue={moment().format('YYYY-MM-DD HH:mm:ss')}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<div className={'modalTitle'}>商品价格信息</div>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="COMMODITY_RETAILPRICE"
|
||||||
|
label="零售价"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled={modalType === 3}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入零售价',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="COMMODITY_CURRPRICE"
|
||||||
|
label="当前价格"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled={modalType === 3}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入当前价格',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="COMMODITY_MEMBERPRICE"
|
||||||
|
label="会员价"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled={modalType === 3}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="COMMODITY_PURCHASEPRICE"
|
||||||
|
label="进货价"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled={modalType === 3}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入进货价',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="COMMODITY_MINPRICE"
|
||||||
|
label="最低价"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled={modalType === 3}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="COMMODITY_MAXPRICE"
|
||||||
|
label="最高价"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
disabled={modalType === 3}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
<div className={'modalTitle'}>商品进销信息</div>
|
||||||
|
<Row gutter={16}>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="DUTY_PARAGRAPH"
|
||||||
|
label="进价税率"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormDigit
|
||||||
|
name="RETAIL_DUTY"
|
||||||
|
label="零售税率"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
<Col span={8}>
|
||||||
|
<ProFormSelect
|
||||||
|
name="COMMODITY_FROZENCOUNT"
|
||||||
|
label="采购状态"
|
||||||
|
readonly={modalType === 2}
|
||||||
|
options={[{ label: '允许', value: 1000 }, { label: '禁止', value: 2000 }]}
|
||||||
|
/>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</ProForm>
|
||||||
|
</Modal>
|
||||||
|
</div >
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(({ user, }: ConnectState) => ({
|
||||||
|
currentUser: user.currentUser,
|
||||||
|
}))(EditShopModal);
|
||||||
@ -0,0 +1,213 @@
|
|||||||
|
import { connect } from "umi";
|
||||||
|
import type { ConnectState } from "@/models/connect";
|
||||||
|
import { FormInstance, Modal } from "antd";
|
||||||
|
import ProTable from "@ant-design/pro-table";
|
||||||
|
import { useRef } from "react";
|
||||||
|
import { handleGetCommodityList } from "../../commodityInfo/service";
|
||||||
|
import { getFieldEnum } from "@/services/options";
|
||||||
|
|
||||||
|
type DetailProps = {
|
||||||
|
onShow: any // 显示悬浮框
|
||||||
|
setShowAddShopModal: any // 关闭悬浮框
|
||||||
|
setShopData: any // 改变当前商品
|
||||||
|
selectRowList: any // 当前选择的商品行
|
||||||
|
currentUser: any // 公参信息
|
||||||
|
CommodityData: any // 枚举值
|
||||||
|
selectedOrderRowKeys: any // 选择的行值
|
||||||
|
setSelectRowList: any // 改变选择的行
|
||||||
|
setSelectedOrderRowKeys: any // 改变选择的行号
|
||||||
|
formRef?: any // 申请的表单数据
|
||||||
|
}
|
||||||
|
const SelectShopModal = ({ onShow, setShowAddShopModal, setShopData, selectRowList, currentUser, CommodityData, selectedOrderRowKeys, setSelectRowList, setSelectedOrderRowKeys, formRef }: DetailProps) => {
|
||||||
|
// 选择商品的表格结构
|
||||||
|
const selectShopColumns: any = [
|
||||||
|
{
|
||||||
|
title: "商品查询",
|
||||||
|
dataIndex: "searchText",
|
||||||
|
hideInTable: true,
|
||||||
|
fieldProp: {
|
||||||
|
fieldholder: "请输入商品名称"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>序号</div>,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: 'index',
|
||||||
|
hideInSearch: true,
|
||||||
|
valueType: 'index'
|
||||||
|
},
|
||||||
|
// {
|
||||||
|
// title: <div style={{ textAlign: 'center' }}>服务区</div>,
|
||||||
|
// width: 150,
|
||||||
|
// ellipsis: true,
|
||||||
|
// align: 'center',
|
||||||
|
// dataIndex: 'SERVERPART_NAME',
|
||||||
|
// hideInSearch: true,
|
||||||
|
// valueType: "select",
|
||||||
|
// valueEnum: ServerpartIdsList
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>商品业态</div>,
|
||||||
|
width: 120,
|
||||||
|
ellipsis: true,
|
||||||
|
dataIndex: 'BUSINESSTYPE',
|
||||||
|
align: 'center',
|
||||||
|
valueType: 'select',
|
||||||
|
request: async () => {
|
||||||
|
const BUSINESSTYPERes = await getFieldEnum({ FieldExplainField: 'BUSINESSTYPE', sessionName: 'SHOPTRADE', notformate: true })
|
||||||
|
return BUSINESSTYPERes
|
||||||
|
},
|
||||||
|
fieldProps: {
|
||||||
|
showSearch: true,
|
||||||
|
filterOption: (input, option) =>
|
||||||
|
(option?.label ?? '').toLowerCase().includes(input.toLowerCase()),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>商品类型</div>,
|
||||||
|
width: 120,
|
||||||
|
ellipsis: true,
|
||||||
|
dataIndex: 'COMMODITY_TYPE',
|
||||||
|
align: 'center',
|
||||||
|
hideInSearch: true,
|
||||||
|
valueEnum: CommodityData
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>商品名称</div>,
|
||||||
|
width: 200,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'left',
|
||||||
|
dataIndex: 'COMMODITY_NAME',
|
||||||
|
hideInSearch: true,
|
||||||
|
// render: (_, record) => {
|
||||||
|
// return record?.COMMODITY_NAME ? <a onClick={() => {
|
||||||
|
// setCurrentShopRow(record)
|
||||||
|
// setShowEditShopModal(true)
|
||||||
|
// }}>
|
||||||
|
// {record?.COMMODITY_NAME}
|
||||||
|
// </a> : "-"
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>商品条码</div>,
|
||||||
|
width: 150,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'left',
|
||||||
|
dataIndex: 'COMMODITY_BARCODE',
|
||||||
|
hideInSearch: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>零售价</div>,
|
||||||
|
width: 70,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'right',
|
||||||
|
dataIndex: 'COMMODITY_RETAILPRICE',
|
||||||
|
hideInSearch: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>进货价</div>,
|
||||||
|
width: 70,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'right',
|
||||||
|
dataIndex: 'COMMODITY_PURCHASEPRICE',
|
||||||
|
hideInSearch: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>商品单位</div>,
|
||||||
|
width: 80,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'right',
|
||||||
|
dataIndex: 'COMMODITY_UNIT',
|
||||||
|
hideInSearch: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>状态</div>,
|
||||||
|
width: 100,
|
||||||
|
ellipsis: true,
|
||||||
|
dataIndex: 'COMMODITY_STATE',
|
||||||
|
align: 'center',
|
||||||
|
valueType: 'select',
|
||||||
|
valueEnum: { 0: { text: '无效', status: 'error' }, 1: { text: '有效', status: 'success' }, 2: { text: '不可选', status: 'default' } },
|
||||||
|
initialValue: '1',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: <div style={{ textAlign: 'center' }}>审核时间</div>,
|
||||||
|
width: 150,
|
||||||
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
|
dataIndex: 'OPERATE_DATE',
|
||||||
|
hideInSearch: true,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<Modal
|
||||||
|
open={onShow}
|
||||||
|
width={1200}
|
||||||
|
wrapClassName={'shopModal'}
|
||||||
|
destroyOnClose
|
||||||
|
title={"选择商品"}
|
||||||
|
onOk={() => {
|
||||||
|
setShowAddShopModal(false)
|
||||||
|
setShopData(selectRowList)
|
||||||
|
}}
|
||||||
|
onCancel={() => {
|
||||||
|
setShowAddShopModal(false)
|
||||||
|
}}
|
||||||
|
bodyStyle={{
|
||||||
|
height: '700px', // 你可以根据需要调整高度
|
||||||
|
overflowY: 'auto',
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<ProTable
|
||||||
|
options={false}
|
||||||
|
scroll={{ x: "100%", y: "420px" }}
|
||||||
|
bordered
|
||||||
|
search={{ span: 6 }}
|
||||||
|
rowKey={"COMMODITY_ID"}
|
||||||
|
request={async (params) => {
|
||||||
|
console.log('formRefformRefformRef', formRef.current);
|
||||||
|
let formRes = formRef.current.modalFormRef.current?.getFieldsValue()
|
||||||
|
const req: any = {
|
||||||
|
SearchType: 3,
|
||||||
|
ShopTrade: params?.BUSINESSTYPE || "",
|
||||||
|
ProvinceCode: currentUser?.ProvinceCode,
|
||||||
|
// CommodityTypeId: currenMenu,
|
||||||
|
CommodityState: params?.COMMODITY_STATE || "",
|
||||||
|
ServerpartID: formRes?.ServerpartId,
|
||||||
|
PageIndex: 1,
|
||||||
|
PageSize: 999999,
|
||||||
|
SortStr: "OPERATE_DATE desc",
|
||||||
|
SearchKey: "COMMODITY_NAME",
|
||||||
|
SearchValue: params?.searchText || ""
|
||||||
|
// PageSize: 20
|
||||||
|
}
|
||||||
|
const data = await handleGetCommodityList(req)
|
||||||
|
console.log('shdasidh', data);
|
||||||
|
if (data.List && data.List.length > 0) {
|
||||||
|
return { data: data.List, success: true, total: data.TotalCount }
|
||||||
|
}
|
||||||
|
return { data: [], success: true }
|
||||||
|
}}
|
||||||
|
columns={selectShopColumns}
|
||||||
|
rowSelection={{
|
||||||
|
type: 'checkbox',
|
||||||
|
selectedRowKeys: selectedOrderRowKeys,
|
||||||
|
onChange: (selectedRowKeys: any, selectedRows: any) => {
|
||||||
|
console.log('selectedRowKeysselectedRowKeys', selectedRowKeys);
|
||||||
|
console.log('selectedRowsselectedRowsselectedRows', selectedRows);
|
||||||
|
|
||||||
|
setSelectRowList(selectedRows)
|
||||||
|
setSelectedOrderRowKeys(selectedRowKeys)
|
||||||
|
},
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</Modal>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default connect(({ user }: ConnectState) => ({
|
||||||
|
currentUser: user.currentUser,
|
||||||
|
}))(SelectShopModal);
|
||||||
File diff suppressed because it is too large
Load Diff
@ -31,6 +31,8 @@ import session from "@/utils/session";
|
|||||||
import './style.less'
|
import './style.less'
|
||||||
import Detail from "@/pages/reports/productControl/components/detail";
|
import Detail from "@/pages/reports/productControl/components/detail";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
|
||||||
const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
const { currentUser } = props
|
const { currentUser } = props
|
||||||
@ -78,7 +80,7 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
const [showModal, setShowModal] = useState<boolean>(false)
|
const [showModal, setShowModal] = useState<boolean>(false)
|
||||||
|
|
||||||
const [showDetail, setShowDetail] = useState<boolean>(false)
|
const [showDetail, setShowDetail] = useState<boolean>(false)
|
||||||
|
const SHOPTRADEObj = session.get('SHOPTRADEObj')
|
||||||
|
|
||||||
|
|
||||||
const ServerpartIdsList: any = session.get('ServerpartIdsList')
|
const ServerpartIdsList: any = session.get('ServerpartIdsList')
|
||||||
@ -153,7 +155,7 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
width: 150,
|
width: 150,
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
align: 'center',
|
align: 'center',
|
||||||
dataIndex: 'SERVERPART_NAME',
|
dataIndex: 'SERVERPART_ID',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
render: (_, record) => {
|
render: (_, record) => {
|
||||||
return <span>
|
return <span>
|
||||||
@ -429,37 +431,60 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
console.log('data', data)
|
console.log('data', data)
|
||||||
// setAllTotal(data.TotalCount)
|
// setAllTotal(data.TotalCount)
|
||||||
setReqDetailList(data.List)
|
|
||||||
|
let fieldData: any = [
|
||||||
|
"COMMODITY_RETAILPRICE",
|
||||||
|
"COMMODITY_PURCHASEPRICE",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
let enumList: any = ["BUSINESSTYPE", "SERVERPART_ID"]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data.List)), fieldData, enumList, [SHOPTRADEObj, ServerpartIdsList], [])
|
||||||
|
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
return { data: data.List, success: true }
|
return { data: data.List, success: true }
|
||||||
}
|
}
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-commoditySearch"
|
// table="table-to-xls-commoditySearch"
|
||||||
filename={`商品信息查询表`}
|
// filename={`商品信息查询表`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`商品信息查询表`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -76,7 +76,7 @@ const commodityType: React.FC<{ currentUser: CurrentUser}> = (props) => {
|
|||||||
initialValue: "1"
|
initialValue: "1"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title:<div style={{textAlign:'center'}}>香烟类别</div>,
|
title:<div style={{textAlign:'center'}}>香烟类别1</div>,
|
||||||
dataIndex: 'CIGARETTE_TYPE',
|
dataIndex: 'CIGARETTE_TYPE',
|
||||||
valueType: 'select',
|
valueType: 'select',
|
||||||
align:'center',
|
align:'center',
|
||||||
|
|||||||
@ -21,6 +21,9 @@ import {
|
|||||||
import SubMenu from "antd/lib/menu/SubMenu";
|
import SubMenu from "antd/lib/menu/SubMenu";
|
||||||
import Detail from "@/pages/reports/productControl/components/detail";
|
import Detail from "@/pages/reports/productControl/components/detail";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
|
import session from "@/utils/session";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
|
||||||
|
|
||||||
const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -39,6 +42,7 @@ const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
setTreeView(data)
|
setTreeView(data)
|
||||||
return data
|
return data
|
||||||
})
|
})
|
||||||
|
const SHOPTRADEObj = session.get('SHOPTRADEObj')
|
||||||
|
|
||||||
const { loading: treeViewsLoading, data: detailTreeViews } = useRequest(async () => {
|
const { loading: treeViewsLoading, data: detailTreeViews } = useRequest(async () => {
|
||||||
const req = {
|
const req = {
|
||||||
@ -371,6 +375,7 @@ const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
bordered
|
bordered
|
||||||
headerTitle={<PageTitleBox props={props} />}
|
headerTitle={<PageTitleBox props={props} />}
|
||||||
search={{ span: 6 }}
|
search={{ span: 6 }}
|
||||||
|
scroll={{ x: '100%', y: 'calc(100vh - 450px)' }}
|
||||||
request={async (params) => {
|
request={async (params) => {
|
||||||
if (!currenMenu) {
|
if (!currenMenu) {
|
||||||
return
|
return
|
||||||
@ -391,36 +396,59 @@ const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
console.log('data', data)
|
console.log('data', data)
|
||||||
// setAllTotal(data.TotalCount)
|
// setAllTotal(data.TotalCount)
|
||||||
|
let fieldData: any = [
|
||||||
|
"COMMODITY_RETAILPRICE",
|
||||||
|
]
|
||||||
|
let enumList: any = [
|
||||||
|
"BUSINESSTYPE",
|
||||||
|
"COMMODITY_STATE"
|
||||||
|
]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data.List)), fieldData, enumList, [SHOPTRADEObj, { 0: "无效", 1: "有效" }], [])
|
||||||
|
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
|
|
||||||
return { data: data.List, success: true }
|
return { data: data.List, success: true }
|
||||||
}
|
}
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-hotkeyset"
|
// table="table-to-xls-hotkeyset"
|
||||||
filename={`商品快捷键管理报表`}
|
// filename={`商品快捷键管理报表`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`商品快捷键管理报表`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
@ -21,6 +21,8 @@ import { handleGetCommodityList } from "../commodityInfo/service";
|
|||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import session from "@/utils/session";
|
import session from "@/utils/session";
|
||||||
import PageTitleBox from "@/components/PageTitleBox";
|
import PageTitleBox from "@/components/PageTitleBox";
|
||||||
|
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||||
|
import { formatTreeData } from "@/utils/format";
|
||||||
|
|
||||||
|
|
||||||
const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||||
@ -69,6 +71,7 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
// 是否显示打印的表格
|
// 是否显示打印的表格
|
||||||
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
||||||
const ServerpartIdsList: any = session.get('ServerpartIdsList')
|
const ServerpartIdsList: any = session.get('ServerpartIdsList')
|
||||||
|
const SHOPTRADEObj: any = session.get('SHOPTRADEObj')
|
||||||
|
|
||||||
const columns: any = [
|
const columns: any = [
|
||||||
{
|
{
|
||||||
@ -105,12 +108,15 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
title: '序号',
|
title: '序号',
|
||||||
dataIndex: 'index',
|
dataIndex: 'index',
|
||||||
valueType: 'index',
|
valueType: 'index',
|
||||||
|
width: 70,
|
||||||
|
align: 'center',
|
||||||
hieInSearch: true
|
hieInSearch: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '服务区',
|
title: <div style={{ textAlign: 'center' }}>服务区</div>,
|
||||||
|
width: 150,
|
||||||
dataIndex: 'SERVERPART_ID',
|
dataIndex: 'SERVERPART_ID',
|
||||||
valueType: 'index',
|
ellipsis: true,
|
||||||
hieInSearch: true,
|
hieInSearch: true,
|
||||||
render: (_, record) => {
|
render: (_, record) => {
|
||||||
return record?.SERVERPART_ID ? ServerpartIdsList[record?.SERVERPART_ID] : '-'
|
return record?.SERVERPART_ID ? ServerpartIdsList[record?.SERVERPART_ID] : '-'
|
||||||
@ -119,8 +125,11 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
{
|
{
|
||||||
title: '商品业态',
|
title: '商品业态',
|
||||||
dataIndex: 'BUSINESSTYPE',
|
dataIndex: 'BUSINESSTYPE',
|
||||||
|
width: 120,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
valueType: 'select',
|
valueType: 'select',
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
request: async () => {
|
request: async () => {
|
||||||
return await getFieldEnum({ FieldExplainField: 'BUSINESSTYPE', sessionName: 'SHOPTRADE', notformate: true })
|
return await getFieldEnum({ FieldExplainField: 'BUSINESSTYPE', sessionName: 'SHOPTRADE', notformate: true })
|
||||||
}
|
}
|
||||||
@ -128,75 +137,80 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
{
|
{
|
||||||
title: '商品类型',
|
title: '商品类型',
|
||||||
dataIndex: 'COMMODITY_TYPE',
|
dataIndex: 'COMMODITY_TYPE',
|
||||||
|
width: 120,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
valueEnum: CommodityData
|
valueEnum: CommodityData
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '商品条码',
|
title: '商品条码',
|
||||||
|
width: 150,
|
||||||
dataIndex: 'COMMODITY_BARCODE',
|
dataIndex: 'COMMODITY_BARCODE',
|
||||||
|
ellipsis: true,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
align: 'center',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '商品名称',
|
title: <div style={{ textAlign: 'center' }}>商品名称</div>,
|
||||||
dataIndex: 'COMMODITY_NAME',
|
dataIndex: 'COMMODITY_NAME',
|
||||||
|
width: 200,
|
||||||
|
ellipsis: true,
|
||||||
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '零售价',
|
title: <div style={{ textAlign: 'center' }}>零售价</div>,
|
||||||
|
width: 120,
|
||||||
dataIndex: 'COMMODITY_RETAILPRICE',
|
dataIndex: 'COMMODITY_RETAILPRICE',
|
||||||
|
align: 'right',
|
||||||
|
valueType: 'digit',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '进货价',
|
title: <div style={{ textAlign: 'center' }}>进货价</div>,
|
||||||
|
width: 120,
|
||||||
dataIndex: 'COMMODITY_PURCHASEPRICE',
|
dataIndex: 'COMMODITY_PURCHASEPRICE',
|
||||||
|
align: 'right',
|
||||||
|
valueType: 'digit',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '商品单位',
|
title: <div style={{ textAlign: 'center' }}>商品单位</div>,
|
||||||
|
width: 120,
|
||||||
dataIndex: 'COMMODITY_UNIT',
|
dataIndex: 'COMMODITY_UNIT',
|
||||||
|
align: 'center',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '商品规格',
|
title: <div style={{ textAlign: 'center' }}>商品规格</div>,
|
||||||
|
width: 120,
|
||||||
dataIndex: 'COMMODITY_RULE',
|
dataIndex: 'COMMODITY_RULE',
|
||||||
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '状态',
|
title: <div style={{ textAlign: 'center' }}>状态</div>,
|
||||||
|
width: 120,
|
||||||
dataIndex: 'COMMODITY_STATE',
|
dataIndex: 'COMMODITY_STATE',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
|
align: 'center',
|
||||||
valueType: 'select',
|
valueType: 'select',
|
||||||
valueEnum: { 0: { text: '无效', status: 'error' }, 1: { text: '有效', status: 'success' } },
|
valueEnum: { 0: { text: '无效', status: 'error' }, 1: { text: '有效', status: 'success' } },
|
||||||
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '审核时间',
|
title: '审核时间',
|
||||||
|
width: 170,
|
||||||
|
align: 'center',
|
||||||
|
ellipsis: true,
|
||||||
dataIndex: 'OPERATE_DATE',
|
dataIndex: 'OPERATE_DATE',
|
||||||
hideInSearch: true,
|
hideInSearch: true,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
const exportTable = (e) => {
|
|
||||||
e.stopPropagation(); // 防止Collapse组件收起
|
|
||||||
const main = document.getElementsByClassName('saleReportHideBox')[0]
|
|
||||||
const thead = main.querySelector('thead').cloneNode(true); // 深克隆DOM节点
|
|
||||||
const tbody = main.querySelector('tbody').cloneNode(true); // 深克隆DOM节点
|
|
||||||
const container = document.querySelector('#hiddenBox');
|
|
||||||
|
|
||||||
const tempTable = document.createElement('table');
|
|
||||||
tempTable.appendChild(thead);
|
|
||||||
tempTable.appendChild(tbody);
|
|
||||||
|
|
||||||
tempTable.setAttribute('id', 'table-to-xls-shopCommodity'); // 给table添加id,值与按钮上的table字段对应
|
|
||||||
|
|
||||||
container.appendChild(tempTable); // 把创建的节点添加到页面容器中
|
|
||||||
|
|
||||||
setShowLoading(false)
|
|
||||||
|
|
||||||
downloadBtnRef.current.handleDownload();
|
|
||||||
setShowExportTable(false)
|
|
||||||
tempTable.remove() // 防止重复打印一个内容
|
|
||||||
}
|
|
||||||
// 查询的条件
|
// 查询的条件
|
||||||
const [searchParams, setSearchParams] = useState<any>()
|
const [searchParams, setSearchParams] = useState<any>()
|
||||||
|
|
||||||
@ -236,21 +250,6 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
</div> : ''
|
</div> : ''
|
||||||
}
|
}
|
||||||
|
|
||||||
<div className={'saleReportHideBox'} style={{ position: 'fixed', zIndex: -1, top: 0, left: 0 }}>
|
|
||||||
{
|
|
||||||
showExportTable && reqDetailList && reqDetailList.length > 0 ?
|
|
||||||
<ProTable
|
|
||||||
columns={columns}
|
|
||||||
dataSource={reqDetailList}
|
|
||||||
pagination={false}
|
|
||||||
expandable={{
|
|
||||||
defaultExpandAllRows: true
|
|
||||||
}}
|
|
||||||
/> : ''
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
<div id='hiddenBox' style={{ position: 'fixed', zIndex: -1, top: 0, left: 0 }} />
|
|
||||||
|
|
||||||
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
<div style={{ backgroundColor: '#fff', display: 'flex' }}>
|
||||||
<ProCard
|
<ProCard
|
||||||
style={{ width: !collapsible ? "300px" : "60px" }}
|
style={{ width: !collapsible ? "300px" : "60px" }}
|
||||||
@ -300,6 +299,7 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
bordered
|
bordered
|
||||||
headerTitle={<PageTitleBox props={props} />}
|
headerTitle={<PageTitleBox props={props} />}
|
||||||
search={{ span: 6 }}
|
search={{ span: 6 }}
|
||||||
|
scroll={{ x: '100%', y: 'calc(100vh - 450px)' }}
|
||||||
request={async (params) => {
|
request={async (params) => {
|
||||||
if (!selectedId) {
|
if (!selectedId) {
|
||||||
return
|
return
|
||||||
@ -321,36 +321,61 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
|||||||
if (data.List && data.List.length > 0) {
|
if (data.List && data.List.length > 0) {
|
||||||
console.log('data', data)
|
console.log('data', data)
|
||||||
// setAllTotal(data.TotalCount)
|
// setAllTotal(data.TotalCount)
|
||||||
|
|
||||||
|
let fieldData: any = [
|
||||||
|
"COMMODITY_RETAILPRICE",
|
||||||
|
"COMMODITY_PURCHASEPRICE"
|
||||||
|
]
|
||||||
|
|
||||||
|
let enumList: any = ["SERVERPART_ID",
|
||||||
|
"BUSINESSTYPE",
|
||||||
|
"COMMODITY_TYPE",]
|
||||||
|
let newPrintData: any = formatTreeData(JSON.parse(JSON.stringify(data.List)), fieldData, enumList, [ServerpartIdsList, SHOPTRADEObj, CommodityData], [])
|
||||||
|
|
||||||
|
setReqDetailList(newPrintData)
|
||||||
return { data: data.List, success: true }
|
return { data: data.List, success: true }
|
||||||
}
|
}
|
||||||
return { data: [], success: true }
|
return { data: [], success: true }
|
||||||
}}
|
}}
|
||||||
toolbar={{
|
toolbar={{
|
||||||
actions: [
|
actions: [
|
||||||
<span style={{ visibility: 'hidden' }}>
|
// <span style={{ visibility: 'hidden' }}>
|
||||||
<ReactHTMLTableToExcel
|
// <ReactHTMLTableToExcel
|
||||||
buttonText={'导出excel'}
|
// buttonText={'导出excel'}
|
||||||
ref={downloadBtnRef}
|
// ref={downloadBtnRef}
|
||||||
table="table-to-xls-shopCommodity"
|
// table="table-to-xls-shopCommodity"
|
||||||
filename={`门店商品查询${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
// filename={`门店商品查询${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
||||||
sheet="sheet1"
|
// sheet="sheet1"
|
||||||
/>
|
// />
|
||||||
</span>,
|
// </span>,
|
||||||
<Button
|
<Button
|
||||||
key="new"
|
key="new"
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
if (reqDetailList && reqDetailList.length > 0) {
|
if (reqDetailList && reqDetailList.length > 0) {
|
||||||
setShowLoading(true)
|
// 尝试一下 导出新方法
|
||||||
setTimeout(() => {
|
exportXlsxFromProColumnsExcelJS(columns,
|
||||||
setShowExportTable(true)
|
reqDetailList,
|
||||||
setTimeout(() => {
|
`门店商品查询${searchParams?.OperateDate_Start}-${searchParams?.OperateDate_End}`,
|
||||||
exportTable(e)
|
// {
|
||||||
}, 100)
|
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||||
}, 100)
|
// }
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
message.error('暂无数据可导出!')
|
message.error('暂无数据可导出!')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (reqDetailList && reqDetailList.length > 0) {
|
||||||
|
// setShowLoading(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// setShowExportTable(true)
|
||||||
|
// setTimeout(() => {
|
||||||
|
// exportTable(e)
|
||||||
|
// }, 100)
|
||||||
|
// }, 100)
|
||||||
|
// } else {
|
||||||
|
// message.error('暂无数据可导出!')
|
||||||
|
// }
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
导出excel
|
导出excel
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user