Merge branch 'main' of github.com:hainatravel/GHHub

perf/export-docx
YCC 10 months ago
commit f34e2bc632

@ -1,7 +1,7 @@
{ {
"name": "global-highlights-hub", "name": "global-highlights-hub",
"private": true, "private": true,
"version": "2.0.0-beta.3", "version": "2.0.0-beta.5",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",

@ -1,7 +1,7 @@
export const PROJECT_NAME = "GHHub"; export const PROJECT_NAME = "GHHub";
// mode: test内部测试使用 // mode: test内部测试使用
export const HT_HOST = import.meta.env.MODE === 'test' ? 'http://202.103.68.144:891' : import.meta.env.PROD ? "https://p9axztuwd7x8a7.mycht.cn" : 'http://202.103.68.144:891' export const HT_HOST = import.meta.env.MODE === 'test' ? 'http://120.79.9.217:10024' : import.meta.env.PROD ? 'https://p9axztuwd7x8a7.mycht.cn' : 'http://202.103.68.144:890'
export const DATE_FORMAT = "YYYY-MM-DD"; export const DATE_FORMAT = "YYYY-MM-DD";

@ -82,6 +82,20 @@ export const postProductsQuoteAuditAction = async (auditState, quoteRow) => {
// return errcode !== 0 ? {} : result; // return errcode !== 0 ? {} : result;
}; };
export const postAgencyProductsAuditAction = async (auditState, agency) => {
const postbody = {
audit_state: auditState,
travel_agency_id: agency.travel_agency_id,
use_year: agency.use_year,
};
const formData = new FormData();
Object.keys(postbody).forEach((key) => {
formData.append(key, postbody[key]);
});
const json = await postForm(`${HT_HOST}/Service_BaseInfoWeb/agency_products_audit`, formData);
return json;
};
/** /**
* 供应商提交审核 * 供应商提交审核
*/ */
@ -263,6 +277,7 @@ export const useProductsStore = create(
return { return {
...prevQuotation, ...prevQuotation,
audit_state_id: -1,
adult_cost: formValues.adult_cost, adult_cost: formValues.adult_cost,
child_cost: formValues.child_cost, child_cost: formValues.child_cost,
currency: formValues.currency, currency: formValues.currency,

@ -1,7 +1,7 @@
import SearchForm from '@/components/SearchForm' import SearchForm from '@/components/SearchForm'
import useAccountStore, { fetchRoleList, fetchTravelAgencyByName, genRandomPassword } from '@/stores/Account' import useAccountStore, { fetchRoleList, fetchTravelAgencyByName, genRandomPassword } from '@/stores/Account'
import useFormStore from '@/stores/Form' import useFormStore from '@/stores/Form'
import { isEmpty } from '@/utils/commons' import { isEmpty, debounce } from '@/utils/commons'
import { ExclamationCircleFilled } from '@ant-design/icons' import { ExclamationCircleFilled } from '@ant-design/icons'
import { App, Button, Col, Form, Input, Modal, Row, Select, Space, Table, Typography, Switch } from 'antd' import { App, Button, Col, Form, Input, Modal, Row, Select, Space, Table, Typography, Switch } from 'antd'
import dayjs from 'dayjs' import dayjs from 'dayjs'
@ -299,7 +299,7 @@ function Management() {
loading={dataLoading} loading={dataLoading}
showSearch showSearch
filterOption={false} filterOption={false}
onSearch={handleTravelAgencySearch} onSearch={debounce(handleTravelAgencySearch, 800)}
notFoundContent={null} notFoundContent={null}
> >
</Select> </Select>

@ -55,7 +55,8 @@ const PriceTable = ({ productType, dataSource, refresh }) => {
const trCls = tri%2 !== 0 ? ' bg-stone-50' : ''; // const trCls = tri%2 !== 0 ? ' bg-stone-50' : ''; //
const [infoI, quoteI] = r.rowSpanI; const [infoI, quoteI] = r.rowSpanI;
const bigTrCls = quoteI === 0 && tri !== 0 ? 'border-collapse border-double border-0 border-t-4 border-stone-300' : ''; // 线 const bigTrCls = quoteI === 0 && tri !== 0 ? 'border-collapse border-double border-0 border-t-4 border-stone-300' : ''; // 线
const editedCls = (r.audit_state_id === 0 && isNotEmpty(r.lastedit_changed)) ? 'bg-red-100' : ''; // , : const editedCls = (r.audit_state_id === 0 && isNotEmpty(r.lastedit_changed)) ? '!bg-red-100' : ''; // , :
const editedCls_ = isNotEmpty(r.lastedit_changed) ? (r.audit_state_id === 0 ? '!bg-red-100' : '!bg-sky-100') : '';
return [trCls, bigTrCls, editedCls].join(' '); return [trCls, bigTrCls, editedCls].join(' ');
}; };

@ -4,7 +4,7 @@ import { App, Button, Divider, Popconfirm, Select } from 'antd';
import { ReloadOutlined } from '@ant-design/icons'; import { ReloadOutlined } from '@ant-design/icons';
import { useProductsAuditStatesMapVal } from '@/hooks/useProductsSets'; import { useProductsAuditStatesMapVal } from '@/hooks/useProductsSets';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import useProductsStore, { postProductsQuoteAuditAction, postAgencyAuditAction } from '@/stores/Products/Index'; import useProductsStore, { postAgencyProductsAuditAction, postAgencyAuditAction } from '@/stores/Products/Index';
import { isEmpty, objectMapper } from '@/utils/commons'; import { isEmpty, objectMapper } from '@/utils/commons';
import useAuthStore from '@/stores/Auth'; import useAuthStore from '@/stores/Auth';
import RequireAuth from '@/components/RequireAuth'; import RequireAuth from '@/components/RequireAuth';
@ -74,8 +74,8 @@ const Header = ({ refresh, ...props }) => {
setParam((pre) => ({ ...pre, ...{ pick_agency: value } })); setParam((pre) => ({ ...pre, ...{ pick_agency: value } }));
}; };
const handleAuditItem = (state, row) => { const handleAuditAgency = (state) => {
postProductsQuoteAuditAction(state, { id: row.id, travel_agency_id: activeAgency.travel_agency_id }) postAgencyProductsAuditAction(state, { travel_agency_id: activeAgency.travel_agency_id, use_year: switchParams.use_year })
.then((json) => { .then((json) => {
if (json.errcode === 0) { if (json.errcode === 0) {
message.success(json.errmsg); message.success(json.errmsg);
@ -157,15 +157,15 @@ const Header = ({ refresh, ...props }) => {
</Link> </Link>
)} )}
<RequireAuth subject={PERM_PRODUCTS_OFFER_AUDIT}> <RequireAuth subject={PERM_PRODUCTS_OFFER_AUDIT}>
<Button size='small' type={'primary'} onClick={() => handleAuditItem('2', activeAgency)}> <Button size='small' type={'primary'} onClick={() => handleAuditAgency('1')}>
{t('products:auditStateAction.Published')} {t('products:auditStateAction.Published')}
</Button> </Button>
</RequireAuth> </RequireAuth>
{/* <Button size='small' type={'primary'} ghost onClick={() => handleAuditItem('2', agency)}> {/* <Button size='small' type={'primary'} ghost onClick={() => handleAuditAgency('2')}>
{t('products:auditStateAction.Approved')} {t('products:auditStateAction.Approved')}
</Button> */} </Button> */}
<RequireAuth subject={PERM_PRODUCTS_OFFER_AUDIT}> <RequireAuth subject={PERM_PRODUCTS_OFFER_AUDIT}>
<Button size='small' type={'primary'} danger ghost onClick={() => handleAuditItem('3', activeAgency)}> <Button size='small' type={'primary'} danger ghost onClick={() => handleAuditAgency('3')}>
{t('products:auditStateAction.Rejected')} {t('products:auditStateAction.Rejected')}
</Button> </Button>
</RequireAuth> </RequireAuth>

@ -6,6 +6,8 @@ export default {
'text-primary', 'text-primary',
'text-danger', 'text-danger',
'text-muted', 'text-muted',
'bg-red-100',
'bg-sky-100',
], ],
darkMode: 'media', darkMode: 'media',
theme: { theme: {

Loading…
Cancel
Save