添加在线客服修改合同等
This commit is contained in:
parent
10803f293c
commit
db9af2af4f
@ -12,7 +12,7 @@ export default function ContractText(props: any) {
|
||||
</div>
|
||||
|
||||
<div className='contractBox'>
|
||||
<div>乙方名称:<span className='contractLine'>山西腾狮科技有限公司(以下简称“AI秒著引擎平台”)</span></div>
|
||||
<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>
|
||||
@ -176,7 +176,7 @@ export default function ContractText(props: any) {
|
||||
<div className='contractText'>日 期: </div>
|
||||
</div>
|
||||
<div className='contractBox'>
|
||||
<div className='contractText' >乙 方:<span className='contractLine'>山西腾狮科技有限公司</span></div>
|
||||
<div className='contractText' >乙 方:<span className='contractLine'>山西腾狮科技股份有限公司</span></div>
|
||||
<div className='contractText signBox'>
|
||||
<div>乙方授权代表签字:</div>
|
||||
<div className='sign'></div>
|
||||
|
@ -3,7 +3,7 @@ import './RefunModal.css'
|
||||
import { Form, Button, Upload, message, Input, Modal, Table, Empty } from 'antd';
|
||||
import type { TableColumnsType } from 'antd';
|
||||
import { UploadOutlined } from '@ant-design/icons';
|
||||
import { DevUserId, get, post,uploadFileUrl } from "../../util/AjaxUtils.ts";
|
||||
import { DevUserId, get, post, uploadFileUrl } from "../../util/AjaxUtils.ts";
|
||||
// import { getMenuActive } from '../../util/cache.ts'
|
||||
import { useDispatch } from 'react-redux'
|
||||
const { Search } = Input;
|
||||
@ -269,9 +269,9 @@ export default function RefunModal(props: any) {
|
||||
action={uploadFileUrl()}
|
||||
headers={{ 'X-USER-ID': DevUserId }}
|
||||
beforeUpload={(file) => {
|
||||
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' ||file.type === 'application/pdf';
|
||||
const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'application/pdf';
|
||||
// const isPng = file.type == 'application/pdf'
|
||||
if (!isJpgOrPng ) {
|
||||
if (!isJpgOrPng) {
|
||||
message.error('只能上传 JPG/PNG/PDF 格式文件!');
|
||||
return Upload.LIST_IGNORE; // 不允许上传非
|
||||
}
|
||||
@ -285,7 +285,12 @@ export default function RefunModal(props: any) {
|
||||
</Form.Item>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
style={{
|
||||
color: '#FF0000',
|
||||
marginLeft: 10
|
||||
}}
|
||||
>*上传完整的补正通知书或者完整的补正通知书的截图,要求右上方的流水号和右下方的补正通知书的日期都得完整显示</div>
|
||||
<Form.Item>
|
||||
<div className='refunModal-btn'>
|
||||
<Button type="primary" htmlType="submit" style={{
|
||||
|
@ -5,7 +5,7 @@ import { del, get, post, put, websocketUrl, Axios } from "../../util/AjaxUtils.t
|
||||
import {
|
||||
// Col, Divider, Row,
|
||||
Spin, Image, Pagination,
|
||||
Button, Dropdown, notification
|
||||
Button, notification
|
||||
} from "antd";
|
||||
const close = () => {
|
||||
console.log(
|
||||
@ -284,15 +284,15 @@ export default function AiHelper(props: PropsType) {
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
const generateProjIntroduction = () => {
|
||||
// const generateProjIntroduction = () => {
|
||||
|
||||
ws.current?.send(JSON.stringify({
|
||||
type: 'REFRESH_PROJ_INTRODUCTION',
|
||||
projId: props.projId
|
||||
}));
|
||||
ping();
|
||||
setIsProjIntroductionLoading(true);
|
||||
}
|
||||
// ws.current?.send(JSON.stringify({
|
||||
// type: 'REFRESH_PROJ_INTRODUCTION',
|
||||
// projId: props.projId
|
||||
// }));
|
||||
// ping();
|
||||
// setIsProjIntroductionLoading(true);
|
||||
// }
|
||||
const xixi = () => {
|
||||
setIsFast(true)
|
||||
ws.current?.send(JSON.stringify({
|
||||
@ -342,7 +342,7 @@ export default function AiHelper(props: PropsType) {
|
||||
setIsProjIntroductionLoading(true);
|
||||
},
|
||||
onSuccess(data) {
|
||||
messageApi.success('项目简介保存成功,点击编辑按钮可继续修改项目简介');
|
||||
messageApi.success('系统简介保存成功,点击编辑按钮可继续修改系统简介');
|
||||
setProjIntroduction(content);
|
||||
setNewProjIntroduction('');
|
||||
console.log('更新成功', data);
|
||||
@ -369,7 +369,7 @@ export default function AiHelper(props: PropsType) {
|
||||
setIsProjDescLoading(true);
|
||||
},
|
||||
onSuccess() {
|
||||
messageApi.success('项目详情保存成功,点击编辑按钮可继续修改项目详情').then();
|
||||
messageApi.success('系统详情保存成功,点击编辑按钮可继续修改系统详情').then();
|
||||
setProjDesc(content);
|
||||
setNewProjDesc('');
|
||||
},
|
||||
@ -753,7 +753,7 @@ export default function AiHelper(props: PropsType) {
|
||||
nav(`/proj-edit/config-mod-edit/${props.projId}/${projModId}`)
|
||||
}
|
||||
}}
|
||||
handleRemove={(_index, projModId, item) => {
|
||||
handleRemove={(_index, projModId) => {
|
||||
// if (item.aiFieldStatus != 'SUCCESS') {
|
||||
// messageApi.error('模块未处理完毕不能删除');
|
||||
// return;
|
||||
|
@ -246,7 +246,7 @@ export default function AiHelperMod(props: PropsType) {
|
||||
<div
|
||||
style={{
|
||||
cursor: 'pointer',
|
||||
marginLeft: 19,
|
||||
marginLeft: 5,
|
||||
color: '#FF4040',
|
||||
width: 40,
|
||||
|
||||
@ -291,27 +291,7 @@ export default function AiHelperMod(props: PropsType) {
|
||||
>删除</div>
|
||||
</div>
|
||||
|
||||
// <Dropdown menu={{
|
||||
// items: [
|
||||
// {
|
||||
// key: 'edit',
|
||||
// label: '编辑',
|
||||
// onClick: () => {
|
||||
// // props.handleEdit(index, record.projModId, record);
|
||||
// setId(record.projModId)
|
||||
// setEditModal(true)
|
||||
// }
|
||||
// }, {
|
||||
// key: 'remove',
|
||||
// label: '删除',
|
||||
// onClick: () => {
|
||||
// props.handleRemove(index, record.projModId, record);
|
||||
// }
|
||||
// },
|
||||
// ]
|
||||
// }} placement="bottom" arrow>
|
||||
// <Button>…</Button>
|
||||
// </Dropdown>
|
||||
|
||||
)
|
||||
}
|
||||
// if (record.aiFieldStatus == 'GENERATING') {
|
||||
@ -571,7 +551,12 @@ export default function AiHelperMod(props: PropsType) {
|
||||
}}
|
||||
disabled={status == 'SUCCESS' || status == 'GENERATING' || props.isFast ? true : false}
|
||||
onClick={() => {
|
||||
props.handleGenerate()
|
||||
if(props.projIntroduction){
|
||||
props.handleGenerate()
|
||||
}else{
|
||||
props.xixi()
|
||||
}
|
||||
// props.handleGenerate()
|
||||
}}
|
||||
>AI生成</Button>
|
||||
</div>
|
||||
|
@ -360,7 +360,17 @@ export default function AiHelperText(props: PropsType) {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style={{ height: 42, background: " #EFEFEF" }}></div>
|
||||
<div style={{ height: 42, background: " #EFEFEF",
|
||||
display:'flex',justifyContent:'center',alignItems:'center',
|
||||
}}>
|
||||
<div style={{
|
||||
color:'red',
|
||||
fontSize:14,
|
||||
display: props.title == '系统简介'? 'block' : 'none'
|
||||
}}>
|
||||
*若手动修改系统简介后,为了使系统详情和功能列表更合理,建议重新使用AI生成系统详情和功能列表
|
||||
</div>
|
||||
</div>
|
||||
<div className="aiText-bot">
|
||||
<div className="aiText-bot-text">
|
||||
{newText ? <>
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
import './card-proj.css';
|
||||
import { useDispatch } from 'react-redux'
|
||||
// import { useDispatch } from 'react-redux'
|
||||
import {
|
||||
CheckOutlined,
|
||||
ClockCircleOutlined,
|
||||
@ -238,39 +238,49 @@ export default function CardProj(props: any) {
|
||||
}
|
||||
return <Tag color="red"><CloseCircleOutlined /> 错误</Tag>
|
||||
}
|
||||
const dispath = useDispatch()
|
||||
// const dispath = useDispatch()
|
||||
const goEdit = () => {
|
||||
if (data.projStatus == 'NORMAL' || data.projStatus == 'EXPIRED' || data.pay.payStatus == 'CORRECTION2_REFUND' || data.pay.payStatus == 'CORRECTION1_REFUND') {
|
||||
if (data.pay.chargeType == 'ALL') {
|
||||
nav(`/proj-eall/${data.projId}`);
|
||||
dispath({
|
||||
type: 'upProjName',
|
||||
val: data.projName
|
||||
})
|
||||
dispath({
|
||||
type: 'upProjStatus',
|
||||
val: data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑'
|
||||
})
|
||||
// dispath({
|
||||
// type: 'upProjName',
|
||||
// val: data.projName
|
||||
// })
|
||||
// dispath({
|
||||
// type: 'upProjStatus',
|
||||
// val: data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑'
|
||||
// })
|
||||
sessionStorage.setItem('projName', data.projName);
|
||||
sessionStorage.setItem('projStatus', data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑');
|
||||
// sessionStorage.setItem('projStatus', '查看' );
|
||||
} else if (data.pay.chargeType == 'FREE') {
|
||||
nav(`/proj-efree/${data.projId}`);
|
||||
dispath({
|
||||
type: 'upProjName',
|
||||
val: data.projName
|
||||
})
|
||||
dispath({
|
||||
type: 'upProjStatus',
|
||||
val: data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑'
|
||||
})
|
||||
// dispath({
|
||||
// type: 'upProjName',
|
||||
// val: data.projName
|
||||
// })
|
||||
// dispath({
|
||||
// type: 'upProjStatus',
|
||||
// val: data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑'
|
||||
// })
|
||||
sessionStorage.setItem('projName', data.projName);
|
||||
sessionStorage.setItem('projStatus', data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑');
|
||||
} else {
|
||||
nav(`/proj-edit/${data.projId}`);
|
||||
dispath({
|
||||
type: 'upProjName',
|
||||
val: data.projName
|
||||
})
|
||||
dispath({
|
||||
type: 'upProjStatus',
|
||||
val: data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑'
|
||||
})
|
||||
// dispath({
|
||||
// type: 'upProjName',
|
||||
// val: data.projName
|
||||
// })
|
||||
// dispath({
|
||||
// type: 'upProjStatus',
|
||||
// val: data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑'
|
||||
// })
|
||||
//将data.projName储存到缓sessionStorage存里面 key为projName
|
||||
sessionStorage.setItem('projName', data.projName);
|
||||
sessionStorage.setItem('projStatus', data.generate.generateStatus == GenerateStatus.SUCCESS ? '查看' : '编辑');
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -246,6 +246,7 @@ export default function CardProjType(props: ICardProj) {
|
||||
return (
|
||||
|
||||
<div className="proj" style={{ display: props.isShow == 1 ? 'block' : 'none', }}>
|
||||
{/* <div className="proj" style={{ display: props.isShow ? 'block' : 'none', }}> */}
|
||||
<div className='projTop'>
|
||||
{/* <div className="proj-head" style={{ backgroundImage: `url(${ProjCardHeadBg})` }}> */}
|
||||
<div className="proj-head">
|
||||
|
@ -4,7 +4,7 @@ import { useDispatch } from 'react-redux'
|
||||
import BalanceHead from '../../components/balance/BalanceHead.tsx';
|
||||
import RechargeHead from '../../components/recharge/RechargeHead.tsx';
|
||||
import { Dropdown, MenuProps, message, Modal, Space, Spin, Input } from "antd";
|
||||
import { DownOutlined, UserOutlined, QuestionCircleOutlined, BellOutlined, KeyOutlined, LogoutOutlined, GiftOutlined, AccountBookOutlined, ContainerOutlined, MenuFoldOutlined, UsergroupAddOutlined } from "@ant-design/icons";
|
||||
import { DownOutlined, UserOutlined, QuestionCircleOutlined, BellOutlined, KeyOutlined, LogoutOutlined, GiftOutlined, AccountBookOutlined, ContainerOutlined, MenuFoldOutlined, UsergroupAddOutlined, } from "@ant-design/icons";
|
||||
import { useContext, useEffect, useState } from "react";
|
||||
import { put, get, post, getUseUrl } from "../../util/AjaxUtils.ts";
|
||||
import { GlobalContext, GlobalDispatchContext, reloadUser } from "../../context/GlobalContext.ts";
|
||||
@ -14,6 +14,8 @@ import PasswordChange from "../../components/password/PasswordChange.tsx";
|
||||
import InvoiceList from "../../components/invoice/InvoiceList.tsx";
|
||||
import logoImg from '../../static/head/logo.png'
|
||||
import userImg from '../../static/homeimg/userimg.png'
|
||||
import kf from '../../static/head/kf.png'
|
||||
import kfImg from '../../static/head/kfImg.png'
|
||||
import { reMenuActive } from '../../util/cache';
|
||||
// import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx'
|
||||
import BelongPeople from '../../components/BelongPeople/BelongPeople.tsx'
|
||||
@ -27,6 +29,8 @@ export default function Head() {
|
||||
// const couponModal = redxuState.couponModal
|
||||
// 消息通知弹窗
|
||||
const [noticeModal, setNoticeModal] = useState(false)
|
||||
// 客服弹窗
|
||||
const [kfModal, setkfModal] = useState(false)
|
||||
// 未读消息数
|
||||
const [unRead, setUnRead] = useState(0)
|
||||
// 获取未读消息总数
|
||||
@ -435,7 +439,18 @@ export default function Head() {
|
||||
{/* <div className="right" style={{backgroundImage: `url(${headRightBg})`}}> */}
|
||||
|
||||
<div className="right">
|
||||
<div className='kf' onClick={() => {
|
||||
setkfModal(true)
|
||||
}}>
|
||||
<div className='kfIcon'>
|
||||
<img src={kf} width={20} alt="" />
|
||||
</div>
|
||||
<div className='kfText'>
|
||||
在线客服
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div className='headLine'></div>
|
||||
{/* <div className='head-nav' onClick={() => {
|
||||
window.open('https://www.aimzhu.com/operator/route/agreementportal/view?agreementId=c0c5683a-bef3-40c3-8395-900a362ea234&title=系统操作流程')
|
||||
}}>
|
||||
@ -771,6 +786,31 @@ export default function Head() {
|
||||
}}>
|
||||
<NoticeModal></NoticeModal>
|
||||
</Modal>
|
||||
<Modal title="在线客服"
|
||||
footer={null}
|
||||
|
||||
destroyOnClose
|
||||
open={kfModal}
|
||||
centered
|
||||
width={450}
|
||||
onCancel={() => {
|
||||
setkfModal(false)
|
||||
|
||||
}}>
|
||||
<div className='kfBox'>
|
||||
<div className='kfTitle'>微信扫码咨询客服</div>
|
||||
<div className='kfImg'>
|
||||
<img src={kfImg} width={300} alt="" />
|
||||
</div>
|
||||
<div className='kfHttp' >
|
||||
<span>若已登录电脑端,</span><span className='kfHttpText' onClick={
|
||||
() => {
|
||||
window.open('https://work.weixin.qq.com/kfid/kfc599f9d40b65ac392')
|
||||
}
|
||||
}>点击联系客服</span>
|
||||
</div>
|
||||
</div>
|
||||
</Modal>
|
||||
{/* <Modal title="优惠券"
|
||||
footer={null}
|
||||
|
||||
|
@ -48,7 +48,22 @@
|
||||
justify-content: right;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.head .center .right .kf {
|
||||
/* margin-right: 20px; */
|
||||
display: flex;
|
||||
/* background-color: pink; */
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
.head .center .right .kf .kfText {
|
||||
margin-left: 5px;
|
||||
font-size: 16px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.head .center .right .kf .kfIcon {
|
||||
font-size: 16px;
|
||||
color: #FF9F08;
|
||||
}
|
||||
/*
|
||||
.head .center .left .logo {
|
||||
width: 38px;
|
||||
@ -307,3 +322,32 @@
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.kfBox{
|
||||
/* background-color: pink; */
|
||||
/* border: 1px solid rgb(209, 209, 209); */
|
||||
/* border-radius: 5px; */
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 20px 10px;
|
||||
}
|
||||
.kfTitle{
|
||||
font-size: 25px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.kfImg{
|
||||
border: 1px solid rgb(226, 226, 226);
|
||||
border-radius: 5px;
|
||||
padding: 10px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
.kfHttp{
|
||||
font-size: 16px;
|
||||
margin-top: 20px;
|
||||
color: rgb(124, 124, 124);
|
||||
}
|
||||
.kfHttpText{
|
||||
cursor: pointer;
|
||||
color: #5980B5;
|
||||
}
|
@ -144,9 +144,12 @@ export default function Index() {
|
||||
const couponModal = redxuState.couponModal
|
||||
|
||||
// 编辑项目得项目名
|
||||
const projName = redxuState.projName
|
||||
// const projName = redxuState.projName
|
||||
// 从sessionStorage缓存获取项目名
|
||||
const projName = sessionStorage.getItem('projName')
|
||||
// 项目状态 查看还是编辑
|
||||
const projStatus = redxuState.projStatus
|
||||
// const projStatus = redxuState.projStatus
|
||||
const projStatus = sessionStorage.getItem('projStatus')
|
||||
// 获取所属者表格储存至redux 更新表格
|
||||
const getProjOwnerList = () => {
|
||||
get({
|
||||
|
@ -63,9 +63,16 @@ export default function ProjCreate() {
|
||||
setCharge(data.additional);
|
||||
// console.log("创建数据", data);
|
||||
// console.log(charge.projTypes[0].price);
|
||||
setAllInfo(data.projTypes[0])
|
||||
setMaterialInfo(data.projTypes[1])
|
||||
setFreeInfo(data.projTypes[2])
|
||||
// setAllInfo(data.projTypes[0])
|
||||
// setMaterialInfo(data.projTypes[1])
|
||||
// setFreeInfo(data.projTypes[2])
|
||||
// 找到ata.projTypes数组种type == all的对象付给 info
|
||||
|
||||
setAllInfo(data.projTypes.find((item: any) => item.type == 'ALL'))
|
||||
setMaterialInfo(data.projTypes.find((item: any) => item.type == 'MATERIAL'))
|
||||
setFreeInfo(data.projTypes.find((item: any) => item.type == 'FREE'))
|
||||
// MATERIAL FREE
|
||||
|
||||
// console.log('后面的price',data.proj.materialAgent);
|
||||
setFreeCount(data.freeCount)
|
||||
}
|
||||
|
BIN
src/static/head/kf.png
Normal file
BIN
src/static/head/kf.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
BIN
src/static/head/kfImg.png
Normal file
BIN
src/static/head/kfImg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Loading…
Reference in New Issue
Block a user