Merge remote-tracking branch 'origin/main'

2.0/email-builder
Lei OT 11 months ago
commit 1b7e4ff0ac

@ -2,12 +2,13 @@ import { create } from 'zustand'
import { devtools } from 'zustand/middleware'
import { fetchJSON, postForm } from '@/utils/request'
import { API_HOST } from '@/config'
import { isNotEmpty, prepareUrl } from '@/utils/commons'
import { isNotEmpty, copy } from '@/utils/commons'
const useSnippetStore = create(devtools((set, get) => ({
ownerList: [],
typeList: [],
typeAllList: [],
snippetList: [],
drawerOpen: false,
@ -30,43 +31,37 @@ const useSnippetStore = create(devtools((set, get) => ({
return fetchJSON(fetchOwnerUrl, params)
.then(json => {
if (json.errcode === 0) {
console.info(json)
const mapTypeList = json?.result?.type.map(item => {
return { value: item.vsn, label: item.vname }
})
mapTypeList.unshift({ value: '', label: '全部' })
const mapTypeAllList = copy(mapTypeList);
mapTypeAllList.unshift({ value: '', label: '全部' });
set(() => ({
ownerList: json?.result?.owner.map(item => {
return { value: item.vsn, label: item.vname }
}),
typeList: mapTypeList
typeList: mapTypeList,
typeAllList: mapTypeAllList
}))
} else {
throw new Error(json?.errmsg + ': ' + json.errcode)
}
})
},
fetchSnippetList: async (formValues) => {
const fetchSnippetListUrl = `${API_HOST}/v2/QueryAutoDocInfo`
const params = {owner: '1/1', type: '234004', title: '中国'};
return fetchJSON(fetchSnippetListUrl, formValues)
.then(json => {
if (json.errcode === 0) {
console.info(json)
set(() => ({
snippetList: json?.result
// ownerList: json?.result?.owner.map(item => {
// return { value: item.vsn, label: item.vname }
// }),
}))
} else {
throw new Error(json?.errmsg + ': ' + json.errcode)
}
})
},
fetchSnippetDetail: async (snippetId) => {
@ -82,7 +77,26 @@ const useSnippetStore = create(devtools((set, get) => ({
throw new Error(json?.errmsg + ': ' + json.errcode)
}
})
},
saveOrUpdateSnippet: async (formValues) => {
const postSnippetUrl = `${API_HOST}/v2/AddAutoDocInfo`
const formData = new FormData()
formData.append('adi_sn', formValues.snippetId)
formData.append('owner', 383)
formData.append('type', formValues.category)
formData.append('title', formValues.title)
formData.append('adi_content', formValues.content.html)
formData.append('opi_sn', 383)
return postForm(postSnippetUrl, formData)
.then(json => {
if (json.errcode === 0) {
console.info(json)
} else {
throw new Error(json?.errmsg + ': ' + json.errcode)
}
})
},
}), { name: 'snippetStore' }))

@ -3,7 +3,7 @@ import { Conditional } from '@/components/Conditional'
import { isNotEmpty } from '@/utils/commons'
const HtmlPreview = (props) => {
const { loading = false, value } = props
const { loading = false, value, onEdit, onCopy, onDelete } = props
if (loading) {
return <Skeleton className='p-6' active />
@ -22,22 +22,18 @@ const HtmlPreview = (props) => {
<Divider />
<Flex gap='middle' justify='flex-end' wrap className='p-6'>
<Button
onClick={() => {
// setSnippetModalOpen(true)
}}>
onClick={onEdit}>
编辑
</Button>
<Button
onClick={() => {
//
navigator.clipboard.writeText(value)
}}>
复制
</Button>
<Button
danger
onClick={() => {
//
}}>
onClick={onDelete}>
删除
</Button>
</Flex>

@ -27,16 +27,20 @@ function SnippetList() {
fetchParamList,
ownerList,
typeList,
typeAllList,
fetchSnippetList,
snippetList,
fetchSnippetDetail,
saveOrUpdateSnippet
] = useSnippetStore((state) => [
state.fetchParamList,
state.ownerList,
state.typeList,
state.typeAllList,
state.fetchSnippetList,
state.snippetList,
state.fetchSnippetDetail,
state.saveOrUpdateSnippet
])
const [isSnippetModalOpen, setSnippetModalOpen] = useState(false)
@ -45,6 +49,7 @@ function SnippetList() {
const onSnippetFinish = (values) => {
console.log('onSnippetFinish:', values)
saveOrUpdateSnippet(values)
// console.info(JSON.stringify(editorRef.current.getEditorState()))
}
@ -120,11 +125,7 @@ function SnippetList() {
message: 'title required',
},
]}>
<Select>
<Select.Option value='收款'>收款</Select.Option>
<Select.Option value='西藏'>西藏</Select.Option>
<Select.Option value='催信'>催信</Select.Option>
<Select.Option value='提醒'>提醒</Select.Option>
<Select options={typeList}>
</Select>
</Form.Item>
<Form.Item
@ -158,7 +159,7 @@ function SnippetList() {
notFoundContent={'找不到'}></Select>
</Form.Item>
<Form.Item label='类别' name='type'>
<Select className='!w-40' options={typeList} />
<Select className='!w-40' options={typeAllList} />
</Form.Item>
<Form.Item label='标题' name='title'>
<Input />
@ -171,10 +172,7 @@ function SnippetList() {
<Form.Item>
<Button
onClick={() => {
snippetForm.setFieldsValue({
title: 'Title....',
content: editorContent,
})
snippetForm.resetFields()
setSnippetModalOpen(true)
}}>
新增
@ -203,7 +201,10 @@ function SnippetList() {
/>
</Col>
<Col span={16}>
<HtmlPreview value={editorContent} loading={isHtmlLoading} />
<HtmlPreview value={editorContent} loading={isHtmlLoading}
onEdit={() => console.info('onEdit')}
onCopy={() => console.info('onCopy')}
onDelete={() => console.info('onDelete')} />
</Col>
</Row>
</Space>

Loading…
Cancel
Save