123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- import React, { useState, useRef } from "react";
- import Taro, { useDidShow } from "@tarojs/taro";
- import "./index.scss";
- import { View, Text, Input, Image } from "@tarojs/components";
- import Tab from "../../compents/tab/index";
- import Tags from "../../compents/tags/index";
- import request, { uploadFiles } from "../../util/request";
- import uploadicon from "../../assets/uploadicon.png";
- import IsLogin from "../../layout/IsLogin";
- import "taro-ui/dist/style/components/flex.scss";
-
- const batchimport = props => {
- const [pageState, setPageState] = useState("1");
- const [labelList, setLabelList] = useState([]);
- const [imgUrl, setImgUrl] = useState([]);
- const [tagList, setTagList] = useState([]);
-
- let [arrList, setArrList] = useState({});
- useDidShow(() => {
- getMateTagGroupList();
- });
-
- const getMateTagGroupList = () => {
- request({
- url: "/taMateTagGroup",
- params: { pageSize: 1, pageSize: 9999 }
- }).then(res => {
- const { records, ...page } = res.data.data;
- setTagList(records);
- });
- };
-
- const onSave = e => {
- let data = [];
-
- imgUrl.map(item => {
- labelList.map(x => {
- data.push({ tagId: x.tagId, imageId: item.imageId });
- });
- });
-
- request({ url: "/taMetaImageTag", data: data, method: "post" }).then(
- res => {
- Taro.showModal({
- title: "上传成功",
- content: "点击确认按钮,返回上级菜单",
- showCancel: false,
- success: function(res) {
- setImgUrl([])
- setPageState("1")
- }
- });
- }
- );
- };
-
- const onLabelChange = (e, index) => {
- console.log(e, index, "onLabelChange");
- let newArrArrList = {
- ...arrList,
- [index]: e
- };
- setArrList(newArrArrList);
- console.log(newArrArrList, "arrList");
- let newArr = Object.values(newArrArrList).reduce((pre, cur) => {
- return pre.concat(cur);
- }, []);
- setLabelList(newArr);
- };
-
- const onUpImage = () => {
- Taro.chooseImage({
- sourceType: ["album"],
- count: 9,
- success: res => {
- const tempFilePaths = res.tempFilePaths;
-
- Taro.showLoading({title: '请稍候...'})
-
- uploadFiles(tempFilePaths, "/api/mp/taMetaImage").then(res1 => {
- setImgUrl(imgUrl.concat(res1));
- Taro.hideLoading()
- }).catch(err => Taro.hideLoading());
- }
- });
- };
-
- const handleImageDelete = row => {
- Taro.showModal({
- content: '确认删除当前图片?',
- success: res => {
- if (res.confirm) {
- setImgUrl(imgUrl.filter(x => x.imageId !== row.imageId))
- }
- }
- })
- }
-
- return (
- <IsLogin>
- <View className="batchimport">
- <View style={{ display: pageState == "1" ? "none" : "block" }}>
- <Text>标签</Text>
- <View style={{ padding: "0 20px" }}>
- <View
- className="at-row at-row--wrap at-row__justify--center"
- style={{ marginTop: "0.15rem" }}
- >
- {labelList.map(item => {
- return (
- <View className="at-col at-col-4" key={item.name}>
- <View className="tags-btn">{item.name}</View>
- </View>
- );
- })}
- {/* <View className='at-col at-col-4 ' >
- <View className='tags-btn tags-btn-on' onClick={() => setPageState('1')} >添加</View>
- </View> */}
- </View>
- </View>
-
- <Text>照片</Text>
- <View>
- {imgUrl.length === 0 && (
- <Image
- className="guide-view-img"
- style={{ width: "10%", height: "100%" }}
- onClick={() => onUpImage()}
- src={uploadicon}
- ></Image>
- )}
- {imgUrl.length > 0 && (
- <View className="at-row at-row--wrap">
- {imgUrl.map(x => {
- return (
- <View
- className="at-col at-col-3"
- style={{ padding: "3px", height: "94px" }}
- key={x.imageId}
- >
- <Image
- className="guide-view-img"
- style={{
- width: "100%",
- height: "100%"
- }}
- mode="aspectFit"
- onClick={() => handleImageDelete(x)}
- src={x.image}
- ></Image>
- </View>
- );
- })}
- <View
- className="at-col at-col-3"
- style={{ padding: "30px", height: "94px" }}
- >
- <Image
- className="guide-view-img"
- style={{
- width: "100%",
- height: "100%"
- }}
- onClick={() => onUpImage()}
- src={uploadicon}
- ></Image>
- </View>
- </View>
- )}
- </View>
-
- {/* <Tab value={['取消','']} onClick={() => { Taro.navigateTo({ url: `/pages/label/edit/index` }) }} ></Tab> */}
- <Tab
- pageState="3"
- value={["取消", "上传"]}
- onClick={[
- e => {
- setPageState("1");
- },
- e => onSave(e)
- ]}
- ></Tab>
- </View>
-
- <View style={{ display: pageState == "2" ? "none" : "block" }}>
- <View style={{ padding: "0 20px" }}>
- {tagList.map((item, index) => {
- return (
- <View className="material-card" key={item.name}>
- <Text>{item.name}</Text>
- <Tags
- list={item.taMateTagList}
- onChange={e => onLabelChange(e, index)}
- style={{ marginTop: "90rpx" }}
- ></Tags>
- </View>
- );
- })}
- </View>
- {/* <Tab value={['取消','']} onClick={() => { Taro.navigateTo({ url: `/pages/label/edit/index` }) }} ></Tab> */}
- <Tab
- pageState="3"
- value={["取消", "选择"]}
- onClick={[
- e => {
- Taro.navigateBack({
- delta: 1
- });
- },
- e => {
- if (labelList.length > 0) setPageState("2");
- setImgUrl([])
- }
- ]}
- ></Tab>
- </View>
- </View>
- </IsLogin>
- );
- };
-
- export default batchimport;
|