fix phase2 gateway matching and release artifact
This commit is contained in:
@@ -4,6 +4,8 @@ import { Icon, PageTitle, Toolbar, Panel, ApiNotice, Modal, ConfirmDialog, Simpl
|
||||
import { enStatus } from '../utils/formatters.js';
|
||||
import { api, explainApiError } from '../api.js';
|
||||
|
||||
const emptyBusinessPrefixForm = { prefix: '', name: '', description: '', priority: 100, status: 'ENABLED' };
|
||||
|
||||
export function BusinessPrefixesPage({ can = () => true }) {
|
||||
const [rows, setRows] = useState([]);
|
||||
const [filters, setFilters] = useState({ keyword: '', status: 'all' });
|
||||
|
||||
@@ -363,6 +363,9 @@ export function CustomerGatewaysPage({ gatewayRows: apiGatewayRows, setGatewayRo
|
||||
<Field label="周期内费率">
|
||||
<Input value={gatewayForm.cycleRate} onChange={(event) => setGatewayForm({ ...gatewayForm, cycleRate: event.target.value })} placeholder="0.000000" />
|
||||
</Field>
|
||||
<Alert tone="info" title="匹配规则">
|
||||
业务前缀优先于主叫前缀,精确规则优先于空业务前缀兜底。空业务前缀用于裸被叫号码;同一 IP 下业务前缀组合必须唯一,主叫前缀不能互相覆盖。
|
||||
</Alert>
|
||||
<Field label="主叫匹配">
|
||||
<Select value={gatewayForm.callerMatchMode} onChange={(event) => setGatewayForm({ ...gatewayForm, callerMatchMode: event.target.value, callerPrefixes: '' })}>
|
||||
<option value="ANY">任意号码</option>
|
||||
|
||||
@@ -4,6 +4,8 @@ import { Icon, PageTitle, Panel, ApiNotice, Modal, ConfirmDialog, Drawer, Simple
|
||||
import { permissionGroups } from '../fixtures/devFixtures.js';
|
||||
import { explainApiError } from '../api.js';
|
||||
|
||||
const emptyRoleForm = { name: '', description: '', status: '启用' };
|
||||
|
||||
export function RolesPage({ roleRows, setRoleRows, userRows, apiLoading, apiError, refreshApi, can = () => true, onDeleteRole }) {
|
||||
const [editingRole, setEditingRole] = useState(undefined);
|
||||
const [roleForm, setRoleForm] = useState(emptyRoleForm);
|
||||
|
||||
@@ -3,6 +3,8 @@ import { Alert, Badge, Button, Field, Input, Select } from '../components/ui.jsx
|
||||
import { Icon, PageTitle, Toolbar, Panel, ApiNotice, Modal, ConfirmDialog, SimpleTable } from '../components/layout.jsx';
|
||||
import { explainApiError } from '../api.js';
|
||||
|
||||
const emptyUserForm = { username: '', name: '', phone: '', email: '', roleId: 'R002', status: '启用' };
|
||||
|
||||
export function UsersPage({ userRows, setUserRows, roleRows, apiLoading, apiError, refreshApi, can = () => true, onDeleteUser }) {
|
||||
const [keyword, setKeyword] = useState('');
|
||||
const [roleFilter, setRoleFilter] = useState('all');
|
||||
|
||||
Reference in New Issue
Block a user