合同下载
This commit is contained in:
parent
ea49a44c0f
commit
0dc89773a1
213
src/components/ContractModal/ContractModal.tsx
Normal file
213
src/components/ContractModal/ContractModal.tsx
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
import React, { useState } from 'react'
|
||||||
|
import { post,Axios,get } from "../../util/AjaxUtils.ts";
|
||||||
|
import useMessage from "antd/es/message/useMessage";
|
||||||
|
import {
|
||||||
|
Form,
|
||||||
|
Modal,
|
||||||
|
Input, Button
|
||||||
|
} from 'antd';
|
||||||
|
import ContractText from '../ContractText/ContractText'
|
||||||
|
import { useDispatch } from 'react-redux'
|
||||||
|
export default function ContractModal(props: any) {
|
||||||
|
const [messageApi, messageApiHolder] = useMessage();
|
||||||
|
const [modalOpen, setModalOpen] = useState(false)
|
||||||
|
const [form] = Form.useForm<any>();
|
||||||
|
const [name, setName] = useState(''); // 甲方姓名状态
|
||||||
|
const [phone, setPhone] = useState(''); // 电话状态
|
||||||
|
const [address, setAddress] = useState(''); // 地址状态
|
||||||
|
const onFinish = (values: any) => {
|
||||||
|
setName(values.name);
|
||||||
|
setPhone(values.phone);
|
||||||
|
setAddress(values.address);
|
||||||
|
setModalOpen(true)
|
||||||
|
}
|
||||||
|
const dispath = useDispatch()
|
||||||
|
const getContractArray = (page: any) => {
|
||||||
|
get({
|
||||||
|
messageApi,
|
||||||
|
url: `/api/contract/management/listpage/self`,
|
||||||
|
config: {
|
||||||
|
params: {
|
||||||
|
page: page,
|
||||||
|
rows: 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSuccess(data: any) {
|
||||||
|
console.log(data);
|
||||||
|
dispath({
|
||||||
|
type: 'upContractArray',
|
||||||
|
val: data.data.rows
|
||||||
|
})
|
||||||
|
dispath({
|
||||||
|
type: 'upContractTotal',
|
||||||
|
val: data.data.total
|
||||||
|
})
|
||||||
|
// setContractArray(data.data.rows)
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const downContract = () => {
|
||||||
|
post<any>({
|
||||||
|
messageApi,
|
||||||
|
url: `/api/contract/management/save`,
|
||||||
|
body: {
|
||||||
|
firstPartyAddress: address,
|
||||||
|
firstPartyName: name,
|
||||||
|
firstPartyPhone: phone
|
||||||
|
},
|
||||||
|
onBefore() {
|
||||||
|
|
||||||
|
},
|
||||||
|
onSuccess(data) {
|
||||||
|
// console.log(data.data.data);
|
||||||
|
// console.log('成功');
|
||||||
|
const contractManagementId = data.data.data
|
||||||
|
window.open(`${Axios.defaults?.baseURL}/api/contract/management/download/${contractManagementId}`)
|
||||||
|
getContractArray(1)
|
||||||
|
setModalOpen(false)
|
||||||
|
props.closeModal()
|
||||||
|
|
||||||
|
},
|
||||||
|
onFinally() {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{messageApiHolder}
|
||||||
|
<Form
|
||||||
|
name="Form"
|
||||||
|
form={form}
|
||||||
|
onFinish={onFinish}
|
||||||
|
initialValues={{ softWare: '' }}
|
||||||
|
style={{ maxWidth: 600, marginTop: 20 }}
|
||||||
|
>
|
||||||
|
<div className='refunModal-item'>
|
||||||
|
<div className='refunModal-title'>
|
||||||
|
甲方姓名<span className='refunModal-red'>*</span>
|
||||||
|
</div>
|
||||||
|
<div className='refunInput'>
|
||||||
|
|
||||||
|
<Form.Item
|
||||||
|
name="name"
|
||||||
|
rules={[{ required: true, message: '请输入甲方姓名!' }]}
|
||||||
|
>
|
||||||
|
<Input style={{
|
||||||
|
width: 405,
|
||||||
|
height: 46,
|
||||||
|
background: '#FFF',
|
||||||
|
color: 'black'
|
||||||
|
}}
|
||||||
|
placeholder="甲方姓名"
|
||||||
|
>
|
||||||
|
</Input>
|
||||||
|
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className='refunModal-item'>
|
||||||
|
<div className='refunModal-title'>
|
||||||
|
联系电话<span className='refunModal-red'>*</span>
|
||||||
|
</div>
|
||||||
|
<div className='refunInput'>
|
||||||
|
|
||||||
|
<Form.Item
|
||||||
|
name="phone"
|
||||||
|
rules={[
|
||||||
|
{ required: true, message: '请输入联联系电话!' },
|
||||||
|
{
|
||||||
|
pattern: /^1[3456789]\d{9}$/,
|
||||||
|
message: '请输入正确的手机号码',
|
||||||
|
},
|
||||||
|
]}
|
||||||
|
>
|
||||||
|
<Input
|
||||||
|
style={{
|
||||||
|
|
||||||
|
width: 405,
|
||||||
|
height: 46,
|
||||||
|
background: '#FFF',
|
||||||
|
color: 'black'
|
||||||
|
}}
|
||||||
|
placeholder="联系电话"
|
||||||
|
>
|
||||||
|
</Input>
|
||||||
|
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className='refunModal-item'>
|
||||||
|
<div className='refunModal-title'>
|
||||||
|
联系地址<span className='refunModal-red'>*</span>
|
||||||
|
</div>
|
||||||
|
<div className='refunInput'>
|
||||||
|
|
||||||
|
<Form.Item
|
||||||
|
name="address"
|
||||||
|
rules={[{ required: true, message: '请输入联系地址!' }]}
|
||||||
|
>
|
||||||
|
<Input style={{
|
||||||
|
width: 405,
|
||||||
|
height: 46,
|
||||||
|
background: '#FFF',
|
||||||
|
color: 'black'
|
||||||
|
}}
|
||||||
|
placeholder="联系地址"
|
||||||
|
>
|
||||||
|
</Input>
|
||||||
|
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<Form.Item>
|
||||||
|
<div className='refunModal-btn'>
|
||||||
|
<Button type="primary" htmlType="submit" style={{
|
||||||
|
width: 273,
|
||||||
|
height: 52
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
预览
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</Form.Item>
|
||||||
|
</Form>
|
||||||
|
<Modal
|
||||||
|
title="合同预览"
|
||||||
|
destroyOnClose={true}
|
||||||
|
open={modalOpen}
|
||||||
|
footer={null}
|
||||||
|
maskClosable={false} // 禁止通过点击蒙层关闭
|
||||||
|
onCancel={() => {
|
||||||
|
setModalOpen(false)
|
||||||
|
}}
|
||||||
|
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
||||||
|
width={850}
|
||||||
|
centered
|
||||||
|
|
||||||
|
>
|
||||||
|
<div className='contract'>
|
||||||
|
<ContractText name={name} phone={phone} address={address}></ContractText>
|
||||||
|
</div>
|
||||||
|
<div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: 20 }}>
|
||||||
|
<Button type="primary" onClick={
|
||||||
|
downContract
|
||||||
|
}>合同下载</Button>
|
||||||
|
</div>
|
||||||
|
</Modal>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
67
src/components/ContractText/ContractText.css
Normal file
67
src/components/ContractText/ContractText.css
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
.contract {
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: 30px;
|
||||||
|
word-break: break-all;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
white-space: normal;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.contractTitle {
|
||||||
|
font-size: 25px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 二级标题 */
|
||||||
|
.contractTitleTwo {
|
||||||
|
font-size: 20px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 居中 */
|
||||||
|
.contractTextCenter {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 加粗 */
|
||||||
|
.contractTextBold {
|
||||||
|
font-weight: 700;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 正文 */
|
||||||
|
.contractText {
|
||||||
|
text-indent: 2em;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.contractNum {
|
||||||
|
padding-right: 50px;
|
||||||
|
margin-top: 20px;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 不同模块间距 */
|
||||||
|
.contractBox {
|
||||||
|
margin-top: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 下划线 */
|
||||||
|
.contractLine {
|
||||||
|
text-decoration: underline;
|
||||||
|
|
||||||
|
}
|
||||||
|
.signBox{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.sign{
|
||||||
|
width: 100px;
|
||||||
|
height: 30px;
|
||||||
|
/* background-color: rgb(218, 218, 218); */
|
||||||
|
border-bottom: 1px solid black;
|
||||||
|
|
||||||
|
}
|
192
src/components/ContractText/ContractText.tsx
Normal file
192
src/components/ContractText/ContractText.tsx
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
import React from 'react'
|
||||||
|
import './ContractText.css'
|
||||||
|
export default function ContractText(props: any) {
|
||||||
|
const height = window.innerHeight - 200;
|
||||||
|
return (
|
||||||
|
<div className='contract' style={{ height: height, overflow: 'auto', padding: '20px 90px' }}>
|
||||||
|
<div className='contractTitle contractTextCenter contractTextBold'>AI秒著引擎平台用户服务协议</div>
|
||||||
|
<div className='contractNum contractText'>合同编号:</div>
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div>甲方名称:<span className='contractLine'>{props.name}</span></div>
|
||||||
|
<div>联系地址:<span className='contractLine'>{props.address}</span></div>
|
||||||
|
<div>联系电话:<span className='contractLine'>{props.phone}</span></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div>乙方名称:<span className='contractLine'>山西腾狮科技有限公司(以下简称“AI秒著引擎平台”)</span></div>
|
||||||
|
<div>联系地址:<span className='contractLine'>山西省晋中市山西综改示范区晋中开发区大学城产业园区龙田路909号创新创业孵化转化中心B6号楼9层0910室</span></div>
|
||||||
|
<div>联系电话:<span className='contractLine'>400-086-1633</span></div>
|
||||||
|
</div>
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractText'>甲乙双方在平等互利基础上一致同意建立友好合作关系,根据《中华人民共和国民法典》之规定,由乙方向甲方有偿提供AI秒著引擎平台在线服务,并达成本协议。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>一、服务内容</div>
|
||||||
|
<div className='contractText'>1.1 根据甲乙双方约定,甲方同意由乙方负责实施甲方通过乙方AI秒著引擎平台(网址:https://www.aimzhu.com/)所下单的相关业务,甲方在AI秒著引擎平台上注册账户,其注册的下单账号为:15756244645。</div>
|
||||||
|
<div className='contractText'>1.2 根据甲乙双方约定,乙方为甲方通过AI秒著引擎平台提供相关服务,服务内容以甲方通过AI秒著引擎平台具体下单选择的服务类型为准。平台提供的服务类型有全托管与写材料两类,服务清单如下所示:</div>
|
||||||
|
<table border={1} style={{ borderCollapse: 'collapse', width: '100%' ,marginTop:10}}>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colSpan={2} style={{ textAlign: 'center',width: '50%',fontWeight:'700',background:'rgb(218, 218, 218)' }}>全托管</td>
|
||||||
|
<td colSpan={2} style={{ textAlign: 'center',width: '50%',fontWeight:'700',background:'rgb(218, 218, 218)' }}>写材料</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td colSpan={2} style={{fontWeight:'700'}}>提供服务</td>
|
||||||
|
<td colSpan={2} style={{fontWeight:'700'}}>提供服务</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center', width: '8%'}}>1</td>
|
||||||
|
<td >包可运行软件开发与搭建</td>
|
||||||
|
<td style={{ textAlign: 'center', width: '8%' }}>1</td>
|
||||||
|
<td >通过平台自己搭建可运行软件</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>2</td>
|
||||||
|
<td>包软著鉴别材料撰写</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>2</td>
|
||||||
|
<td>包软著鉴别材料撰写</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>3</td>
|
||||||
|
<td>包软著国内登记</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>3</td>
|
||||||
|
<td>包软著补正材料撰写</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>4</td>
|
||||||
|
<td>包软著下证</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>4</td>
|
||||||
|
<td>第一次申请不通过可全额退款</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>5</td>
|
||||||
|
<td>包开发票</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>5</td>
|
||||||
|
<td>第一次补正退订单金额的30%,并提供补正材料撰写</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>6</td>
|
||||||
|
<td>提供可运行软件安装包</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>6</td>
|
||||||
|
<td>第一次补正退订单金额的70%,并提供补正材料撰写(注:两次补正后订单结束)</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>7</td>
|
||||||
|
<td>提供可运行软件云服务900天</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>7</td>
|
||||||
|
<td>包开发票</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>8</td>
|
||||||
|
<td>提供可运行软件演示视频</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>8</td>
|
||||||
|
<td>提供可运行软件云服务300天</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style={{ textAlign: 'center' }}>9</td>
|
||||||
|
<td >客服一对一服务</td>
|
||||||
|
<td style={{ textAlign: 'center' }}>9</td>
|
||||||
|
<td >客服一对一服务</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>二、服务价格以及付款方式</div>
|
||||||
|
<div className='contractText'>2.1 金额:以平台在线充值为准。</div>
|
||||||
|
<div className='contractText'>2.2 付款方式:详细操作按乙方网站(https://www.aimzhu.com/)上付款页面进行。付款后甲方可在线登记发票信息,登记后3个工作日内乙方开具数电发票通过平台发送给甲方注册的账号,甲方可自行下载。</div>
|
||||||
|
<div className='contractText'>2.3服务价格:服务价格以通过AI秒著引擎平台下单时显示价格为准。乙方有权调整价格,乙方保证价格不会高于甲方注册账号后第一次下单的价格。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>三、双方权利义务</div>
|
||||||
|
<div>(一)甲方权利义务</div>
|
||||||
|
<div className='contractText'>3.1 甲方在使用乙方提供的服务时应遵守乙方网站上的操作流程和使用方法。</div>
|
||||||
|
<div className='contractText'>3.2 甲方不可将乙方提供的服务用于非法用途,发布非法信息。</div>
|
||||||
|
<div className='contractText'>3.3 甲方不可将乙方提供的服务转租借于任何第三方使用,甲方对甲方注册账户名下的一切活动承担责任。</div>
|
||||||
|
<div className='contractText'>3.4 甲方应在约定的时间内履行相应费用的支付义务。</div>
|
||||||
|
<div className='contractText'>3.5 甲方应及时提供乙方需要其提供必要的资料和配合乙方完成服务所需要的工作。</div>
|
||||||
|
<div>(二)乙方权利义务</div>
|
||||||
|
<div className='contractText'>3.6 数据安全:乙方应采取必要的技术手段以保证甲方存储在乙方服务器上的数据安全性。</div>
|
||||||
|
<div className='contractText'>3.7 数据保密:甲方存储在乙方服务器上的数据的公开级别完全由甲方自己设置,乙方在未经甲方允许的情况下不得擅自更改其设置,对于甲方设置为不公开的信息,乙方不得有意或者无意泄漏给任何第三方。甲方购买的服务有效期过期后,乙方仍须履行数据保密义务,直至甲方保存在乙方服务器上的数据被完全销毁。</div>
|
||||||
|
<div className='contractText'>3.8 服务质量:乙方应竭力为甲方提供稳定而高效的服务,并不断改进(改进服务不另向甲方收费)。乙方应保证服务器可用性在99%以上,在工作时间内应有专人为甲方提供电话技术支持(客户服务热线:400-086-1633)。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>四、知识产权及保密条款</div>
|
||||||
|
<div className='contractText'>4.1 甲方在本协议履行过程中向乙方提供的信息以及由此而产生的相关结果,其知识产权归甲方所有;乙方应对以上信息保密,乙方不得向任何其他第三方公开以上信息。</div>
|
||||||
|
<div className='contractText'>4.2 保密义务不适用于以下几种信息情况:</div>
|
||||||
|
<div className='contractText'>4.2.1 信息在收到或发出时已经处于公共领域或之后被公众广泛获知;</div>
|
||||||
|
<div className='contractText'>4.2.2 信息接收方在收到信息时已经拥有了该信息,且并非从信息披露方直接或间接的获得的;</div>
|
||||||
|
<div className='contractText'>4.2.3 从第三方获得或正当接收,且信息披露方没有对信息接收方设置任何保密限制的信息;</div>
|
||||||
|
<div className='contractText'>4.2.4 信息接收方在未违背协议的情况下独立研发而得到的信息;</div>
|
||||||
|
<div className='contractText'>4.2.5 依照法院或政府机构命令或所适用法律、法规的要求而透露的信息。</div>
|
||||||
|
<div className='contractText'>4.3 保密期限:乙方对以上保密信息负有永久保密义务,并且甲方可随时登录乙方平台删除数据,对于已删除的数据,乙方将不再保存。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>五、保证条款</div>
|
||||||
|
<div className='contractText'>5.1 甲方承诺在乙方AI秒著引擎平台上注册账户所提供的相关信息均真实、准确、完整,且注册账户名称不违反法律法规规定或公序良俗。</div>
|
||||||
|
<div className='contractText'>5.2 甲方承诺遵守所适用的有关法律、法规和其他规范性文件的规定,不得要求乙方从事违反法律规范的服务。如涉及相关违反法律规范的信息,乙方有权拒绝提供服务,或在发现后停止服务,删除不符合要求的信息,如涉嫌违法,乙方有权保存有关记录并向国家有关机关报告。</div>
|
||||||
|
<div className='contractText'>5.3 甲方承诺使用AI秒著引擎平台搭建的可运行系统用于合法的目的和用途,在可运行系统上不得发布涉密与违反法律规范的信息,乙方有权查看甲方在可运行系统上发布的相关信息,并有权对违规信息进行删除。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>六、违约责任</div>
|
||||||
|
<div className='contractText'>6.1 甲方未能履行本协议约定的义务,乙方有权单方解除本协议,并停止给甲方提供本协议约定的服务,也无需向甲方退还任何款项,且因甲方违约而给乙方造成损失的,乙方有权向甲方追偿。</div>
|
||||||
|
<div className='contractText'>6.2 乙方未能履行本协议约定的义务,甲方有权单方解除本协议,且因乙方违约而给甲方造成损失的,甲方有权向乙方追偿。</div>
|
||||||
|
<div className='contractText'>6.3 违约方应赔偿守约方的损失,赔偿金额为违约定单的金额。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>七、免责条款</div>
|
||||||
|
<div className='contractText'>因下列情形之一不能为甲方提供服务或者造成甲方数据丢失,乙方无须承担任何责任:</div>
|
||||||
|
<div className='contractText'>7.1 由于地震、战争、洪水、国家政策等不可抗力;</div>
|
||||||
|
<div className='contractText'>7.2 由于服务器网络接入服务提供商(电信、网通、IDC机房等)原因造成的网络中断;</div>
|
||||||
|
<div className='contractText'>7.3 由于操作系统软件漏洞、病毒、黑客等因素乙方免责,但乙方应尽防范义务,包括但不限于服务器专人管理、及时安装系统更新、安装防火墙、定期数据备份等;</div>
|
||||||
|
<div className='contractText'>7.4 由于国家、地方政府政策、法律因素暂停AI秒著引擎平台等;</div>
|
||||||
|
<div className='contractText'>7.5 因相关政府职能部门审查需要暂停相关服务。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>八、争议的解决</div>
|
||||||
|
<div className='contractText'>本协议适用中华人民共和国法律。所有涉及本协议的争议,先友好协商,如协商不成,双方共同约定由原告方所在地人民法院管辖。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold'>九、其他</div>
|
||||||
|
<div className='contractText'>9.1 本协议未约定的事宜,以AI秒著引擎平台《用户服务协议》(网址:https://www.aimzhu.com/UserAgreement.html)的约定为准。</div>
|
||||||
|
<div className='contractText' >9.2 本协议自双方签字或盖章后成立。本协议壹式贰份,甲、乙双方各执壹份,经双方签章后生效,双方约定传真件与扫描件与原件拥有同等法律效力。</div>
|
||||||
|
<div className='contractText'>9.3本协议自甲方向乙方支付本协议2.1条的服务费用时或使用乙方所提供的有尝服务时生效。</div>
|
||||||
|
<div className='contractText'>9.4 本协议未尽事宜,双方经友好协商可达成补充协议,补充协议与本协议不一致的,以补充协议为准。</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractTitleTwo contractTextBold contractTextCenter'>签字页</div>
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractText'>甲 方:<span className='contractLine'>{props.name}</span></div>
|
||||||
|
<div className='contractText signBox'>
|
||||||
|
<div>甲方授权代表签字:</div>
|
||||||
|
<div className='sign'></div>
|
||||||
|
</div>
|
||||||
|
<div className='contractText'>日 期: </div>
|
||||||
|
</div>
|
||||||
|
<div className='contractBox'>
|
||||||
|
<div className='contractText' >乙 方:<span className='contractLine'>山西腾狮科技有限公司</span></div>
|
||||||
|
<div className='contractText signBox'>
|
||||||
|
<div>乙方授权代表签字:</div>
|
||||||
|
<div className='sign'></div>
|
||||||
|
</div>
|
||||||
|
<div className='contractText'>日 期:</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -72,6 +72,18 @@ export default function MenuWithTopButton(props: IMenuWithTopButton) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if (item.id == 'CONTRACT') {
|
||||||
|
// props.disableBelongpeople()
|
||||||
|
navugate('/contract', {
|
||||||
|
state: {
|
||||||
|
// keywords: props.correctionKeywords,
|
||||||
|
// correctionNumType:props.correctionNumType,
|
||||||
|
// correctionType:props.correctionType,
|
||||||
|
// applyStatus: props.correctionApplyStatus,
|
||||||
|
// authorId: props.authorId
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}}>
|
}}>
|
||||||
|
|
||||||
|
148
src/route/Contract/Contract.tsx
Normal file
148
src/route/Contract/Contract.tsx
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
import React, { useEffect, useState } from 'react'
|
||||||
|
import { // Table,
|
||||||
|
Pagination,
|
||||||
|
Table,
|
||||||
|
// message, Spin,
|
||||||
|
Empty,
|
||||||
|
} from 'antd';
|
||||||
|
import { get,Axios } from "../../util/AjaxUtils.ts";
|
||||||
|
import type { TableProps } from 'antd';
|
||||||
|
import useMessage from "antd/es/message/useMessage";
|
||||||
|
interface DataType {
|
||||||
|
contractManagementId: string;
|
||||||
|
firstPartyName: string;
|
||||||
|
firstPartyPhone: string;
|
||||||
|
firstPartyAddress: string;
|
||||||
|
gmtCreate: string;
|
||||||
|
}
|
||||||
|
import { useSelector, useDispatch } from 'react-redux'
|
||||||
|
export default function CONTRACT() {
|
||||||
|
const dispath = useDispatch()
|
||||||
|
const redxuState: any = useSelector(state => state)
|
||||||
|
const contractArray = redxuState.contractArray
|
||||||
|
const total = redxuState.contractTotal
|
||||||
|
const [messageApi, messageApiHolder] = useMessage();
|
||||||
|
const height = window.innerHeight - 180;
|
||||||
|
// const [contractArray, setContractArray] = useState<any[]>([])
|
||||||
|
// 分页
|
||||||
|
const [page, setPage] = useState(1)
|
||||||
|
const getContractArray = (page: any) => {
|
||||||
|
get({
|
||||||
|
messageApi,
|
||||||
|
url: `/api/contract/management/listpage/self`,
|
||||||
|
config: {
|
||||||
|
params: {
|
||||||
|
page: page,
|
||||||
|
rows: 10
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSuccess(data: any) {
|
||||||
|
console.log(data);
|
||||||
|
dispath({
|
||||||
|
type: 'upContractArray',
|
||||||
|
val: data.data.rows
|
||||||
|
})
|
||||||
|
dispath({
|
||||||
|
type: 'upContractTotal',
|
||||||
|
val: data.data.total
|
||||||
|
})
|
||||||
|
// setContractArray(data.data.rows)
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 表格
|
||||||
|
const columns: TableProps<DataType>['columns'] = [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: 'index',
|
||||||
|
key: 'index',
|
||||||
|
align: 'center',
|
||||||
|
width: 100,
|
||||||
|
render: (_text, _record, index) => (page - 1) * 10 + index + 1, // 显示序号,从1开始
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '甲方姓名',
|
||||||
|
dataIndex: 'firstPartyName',
|
||||||
|
key: 'firstPartyName',
|
||||||
|
align: 'center',
|
||||||
|
ellipsis: {
|
||||||
|
showTitle: true,
|
||||||
|
},
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '联系电话',
|
||||||
|
dataIndex: 'firstPartyPhone',
|
||||||
|
key: 'firstPartyPhone',
|
||||||
|
align: 'center',
|
||||||
|
width: 320
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '联系地址',
|
||||||
|
dataIndex: 'firstPartyAddress',
|
||||||
|
align: 'center',
|
||||||
|
key: 'firstPartyAddress',
|
||||||
|
ellipsis: {
|
||||||
|
showTitle: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '创建日期',
|
||||||
|
dataIndex: 'gmtCreate',
|
||||||
|
align: 'center',
|
||||||
|
key: 'gmtCreate',
|
||||||
|
width: 320
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'contractManagementId',
|
||||||
|
align: 'center',
|
||||||
|
key: 'contractManagementId',
|
||||||
|
width: 200,
|
||||||
|
render: (text) => (
|
||||||
|
<div style={{
|
||||||
|
cursor: 'pointer',
|
||||||
|
color: '#007FFF',
|
||||||
|
}} onClick={() => {
|
||||||
|
|
||||||
|
window.open(`${Axios.defaults?.baseURL}/api/contract/management/download/${text}`)
|
||||||
|
|
||||||
|
}}>下载</div>
|
||||||
|
)
|
||||||
|
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
getContractArray(page)
|
||||||
|
}, [])
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{messageApiHolder}
|
||||||
|
<div style={{
|
||||||
|
height: height - 60,
|
||||||
|
background: 'white',
|
||||||
|
overflow: 'auto', marginTop: 18, marginBottom: -10
|
||||||
|
}}>
|
||||||
|
{/* 表格 */}
|
||||||
|
<div style={{ display: contractArray.length > 0 ? 'block' : 'none', padding: 10 }}>
|
||||||
|
<Table<DataType> columns={columns} dataSource={contractArray} pagination={false} rowKey="contractManagementId" />
|
||||||
|
</div>
|
||||||
|
<div style={{ display: contractArray.length <= 0 ? 'block' : 'none' }}>
|
||||||
|
<div style={{ height: height - 60, display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
|
||||||
|
<Empty description="暂无数据" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className='pagination' >
|
||||||
|
<Pagination defaultCurrent={page} total={total} pageSize={10} showSizeChanger={false} onChange={(page) => {
|
||||||
|
setPage(page)
|
||||||
|
getContractArray(page)
|
||||||
|
}} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
@ -8,6 +8,7 @@ import { IMenuListItem, IMenuWithTopButton } from "../../interfaces/menu/IMenuWi
|
|||||||
import MenuWithTopButton from "../../components/menu/MenuWithTopButton.tsx";
|
import MenuWithTopButton from "../../components/menu/MenuWithTopButton.tsx";
|
||||||
import RefunModal from '../../components/RefunModal/RefunModal.tsx'
|
import RefunModal from '../../components/RefunModal/RefunModal.tsx'
|
||||||
import CorrectionModal from '../../components/CorrectionModal/CorrectionModal.tsx'
|
import CorrectionModal from '../../components/CorrectionModal/CorrectionModal.tsx'
|
||||||
|
import ContractModal from '../../components/ContractModal/ContractModal.tsx'
|
||||||
// import MenuWithBottomButtom from '../../components/menu/MenuWithBottomButton.tsx'
|
// import MenuWithBottomButtom from '../../components/menu/MenuWithBottomButton.tsx'
|
||||||
// import MenuTreeWithTopButton from "../../components/menu/MenuTreeWithTopButton.tsx";
|
// import MenuTreeWithTopButton from "../../components/menu/MenuTreeWithTopButton.tsx";
|
||||||
// import ListProj from "../../components/list/ListProj.tsx";
|
// import ListProj from "../../components/list/ListProj.tsx";
|
||||||
@ -53,7 +54,7 @@ export default function Index() {
|
|||||||
// const [clickBelongpeople, setClickBelongpeople] = useState(true)
|
// const [clickBelongpeople, setClickBelongpeople] = useState(true)
|
||||||
// 选项数组
|
// 选项数组
|
||||||
const [tagArray, setTagArray] = useState([])
|
const [tagArray, setTagArray] = useState([])
|
||||||
|
|
||||||
|
|
||||||
// 获取标签
|
// 获取标签
|
||||||
const getTag = () => {
|
const getTag = () => {
|
||||||
@ -170,7 +171,7 @@ export default function Index() {
|
|||||||
const [payStatus, setpayStatus] = useState<string | null>(null)
|
const [payStatus, setpayStatus] = useState<string | null>(null)
|
||||||
const [authorId, setauthorId] = useState('')
|
const [authorId, setauthorId] = useState('')
|
||||||
|
|
||||||
const [projRemindId,setprojRemindId] = useState<string | null>(null)
|
const [projRemindId, setprojRemindId] = useState<string | null>(null)
|
||||||
//退款状态
|
//退款状态
|
||||||
const [applyStatus, setapplyStatus] = useState<string | null>(null)
|
const [applyStatus, setapplyStatus] = useState<string | null>(null)
|
||||||
// 退款关键字
|
// 退款关键字
|
||||||
@ -288,6 +289,7 @@ export default function Index() {
|
|||||||
{ id: 'REFUN', name: '退款项目' },
|
{ id: 'REFUN', name: '退款项目' },
|
||||||
// correction
|
// correction
|
||||||
{ id: 'CORRECTION', name: '补正项目' },
|
{ id: 'CORRECTION', name: '补正项目' },
|
||||||
|
{ id: 'CONTRACT', name: '合同下载' },
|
||||||
|
|
||||||
],
|
],
|
||||||
handleListItem(_e, _index, item: IMenuListItem) {
|
handleListItem(_e, _index, item: IMenuListItem) {
|
||||||
@ -379,6 +381,9 @@ export default function Index() {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 新增合同弹窗
|
||||||
|
const [contractModal, setContractModal] = useState(false)
|
||||||
// const [agentMenu, setAgentMenu] = useState<IMenuWithTopButton>({
|
// const [agentMenu, setAgentMenu] = useState<IMenuWithTopButton>({
|
||||||
// button: {
|
// button: {
|
||||||
// name: '代理服务',
|
// name: '代理服务',
|
||||||
@ -514,6 +519,8 @@ export default function Index() {
|
|||||||
const [showSearchBox, setShowSearchBox] = useState(true)
|
const [showSearchBox, setShowSearchBox] = useState(true)
|
||||||
const [refunSearchBox, setRrefunSearchBox] = useState(false)
|
const [refunSearchBox, setRrefunSearchBox] = useState(false)
|
||||||
const [correctionSearchBox, setCorrectionSearchBox] = useState(false)
|
const [correctionSearchBox, setCorrectionSearchBox] = useState(false)
|
||||||
|
// 新增合同按钮是否显示
|
||||||
|
const [contractSearchBox, setContractSearchBox] = useState(false)
|
||||||
// 优惠券遮罩层是否i西安市
|
// 优惠券遮罩层是否i西安市
|
||||||
const [coupon, setCoupon] = useState(false)
|
const [coupon, setCoupon] = useState(false)
|
||||||
// 获取优惠券弹出层是否显示
|
// 获取优惠券弹出层是否显示
|
||||||
@ -645,11 +652,13 @@ export default function Index() {
|
|||||||
setShowSearchBox(true)
|
setShowSearchBox(true)
|
||||||
// setClickBelongpeople(true)
|
// setClickBelongpeople(true)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
} else if (location.pathname.includes('/proj-create')) {
|
} else if (location.pathname.includes('/proj-create')) {
|
||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
setNow('创建项目')
|
setNow('创建项目')
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '创建项目' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '创建项目' }])
|
||||||
// /config-mod-list /config-menu-list /config-mod-show
|
// /config-mod-list /config-menu-list /config-mod-show
|
||||||
@ -658,6 +667,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setEditname(location.pathname)
|
// setEditname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '编辑项目' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '编辑项目' }])
|
||||||
} else if (location.pathname.includes('/proj-new')) {
|
} else if (location.pathname.includes('/proj-new')) {
|
||||||
@ -665,6 +675,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '新建项目' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: '新建项目' }])
|
||||||
} else if (location.pathname.includes('/proj-efree')) {
|
} else if (location.pathname.includes('/proj-efree')) {
|
||||||
@ -672,6 +683,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '编辑项目' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: '编辑项目' }])
|
||||||
} else if (location.pathname.includes('/proj-eall')) {
|
} else if (location.pathname.includes('/proj-eall')) {
|
||||||
@ -679,6 +691,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页 </Link> }, { title: '编辑项目' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页 </Link> }, { title: '编辑项目' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/step1')) {
|
} else if (location.pathname.includes('/proj-edit/step1')) {
|
||||||
@ -686,6 +699,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '标题简介' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '标题简介' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/step2')) {
|
} else if (location.pathname.includes('/proj-edit/step2')) {
|
||||||
@ -693,6 +707,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '基本信息' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '基本信息' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-loginpage')) {
|
} else if (location.pathname.includes('/proj-edit/config-loginpage')) {
|
||||||
@ -700,6 +715,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '登录界面设置' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '登录界面设置' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-list')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-list')) {
|
||||||
@ -707,6 +723,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单管理' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单管理' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-menu-list')) {
|
} else if (location.pathname.includes('/proj-edit/config-menu-list')) {
|
||||||
@ -714,6 +731,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单顺序' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '系统菜单顺序' }])
|
||||||
} else if (location.pathname.includes('/step3')) {
|
} else if (location.pathname.includes('/step3')) {
|
||||||
@ -721,6 +739,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-save')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-save')) {
|
||||||
@ -728,12 +747,14 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '添加菜单' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '添加菜单' }])
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-edit')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-edit')) {
|
||||||
setNow('编辑菜单')
|
setNow('编辑菜单')
|
||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '编辑菜单' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '编辑菜单' }])
|
||||||
// /config-mod-edit /config-mod-show
|
// /config-mod-edit /config-mod-show
|
||||||
} else if (location.pathname.includes('/proj-edit/config-mod-show')) {
|
} else if (location.pathname.includes('/proj-edit/config-mod-show')) {
|
||||||
@ -741,6 +762,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '查看菜单' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-2) }}>编辑项目</a> }, { title: <a onClick={() => { nav(-1) }}>系统菜单管理</a> }, { title: '查看菜单' }])
|
||||||
// /config-mod-edit
|
// /config-mod-edit
|
||||||
} else if (location.pathname.includes('/product-release')) {
|
} else if (location.pathname.includes('/product-release')) {
|
||||||
@ -748,6 +770,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setPathArray([{ title: '首页' }])
|
// setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
} else if (location.pathname.includes(' /transaction-order')) {
|
} else if (location.pathname.includes(' /transaction-order')) {
|
||||||
@ -755,6 +778,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setPathArray([{ title: '首页' }])
|
// setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
} else if (location.pathname.includes(' /copyright-goods')) {
|
} else if (location.pathname.includes(' /copyright-goods')) {
|
||||||
@ -762,6 +786,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setPathArray([{ title: '首页' }])
|
// setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
} else if (location.pathname.includes(' /trading-goods')) {
|
} else if (location.pathname.includes(' /trading-goods')) {
|
||||||
@ -769,6 +794,7 @@ export default function Index() {
|
|||||||
setShowSearchBox(false)
|
setShowSearchBox(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setPathArray([{ title: '首页' }])
|
// setPathArray([{ title: '首页' }])
|
||||||
// /config-mod-edit /product-release /transaction-order
|
// /config-mod-edit /product-release /transaction-order
|
||||||
} else if (location.pathname.includes('/refun')) {
|
} else if (location.pathname.includes('/refun')) {
|
||||||
@ -777,6 +803,7 @@ export default function Index() {
|
|||||||
// setClickBelongpeople(false)
|
// setClickBelongpeople(false)
|
||||||
setRrefunSearchBox(true)
|
setRrefunSearchBox(true)
|
||||||
setCorrectionSearchBox(false)
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
||||||
} else if (location.pathname.includes('/correction')) {
|
} else if (location.pathname.includes('/correction')) {
|
||||||
@ -785,8 +812,15 @@ export default function Index() {
|
|||||||
// setClickBelongpeople(false)
|
// setClickBelongpeople(false)
|
||||||
setRrefunSearchBox(false)
|
setRrefunSearchBox(false)
|
||||||
setCorrectionSearchBox(true)
|
setCorrectionSearchBox(true)
|
||||||
|
setContractSearchBox(false)
|
||||||
// setNewname(location.pathname)
|
// setNewname(location.pathname)
|
||||||
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
// setPathArray([{ title: <Link to={'/home'}>首页</Link> }, { title: <Link to={'/proj-create'}>创建项目</Link> }, { title: <a onClick={() => { nav(-1) }}>编辑项目</a> }, { title: '软件功能特点' }])
|
||||||
|
} else if (location.pathname.includes('/contract')) {
|
||||||
|
setShowSearchBox(false)
|
||||||
|
setRrefunSearchBox(false)
|
||||||
|
setCorrectionSearchBox(false)
|
||||||
|
setContractSearchBox(true)
|
||||||
|
setNow('首页-合同下载')
|
||||||
}
|
}
|
||||||
}, [location.pathname])
|
}, [location.pathname])
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -840,7 +874,7 @@ export default function Index() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
}, [type, chargeAdditionals, keywords, tagDataId,projRemindId, payStatus, authorId, refunKeywords, applyStatus, correctionKeywords, correctionNumType, correctionType, correctionApplyStatus]);
|
}, [type, chargeAdditionals, keywords, tagDataId, projRemindId, payStatus, authorId, refunKeywords, applyStatus, correctionKeywords, correctionNumType, correctionType, correctionApplyStatus]);
|
||||||
|
|
||||||
// const [menuName,setMenuName] = useState<string | null>('')
|
// const [menuName,setMenuName] = useState<string | null>('')
|
||||||
// useEffect(()=>{
|
// useEffect(()=>{
|
||||||
@ -1304,7 +1338,7 @@ export default function Index() {
|
|||||||
tagDataId: tagDataId,
|
tagDataId: tagDataId,
|
||||||
authorId: authorId,
|
authorId: authorId,
|
||||||
payStatus: payStatus,
|
payStatus: payStatus,
|
||||||
projRemindId:value
|
projRemindId: value
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -1547,11 +1581,29 @@ export default function Index() {
|
|||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div style={{ display: contractSearchBox ? 'block' : 'none' }}>
|
||||||
|
<div className='mediaSearch' style={{
|
||||||
|
display: 'flex',
|
||||||
|
alignItems: 'center'
|
||||||
|
}}>
|
||||||
|
<div className='mediaLine'>
|
||||||
|
<div className='line' style={{
|
||||||
|
}} ></div>
|
||||||
|
</div>
|
||||||
|
<Button type="primary" onClick={() => {
|
||||||
|
setContractModal(true)
|
||||||
|
}}
|
||||||
|
style={{ background: '#FF9F08' }}
|
||||||
|
>
|
||||||
|
新增合同
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div style={{
|
<div style={{
|
||||||
width: '253px',
|
width: '253px',
|
||||||
height: '31px',
|
height: '31px',
|
||||||
display: showSearchBox || refunSearchBox || correctionSearchBox ? 'none' : 'block'
|
display: showSearchBox || refunSearchBox || correctionSearchBox || contractSearchBox ? 'none' : 'block'
|
||||||
}}></div>
|
}}></div>
|
||||||
<div className='nowPosition'>
|
<div className='nowPosition'>
|
||||||
<img src={backImg} alt="" />
|
<img src={backImg} alt="" />
|
||||||
@ -1643,6 +1695,9 @@ export default function Index() {
|
|||||||
<span style={{ marginLeft: 10, marginRight: 10 }}>|</span>
|
<span style={{ marginLeft: 10, marginRight: 10 }}>|</span>
|
||||||
<span>新建项目</span>
|
<span>新建项目</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div style={{ display: now == '首页-合同下载' ? 'block' : 'none' }}>
|
||||||
|
<span>首页</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1669,6 +1724,8 @@ export default function Index() {
|
|||||||
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
||||||
width={592}
|
width={592}
|
||||||
maskClosable={false} // 禁止通过点击蒙层关闭
|
maskClosable={false} // 禁止通过点击蒙层关闭
|
||||||
|
centered
|
||||||
|
|
||||||
>
|
>
|
||||||
<RefunModal closeModal={() => { setRefunModal(false) }}></RefunModal>
|
<RefunModal closeModal={() => { setRefunModal(false) }}></RefunModal>
|
||||||
</Modal>
|
</Modal>
|
||||||
@ -1683,10 +1740,27 @@ export default function Index() {
|
|||||||
}}
|
}}
|
||||||
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
||||||
width={592}
|
width={592}
|
||||||
|
centered
|
||||||
|
|
||||||
>
|
>
|
||||||
<CorrectionModal closeModal={() => { setCorrectionModal(false) }}
|
<CorrectionModal closeModal={() => { setCorrectionModal(false) }}
|
||||||
></CorrectionModal>
|
></CorrectionModal>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
<Modal
|
||||||
|
title="新增合同"
|
||||||
|
destroyOnClose={true}
|
||||||
|
open={contractModal}
|
||||||
|
footer={null}
|
||||||
|
maskClosable={false} // 禁止通过点击蒙层关闭
|
||||||
|
onCancel={() => {
|
||||||
|
setContractModal(false)
|
||||||
|
}}
|
||||||
|
okButtonProps={{ style: { background: 'red', color: 'white' } }}
|
||||||
|
width={592}
|
||||||
|
centered
|
||||||
|
>
|
||||||
|
<ContractModal closeModal={() => { setContractModal(false) }}></ContractModal>
|
||||||
|
</Modal>
|
||||||
<Modal title="优惠券"
|
<Modal title="优惠券"
|
||||||
footer={null}
|
footer={null}
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import CopyrightGgoods from '../route/CopyrightGgoods/CopyrightGgoods.tsx'
|
|||||||
import TradingGoods from '../route/TradingGoods/TradingGoods.tsx'
|
import TradingGoods from '../route/TradingGoods/TradingGoods.tsx'
|
||||||
import Refun from '../route/Refun/Refun.tsx'
|
import Refun from '../route/Refun/Refun.tsx'
|
||||||
import Correction from '../route/Correction/Correction.tsx'
|
import Correction from '../route/Correction/Correction.tsx'
|
||||||
|
import Contract from '../route/Contract/Contract.tsx';
|
||||||
import Index from "../route/index/Index.tsx";
|
import Index from "../route/index/Index.tsx";
|
||||||
// import Search from "../route/SearchList/SearchList.tsx";
|
// import Search from "../route/SearchList/SearchList.tsx";
|
||||||
import ProjCreate from "./proj/ProjCreate.tsx";
|
import ProjCreate from "./proj/ProjCreate.tsx";
|
||||||
@ -186,191 +187,197 @@ export const router = createHashRouter(
|
|||||||
// element: <AgentResult />
|
// element: <AgentResult />
|
||||||
// },
|
// },
|
||||||
// ]
|
// ]
|
||||||
[{
|
[
|
||||||
path: '/',
|
|
||||||
element: <Index />,
|
{
|
||||||
children: [
|
path: '/',
|
||||||
|
element: <Index />,
|
||||||
{
|
children: [
|
||||||
path: '/',
|
|
||||||
element: <Home/>,
|
|
||||||
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path:'/home',
|
|
||||||
element:<Home/>,
|
|
||||||
children:[
|
|
||||||
|
|
||||||
]
|
{
|
||||||
},
|
path: '/',
|
||||||
// {
|
element: <Home />,
|
||||||
// path:'/search',
|
|
||||||
// element:<Search/>
|
},
|
||||||
// },
|
{
|
||||||
{
|
path: '/home',
|
||||||
path:'/product-release',
|
element: <Home />,
|
||||||
element:<ProductRelease/>
|
children: [
|
||||||
},
|
|
||||||
{
|
]
|
||||||
path:'/transaction-order',
|
},
|
||||||
element:<TransactionOrder/>
|
// {
|
||||||
},
|
// path:'/search',
|
||||||
{
|
// element:<Search/>
|
||||||
path:'/copyright-goods',
|
// },
|
||||||
element:<CopyrightGgoods/>
|
{
|
||||||
},
|
path: '/product-release',
|
||||||
{
|
element: <ProductRelease />
|
||||||
path:'/trading-goods',
|
},
|
||||||
element:<TradingGoods/>
|
{
|
||||||
},
|
path: '/transaction-order',
|
||||||
{
|
element: <TransactionOrder />
|
||||||
path:'/refun',
|
},
|
||||||
element:<Refun/>
|
{
|
||||||
},
|
path: '/copyright-goods',
|
||||||
{
|
element: <CopyrightGgoods />
|
||||||
path:'/correction',
|
},
|
||||||
element:<Correction/>
|
{
|
||||||
},
|
path: '/trading-goods',
|
||||||
{
|
element: <TradingGoods />
|
||||||
path: '/proj-create',
|
},
|
||||||
element: <ProjCreate />
|
{
|
||||||
},
|
path: '/refun',
|
||||||
{
|
element: <Refun />
|
||||||
path: '/proj-new/:projChargeType',
|
},
|
||||||
element: <ProjNew />
|
{
|
||||||
},
|
path: '/correction',
|
||||||
{
|
element: <Correction />
|
||||||
path: '/proj-edit/:projId',
|
},
|
||||||
element: <ProjEdit />
|
{
|
||||||
},
|
path: '/contract',
|
||||||
{
|
element: <Contract />
|
||||||
path: '/proj-eall/:projId',
|
},
|
||||||
element: <ProjEditAll />
|
{
|
||||||
},
|
path: '/proj-create',
|
||||||
{
|
element: <ProjCreate />
|
||||||
path: '/proj-efree/:projId',
|
},
|
||||||
element: <ProjEditFree />
|
{
|
||||||
},
|
path: '/proj-new/:projChargeType',
|
||||||
{
|
element: <ProjNew />
|
||||||
path: '/proj-edit/step1/:projId',
|
},
|
||||||
element: <ProjEditStep1 />
|
{
|
||||||
},
|
path: '/proj-edit/:projId',
|
||||||
{
|
element: <ProjEdit />
|
||||||
path: '/proj-edit/step1-show/:projId',
|
},
|
||||||
element: <ProjEditStep1Show />
|
{
|
||||||
},
|
path: '/proj-eall/:projId',
|
||||||
{
|
element: <ProjEditAll />
|
||||||
path: '/proj-edit/step2/:projId',
|
},
|
||||||
element: <ProjEditStep2 />
|
{
|
||||||
},
|
path: '/proj-efree/:projId',
|
||||||
{
|
element: <ProjEditFree />
|
||||||
path: '/proj-edit/step2-show/:projId',
|
},
|
||||||
element: <ProjEditStep2Show />
|
{
|
||||||
},
|
path: '/proj-edit/step1/:projId',
|
||||||
{
|
element: <ProjEditStep1 />
|
||||||
path: '/proj-edit/step3/:projId',
|
},
|
||||||
element: <ProjEditStep3 />
|
{
|
||||||
},
|
path: '/proj-edit/step1-show/:projId',
|
||||||
{
|
element: <ProjEditStep1Show />
|
||||||
path: '/proj-edit/step3-show/:projId',
|
},
|
||||||
element: <ProjEditStep3Show />
|
{
|
||||||
},
|
path: '/proj-edit/step2/:projId',
|
||||||
{
|
element: <ProjEditStep2 />
|
||||||
path: '/proj-edit/step4/:projId',
|
},
|
||||||
element: <ProjEditStep4 />
|
{
|
||||||
},
|
path: '/proj-edit/step2-show/:projId',
|
||||||
{
|
element: <ProjEditStep2Show />
|
||||||
path: '/proj-edit/step4-show/:projId',
|
},
|
||||||
element: <ProjEditStep4Show />
|
{
|
||||||
},
|
path: '/proj-edit/step3/:projId',
|
||||||
{
|
element: <ProjEditStep3 />
|
||||||
path: '/proj-edit/step5/:projId',
|
},
|
||||||
element: <ProjEditStep5 />
|
{
|
||||||
},
|
path: '/proj-edit/step3-show/:projId',
|
||||||
{
|
element: <ProjEditStep3Show />
|
||||||
path: '/proj-edit/step5-show/:projId',
|
},
|
||||||
element: <ProjEditStep5Show />
|
{
|
||||||
},
|
path: '/proj-edit/step4/:projId',
|
||||||
{
|
element: <ProjEditStep4 />
|
||||||
path: '/proj-edit/step6/:projId',
|
},
|
||||||
element: <ProjEditStep6 />
|
{
|
||||||
},
|
path: '/proj-edit/step4-show/:projId',
|
||||||
{
|
element: <ProjEditStep4Show />
|
||||||
path: '/proj-edit/step6-show/:projId',
|
},
|
||||||
element: <ProjEditStep6Show />
|
{
|
||||||
},
|
path: '/proj-edit/step5/:projId',
|
||||||
{
|
element: <ProjEditStep5 />
|
||||||
path: '/proj-edit/config-loginpage/:projId',
|
},
|
||||||
element: <ProjConfigLoginpage />
|
{
|
||||||
},
|
path: '/proj-edit/step5-show/:projId',
|
||||||
{
|
element: <ProjEditStep5Show />
|
||||||
path: '/proj-edit/config-loginpage-show/:projId',
|
},
|
||||||
element: <ProjConfigLoginpageShow />
|
{
|
||||||
},
|
path: '/proj-edit/step6/:projId',
|
||||||
{
|
element: <ProjEditStep6 />
|
||||||
path: '/proj-edit/config-mod-list/:projId',
|
},
|
||||||
element: <ProjConfigModList />
|
{
|
||||||
},
|
path: '/proj-edit/step6-show/:projId',
|
||||||
{
|
element: <ProjEditStep6Show />
|
||||||
path: '/proj-edit/config-mod-list-show/:projId',
|
},
|
||||||
element: <ProjConfigModListShow />
|
{
|
||||||
},
|
path: '/proj-edit/config-loginpage/:projId',
|
||||||
{
|
element: <ProjConfigLoginpage />
|
||||||
path: '/proj-edit/config-mod-flist/:projId',
|
},
|
||||||
element: <ProjConfigModList isFree={true} />
|
{
|
||||||
},
|
path: '/proj-edit/config-loginpage-show/:projId',
|
||||||
{
|
element: <ProjConfigLoginpageShow />
|
||||||
path: '/proj-edit/config-mod-flist-show/:projId',
|
},
|
||||||
element: <ProjConfigModListShow />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-list/:projId',
|
||||||
{
|
element: <ProjConfigModList />
|
||||||
path: '/proj-edit/config-mod-save/:projId',
|
},
|
||||||
element: <ProjConfigModSave />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-list-show/:projId',
|
||||||
{
|
element: <ProjConfigModListShow />
|
||||||
path: '/proj-edit/config-mod-fsave/:projId',
|
},
|
||||||
element: <ProjConfigModSave isFree={true} />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-flist/:projId',
|
||||||
{
|
element: <ProjConfigModList isFree={true} />
|
||||||
path: '/proj-edit/config-mod-edit/:projId/:projModId',
|
},
|
||||||
element: <ProjConfigModEdit />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-flist-show/:projId',
|
||||||
{
|
element: <ProjConfigModListShow />
|
||||||
path: '/proj-edit/config-mod-fedit/:projId/:projModId',
|
},
|
||||||
element: <ProjConfigModEdit isFree={true} />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-save/:projId',
|
||||||
{
|
element: <ProjConfigModSave />
|
||||||
path: '/proj-edit/config-mod-show/:projId/:projModId',
|
},
|
||||||
element: <ProjConfigModShow />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-fsave/:projId',
|
||||||
{
|
element: <ProjConfigModSave isFree={true} />
|
||||||
path: '/proj-edit/config-mod-fshow/:projId/:projModId',
|
},
|
||||||
element: <ProjConfigModShow isFree={true} />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-edit/:projId/:projModId',
|
||||||
{
|
element: <ProjConfigModEdit />
|
||||||
path: '/proj-edit/config-menu-list/:projId',
|
},
|
||||||
element: <ProjConfigMenuList />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-fedit/:projId/:projModId',
|
||||||
{
|
element: <ProjConfigModEdit isFree={true} />
|
||||||
path: '/proj-edit/config-menu-list-show/:projId',
|
},
|
||||||
element: <ProjConfigMenuListShow />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-show/:projId/:projModId',
|
||||||
{
|
element: <ProjConfigModShow />
|
||||||
path: '/agent-select/:projId',
|
},
|
||||||
element: <AgentSelect />
|
{
|
||||||
},
|
path: '/proj-edit/config-mod-fshow/:projId/:projModId',
|
||||||
{
|
element: <ProjConfigModShow isFree={true} />
|
||||||
path: '/agent-agreement/:orderId',
|
},
|
||||||
element: <AgentAgreement />
|
{
|
||||||
},
|
path: '/proj-edit/config-menu-list/:projId',
|
||||||
{
|
element: <ProjConfigMenuList />
|
||||||
path: '/agent-correction/:orderId',
|
},
|
||||||
element: <AgentCorrection />
|
{
|
||||||
},
|
path: '/proj-edit/config-menu-list-show/:projId',
|
||||||
{
|
element: <ProjConfigMenuListShow />
|
||||||
path: '/agent-result/:orderId',
|
},
|
||||||
element: <AgentResult />
|
{
|
||||||
},
|
path: '/agent-select/:projId',
|
||||||
]
|
element: <AgentSelect />
|
||||||
}]
|
},
|
||||||
|
{
|
||||||
|
path: '/agent-agreement/:orderId',
|
||||||
|
element: <AgentAgreement />
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/agent-correction/:orderId',
|
||||||
|
element: <AgentCorrection />
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/agent-result/:orderId',
|
||||||
|
element: <AgentResult />
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}]
|
||||||
)
|
)
|
@ -11,6 +11,8 @@ const baseState = {
|
|||||||
belongArray: [],
|
belongArray: [],
|
||||||
refunArray:[],
|
refunArray:[],
|
||||||
correctionArray:[],
|
correctionArray:[],
|
||||||
|
contractArray:[],
|
||||||
|
contractTotal:0,
|
||||||
refunTotal:0,
|
refunTotal:0,
|
||||||
correctionTotal:0,
|
correctionTotal:0,
|
||||||
couponModal:false,
|
couponModal:false,
|
||||||
@ -44,6 +46,12 @@ const reducer = (state = baseState, action: any) => {
|
|||||||
if (action.type == 'upCorrectionArray') {
|
if (action.type == 'upCorrectionArray') {
|
||||||
nstate.correctionArray = action.val
|
nstate.correctionArray = action.val
|
||||||
}
|
}
|
||||||
|
if (action.type == 'upContractArray') {
|
||||||
|
nstate.contractArray = action.val
|
||||||
|
}
|
||||||
|
if (action.type == 'upContractTotal') {
|
||||||
|
nstate.contractTotal = action.val
|
||||||
|
}
|
||||||
if (action.type == 'upCorrectionTotal') {
|
if (action.type == 'upCorrectionTotal') {
|
||||||
nstate.correctionTotal = action.val
|
nstate.correctionTotal = action.val
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,9 @@ export function websocketUrl() {
|
|||||||
export function downloadUrl(fileId: string, isDownload?: boolean) {
|
export function downloadUrl(fileId: string, isDownload?: boolean) {
|
||||||
return `${Axios.defaults?.baseURL}/route/file/v2/download/${isDownload == false}/${fileId}`
|
return `${Axios.defaults?.baseURL}/route/file/v2/download/${isDownload == false}/${fileId}`
|
||||||
}
|
}
|
||||||
|
export function downContract(fileId: any) {
|
||||||
|
return `${Axios.defaults?.baseURL}/api/contract/management/download/${fileId}`
|
||||||
|
}
|
||||||
|
|
||||||
export function uploadImageUrl() {
|
export function uploadImageUrl() {
|
||||||
return `${Axios.defaults?.baseURL}/api/file/v2/upload-image`;
|
return `${Axios.defaults?.baseURL}/api/file/v2/upload-image`;
|
||||||
|
Loading…
Reference in New Issue
Block a user