建工内容整合过的一版
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 { handleNewGetSERVERPARTDetail } from "@/pages/newDataAnalysis/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) => {
|
||||
@ -288,46 +290,79 @@ const servicePartAudit: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
}
|
||||
const data = await handleGetCASHWORKERList(req)
|
||||
if (data && data.length > 0) {
|
||||
console.log('data', data);
|
||||
let res = JSON.parse(JSON.stringify(data))
|
||||
let list: any = []
|
||||
data.forEach((item: any) => {
|
||||
item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
||||
item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
||||
list.push(item)
|
||||
})
|
||||
setReqDetailList(list)
|
||||
return { data: res, success: true }
|
||||
// console.log('data', data);
|
||||
// let res = JSON.parse(JSON.stringify(data))
|
||||
// let list: any = []
|
||||
// data.forEach((item: any) => {
|
||||
// item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
||||
// item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
||||
// list.push(item)
|
||||
// })
|
||||
// setReqDetailList(list)
|
||||
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([])
|
||||
return { data: [], success: true }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-servicePartAudit"
|
||||
filename={`服务区人员管理统计`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-servicePartAudit"
|
||||
// filename={`服务区人员管理统计`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`服务区稽核人员管理统计`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -17,6 +17,8 @@ import session from "@/utils/session";
|
||||
import moment from 'moment'
|
||||
import Detail from "./component/detail";
|
||||
import PageTitleBox from "@/components/PageTitleBox";
|
||||
import { formatTreeData } from "@/utils/format";
|
||||
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||
|
||||
|
||||
const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
@ -39,6 +41,7 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
})
|
||||
const businessTypeObj = session.get('BUSINESSTYPEObj')
|
||||
const businessStateObj = session.get('businessStateObj')
|
||||
const SHOPTRADEObj = session.get('SHOPTRADEObj')
|
||||
// 树相关的属性和方法
|
||||
const [selectedId, setSelectedId] = useState<string>()
|
||||
// 导出的加载效果
|
||||
@ -290,6 +293,16 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
const data = await handleGetServerPartShopNewList(req)
|
||||
console.log('data', data);
|
||||
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 }
|
||||
@ -297,30 +310,42 @@ const serviceArea: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-serviceArea"
|
||||
filename={`单品销售排行统计${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-serviceArea"
|
||||
// filename={`单品销售排行统计${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`服务区门店统计表`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -18,6 +18,8 @@ import { handleGetCASHWORKERDetail, handleGetCASHWORKERList, handleGetServerpart
|
||||
import PageTitleBox from "@/components/PageTitleBox";
|
||||
import session from "@/utils/session";
|
||||
import { handleNewGetSERVERPARTDetail } from "../service";
|
||||
import { formatTreeData } from "@/utils/format";
|
||||
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||
|
||||
|
||||
const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
@ -289,46 +291,79 @@ const serviceAreaPersonnel: React.FC<{ currentUser: CurrentUser }> = (props) =>
|
||||
}
|
||||
const data = await handleGetCASHWORKERList(req)
|
||||
if (data && data.length > 0) {
|
||||
console.log('data', data);
|
||||
let res = JSON.parse(JSON.stringify(data))
|
||||
let list: any = []
|
||||
data.forEach((item: any) => {
|
||||
item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
||||
item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
||||
list.push(item)
|
||||
})
|
||||
setReqDetailList(list)
|
||||
return { data: res, success: true }
|
||||
// console.log('data', data);
|
||||
// let res = JSON.parse(JSON.stringify(data))
|
||||
// let list: any = []
|
||||
// data.forEach((item: any) => {
|
||||
// item.CASHWORKER_LOGINNAME = `"${item.CASHWORKER_LOGINNAME}"`
|
||||
// item.CASHWORKER_LOGINPWD = `"${item.CASHWORKER_LOGINPWD}"`
|
||||
// list.push(item)
|
||||
// })
|
||||
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([])
|
||||
return { data: [], success: true }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-serviceAreaPersonnel"
|
||||
filename={`服务区人员管理统计`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-serviceAreaPersonnel"
|
||||
// filename={`服务区人员管理统计`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`服务区人员管理统计`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -22,6 +22,9 @@ import SubMenu from "antd/lib/menu/SubMenu";
|
||||
import moment from "moment/moment";
|
||||
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalAmount/service";
|
||||
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 { currentUser } = props
|
||||
@ -50,7 +53,7 @@ const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
const [defaultValue, setDefaultValue] = useState<any>()
|
||||
|
||||
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
||||
|
||||
const [ABNORMALITY_TYPEObj, setABNORMALITY_TYPEObj] = useState<any>()
|
||||
|
||||
|
||||
const columns: any = [
|
||||
@ -86,8 +89,9 @@ const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
dataIndex: 'ABNORMALITY_TYPE',
|
||||
valueType: 'treeSelect',
|
||||
request: async () => {
|
||||
console.log('2')
|
||||
const data = await getFieldEnumTreeNoSession({ FieldExplainField: 'EXCEPTION_TYPE', FieldEnumPID: 13854, FieldEnumStatus: true });
|
||||
let obj: any = handleGetListObj(data)
|
||||
setABNORMALITY_TYPEObj(obj)
|
||||
return data
|
||||
},
|
||||
fieldProps: {
|
||||
@ -349,37 +353,59 @@ const abnormalAmount: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
const data = await handleGetYSABNORMALITYList(req)
|
||||
console.log('data', data)
|
||||
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 }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-abnormalAmount"
|
||||
filename={`销售金额异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-abnormalAmount"
|
||||
// filename={`销售金额异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`销售金额异常${searchParams?.Start_Date}-${searchParams?.End_Date}`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -22,6 +22,9 @@ import SubMenu from "antd/lib/menu/SubMenu";
|
||||
import moment from "moment/moment";
|
||||
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalExamine/service";
|
||||
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 { currentUser } = props
|
||||
@ -47,6 +50,7 @@ const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
// 是否显示打印的表格
|
||||
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
||||
const [currenMenu, setCurrenMenu] = useState<any>(); // 当前选中左侧菜单的服务区节点
|
||||
const [ABNORMALITY_TYPEObj, setABNORMALITY_TYPEObj] = useState<any>()
|
||||
|
||||
|
||||
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
||||
@ -107,6 +111,8 @@ const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
valueType: 'treeSelect',
|
||||
request: async () => {
|
||||
const data: any = await getFieldEnumTreeNoSession({ FieldExplainField: 'ABNORMALITY_TYPE', FieldEnumStatus: true });
|
||||
let obj: any = handleGetListObj(data)
|
||||
setABNORMALITY_TYPEObj(obj)
|
||||
return data
|
||||
},
|
||||
fieldProps: {
|
||||
@ -354,37 +360,59 @@ const abnormalExamine: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
setSearchParams(params)
|
||||
const data = await handleGetYSABNORMALITYList(req)
|
||||
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 }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-abnormalExamine"
|
||||
filename={`稽核联动查询表${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-abnormalExamine"
|
||||
// filename={`稽核联动查询表${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`稽核联动查询表${searchParams?.Start_Date}-${searchParams?.End_Date}`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -21,6 +21,9 @@ import SubMenu from "antd/lib/menu/SubMenu";
|
||||
import moment from "moment/moment";
|
||||
import { handleGetServerpartShopDDL, handleGetYSABNORMALITYList } from "@/pages/reports/audit/abnormalSale/service";
|
||||
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 { currentUser } = props
|
||||
@ -46,7 +49,7 @@ const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
// 是否显示打印的表格
|
||||
const [showExportTable, setShowExportTable] = useState<boolean>(false)
|
||||
const [currenMenu, setCurrenMenu] = useState<any>(); // 当前选中左侧菜单的服务区节点
|
||||
|
||||
const [ABNORMALITY_TYPEObj, setABNORMALITY_TYPEObj] = useState<any>()
|
||||
|
||||
const [serverpartShopObj, setServerpartShopObj] = useState<any>()
|
||||
|
||||
@ -89,6 +92,8 @@ const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
request: async () => {
|
||||
const data = await getFieldEnumTreeNoSession({ FieldExplainField: 'EXCEPTION_TYPE', FieldEnumPID: 13852, FieldEnumStatus: true });
|
||||
console.log('data', data)
|
||||
let obj: any = handleGetListObj(data)
|
||||
setABNORMALITY_TYPEObj(obj)
|
||||
return data
|
||||
},
|
||||
fieldProps: {
|
||||
@ -348,37 +353,60 @@ const abnormalSale: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
const data = await handleGetYSABNORMALITYList(req)
|
||||
console.log('data', data)
|
||||
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 }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-abnormalSale"
|
||||
filename={`销售过程异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-abnormalSale"
|
||||
// filename={`销售过程异常${searchParams?.Start_Date}-${searchParams?.End_Date}`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`销售过程异常${searchParams?.Start_Date}-${searchParams?.End_Date}`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -74,10 +74,6 @@ const AddShopModal = ({ parentRow, onShow, currentShopRow, shopData, handleClose
|
||||
onOk={() => {
|
||||
modalShopFormRef.current?.validateFields().then(async (res: any) => {
|
||||
let oldData: any = shopData && shopData.length > 0 ? JSON.parse(JSON.stringify(shopData)) : []
|
||||
|
||||
console.log('oldDataoldDataoldData', oldData);
|
||||
console.log('resresresresresres', res);
|
||||
|
||||
let newList: any = []
|
||||
// 判断当前的里面有没有一样的
|
||||
if (oldData && oldData.length > 0) {
|
||||
@ -100,8 +96,6 @@ const AddShopModal = ({ parentRow, onShow, currentShopRow, shopData, handleClose
|
||||
} else {
|
||||
newList.push(res)
|
||||
}
|
||||
console.log('newList', newList);
|
||||
|
||||
// 如果进入到了添加商品 里面选了服务区 会 带给外面的表单
|
||||
if (res.SERVERPART_ID) {
|
||||
modalFormRef.current?.setFieldsValue({
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { connect } from "umi";
|
||||
import type { ConnectState } from "@/models/connect";
|
||||
import { Button, Card, Col, FormInstance, message, Modal, Popconfirm, Row, Space, Steps, Tooltip } from "antd";
|
||||
import { useRef, useState } from "react";
|
||||
import { Button, Card, Col, FormInstance, Input, message, Modal, Popconfirm, Row, Space, Steps, Tooltip } from "antd";
|
||||
import { useImperativeHandle, useRef, useState } from "react";
|
||||
import ProForm, { ProFormSelect, ProFormTextArea } from "@ant-design/pro-form";
|
||||
import { handleApproveCommodityProInst, handleCreateCommodityProInst, handleDeleteCOMMODITY_RUNNING, handleGetApprovalCommodityList, handleGetBUSINESSAPPROVALDetail, handleGetCOMMODITYRUNNINGList, handleReapplyCommodityProInst, handleRejectCommodityProInst } from "../../ProductApprovalProcess/service";
|
||||
import session from "@/utils/session";
|
||||
@ -22,8 +22,15 @@ type DetailProps = {
|
||||
ApprovalType: any // 审批还是驳回的判断
|
||||
setCurrentShopRow: 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 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 (
|
||||
<div>
|
||||
{/* 新增申请的悬浮框 */}
|
||||
<Modal
|
||||
className="addProductModal"
|
||||
width={"70%"}
|
||||
title={parentRow?.BusinessApproval_ID ? "商品申请详情" : "新增商品申请"}
|
||||
title={modalType === 1 ? parentRow?.BusinessApproval_ID ? "商品申请详情" : "新增商品申请" :
|
||||
modalType === 2 ? parentRow?.BusinessApproval_ID ? "商品调价申请详情" : "新增商品调价申请" :
|
||||
modalType === 3 ? parentRow?.BusinessApproval_ID ? "商品信息修改详情" : "新增商品信息修改申请" : ''
|
||||
}
|
||||
open={onShow}
|
||||
destroyOnClose
|
||||
onCancel={() => {
|
||||
@ -199,14 +513,41 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
modalApproveFormRef?.current?.submit()
|
||||
})
|
||||
} 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?.submit()
|
||||
})
|
||||
} else {
|
||||
message.error("请选选择申请的商品!")
|
||||
return
|
||||
}
|
||||
|
||||
}
|
||||
}}>确认</Button>
|
||||
</div>}
|
||||
@ -216,11 +557,38 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
modalApproveFormRef?.current?.submit()
|
||||
})
|
||||
} 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()
|
||||
})
|
||||
// })
|
||||
} else if (modalType === 3) {
|
||||
modalFormRef?.current?.validateFields().then(() => {
|
||||
modalFormRef?.current?.submit()
|
||||
})
|
||||
}
|
||||
}
|
||||
}}
|
||||
bodyStyle={{
|
||||
height: '700px', // 你可以根据需要调整高度
|
||||
overflowY: 'auto',
|
||||
}}
|
||||
>
|
||||
<ProForm
|
||||
// layout={'horizontal'}
|
||||
@ -258,10 +626,27 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
|
||||
|
||||
console.log('shopDatashopDatashopDatashopData', shopData);
|
||||
|
||||
// setShopData(shopData.Result_Data.List)
|
||||
if (handleChangeShopData) {
|
||||
handleChangeShopData(shopData.Result_Data.List)
|
||||
if (modalType === 1 || modalType === 3) {
|
||||
// setShopData(shopData.Result_Data.List)
|
||||
if (handleChangeShopData) {
|
||||
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 {
|
||||
@ -276,27 +661,48 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
onFinish={async (res) => {
|
||||
setConfirmLoading(true)
|
||||
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) {
|
||||
const req: any = {
|
||||
ProinstId: parentRow?.BusinessApproval_ID,
|
||||
ProinstName: res.reasonForApplication,
|
||||
UserId: currentUser?.ID,
|
||||
OperateType: "100100",
|
||||
OperateType: modalType === 1 ? "100100" : modalType === 2 ? '100200' : modalType === 3 ? '100210' : '',
|
||||
ServerpartId: res.ServerpartId,
|
||||
NextApproveStaffId: res.NextApproveStaffId,
|
||||
NextApproveState: 2000,
|
||||
CommodityRunningList: shopData
|
||||
CommodityRunningList: modalType === 1 ? shopData : modalType === 2 ? list : modalType === 3 ? shopData : '',
|
||||
}
|
||||
data = await handleReapplyCommodityProInst(req)
|
||||
} else {
|
||||
const req: any = {
|
||||
ProinstName: res.reasonForApplication,
|
||||
UserId: currentUser?.ID,
|
||||
OperateType: "100100",
|
||||
OperateType: modalType === 1 ? "100100" : modalType === 2 ? '100200' : modalType === 3 ? '100210' : '',
|
||||
ServerpartId: res.ServerpartId,
|
||||
NextApproveStaffId: res.NextApproveStaffId,
|
||||
NextApproveState: 2000,
|
||||
CommodityRunningList: shopData
|
||||
CommodityRunningList: modalType === 1 ? shopData : modalType === 2 ? list : modalType === 3 ? shopData : '',
|
||||
}
|
||||
data = await handleCreateCommodityProInst(req)
|
||||
console.log('dsaidjaskda', data);
|
||||
@ -369,7 +775,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
PROVINCE_CODE: currentUser?.ProvinceCode,
|
||||
APPROVALROUTE_STATES: "",
|
||||
APPROVALROUTE_VALID: 1,
|
||||
OPERATION_TYPES: "100100",
|
||||
OPERATION_TYPES: modalType === 1 ? '100100' : modalType === 2 ? '100200' : modalType === 3 ? '100210' : ''
|
||||
},
|
||||
PageIndex: 1,
|
||||
PageSize: 999999
|
||||
@ -380,6 +786,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
// 下面的环节
|
||||
let nextList: any = []
|
||||
console.log('dataState', dataState);
|
||||
console.log('parentRowparentRowparentRow', parentRow);
|
||||
|
||||
dataState.forEach((item: any) => {
|
||||
if (item.APPROVALROUTE_STATE === 2000) {
|
||||
@ -413,6 +820,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
</Row>
|
||||
|
||||
</ProForm>
|
||||
|
||||
{
|
||||
parentRow?.BusinessProcess_State > 1000 ?
|
||||
<ProForm
|
||||
@ -425,7 +833,7 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
SearchParameter: {
|
||||
APPROVALROUTE_STATES: "",
|
||||
APPROVALROUTE_VALID: 1,
|
||||
OPERATION_TYPES: "100100",
|
||||
OPERATION_TYPES: modalType === 1 ? '100100' : modalType === 2 ? '100200' : modalType === 3 ? '100210' : ''
|
||||
},
|
||||
PageIndex: 1,
|
||||
PageSize: 999999
|
||||
@ -605,17 +1013,41 @@ const NewApplicationModal = ({ parentRow, tableRef, onShow, handleCencel, curren
|
||||
search={false}
|
||||
options={false}
|
||||
pagination={false}
|
||||
columns={modalColumns}
|
||||
columns={modalType === 1 ? modalColumns : modalType === 2 ? modalColumnsPrice : modalType === 3 ? modalColumnsInfo : ''}
|
||||
dataSource={shopData}
|
||||
bordered
|
||||
toolbar={{
|
||||
actions: [
|
||||
actions: modalType === 1 ? [
|
||||
parentRow?.BusinessProcess_State > 1000 || (parentRow?.BusinessApproval_ID && parentRow?.ApproveStaff_ID !== currentUser?.ID) ? '' : <Button type={"primary"} onClick={() => {
|
||||
setShowAddShopModal(true)
|
||||
}}>
|
||||
新增商品
|
||||
</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 Detail from "@/pages/reports/productControl/components/detail";
|
||||
import PageTitleBox from "@/components/PageTitleBox";
|
||||
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||
import { formatTreeData } from "@/utils/format";
|
||||
|
||||
const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
const { currentUser } = props
|
||||
@ -78,7 +80,7 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
const [showModal, setShowModal] = useState<boolean>(false)
|
||||
|
||||
const [showDetail, setShowDetail] = useState<boolean>(false)
|
||||
|
||||
const SHOPTRADEObj = session.get('SHOPTRADEObj')
|
||||
|
||||
|
||||
const ServerpartIdsList: any = session.get('ServerpartIdsList')
|
||||
@ -153,7 +155,7 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
width: 150,
|
||||
ellipsis: true,
|
||||
align: 'center',
|
||||
dataIndex: 'SERVERPART_NAME',
|
||||
dataIndex: 'SERVERPART_ID',
|
||||
hideInSearch: true,
|
||||
render: (_, record) => {
|
||||
return <span>
|
||||
@ -429,37 +431,60 @@ const commoditySearch: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
if (data.List && data.List.length > 0) {
|
||||
console.log('data', data)
|
||||
// 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: [], success: true }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-commoditySearch"
|
||||
filename={`商品信息查询表`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-commoditySearch"
|
||||
// filename={`商品信息查询表`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`商品信息查询表`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -76,7 +76,7 @@ const commodityType: React.FC<{ currentUser: CurrentUser}> = (props) => {
|
||||
initialValue: "1"
|
||||
},
|
||||
{
|
||||
title:<div style={{textAlign:'center'}}>香烟类别</div>,
|
||||
title:<div style={{textAlign:'center'}}>香烟类别1</div>,
|
||||
dataIndex: 'CIGARETTE_TYPE',
|
||||
valueType: 'select',
|
||||
align:'center',
|
||||
|
||||
@ -21,6 +21,9 @@ import {
|
||||
import SubMenu from "antd/lib/menu/SubMenu";
|
||||
import Detail from "@/pages/reports/productControl/components/detail";
|
||||
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) => {
|
||||
@ -39,6 +42,7 @@ const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
setTreeView(data)
|
||||
return data
|
||||
})
|
||||
const SHOPTRADEObj = session.get('SHOPTRADEObj')
|
||||
|
||||
const { loading: treeViewsLoading, data: detailTreeViews } = useRequest(async () => {
|
||||
const req = {
|
||||
@ -371,6 +375,7 @@ const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
bordered
|
||||
headerTitle={<PageTitleBox props={props} />}
|
||||
search={{ span: 6 }}
|
||||
scroll={{ x: '100%', y: 'calc(100vh - 450px)' }}
|
||||
request={async (params) => {
|
||||
if (!currenMenu) {
|
||||
return
|
||||
@ -391,36 +396,59 @@ const hotkeyset: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
if (data.List && data.List.length > 0) {
|
||||
console.log('data', data)
|
||||
// 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: [], success: true }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-hotkeyset"
|
||||
filename={`商品快捷键管理报表`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-hotkeyset"
|
||||
// filename={`商品快捷键管理报表`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`商品快捷键管理报表`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
@ -21,6 +21,8 @@ import { handleGetCommodityList } from "../commodityInfo/service";
|
||||
import moment from "moment";
|
||||
import session from "@/utils/session";
|
||||
import PageTitleBox from "@/components/PageTitleBox";
|
||||
import { exportXlsxFromProColumnsExcelJS } from "@/utils/exportExcelFun";
|
||||
import { formatTreeData } from "@/utils/format";
|
||||
|
||||
|
||||
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 ServerpartIdsList: any = session.get('ServerpartIdsList')
|
||||
const SHOPTRADEObj: any = session.get('SHOPTRADEObj')
|
||||
|
||||
const columns: any = [
|
||||
{
|
||||
@ -105,12 +108,15 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
title: '序号',
|
||||
dataIndex: 'index',
|
||||
valueType: 'index',
|
||||
width: 70,
|
||||
align: 'center',
|
||||
hieInSearch: true
|
||||
},
|
||||
{
|
||||
title: '服务区',
|
||||
title: <div style={{ textAlign: 'center' }}>服务区</div>,
|
||||
width: 150,
|
||||
dataIndex: 'SERVERPART_ID',
|
||||
valueType: 'index',
|
||||
ellipsis: true,
|
||||
hieInSearch: true,
|
||||
render: (_, record) => {
|
||||
return record?.SERVERPART_ID ? ServerpartIdsList[record?.SERVERPART_ID] : '-'
|
||||
@ -119,8 +125,11 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
{
|
||||
title: '商品业态',
|
||||
dataIndex: 'BUSINESSTYPE',
|
||||
width: 120,
|
||||
hideInSearch: true,
|
||||
valueType: 'select',
|
||||
ellipsis: true,
|
||||
align: 'center',
|
||||
request: async () => {
|
||||
return await getFieldEnum({ FieldExplainField: 'BUSINESSTYPE', sessionName: 'SHOPTRADE', notformate: true })
|
||||
}
|
||||
@ -128,75 +137,80 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
{
|
||||
title: '商品类型',
|
||||
dataIndex: 'COMMODITY_TYPE',
|
||||
width: 120,
|
||||
hideInSearch: true,
|
||||
ellipsis: true,
|
||||
align: 'center',
|
||||
valueEnum: CommodityData
|
||||
},
|
||||
{
|
||||
title: '商品条码',
|
||||
width: 150,
|
||||
dataIndex: 'COMMODITY_BARCODE',
|
||||
ellipsis: true,
|
||||
hideInSearch: true,
|
||||
align: 'center',
|
||||
},
|
||||
{
|
||||
title: '商品名称',
|
||||
title: <div style={{ textAlign: 'center' }}>商品名称</div>,
|
||||
dataIndex: 'COMMODITY_NAME',
|
||||
width: 200,
|
||||
ellipsis: true,
|
||||
align: 'center',
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '零售价',
|
||||
title: <div style={{ textAlign: 'center' }}>零售价</div>,
|
||||
width: 120,
|
||||
dataIndex: 'COMMODITY_RETAILPRICE',
|
||||
align: 'right',
|
||||
valueType: 'digit',
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '进货价',
|
||||
title: <div style={{ textAlign: 'center' }}>进货价</div>,
|
||||
width: 120,
|
||||
dataIndex: 'COMMODITY_PURCHASEPRICE',
|
||||
align: 'right',
|
||||
valueType: 'digit',
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '商品单位',
|
||||
title: <div style={{ textAlign: 'center' }}>商品单位</div>,
|
||||
width: 120,
|
||||
dataIndex: 'COMMODITY_UNIT',
|
||||
align: 'center',
|
||||
hideInSearch: true,
|
||||
ellipsis: true,
|
||||
},
|
||||
{
|
||||
title: '商品规格',
|
||||
title: <div style={{ textAlign: 'center' }}>商品规格</div>,
|
||||
width: 120,
|
||||
dataIndex: 'COMMODITY_RULE',
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
title: <div style={{ textAlign: 'center' }}>状态</div>,
|
||||
width: 120,
|
||||
dataIndex: 'COMMODITY_STATE',
|
||||
hideInSearch: true,
|
||||
align: 'center',
|
||||
valueType: 'select',
|
||||
valueEnum: { 0: { text: '无效', status: 'error' }, 1: { text: '有效', status: 'success' } },
|
||||
|
||||
},
|
||||
{
|
||||
title: '审核时间',
|
||||
width: 170,
|
||||
align: 'center',
|
||||
ellipsis: true,
|
||||
dataIndex: 'OPERATE_DATE',
|
||||
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>()
|
||||
|
||||
@ -236,21 +250,6 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
</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' }}>
|
||||
<ProCard
|
||||
style={{ width: !collapsible ? "300px" : "60px" }}
|
||||
@ -300,6 +299,7 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
bordered
|
||||
headerTitle={<PageTitleBox props={props} />}
|
||||
search={{ span: 6 }}
|
||||
scroll={{ x: '100%', y: 'calc(100vh - 450px)' }}
|
||||
request={async (params) => {
|
||||
if (!selectedId) {
|
||||
return
|
||||
@ -321,36 +321,61 @@ const shopCommodity: React.FC<{ currentUser: CurrentUser }> = (props) => {
|
||||
if (data.List && data.List.length > 0) {
|
||||
console.log('data', data)
|
||||
// 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: [], success: true }
|
||||
}}
|
||||
toolbar={{
|
||||
actions: [
|
||||
<span style={{ visibility: 'hidden' }}>
|
||||
<ReactHTMLTableToExcel
|
||||
buttonText={'导出excel'}
|
||||
ref={downloadBtnRef}
|
||||
table="table-to-xls-shopCommodity"
|
||||
filename={`门店商品查询${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
||||
sheet="sheet1"
|
||||
/>
|
||||
</span>,
|
||||
// <span style={{ visibility: 'hidden' }}>
|
||||
// <ReactHTMLTableToExcel
|
||||
// buttonText={'导出excel'}
|
||||
// ref={downloadBtnRef}
|
||||
// table="table-to-xls-shopCommodity"
|
||||
// filename={`门店商品查询${searchParams?.StartDate}-${searchParams?.EndDate}`}
|
||||
// sheet="sheet1"
|
||||
// />
|
||||
// </span>,
|
||||
<Button
|
||||
key="new"
|
||||
type="primary"
|
||||
onClick={(e) => {
|
||||
if (reqDetailList && reqDetailList.length > 0) {
|
||||
setShowLoading(true)
|
||||
setTimeout(() => {
|
||||
setShowExportTable(true)
|
||||
setTimeout(() => {
|
||||
exportTable(e)
|
||||
}, 100)
|
||||
}, 100)
|
||||
// 尝试一下 导出新方法
|
||||
exportXlsxFromProColumnsExcelJS(columns,
|
||||
reqDetailList,
|
||||
`门店商品查询${searchParams?.OperateDate_Start}-${searchParams?.OperateDate_End}`,
|
||||
// {
|
||||
// topTitle: `库存信息统计表`, // 顶部大标题
|
||||
// }
|
||||
)
|
||||
} else {
|
||||
message.error('暂无数据可导出!')
|
||||
}
|
||||
|
||||
// if (reqDetailList && reqDetailList.length > 0) {
|
||||
// setShowLoading(true)
|
||||
// setTimeout(() => {
|
||||
// setShowExportTable(true)
|
||||
// setTimeout(() => {
|
||||
// exportTable(e)
|
||||
// }, 100)
|
||||
// }, 100)
|
||||
// } else {
|
||||
// message.error('暂无数据可导出!')
|
||||
// }
|
||||
}}
|
||||
>
|
||||
导出excel
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user