Commit 58add8ae by tdgiang

update code

parent 10a4a988
/* eslint-disable handle-callback-err */
import { PostData, GetURL } from '../helpers'
import url from '../url'
export const getListMerchants = async (body) =>
PostData(url.urlGetListMerchant, body)
.then((res) => res)
.catch((err) => null)
export const createMerchant = async (body) =>
PostData(url.urlCreateMerchant, body)
.then((res) => res)
.catch((err) => null)
export const updateMerchant = async (body) =>
PostData(url.urlUpdateMerchant, body)
.then((res) => res)
.catch((err) => null)
export const detailMerchant = async (id, body) =>
GetURL(`${url.urlDetailMerchant}/${id}`, body)
.then((res) => res)
.catch((err) => null)
export const deleteMerchant = async (body) =>
PostData(url.urlDeleteMerchant, body)
.then((res) => res)
.catch((err) => null)
export const changeStatusMerchant = async (body) =>
PostData(url.changeStatusMerchant, body)
.then((res) => res)
.catch((err) => null)
......@@ -62,6 +62,15 @@ export default {
urlDetailProduct: `${root}/product`,
changeStatusProduct: `${root}/product/changeStatus`,
listTransaction: `${root}/paymentTrans/list`,
//merchant:
urlGetListMerchant: `${root}/merchant/list`,
urlCreateMerchant: `${root}/merchant/create`,
urlUpdateMerchant: `${root}/merchant/update`,
urlDeleteMerchant: `${root}/merchant/delete`,
urlDetailMerchant: `${root}/merchant`,
changeStatusMerchant: `${root}/merchant/changeStatus`,
//Log
logAuth: `${root}/logging/listLogin`,
logApi: `${root}/logging/listCallApi`,
......
import React, { useState, useEffect } from 'react'
import { ValidatorForm, TextValidator } from 'react-material-ui-form-validator'
import { Button, Grid } from '@material-ui/core'
import {
Button,
Grid,
FormControlLabel,
Checkbox,
Typography,
} from '@material-ui/core'
import { createFunction } from 'app/apis/Functions/function'
import { createMerchant } from 'app/apis/Functions/merchant'
import { showLoading, hideLoading } from 'app/redux/actions/loadingAction'
import { toast } from 'react-toastify'
import { Breadcrumb, SimpleCard } from 'app/components'
import { Link, useHistory, useLocation } from 'react-router-dom'
import { trimObject } from 'app/config/Function'
import { connect } from 'react-redux'
import { useTranslation } from 'react-i18next'
const SimpleForm = (props) => {
const [state, setState] = useState({})
const history = useHistory()
const [isStore, setIsStore] = useState(false)
const [invoice, setInvoice] = useState(false)
const [payment, setPayment] = useState(false)
const { t } = useTranslation()
const handleSubmit = async (event) => {
const newValue = trimObject(state)
props.showLoading()
const res = await createFunction({
console.log('newValue', newValue)
console.log('isStore', isStore)
console.log('invoice', invoice)
console.log('payment', payment)
//props.showLoading()
const res = await createMerchant({
...newValue,
status: 1,
is_default: true,
is_admin_store: true,
is_connect_hddt: true,
is_connect_qr: true,
})
props.hideLoading()
if (res.data.code == 200) {
history.push('/function')
if (res.data.code == 200) {
toast.success('Tạo hành động thành công!', {
theme: 'colored',
})
}
} else {
toast.error('Tạo hành động thất bại!', {
theme: 'colored',
})
}
//props.hideLoading()
console.log('res', res)
// if (res.data.code == 200) {
// history.push('/merchant')
// if (res.data.code == 200) {
// toast.success('Tạo pháp nhân thành công!', {
// theme: 'colored',
// })
// }
// } else {
// toast.error(t(res.data.error), {
// theme: 'colored',
// })
// }
}
const handleChange = (event) => {
......@@ -43,11 +63,23 @@ const SimpleForm = (props) => {
})
}
const handleDateChange = (date) => {
setState({ ...state, date })
}
const { description, name, code, url } = state
const {
merchan_name,
tax_code,
address,
email,
phone_number,
representative,
username,
password,
hddt_tax_code,
hddt_username,
hddt_password,
hddt_character,
qr_merchant_code,
qr_api_key,
qr_secret_key,
} = state
return (
<div className="m-sm-30">
......@@ -56,10 +88,10 @@ const SimpleForm = (props) => {
<Breadcrumb
routeSegments={[
{
name: 'Danh sách chức năng',
path: '/function',
name: 'Danh sách pháp nhân',
path: '/merchant',
},
{ name: 'Thêm mới chức năng' },
{ name: 'Thêm mới pháp nhân' },
]}
/>
</div>
......@@ -70,26 +102,42 @@ const SimpleForm = (props) => {
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Tên chức năng *"
label="Tên pháp nhân *"
onChange={handleChange}
type="text"
name="merchan_name"
value={merchan_name || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mã số thuế *"
onChange={handleChange}
type="text"
name="name"
value={name || ''}
name="tax_code"
value={tax_code || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mã code *"
label="Địa chỉ *"
onChange={handleChange}
type="text"
name="code"
value={code || ''}
name="address"
value={address || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
......@@ -101,11 +149,28 @@ const SimpleForm = (props) => {
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Đường dẫn *"
label="Email *"
onChange={handleChange}
type="text"
name="url"
value={url || ''}
name="email"
value={email || ''}
validators={['required', 'isEmail']}
errorMessages={[
'Không được để trống trường này',
'Email không hợp lệ',
]}
/>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Tên người đại diện *"
onChange={handleChange}
type="text"
name="representative"
value={representative || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
......@@ -116,20 +181,246 @@ const SimpleForm = (props) => {
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mô tả"
label="Số điện thoại liên hệ *"
onChange={handleChange}
type="text"
name="phone_number"
value={phone_number || ''}
validators={[
'required',
'isNumber',
'minStringLength:10',
'maxStringLength:15',
]}
errorMessages={[
'Không được để trống trường này',
'Trường này phải nhập số ',
'Số điện thoại phải có ít nhất 10 chữ số',
'Số điện thoại nhiều nhất chỉ có 15 chữ số',
]}
/>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Tên đăng nhập *"
onChange={handleChange}
type="text"
name="description"
value={description || ''}
// validators={['required']}
name="username"
value={username || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mật khẩu *"
onChange={handleChange}
type="password"
name="password"
value={password || ''}
validators={[
'required',
'minStringLength:8',
]}
errorMessages={[
'Không được để trống trường này',
'Mật khẩu phải có ít nhất 8 ký tự',
]}
/>
</Grid>
<Grid lg={12} md={12} sm={12} xs={12} item>
<FormControlLabel
className="min-w-288"
control={
<Checkbox
size="small"
color="primary"
onChange={(event) => {
console.log(
event.target.checked
)
setIsStore(event.target.checked)
}}
value={isStore}
/>
}
label="Pháp nhân là chủ cửa hàng"
/>
</Grid>
<Grid lg={12} md={12} sm={12} xs={12} item>
<Typography variant="h6">
Thông tin tích hp
</Typography>
</Grid>
<Grid lg={12} md={12} sm={12} xs={12} item>
<FormControlLabel
className="min-w-288"
control={
<Checkbox
size="small"
name={'he1'}
color="primary"
onChange={(event) => {
setInvoice(event.target.checked)
}}
value={invoice}
/>
}
label="Tích hợp hóa đơn"
/>
</Grid>
{invoice ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mã số thuế hoá đơn *"
onChange={handleChange}
type="text"
name="hddt_tax_code"
value={hddt_tax_code || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
) : null}
{invoice ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Tài khoản hoá đơn *"
onChange={handleChange}
type="text"
name="hddt_username"
value={hddt_username || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
) : null}
{invoice ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mật khẩu hoá đơn *"
onChange={handleChange}
type="text"
name="hddt_password"
value={hddt_password || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
) : null}
{invoice ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Chữ ký hoá đơn *"
onChange={handleChange}
type="text"
name="hddt_character"
value={hddt_character || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
) : null}
<Grid lg={12} md={12} sm={12} xs={12} item>
<FormControlLabel
className="min-w-288"
control={
<Checkbox
size="small"
color="primary"
name={'he2'}
onChange={(event) => {
setPayment(event.target.checked)
}}
value={payment}
/>
}
label="Tích hợp thanh toán"
/>
</Grid>
{payment ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mã QR code *"
onChange={handleChange}
type="text"
name="qr_merchant_code"
value={qr_merchant_code || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
) : null}
{payment ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="API QR key *"
onChange={handleChange}
type="text"
name="qr_api_key"
value={qr_api_key || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
) : null}
{payment ? (
<Grid item lg={6} md={6} sm={12} xs={12}>
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Mật khẩu QR *"
onChange={handleChange}
type="text"
name="qr_secret_key"
value={qr_secret_key || ''}
validators={['required']}
errorMessages={[
'Không được để trống trường này',
]}
/>
</Grid>
) : null}
</Grid>
<Grid container justify={'flex-end'}>
<Link to="function">
<Link to="merchant">
<Button
style={{
marginRight: 20,
......
import React, { useState, useEffect } from 'react'
import ToolUserView from './View'
import {
getListFunction,
deleteFunction,
changeStatusFunction,
} from 'app/apis/Functions/function'
getListMerchants,
deleteMerchant,
changeStatusMerchant,
} from 'app/apis/Functions/merchant'
import { useHistory } from 'react-router-dom'
import KEY from '../../assets/Key'
import { connect } from 'react-redux'
......@@ -27,24 +27,10 @@ const ToolNotificate = (props) => {
const [data, setData] = useState([])
const [permissions, setPermissions] = useState([])
// useEffect(() => {
// getListPermission();
// }, []);
// const getListPermission = () => {
// let temp = localStorage.getItem(KEY.LISTPATH);
// let listPath = JSON.parse(temp);
// if (listPath) {
// const newlist = listPath.map((e) => {
// if (e.function_code) return e.function_code;
// return e.action_code;
// });
// setPermissions(newlist);
// }
// };
const handeChangeActive = async (id, status_id) => {
props.showLoading()
const res = await changeStatusFunction({ id, status_id })
const res = await changeStatusMerchant({ id, status_id })
props.hideLoading()
if (res.data.code == 200) {
getData()
......@@ -60,13 +46,14 @@ const ToolNotificate = (props) => {
const getData = async () => {
props.showLoading()
const res = await getListFunction({
const res = await getListMerchants({
name: searchDebount,
page_no: pageIndex + 1,
page_size: pageSize,
})
props.hideLoading()
console.log('res', res)
if (res.data.code == 200 && res.data.data) {
console.log(res.data)
......@@ -92,7 +79,7 @@ const ToolNotificate = (props) => {
const removeItem = async (id) => {
props.showLoading()
const res = await deleteFunction({ id })
const res = await deleteMerchant({ id })
props.hideLoading()
if (res.data.code == 200) {
getData()
......
......@@ -39,34 +39,46 @@ const columns = [
},
{
id: 'name',
label: 'Tên chức năng',
id: 'merchant_name',
label: 'Pháp nhân',
align: 'left',
minWidth: 'auto',
},
{
id: 'code',
label: 'Mã code',
id: 'tax_code',
label: 'Mã số thuế',
align: 'left',
minWidth: 'auto',
},
{
id: 'url',
label: ường dẫn',
id: 'address',
label: ịa chỉ',
align: 'left',
minWidth: 'auto',
},
{
id: 'description',
label: 'Mô tả',
id: 'email',
label: 'Email',
align: 'left',
minWidth: 'auto',
},
{
id: 'date_created',
label: 'Ngày tạo',
id: 'representative',
label: 'Người đại diện',
align: 'left',
minWidth: 'auto',
},
{
id: 'phone_number',
label: 'SĐT liên hệ',
align: 'left',
minWidth: 'auto',
},
{
id: 'total_store',
label: 'Số cây xăng',
align: 'left',
minWidth: 'auto',
},
......
......@@ -47,7 +47,7 @@ const SimpleForm = (props) => {
})
props.hideLoading()
if (res.data.code == 200) {
history.push('/function')
history.push('/merchant')
if (res.data.code == 200) {
toast.success('Cập nhật hành động thành công!', {
theme: 'colored',
......@@ -81,10 +81,10 @@ const SimpleForm = (props) => {
<Breadcrumb
routeSegments={[
{
name: 'Danh sách chức năng',
path: '/function',
name: 'Danh sách pháp nhân',
path: '/merchant',
},
{ name: 'Cập nhật chức năng' },
{ name: 'Cập nhật pháp nhân' },
]}
/>
</div>
......@@ -95,7 +95,7 @@ const SimpleForm = (props) => {
<TextValidator
variant="outlined"
className="mb-4 w-full"
label="Tên chức năng *"
label="Tên pháp nhân *"
onChange={handleChange}
type="text"
name="name"
......@@ -154,7 +154,7 @@ const SimpleForm = (props) => {
</Grid>
</Grid>
<Grid container justify={'flex-end'}>
<Link to="function">
<Link to="merchant">
<Button
style={{
marginRight: 20,
......
......@@ -45,8 +45,8 @@ function CustomerView(props) {
<Breadcrumb
routeSegments={[
{
name: 'Danh sách chức năng',
path: '/function',
name: 'Danh sách pháp nhân',
path: '/merchant',
},
]}
/>
......@@ -66,7 +66,7 @@ function CustomerView(props) {
<TextField
variant="outlined"
className="w-full"
label="Tên chức năng"
label="Tên pháp nhân"
onChange={(e) => {
const text = e.target.value
setTimeout(() => {
......@@ -75,8 +75,8 @@ function CustomerView(props) {
}}
/>
</Grid>
{checkRole(user, '/function/create') ? (
<Link to="/function/create">
{checkRole(user, '/merchant/create') ? (
<Link to="/merchant/create">
<Button
variant="contained"
className={'bg-light-primary'}
......
......@@ -35,7 +35,7 @@ const ToolNotificate = (props) => {
page_size: pageSize,
from_date: startDate ? convertDate(startDate) : null,
to_date: endDate ? convertDate(endDate) : null,
gasoline_id: '57dd1a73-d847-4d73-9791-08dc0841e7a9',
// gasoline_id: '57dd1a73-d847-4d73-9791-08dc0841e7a9',
})
props.hideLoading()
if (res.data.code == 200 && res.data.data) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment