Compare commits

...

3 Commits

Author SHA1 Message Date
ylj20011123
e03ffe4902 first commit 2025-08-21 19:14:08 +08:00
ylj20011123
1ce314d533 update 2025-08-19 18:59:04 +08:00
ylj20011123
55eacd99f8 update 2025-08-18 19:09:00 +08:00
29 changed files with 1074 additions and 912 deletions

BIN
dist.zip Normal file

Binary file not shown.

View File

@ -1,6 +1,6 @@
{ {
"name": "ant-design-pro", "name": "ant-design-pro",
"version": "4.5.26", "version": "4.5.35",
"private": true, "private": true,
"description": "An out-of-box UI solution for enterprise applications", "description": "An out-of-box UI solution for enterprise applications",
"scripts": { "scripts": {

BIN
src/assets/tab/upMenu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@ -21,14 +21,14 @@ import Authorized from '@/utils/Authorized';
import RightContent from '@/components/GlobalHeader/RightContent'; import RightContent from '@/components/GlobalHeader/RightContent';
import type { ConnectState } from '@/models/connect'; import type { ConnectState } from '@/models/connect';
import { getMatchMenu } from '@umijs/route-utils'; import { getMatchMenu } from '@umijs/route-utils';
import logo from '../assets/logo.svg'; import logo from '../assets/logo.png';
import './BasicLayout.less' import './BasicLayout.less'
import { DoubleRightOutlined } from '@ant-design/icons'; import { DoubleRightOutlined } from '@ant-design/icons';
import * as Icon from '@ant-design/icons' import * as Icon from '@ant-design/icons'
import IconFont from '@/components/IconFont'; import IconFont from '@/components/IconFont';
import type { CurrentUser } from '@/models/user' import type { CurrentUser } from '@/models/user'
import session from '@/utils/session'; import session from '@/utils/session';
import upMenu from '@/assets/tab/upMenu.svg' import upMenu from '../assets/tab/upMenu.png'
import { getFieldEnum, getFieldEnumTravel, getFieldEnumTree, getFieldGetFieEnumList, getTravelFieldEnumTree, handleGetFieldEnumTreeTravel, handleGetNestingFIELDENUMList } from "@/services/options"; import { getFieldEnum, getFieldEnumTravel, getFieldEnumTree, getFieldGetFieEnumList, getTravelFieldEnumTree, handleGetFieldEnumTreeTravel, handleGetNestingFIELDENUMList } from "@/services/options";
import { handleGetServerpartTree } from '@/pages/basicManage/serverpartAssets/service'; import { handleGetServerpartTree } from '@/pages/basicManage/serverpartAssets/service';
import { handeGetFieldEnumByFieldYN, handeGetNestingFIELDENUMList } from '@/pages/travelMember/service'; import { handeGetFieldEnumByFieldYN, handeGetNestingFIELDENUMList } from '@/pages/travelMember/service';

View File

@ -38,7 +38,7 @@ import interfaceImg from '@/assets/DataVerification/interface.png'
import defaultIcon from '@/assets/brand/defaultIcon.png' import defaultIcon from '@/assets/brand/defaultIcon.png'
import ItemDetail from './components/ItemDetail' import ItemDetail from './components/ItemDetail'
import { dailyVerifyEndaccount, handleGetAccountList, handleGetServiceShopList, submitEndaccountState } from "@/pages/DataVerification/service"; import { dailyVerifyEndaccount, handleGetAccountList, handleGetServiceShopList, submitEndaccountState } from "@/pages/DataVerification/service";
import changeIcon from '@/assets/versionChange.svg' import changeIcon from '../../../assets/versionChange.png'
import ProForm, { ProFormInstance, ProFormSelect } from "@ant-design/pro-form"; import ProForm, { ProFormInstance, ProFormSelect } from "@ant-design/pro-form";
import UnUploadDetail from "./components/unUploadDetail"; import UnUploadDetail from "./components/unUploadDetail";
import data from "@/pages/newDataAnalysis/areaVehicle/data"; import data from "@/pages/newDataAnalysis/areaVehicle/data";

View File

@ -557,7 +557,7 @@ const RoleList: React.FC<{ currentUser: CurrentUser | undefined }> = (props) =>
onClick={() => { onClick={() => {
getRoleMenu(currentUser?.TopSystemRoleId) getRoleMenu(currentUser?.TopSystemRoleId)
// 新增角色时,若账号为内部账号则默认角色父级为-1 ,否则则为账号所属角色的父级角色 // 新增角色时,若账号为内部账号则默认角色父级为-1 ,否则则为账号所属角色的父级角色
setCurrentRow({ SYSTEMROLE_PID: currentUser?.TopSystemRoleId, SYSTEMROLE_STATUS: 1 }) setCurrentRow({ SYSTEMROLE_PID: bigTabSelect === '1' ? currentUser?.TopSystemRoleId : '-1', SYSTEMROLE_STATUS: 1 })
handleModalVisible(true) handleModalVisible(true)
}} }}
></Button>, ></Button>,

View File

@ -238,6 +238,7 @@ const ChosePlayers = ({ onRef, defaultPerson, showChosePlayer, currentUser, moda
pageSize: 999999 pageSize: 999999
} }
const list = await getRoleList(req) const list = await getRoleList(req)
console.log('listlistlistlistlist', list);
setTreeView(list) setTreeView(list)
// 请求供应商的左边那棵树的数据 // 请求供应商的左边那棵树的数据

View File

@ -376,6 +376,7 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser }> = (props) => {
} }
const req: any = { const req: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser.ProvinceCode,
OPERATION_TYPES: selectedId || '11', OPERATION_TYPES: selectedId || '11',
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
APPROVALROUTE_STATES: params?.APPROVALROUTE_STATE || '', APPROVALROUTE_STATES: params?.APPROVALROUTE_STATE || '',
@ -515,6 +516,7 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser }> = (props) => {
USER_PATTERN: res?.USER_PATTERN, USER_PATTERN: res?.USER_PATTERN,
APPROVALSTAFF_ID: res?.APPROVALSTAFF_ID ? res?.APPROVALSTAFF_ID.toString() : null, APPROVALSTAFF_ID: res?.APPROVALSTAFF_ID ? res?.APPROVALSTAFF_ID.toString() : null,
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
PROVINCE_CODE: currentUser.ProvinceCode,
// RECORD_DATE:moment().format('YYYY-MM-DD'), // RECORD_DATE:moment().format('YYYY-MM-DD'),
NEXT_STATE: res?.NEXT_STATE NEXT_STATE: res?.NEXT_STATE
} }
@ -526,6 +528,7 @@ const ServiceConfig: React.FC<{ currentUser: CurrentUser }> = (props) => {
USER_PATTERN: res?.USER_PATTERN, USER_PATTERN: res?.USER_PATTERN,
APPROVALSTAFF_ID: res?.APPROVALSTAFF_ID ? res?.APPROVALSTAFF_ID.toString() : null, APPROVALSTAFF_ID: res?.APPROVALSTAFF_ID ? res?.APPROVALSTAFF_ID.toString() : null,
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
PROVINCE_CODE: currentUser.ProvinceCode,
// RECORD_DATE:moment().format('YYYY-MM-DD'), // RECORD_DATE:moment().format('YYYY-MM-DD'),
NEXT_STATE: res?.NEXT_STATE NEXT_STATE: res?.NEXT_STATE
} }

View File

@ -19,7 +19,7 @@ import type { Dispatch } from 'umi';
import type { StateType } from '@/models/login'; import type { StateType } from '@/models/login';
import type { LoginParamsType } from '@/services/login'; import type { LoginParamsType } from '@/services/login';
import type { ConnectState } from '@/models/connect'; import type { ConnectState } from '@/models/connect';
import loginBg from '@/assets/login-bg.png'; import loginBg from '../../../assets/login-bg.png';
import styles from './index.less'; import styles from './index.less';
import { line } from '@antv/g2plot'; import { line } from '@antv/g2plot';
import session from '@/utils/session'; import session from '@/utils/session';

View File

@ -914,6 +914,8 @@ const BrandTable: React.FC<{ currentUser: CurrentUser }> = ({ currentUser }) =>
} }
const data = await getServiceDetail(req) const data = await getServiceDetail(req)
setServiceName(data.SERVERPART_NAME) setServiceName(data.SERVERPART_NAME)
console.log('datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatavv', data);
setServiceDetail(data) setServiceDetail(data)
} }
const typeObj = { const typeObj = {

View File

@ -27,10 +27,11 @@ import numeral from 'numeral';
import { exportExcel } from '@/utils/utils'; import { exportExcel } from '@/utils/utils';
import { getYSSellMasterList } from './service'; import { getYSSellMasterList } from './service';
import { getUserShopTree } from '@/services/options'; import { getMoney, getUserShopTree } from '@/services/options';
import '../../style.less'; import '../../style.less';
import './salesFlow.less' import './salesFlow.less'
import { getYSSellMasterListAllData } from '@/pages/reports/BusinessAnalysis/saleFlow/service';
const { Text } = Typography; const { Text } = Typography;
@ -52,6 +53,7 @@ const CommoditysaleTable: React.FC<{ currentUser: CurrentUser | undefined }> = (
const { loading: shopLoading, data: shopTree } = useRequest(() => { return getUserShopTree(currentUser?.ID) }) const { loading: shopLoading, data: shopTree } = useRequest(() => { return getUserShopTree(currentUser?.ID) })
const defaultShops = currentUser?.ServerpartShopIds ? currentUser?.ServerpartShopIds.split(',').map(Number) : [] const defaultShops = currentUser?.ServerpartShopIds ? currentUser?.ServerpartShopIds.split(',').map(Number) : []
const [shopId, setShopId] = useState<[]>(); // 选择的门店 根据选择的门店筛选数据结果 const [shopId, setShopId] = useState<[]>(); // 选择的门店 根据选择的门店筛选数据结果
const [otherData, setOtherData] = useState<any>()
const columns: ProColumns<YSSELLMASTERModel>[] = [ const columns: ProColumns<YSSELLMASTERModel>[] = [
@ -200,21 +202,22 @@ const CommoditysaleTable: React.FC<{ currentUser: CurrentUser | undefined }> = (
search={{ span: 6 }} search={{ span: 6 }}
request={async (params) => { request={async (params) => {
if (shopId && shopId.length > 0) { if (shopId && shopId.length > 0) {
const data = await getYSSellMasterList({ const data = await getYSSellMasterListAllData({
...params, ...params,
SERVERPARTSHOP_ID: shopId && shopId.length > 0 ? shopId.toString() : currentUser?.ServerpartShopIds, SERVERPARTSHOP_ID: shopId && shopId.length > 0 ? shopId.toString() : currentUser?.ServerpartShopIds,
}); });
setReqDetailList(data.data); setReqDetailList(data.data);
console.log('data', data.data); console.log('data', data);
const list: any = JSON.parse(JSON.stringify(data.data)) const list: any = JSON.parse(JSON.stringify(data.List))
if (list && list.length > 0) { if (list && list.length > 0) {
list.forEach((item: any, index: number) => { list.forEach((item: any, index: number) => {
item.index = index + 1 item.index = index + 1
}) })
} }
console.log('list', list); console.log('list', list);
data.data = list data.List = list
return data; setOtherData(data.OtherData)
return { data: data.List, success: true };
} }
return { data: [], success: true } return { data: [], success: true }
}} }}
@ -243,16 +246,28 @@ const CommoditysaleTable: React.FC<{ currentUser: CurrentUser | undefined }> = (
}} }}
tableExtraRender={ tableExtraRender={
(_, data) => { (_, data) => {
if (data) { if (data) {
const devicesList: any = []
const reduceData = data.reduce(( const reduceData = data.reduce((
p: { SELLMASTER_OFFPRICE: number, SELLMASTER_COUNT: number, SELLMASTER_AMOUNT: number, MACHINECODE: string[], payway: {}, mobilePay: {} }, p: {
SELLMASTER_OFFPRICE: number,
SELLMASTER_COUNT: number,
SELLMASTER_AMOUNT: number,
MACHINECODE: string[],
payway: {},
mobilePay: {}
},
currentValue: YSSELLMASTERModel) => { currentValue: YSSELLMASTERModel) => {
const previousValue = { ...p } const previousValue = { ...p }
previousValue.SELLMASTER_COUNT += currentValue.SELLMASTER_COUNT || 0; // 销售数量 previousValue.SELLMASTER_COUNT += currentValue.SELLMASTER_COUNT || 0; // 销售数量
previousValue.SELLMASTER_OFFPRICE += currentValue.SELLMASTER_OFFPRICE || 0; // 优惠金额 previousValue.SELLMASTER_OFFPRICE += currentValue.SELLMASTER_OFFPRICE || 0; // 优惠金额
previousValue.SELLMASTER_AMOUNT += currentValue.SELLMASTER_AMOUNT || 0; // 实收金额 previousValue.SELLMASTER_AMOUNT += currentValue.SELLMASTER_AMOUNT || 0; // 实收金额
if (devicesList.indexOf(currentValue.MACHINECODE) === -1) {
devicesList.push(currentValue.MACHINECODE)
}
if (currentValue.PAYMENT_TYPE === 1010 || currentValue.PAYMENT_TYPE === 1020) { if (currentValue.PAYMENT_TYPE === 1010 || currentValue.PAYMENT_TYPE === 1020) {
previousValue.payway['移动'] += currentValue.SELLMASTER_AMOUNT previousValue.payway['移动'] += currentValue.SELLMASTER_AMOUNT
if (!previousValue.mobilePay[currentValue.PAYMENT_TYPE_TEXT]) { // 移动支付方式 if (!previousValue.mobilePay[currentValue.PAYMENT_TYPE_TEXT]) { // 移动支付方式
@ -270,60 +285,61 @@ const CommoditysaleTable: React.FC<{ currentUser: CurrentUser | undefined }> = (
previousValue.MACHINECODE.push(currentValue.MACHINECODE); // 收银机号 previousValue.MACHINECODE.push(currentValue.MACHINECODE); // 收银机号
} }
return previousValue return previousValue
}, { SELLMASTER_OFFPRICE: 0, SELLMASTER_COUNT: 0, SELLMASTER_AMOUNT: 0, MACHINECODE: [], payway: { '移动': 0, '现金': 0, }, mobilePay: {} }); }, {
console.log('reduceData', reduceData); SELLMASTER_OFFPRICE: 0,
SELLMASTER_COUNT: 0,
SELLMASTER_AMOUNT: 0,
MACHINECODE: [],
payway: { '移动': 0, '现金': 0, },
mobilePay: {}
});
return <div style={{ paddingLeft: 24 }}> return <div style={{ paddingLeft: 24 }}>
<Descriptions <Descriptions
title={<Text type="success" style={{ color: "#1890ff", fontSize: 14 }}></Text>} title={<Text type="success" style={{ color: "#1890ff", fontSize: 14 }}></Text>}
size="small" column={5} size="small" column={7}
className="commity-sale-description" className="commity-sale-description"
contentStyle={{ fontWeight: "bolder" }} labelStyle={{ color: "#00000073" }} contentStyle={{ fontWeight: "bolder" }} labelStyle={{ color: "#00000073" }}
> >
<Descriptions.Item className='mobileMoney' label="移动支付"> <Descriptions.Item label="客单数量">{numeral(data.length).format('0,0')}<Text
¥<span className='mobileMoneyText'>{numeral(reduceData.payway['移动']).format('0,0.00')}</span> type="secondary"> </Text></Descriptions.Item>
</Descriptions.Item> <Descriptions.Item
<Descriptions.Item label="现金支付">¥{numeral(reduceData.payway['现金']).format('0,0.00')}</Descriptions.Item> label="实收金额">¥{numeral(reduceData.SELLMASTER_AMOUNT).format('0,0.00')}</Descriptions.Item>
<Descriptions.Item label="实收金额">¥{numeral(reduceData.SELLMASTER_AMOUNT).format('0,0.00')}</Descriptions.Item> <Descriptions.Item
</Descriptions> label="优惠金额">¥{numeral(reduceData.SELLMASTER_OFFPRICE).format('0,0.00')}</Descriptions.Item>
<Descriptions size="small" className="commity-sale-description" column={5} contentStyle={{ fontWeight: "bolder" }} labelStyle={{ color: "#00000073" }}> <Descriptions.Item
<Descriptions.Item label="客单数量">{numeral(data.length).format('0,0')}<Text type="secondary"> </Text></Descriptions.Item> label="客单均价">¥{numeral(reduceData.SELLMASTER_AMOUNT / data.length).format('0,0.00')}</Descriptions.Item>
<Descriptions.Item label="优惠金额">¥{numeral(reduceData.SELLMASTER_OFFPRICE).format('0,0.00')}</Descriptions.Item> <Descriptions.Item label="销售数量">{numeral(reduceData.SELLMASTER_COUNT).format('0,0')}<Text
<Descriptions.Item label="收银机">{numeral(reduceData.MACHINECODE.length).format('0,0')}<Text type="secondary"> </Text></Descriptions.Item> type="secondary"> </Text></Descriptions.Item>
</Descriptions> <Descriptions.Item label="设备数量">{devicesList && devicesList.length > 0 ? devicesList.length : '-'}</Descriptions.Item>
<Descriptions size="small" className="commity-sale-description" column={5} contentStyle={{ fontWeight: "bolder" }} labelStyle={{ color: "#00000073" }}> <Descriptions.Item label="统计时间">{moment().format('YYYY-MM-DD')}</Descriptions.Item>
<Descriptions.Item label="销售数量">{numeral(reduceData.SELLMASTER_COUNT).format('0,0')}<Text type="secondary"> </Text></Descriptions.Item>
<Descriptions.Item label="客单均价">¥{numeral(reduceData.SELLMASTER_AMOUNT / data.length).format('0,0.00')}</Descriptions.Item>
<Descriptions.Item label="商品均价">¥{numeral(reduceData.SELLMASTER_AMOUNT / reduceData.SELLMASTER_COUNT).format('0,0.00')}</Descriptions.Item>
</Descriptions> </Descriptions>
{/* <Descriptions <Descriptions
size="small" title={<Text type="success" style={{ color: "#1890ff", fontSize: 14 }}></Text>}
column={5} size="small" column={7}
className="commity-sale-description" className="commity-sale-description"
contentStyle={{ fontWeight: "bolder" }} labelStyle={{ color: "#00000073" }} contentStyle={{ fontWeight: "bolder" }} labelStyle={{ color: "#00000073" }}
> >
{ <Descriptions.Item
Object.keys(reduceData.payway).reverse().map((n, index) => { label="现金支付">{otherData?.CASH ? `¥${numeral(getMoney(otherData?.CASH)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
if (n === '移动') { <Descriptions.Item
return <Descriptions.Item span={index === 1 ? 4 : 3} label={`${n}支付`}>¥ label="微信支付">{otherData?.TICKETBILL ? `¥${numeral(getMoney(otherData?.TICKETBILL)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
<Space>{numeral(reduceData.payway[n]).format('0,0.00')}{() => { <Descriptions.Item label="支付宝支付">{otherData?.OTHERPAY ? `¥${numeral(getMoney(otherData?.OTHERPAY)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
return (reduceData.payway[n] > 0 && <><Text type="secondary">(</Text>{ <Descriptions.Item label="云闪付">{otherData?.CREDITCARD ? `¥${numeral(getMoney(otherData?.CREDITCARD)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
Object.keys(reduceData.mobilePay).map(m => <Descriptions.Item label="银联记账">{otherData?.YUNSHANFU ? `¥${numeral(getMoney(otherData?.YUNSHANFU)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
<Text type="secondary">{m}: ¥{numeral(reduceData.mobilePay[m]).format('0,0.00')}</Text>) <Descriptions.Item label="企业会员">{otherData?.COUPONTYPE_2010 ? `¥${numeral(getMoney(otherData?.COUPONTYPE_2010)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
}<Text type="secondary">)</Text></>) <Descriptions.Item label="电子优惠券">{otherData?.COUPONTYPE_2020 ? `¥${numeral(getMoney(otherData?.COUPONTYPE_2020)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
}} </Descriptions>
</Space> <Descriptions size="small" className="commity-sale-description" column={7}
</Descriptions.Item> contentStyle={{ fontWeight: "bolder" }} labelStyle={{ color: "#00000073" }}>
} <Descriptions.Item label="大巴优惠券">{otherData?.COUPONTYPE_2030 ? `¥${numeral(getMoney(otherData?.COUPONTYPE_2030)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
return <Descriptions.Item label={`${n}支付`} span={1} >¥{numeral(reduceData.payway[n]).format('0,0.00')}</Descriptions.Item> <Descriptions.Item label="团购餐券">{otherData?.COUPONTYPE_2040 ? `¥${numeral(getMoney(otherData?.COUPONTYPE_2040)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
}) <Descriptions.Item label="促销流水">{otherData?.SELLMASTERTYPE_1010 ? `¥${numeral(getMoney(otherData?.SELLMASTERTYPE_1010)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
} <Descriptions.Item label="香烟销售">{otherData?.SELLMASTERTYPE_1020 ? `¥${numeral(getMoney(otherData?.SELLMASTERTYPE_1020)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
<Descriptions.Item label="在线订单">{otherData?.SELLMASTERTYPE_1030 ? `¥${numeral(getMoney(otherData?.SELLMASTERTYPE_1030)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
</Descriptions> */} <Descriptions.Item label="稽核补录">{otherData?.SELLMASTERTYPE_1040 ? `¥${numeral(getMoney(otherData?.SELLMASTERTYPE_1040)).format('0,0.00')}` : '¥0.00'}</Descriptions.Item>
</Descriptions>
</div> </div>
} }
return <></> return <></>
} }

View File

@ -416,6 +416,7 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
useEffect(async () => { useEffect(async () => {
const req: any = { const req: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100100", OPERATION_TYPES: "100100",
@ -434,7 +435,7 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
} }
// 判断当前用户 是否有新增权限 // 判断当前用户 是否有新增权限
let have: boolean = false let have: boolean = false
let idList: any = firstSetp.APPROVALSTAFF_ID.split(',') let idList: any = firstSetp && firstSetp.APPROVALSTAFF_ID ? firstSetp.APPROVALSTAFF_ID.split(',') : ""
console.log('idList', idList); console.log('idList', idList);
if (idList.indexOf(currentUser?.ID.toString()) !== -1) { if (idList.indexOf(currentUser?.ID.toString()) !== -1) {
@ -867,6 +868,8 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
}]} }]}
request={async () => { request={async () => {
const data = await getServerpartTree(currentUser?.ProvinceCode, currentUser?.CityAuthority, true, true, true) const data = await getServerpartTree(currentUser?.ProvinceCode, currentUser?.CityAuthority, true, true, true)
console.log('data321312', data);
const list: any = [] const list: any = []
if (data && data.length > 0) { if (data && data.length > 0) {
data.forEach((item: any) => { data.forEach((item: any) => {
@ -876,9 +879,9 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
}) })
} }
}) })
data.forEach((item: any) => { // data.forEach((item: any) => {
list.push({ label: item.label, value: item.value }) // list.push({ label: item.label, value: item.value })
}) // })
} }
return list return list
}} }}
@ -904,6 +907,7 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
request={async () => { request={async () => {
const reqState: any = { const reqState: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100100", OPERATION_TYPES: "100100",

View File

@ -576,6 +576,7 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
useEffect(async () => { useEffect(async () => {
const req: any = { const req: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100200", OPERATION_TYPES: "100200",
@ -594,7 +595,7 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
} }
// 判断当前用户 是否有新增权限 // 判断当前用户 是否有新增权限
let have: boolean = false let have: boolean = false
let idList: any = firstSetp.APPROVALSTAFF_ID.split(',') let idList: any = firstSetp && firstSetp.APPROVALSTAFF_ID ? firstSetp.APPROVALSTAFF_ID.split(',') : []
console.log('idList', idList); console.log('idList', idList);
if (idList.indexOf(currentUser?.ID.toString()) !== -1) { if (idList.indexOf(currentUser?.ID.toString()) !== -1) {
@ -1037,9 +1038,9 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
}) })
} }
}) })
data.forEach((item: any) => { // data.forEach((item: any) => {
list.push({ label: item.label, value: item.value }) // list.push({ label: item.label, value: item.value })
}) // })
} }
return list return list
}} }}
@ -1064,6 +1065,7 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
request={async () => { request={async () => {
const reqState: any = { const reqState: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100210", OPERATION_TYPES: "100210",
@ -1123,6 +1125,7 @@ const ProductChangeInfoApproval: React.FC<{ currentUser: CurrentUser }> = (props
console.log('approveCurrentRowapproveCurrentRowapproveCurrentRow', currentRow); console.log('approveCurrentRowapproveCurrentRowapproveCurrentRow', currentRow);
const reqState: any = { const reqState: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100210", OPERATION_TYPES: "100210",

View File

@ -546,6 +546,7 @@ const ProductChangePriceApproval: React.FC<{ currentUser: CurrentUser }> = (prop
useEffect(async () => { useEffect(async () => {
const req: any = { const req: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100200", OPERATION_TYPES: "100200",
@ -564,7 +565,7 @@ const ProductChangePriceApproval: React.FC<{ currentUser: CurrentUser }> = (prop
} }
// 判断当前用户 是否有新增权限 // 判断当前用户 是否有新增权限
let have: boolean = false let have: boolean = false
let idList: any = firstSetp.APPROVALSTAFF_ID.split(',') let idList: any = firstSetp && firstSetp.APPROVALSTAFF_ID ? firstSetp.APPROVALSTAFF_ID.split(',') : []
console.log('idList', idList); console.log('idList', idList);
if (idList.indexOf(currentUser?.ID.toString()) !== -1) { if (idList.indexOf(currentUser?.ID.toString()) !== -1) {
@ -1084,9 +1085,9 @@ const ProductChangePriceApproval: React.FC<{ currentUser: CurrentUser }> = (prop
}) })
} }
}) })
data.forEach((item: any) => { // data.forEach((item: any) => {
list.push({ label: item.label, value: item.value }) // list.push({ label: item.label, value: item.value })
}) // })
} }
return list return list
}} }}
@ -1111,6 +1112,7 @@ const ProductChangePriceApproval: React.FC<{ currentUser: CurrentUser }> = (prop
request={async () => { request={async () => {
const reqState: any = { const reqState: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100200", OPERATION_TYPES: "100200",
@ -1166,6 +1168,7 @@ const ProductChangePriceApproval: React.FC<{ currentUser: CurrentUser }> = (prop
request={async () => { request={async () => {
const reqState: any = { const reqState: any = {
SearchParameter: { SearchParameter: {
PROVINCE_CODE: currentUser?.ProvinceCode,
APPROVALROUTE_STATES: "", APPROVALROUTE_STATES: "",
APPROVALROUTE_VALID: 1, APPROVALROUTE_VALID: 1,
OPERATION_TYPES: "100200", OPERATION_TYPES: "100200",

View File

@ -140,10 +140,10 @@ const commodityInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
}) })
} }
serverpartList.unshift({ // serverpartList.unshift({
label: "全部", // label: "全部",
value: serverpartId // value: ''
}) // })
return serverpartList return serverpartList
}, },
fieldProps: { fieldProps: {
@ -237,7 +237,7 @@ const commodityInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
title: <div style={{ textAlign: 'center' }}></div>, title: <div style={{ textAlign: 'center' }}></div>,
width: 80, width: 80,
dataIndex: 'COMMODITY_UNIT', dataIndex: 'COMMODITY_UNIT',
align: 'right', align: 'center',
hideInSearch: true, hideInSearch: true,
}, },
{ {
@ -349,7 +349,7 @@ const commodityInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
} }
}) })
} }
formRef.current?.setFieldsValue({ ServerpartID: serverpartId }) // formRef.current?.setFieldsValue({ ServerpartID: serverpartId })
} }
if (type === '1') { if (type === '1') {

View File

@ -1169,6 +1169,14 @@ const SupplierList: React.FC<{ currentUser: CurrentUser | undefined }> = ({ curr
multiple: true, multiple: true,
onPreview: async (file) => { onPreview: async (file) => {
}, },
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
beforeUpload: (file, files) => { beforeUpload: (file, files) => {
setFileList([...fileList, ...files]) setFileList([...fileList, ...files])
return false return false

View File

@ -550,6 +550,14 @@ const LostandFoundAPPliance: React.FC<{ currentUser: CurrentUser }> = (props) =>
beforeUpload, beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
// fileList: fileList, // 绑定 fileList // fileList: fileList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
console.log('info', info); console.log('info', info);
console.log('fileList', fileList); console.log('fileList', fileList);

View File

@ -345,6 +345,14 @@ const LostandFoundReview: React.FC<{ currentUser: CurrentUser | undefined }> = (
beforeUpload, beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
// fileList: fileList, // 绑定 fileList // fileList: fileList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
console.log('info', info); console.log('info', info);
console.log('fileList', fileList); console.log('fileList', fileList);

View File

@ -559,6 +559,14 @@ const MallBrandManage: React.FC<{ currentUser: CurrentUser }> = (props) => {
beforeUpload, beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
fileList: fileList, // 绑定 fileList fileList: fileList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = fileList.findIndex(n => n.uid === info.file.uid); const index = fileList.findIndex(n => n.uid === info.file.uid);

View File

@ -514,8 +514,17 @@ const MerchantEvaluationManage: React.FC<{ currentUser: CurrentUser, isComponent
listType="picture-card" listType="picture-card"
accept="image/*" accept="image/*"
fieldProps={{ fieldProps={{
onPreview: handlePreview onPreview: handlePreview,
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
}} }}
/> />
</Col> </Col>

View File

@ -842,6 +842,14 @@ const OrderProductManage: React.FC<{ currentUser: CurrentUser | undefined }> = (
maxCount: 1, maxCount: 1,
onPreview: handlePreview, onPreview: handlePreview,
fileList: fileList, // 绑定 fileList fileList: fileList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = fileList.findIndex(n => n.uid === info.file.uid); const index = fileList.findIndex(n => n.uid === info.file.uid);

View File

@ -1410,6 +1410,14 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
handlePreview(1) handlePreview(1)
}, },
fileList: mainImgList, // 绑定 fileList fileList: mainImgList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = mainImgList.findIndex(n => n.uid === info.file.uid); const index = mainImgList.findIndex(n => n.uid === info.file.uid);
@ -1461,6 +1469,14 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
handlePreview(2) handlePreview(2)
}, },
fileList: headerImgList, // 绑定 fileList fileList: headerImgList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = headerImgList.findIndex(n => n.uid === info.file.uid); const index = headerImgList.findIndex(n => n.uid === info.file.uid);
@ -1512,6 +1528,14 @@ const COMMODITYTable: React.FC<{ currentUser: CurrentUser | undefined }> = (prop
handlePreview(3) handlePreview(3)
}, },
fileList: detailImgList, // 绑定 fileList fileList: detailImgList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = detailImgList.findIndex(n => n.uid === info.file.uid); const index = detailImgList.findIndex(n => n.uid === info.file.uid);

View File

@ -1316,6 +1316,14 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
beforeUpload, beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
fileList: mainImgList, // 绑定 fileList fileList: mainImgList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = mainImgList.findIndex(n => n.uid === info.file.uid); const index = mainImgList.findIndex(n => n.uid === info.file.uid);
@ -1365,6 +1373,14 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
beforeUpload, beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
fileList: headerImgList, // 绑定 fileList fileList: headerImgList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = headerImgList.findIndex(n => n.uid === info.file.uid); const index = headerImgList.findIndex(n => n.uid === info.file.uid);
@ -1416,6 +1432,14 @@ const ShoppingMallProductSearch: React.FC<{ currentUser: CurrentUser | undefined
beforeUpload, beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
fileList: detailImgList, // 绑定 fileList fileList: detailImgList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
if (info.file.status === 'removed') { if (info.file.status === 'removed') {
const index = detailImgList.findIndex(n => n.uid === info.file.uid); const index = detailImgList.findIndex(n => n.uid === info.file.uid);

View File

@ -488,6 +488,14 @@ const SummaryofMerchantReviews: React.FC<{ currentUser: CurrentUser, isComponent
accept="image/*" accept="image/*"
fieldProps={{ fieldProps={{
onPreview: handlePreview, onPreview: handlePreview,
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
}} }}
/> />
</Col> </Col>

View File

@ -107,6 +107,8 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
fixed: "left", fixed: "left",
render: (_, record) => { render: (_, record) => {
return <a onClick={() => { return <a onClick={() => {
console.log('recordrecord', record);
let imgList: any = [] let imgList: any = []
if (record?.ImageList && record?.ImageList.length > 0) { if (record?.ImageList && record?.ImageList.length > 0) {
record?.ImageList.forEach((item: any) => { record?.ImageList.forEach((item: any) => {
@ -345,16 +347,20 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'), OPERATE_DATE: moment().format('YYYY-MM-DD HH:mm:ss'),
} }
} }
handleConfirmLoading(true)
const data = await handeSynchroSCENICAREA(req) const data = await handeSynchroSCENICAREA(req)
console.log('datadatadatadata', data); console.log('datadatadatadata', data);
handleConfirmLoading(false)
if (data.Result_Code === 100) { if (data.Result_Code === 100) {
console.log('res.SCENICAREA_Imageres.SCENICAREA_Imageres.SCENICAREA_Image', res.SCENICAREA_Image);
if (res.SCENICAREA_Image && res.SCENICAREA_Image.length > 0) { if (res.SCENICAREA_Image && res.SCENICAREA_Image.length > 0) {
const formData = new FormData(); const formData = new FormData();
res.SCENICAREA_Image.forEach((file: any) => { res.SCENICAREA_Image.forEach((file: any) => {
if (!file.ImageUrl) {
formData.append('files[]', file.originFileObj); formData.append('files[]', file.originFileObj);
formData.append('ImageName', typeof file !== 'string' ? file?.name : ''); formData.append('ImageName', typeof file !== 'string' ? file?.name : '');
}
}); });
formData.append('TableId', data.Result_Data.SCENICAREA_ID); formData.append('TableId', data.Result_Data.SCENICAREA_ID);
formData.append('TableType', '1305'); formData.append('TableType', '1305');
@ -365,6 +371,8 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
handleSetlogSave(`${currentRow?.SCENICAREA_ID ? `更新${currentRow?.SCENICAREA_NAME}景区` : `新增${data.Result_Data.SCENICAREA_NAME}`}信息`) handleSetlogSave(`${currentRow?.SCENICAREA_ID ? `更新${currentRow?.SCENICAREA_NAME}景区` : `新增${data.Result_Data.SCENICAREA_NAME}`}信息`)
handleConfirmLoading(false)
message.success("更新成功!") message.success("更新成功!")
setCurrentRow(undefined) setCurrentRow(undefined)
formRef?.current?.resetFields() formRef?.current?.resetFields()
@ -372,6 +380,7 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
actionRef.current?.reload() actionRef.current?.reload()
setFileList([]) setFileList([])
} else { } else {
handleConfirmLoading(false)
message.error(data.Result_Desc) message.error(data.Result_Desc)
} }
}; };
@ -682,9 +691,17 @@ const scenicSpotConfig: React.FC<{ currentUser: CurrentUser | undefined }> = (pr
listType="picture-card" listType="picture-card"
accept="image/*" accept="image/*"
fieldProps={{ fieldProps={{
beforeUpload, beforeUpload: beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
fileList: fileList, // 绑定 fileList fileList: fileList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
console.log('info', info); console.log('info', info);
console.log('fileList', fileList); console.log('fileList', fileList);

View File

@ -892,6 +892,14 @@ const serverpartInfo: React.FC<{ currentUser: CurrentUser }> = (props) => {
beforeUpload, beforeUpload,
onPreview: handlePreview, onPreview: handlePreview,
fileList: fileList, // 绑定 fileList fileList: fileList, // 绑定 fileList
customRequest: ({ file, onSuccess }) => {
// 自定义上传,不实际发送请求
setTimeout(() => {
if (onSuccess) {
onSuccess({});
}
}, 0);
},
onChange: async (info: any) => { onChange: async (info: any) => {
console.log('info', info); console.log('info', info);
console.log('fileList', fileList); console.log('fileList', fileList);

View File

@ -1,4 +1,4 @@
// 由 scripts/writeVersion.js 自动生成 // 由 scripts/writeVersion.js 自动生成
export const VERSION = "4.5.26"; export const VERSION = "4.5.35";
export const GIT_HASH = "c145b6c"; export const GIT_HASH = "1ce314d";
export const BUILD_TIME = "2025-08-15T08:20:30.752Z"; export const BUILD_TIME = "2025-08-21T11:03:22.048Z";