|
|
@ -15,15 +15,13 @@ import { |
|
|
|
Upload, |
|
|
|
Popover, |
|
|
|
Checkbox, |
|
|
|
TimePicker, |
|
|
|
Cascader, |
|
|
|
Tooltip, |
|
|
|
} from "antd"; |
|
|
|
import { |
|
|
|
CalendarOutlined, |
|
|
|
EditOutlined, |
|
|
|
MinusCircleOutlined, |
|
|
|
PlusCircleOutlined, |
|
|
|
CaretRightOutlined, |
|
|
|
CaretDownOutlined, |
|
|
|
LoadingOutlined, |
|
|
|
PlusOutlined, |
|
|
|
DeleteOutlined, |
|
|
@ -83,7 +81,7 @@ function InformationMgm() { |
|
|
|
title: "", // 标题 |
|
|
|
author: "", // 作者 |
|
|
|
areaId: [], // 区域 |
|
|
|
releaseType: [], // 发布渠道 |
|
|
|
releaseType: ["1"], // 发布渠道 |
|
|
|
shareTitle: "", // 分享标题 |
|
|
|
shareDescribe: "", // 分享描述 |
|
|
|
shareImgUrl: "", // 分享缩略图 |
|
|
@ -104,13 +102,11 @@ function InformationMgm() { |
|
|
|
const [rowData, setRowData] = useState(defRowData); |
|
|
|
// 上传状态 |
|
|
|
const [uploading, setUploading] = useState(false); |
|
|
|
// 设置分类数组 |
|
|
|
const [sortArr, setSortArr] = useState([]); |
|
|
|
// 设置分类弹窗 |
|
|
|
const [modalObj, setModalObj] = useState({ |
|
|
|
visible: false, // 弹窗状态 |
|
|
|
title: "修改标签", // 弹窗标题 |
|
|
|
index: 0, //标签索引 |
|
|
|
title: "添加", // 弹窗标题 |
|
|
|
id: 0, //标签id |
|
|
|
name: "", //标签名称 |
|
|
|
}); |
|
|
|
const [general, setGeneral] = useState(""); //普通文本内容 |
|
|
@ -125,6 +121,10 @@ function InformationMgm() { |
|
|
|
isStick: [], // 置顶状态 |
|
|
|
category: [], // 分类 |
|
|
|
}); |
|
|
|
// 选择树节点 |
|
|
|
const [checkId, setCheckId] = useState(""); |
|
|
|
// 折叠树节点 |
|
|
|
const [foldIds, setFoldIds] = useState([]); |
|
|
|
|
|
|
|
// 访问接口,获取下拉 |
|
|
|
useEffect(() => { |
|
|
@ -137,21 +137,16 @@ function InformationMgm() { |
|
|
|
getData(); |
|
|
|
}, [isAjax]); |
|
|
|
|
|
|
|
// 展示状态-下拉 |
|
|
|
const statusArr = [ |
|
|
|
{ value: "0", label: "已保存" }, |
|
|
|
{ value: "1", label: "待上架" }, |
|
|
|
{ value: "2", label: "已上架" }, |
|
|
|
{ value: "3", label: "已下架" }, |
|
|
|
]; |
|
|
|
// 操作-下拉 |
|
|
|
const items = [ |
|
|
|
{ key: "0", label: <span>预览</span> }, |
|
|
|
{ key: "1", label: <span>详情</span> }, |
|
|
|
{ key: "2", label: <span>编辑</span> }, |
|
|
|
{ key: "3", label: <span>上架</span> }, |
|
|
|
{ key: "4", label: <span>下架</span> }, |
|
|
|
{ key: "5", label: <span>封存</span> }, |
|
|
|
{ key: "2", label: <span>发布</span> }, |
|
|
|
{ key: "3", label: <span>编辑</span> }, |
|
|
|
{ key: "4", label: <span>上架</span> }, |
|
|
|
{ key: "5", label: <span>下架</span> }, |
|
|
|
{ key: "6", label: <span>封存</span> }, |
|
|
|
{ key: "7", label: <span>删除</span> }, |
|
|
|
]; |
|
|
|
|
|
|
|
// 表头 |
|
|
@ -288,23 +283,27 @@ function InformationMgm() { |
|
|
|
align: "center", |
|
|
|
width: 140, |
|
|
|
render: (val, row, index) => { |
|
|
|
// 更新状态 1=待发布 2=已上架 3=已下架 0=已保存 4=已封存 |
|
|
|
const status = row?.status; |
|
|
|
return ( |
|
|
|
<Dropdown |
|
|
|
arrow |
|
|
|
placement="bottomLeft" |
|
|
|
menu={{ |
|
|
|
items, |
|
|
|
items: |
|
|
|
status == 1 |
|
|
|
? items.filter((v, i) => [0, 1, 2, 3, 7].includes(i)) |
|
|
|
: status == 2 |
|
|
|
? items.filter((v, i) => [0, 1, 5].includes(i)) |
|
|
|
: status == 3 |
|
|
|
? items.filter((v, i) => [0, 1, 3, 4, 6].includes(i)) |
|
|
|
: status == 0 |
|
|
|
? items.filter((v, i) => [0, 1, 2, 3, 7].includes(i)) |
|
|
|
: items.filter((v, i) => [0, 1].includes(i)), |
|
|
|
onClick: (key) => { |
|
|
|
return clickDropDown(key, row); |
|
|
|
}, |
|
|
|
}} |
|
|
|
placement="bottomLeft" |
|
|
|
arrow |
|
|
|
onOpenChange={(open) => { |
|
|
|
if (open) { |
|
|
|
// setCurrentPersonRecord(row) |
|
|
|
} else { |
|
|
|
// setCurrentPersonRecord({}) |
|
|
|
} |
|
|
|
}} |
|
|
|
> |
|
|
|
<Button type="primary">操作</Button> |
|
|
|
</Dropdown> |
|
|
@ -315,22 +314,31 @@ function InformationMgm() { |
|
|
|
|
|
|
|
// 操作 |
|
|
|
const clickDropDown = (param, record) => { |
|
|
|
console.log(param.key); |
|
|
|
// console.log(param.key, record); |
|
|
|
setRowData(record); |
|
|
|
if (param.key == "1") { |
|
|
|
// 详情 |
|
|
|
setPageType("3"); |
|
|
|
} else if (param.key == "2") { |
|
|
|
// 发布 |
|
|
|
handleStatus(record?.informationId, "1"); |
|
|
|
} else if (param.key == "3") { |
|
|
|
// 编辑 |
|
|
|
setPageType("2"); |
|
|
|
setGeneral(""); |
|
|
|
setGeneral(record?.general || ""); |
|
|
|
setContent(record?.content || "<p><br></p>"); |
|
|
|
} else if (param.key == "3") { |
|
|
|
// 上架 |
|
|
|
} else if (param.key == "4") { |
|
|
|
// 下架 |
|
|
|
// 上架 |
|
|
|
handleStatus(record?.informationId, "2"); |
|
|
|
} else if (param.key == "5") { |
|
|
|
// 下架 |
|
|
|
handleStatus(record?.informationId, "3"); |
|
|
|
} else if (param.key == "6") { |
|
|
|
// 封存 |
|
|
|
handleStatus(record?.informationId, "4"); |
|
|
|
} else if (param.key == "7") { |
|
|
|
// 删除 |
|
|
|
deleteItem(record?.informationId); |
|
|
|
} else { |
|
|
|
// 预览 |
|
|
|
if (record?.jumpUrl) { |
|
|
@ -341,6 +349,42 @@ function InformationMgm() { |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
// 改变状态 更新状态 1=待发布 2=已上架 3=已下架 0=已保存 4=已封存 |
|
|
|
const handleStatus = (id, status) => { |
|
|
|
ajax.doInfoStatus({ informationId: id, status }).then( |
|
|
|
(res) => { |
|
|
|
if (parseInt(res?.status) === 20000) { |
|
|
|
message.success(res?.message); |
|
|
|
setPageInfo({ ...pageInfo, ...{ pageNum: 1 } }); |
|
|
|
setIsAjax(!isAjax); |
|
|
|
} else { |
|
|
|
message.error(res?.message); |
|
|
|
} |
|
|
|
}, |
|
|
|
(err) => { |
|
|
|
console.log(err); |
|
|
|
} |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
// 删除 |
|
|
|
const deleteItem = (id) => { |
|
|
|
ajax.doInfoDelete({ informationId: id }).then( |
|
|
|
(res) => { |
|
|
|
if (parseInt(res?.status) === 20000) { |
|
|
|
message.success(res?.message); |
|
|
|
setPageInfo({ ...pageInfo, ...{ pageNum: 1 } }); |
|
|
|
setIsAjax(!isAjax); |
|
|
|
} else { |
|
|
|
message.error(res?.message); |
|
|
|
} |
|
|
|
}, |
|
|
|
(err) => { |
|
|
|
console.log(err); |
|
|
|
} |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
// 分页 |
|
|
|
const paginationProps = { |
|
|
|
position: ["bottomCenter"], |
|
|
@ -384,7 +428,7 @@ function InformationMgm() { |
|
|
|
}; |
|
|
|
// console.log(postData, newObj); |
|
|
|
setTabLoading(true); |
|
|
|
ajax.getInformationList({ ...newObj, ...pageInfo }).then( |
|
|
|
ajax.getInfoList({ ...newObj, ...pageInfo }).then( |
|
|
|
(res) => { |
|
|
|
if (parseInt(res?.status) === 20000) { |
|
|
|
setResultData(res?.data || {}); |
|
|
@ -411,18 +455,6 @@ function InformationMgm() { |
|
|
|
}; |
|
|
|
// 下拉菜单 |
|
|
|
const getSelectList = () => { |
|
|
|
ajax.getInformationLabel().then( |
|
|
|
(res) => { |
|
|
|
if (parseInt(res?.status) === 20000) { |
|
|
|
setAllSelect(res?.data || {}); |
|
|
|
} else { |
|
|
|
message.error(res?.message); |
|
|
|
} |
|
|
|
}, |
|
|
|
(err) => { |
|
|
|
console.log(err); |
|
|
|
} |
|
|
|
); |
|
|
|
// 获取区域树结构 |
|
|
|
ajaxCom.getAreaTree().then( |
|
|
|
(res) => { |
|
|
@ -446,15 +478,10 @@ function InformationMgm() { |
|
|
|
|
|
|
|
// 获取列表数据 |
|
|
|
const getTypeList = () => { |
|
|
|
ajax.getAdvertTypeList().then( |
|
|
|
ajax.getInfoLabel().then( |
|
|
|
(res) => { |
|
|
|
if (parseInt(res?.status) === 20000) { |
|
|
|
// setSortArr(res?.data || []); |
|
|
|
setSortArr([ |
|
|
|
{ value: "0", label: "新闻" }, |
|
|
|
{ value: "1", label: "体育" }, |
|
|
|
{ value: "2", label: "测试" }, |
|
|
|
]); |
|
|
|
setAllSelect(res?.data || {}); |
|
|
|
} else { |
|
|
|
message.error(res?.message); |
|
|
|
} |
|
|
@ -466,23 +493,26 @@ function InformationMgm() { |
|
|
|
}; |
|
|
|
|
|
|
|
// 设置-改 |
|
|
|
const handleEditItem = (val, num) => { |
|
|
|
const handleEditItem = (obj) => { |
|
|
|
setModalObj({ |
|
|
|
visible: true, |
|
|
|
title: "修改标签", |
|
|
|
index: num, |
|
|
|
name: val?.label, |
|
|
|
title: "修改", |
|
|
|
id: obj?.id, |
|
|
|
name: obj?.name, |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
// 设置-减 |
|
|
|
const handleDelItem = (val, num) => { |
|
|
|
ajax.doAdvertTypeDelete({ categoryId: sortArr[num]["value"] }).then( |
|
|
|
// 设置-删 |
|
|
|
const handleDelItem = (id) => { |
|
|
|
ajax.doInfoLabelDelete({ id }).then( |
|
|
|
(res) => { |
|
|
|
if (parseInt(res?.status) === 20000) { |
|
|
|
message.success(res?.message); |
|
|
|
getTypeList(); |
|
|
|
// setSortArr(sortArr.filter((v, i) => i !== num)); |
|
|
|
// setAllSelect({ |
|
|
|
// ...allSelect, |
|
|
|
// category: allSelect?.category.filter((v, i) => v.id != id), |
|
|
|
// }); |
|
|
|
} else { |
|
|
|
message.error(res?.message); |
|
|
|
} |
|
|
@ -494,39 +524,38 @@ function InformationMgm() { |
|
|
|
}; |
|
|
|
|
|
|
|
// 设置-加 |
|
|
|
const handleAddItem = () => { |
|
|
|
const handleAddItem = (fid) => { |
|
|
|
setModalObj({ |
|
|
|
visible: true, |
|
|
|
title: "创建标签", |
|
|
|
index: sortArr.length, |
|
|
|
title: "添加", |
|
|
|
id: fid, |
|
|
|
name: "", |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
// 设置-确定 |
|
|
|
const handleComfirm = () => { |
|
|
|
let newArr = [...sortArr]; |
|
|
|
if (!modalObj?.name) { |
|
|
|
message.error("请输入分类名称"); |
|
|
|
return; |
|
|
|
} |
|
|
|
// 是否修改 |
|
|
|
const isEdit = modalObj.index < newArr.length; |
|
|
|
const isEdit = modalObj.title == "修改"; |
|
|
|
(isEdit |
|
|
|
? ajax.doAdvertTypeEdit({ |
|
|
|
categoryId: newArr[modalObj.index]["value"], |
|
|
|
? ajax.doInfoLabelEdit({ |
|
|
|
id: modalObj.id, |
|
|
|
name: modalObj.name, |
|
|
|
}) |
|
|
|
: ajax.doInfoLabelInsert({ |
|
|
|
fid: modalObj.id, |
|
|
|
name: modalObj.name, |
|
|
|
}) |
|
|
|
: ajax.doAdvertTypeInsert({ name: modalObj.name }) |
|
|
|
).then( |
|
|
|
(res) => { |
|
|
|
if (parseInt(res?.status) === 20000) { |
|
|
|
message.success(res?.message); |
|
|
|
setModalObj({ ...modalObj, visible: false }); |
|
|
|
getTypeList(); |
|
|
|
// let newArr = [...sortArr]; |
|
|
|
// if (isEdit) { |
|
|
|
// newArr[modalObj.index]["label"] = modalObj.name; |
|
|
|
// } else { |
|
|
|
// newArr.push({ value: modalObj.index, label: modalObj.name }); |
|
|
|
// } |
|
|
|
// setSortArr(newArr); |
|
|
|
} else { |
|
|
|
message.error(res?.message); |
|
|
|
} |
|
|
@ -539,8 +568,21 @@ function InformationMgm() { |
|
|
|
|
|
|
|
// 新增-栏位改变 |
|
|
|
const handleForm = (key, val) => { |
|
|
|
if (key === "jumpUrlType") { |
|
|
|
const numKeys = [ |
|
|
|
"readBasics", |
|
|
|
"readMultiple", |
|
|
|
"pointBasics", |
|
|
|
"pointMultiple", |
|
|
|
]; |
|
|
|
if (key === "isReprint") { |
|
|
|
setGeneral(""); |
|
|
|
setContent("<p><br></p>"); |
|
|
|
setRowData({ ...rowData, [key]: val, jumpUrl: "" }); |
|
|
|
} else if (numKeys.includes(key)) { |
|
|
|
setRowData({ |
|
|
|
...rowData, |
|
|
|
[key]: val.replace(/[^\d]/g, "").replace(/0*(\d+)/, "$1"), |
|
|
|
}); |
|
|
|
} else { |
|
|
|
setRowData({ ...rowData, [key]: val }); |
|
|
|
} |
|
|
@ -645,7 +687,7 @@ function InformationMgm() { |
|
|
|
// 保存 |
|
|
|
const handleSaveInfo = () => { |
|
|
|
console.log(rowData); |
|
|
|
ajax[rowData?.informationId ? "doInformationEdit" : "doInformationInsert"]({ |
|
|
|
ajax[rowData?.informationId ? "doInfoEdit" : "doInfoInsert"]({ |
|
|
|
...rowData, |
|
|
|
general, |
|
|
|
content, |
|
|
@ -670,6 +712,66 @@ function InformationMgm() { |
|
|
|
setIsAjax(!isAjax); |
|
|
|
}; |
|
|
|
|
|
|
|
// 树折叠、展开 |
|
|
|
const toggle = (obj) => { |
|
|
|
if (foldIds.includes(obj.id)) { |
|
|
|
setFoldIds(foldIds.filter((v) => v != obj.id)); |
|
|
|
} else { |
|
|
|
setFoldIds([...foldIds, ...[obj.id]]); |
|
|
|
} |
|
|
|
}; |
|
|
|
// 树-点击 |
|
|
|
const clickItem = (obj) => { |
|
|
|
setCheckId(obj.id); |
|
|
|
}; |
|
|
|
|
|
|
|
// 生成树结构 |
|
|
|
const renderTree = (nodes, levels) => { |
|
|
|
return nodes.map((modal, index) => { |
|
|
|
const lvs = [...(levels || []), ...[index]]; |
|
|
|
const isFolder = modal?.children?.length; |
|
|
|
return ( |
|
|
|
<li key={modal.id} className="list-item"> |
|
|
|
<div |
|
|
|
title={modal.name} |
|
|
|
className={checkId == modal.id ? "li-box active" : "li-box"} |
|
|
|
onClick={(e) => { |
|
|
|
e.stopPropagation(); |
|
|
|
clickItem(modal); |
|
|
|
}} |
|
|
|
> |
|
|
|
<span> |
|
|
|
{isFolder ? ( |
|
|
|
<span className="btn" onClick={() => toggle(modal)}> |
|
|
|
{foldIds.includes(modal.id) ? ( |
|
|
|
<CaretRightOutlined /> |
|
|
|
) : ( |
|
|
|
<CaretDownOutlined /> |
|
|
|
)} |
|
|
|
</span> |
|
|
|
) : ( |
|
|
|
<span className="gap"></span> |
|
|
|
)} |
|
|
|
<span className="item-name"> |
|
|
|
{modal.name}({modal.num}) |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
<span className="tool"> |
|
|
|
<span onClick={() => handleEditItem(modal)}>修改</span> |
|
|
|
{lvs.length == 1 ? ( |
|
|
|
<span onClick={() => handleAddItem(modal.id)}>添加</span> |
|
|
|
) : null} |
|
|
|
<span onClick={() => handleDelItem(modal.id)}>删除</span> |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
{isFolder && !foldIds.includes(modal.id) ? ( |
|
|
|
<ul className="list-ul">{renderTree(modal.children, lvs)}</ul> |
|
|
|
) : null} |
|
|
|
</li> |
|
|
|
); |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
return ( |
|
|
|
<div className="information-mgm"> |
|
|
|
{/* 主页 */} |
|
|
@ -805,7 +907,14 @@ function InformationMgm() { |
|
|
|
> |
|
|
|
创建资讯 |
|
|
|
</Button> |
|
|
|
<Button type="primary" onClick={() => setPageType("4")}> |
|
|
|
<Button |
|
|
|
type="primary" |
|
|
|
onClick={() => { |
|
|
|
setCheckId(""); |
|
|
|
setFoldIds([]); |
|
|
|
setPageType("4"); |
|
|
|
}} |
|
|
|
> |
|
|
|
设置 |
|
|
|
</Button> |
|
|
|
</div> |
|
|
@ -1141,17 +1250,19 @@ function InformationMgm() { |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="row-line"> |
|
|
|
<div className="r-txt">原文链接:</div> |
|
|
|
<div className="r-con"> |
|
|
|
<Input |
|
|
|
className="row-lg" |
|
|
|
placeholder="请输入转发的原文地址" |
|
|
|
value={rowData?.jumpUrl || ""} |
|
|
|
onChange={(e) => handleForm("jumpUrl", e.target.value)} |
|
|
|
/> |
|
|
|
{rowData?.isReprint == 1 ? ( |
|
|
|
<div className="row-line"> |
|
|
|
<div className="r-txt">原文链接:</div> |
|
|
|
<div className="r-con"> |
|
|
|
<Input |
|
|
|
className="row-lg" |
|
|
|
placeholder="请输入转发的原文地址" |
|
|
|
value={rowData?.jumpUrl || ""} |
|
|
|
onChange={(e) => handleForm("jumpUrl", e.target.value)} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
) : null} |
|
|
|
<div className="row-line"> |
|
|
|
<div className="r-txt">定时发布时间:</div> |
|
|
|
<div className="r-con"> |
|
|
@ -1174,34 +1285,36 @@ function InformationMgm() { |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="extra-group"> |
|
|
|
<div className="row-box"> |
|
|
|
<div className="r-txt"> |
|
|
|
<Upload {...upProps}> |
|
|
|
<Button type="primary">上传资源</Button> |
|
|
|
</Upload> |
|
|
|
</div> |
|
|
|
<div className="r-con r-sm"> |
|
|
|
<Input |
|
|
|
placeholder="上传成功后资源的路径会显示在这里" |
|
|
|
value={rowData?.jumpUrl || ""} |
|
|
|
onChange={(e) => handleForm("jumpUrl", e.target.value)} |
|
|
|
/> |
|
|
|
{rowData?.isReprint != 1 ? ( |
|
|
|
<div className="extra-group"> |
|
|
|
<div className="row-box"> |
|
|
|
<div className="r-txt"> |
|
|
|
<Upload {...upProps}> |
|
|
|
<Button type="primary">上传资源</Button> |
|
|
|
</Upload> |
|
|
|
</div> |
|
|
|
<div className="r-con r-sm"> |
|
|
|
<Input |
|
|
|
placeholder="上传成功后资源的路径会显示在这里" |
|
|
|
value={rowData?.jumpUrl || ""} |
|
|
|
onChange={(e) => handleForm("jumpUrl", e.target.value)} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div className="row-box"> |
|
|
|
<div className="r-txt">内容:</div> |
|
|
|
<div className="r-con"> |
|
|
|
<MyEditor |
|
|
|
content={content} |
|
|
|
onChange={(v, k) => { |
|
|
|
setContent(v); |
|
|
|
setGeneral(k); |
|
|
|
}} |
|
|
|
/> |
|
|
|
<div className="row-box"> |
|
|
|
<div className="r-txt">内容:</div> |
|
|
|
<div className="r-con"> |
|
|
|
<MyEditor |
|
|
|
content={content} |
|
|
|
onChange={(v, k) => { |
|
|
|
setContent(v); |
|
|
|
setGeneral(k); |
|
|
|
}} |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
) : null} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
{/* 详情 */} |
|
|
@ -1349,33 +1462,25 @@ function InformationMgm() { |
|
|
|
{/* 设置 */} |
|
|
|
<div className={pageType === "4" ? "wraper" : "wraper hidden"}> |
|
|
|
<div className="row-operate"> |
|
|
|
<span></span> |
|
|
|
<Button onClick={() => handleBack()}>返回</Button> |
|
|
|
</div> |
|
|
|
<div className="full-group"> |
|
|
|
<ul className="ul-list"> |
|
|
|
{sortArr?.length |
|
|
|
? sortArr.map((v, i) => { |
|
|
|
return ( |
|
|
|
<li key={"i" + i}> |
|
|
|
<span>{i + 1}</span> |
|
|
|
<span>{v?.label || "-"}</span> |
|
|
|
<span> |
|
|
|
<EditOutlined onClick={() => handleEditItem(v, i)} /> |
|
|
|
<MinusCircleOutlined |
|
|
|
onClick={() => handleDelItem(v, i)} |
|
|
|
/> |
|
|
|
</span> |
|
|
|
</li> |
|
|
|
); |
|
|
|
}) |
|
|
|
: null} |
|
|
|
<li onClick={handleAddItem}> |
|
|
|
<span>创建分类标签</span> |
|
|
|
<span> |
|
|
|
<PlusCircleOutlined /> |
|
|
|
</span> |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
<div className="cr-box"> |
|
|
|
<div className="list-top"> |
|
|
|
<span>分类名称</span> |
|
|
|
<span onClick={() => handleAddItem("0")}>添加分类</span> |
|
|
|
</div> |
|
|
|
<div className="list-wrap"> |
|
|
|
<ul className="list-ul list-outer"> |
|
|
|
{allSelect?.category?.length ? ( |
|
|
|
renderTree(allSelect?.category) |
|
|
|
) : ( |
|
|
|
<li className="no-data">暂无数据</li> |
|
|
|
)} |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<Modal |
|
|
@ -1389,7 +1494,7 @@ function InformationMgm() { |
|
|
|
> |
|
|
|
<div> |
|
|
|
<Input |
|
|
|
placeholder="请输入分类标签名称" |
|
|
|
placeholder="请输入分类名称" |
|
|
|
value={modalObj.name} |
|
|
|
onChange={(e) => setModalObj({ ...modalObj, name: e.target.value })} |
|
|
|
/> |
|
|
|