Browse Source

update check pasword special character and update org btn auth and application Id i18n

CR003
Alex Cheung 1 year ago
parent
commit
414e5da675
10 changed files with 47 additions and 40 deletions
  1. +13
    -11
      src/pages/Organization/DetailPage/OrganizationCard.js
  2. +2
    -2
      src/pages/User/ChangePasswordPage/index.js
  3. +1
    -1
      src/pages/authentication/ForgotPassword/AuthCallback/index.js
  4. +1
    -1
      src/pages/authentication/ForgotUsername/AuthCallback/index.js
  5. +2
    -2
      src/pages/authentication/auth-forms/AuthLoginCustom.js
  6. +10
    -7
      src/pages/authentication/auth-forms/BusCustomFormWizard.js
  7. +10
    -7
      src/pages/authentication/auth-forms/CustomFormWizard.js
  8. +3
    -4
      src/pages/authentication/auth-forms/IAmSmartFormWizard.js
  9. +1
    -1
      src/translations/en.json
  10. +4
    -4
      src/translations/zh-CN.json

+ 13
- 11
src/pages/Organization/DetailPage/OrganizationCard.js View File

@@ -336,17 +336,19 @@ const OrganizationCard = ({ userData, loadDataFun, id, setEditModeFun }) => {
</Button> </Button>
</ThemeProvider> </ThemeProvider>
</Grid> </Grid>
<Grid item sx={{ ml: 3, mr: 3 }}>
<ThemeProvider theme={PNSPS_BUTTON_THEME}>
<Button
variant="contained"
color="primary"
onClick={() => sendDn_Overdue(true)}
>
Generate O&#47;S DN List
</Button>
</ThemeProvider>
</Grid>
{ isGrantedAny("MAINTAIN_DEMANDNOTE")?
<Grid item sx={{ ml: 3, mr: 3 }}>
<ThemeProvider theme={PNSPS_BUTTON_THEME}>
<Button
variant="contained"
color="primary"
onClick={() => sendDn_Overdue(true)}
>
Generate O&#47;S DN List
</Button>
</ThemeProvider>
</Grid> : null
}
</> </>
} }
</> </>


+ 2
- 2
src/pages/User/ChangePasswordPage/index.js View File

@@ -136,14 +136,14 @@ const Index = () => {
.matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})}) .matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})})
.matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})}) .matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})})
.matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})}) .matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})})
.matches(/^(?=.*[!@#%&])/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
.matches(/^(?=.*\W)/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
newPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'})) newPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'}))
.required(intl.formatMessage({id: 'requirePassword'})) .required(intl.formatMessage({id: 'requirePassword'}))
.matches(/^\S*$/, { message: (intl.formatMessage({id: 'noSpacePassword'}))}) .matches(/^\S*$/, { message: (intl.formatMessage({id: 'noSpacePassword'}))})
.matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})}) .matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})})
.matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})}) .matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})})
.matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})}) .matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})})
.matches(/^(?=.*[!@#%&])/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
.matches(/^(?=.*\W)/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
confirmPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'})) confirmPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'}))
.required(intl.formatMessage({id: 'pleaseConfirmPassword'})) .required(intl.formatMessage({id: 'pleaseConfirmPassword'}))
.oneOf([yup.ref('newPassword'), null], intl.formatMessage({id: 'samePassword'})), .oneOf([yup.ref('newPassword'), null], intl.formatMessage({id: 'samePassword'})),


+ 1
- 1
src/pages/authentication/ForgotPassword/AuthCallback/index.js View File

@@ -175,7 +175,7 @@ const Index = () => {
.matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})}) .matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})})
.matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})}) .matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})})
.matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})}) .matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})})
.matches(/^(?=.*[!@#%&])/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
.matches(/^(?=.*\W)/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
confirmPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'})) confirmPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'}))
.required(intl.formatMessage({id: 'pleaseConfirmPassword'})) .required(intl.formatMessage({id: 'pleaseConfirmPassword'}))
.oneOf([yup.ref('password'), null], intl.formatMessage({id: 'samePassword'})), .oneOf([yup.ref('password'), null], intl.formatMessage({id: 'samePassword'})),


+ 1
- 1
src/pages/authentication/ForgotUsername/AuthCallback/index.js View File

@@ -181,7 +181,7 @@ const Index = () => {
.matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})}) .matches(/^(?=.*[a-z])/, { message: intl.formatMessage({id: 'atLeastOneSmallLetter'})})
.matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})}) .matches(/^(?=.*[A-Z])/, { message: intl.formatMessage({id: 'atLeastOneCapLetter'})})
.matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})}) .matches(/^(?=.*[0-9])/, { message: intl.formatMessage({id: 'atLeast1Number'})})
.matches(/^(?=.*[!@#%&])/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
.matches(/^(?=.*\W)/, { message: intl.formatMessage({id: 'atLeast1SpecialChar'})}),
confirmPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'})) confirmPassword: yup.string().min(8, intl.formatMessage({id: 'atLeast8CharPassword'}))
.max(60, getMaxErrStr(60)) .max(60, getMaxErrStr(60))
.required(intl.formatMessage({id: 'pleaseConfirmPassword'})) .required(intl.formatMessage({id: 'pleaseConfirmPassword'}))


+ 2
- 2
src/pages/authentication/auth-forms/AuthLoginCustom.js View File

@@ -151,7 +151,7 @@ const AuthLoginCustom = () => {
.matches(/^(?=.*[a-z])/, intl.formatMessage({ id: 'atLeastOneSmallLetter' })) .matches(/^(?=.*[a-z])/, intl.formatMessage({ id: 'atLeastOneSmallLetter' }))
.matches(/^(?=.*[A-Z])/, intl.formatMessage({ id: 'atLeastOneCapLetter' })) .matches(/^(?=.*[A-Z])/, intl.formatMessage({ id: 'atLeastOneCapLetter' }))
.matches(/^(?=.*[0-9])/, intl.formatMessage({ id: 'atLeast1Number' })) .matches(/^(?=.*[0-9])/, intl.formatMessage({ id: 'atLeast1Number' }))
.matches(/^(?=.*[!@#%&])/, intl.formatMessage({ id: 'atLeast1SpecialChar' })),
.matches(/^(?=.*\W)/, intl.formatMessage({ id: 'atLeast1SpecialChar' })),
}), }),
}); });


@@ -177,7 +177,7 @@ const AuthLoginCustom = () => {
var lowerCase = /[a-z]/g; var lowerCase = /[a-z]/g;
var upperCase = /[A-Z]/g; var upperCase = /[A-Z]/g;
var numbers = /[0-9]/g; var numbers = /[0-9]/g;
var symbol = /^(?=.*[!@#%&])/;
var symbol = /^(?=.*\W)/;
if (!new_pass.match(lowerCase)) { if (!new_pass.match(lowerCase)) {
return false; return false;
} else if (!new_pass.match(upperCase)) { } else if (!new_pass.match(upperCase)) {


+ 10
- 7
src/pages/authentication/auth-forms/BusCustomFormWizard.js View File

@@ -434,7 +434,7 @@ const BusCustomFormWizard = (props) => {
} }


function handleUserName(username) { function handleUserName(username) {
var symbol = /^(?=.*[!@#%&])/;
var symbol = /^(?=.*\W)/;
var space = /\s/; var space = /\s/;
if (username.length < 6) { if (username.length < 6) {
return false; return false;
@@ -461,7 +461,7 @@ const BusCustomFormWizard = (props) => {
var lowerCase = /[a-z]/g; var lowerCase = /[a-z]/g;
var upperCase = /[A-Z]/g; var upperCase = /[A-Z]/g;
var numbers = /[0-9]/g; var numbers = /[0-9]/g;
var symbol = /^(?=.*[!@#%&])/;
var symbol = /^(?=.*\W)/;
var space = /\s/; var space = /\s/;
if (!new_pass.match(lowerCase)) { if (!new_pass.match(lowerCase)) {
return false; return false;
@@ -527,7 +527,7 @@ const BusCustomFormWizard = (props) => {
.matches(/^(?=.*[a-z])/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeastOneSmallLetter'})) }) .matches(/^(?=.*[a-z])/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeastOneSmallLetter'})) })
.matches(/^(?=.*[A-Z])/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeastOneCapLetter'})) }) .matches(/^(?=.*[A-Z])/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeastOneCapLetter'})) })
.matches(/^(?=.*[0-9])/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeast1Number'})) }) .matches(/^(?=.*[0-9])/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeast1Number'})) })
.matches(/^(?=.*[!@#%&])/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeast1SpecialChar'})) }),
.matches(/^(?=.*\W)/, { message: displayErrorMsg(intl.formatMessage({id: 'atLeast1SpecialChar'})) }),
confirmPassword: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'atLeast8CharPassword'}))).required(displayErrorMsg(intl.formatMessage({id: 'pleaseConfirmPassword'}))).oneOf([yup.ref('password'), null], displayErrorMsg(intl.formatMessage({id: 'samePassword'}))), confirmPassword: yup.string().min(8, displayErrorMsg(intl.formatMessage({id: 'atLeast8CharPassword'}))).required(displayErrorMsg(intl.formatMessage({id: 'pleaseConfirmPassword'}))).oneOf([yup.ref('password'), null], displayErrorMsg(intl.formatMessage({id: 'samePassword'}))),
enName: yup.string().max(40,getMaxErrStr(40)).required(displayErrorMsg(intl.formatMessage({id: 'userRequireEnglishName'}))), enName: yup.string().max(40,getMaxErrStr(40)).required(displayErrorMsg(intl.formatMessage({id: 'userRequireEnglishName'}))),
enCompanyName: yup.string().matches(/^[^$^*()]+$/, { message: displayErrorMsg('No special characters $/^/*/(/)') }).when('chCompanyName', { enCompanyName: yup.string().matches(/^[^$^*()]+$/, { message: displayErrorMsg('No special characters $/^/*/(/)') }).when('chCompanyName', {
@@ -743,6 +743,9 @@ const BusCustomFormWizard = (props) => {
value={formik.values.confirmPassword.trim()} value={formik.values.confirmPassword.trim()}
name="confirmPassword" name="confirmPassword"
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
onCut={handleCCPChange}
onCopy={handleCCPChange}
onPaste={handleCCPChange}
onChange={(e) => { onChange={(e) => {
formik.handleChange(e); formik.handleChange(e);
// changePassword(e.target.value); // changePassword(e.target.value);
@@ -1004,7 +1007,7 @@ const BusCustomFormWizard = (props) => {
value={selectedAddress4} value={selectedAddress4}
options={address4ComboList} options={address4ComboList}
disabled={checkCountry} disabled={checkCountry}
error={Boolean(districtErrStr!="")}
// error={Boolean(districtErrStr!="")}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
getOptionLabel={(option) => option.type? intl.formatMessage({ id: option.type }) : ""} getOptionLabel={(option) => option.type? intl.formatMessage({ id: option.type }) : ""}
onChange={(event, newValue) => { onChange={(event, newValue) => {
@@ -1013,7 +1016,7 @@ const BusCustomFormWizard = (props) => {
sx={{ "& .MuiInputBase-root": { height: "41px" }, sx={{ "& .MuiInputBase-root": { height: "41px" },
"#address4-combo": { padding: "0px 0px 0px 3px" }, "#address4-combo": { padding: "0px 0px 0px 3px" },
"& .MuiAutocomplete-endAdornment": { top: "auto" }, }} "& .MuiAutocomplete-endAdornment": { top: "auto" }, }}
renderInput={(params) => <TextField {...params} placeholder={intl.formatMessage({id: 'region'})}
renderInput={(params) => <TextField error={Boolean(districtErrStr != "")} {...params} placeholder={intl.formatMessage({id: 'region'})}
/>} />}
/> />
<Autocomplete <Autocomplete
@@ -1055,11 +1058,11 @@ const BusCustomFormWizard = (props) => {
{formik.errors.address3} {formik.errors.address3}
</FormHelperText> </FormHelperText>
)} )}
{/* {districtErrStr!= "" && (
{districtErrStr!= "" && (
<FormHelperText error > <FormHelperText error >
{districtErrStr} {districtErrStr}
</FormHelperText> </FormHelperText>
)} */}
)}
</Stack> </Stack>
</Grid> </Grid>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>


+ 10
- 7
src/pages/authentication/auth-forms/CustomFormWizard.js View File

@@ -434,7 +434,7 @@ const CustomFormWizard = (props) => {
} }


function handleUsername(username) { function handleUsername(username) {
var symbol = /^(?=.*[!@#%&])/;
var symbol = /^(?=.*\W)/;
var space = /\s/; var space = /\s/;
if (username.length < 6) { if (username.length < 6) {
return false; return false;
@@ -538,7 +538,7 @@ const CustomFormWizard = (props) => {
var lowerCase = /[a-z]/g; var lowerCase = /[a-z]/g;
var upperCase = /[A-Z]/g; var upperCase = /[A-Z]/g;
var numbers = /[0-9]/g; var numbers = /[0-9]/g;
var symbol = /^(?=.*[!@#%&])/;
var symbol = /^(?=.*\W)/;
var space = /\s/; var space = /\s/;
if (!new_pass.match(lowerCase)) { if (!new_pass.match(lowerCase)) {
return false; return false;
@@ -610,7 +610,7 @@ const CustomFormWizard = (props) => {
.matches(/^(?=.*[a-z])/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeastOneSmallLetter' })) }) .matches(/^(?=.*[a-z])/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeastOneSmallLetter' })) })
.matches(/^(?=.*[A-Z])/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeastOneCapLetter' })) }) .matches(/^(?=.*[A-Z])/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeastOneCapLetter' })) })
.matches(/^(?=.*[0-9])/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeast1Number' })) }) .matches(/^(?=.*[0-9])/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeast1Number' })) })
.matches(/^(?=.*[!@#%&])/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeast1SpecialChar' })) }),
.matches(/^(?=.*\W)/, { message: displayErrorMsg(intl.formatMessage({ id: 'atLeast1SpecialChar' })) }),
confirmPassword: yup.string().min(8, displayErrorMsg(intl.formatMessage({ id: 'atLeast8CharPassword' }))).required(displayErrorMsg(intl.formatMessage({ id: 'pleaseConfirmPassword' }))).oneOf([yup.ref('password'), null], displayErrorMsg(intl.formatMessage({ id: 'samePassword' }))), confirmPassword: yup.string().min(8, displayErrorMsg(intl.formatMessage({ id: 'atLeast8CharPassword' }))).required(displayErrorMsg(intl.formatMessage({ id: 'pleaseConfirmPassword' }))).oneOf([yup.ref('password'), null], displayErrorMsg(intl.formatMessage({ id: 'samePassword' }))),
chName: yup.string().max(6, getMaxErrStr(6)), chName: yup.string().max(6, getMaxErrStr(6)),
enName: yup.string().max(40, getMaxErrStr(40)).when('chName', { enName: yup.string().max(40, getMaxErrStr(40)).when('chName', {
@@ -866,6 +866,9 @@ const CustomFormWizard = (props) => {
value={formik.values.confirmPassword.trim()} value={formik.values.confirmPassword.trim()}
name="confirmPassword" name="confirmPassword"
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
onCut={handleCCPChange}
onCopy={handleCCPChange}
onPaste={handleCCPChange}
onChange={(e) => { onChange={(e) => {
formik.handleChange(e); formik.handleChange(e);
// changePassword(e.target.value); // changePassword(e.target.value);
@@ -1245,7 +1248,7 @@ const CustomFormWizard = (props) => {
value={selectedAddress4} value={selectedAddress4}
options={ComboData.district} options={ComboData.district}
disabled={checkCountry} disabled={checkCountry}
error={Boolean(districtErrStr != "")}
// error={Boolean(districtErrStr != "")}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
getOptionLabel={(option) => option.type ? intl.formatMessage({ id: option.type }) : ""} getOptionLabel={(option) => option.type ? intl.formatMessage({ id: option.type }) : ""}
onChange={(event, newValue) => { onChange={(event, newValue) => {
@@ -1256,7 +1259,7 @@ const CustomFormWizard = (props) => {
"#address4-combo": { padding: "0px 0px 0px 3px" }, "#address4-combo": { padding: "0px 0px 0px 3px" },
"& .MuiAutocomplete-endAdornment": { top: "auto" }, "& .MuiAutocomplete-endAdornment": { top: "auto" },
}} }}
renderInput={(params) => <TextField {...params} placeholder={intl.formatMessage({ id: 'region' })}
renderInput={(params) => <TextField error={Boolean(districtErrStr != "")} {...params} placeholder={intl.formatMessage({ id: 'region' })}
/>} />}
/> />
<Autocomplete <Autocomplete
@@ -1298,11 +1301,11 @@ const CustomFormWizard = (props) => {
{formik.errors.address3} {formik.errors.address3}
</FormHelperText> </FormHelperText>
)} )}
{/* {districtErrStr != "" && (
{districtErrStr != "" && (
<FormHelperText error > <FormHelperText error >
{districtErrStr} {districtErrStr}
</FormHelperText> </FormHelperText>
)} */}
)}
</Stack> </Stack>
</Grid> </Grid>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>


+ 3
- 4
src/pages/authentication/auth-forms/IAmSmartFormWizard.js View File

@@ -583,14 +583,14 @@ const CustomFormWizard = (props) => {
value={selectedAddress4} value={selectedAddress4}
options={address4ComboList} options={address4ComboList}
disabled={checkCountry} disabled={checkCountry}
error={Boolean(districtErrStr != "")}
// error={Boolean(districtErrStr != "")}
onBlur={formik.handleBlur} onBlur={formik.handleBlur}
getOptionLabel={(option) => option.type ? intl.formatMessage({ id: option.type }) : ""} getOptionLabel={(option) => option.type ? intl.formatMessage({ id: option.type }) : ""}
onChange={(event, newValue) => { onChange={(event, newValue) => {
setSelectedAddress4(newValue); setSelectedAddress4(newValue);
}} }}
sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 0px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }} sx={{ "& .MuiInputBase-root": { height: "41px" }, "#address4-combo": { padding: "0px 0px 0px 0px" }, "& .MuiAutocomplete-endAdornment": { top: "auto" }, }}
renderInput={(params) => <TextField {...params} placeholder={intl.formatMessage({ id: 'region' })}
renderInput={(params) => <TextField error={Boolean(districtErrStr != "")} {...params} placeholder={intl.formatMessage({ id: 'region' })}
/>} />}
/> />
<Autocomplete <Autocomplete
@@ -632,12 +632,11 @@ const CustomFormWizard = (props) => {
{formik.errors.address3} {formik.errors.address3}
</FormHelperText> </FormHelperText>
)} )}
{/*
{districtErrStr != "" && ( {districtErrStr != "" && (
<FormHelperText error > <FormHelperText error >
{districtErrStr} {districtErrStr}
</FormHelperText> </FormHelperText>
)} */}
)}
</Stack> </Stack>
</Grid> </Grid>
<Grid item xs={12} mt={1} mb={1}> <Grid item xs={12} mt={1} mb={1}>


+ 1
- 1
src/translations/en.json View File

@@ -351,7 +351,7 @@
"cancelled": "Cancelled", "cancelled": "Cancelled",
"withdrawn": "Withdrawn", "withdrawn": "Withdrawn",
"searchApplyRecord": "Search application records", "searchApplyRecord": "Search application records",
"applicationId": "Application ID",
"applicationId": "Application No",
"submitDate": "Submit Date", "submitDate": "Submit Date",
"submitDateFrom": "Submit Date (From)", "submitDateFrom": "Submit Date (From)",
"submitDateTo": "Submit Date (To)", "submitDateTo": "Submit Date (To)",


+ 4
- 4
src/translations/zh-CN.json View File

@@ -408,7 +408,7 @@
"payReceipt": "付款收据", "payReceipt": "付款收据",
"contactPerson": "联络人", "contactPerson": "联络人",
"requireContactPerson": "请输入联络人", "requireContactPerson": "请输入联络人",
"requireCareOf": "请输入客戶備註",
"requireCareOf": "请输入客户备注",
"search": "搜寻", "search": "搜寻",
"searchForm": "搜寻表格", "searchForm": "搜寻表格",
"cancel": "取消", "cancel": "取消",
@@ -436,9 +436,9 @@
"applyStatus": "申请状态", "applyStatus": "申请状态",
"gazetteCount": "宪报期数", "gazetteCount": "宪报期数",
"gazetteCount2" :"宪报期数/ 其他备注", "gazetteCount2" :"宪报期数/ 其他备注",
"gazetteCount2_1" :"客戶備註/ 其他备注",
"gazetteCount3" :"宪报期数/ 客戶備註/ 其他备注",
"careOf":"客戶備註",
"gazetteCount2_1" :"客户备注/ 其他备注",
"gazetteCount3" :"宪报期数/ 客户备注/ 其他备注",
"careOf":"客户备注",
"careOfWarning":"您已选择了不同的客户备注申请。您要付款吗?", "careOfWarning":"您已选择了不同的客户备注申请。您要付款吗?",
"warning":"警告", "warning":"警告",
"publishDate": "发布日期", "publishDate": "发布日期",


Loading…
Cancel
Save