交易暂存

This commit is contained in:
lyp 2025-05-22 11:31:37 +08:00
parent 85b69fb647
commit 6eac101546
11 changed files with 215 additions and 135 deletions

View File

@ -13,6 +13,7 @@ import { goodsDetail, createOrder, confirmPayment } from '../../request/api'
import { showImage } from '../../request/request'
import { useState, useEffect, useContext } from 'react';
import useMessage from "antd/es/message/useMessage";
import { getBuyUrl } from '../../util/AjaxUtils.ts'
// const { TextArea } = Input;
export default function AiShopDetail(props: any) {
const globalDispatchContext = useContext(GlobalDispatchContext);
@ -261,6 +262,7 @@ export default function AiShopDetail(props: any) {
marginLeft: 10,
}}> <a onClick={() => {
// window.open('https://www.aimzhu.com/Seda.html')
getBuyUrl()
}}></a></span>
<div style={{

View File

@ -121,10 +121,13 @@ export default function AppInfo(props: any) {
<div className='appInfoBox'>
<div className='appInfoTitle'></div>
<div className='appInfoText'>
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'>asdkaksd.png</div>
</div>
<div className='appInfoTextItem'>
<div className='appInfoTextItemTitle'> : </div>
<div className='appInfoTextItemText'>asdkaksd.png</div>

View File

@ -16,9 +16,9 @@ export default function EditAppFiles(props: any) {
};
// 处理文件点击预览
const handlePreview = (file: any) => {
console.log(file);
console.log(file);
};
// 上传文件源码文档列表
const [upCodeArray, setUpCodeArray] = useState<any>([])
@ -134,92 +134,98 @@ export default function EditAppFiles(props: any) {
width: '600px',
// background: 'pink'
}}>
<div className='appInfoFormInput' style={{
position: 'relative',
}}>
<div className='FormInputTitle' style={{
}}><span style={{color:'red',}}>*</span></div>
<div style={{
width: '220px',
<div>
<div className='appInfoFormInput' style={{
position: 'relative',
}}>
<Form.Item name="ym" label="" rules={[
// { required: true, message: '请选上传文件' },
{ validator: validateCodeFileUpload }
]}>
<Upload
name="file"
action={uploadFileUrl()}
defaultFileList={upCodeArray}
onChange={({ fileList }) => {
console.log(fileList);
// console.log(upCodeArray);
<div className='FormInputTitle' style={{
}}><span style={{ color: 'red', }}>*</span></div>
<div style={{
width: '220px',
}}>
<Form.Item name="ym" label="" rules={[
// { required: true, message: '请选上传文件' },
{ validator: validateCodeFileUpload }
]}>
<Upload
name="file"
action={uploadFileUrl()}
defaultFileList={upCodeArray}
onChange={({ fileList }) => {
console.log(fileList);
// console.log(upCodeArray);
}}
onRemove={() => {
setUpCodeArray([])
setCodeDis(false)
}}
beforeUpload={beforeUpload}
onPreview={handlePreview}
// onChange={handleUploadChange}
headers={{ 'Auth': `Bearer ${token}` }}
>
<Button icon={<UploadOutlined />} style={{
marginTop: '4px'
}}
disabled={codeDis}
></Button>
</Upload>
</Form.Item>
}}
onRemove={() => {
setUpCodeArray([])
setCodeDis(false)
}}
beforeUpload={beforeUpload}
onPreview={handlePreview}
// onChange={handleUploadChange}
headers={{ 'Auth': `Bearer ${token}` }}
>
<Button icon={<UploadOutlined />} style={{
marginTop: '4px'
}}
disabled={codeDis}
></Button>
</Upload>
</Form.Item>
</div>
<a style={{
position: 'absolute',
top: '10px',
left: '260px',
textWrap: 'nowrap'
}}>[ ]</a>
</div>
<a style={{
position: 'absolute',
top: '10px',
left: '260px',
textWrap: 'nowrap'
}}>[ ]</a>
<a></a>
</div>
<div className='appInfoFormInput' style={{
position: 'relative',
}}>
<div className='FormInputTitle' style={{
}}><span style={{color:'red',}}>*</span></div>
<div style={{
width: '220px',
<div>
<div className='appInfoFormInput' style={{
position: 'relative',
}}>
<Form.Item name="file" label="" rules={[
// { required: true, message: '请上传文件' },
{ validator: validateSoftFileUpload }
]}>
<Upload
name="file"
action={uploadFileUrl()}
defaultFileList={upSoftArray}
onChange={({ fileList }) => {
console.log(fileList);
}}
onRemove={() => {
setUpSoftArray([])
setSoftDis(false)
}}
beforeUpload={beforeUpload}
// onChange={handleUploadChange}
headers={{ 'Auth': `Bearer ${token}` }}
>
<Button icon={<UploadOutlined />} style={{
marginTop: '4px'
}}
disabled={softDis}
></Button>
</Upload>
</Form.Item>
<div className='FormInputTitle' style={{
}}><span style={{ color: 'red', }}>*</span></div>
<div style={{
width: '220px',
}}>
<Form.Item name="file" label="" rules={[
// { required: true, message: '请上传文件' },
{ validator: validateSoftFileUpload }
]}>
<Upload
name="file"
action={uploadFileUrl()}
defaultFileList={upSoftArray}
onChange={({ fileList }) => {
console.log(fileList);
}}
onRemove={() => {
setUpSoftArray([])
setSoftDis(false)
}}
beforeUpload={beforeUpload}
// onChange={handleUploadChange}
headers={{ 'Auth': `Bearer ${token}` }}
>
<Button icon={<UploadOutlined />} style={{
marginTop: '4px'
}}
disabled={softDis}
></Button>
</Upload>
</Form.Item>
</div>
<a style={{
position: 'absolute',
top: '10px',
left: '260px',
textWrap: 'nowrap'
}}>[ ]</a>
</div>
<a style={{
position: 'absolute',
top: '10px',
left: '260px',
textWrap: 'nowrap'
}}>[ ]</a>
<a></a>
</div>
</div>

View File

@ -61,6 +61,7 @@ export default function CopyrightGgoods() {
const copyrightDate = state ? state.copyrightDate : ''; // 版权日期
const copyrightLanguage = state ? state.copyrightLanguage : ''; // 开发语言
// const copyrightType = state ? state.copyrightType : ''; // 软著类型
const goodsFlag = state ? state.goodsFlag : ''; // 商品特价标识
const [data, setData] = useState([]); // 表格数据
@ -121,6 +122,7 @@ export default function CopyrightGgoods() {
goodsDevelop: copyrightLanguage ? copyrightLanguage : '', // 开发语言
// goodsType: copyrightType ? copyrightType.join(',') : '', // 软著类型
goodsType: selectTypeArray.length > 0 ? selectTypeArray.join(',') : '',
goodsFlag: goodsFlag ? goodsFlag : '' // 商品特价标识
})
// console.log(res);
@ -214,8 +216,11 @@ export default function CopyrightGgoods() {
}, [])
useEffect(() => {
getBuyGoodsList(page)
}, [page, selectTypeArray])
}, [page])
useEffect(() => {
setPage(1)
getBuyGoodsList(1)
}, [selectTypeArray])
return (
<div className='copyrightG-goods' style={{ height: `${height}px`, overflow: 'auto' }}>
@ -261,7 +266,7 @@ export default function CopyrightGgoods() {
{data.map((item: any) => {
return (
<div className='goodSBox rightgoods' key={item.goodsId} style={{
height: 300,
// height: 300,
cursor: 'pointer',
}}
onClick={() => {
@ -277,8 +282,17 @@ export default function CopyrightGgoods() {
preview={false}
style={{ maxWidth: '100%' }}
></Image>
<div className='tipsPrice' style={{
display: item.goodsFlag == '特价' ? 'unset' : 'none'
}}></div>
<div className='goodsTime'>
: {item.goodsLastTime}
</div>
</div>
<div className='goodsBot'>
<div className='goodsNameBox'>
<div className='goodsName' title={item.goodsName}>{item.goodsName}</div>
</div>
<div className='goodsPrice'>
<div>
<span style={{
@ -289,13 +303,8 @@ export default function CopyrightGgoods() {
</div>
<div className='goodsNameBox'>
<div className='tipsPrice'></div>
<div className='goodsName' title={item.goodsName}>{item.goodsName}</div>
</div>
<div className='goodsTime'>
: {item.goodsLastTime}
</div>
{/* <div className='goodsBtnBox'>
<Button className='goodsBtn' style={{
display: item.goodsStatus == '1' ? 'none' : 'unset'

View File

@ -323,8 +323,11 @@ export default function ProductRelease() {
}
useEffect(() => {
getGoodsDate(page)
}, [page, selectTypeArray])
}, [page])
useEffect(() => {
getGoodsDate(1)
setPage(1)
}, [selectTypeArray])
useEffect(() => {
getSoftTypeListDate()
}, [])
@ -346,16 +349,16 @@ export default function ProductRelease() {
<div className='typeName'
key={item.dataId}
style={{
color: selectTypeArray.includes(item.dataId)? '#E73B3B' : '#707070',
color: selectTypeArray.includes(item.dataId) ? '#E73B3B' : '#707070',
}}
onClick={()=>{
onClick={() => {
if (selectTypeArray.includes(item.dataId)) {
setSelectTypeArray(selectTypeArray.filter((typeId: any) => typeId !== item.dataId))
}else{
setSelectTypeArray(selectTypeArray.filter((typeId: any) => typeId !== item.dataId))
} else {
setSelectTypeArray([...selectTypeArray, item.dataId])
}
}}
>
>
{item.dataName}
</div>
)
@ -524,8 +527,15 @@ export default function ProductRelease() {
}}
style={{ maxWidth: '100%' }}
></Image>
<div className='goodsTime'>
: {item.goodsLastTime}
</div>
</div>
<div className='goodsBot'>
<div className='goodsNameBox'>
{/* <div className='tipsPrice'>特价</div> */}
<div className='goodsName' title={item.goodsName}>{item.goodsName}</div>
</div>
<div className='goodsPrice'>
<div>
<span style={{
@ -559,27 +569,28 @@ export default function ProductRelease() {
</div>
</div>
<div className='goodsNameBox'>
{/* <div className='tipsPrice'>特价</div> */}
<div className='goodsName' title={item.goodsName}>{item.goodsName}</div>
</div>
<div className='goodsTime'>
: {item.goodsLastTime}
</div>
<div className='goodsBtnBox'>
<Button className='goodsBtn' style={{
display: item.goodsStatus == '1' ? 'none' : 'unset'
display: item.goodsStatus == '1' ? 'none' : 'unset',
width: '80px'
}}
onClick={() => {
edit(item)
}}></Button>
<Button className='goodsBtn' type="primary" style={{
width: '163px',
background:'#0FADAB',
display: item.goodsCheckStatus == '1' || item.goodsCheckStatus == '2' ? 'none' : 'unset'
}} onClick={() => submit(item)}></Button>
<Button className='goodsBtn' type="primary" style={{
width: '80px',
display: item.goodsStatus == '0' && item.goodsCheckStatus == '2' ? 'unset' : 'none'
}} onClick={() => sell(item)}></Button>
<Button className='goodsBtn' type="primary" style={{
width: '80px',
background:'rgb(248, 97, 97)',
display: item.goodsStatus == '0' || item.goodsOrderStatus == '1' ? 'none' : 'unset'
}}
onClick={() => off(item)}></Button>

View File

@ -88,7 +88,7 @@ thead {
/* 使用 grid 布局 */
display: grid;
/* 自动填充列,每列最小宽度 183px最大宽度 1fr */
grid-template-columns: repeat(auto-fill, minmax(183px, 1fr));
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
/* 行间距 10px */
row-gap: 20px;
/* 列间距 10px */
@ -152,19 +152,49 @@ thead {
.goodsImg {
width: 100%;
height: 183px;
height: 245px;
object-fit: cover;
/* background: pink; */
padding: 15px 9px 0px 9px;
box-sizing: border-box;
overflow: hidden;
position: relative;
}
.goodsTime {
font-size: 14px;
color: #e6e6e6;
/* margin-top: 10px; */
position: absolute;
/* background-color: skyblue; */
height: 33px;
background: rgba(11, 70, 75, 0.41);
width: 100%;
left: 0;
bottom: 0;
text-align: center;
line-height: 33px;
}
.tipsPrice {
width: 63px;
height: 32px;
background: #FF9F08;
border-radius: 0px 0px 0px 10px;
color: white;
font-size: 18px;
text-align: center;
line-height: 32px;
position: absolute;
right: 0;
top: 0;
}
.goodsBot {
padding: 10px 5px 10px 5px;
box-sizing: border-box;
/* height: 157px; */
/* background-color: rgb(167, 167, 167); */
/* background-color: rgb(175, 64, 64); */
}
.goodsPrice {
@ -188,22 +218,12 @@ thead {
margin-top: 10px;
}
.tipsPrice {
width: 38px;
height: 23px;
background: #FF9600;
border-radius: 5px;
color: white;
font-size: 12px;
text-align: center;
line-height: 23px;
margin-right: 6px;
}
.goodsName {
width: calc(100% - 29px);
/* background-color: #1bd258; */
font-weight: bold;
/* font-weight: bold; */
font-size: 20px;
overflow: hidden;
text-overflow: ellipsis;
@ -211,15 +231,12 @@ thead {
/* cursor: pointer; */
}
.goodsTime {
font-size: 14px;
color: #707070;
margin-top: 10px;
}
.goodsBtnBox {
display: flex;
margin-top: 10px;
}
.goodsBtn {
@ -268,9 +285,10 @@ thead {
.goodsTypeArray {
display: flex;
font-size: 18px;
flex-wrap: wrap;
flex-wrap: wrap;
}
.typeName{
.typeName {
margin-left: 10px;
margin-bottom: 5px;
/* background-color: pink; */

View File

@ -156,6 +156,7 @@ export default function TransactionOrder() {
width={110}
render={(text) => (
<span style={{ color: '#FF5D15', fontSize: '24px', fontWeight: '700' }}>{text.goodsPrice}</span>
// <span style={{ color: '#FF5D15', fontSize: '24px', fontWeight: '700' }}>1</span>
)} />
<Column title="订单状态" dataIndex="orderStatus" align="center"
width={120}

View File

@ -88,7 +88,8 @@ import topblue from '../../static/appimgs/topblue.png'
import right from '../../static/trademark/right.png'
import yes from '../../static/trademark/yes.png'
import firImg from '../../static/fir.png'
import noFirImg from '../../static/noFir.png'
export default function Index() {
@ -877,6 +878,7 @@ export default function Index() {
const copyrightKeyWordshandleSearch = () => {
setCopyrightKeywords(copyrightNewKeywords)
}
const [specialPrice,setSpecialPrice] = useState(false) //商品特价标识
const copyrightInit = () => {
setMinPrice(null)
setMaxPrice(null)
@ -886,7 +888,10 @@ export default function Index() {
setCopyrightType(null)
setCopyrightNewKeywords('')
setCopyrightKeywords('')
// 清除特价标识
setSpecialPrice(false)
}
useEffect(() => {
if (location.pathname == '/copyright-goods') {
nav('/copyright-goods', {
@ -898,10 +903,12 @@ export default function Index() {
copyrightDate: copyrightDate,
copyrightLanguage: copyrightLanguage,
copyrightType: copyrightType,
// 新增特价标识
goodsFlag:specialPrice?'特价':''
}
})
}
}, [copyrightKeywords, minPrice, maxPrice, sort, copyrightDate, copyrightLanguage, copyrightType])
}, [copyrightKeywords, minPrice, maxPrice, sort, copyrightDate, copyrightLanguage, copyrightType,specialPrice])
// ----------------------------------------------------------------------------------------------
@ -3084,6 +3091,21 @@ export default function Index() {
options={[]}
value={copyrightType}
/>
<Button
icon={<img src={specialPrice?noFirImg:firImg} style={{ width: 15, height: 18 }} />}
style={{
background: specialPrice?'#FF9F08':'#FFF6EF',
color: specialPrice?'white':'#FF9F00 ',
marginLeft: 5, height: 31,
border:'1px solid #FF9F00 ',
}}
onClick={()=>{
// 特价标识
setSpecialPrice(!specialPrice)
}}
>
</Button>
<Button
style={{
marginLeft: 5, height: 31
@ -3096,9 +3118,7 @@ export default function Index() {
>
</Button>
<div >
!
</div>
</div>
</div>
<div style={{ display: tradingSearchBox ? 'block' : 'none', }}>

BIN
src/static/fir.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/static/noFir.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -151,6 +151,16 @@ export function getUseUrl() {
console.error("请求出错:", error);
});
}
// 购买协议
export function getBuyUrl() {
axios.get(`${baseUrl}/operator/app/agreementportal/getrelease/0542d435-dc22-459b-bf4a-28a61afe400b `)
.then((data:any) => {
window.open(`${baseUrl}/operator/route/agreementportal/view?agreementId=${data.data.agreementId}&title=${data.data.title}`)
})
.catch(error => {
console.error("请求出错:", error);
});
}
// 软件委托开发协议
export function getSoftUrl() {
return `${baseUrl}/Seda.html`