csm修改
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 87 KiB |
|
Before Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 10 MiB |
|
Before Width: | Height: | Size: 1.9 KiB |
@ -1 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1777452842620" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8518" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M509.9 709.88a20 20 0 0 1-20-20V148.49a20 20 0 0 1 40 0v541.39a20 20 0 0 1-20 20z" fill="currentColor" p-id="8519"></path><path d="M509.9 709.88a20 20 0 0 1-14-5.73L324.43 535.76a20 20 0 0 1 28-28.53l171.48 168.38a20 20 0 0 1-14 34.27z" fill="currentColor" p-id="8520"></path><path d="M509.9 709.88a20 20 0 0 1-14-34.27l171.43-168.38a20 20 0 1 1 28 28.53L523.91 704.15a19.94 19.94 0 0 1-14.01 5.73z" fill="currentColor" p-id="8521"></path><path d="M215.26 925.93a104.23 104.23 0 0 1-104.12-104.09V695.53a20 20 0 0 1 40 0v126.24a64.21 64.21 0 0 0 64.13 64.16h589.16a64.14 64.14 0 0 0 64.16-64.15V695.53a20 20 0 0 1 40 0v126.24A104.12 104.12 0 0 1 804.5 925.93H215.26z" fill="currentColor" p-id="8522"></path></svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
@ -0,0 +1,11 @@
|
|||||||
|
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g id="Group 36532">
|
||||||
|
<path id="Vector" d="M20.0903 23H7.90857C6.85829 23 6 22.2165 6 21.2455V13.7925C6.00045 13.5609 6.05026 13.3318 6.14659 13.1181C6.24292 12.9045 6.38386 12.7106 6.56131 12.5475C6.73877 12.3845 6.94924 12.2556 7.18064 12.1681C7.41204 12.0807 7.65981 12.0365 7.90971 12.038H8.38057V10.3015C8.38057 7.28494 10.8994 5 14 5C17.1006 5 19.6194 7.286 19.6194 10.3005V12.0475H20.0903C21.1417 12.0475 22 12.83 22 13.802V21.254C22 22.2175 21.1429 23 20.0903 23ZM13.1977 17.4655V19.418C13.1977 19.6151 13.2822 19.8042 13.4327 19.9436C13.5832 20.083 13.7872 20.1613 14 20.1613C14.2128 20.1613 14.4168 20.083 14.5673 19.9436C14.7178 19.8042 14.8023 19.6151 14.8023 19.418V17.4655C15.2823 17.2135 15.6057 16.736 15.6057 16.1865C15.6057 15.7919 15.4365 15.4135 15.1354 15.1345C14.8343 14.8556 14.4259 14.6988 14 14.6988C13.5741 14.6988 13.1657 14.8556 12.8646 15.1345C12.5635 15.4135 12.3943 15.7919 12.3943 16.1865C12.3943 16.736 12.7177 17.2135 13.1977 17.4655ZM18.0137 10.2475C18.0113 9.26286 17.5873 8.31931 16.8348 7.62394C16.0823 6.92857 15.0628 6.53819 14 6.53847C12.9372 6.53819 11.9177 6.92857 11.1652 7.62394C10.4127 8.31931 9.98871 9.26286 9.98629 10.2475V12.038H18.0137V10.2475Z" fill="url(#paint0_linear_1382_1839)"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_1382_1839" x1="14" y1="5" x2="14" y2="23" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8C9BB3"/>
|
||||||
|
<stop offset="1" stop-color="#C2CAD7"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
@ -1 +0,0 @@
|
|||||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1777451652405" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7494" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M888.046933 1024H135.953067A135.816533 135.816533 0 0 1 0 888.046933V135.953067A135.816533 135.816533 0 0 1 135.953067 0H567.978667c22.4256 0 40.0384 17.646933 40.0384 40.0384 0 22.4256-17.6128 40.072533-40.0384 40.072533H135.953067c-30.378667 0-55.978667 25.6-55.978667 55.978667v751.957333c0 30.378667 25.6 55.978667 55.978667 55.978667h751.957333c30.378667 0 55.978667-25.6 55.978667-55.978667V456.021333c0-22.4256 17.646933-40.0384 40.072533-40.0384 22.391467 0 40.0384 17.6128 40.0384 40.0384v432.0256A135.816533 135.816533 0 0 1 888.046933 1024z" fill="currentColor" p-id="7495"></path><path d="M977.578667 297.642667a39.662933 39.662933 0 0 1-40.0384-40.0384v-123.221334l-319.965867 320.034134c-16.042667 16.042667-41.642667 16.042667-55.978667 0-14.336-16.042667-16.042667-41.642667 0-55.978667l307.2-308.770133h-99.191466a39.662933 39.662933 0 0 1-40.072534-40.072534c0-22.391467 17.646933-40.0384 40.072534-40.0384H972.8c31.982933 0 44.817067 7.953067 44.817067 40.0384v208.008534c0 20.821333-17.6128 40.0384-40.0384 40.0384z" fill="currentColor" p-id="7496"></path></svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 98 KiB |
@ -0,0 +1,11 @@
|
|||||||
|
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g id="Group 36531">
|
||||||
|
<path id="Vector" d="M18.3772 17.718L18.4351 17.7298L18.854 17.7947C19.8029 17.9659 20.6031 18.2539 21.2463 18.6611C21.795 19.0093 22.2305 19.4437 22.5326 19.9512C22.8725 20.5201 22.9976 21.0737 23 21.5069L22.9953 21.6627V22.0699C22.9943 22.2978 22.9099 22.5174 22.7582 22.6875C22.6065 22.8575 22.3978 22.9661 22.1715 22.9929L22.0535 23H5.94287C5.71521 23.0008 5.49502 22.9188 5.32345 22.7691C5.15187 22.6195 5.04064 22.4124 5.01053 22.1867L5.00227 22.0687L5.00345 21.691C4.97749 21.2024 5.09432 20.5768 5.48024 19.9323C5.78591 19.4212 6.2214 18.9869 6.769 18.641C7.33076 18.2858 8.01173 18.0249 8.80363 17.8597L9.1506 17.7936L9.56366 17.7287L9.62031 17.7168L13.6589 20.578C13.7442 20.6382 13.844 20.6748 13.948 20.6842H14.0519C14.1184 20.6787 14.1834 20.662 14.2443 20.6346L14.2938 20.6087L14.341 20.578L18.3772 17.718ZM12.6121 5C12.7974 5 12.9685 5.00708 13.1467 5.02007C15.7679 5.216 17.3045 5.95252 17.9972 6.70675C18.3265 7.088 18.5613 7.54597 18.7053 8.07357C18.7348 8.18334 18.7573 8.28249 18.7738 8.36984L18.7927 8.49141L18.8375 8.78885C18.9001 9.28459 18.9036 9.79331 18.8717 10.3788L18.8576 10.5829L18.8375 10.7954L18.8021 11.0645L18.8883 11.1802L18.9319 11.2522L18.9709 11.3277L19.0346 11.4894C19.0818 11.6334 19.1019 11.7822 19.1019 11.9734C19.0667 12.5931 18.8785 13.1945 18.5543 13.7238L18.4044 13.9528L18.2982 14.0944L18.1742 14.2431L17.714 14.7601C17.1144 15.4471 16.8454 15.9133 16.7474 16.5932L16.7238 16.8033L16.7037 17.057L16.6967 17.2424L16.7321 17.2624C16.7734 17.2837 16.8229 17.3061 16.8796 17.3297L13.9988 19.3728L11.1168 17.3285C11.1722 17.3049 11.223 17.2837 11.2655 17.2612L11.341 17.2199L11.2973 17.2424L11.2914 17.0582L11.2726 16.8033C11.1994 16.0042 10.9409 15.5167 10.2812 14.7589L10.09 14.5465L9.92008 14.3576C9.3876 13.787 9.04141 13.0678 8.92755 12.2956L8.89922 12.0666L8.89332 11.9663C8.89332 11.6783 8.95823 11.4517 9.08215 11.2534L9.1624 11.1377L9.20253 11.0893L9.18601 10.9902C9.10625 10.3838 9.0857 9.77104 9.12464 9.16065L9.15532 8.83252L9.19191 8.57993C9.23321 7.74662 9.66752 7.08328 10.1691 6.61351L10.3072 6.49075L10.3497 6.45416L10.3402 6.41639L10.3237 6.27357V6.12485L10.3449 5.97141C10.4252 5.56774 10.7179 5.22426 11.2277 5.09207C11.3493 5.0602 11.4519 5.04485 11.5853 5.03541L11.734 5.02597L12.2143 5.0059L12.6132 5H12.6121Z" fill="url(#paint0_linear_1401_5011)"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="paint0_linear_1401_5011" x1="14" y1="5" x2="14" y2="23" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop stop-color="#8C9BB3"/>
|
||||||
|
<stop offset="1" stop-color="#C2CAD7"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 494 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 97 KiB |
|
Before Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
@ -1,28 +1,60 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-select v-model="currentLang" @change="changeLang" style="width: 120px">
|
<el-select
|
||||||
<el-option v-for="(item,index) in langData" :value="item.value" :label="item.label" :key="index"></el-option>
|
class="i18n-wrap"
|
||||||
|
v-model="currentLang"
|
||||||
|
@change="changeLang"
|
||||||
|
popper-class="i18n-popper"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="(item, index) in langData"
|
||||||
|
:value="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:key="index"
|
||||||
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {ref, reactive} from 'vue'
|
import { ref, reactive } from "vue";
|
||||||
import { useI18n } from 'vue-i18n'
|
import { useI18n } from "vue-i18n";
|
||||||
|
|
||||||
const { locale } = useI18n()
|
const { locale } = useI18n();
|
||||||
|
|
||||||
const langData = reactive([
|
const langData = reactive([
|
||||||
{value:'zhCN',label:'中文(简体)'},
|
{ value: "zhCN", label: "中文(简体)" },
|
||||||
{value:'zhTW',label:'中文(繁體)'},
|
{ value: "zhTW", label: "中文(繁體)" },
|
||||||
{value:'enUS',label:'English'},
|
{ value: "enUS", label: "English" },
|
||||||
])
|
]);
|
||||||
|
|
||||||
const currentLang = ref(localStorage.getItem('lang') || 'zhCN')
|
const currentLang = ref(localStorage.getItem("lang") || "zhCN");
|
||||||
|
|
||||||
const changeLang = (lang) => {
|
const changeLang = (lang) => {
|
||||||
currentLang.value = lang
|
currentLang.value = lang;
|
||||||
locale.value = lang
|
locale.value = lang;
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
<style scoped>
|
.i18n-popper {
|
||||||
|
--el-color-primary: #2b7afa;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.i18n-wrap {
|
||||||
|
:deep(.el-select__wrapper) {
|
||||||
|
box-shadow: none;
|
||||||
|
padding: 5px 8px;
|
||||||
|
background: rgba(255, 255, 255, 0.6);
|
||||||
|
border-radius: 9999px;
|
||||||
|
border: 1px solid #ffffff;
|
||||||
|
outline: none;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #1d2129;
|
||||||
|
.el-select__selected-item.el-select__placeholder {
|
||||||
|
position: relative;
|
||||||
|
transform: translateY(0);
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,11 +1,472 @@
|
|||||||
export default {
|
export default {
|
||||||
login:{
|
// Common
|
||||||
title:'Welcome to log in',
|
common: {
|
||||||
name:'Hospital Customer Management',
|
confirm: 'Confirm',
|
||||||
userName:'Please enter your account number.',
|
cancel: 'Cancel',
|
||||||
passWord:'Please enter the password.',
|
save: 'Save',
|
||||||
code:'Please enter the verification code.',
|
submit: 'Submit',
|
||||||
jizhu:'Remember the account number',
|
reset: 'Reset',
|
||||||
denglu:'Log in'
|
query: 'Query',
|
||||||
},
|
search: 'Search',
|
||||||
}
|
add: 'Add',
|
||||||
|
edit: 'Edit',
|
||||||
|
delete: 'Delete',
|
||||||
|
view: 'View',
|
||||||
|
close: 'Close',
|
||||||
|
back: 'Back',
|
||||||
|
export: 'Export',
|
||||||
|
download: 'Download',
|
||||||
|
upload: 'Upload',
|
||||||
|
more: 'More',
|
||||||
|
all: 'All',
|
||||||
|
yes: 'Yes',
|
||||||
|
no: 'No',
|
||||||
|
enabled: 'Enabled',
|
||||||
|
disabled: 'Disabled',
|
||||||
|
pleaseSelect: 'Please select',
|
||||||
|
pleaseInput: 'Please input',
|
||||||
|
success: 'Success',
|
||||||
|
failed: 'Failed',
|
||||||
|
operating: 'Action',
|
||||||
|
remark: 'Remark',
|
||||||
|
time: 'Time',
|
||||||
|
today: 'Today',
|
||||||
|
yesterday: 'Yesterday',
|
||||||
|
thisWeek: 'This Week',
|
||||||
|
thisMonth: 'This Month',
|
||||||
|
thisQuarter: 'This Quarter',
|
||||||
|
thisYear: 'This Year',
|
||||||
|
customDate: 'Custom Date',
|
||||||
|
startDate: 'Start Date',
|
||||||
|
endDate: 'End Date',
|
||||||
|
language: 'Language',
|
||||||
|
},
|
||||||
|
// Login page
|
||||||
|
login: {
|
||||||
|
title: 'Welcome to Log In',
|
||||||
|
name: '康策智能CSM系统',
|
||||||
|
headerTitle: 'Kangce Smart CSM System',
|
||||||
|
userName: 'Please enter your account',
|
||||||
|
passWord: 'Please enter your password',
|
||||||
|
code: 'Please enter the verification code',
|
||||||
|
jizhu: 'Remember me',
|
||||||
|
denglu: 'Login',
|
||||||
|
copyright: 'Copyright © Shanghai Kangce Software Co., Ltd.',
|
||||||
|
hotline: 'Hotline: 021-60713139',
|
||||||
|
loginSuccess: 'Login Successful',
|
||||||
|
loginFailed: 'Login Failed',
|
||||||
|
unknownUserType: 'Unknown user type, cannot log in',
|
||||||
|
pleaseEnterUserName: 'Please enter your account',
|
||||||
|
pleaseEnterPassWord: 'Please enter your password',
|
||||||
|
languageLabel: 'Language:',
|
||||||
|
},
|
||||||
|
// Navigation menu
|
||||||
|
nav: {
|
||||||
|
workbench: 'Workbench',
|
||||||
|
submit: 'My Tickets',
|
||||||
|
points: 'My Points',
|
||||||
|
quickSubmit: 'Quick Submit',
|
||||||
|
workorders: 'Service Tickets',
|
||||||
|
reports: 'Service Reports',
|
||||||
|
hospitals: 'Hospitals',
|
||||||
|
customer: 'Customer Service',
|
||||||
|
managerPoints: 'Manager Points',
|
||||||
|
account: 'Accounts',
|
||||||
|
grades: 'Performance',
|
||||||
|
},
|
||||||
|
// Page title
|
||||||
|
title: {
|
||||||
|
workbench: 'Workbench',
|
||||||
|
submit: 'My Tickets',
|
||||||
|
points: 'My Points',
|
||||||
|
workorders: 'Service Tickets',
|
||||||
|
reports: 'Service Reports',
|
||||||
|
hospitals: 'Hospitals',
|
||||||
|
customer: 'Customer Service',
|
||||||
|
managerPoints: 'Manager Points',
|
||||||
|
account: 'Account Management',
|
||||||
|
grades: 'Performance Management',
|
||||||
|
changePassword: 'Change Password',
|
||||||
|
},
|
||||||
|
// Button text
|
||||||
|
btn: {
|
||||||
|
quickSubmit: 'Quick Submit',
|
||||||
|
view: 'View',
|
||||||
|
edit: 'Edit',
|
||||||
|
cancel: 'Cancel',
|
||||||
|
close: 'Close',
|
||||||
|
detail: 'Detail',
|
||||||
|
process: 'Process',
|
||||||
|
submit: 'Submit Ticket',
|
||||||
|
save: 'Save Changes',
|
||||||
|
cancelModal: 'Cancel',
|
||||||
|
saveChange: 'Save Changes',
|
||||||
|
query: 'Query',
|
||||||
|
reset: 'Reset',
|
||||||
|
export: 'Export',
|
||||||
|
download: 'Download',
|
||||||
|
upload: 'Upload',
|
||||||
|
generate: 'Generate',
|
||||||
|
add: 'Add',
|
||||||
|
delete: 'Delete',
|
||||||
|
addOrder: '+ New Ticket',
|
||||||
|
addHospital: '+ Add Hospital',
|
||||||
|
addAccount: '+ Add Account',
|
||||||
|
quickAddOrder: '+ Quick Submit Ticket',
|
||||||
|
back: '← Back',
|
||||||
|
preview: 'View Report',
|
||||||
|
downloadPdf: 'Download PDF Report',
|
||||||
|
confirm: 'Confirm',
|
||||||
|
downloadReport: 'Download Report',
|
||||||
|
},
|
||||||
|
// Form labels
|
||||||
|
label: {
|
||||||
|
title: 'Issue Title',
|
||||||
|
description: 'Description',
|
||||||
|
attachment: 'Attachment',
|
||||||
|
dept: 'Department',
|
||||||
|
name: 'Submitter',
|
||||||
|
priority: 'Priority',
|
||||||
|
type: 'Service Type',
|
||||||
|
oldPassword: 'Old Password',
|
||||||
|
newPassword: 'New Password',
|
||||||
|
confirmPassword: 'Confirm Password',
|
||||||
|
hospital: 'Hospital Name',
|
||||||
|
hospitalName: 'Hospital Name',
|
||||||
|
contact: 'Contact',
|
||||||
|
contactPerson: 'Contact Person',
|
||||||
|
contactDept: 'Contact Department',
|
||||||
|
contactPosition: 'Position',
|
||||||
|
contactPhone: 'Phone',
|
||||||
|
category: 'Customer Category',
|
||||||
|
signDate: 'Signing Date',
|
||||||
|
acceptDate: 'Acceptance Date',
|
||||||
|
years: 'Years',
|
||||||
|
maintenanceEndDate: 'Maintenance End Date',
|
||||||
|
manager: 'Account Manager',
|
||||||
|
acceptanceReport: 'Acceptance Report',
|
||||||
|
account: 'Account',
|
||||||
|
accountType: 'Account Type',
|
||||||
|
password: 'Password',
|
||||||
|
gender: 'Gender',
|
||||||
|
role: 'Role',
|
||||||
|
status: 'Status',
|
||||||
|
renewal: 'Renewal',
|
||||||
|
contractSigned: 'Contract Signed',
|
||||||
|
paymentPaid: 'Payment',
|
||||||
|
visited: 'Visit Status',
|
||||||
|
visitResult: 'Visit Result',
|
||||||
|
createTime: 'Created At',
|
||||||
|
colorTag: 'Color Tag',
|
||||||
|
currentPassword: 'Current Password',
|
||||||
|
},
|
||||||
|
// Form placeholder
|
||||||
|
placeholder: {
|
||||||
|
title: 'Enter issue title',
|
||||||
|
description: 'Describe the issue in detail...',
|
||||||
|
dept: 'Enter department',
|
||||||
|
name: 'Enter submitter name',
|
||||||
|
type: 'Select service type',
|
||||||
|
hospital: 'Enter hospital name',
|
||||||
|
contactPerson: 'Enter contact person',
|
||||||
|
contactDept: 'Enter contact department',
|
||||||
|
contactPosition: 'Enter position',
|
||||||
|
contactPhone: 'Enter phone',
|
||||||
|
search: 'Please input',
|
||||||
|
keyword: 'Search title/ticket no.',
|
||||||
|
account: 'Enter account',
|
||||||
|
password: 'Enter password',
|
||||||
|
newPassword: 'Enter new password (at least 6 chars)',
|
||||||
|
confirmPassword: 'Confirm new password',
|
||||||
|
currentPassword: 'Enter current password',
|
||||||
|
remark: 'Enter remark...',
|
||||||
|
},
|
||||||
|
// Messages
|
||||||
|
msg: {
|
||||||
|
pleaseInputTitle: 'Please enter the issue title',
|
||||||
|
pleaseInputDescription: 'Please enter the description',
|
||||||
|
pleaseSelectPriority: 'Please select priority',
|
||||||
|
pleaseSelectType: 'Please select service type',
|
||||||
|
pleaseSelectHospital: 'Please select hospital',
|
||||||
|
pleaseInputDept: 'Please enter department',
|
||||||
|
pleaseInputName: 'Please enter submitter name',
|
||||||
|
passwordTooShort: 'New password must be at least 6 characters!',
|
||||||
|
passwordMismatch: 'Passwords do not match!',
|
||||||
|
pleaseFillRequired: 'Please fill in required fields!',
|
||||||
|
submitSuccess: 'Ticket submitted successfully!',
|
||||||
|
editSuccess: 'Ticket updated successfully!',
|
||||||
|
cancelSuccess: 'Ticket cancelled successfully!',
|
||||||
|
closeSuccess: 'Ticket closed successfully!',
|
||||||
|
passwordChangeSuccess: 'Password changed successfully!',
|
||||||
|
languageChangeSuccess: 'Language changed successfully!',
|
||||||
|
themeChangeSuccess: 'Theme changed successfully!',
|
||||||
|
hospitalAddSuccess: 'Hospital added successfully!',
|
||||||
|
hospitalEditSuccess: 'Hospital updated successfully!',
|
||||||
|
accountAddSuccess: 'Account added successfully!',
|
||||||
|
accountEditSuccess: 'Account updated successfully!',
|
||||||
|
passwordResetSuccess: 'Password reset successfully!',
|
||||||
|
reportGenerateSuccess: 'Report generated successfully!',
|
||||||
|
confirmCancelOrder: 'Are you sure you want to cancel ticket {orderId}? This cannot be undone.',
|
||||||
|
confirmCloseOrder: 'Are you sure you want to close ticket {orderId}?',
|
||||||
|
},
|
||||||
|
// Statistics
|
||||||
|
stat: {
|
||||||
|
total: 'Total Submitted',
|
||||||
|
completed: 'Completed',
|
||||||
|
pending: 'Pending',
|
||||||
|
highPriority: 'High Priority',
|
||||||
|
totalOrders: 'Total',
|
||||||
|
pendingOrders: 'Pending',
|
||||||
|
completedOrders: 'Completed',
|
||||||
|
highPriorityOrders: 'High Priority',
|
||||||
|
high: 'High Priority',
|
||||||
|
medium: 'Medium Priority',
|
||||||
|
low: 'Low Priority',
|
||||||
|
mediumPriority: 'Medium Priority',
|
||||||
|
lowPriority: 'Low Priority',
|
||||||
|
processing: 'Processing',
|
||||||
|
},
|
||||||
|
// Table columns
|
||||||
|
table: {
|
||||||
|
id: 'Ticket No.',
|
||||||
|
priority: 'Priority',
|
||||||
|
title: 'Title',
|
||||||
|
type: 'Service Type',
|
||||||
|
status: 'Status',
|
||||||
|
time: 'Submit Time',
|
||||||
|
submitter: 'Submitter',
|
||||||
|
action: 'Action',
|
||||||
|
hospital: 'Hospital',
|
||||||
|
handler: 'Handler',
|
||||||
|
handleTime: 'Handle Time',
|
||||||
|
handleDesc: 'Handle Description',
|
||||||
|
registrar: 'Registrar',
|
||||||
|
dept: 'Department',
|
||||||
|
category: 'Category',
|
||||||
|
contact: 'Contact',
|
||||||
|
phone: 'Phone',
|
||||||
|
manager: 'Manager',
|
||||||
|
signDate: 'Sign Date',
|
||||||
|
usageYears: 'Usage Years',
|
||||||
|
maintenanceEnd: 'Maintenance End',
|
||||||
|
acceptanceReport: 'Acceptance Report',
|
||||||
|
account: 'Account',
|
||||||
|
name: 'Name',
|
||||||
|
gender: 'Gender',
|
||||||
|
role: 'Role',
|
||||||
|
createTime: 'Created',
|
||||||
|
hospitalName: 'Hospital Name',
|
||||||
|
},
|
||||||
|
// Status
|
||||||
|
status: {
|
||||||
|
pending: 'Pending',
|
||||||
|
processing: 'Processing',
|
||||||
|
completed: 'Completed',
|
||||||
|
closed: 'Closed',
|
||||||
|
active: 'Active',
|
||||||
|
inactive: 'Inactive',
|
||||||
|
normal: 'Normal',
|
||||||
|
warning: 'Warning',
|
||||||
|
urgent: 'Urgent',
|
||||||
|
expired: 'Expired',
|
||||||
|
renewed: 'Renewed',
|
||||||
|
notRenewed: 'Not Renewed',
|
||||||
|
paid: 'Paid',
|
||||||
|
notPaid: 'Unpaid',
|
||||||
|
},
|
||||||
|
// Priority
|
||||||
|
priority: {
|
||||||
|
high: '🔴 High',
|
||||||
|
medium: '🟠 Medium',
|
||||||
|
low: '🟢 Low',
|
||||||
|
},
|
||||||
|
// Type
|
||||||
|
type: {
|
||||||
|
issue: 'Issue',
|
||||||
|
consult: 'Consultation',
|
||||||
|
feature: 'Feature Request',
|
||||||
|
other: 'Other',
|
||||||
|
},
|
||||||
|
// Chart
|
||||||
|
chart: {
|
||||||
|
title: 'Ticket Trend',
|
||||||
|
submit: 'Submitted',
|
||||||
|
complete: 'Completed',
|
||||||
|
bar: 'Bar Chart',
|
||||||
|
line: 'Line Chart',
|
||||||
|
},
|
||||||
|
// Date buttons
|
||||||
|
dateBtn: {
|
||||||
|
thisMonth: 'This Month',
|
||||||
|
thisQuarter: 'This Quarter',
|
||||||
|
thisYear: 'This Year',
|
||||||
|
customDate: 'Custom Date',
|
||||||
|
},
|
||||||
|
// Theme
|
||||||
|
theme: {
|
||||||
|
blue: 'Cosmic Blue',
|
||||||
|
purple: 'Orbital Purple',
|
||||||
|
green: 'Mountain Green',
|
||||||
|
title: 'Change Theme',
|
||||||
|
},
|
||||||
|
// Language
|
||||||
|
languageSwitch: {
|
||||||
|
title: 'Change Language',
|
||||||
|
zhCN: 'Chinese (Simplified)',
|
||||||
|
zhTW: 'Chinese (Traditional)',
|
||||||
|
enUS: 'English',
|
||||||
|
},
|
||||||
|
// Modal
|
||||||
|
modal: {
|
||||||
|
detail: 'Ticket Detail',
|
||||||
|
edit: 'Edit Ticket',
|
||||||
|
submit: 'Quick Submit Ticket',
|
||||||
|
changePassword: 'Change Password',
|
||||||
|
changeTheme: 'Change Theme',
|
||||||
|
changeLanguage: 'Change Language',
|
||||||
|
addAccount: 'Add Account',
|
||||||
|
editAccount: 'Edit Account',
|
||||||
|
resetPassword: 'Reset Password',
|
||||||
|
addHospital: 'Add Hospital',
|
||||||
|
editHospital: 'Edit Hospital',
|
||||||
|
detailHospital: 'Hospital Detail',
|
||||||
|
generateReport: 'Generate Service Report',
|
||||||
|
},
|
||||||
|
// User menu
|
||||||
|
userMenu: {
|
||||||
|
changePassword: 'Change Password',
|
||||||
|
changeTheme: 'Change Theme',
|
||||||
|
changeLanguage: 'Change Language',
|
||||||
|
logout: 'Logout',
|
||||||
|
},
|
||||||
|
// Customer category
|
||||||
|
category: {
|
||||||
|
A: 'Class A (Active)',
|
||||||
|
B: 'Class B (Inactive)',
|
||||||
|
C: 'Class C (To Recover)',
|
||||||
|
AShort: 'Class A',
|
||||||
|
BShort: 'Class B',
|
||||||
|
CShort: 'Class C',
|
||||||
|
},
|
||||||
|
// Role
|
||||||
|
role: {
|
||||||
|
super: 'Super Admin',
|
||||||
|
manager: 'Account Manager',
|
||||||
|
},
|
||||||
|
// Gender
|
||||||
|
gender: {
|
||||||
|
male: 'Male',
|
||||||
|
female: 'Female',
|
||||||
|
},
|
||||||
|
// File upload
|
||||||
|
upload: {
|
||||||
|
text: 'Click or drag files here to upload',
|
||||||
|
hint: 'Files up to 50MB supported',
|
||||||
|
uploaded: 'Uploaded Files',
|
||||||
|
remove: 'Remove',
|
||||||
|
rename: 'Rename',
|
||||||
|
maxSize50M: '(max 50M)',
|
||||||
|
},
|
||||||
|
// Points page
|
||||||
|
points: {
|
||||||
|
title: '🎁 My Points',
|
||||||
|
unit: 'pts',
|
||||||
|
rewards: 'Received 15 service rewards',
|
||||||
|
detail: 'Points History',
|
||||||
|
points: 'Points',
|
||||||
|
pointsTime: 'Time',
|
||||||
|
pointsSource: 'Source',
|
||||||
|
pointsOrder: 'Ticket No.',
|
||||||
|
pointsChange: 'Points Change',
|
||||||
|
pointsDesc: 'Description',
|
||||||
|
},
|
||||||
|
// Report page
|
||||||
|
report: {
|
||||||
|
list: 'Service Reports',
|
||||||
|
generate: 'Generate Report',
|
||||||
|
view: 'View',
|
||||||
|
download: 'Download',
|
||||||
|
remark: 'Remark',
|
||||||
|
search: 'Search by hospital name',
|
||||||
|
typeAll: 'All Types',
|
||||||
|
quarterly: 'Quarterly Report',
|
||||||
|
annual: 'Annual Report',
|
||||||
|
period: 'Report Period',
|
||||||
|
quarter: 'Quarter',
|
||||||
|
year: 'Annual',
|
||||||
|
querySuccess: 'Query complete, found {count} report(s).',
|
||||||
|
},
|
||||||
|
// Order detail
|
||||||
|
orderDetail: {
|
||||||
|
submitTime: 'Submit Time',
|
||||||
|
statusChange: 'Status Change Log',
|
||||||
|
operator: 'Operator',
|
||||||
|
beforeChange: 'Before',
|
||||||
|
afterChange: 'After',
|
||||||
|
noAttachment: 'No attachments',
|
||||||
|
currentStatus: 'Current Status',
|
||||||
|
dept: 'Department',
|
||||||
|
name: 'Submitter',
|
||||||
|
handler: 'Handler',
|
||||||
|
},
|
||||||
|
// Change password
|
||||||
|
password: {
|
||||||
|
title: 'Change Password',
|
||||||
|
oldPassword: 'Old Password',
|
||||||
|
newPassword: 'New Password',
|
||||||
|
confirmPassword: 'Confirm Password',
|
||||||
|
submit: 'Submit',
|
||||||
|
cancel: 'Cancel',
|
||||||
|
success: 'Password changed',
|
||||||
|
pleaseInputOld: 'Please enter old password',
|
||||||
|
pleaseInputNew: 'Please enter new password',
|
||||||
|
pleaseInputConfirm: 'Please confirm new password',
|
||||||
|
passwordTooShort: 'Password must be at least 6 characters',
|
||||||
|
passwordMismatch: 'Passwords do not match',
|
||||||
|
oldPasswordError: 'Old password is incorrect',
|
||||||
|
accountNotFound: 'Account does not exist',
|
||||||
|
},
|
||||||
|
// Account management
|
||||||
|
account: {
|
||||||
|
hospitalAccount: 'Hospital Accounts',
|
||||||
|
adminAccount: 'Admin Accounts',
|
||||||
|
list: 'Account List',
|
||||||
|
addHospital: '+ Add Hospital Account',
|
||||||
|
addAdmin: '+ Add Admin Account',
|
||||||
|
enable: 'Enable',
|
||||||
|
disable: 'Disable',
|
||||||
|
enableSuccess: 'Account {id} enabled',
|
||||||
|
disableSuccess: 'Account {id} disabled',
|
||||||
|
resetPassword: 'Reset Password',
|
||||||
|
defaultPassword: 'After reset, password will be: 123456',
|
||||||
|
confirmReset: 'Are you sure you want to reset the password of account {id}?',
|
||||||
|
resetSuccess: 'Account {id} password has been reset to default: 123456',
|
||||||
|
pleaseInputName: 'Please enter name!',
|
||||||
|
},
|
||||||
|
// Customer service
|
||||||
|
service: {
|
||||||
|
title: 'Customer Service',
|
||||||
|
monthlyView: '📅 Monthly View',
|
||||||
|
prevMonth: '← Prev Month',
|
||||||
|
nextMonth: 'Next Month →',
|
||||||
|
phoneVisit: '📞 Phone Visit',
|
||||||
|
onSiteInspection: '🔍 On-site Inspection',
|
||||||
|
training: '📚 Training Records',
|
||||||
|
gift: '🎁 Gift Records',
|
||||||
|
expiring: 'Expiring This Month',
|
||||||
|
searchHospital: 'Search by hospital name',
|
||||||
|
noRecords: 'No records',
|
||||||
|
},
|
||||||
|
// Validation
|
||||||
|
validation: {
|
||||||
|
required: 'Required',
|
||||||
|
},
|
||||||
|
// Date range
|
||||||
|
dateRange: {
|
||||||
|
today: 'Today',
|
||||||
|
yesterday: 'Yesterday',
|
||||||
|
thisWeek: 'This Week',
|
||||||
|
thisMonth: 'This Month',
|
||||||
|
thisQuarter: 'This Quarter',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|||||||